Jak dodać dodatkowe obrażenia dla klasy
lexar
07.05.2014
Witam
Używam pluginu klasy ludzi na swoim zm i chciałbym dodać do wojownika ciemności dodatkowe obrażenia z każdej broni. Jak to zrobić?
Pozdrawiam
VertekS
07.05.2014
Kod z dokumentacji (funkcja SetHamParamFloat:
W plugin init rejestrujesz odpowiednie zdarzenie poprzez RegisterHam - typu Ham_TakeDamage. Następnie w funkcji podanej w parametrze callback (fw_HamPlayerTakeDamage) modyfikujesz zdarzenie w locie poprzez którąś funkcję typu SetHamParam. W tym przypadku chcesz zmienić czwarty parametr zdarzenia Ham_TakeDamage (Float:damage) na wartość 1.0.
lexar
07.05.2014
Próbowałem dodać tą funkcje do klasy ale wyskakuje error zamieszczę sma
Załączone pliki
VertekS
07.05.2014
Obrażenia zadawane przez gracza z klasą wojownik ciemności obecnie są zwiększone dwukrotnie, wartość zmieniasz tutaj:
SetHamParamFloat(4, damage * 2.0)
Po damage może być tez inne działanie matematyczne (na przykład dodawanie), jednak liczba, o którą jest zmieniona wartość obrażeń, musi być liczbą zmiennoprzecinkową (to znaczy mieć przecinek - tak jak ta wyżej). Sama liczba 2 nie przejdzie, musi to być koniecznie 2.0.
Załączone pliki
lexar
09.05.2014
Plugin działa ale sypie errorami
[AMXX] Run time error 4: index out of bounds L 05/09/2014 - 22:06:52: [AMXX] [0] klasy_ludzi.sma::fwHamPlayerTakeDamage (line 27)
VertekS
10.05.2014
W jakich sytuacjach plugin powiadamia o błędach? Używasz pluginów typu Sentry Gun?
Załączone pliki
Drago36
10.05.2014
VertekS error pewnie wywala dlatego, gdyż nie ma warunku is_user_connected/alive.
Więc zamiast tego:
public fwHamPlayerTakeDamage(id, inflictor, attacker, Float:damage, damagebits){ if ( !(1 <= attacker <= max_players) ) return HAM_IGNORED if(ma_klase[attacker] == 7 && !zp_get_user_zombie(attacker) || !zp_get_user_nemesis(attacker) || !zp_get_user_survivor(attacker)) SetHamParamFloat(4, damage * 2.0) return HAM_IGNORED }
Daj:
public fwHamPlayerTakeDamage(id, inflictor, attacker, Float:damage, damagebits){ if(!is_user_connected(attacker)) return HAM_IGNORED if(ma_klase[attacker] == 7 && !zp_get_user_zombie(attacker) || !zp_get_user_nemesis(attacker) || !zp_get_user_survivor(attacker)) SetHamParamFloat(4, damage * 2.0) return HAM_IGNORED }