Na początku pod
#include <nvault>dodajemy
#include <engine>
Następnie w silniku coda podmieniamy public CurWeapon(id)
na :
public CurWeapon(id) { if(!is_user_alive(id) ) return; new team = get_user_team(id); if(team > 2) return; new bron = read_data(2); if(!(1<<bron & (bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id] | bronie_druzyny[team] | bronie_dozwolone))) ham_strip_weapon_short( id ); if(cs_get_user_shield(id) && !gracz_ma_tarcze[id]) engclient_cmd(id, "drop", "weapon_shield"); UstawSzybkosc(id); } stock ham_strip_weapon_short(id) { new szWeapon[64]; get_weaponname( get_user_weapon( id ) , szWeapon , charsmax ( szWeapon ) ) new wId = get_weaponid(szWeapon); if(!wId) return 0; new wEnt = find_ent_by_owner( -1,szWeapon,id ) if(!wEnt) return 0; ExecuteHamB(Ham_Weapon_RetireWeapon,wEnt); ExecuteHamB(Ham_RemovePlayerItem,id,wEnt) ExecuteHamB(Ham_Item_Kill,wEnt); set_pev(id,pev_weapons,pev(id,pev_weapons) & ~(1<<wId)); return 1; }
a następnie usuwamy na samym dole pluginu taki stock :
stock ham_strip_weapon(id, weapon[]) { if(!equal(weapon, "weapon_", 7) ) return 0 new wId = get_weaponid(weapon) if(!wId) return 0 new wEnt while( (wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname", weapon) ) && pev(wEnt, pev_owner) != id) {} if(!wEnt) return 0 if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon, wEnt) if(!ExecuteHamB(Ham_RemovePlayerItem, id, wEnt)) return 0 ExecuteHamB(Ham_Item_Kill ,wEnt) set_pev(id, pev_weapons, pev(id, pev_weapons) & ~(1<<wId) ) return 1 }
I BUM ! Nie ma errorów i crashy
Wszelkie podziękowania słać do DarkGL
// Jeśli wam ta funkcja nie tworzy errorow dotyczacych 'stack error' to wydaje mi się że nie opłaca się tego wgrywać, lecz tamten błąd jest bardzo popularny.
Użytkownik DarkGL edytował ten post 12.11.2011 01:05