|
New Member
|

11-17-2013
, 06:19
Cache Cache Team choose problem.
|
#1
|
Hello,
I have a problem with team choose menu. Sometimes, appear two menus, the motd menu and the default menu and sometimes only the default menu. When appears only the default menu, I can't join a team. How can I solve this problem?
cache.sma :
Code:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
/* Cache-Cache by KRoT@L
*
* Ported to AMXx by INeedHelp
*
* Fakemeta Convertion by xPaw
*/
#define ACCESS_HAS ADMIN_RCON
#define PLUGIN_NAME "Cache-Cache (H&S)"
#define HAS_VERSION "1.1"
new hidesongs[][] =
{
"Prospero03", "Prospero05", "Suspense05",
"Suspense03", "Suspense01"
}
new seekerssongs[][] =
{
"Half-Life03", "Half-Life04", "Half-Life05",
"Half-Life06", "Half-Life07", "Half-Life09",
"Half-Life10", "Half-Life14", "Half-Life15"
}
new seekedsongs[][] =
{
"Half-Life01", "Half-Life02", "Half-Life08",
"Half-Life11", "Half-Life12", "Half-Life13",
"Half-Life16", "Half-Life17"
}
new mincats = 1;
new mice = 2;
new Float:hidetime = 50.0;
new flashlight[33];
new color[33];
new g_color[][] =
{
{100,0,0},{0,100,0},{0,0,100},{0,100,100},{100,0,100},{100,100,0},
{100,0,60},{100,60,0},{0,100,60},{60,100,0},{0,60,100},{60,0,100},
{100,50,50},{50,100,50},{50,50,100},{0,50,50},{50,0,50},{50,50,0}
}
new skies[][] = { "space" };
new flashlight_custom, flashlight_radius, flashlight_only_ct;
new gmsgFlashlight, gmsgTeamInfo;
new active;
new phase;
new killed[32];
new s_gravity, s_roundtime, s_freezetime, s_limitteams, s_autoteambalance, s_alltalk, s_footsteps, s_friendlyfire, s_startmoney; // Used to save original server CVars values
new Float:s_buytime;
new transferring[33];
new gmsgScreenFade;
new inround = 0;
new counter;
new hasdbg = 0;
new amx_hs_light, amx_hs_flash, radius_cvar;
new autolaunch;
new g_opt[33][2];
new g_decompte;
// Fakemeta Convertion
#define OFFSET_TEAM 114
#define OFFSET_NVGOGGLES 129
#define HAS_NVGOGGLES (1<<0)
#define fm_create_entity(%1) engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, %1))
#define fm_is_valid_ent(%1) pev_valid(%1)
enum
{
FM_TEAM_UNASSIGNED,
FM_TEAM_T,
FM_TEAM_CT,
FM_TEAM_SPECTATOR,
FM_TEAM_MAX
};
stock get_maxcats()
{
new playersnum, Float:div, ndiv, result;
playersnum = get_playersnum(1);
div = float(playersnum) / 6;
ndiv = floatround(div,floatround_floor);
if( ndiv < mincats )
result = mincats;
else
result = ndiv;
return result;
}
public plugin_init()
{
register_plugin(PLUGIN_NAME, HAS_VERSION, "djeyL/INeedHelp/xPaw");
register_cvar("amx_cc_version", HAS_VERSION, FCVAR_SERVER);
set_cvar_string("amx_cc_version", HAS_VERSION)
register_cvar("amx_cc_decompte", "0");
amx_hs_light = register_cvar("hns_light","1");
amx_hs_flash = register_cvar("hns_flash","2");
radius_cvar = register_cvar("hns_radius_cvar","100");
autolaunch = register_cvar("hns_autolaunch","1");
flashlight_custom = register_cvar("hns_flashlight_custom","1");
flashlight_radius = register_cvar("hns_flashlight_radius","20");
flashlight_only_ct = register_cvar("hns_flashlight_only_ct","1");
register_concmd("amx_hideandseek", "hideandseek", ACCESS_HAS, "- <on|off|mincats x|mice x|hidetime x>");
register_clcmd("jointeam", "jointeam");
register_clcmd("chooseteam", "chooseteam");
register_clcmd("buy", "buy");
register_event("SendAudio", "endround", "a", "2&%!MRAD_terwin", "2&%!MRAD_ctwin", "2&%!MRAD_rounddraw");
register_event("TextMsg", "gamestart", "a", "2&#Game_C", "2&#Game_w");
register_event("RoundTime", "newround", "bc");
register_event("CurWeapon", "switchweapon", "be", "1=1");
register_event("DeathMsg", "deathmsg", "a");
register_event("ScreenFade", "FlashedEvent", "be","4=255","5=255","6=255","7>199");
register_event("ShowMenu", "teamselect", "b","4&#Team_Select");
register_event("Flashlight", "event_flashlight", "b");
register_forward(FM_PlayerPreThink, "fwdPlayerPreThink");
active = 0;
gmsgScreenFade = get_user_msgid("ScreenFade");
gmsgFlashlight = get_user_msgid("Flashlight");
gmsgTeamInfo = get_user_msgid( "TeamInfo" );
set_cvar_num("mp_flashlight",1);
set_task(15.0, "lauchgame", 165);
}
public client_putinserver(id)
{
random_num(0, sizeof( g_color ) - 1);
}
public lauchgame(taskid)
{
if(!get_pcvar_num(autolaunch))
return;
server_cmd("amx_hideandseek on");
}
public plugin_precache()
{
new fog = fm_create_entity("env_fog");
//DispatchKeyValue(fog, "density", "0.000650");
fm_set_kvd(fog, "density", "0.000650");
new r = random_num(1, 128);
new g = random_num(1, 128);
new b = random_num(1, 128);
new rouge[3], vert[3], bleu[3];
num_to_str(r,rouge,2);
num_to_str(g,vert,2);
num_to_str(b,bleu,2);
new test[12];
formatex(test,11,"%s %s %s",rouge,vert,bleu);
//DispatchKeyValue(fog,"rendercolor",test);
fm_set_kvd(fog,"rendercolor",test);
new rand = random_num(0, sizeof(skies)-1);
set_cvar_string("sv_skyname", skies[rand]);
}
public client_connect(id)
{
if(!is_user_bot(id))
{
get_user_info(id,"_vgui_menus",g_opt[id],1);
set_user_info(id,"_vgui_menus","0");
}
}
public client_disconnect(id)
{
new i;
transferring[id] = 0;
for (i=0; i<32; i++)
{
if (killed[i] == id)
{
break;
}
}
if(i == 32)
return;
if (killed[i] == id)
{
for (i++; i<32 && killed[i]!=0; i++)
{
killed[i-1] = killed[i];
}
killed[i] = 0;
}
}
public teamselect(id)
{
if(!is_user_bot(id))
{
if(active != 0)
{
new i, players[32];
get_players(players,i);
if (i == 1)
inround = 1;
transferring[id] = 1;
client_cmd(id, "jointeam 1");
}
set_user_info(id,"_vgui_menus",g_opt[id]);
}
}
public hideandseek(id, level, cid)
{
new arg[16];
new pnum;
new cts;
new players[32];
new i;
if (read_argv(1, arg, 15) == 0)
{
console_print(id, "* Hide & Seek plugin v%s is currently %s [hidetime:%d,mincats:%d,mice:%d]", HAS_VERSION, active ? "running!" : "stopped.", floatround(hidetime), mincats, mice);
return PLUGIN_HANDLED;
}
if (!cmd_access(id, level, cid, 1))
{
return PLUGIN_HANDLED;
}
if (equal(arg, "mincats") || equal(arg, "chatsmin"))
{
if (read_argv(2, arg, 15) == 0)
{
console_print(id, "* Hide & Seek: mincats = %d", mincats);
return PLUGIN_HANDLED;
}
else
{
if (cmd_access(id, level, cid, 1))
{
if (active != 0)
{
console_print(id, "* Hide & Seek: you can not change game rules right now!");
return PLUGIN_HANDLED;
}
i = str_to_num(arg);
if (i>0)
{
mincats = i;
console_print(id, "* Hide & Seek: 'mincats' set to %d", mincats);
}
else
{
console_print(id, "* Hide & Seek: invalid 'mincats' value (minimum: 1)");
}
return PLUGIN_HANDLED;
}
}
}
else if (equal(arg, "mice") || equal(arg, "souris"))
{
if (read_argv(2, arg, 15) == 0)
{
console_print(id, "* Hide & Seek: mice = %d", mice);
return PLUGIN_HANDLED;
}
else
{
if (cmd_access(id, level, cid, 1))
{
if (active != 0)
{
console_print(id, "* Hide & Seek: you can not change game rules right now!");
return PLUGIN_HANDLED;
}
i = str_to_num(arg);
if (i>=0)
{
mice = i;
console_print(id, "* Hide & Seek: 'mice' set to %d", mice);
}
else
{
console_print(id, "* Hide & Seek: invalid 'mice' value (minimum: 0)");
}
return PLUGIN_HANDLED;
}
}
}
else if (equal(arg, "hidetime") || equal(arg, "dureeplanque"))
{
if (read_argv(2, arg, 15) == 0)
{
console_print(id, "* Hide & Seek: hidetime = %d seconds", floatround(hidetime));
return PLUGIN_HANDLED;
}
else
{
if (cmd_access(id, level, cid, 1))
{
if (active != 0)
{
console_print(id, "* Hide & Seek: you can not change game rules right now!");
return PLUGIN_HANDLED;
}
i = str_to_num(arg);
if (i>=15)
{
hidetime = float(i);
console_print(id, "* Hide & Seek: 'hidetime' set to %d seconds", floatround(hidetime));
}
else
{
console_print(id, "* Hide & Seek: invalid 'hidetime' value (minimum: 15 seconds)");
}
return PLUGIN_HANDLED;
}
}
}
else if ((equali(arg, "on") || equal(arg, "1") || equal(arg, "start")) && active == 0)
{
client_print(0, print_chat, "[Cache Mod] O sesiune a fost inceputa !");
new ConfigsDir[128]
get_configsdir(ConfigsDir, 127)
server_cmd("exec %s/has-on.cfg", ConfigsDir);
active = 1;
phase = 0;
s_gravity = get_cvar_num("sv_gravity");
s_roundtime = get_cvar_num("mp_roundtime");
s_freezetime = get_cvar_num("mp_freezetime");
s_limitteams = get_cvar_num("mp_limitteams");
s_autoteambalance = get_cvar_num("mp_autoteambalance");
s_alltalk = get_cvar_num("sv_alltalk");
s_footsteps = get_cvar_num("mp_footsteps");
s_friendlyfire = get_cvar_num("mp_friendlyfire");
s_startmoney = get_cvar_num("mp_startmoney");
s_buytime = get_cvar_float("mp_buytime");
server_cmd("amx_restrict on");
set_cvar_num("sv_gravity", 150);
set_cvar_num("mp_roundtime", 3);
set_cvar_num("mp_freezetime", 0);
set_cvar_num("mp_limitteams", 0);
set_cvar_num("mp_autoteambalance", 0);
set_cvar_num("sv_alltalk", 1);
set_cvar_num("mp_friendlyfire", 0);
set_cvar_num("mp_startmoney", 16000);
set_cvar_num("mp_buytime", 5);
if(get_pcvar_num(amx_hs_light))
fm_set_lights("d");
new maxcats = get_maxcats();
get_players(players, cts, "e", "CT");
if (cts > maxcats)
{
for (i=maxcats; i<cts; i++)
{
if (hasdbg)
client_print(0, print_chat,"* Hide'n'Seek[init]: Already enough CTs")
fm_set_user_team(players[i], FM_TEAM_T);
}
}
else if (cts < mincats)
{
get_players(players, pnum, "e", "TERRORIST");
for (i=0; cts<mincats && i<pnum; i++)
{
if (hasdbg)
client_print(0, print_chat, "* Hide'n'Seek[init]: Need more CTs")
fm_set_user_team(players[i], FM_TEAM_CT);
cts++;
}
}
set_task(2.0, "plugin_timer", 412563, "", 0, "b")
}
else if ((equali(arg, "off") || equal(arg, "0") || equal(arg, "stop")) && active != 0)
{
client_print(0, print_chat, "[Cache Mod] Sesiune terminata !");
new ConfigsDir[128]
get_configsdir(ConfigsDir, 127)
server_cmd("exec %s/has-off.cfg", ConfigsDir)
active = 0;
if (task_exists(412563))
remove_task(412563);
set_cvar_num("sv_gravity", s_gravity);
set_cvar_num("mp_roundtime", s_roundtime);
set_cvar_num("mp_freezetime", s_freezetime);
set_cvar_num("mp_limitteams", s_limitteams);
set_cvar_num("mp_autoteambalance", s_autoteambalance);
set_cvar_num("sv_alltalk", s_alltalk);
set_cvar_num("mp_footsteps", s_footsteps);
set_cvar_num("mp_friendlyfire", s_friendlyfire);
set_cvar_num("mp_startmoney", s_startmoney);
set_cvar_float("mp_buytime", s_buytime);
server_cmd("amx_restrict off");
if(get_pcvar_num(amx_hs_light))
fm_set_lights("d")
remove_task(412564);
remove_task(412565);
remove_task(412566);
remove_task(147258);
get_players(players, pnum);
for(i=0; i<pnum; i++)
{
fm_set_user_maxspeed(players[i], 240.0);
fm_set_user_gravity(players[i], 1.0);
fm_set_user_godmode(players[i], 0);
}
set_cvar_num("sv_restart", 2);
}
return PLUGIN_HANDLED;
}
public plugin_timer()
{
new ts[32];
new cts[32];
new tnum;
new ctnum;
new i;
new specialcase = 0;
new maxcats = get_maxcats();
get_players(ts, tnum, "e", "TERRORIST");
get_players(cts, ctnum, "e", "CT");
if(ctnum==0)
specialcase = 1;
if(tnum>=mice && ctnum>=mincats)
{
if(active == 1)
{
client_print(0, print_chat, "[Cache Mod] Sunt destui jucatori , incepem jocul !");
active = 2;
set_cvar_num("sv_restart", 1);
}
else if (active == 3)
{
if (phase == 1)
{
for(i=0; i<tnum; i++)
{
fm_set_user_maxspeed(ts[i], 400.0);
fm_set_user_gravity(ts[i], 1.0);
}
for(i=0; i<ctnum; i++)
{
fm_set_user_maxspeed(cts[i], 0.1);
fm_set_user_gravity(cts[i], 10.0);
}
}
else if (phase == 2)
{
for(i=0; i<tnum; i++)
{
fm_set_user_maxspeed(ts[i], 0.1);
fm_set_user_gravity(ts[i], 10.0);
}
for(i=0; i<ctnum; i++)
{
fm_set_user_maxspeed(cts[i], 400.0);
fm_set_user_gravity(cts[i], 1.0);
}
}
}
}
else
{
if (ctnum < mincats)
{
for(i=tnum-1; i>=0 && ctnum<maxcats; i--)
{
if (hasdbg)
client_print(0,print_chat,"* Hide'n'Seek[timer]: Not enough CTs")
fm_set_user_team(ts[i], FM_TEAM_CT);
ctnum++;
tnum--;
}
}
else if (ctnum>maxcats)
{
for(i=ctnum-maxcats; i>=0 && tnum<mice; i--)
{
if (hasdbg)
client_print(0,print_chat,"* Hide'n'Seek[timer]: Too many CTs");
fm_set_user_team(cts[i], FM_TEAM_T);
ctnum --;
tnum ++;
}
}
if (ctnum>=mincats && ctnum<=maxcats && tnum>=mice)
{
if(!specialcase)
set_cvar_num("sv_restart", 1);
}
else
{
if (active == 1)
{
set_hudmessage(0, 255, 0, 0.05, 0.4, 0, 6.0, 5.0, 0.5, 0.15, 7);
show_hudmessage(0, "[Cache Mod] Nu sunt destui jucatori !");
}
else
{
set_hudmessage(0, 255, 0, 0.05, 0.4, 0, 6.0, 5.0, 0.5, 0.15, 7);
show_hudmessage(0, "[Cache Mod] Nu sunt destui jucatori !");
active = 1;
remove_task(412564);
remove_task(412565);
for(i=0; i<tnum; i++)
{
fm_set_user_maxspeed(ts[i], 240.0);
fm_set_user_gravity(ts[i], 1.0);
}
for(i=0; i<ctnum; i++)
{
fm_set_user_maxspeed(cts[i], 240.0);
fm_set_user_gravity(cts[i], 1.0);
}
if(get_pcvar_num(amx_hs_light))
fm_set_lights("d");
set_cvar_num("sv_restart", 1);
}
}
}
get_players(ts, tnum, "b");
for(tnum--; tnum>=0; tnum--)
{
fm_set_user_maxspeed(ts[tnum], 240.0);
fm_set_user_gravity(ts[tnum], 1.0);
}
}
public newround()
{
new players[32];
new pnum;
new i;
new maxcats = get_maxcats();
if (read_data(1) == floatround(get_cvar_float("mp_roundtime")*60.0))
{
remove_task(147258);
inround = 1;
if(active < 2)
return;
get_players(players, pnum, "e", "CT");
get_players(players, i, "e", "TERRORIST");
if (pnum>=mincats && pnum<=maxcats && i>=mice)
{
set_hudmessage(0, 255, 0, 0.05, 0.4, 0, 6.0, 5.0, 0.5, 0.15, 7);
show_hudmessage(0, "[Cache Mod] Teroristi , aveti %d secunde sa va ascundeti !", floatround(hidetime));
client_cmd(0, "spk radio/com_getinpos");
set_cvar_num("mp_footsteps", 0);
if (active == 2)
active = 3;
phase = 1;
if(get_pcvar_num(amx_hs_light))
fm_set_lights("d");
for (i=0; i<32; i++)
{
killed[i] = 0;
}
get_players(players,pnum,"e","TERRORIST");
new a = random_num(0, sizeof(hidesongs) - 1);
for (i=0; i<pnum; i++)
{
engclient_cmd(players[i], "weapon_knife");
fm_set_user_godmode(players[i], 1);
fm_set_user_nvg(players[i], 1);
flashlight[players[i]] = 0
client_cmd(players[i], "mp3 play media/%s", hidesongs[a]);
}
get_players(players,pnum,"e","CT");
for (i=0; i<pnum; i++)
{
engclient_cmd(players[i], "weapon_knife");
f2b(players[i], 1);
fm_set_user_godmode(players[i], 1);
fm_set_user_nvg(players[i], 0);
printad(players[i], hidetime);
client_cmd(players[i], "mp3 play media/%s", hidesongs[a]);
}
remove_task(412564);
set_task(hidetime, "round_timer", 412564);
remove_task(412565);
set_task(hidetime - 3.0, "soon_timer", 412565);
remove_task(412566);
counter = floatround(hidetime);
set_task(1.0, "countdown", 412566, "", 0, "b");
new decompte = get_cvar_num("amx_cc_decompte");
if(decompte > 0)
{
new Float:tasktime = get_cvar_float("mp_roundtime")*60.0 - float(decompte);
if(tasktime > 4.0)
set_task(tasktime-3.0, "lancerDecompte", 789456+decompte);
}
}
}
}
public lancerDecompte(id)
{
g_decompte = id - 789456;
set_task(1.0, "afficherDecompte", 147258, "", 0, "b");
}
public afficherDecompte()
{
set_hudmessage(255, 255, 255, 0.05, 0.45, 0, 1.0, 1.0, 0.2, 0.2, 8);
g_decompte--;
if(g_decompte == 0)
{
new players[32], inum, id;
get_players(players, inum, "ae", "TERRORIST");
for(new i = 0; i < inum; i++)
{
id = players[i];
set_pdata_int(id, 444, get_user_deaths(id) - 1);
user_kill(id, 1);
}
remove_task(147258);
return
}
show_hudmessage(0, "%ds before the end !", g_decompte);
}
public countdown()
{
set_hudmessage(255, 20, 0, 0.10, 0.50, 0, 1.0, 1.0, 0.2, 0.2, 9);
counter--;
show_hudmessage(0, "%d", counter);
}
public round_timer()
{
new players[32];
new pnum;
if (active == 3)
{
remove_task(412566);
client_print(0, print_chat, "[Cache Cache] CT , gaseste-i pe teroristi si omoara-i");
client_cmd(0, "spk radio/com_go");
phase = 2;
if(get_pcvar_num(amx_hs_light))
fm_set_lights("a");
get_players(players, pnum, "ae", "CT");
new a = random_num(0, sizeof(seekerssongs) - 1);
for (pnum--; pnum>=0; pnum--)
{
f2b(players[pnum], 0);
client_cmd(players[pnum], "mp3 play media/%s",seekerssongs[a]);
fm_give_item(players[pnum], "weapon_knife");
fm_give_item(players[pnum], "weapon_deagle");
fm_give_item(players[pnum], "ammo_50ae");
fm_give_item(players[pnum], "ammo_50ae");
fm_give_item(players[pnum], "ammo_50ae");
fm_give_item(players[pnum], "ammo_50ae");
fm_give_item(players[pnum], "ammo_50ae");
fm_give_item(players[pnum], "ammo_50ae");
fm_give_item(players[pnum], "weapon_m4a1");
fm_give_item(players[pnum], "ammo_556nato");
fm_give_item(players[pnum], "ammo_556nato");
fm_give_item(players[pnum], "ammo_556nato");
fm_give_item(players[pnum], "ammo_556nato");
fm_give_item(players[pnum], "ammo_556nato");
fm_give_item(players[pnum], "ammo_556nato");
new flashs = get_pcvar_num(amx_hs_flash);
if(flashs ==1)
fm_give_item(players[pnum], "weapon_flashbang");
else if(flashs ==2)
{
fm_give_item(players[pnum], "weapon_flashbang");
fm_give_item(players[pnum], "weapon_flashbang");
}
}
a = random_num(0, sizeof(seekedsongs) - 1);
get_players(players, pnum, "ae", "TERRORIST");
for (pnum--; pnum>=0; pnum--)
{
fm_set_user_godmode(players[pnum], 0);
client_cmd(players[pnum], "mp3 play media/%s",seekedsongs[a]);
fm_set_user_maxspeed(players[pnum], 400.0)
}
}
}
public soon_timer()
{
if (active == 3)
{
client_print(0, print_chat,"[Cache Mod] Teroristi , incetati sa sariti sau va veti izbi de pamant !");
client_cmd(0, "spk radio/position");
}
}
public jointeam(id)
{
if (active == 0)
{
return PLUGIN_CONTINUE;
}
if (transferring[id] == 1)
{
transferring[id] = 0;
return PLUGIN_CONTINUE;
}
return PLUGIN_HANDLED;
}
public chooseteam(id)
{
if (active == 0)
{
return PLUGIN_CONTINUE;
}
return PLUGIN_HANDLED;
}
public switchweapon(id)
{
if(!active)
return;
if( active > 0 && active < 3 )
{
fm_set_user_maxspeed(id, 400.0);
return;
}
new weapon = read_data(2);
new team = get_user_team(id);
switch( phase )
{
case 1:
{
if( weapon != CSW_KNIFE )
{
if(is_user_bot(id))
engclient_cmd(id, "weapon_knife");
else
client_cmd(id, "weapon_knife");
}
switch( team ) {
case 2:
{
fm_set_user_maxspeed(id, 0.1);
}
case 1:
{
fm_set_user_maxspeed(id, 400.0);
}
}
}
case 2:
{
switch( team ) {
case 1:
{
fm_set_user_maxspeed(id, 0.1);
if( weapon != CSW_KNIFE )
{
if(is_user_bot(id))
engclient_cmd(id, "weapon_knife");
else
client_cmd(id, "weapon_knife");
}
}
case 2:
{
fm_set_user_maxspeed(id, 400.0);
}
}
}
}
}
public buy(id)
{
if (active == 3)
{
new team[32];
get_user_team(id, team, 31);
if (equali(team, "TERRORIST"))
{
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE;
}
public deathmsg()
{
new i;
new team[32];
new victim = read_data(2);
flashlight[victim] = 0;
if (active == 3)
{
printad(victim, 1000.0);
get_user_team(victim, team, 31);
if (equali(team, "TERRORIST"))
{
client_cmd(0, "spk radio/enemydown");
for (i=0; i<32 && killed[i]!=0; i++)
{
}
if (i == 32)
{
for (i=1; i<32; i++)
killed[i-1] = killed[i];
}
killed[i] = victim;
}
}
}
public gamestart()
{
remove_task(147258);
}
public endround()
{
inround = 0;
if (active)
{
set_task(2.5,"delayed_endround");
if(get_pcvar_num(amx_hs_light))
fm_set_lights("d");
}
}
public delayed_endround()
{
remove_task(147258);
new newcats = 0;
new players[32];
new cts[32];
new ctnum;
new pnum;
new i;
if (active != 3)
{
return PLUGIN_CONTINUE;
}
remove_task(412564);
remove_task(412565);
remove_task(412566);
get_players(cts, ctnum, "e", "CT");
get_players(players, pnum, "e", "TERRORIST");
if (ctnum<mincats || pnum<mice)
{
client_print(0, print_chat,"[Cache Mod] Anti-teroristul a iesit , vom face niste schimbari la echipe !");
return PLUGIN_CONTINUE;
}
new maxcats = get_maxcats();
get_players(players,pnum,"ae","TERRORIST");
for (i=0; i<pnum && newcats<maxcats; i++)
{
if (hasdbg)
client_print(0,print_chat,"* Hide'n'Seek[endround]: Was still alive, moving to CTs")
fm_set_user_team(players[i], FM_TEAM_CT);
newcats++;
}
if (newcats < maxcats)
{
for (i=31; i>=0 && killed[i]==0; i--)
{
}
for (; i>=0 && newcats<maxcats; i--)
{
if (hasdbg)
client_print(0,print_chat,"* Hide'n'Seek[endround]: Was killed, moving to CTs");
fm_set_user_team(killed[i], FM_TEAM_CT);
newcats++;
}
}
for(i=0; i < ctnum; i++)
{
if (hasdbg)
client_print(0,print_chat,"* HnS: Was a CT, moving to Ts");
fm_set_user_team(cts[i], FM_TEAM_T);
}
return PLUGIN_CONTINUE;
}
public printad(id, Float:duration)
{
set_hudmessage(255, 127, 0, -1.0, 0.1, 2, 1.0, duration, 0.0, 1.0, 8);
show_hudmessage(id, ":: [ Cache Mod V%s ] ::", HAS_VERSION);
}
stock f2b(id, type)
{
message_begin(MSG_ONE_UNRELIABLE, gmsgScreenFade, _, id);
write_short(5000);
write_short(5000);
write_short(type==1?5:0);
write_byte(0);
write_byte(20);
write_byte(40);
write_byte(255);
message_end();
}
public emitsound(entity, const sample[])
{
if(!get_pcvar_num(amx_hs_flash))
return PLUGIN_CONTINUE;
if(!equali(sample,"weapons/flashbang-1.wav") && !equali(sample,"weapons/flashbang-2.wav"))
return PLUGIN_CONTINUE;
flashbang_explode(entity);
return PLUGIN_CONTINUE;
}
public flashbang_explode(greindex)
{
if(!fm_is_valid_ent(greindex))
return;
new Float:origin[3];
//entity_get_vector(greindex,EV_VEC_origin,origin);
pev(greindex,pev_origin,origin);
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(27);
write_coord(floatround(origin[0]));
write_coord(floatround(origin[1]));
write_coord(floatround(origin[2]));
write_byte(get_pcvar_num(radius_cvar));
write_byte(205);
write_byte(255);
write_byte(205);
write_byte(150);
write_byte(200);
message_end();
}
public FlashedEvent(id)
{
if(get_pcvar_num(amx_hs_flash))
return PLUGIN_HANDLED;
return PLUGIN_CONTINUE;
}
public event_flashlight(id)
{
if(!get_pcvar_num(flashlight_custom))
return;
//new CsTeams:team = cs_get_user_team(id)
new team = get_user_team(id)
if(team != 2 && get_pcvar_num(flashlight_only_ct))
{
flashlight[id] = 0;
}
else
{
if(flashlight[id])
{
flashlight[id] = 0;
color[id] = random_num(0, sizeof( g_color ) - 1);
}
else
{
flashlight[id] = 1;
}
}
message_begin(MSG_ONE,gmsgFlashlight,_,id);
write_byte(flashlight[id]);
write_byte(100);
message_end();
//entity_set_int(id,EV_INT_effects,entity_get_int(id,EV_INT_effects) & ~EF_DIMLIGHT);
set_pev(id,pev_effects,pev(id,pev_effects) & ~EF_DIMLIGHT);
}
public fwdPlayerPreThink(id)
{
if(!get_pcvar_num(flashlight_custom))
return;
new a = color[id];
if(flashlight[id])
{
new origin[3];
get_user_origin(id,origin,3);
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(TE_DLIGHT);
write_coord(origin[0]);
write_coord(origin[1]);
write_coord(origin[2]);
write_byte(get_pcvar_num(flashlight_radius));
write_byte(g_color[a][0]);
write_byte(g_color[a][1]);
write_byte(g_color[a][2]);
write_byte(1);
write_byte(60);
message_end();
}
}
// Stocks
stock fm_give_item(index, const item[]) {
if (!equal(item, "weapon_", 7) && !equal(item, "ammo_", 5) && !equal(item, "item_", 5) && !equal(item, "tf_weapon_", 10))
return 0;
new ent = fm_create_entity(item);
if (!pev_valid(ent))
return 0;
new Float:origin[3];
pev(index, pev_origin, origin);
set_pev(ent, pev_origin, origin);
set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN);
dllfunc(DLLFunc_Spawn, ent);
new save = pev(ent, pev_solid);
dllfunc(DLLFunc_Touch, ent, index);
if (pev(ent, pev_solid) != save)
return ent;
engfunc(EngFunc_RemoveEntity, ent);
return -1;
}
stock fm_set_user_gravity(index, Float:gravity = 1.0) {
set_pev(index, pev_gravity, gravity);
return 1;
}
stock fm_set_user_godmode(index, godmode = 0) {
set_pev(index, pev_takedamage, godmode == 1 ? DAMAGE_NO : DAMAGE_AIM);
return 1;
}
stock fm_set_user_maxspeed(index, Float:speed = -1.0) {
engfunc(EngFunc_SetClientMaxspeed, index, speed);
set_pev(index, pev_maxspeed, speed);
return 1;
}
stock fm_set_user_nvg(index, nvgoggles = 1)
{
new current = get_pdata_int(index, OFFSET_NVGOGGLES);
if( !(current & HAS_NVGOGGLES) && nvgoggles )
{
current |= HAS_NVGOGGLES;
}
else if( (current & HAS_NVGOGGLES) && !nvgoggles )
{
current &= ~HAS_NVGOGGLES;
}
else
{
return 0;
}
set_pdata_int(index, OFFSET_NVGOGGLES, current);
return 1;
}
fm_set_lights(const lights[])
engfunc(EngFunc_LightStyle, 0, lights);
stock fm_set_kvd(entity, const key[], const value[], const classname[] = "") {
if (classname[0])
set_kvd(0, KV_ClassName, classname);
else {
new class[32];
pev(entity, pev_classname, class, sizeof class - 1);
set_kvd(0, KV_ClassName, class);
}
set_kvd(0, KV_KeyName, key);
set_kvd(0, KV_Value, value);
set_kvd(0, KV_fHandled, 0);
return dllfunc(DLLFunc_KeyValue, entity, 0);
}
stock fm_set_user_team(client, team) {
set_pdata_int(client, OFFSET_TEAM, team);
static const TeamInfo[FM_TEAM_MAX][] =
{
"UNASSIGNED",
"TERRORIST",
"CT",
"SPECTATOR"
};
message_begin(MSG_ALL, gmsgTeamInfo);
write_byte(client);
write_string(TeamInfo[team]);
message_end();
}
And the screenshots : [img]http://**************/a/img10/8089/zjm5.jpg[/img] [img]http://**************/a/img163/3192/y5wj.jpg[/img]
Last edited by Sub7apte; 11-17-2013 at 06:20.
|
|