AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Cache Cache Team choose problem. (https://forums.alliedmods.net/showthread.php?t=229932)

Sub7apte 11-17-2013 06:19

Cache Cache Team choose problem.
 
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]


All times are GMT -4. The time now is 23:20.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.