Spoiler
#include <amxmodx> #include <fakemeta> #include <hamsandwich> #include <cstrike> #define PLUGIN "Plugin" #define VERSION "1.0" #define AUTHOR "Author" #define PEV_PDATA_SAFE 2 #define OFFSET_TEAM 114 #define OFFSET_DEFUSE_PLANT 193 #define HAS_DEFUSE_KIT (1<<16) #define OFFSET_INTERNALMODEL 126 #define NEMESIS_MODEL "nemesisek" // Cvar Pointers new gCvarNemesisRounds, gCvarNemesisHealth, gCvarNemesisGravity, gCvarNemesisSpeed; // Variables new gNemesisIndex = 0; // ID Nemesisa new gRoundsCounter = 1; // Licznik rund new gMaxPlayers; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) gCvarNemesisRounds = register_cvar("nemesis_runds", "5") ; gCvarNemesisHealth = register_cvar("nemesis_health", "50000.0"); gCvarNemesisGravity = register_cvar("nemesis_gravity", "100.0"); gCvarNemesisSpeed = register_cvar("nemesis_speed", "400.0"); register_event("HLTV", "Event_NewRound", "a", "1=0", "2=0"); register_event("CurWeapon","Event_CurWeapon","be","1=1") register_logevent("Logevent_RoundStart", 2, "1=Round_Start") RegisterHam(Ham_TakeDamage, "player", "fwHamTakeDamage"); gMaxPlayers = get_maxplayers() } public plugin_cfg() { server_cmd("sv_maxspeed 500"); } public plugin_precache() { new model[128]; format(model,sizeof model,"player/%s/%s.mdl",NEMESIS_MODEL,NEMESIS_MODEL) precache_model(model); precache_sound("muza_nemesisa/1.wav"); precache_sound("muza_nemesisa/2.wav"); } public fwHamTakeDamage(victim, idinflictor, attacker, Float:damage, damagebits) { // Jezeli gracz to nie nemesis albo jego bron jest inna niz noz przerywa funkcje if(!is_user_nemesis(attacker) || get_user_weapon(attacker) != CSW_KNIFE) return; SetHamParamFloat(4, 250.0) } public Event_NewRound() { gRoundsCounter++; } public Event_CurWeapon(id) { if(!is_user_nemesis(id)) return; set_pev(id,pev_maxspeed,float(get_pcvar_num(gCvarNemesisSpeed))) } public Logevent_RoundStart() { if(gRoundsCounter % get_pcvar_num(gCvarNemesisRounds) // Jezeli reszta dzielenia liczby rund przez wartosc cvara jest && gRoundsCounter ) // inna niz 0 przestanie wykonywac funkcje np. 6/5 reszta z dzielenia return; // daje 1 i event sie nie wykona bo to nie jest co 5 runda new temp; // Losuje gracza, jeżeli jest nieżywy/niepolączony robi to az do skutku do temp = random_num(1,gMaxPlayers); while(!is_user_alive(temp)); // Jezeli wylosowany gracz jest w CT przenosi go do TT if(get_user_team(temp) == 1) fm_set_user_team(temp,2); gNemesisIndex = temp; cs_set_user_model(gNemesisIndex,NEMESIS_MODEL); set_pev(gNemesisIndex,pev_maxspeed,get_pcvar_float(gCvarNemesisSpeed)); set_pev(gNemesisIndex,pev_gravity,(get_pcvar_float(gCvarNemesisGravity)/800)); set_pev(gNemesisIndex,pev_health,get_pcvar_float(gCvarNemesisHealth)); // Przenosi reszte TT do CT for(new i=1;i<gMaxPlayers;i++) { if(!is_user_alive(i) || is_user_nemesis(i) || get_user_team(i) == 1) continue; fm_set_user_team(i,1); } } // Zwraca true jezeli gracz to nemesis, jezeli nie to false stock bool:is_user_nemesis(id) { if(gNemesisIndex == id) return true; return false; } stock fm_set_user_team(id, team) { if(!(1 <= id <= gMaxPlayers) || pev_valid(id) != PEV_PDATA_SAFE) { return 0 } switch(team) { case 1: { new iDefuser = get_pdata_int(id, OFFSET_DEFUSE_PLANT) if(iDefuser & HAS_DEFUSE_KIT) { iDefuser -= HAS_DEFUSE_KIT set_pdata_int(id, OFFSET_DEFUSE_PLANT, iDefuser) } set_pdata_int(id, OFFSET_TEAM, 1) } case 2: { if(pev(id, pev_weapons) & (1<<CSW_C4)) { engclient_cmd(id, "drop", "weapon_c4") } set_pdata_int(id, OFFSET_TEAM, 2) } } dllfunc(DLLFunc_ClientUserInfoChanged, id, engfunc(EngFunc_GetInfoKeyBuffer, id)) return 1 }
Co w nim nie tak ? Zle czyta sciezke modelu. Nie widzi modelu. A jest on w odpowiednim folderze. Chcę aby dodać do niego tylko kose. Reszta broni jest DROP poniewaz chce dodac to na COD MOD. I wlasnie kolejne rzezcy z tego wychodza. Gdy zostanie on wybrany niech na niego nie dzialaja zadne perki. A jego perk jest dropany albo zeby nie mogl go uzyc. Jezeli go ma. Placę oczywiscie w postaci ++++++ tyle ile ich tutaj napisalem tyle dam za chociaz jedna pomoc do tego tematu.