Drissdev1, your code is worse then thread's author.
Ham spawn is for every player in part , you loop all players on every player spawn.
If there are 32 players then you strip their weapons 32 times.
In this case if you want to do knife= false then you shall use new round event and loop all players with a task:
PHP Code:
#include <amxmodx>
#include <cstrike>
#include <fun>
#define TASK_SW 11442
new bool:knife
new caller;
public plugin_init()
{
register_plugin
(
.plugin_name = "Knife Plugin",
.version = "1.0",
.author = "Artizy"
)
register_clcmd("say /knife","CmdSayKnife")
register_event("HLTV", "event_new_round", "a", "1=0", "2=0")
}
public event_new_round(){
if(knife){
if(task_exists(TASK_SW))
remove_task(TASK_SW)
set_task(1.5, "set_weapons", TASK_SW)
}
}
public CmdSayKnife(id)
{
if(get_user_flags(id) & ADMIN_KICK)
{
knife = true
caller = id;
server_cmd("sv_restart 1")
server_cmd("mp_freezetime 0")
server_cmd("mp_startmoney 800")
client_print(0,print_chat,"[AMXX] KNIFE ROUND ENABLED.")
return PLUGIN_CONTINUE;
}
return PLUGIN_HANDLED;
}
public set_weapons()
{
new iPlayers[32], iPlayersNum, i, id;
get_players(iPlayers, iPlayersNum, "a")
for (i = 0; i < iPlayersNum; ++i)
{
id = iPlayers[i]
strip_user_weapons(id)
give_item(id,"weapon_knife")
if(caller == id){
cs_set_user_money(id,0)
}else{
give_item(id,"weapon_deagle")
}
}
knife = false;
}