hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.12. 05:09



Jelenlévő felhasználók

Jelenleg 509 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 509 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: nincs regisztrált felhasználó az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 4 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Runtime error
HozzászólásElküldve: 2013.06.10. 14:38 
Offline
Veterán

Csatlakozott: 2012.11.01. 20:49
Hozzászólások: 1837
Megköszönt másnak: 25 alkalommal
Megköszönték neki: 78 alkalommal
Ü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")


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Runtime error
HozzászólásElküldve: 2013.06.10. 14:44 
Offline
Őskövület
Avatar

Csatlakozott: 2011.09.17. 17:54
Hozzászólások: 2350
Megköszönt másnak: 40 alkalommal
Megköszönték neki: 57 alkalommal
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.  


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Runtime error
HozzászólásElküldve: 2013.06.10. 16:02 
Offline
Veterán

Csatlakozott: 2012.11.01. 20:49
Hozzászólások: 1837
Megköszönt másnak: 25 alkalommal
Megköszönték neki: 78 alkalommal
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


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Runtime error
HozzászólásElküldve: 2013.06.11. 10:56 
Offline
Imperátor
Avatar

Csatlakozott: 2009.04.21. 09:33
Hozzászólások: 3991
Megköszönt másnak: 5 alkalommal
Megköszönték neki: 135 alkalommal
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?

_________________
Kód:
I'm back

Kép


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 4 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 22 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole