hlmod.hu
https://hlmod.hu/

Runtime error
https://hlmod.hu/viewtopic.php?f=29&t=8896
Oldal: 1 / 1

Szerző:  m0csy652 [ 2013.06.10. 14:38 ]
Hozzászólás témája:  Runtime error

Üdv. Ezt kellene kijavítani.
SMA Forráskód: [ Mindet kijelol ]
  1. public event_death()
  2. {
  3. new id = read_data(2)
  4.  
  5. reset_player(id)
  6.  
  7. static Float:minsize[3]
  8. pev(id, pev_mins, minsize)
  9.  
  10. if(minsize[2] == -18.0)
  11. g_wasducking[id] = true
  12. else
  13. g_wasducking[id] = false
  14.  
  15. set_task(0.5, "task_check_dead_flag", id)
  16.  
  17. if(read_data(1)<=maxplayers && read_data(1) && read_data(1)!=read_data(2)) cs_set_user_money(read_data(1),cs_get_user_money(read_data(1)) + get_pcvar_num(mkb) - 300)


Kód:
L 06/10/2013 - 14:40:33: [AMXX] Run time error 10: native error (native "entity_get_int")

Szerző:  VirTuaL ~` [ 2013.06.10. 14:44 ]
Hozzászólás témája:  Re: Runtime error

SMA Forráskód: [ Mindet kijelol ]
  1. public event_death()
  2. {
  3. new id = read_data(2)
  4.  
  5. if(!is_user_alive(id))
  6. return PLUGIN_HANDLED;
  7.  
  8. reset_player(id)
  9.  
  10. static Float:minsize[3]
  11. pev(id, pev_mins, minsize)
  12.  
  13. if(minsize[2] == -18.0)
  14. g_wasducking[id] = true
  15. else
  16. g_wasducking[id] = false
  17.  
  18. set_task(0.5, "task_check_dead_flag", id)
  19.  
  20. if(read_data(1)<=maxplayers && read_data(1) && read_data(1)!=read_data(2)) cs_set_user_money(read_data(1),cs_get_user_money(read_data(1)) + get_pcvar_num(mkb) - 300)
  21.  

Szerző:  m0csy652 [ 2013.06.10. 16:02 ]
Hozzászólás témája:  Re: Runtime error

SMA Forráskód: [ Mindet kijelol ]
  1. [sma]public event_death()
  2. {
  3. new id = read_data(2)
  4.  
  5. if(!is_user_alive(id))
  6. return
  7.  
  8. reset_player(id)
  9.  
  10. static Float:minsize[3]
  11. pev(id, pev_mins, minsize)
  12.  
  13. if(minsize[2] == -18.0)
  14. g_wasducking[id] = true
  15. else
  16. g_wasducking[id] = false
  17.  
  18. set_task(0.5, "task_check_dead_flag", id)
  19.  
  20. if(read_data(1)<=maxplayers && read_data(1) && read_data(1)!=read_data(2)) cs_set_user_money(read_data(1),cs_get_user_money(read_data(1)) + get_pcvar_num(mkb) - 300)
  21.  
  22. }
[/sma]
így lett a jó :) Virtual, a tiédre warningot dobott :D

Szerző:  Metal [ 2013.06.11. 10:56 ]
Hozzászólás témája:  Re: Runtime error

Nah, muszáj kukacoskodnom, így meg is teszem:
- read_data(1): Felesleges mindig ugyanazt kiolvasni, sokkal jobb megoldás, ha lemenjük külön változóba a read_data(1)-et.
- if: Az ifben meg true vagy false értéket vesz fel, ugyanazt, ami a feltétle eredménye. Egyszerűbb kiszervezni.
- static vs new : staticpot ott érdemes, ami nagyon sokszor előfordul (zehát egy dmnél jobb, de mivel nem tudom milyen plugin ez, így new-ra cseréltem)
- task: Mint ahogy máskor is említettem, érdemes külön idt hazsnálni, főleg ilyen esetben
+++
A g_wasducking[id] = minsize[2] == -18.0; kiszervezném a reset_player fgvbe. Feltételezem máshol is hazsnálod, s akkor ott resetelsz is.
Ha nem, akkor nem szóltam.

Fentiek alapján én ezt így raknám össze:

Kód:
#define TASK_CHECK_DEAD_FLAG 1000

public event_death()
{
   new id = read_data(2);
   new attacker = read_data(1);
   
   if(!is_user_alive(id))
      return;
 
   reset_player(id);
 
   new Float:minsize[3];
   pev(id, pev_mins, minsize);
 
   g_wasducking[id] = minsize[2] == -18.0;
 
   set_task(0.5, "task_check_dead_flag", TASK_CHECK_DEAD_FLAG + id);
 
   if( attacker <= maxplayers && attacker && attacker != id )
      cs_set_user_money(attacker, cs_get_user_money(attacker) + get_pcvar_num(mkb) - 300);
}

Továbbá kérdés:
Ezt minek így?
Kód:
get_pcvar_num(mkb) - 300

Nem lenne egyszerűbb a CVAR értékét csökkenteni 300-zal?

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/