Nie czyta klasy
Zaaxel
15.11.2017
Witam.
Mam problem z jedną klasą, którą udało mi się zlepić
Mianowicie przy kompilacji nie wyświetla żadnych błędów, jednakże w grze nie czyta owej klasy
Ktoś może wiedzieć co jest nie tak? Poniżej KOD SMA
#include <amxmodx> #include <amxmisc> #include <codmod> #include <fakemeta> #include <hamsandwich> #include <engine> #include <fun> new bool:ma_klase[33]; new const nazwa[] = "Ninja"; new const opis[] = "Zmniejszona grawitacja oraz widzialność na nożu, posiada Deagle i 1/5 z niego"; new const bronie = 1<<CSW_DEAGLE; new const zdrowie = 0; new const kondycja = 25; new const inteligencja = 5; new const wytrzymalosc = 10; public plugin_init() { register_plugin(nazwa, "1.0", "Unnamed"); register_event("CurWeapon", "CurWeapon", "be", "1=1"); register_event("ResetHUD", "ResetHUD", "abe"); RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenZ"); cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc, "Zwykle"); } public cod_class_enabled(id) { ma_klase[id] = true; } public cod_class_disabled(id) { entity_set_float(id, EV_FL_gravity, 800.0/800.0); ma_klase[id] = false; } public CurWeapon(id) { if(!ma_klase[id]) return; new wid = get_user_weapon(id); if(wid == CSW_KNIFE) { set_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 10); entity_set_float(id, EV_FL_gravity, 300.0/800.0); } else { set_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255); entity_set_float(id, EV_FL_gravity, 800.0/800.0); } } public ResetHUD(id) { if(ma_klase[id]) entity_set_float(id, EV_FL_gravity, 300.0/800.0); } public fwTakeDamageJedenZ(this, idInf, idAtt, Float:fDmg, dmgBits) { if(!is_user_alive(idAtt) || !ma_klase[idAtt] || !(dmgBits & (1<<1)) || random_num(1, 5) !=1) return HAM_IGNORED; new weapon = get_user_weapon(idAtt); if(weapon == CSW_DEAGLE) SetHamParamFloat(4, float(get_user_health(this) + 1)); return HAM_HANDLED }
Zaaxel
15.11.2017
Zapomniałem dodać pliczek, bez którego może wywalać błąd w 26 linijce
Załączone pliki
Paweł.
15.11.2017
Zapomniałem dodać pliczek, bez którego może wywalać błąd w 26 linijce
Dopisujesz do plugins-codmod.ini?
Jakieś logi, nic?
Deadly_SouL
15.11.2017
Dopisz do plugins-codmod.ini nazwe jaką nosi plik klasy + końcówka .amxx
A po za tym w klasie zauważyłem błąd.
Klasa będzie miała 1/5 z każdej broni a nie tylko z Deagle
Tutaj masz instrukcje jak to zmienić :
Dodaj pod:
#include <fun>
To:
#define DMG_BULLET (1<<1)
Podmień w plugin_init
RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenZ");
na :
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
Oraz
public fwTakeDamageJedenZ(this, idInf, idAtt, Float:fDmg, dmgBits) { if(!is_user_alive(idAtt) || !ma_klase[idAtt] || !(dmgBits & (1<<1)) || random_num(1, 5) !=1) return HAM_IGNORED; new weapon = get_user_weapon(idAtt); if(weapon == CSW_DEAGLE) SetHamParamFloat(4, float(get_user_health(this) + 1)); return HAM_HANDLED }
Na:
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_connected(idattacker)) return HAM_IGNORED; if(!ma_klase[idattacker]) return HAM_IGNORED; if(!(damagebits & DMG_BULLET)) return HAM_IGNORED; if(get_user_weapon(idattacker) == CSW_DEAGLE && random_num(1,5) == 1) cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits); return HAM_IGNORED; }
Teraz klasa będzie mieć 1/5 z Deagle a nie z wszystkich broni
Użytkownik Deadly_SouL edytował ten post 15.11.2017 21:04
Zaaxel
15.11.2017
Dzięki wielkie. Nie wiem czy to by rozwiązało problem ale raczej tak. Wywaliłem kod odpowiadający za tą szanse i zaczęło działać. W sumie nawet nie potrzebne przy małej ilości HP
Temat do zamknięcia