Cześć,
chciałem przerobić spec switcha, żeby można było wpisać /back tylko w czasie 20 sekund od początku rundy, a po 20 sekundach ma być zablokowane.
Próbowałem to przerobić, ale coś słabo mi to wyszło, bo nie zauważyłem jakiejkolwiek różnicy w działaniu pluginu
Poniżej kod przerobiony przeze mnie.
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #include <cstrike> #include <fun> #define PLUGIN "Spec Switch" #define VERSION "0.1.3" #define AUTHOR "many" new CsTeams:zTeam[33] new zDeath[33] new bool:type_spec[33] = false new g_cvar new bool: joinAccess; public plugin_init(){ register_plugin(PLUGIN, VERSION, AUTHOR) /* Cvar */ g_cvar = register_cvar("amx_specmode", "0") // 0 - enable use to all, 1 - enable use only ADMINs /* Client Commands */ register_clcmd("say /spec", "cmdSpec", ADMIN_ALL, "- go to spectator") register_clcmd("say_team /spec", "cmdSpec", ADMIN_ALL, "- go to spectator") register_clcmd("say /back", "cmdBack", ADMIN_ALL, "- go back to your team") register_clcmd("say_team /back", "cmdBack", ADMIN_ALL, "- go back to your team") register_event("HLTV", "Nowa_Runda", "a", "1=0", "2=0") register_logevent("Koniec_Rundy", 2, "1=Round_End") } public Nowa_Runda(){ joinAccess = true; set_task(20.0, "cJoinAcces", 888) } public cJoinAccess(){ joinAccess = false; } public Koniec_Rundy(){ remove_task(888) } public cmdSpec(id) { if(!get_pcvar_num(g_cvar)) Spec(id) else if( get_pcvar_num(g_cvar) && (get_user_flags(id) & ADMIN_KICK)) Spec(id) else if( get_pcvar_num(g_cvar) && !(get_user_flags(id) & ADMIN_KICK)) PrintUserNotAdmin(id) return PLUGIN_HANDLED; } public cmdBack(id){ if(joinAccess){ if (type_spec[id] && cs_get_user_team(id) == CS_TEAM_SPECTATOR && zTeam[id] != CS_TEAM_SPECTATOR ) Back(id) else if( get_pcvar_num(g_cvar) && !(get_user_flags(id) & ADMIN_KICK) ) PrintUserNotAdmin(id) return PLUGIN_HANDLED; } client_print(id, print_chat, "Mozesz wrocic do gry tylko przez pierwsze 20 sekund od poczatku rundy!") return PLUGIN_HANDLED; } public Spec(id) { zDeath[id] = cs_get_user_deaths(id) if (cs_get_user_team(id) == CS_TEAM_SPECTATOR) return else{ type_spec[id] = true zTeam[id] = cs_get_user_team(id) cs_set_user_team(id, CS_TEAM_SPECTATOR) user_silentkill(id) client_print(id,print_chat,"Type /back to return from Spectator") } return } public Back(id) { cs_set_user_team(id, zTeam[id]) cs_set_user_deaths(id, zDeath[id]) set_task(0.5,"FirstRespawn",id) set_task(0.8,"SecondRespawn",id) } public FirstRespawn(id) { cs_user_spawn(id) } public SecondRespawn(id) { cs_user_spawn(id) if (cs_get_user_team(id) == CS_TEAM_T){ give_item(id,"weapon_knife") give_item(id,"weapon_deagle") } if (cs_get_user_team(id) == CS_TEAM_CT){ give_item(id,"weapon_knife") give_item(id,"weapon_deagle") } } PrintUserNotAdmin(id) { client_print(id,print_chat,"Only Admins can use /spec, /back command") } public PrintRule(id) { if ( is_user_connected(id) && !is_user_bot(id) && !is_user_hltv(id) ){ client_print(id,print_chat,"Type /spec if you want to go Spectator") client_print(id,print_chat,"Type /back to return from Spectator") } } public client_putinserver(id) { if(!get_pcvar_num(g_cvar)) Rule(id) else if( get_pcvar_num(g_cvar) && (get_user_flags(id) & ADMIN_KICK)) Rule(id) } public client_disconnect(id) type_spec[id] = false public client_connect(id) type_spec[id] = false public Rule(id) set_task(20.0, "PrintRule", id) /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ ansicpg1252\\ deff0{\\ fonttbl{\\ f0\\ fnil\\ fcharset0 Tahoma;}}\n{\\ colortbl ;\\ red0\\ green0\\ blue0;}\n\\ viewkind4\\ uc1\\ pard\\ cf1\\ lang1033\\ b\\ f0\\ fs16 \n\\ par } */
//edit
Boże, teraz dopiero zauważyłem literówkę w tasku