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;
}


Dodatki SourceMod



Temat jest zamknięty






