Rather then make you 100% invisible or like, partially invisible
Code:
/*
1950's Cloaking Device Created By DarkShadowST
Invisibility plugins are kinda strange:
You can only be fully invisible (not really fair to other people)
OR
Partially invisible (not really fair to you)
This makes it so every x seconds you fade back in for x seconds and then fade out again
Looks really creepy when you're trying to track the movement of someone wearing
this cloaking device...
First plugin in Forever
I called it 1950's Cloaking Device because nothing worked perfectly in the 1950's
(Source: NASA - Korean War - People in General)
*/
#include <amxmodx>
#include <fun>
#include <amxmisc>
#define ACCESS_LEVEL ADMIN_SLAY
new PLUGIN_NAME[] = "1950's Cloaking Device"
new PLUGIN_AUTHOR[] = "DarkShadowST"
new PLUGIN_VERSION[] = "0.1"
new cloaked_users[33]; //Hold the Id's of cloaked users
public plugin_init() {
register_plugin(PLUGIN_NAME,PLUGIN_VERSION,PLUGIN_AUTHOR);
register_concmd("amx_cloaking","set_cd_device",ACCESS_LEVEL," Usage: amx_cloaking Person <1|0>");
register_cvar("cd_worktime","2.0"); //The Time you are invisible
register_cvar("cd_downtime","1.0"); //The Time you are not invisible
register_cvar("cd_power","0"); //Your alpha value incase u don't like completely invisible
}
public set_cd_device(id) {
if(!(get_user_flags(id)&ACCESS_LEVEL)) {
client_print(id,print_console,"[AMXX] You Do Not Have Access To This Command");
return PLUGIN_HANDLED;
}
if(read_argc() < 3 || read_argc() > 3) {
client_print(id,print_console,"[AMXX] Usage: amx_cloaking <Player|@CT|@T|all> <1|0>");
return PLUGIN_HANDLED;
}
new target[40];
new choice[4];
read_argv(1,target,39);
read_argv(2,choice,3);
/////All Players////////////////////////////////////////////////////
if(equali(target,"all") || equali(target,"*")) {
if(equali(choice,"1") || equali(choice,"on")) {
new players[32], inum
get_players(players,inum,"a")
for(new i = 0; i < inum; ++i) {
if(get_user_flags(players[i])&ADMIN_IMMUNITY)
continue
if(cloaked_users[players[i]] == 1)
continue
set_user_rendering(players[i],kRenderFxGlowShell,0,0,0,kRenderTransAlpha,str_to_num("cd_power"))
cloaked_users[players[i]] = 1;
new player_id[3];
player_id[0] = players[i];
set_task(get_cvar_float("cd_worktime"),"cd_disable",(1573+players[i]),player_id,1);
}
new admin[33]
get_user_name(id,admin,32)
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"[AMXX] Admin %s: Has Enabled Cloaking Device on Everybody",admin)
case 1: client_print(0,print_chat,"[AMX] Admin Has Enabled Cloaking Device on Everybody")
}
client_print(id,print_console,"[AMX] Cloaking Device Enabled for Everyone")
return PLUGIN_HANDLED
}
if(equali(choice,"0") || equali(choice,"off")) {
new players[32], inum
get_players(players,inum,"a")
for(new i = 0; i < inum; ++i) {
if(get_user_flags(players[i])&ADMIN_IMMUNITY)
continue
if(cloaked_users[players[i]] == 0)
continue
//set_user_rendering(players[i],kRenderFxGlowShell,0,0,0,kRenderTransAlpha,250)
set_user_rendering(players[i]);
cloaked_users[players[i]] = 0;
remove_task(1573+players[i]);
}
new admin[33]
get_user_name(id,admin,32)
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"[AMXX] Admin %s: Has Disabled Cloaking Device on Everybody",admin)
case 1: client_print(0,print_chat,"[AMX] Admin Has Disabled Cloaking Device on Everybody")
}
client_print(id,print_console,"[AMX] Cloaking Device Disabled for Everyone")
return PLUGIN_HANDLED
}
client_print(id,print_console,"[AMXX] Usage: amx_cloaking <Player|@CT|@T|all> <1|0>");
return PLUGIN_HANDLED
}
/////Team Specific//(CT)/////////////////////////////////////////////////
if(equali(target,"@CT")) {
if(equali(choice,"1") || equali(choice,"on")) {
new players[32], inum
get_players(players,inum,"ae","CT")
for(new i = 0; i < inum; ++i) {
if(get_user_flags(players[i])&ADMIN_IMMUNITY)
continue
if(cloaked_users[players[i]] == 1)
continue
set_user_rendering(players[i],kRenderFxGlowShell,0,0,0,kRenderTransAlpha,str_to_num("cd_power"));
cloaked_users[players[i]] = 1;
new player_id[2];
player_id[0] = players[i];
set_task(get_cvar_float("cd_worktime"),"cd_disable",1573+id,player_id,1);
}
new admin[33]
get_user_name(id,admin,32)
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"[AMXX] Admin %s: Has Enabled Cloaking Device for all the CT's",admin)
case 1: client_print(0,print_chat,"[AMX] Admin Has Enabled Cloaking Device for all the CT's")
}
client_print(id,print_console,"[AMX] Cloaking Device Enabled for all CT's")
return PLUGIN_HANDLED
}
if(equali(choice,"0") || equali(choice,"off")) {
new players[32], inum
get_players(players,inum,"ae","CT")
for(new i = 0; i < inum; ++i) {
if(get_user_flags(players[i])&ADMIN_IMMUNITY)
continue
if(cloaked_users[players[i]] == 0)
continue
//set_user_rendering(players[i],kRenderFxGlowShell,0,0,0,kRenderTransAlpha,255)
set_user_rendering(players[i]);
cloaked_users[players[i]] = 0;
new player_id[2];
player_id[0] = players[i];
remove_task(1573+players[i]);
}
new admin[33]
get_user_name(id,admin,32)
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"[AMXX] Admin %s: Has Disabled Cloaking Device for all the CT's",admin)
case 1: client_print(0,print_chat,"[AMX] Admin Has Enabled Cloaking Device for all the CT's")
}
client_print(id,print_console,"[AMX] Cloaking Device Disabled for all CT's")
return PLUGIN_HANDLED
}
client_print(id,print_console,"[AMXX] Usage: amx_cloaking <Player|@CT|@T|all> <1|0>");
return PLUGIN_HANDLED
}
/////Team Specific//(T)/////////////////////////////////////////////////
if(equali(target,"@T") || equali(target,"@TERRORIST")) {
if(equali(choice,"1") || equali(choice,"on")) {
new players[32], inum
get_players(players,inum,"ae","TERRORIST")
for(new i = 0; i < inum; ++i) {
if(get_user_flags(players[i])&ADMIN_IMMUNITY)
continue
if(cloaked_users[players[i]] == 1)
continue
set_user_rendering(players[i],kRenderFxGlowShell,0,0,0,kRenderTransAlpha,str_to_num("cd_power"));
cloaked_users[players[i]] = 1;
new player_id[2];
player_id[0] = players[i];
set_task(get_cvar_float("cd_worktime"),"cd_disable",1573+id,player_id,1);
}
new admin[33]
get_user_name(id,admin,32)
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"[AMXX] Admin %s: Has Enabled Cloaking Device for all the Terrorists",admin)
case 1: client_print(0,print_chat,"[AMX] Admin Has Enabled Cloaking Device for all the Terrorists")
}
client_print(id,print_console,"[AMX] Cloaking Device Enabled for all Terrorists")
return PLUGIN_HANDLED
}
if(equali(choice,"0") || equali(choice,"off")) {
new players[32], inum
get_players(players,inum,"ae","TERRORIST")
for(new i = 0; i < inum; ++i) {
if(get_user_flags(players[i])&ADMIN_IMMUNITY)
continue
if(cloaked_users[players[i]] == 0)
continue
//set_user_rendering(players[i],kRenderFxGlowShell,0,0,0,kRenderTransAlpha,255)
set_user_rendering(players[i]);
cloaked_users[players[i]] = 0;
new player_id[2];
player_id[0] = players[i];
remove_task(1573+players[i]);
}
new admin[33]
get_user_name(id,admin,32)
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"[AMXX] Admin %s: Has Disabled Cloaking Device for all the Terrorists",admin)
case 1: client_print(0,print_chat,"[AMX] Admin Has Disabled Cloaking Device for all the Terrorists")
}
client_print(id,print_console,"[AMX] Cloaking Device Disabled for all CT's")
return PLUGIN_HANDLED
}
client_print(id,print_console,"[AMXX] Usage: amx_cloaking <Player|@CT|@T|all> <1|0>");
return PLUGIN_HANDLED
}
new player = cmd_target(id,target,7)
if(!player) return PLUGIN_HANDLED
if(equali(choice,"1") || equali(choice,"on")) {
/*if(get_user_flags(player)&ADMIN_IMMUNITY) {
client_print(id,print_console,"[AMXX] Client has Immunity");
return PLUGIN_HANDLED;
}*/
if(cloaked_users[player] == 1) {
client_print(id,print_console,"[AMXX] Client Already Has Cloaking Device");
return PLUGIN_HANDLED;
}
set_user_rendering(player,kRenderFxGlowShell,0,0,0,kRenderTransAlpha,str_to_num("cd_power"));
cloaked_users[player] = 1;
new player_id[2];
player_id[0] = player;
set_task(get_cvar_float("cd_worktime"),"cd_disable",1573+id,player_id,1);
new admin[33]
new pname[33]
get_user_name(id,admin,32)
get_user_name(player,pname,32)
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"[AMXX] Admin %s: Has Enabled Cloaking Device for %s",admin,pname)
case 1: client_print(0,print_chat,"[AMX] Admin Has Enabled Cloaking Device for %s",pname)
}
client_print(id,print_console,"[AMX] Cloaking Device Enabled for %s",pname)
return PLUGIN_HANDLED
}
if(equali(choice,"0") || equali(choice,"off")) {
/*if(get_user_flags(player)&ADMIN_IMMUNITY) {
client_print(id,print_console,"[AMXX] Client has Immunity");
return PLUGIN_HANDLED;
}*/
if(cloaked_users[player] == 0) {
client_print(id,print_console,"[AMXX] Client Doesn't Have a Cloaking Device");
return PLUGIN_HANDLED;
}
//set_user_rendering(player,kRenderFxGlowShell,0,0,0,kRenderTransAlpha,250));
set_user_rendering(player);
cloaked_users[player] = 0;
new player_id[2];
player_id[0] = player;
remove_task(1573 + player);
new admin[33]
new pname[33]
get_user_name(id,admin,32)
get_user_name(player,pname,32)
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"[AMXX] Admin %s: Has Disabled Cloaking Device for %s",admin,pname)
case 1: client_print(0,print_chat,"[AMX] Admin Has Disabled Cloaking Device for %s",pname)
}
client_print(id,print_console,"[AMX] Cloaking Device Disabled for %s",pname)
return PLUGIN_HANDLED
}
client_print(id,print_console,"[AMXX] Usage: amx_cloaking <Player|@CT|@T|all> <1|0>");
return PLUGIN_HANDLED
}
public cd_disable(player_id[]) {
new id = player_id[0];
set_user_rendering(id);
set_task(get_cvar_float("cd_downtime"),"cd_enable",1573+id,player_id,1);
return PLUGIN_CONTINUE;
}
public cd_enable(player_id[]) {
new id = player_id[0];
set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderTransAlpha,str_to_num("cd_power"));
set_task(get_cvar_float("cd_worktime"),"cd_disable",1573+id,player_id,1);
return PLUGIN_CONTINUE;
}
public client_connect(id) {
cloaked_users[id] = 0;
return PLUGIN_CONTINUE;
}
public client_disconnect(id) {
if(cloaked_users[id] == 1) {
cloaked_users[id] = 0;
remove_task(1573 + id);
}
return PLUGIN_CONTINUE;
}