as_undisco_all only turns off the glow for the person performing the command. Why?
Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <fun>
#define PLUGIN "Admin System"
#define VERSION "0.1"
#define AUTHOR "DahVid"
new players[32],num,i //use these one too many time! :)
new bool:is_disco[33]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("as_disco","disco",ADMIN_BAN,"as_disco <user>")
register_clcmd("as_undisco","undisco",ADMIN_BAN,"as_undisco <user>")
register_clcmd("as_disco_all","disco_allstart",ADMIN_BAN,"as_discoall (disco's all users!")
register_clcmd("as_undisco_all","undisco_all",ADMIN_BAN,"as_undiscoall (Undiscos everyone!")
}
public disco(id) {
if(!is_user_admin(id)) {
console_print(id,"[ASMod]Sorry, this command is for administrators ONLY!")
return PLUGIN_HANDLED
}
new player[33]
read_argv(1,player,32)
new target=cmd_target(id,player,9)
if(!is_user_connected(target)) {
console_print(id,"[ASMod]The player you have entered has not been found in the server or he has immunity.")
}
is_disco[target]=true
//Thanks to GHW_Chronic for the idea!
set_task(0.3,"disco_start",target,_,_,"b")
return PLUGIN_CONTINUE
}
public disco_start(target) {
if(is_disco[target]==false) {
return PLUGIN_HANDLED
}
if(!is_user_connected(target)) {
return PLUGIN_HANDLED
}
new red,green,blue,alpha
red=random_num(0,255)
green=random_num(0,255)
blue=random_num(0,255)
alpha=random_num(30,220)
message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},target)
write_short(~0)
write_short(~0)
write_short(1<<12)
write_byte(red)
write_byte(green)
write_byte(blue)
write_byte(alpha)
message_end()
set_user_rendering(target,kRenderFxGlowShell,red,green,blue,kRenderTransAlpha,alpha)
return PLUGIN_CONTINUE
}
public disco_allstart() {
get_players(players,num)
for(i=0;i<=num;i++) {
new player = players[i]
is_disco[player]=true
set_task(0.3,"disco_all",player,_,_,"b")
}
}
public disco_all() {
get_players(players,num)
for(i=0;i<=num;i++) {
new player = players[i]
if(is_disco[player]==false) {
return PLUGIN_HANDLED
}
if(!is_user_connected(player)) {
return PLUGIN_HANDLED
}
new red,green,blue,alpha
red=random_num(0,255)
green=random_num(0,255)
blue=random_num(0,255)
alpha=random_num(30,220)
message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},player)
write_short(~0)
write_short(~0)
write_short(1<<12)
write_byte(red)
write_byte(green)
write_byte(blue)
write_byte(alpha)
message_end()
set_user_rendering(player,kRenderFxGlowShell,red,green,blue,kRenderTransAlpha,alpha)
}
return PLUGIN_HANDLED
}
public undisco(target) {
is_disco[target]=false
set_user_rendering(target,kRenderFxGlowShell,0,0,0,kRenderNormal,25)
}
public undisco_all(player) {
is_disco[player]=false
set_user_rendering(player,kRenderFxGlowShell,0,0,0,kRenderNormal,25)
}