Witam, dlaczego klasa po awansie zbugowała mi się i jest 2 razy ta sama, jedną można normalnie wybrać, bez nabicia poziomu, na 2 już trzeba poziom nabić.
Sma klasy:
#include <amxmodx> #include <codmod> #include <fakemeta> #include <hamsandwich> #define DMG_BULLET (1<<1) new bool:ma_klase[33]; new const nazwa[] = "Elitarny Graves"; new const opis[] = "Posiada brak rozrzutu w broniach oraz dodatkowe 60 DMG z kazdej broni, nieskonczone amunicja"; new const bronie = 1<<CSW_M4A1 | 1<<CSW_AK47 | 1<<CSW_HEGRENADE | 1<<CSW_SMOKEGRENADE new const zdrowie = 100; new const kondycja = 20; new const inteligencja = 10; new const wytrzymalosc = 30; public plugin_init() { register_plugin(nazwa, "1.0", "AUTHOR"); cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); register_forward(FM_PlayerPreThink, "PreThink"); register_forward(FM_UpdateClientData, "UpdateClientData", 1) RegisterHam(Ham_TakeDamage, "player", "TakeDamage"); register_event("CurWeapon","CurWeapon","be", "1=1"); cod_register_advance(cod_get_classid("Graves"), 500, nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); } public cod_class_enabled(id) { ma_klase[id] = true; return COD_CONTINUE; } public cod_class_disabled(id) ma_klase[id] = false; public PreThink(id) { if(ma_klase[id]) set_pev(id, pev_punchangle, {0.0,0.0,0.0}) } public UpdateClientData(id, sw, cd_handle) { if(ma_klase[id]) set_cd(cd_handle, CD_PunchAngle, {0.0,0.0,0.0}) } 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) { new weapon = get_user_weapon(idattacker); if(weapon == CSW_M4A1) cod_inflict_damage(idattacker, this, 60.0, 0.0, idinflictor, damagebits); if(weapon == CSW_AK47) cod_inflict_damage(idattacker, this, 60.0, 0.0, idinflictor, damagebits); if(weapon == CSW_HEGRENADE) cod_inflict_damage(idattacker, this, 60.0, 0.0, idinflictor, damagebits); } return HAM_IGNORED; } public CurWeapon(id) { if(!is_user_connected(id)) return; if(!ma_klase[id]) return; set_user_clip(id, 2); } stock set_user_clip(id, ammo) { new weaponname[32], weaponid = -1, weapon = get_user_weapon(id, _, _); get_weaponname(weapon, weaponname, 31); while ((weaponid = engfunc(EngFunc_FindEntityByString, weaponid, "classname", weaponname)) != 0) if (pev(weaponid, pev_owner) == id) { set_pdata_int(weaponid, 51, ammo, 4); return weaponid; } return 0; }