AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   [Edit Plugin] CacheCache Hide&Seek (https://forums.alliedmods.net/showthread.php?t=192221)

BaNzoun3t 08-07-2012 18:01

[Edit Plugin] CacheCache Hide&Seek
 
Hi guys,

I'm trying to edit the dJeyL & KRoT@L's plugin to get the map as dark as possible, at the moment the map is a little foggy and you can see ppl without the flashlight :s

The problem is I don't know amxx API :s

Can someone help me please?

Here is the plugin :

PHP Code:

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include < engine >
#include < hamsandwich >
#include <fun>

/* Cache-Cache by KRoT@L
 *
 * Ported to AMXx by INeedHelp
 *
 * Fakemeta Convertion by xPaw
 *
 * Bugfix by Tolsty
 *
 */

/* Tolstys note`s
Ct`s have godmode
T cant pull out a weapon and move any more 
removed bomb objective and raplaced it with hostage teleported outside of the map( cred: hlstriker )
added /soulspec mode for terrorists (cred: exolent)
added /sound cmd to disable hl sounds
*/

#define ACCESS_HAS ADMIN_RCON

#define PLUGIN_NAME "Cache-Cache (H&S)"
#define HAS_VERSION "1.4"

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 30.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_customflashlight_radiusflashlight_only_ct;
new 
gmsgFlashlightgmsgTeamInfo;

new 
active
new 
phase
new 
killed[32];
new 
s_gravitys_roundtimes_freezetimes_limitteamss_autoteambalances_alltalks_footstepss_friendlyfires_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 
sound[33];
new 
bool:hostageMade;

#define RED get_pcvar_num(soul_bodyglow_r)
#define GREEN get_pcvar_num(soul_bodyglow_g)
#define BLUE get_pcvar_num(soul_bodyglow_b)

new soul_bodyglow_r;
new 
soul_bodyglow_g;
new 
soul_bodyglow_b;
new 
soul_bodyglow;
new 
g_iCamera33 ];
new 
bool:g_bFlying33 ];
new 
bool:g_bActivated33 ];

new 
amx_hs_lightamx_hs_flashradius_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 
playersnumFloat:divndivresult;
    
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_NAMEHAS_VERSION"djeyL/INeedHelp/xPaw/Tolsty"); 
    
    
register_cvar("amx_cc_version"HAS_VERSIONFCVAR_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("say /sound",    "stopsound");
    
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("Flashlight",    "event_flashlight""b");
    
    
register_forward(FM_PlayerPreThink"fwdPlayerPreThink"0);


    
soul_bodyglow register_cvar("soul_bodyglow","1");
    
soul_bodyglow_r register_cvar("soul_bodyglow_r","255");
    
soul_bodyglow_g register_cvar("soul_bodyglow_g","255");
    
soul_bodyglow_b register_cvar("soul_bodyglow_b","0");

    
register_forwardFM_CmdStart"FwdCmdStart" );

    
register_clcmd("say /soulspec""CmdActivate");
    
register_clcmd("say /ghostspec""CmdActivate");
    
register_clcmd("soulspec""CmdActivate");
    
register_clcmd("ghostspec""CmdActivate");

    new 
iEntity;
    new 
iMaxPlayers get_maxplayers( );
    for( new 
client 1client <= iMaxPlayersclient++ ) {
        
iEntity create_entity"info_target" );
        
entity_set_stringiEntityEV_SZ_classname"player_soul" );
        
entity_set_intiEntityEV_INT_movetypeMOVETYPE_FLY ); // noclip is buggy when going deep into walls :(
        
entity_set_intiEntityEV_INT_solidSOLID_NOT );
        
entity_set_modeliEntity"models/w_usp.mdl" );
        
set_renderingiEntitykRenderFxNone000kRenderTransTexture);
        
g_iCameraclient ] = iEntity;

    }
    
    
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 
render(client) {
    
set_user_rendering(client,21,0,0,0,0,0)
}

public 
FwdPlayerSpawnclient ) {
    if( 
is_user_aliveclient ) && g_bFlyingclient ] ) {
        
ResetCameraclient );
    }
}

public 
FwdPlayerDeathclient ) {
    if( !
is_user_aliveclient ) && g_bFlyingclient ] ) {
        
ResetCameraclient );
    }
}

public 
CmdActivate(client) {
    if(
get_user_team(client) == 2
        return 
PLUGIN_HANDLED;

    if( 
g_bActivated[client] )
        
g_bActivated[client] = false;
    else {
        
g_bActivated[client] = true;
    }

    return 
PLUGIN_CONTINUE;
}

public 
FwdCmdStartclientucHandle ) {
    if( !
is_user_aliveclient ) ) {
        return;
    }

    static 
iButtons;
    
iButtons get_ucucHandleUC_Buttons );

    if( 
g_bActivated[client] ) {
        if( 
g_bFlyingclient ] ) {
            
ResetCameraclient );
            
g_bActivated[client] = false;
        } else if( 
pevclientpev_flags ) & FL_ONGROUND && !( iButtons IN_DUCK )) {
            
g_bFlyingclient ] = true;
            
attach_viewclientg_iCameraclient ] );
            static 
Float:vOrigin]; 
            
entity_get_vectorclientEV_VEC_originvOrigin );
            
entity_set_vectorg_iCameraclient ], EV_VEC_originvOrigin );
            
vOrigin[2] -= 15;
            
entity_set_vectorclient EV_VEC_originvOrigin );
            if( 
get_pcvar_num(soul_bodyglow) ) {
                
set_rendering(client,kRenderFxGlowShell,RED,GREEN,BLUE,kRenderNormal,50);
                
client_print(clientprint_chat"[HNS] your body is more visible in soulspec mode  !");
            }

            
g_bActivated[client] = false;

        } else {
            
g_bActivated[client] = false;
            
client_print(clientprint_chat"[HNS] You cant change to soulspec mode, in air or while ducking !");
        }
    }
    if( 
g_bFlyingclient ] ) {

        static 
Float:vAimVelocity];
        
velocity_by_aimclient250vAimVelocity );

        new 
Float:vVelocity];
        if( 
iButtons IN_FORWARD ) {
            
vVelocity] += vAimVelocity];
            
vVelocity] += vAimVelocity];
            
vVelocity] += vAimVelocity];
        }
        if( 
iButtons IN_BACK ) {
            
vVelocity] -= vAimVelocity];
            
vVelocity] -= vAimVelocity];
            
vVelocity] -= vAimVelocity];
        }
        if( 
iButtons IN_MOVERIGHT ) {
            
vVelocity] += vAimVelocity];
            
vVelocity] -= vAimVelocity];
        }
        if( 
iButtons IN_MOVELEFT ) {
            
vVelocity] -= vAimVelocity];
            
vVelocity] += vAimVelocity];
        }
        
entity_set_vectorg_iCameraclient ], EV_VEC_velocityvVelocity );
        
entity_get_vectorclientEV_VEC_v_anglevVelocity );
        
entity_set_vectorg_iCameraclient ], EV_VEC_anglesvVelocity );
    }

}

ResetCameraclient ) {
    
g_bFlyingclient ] = false;
    
attach_viewclientclient );
    static 
Float:vOrigin]; 
    
entity_get_vectorclientEV_VEC_originvOrigin );
    
vOrigin[2] += 15;
    
delay_duck(client)
    
entity_set_vectorclient EV_VEC_originvOrigin );
    
render(client)
}  

delay_duck(client)
{
    
set_task(0.01"force_duck"client);
    
set_entity_flags(clientFL_DUCKING1);
}

public 
force_duck(client)
{
    
set_entity_flags(clientFL_DUCKING1);


public 
stopsound(id) {

    if(
sound[id]) {
        
client_cmd(id,"mp3 stop");
        
client_cmd(id"stopsound");
        
client_print(idprint_chat"[HNS] Music disabled  !");
        
sound[id] = false;
    }
    else {
        new 
random_num(0sizeof(hidesongs) - 1);
        
client_print(idprint_chat"[HNS] Music enabled  !");
        
client_cmd(id"mp3 play media/%s"hidesongs[a]);
        
sound[id] = true;
    }
}

public 
client_putinserver(id
{
    
sound[id] = true;
    
random_num(0sizeofg_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 
random_num(1128);
    new 
random_num(1128);
    new 
random_num(1128);
    
    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(0sizeof(skies)-1);
    
set_cvar_string("sv_skyname"skies[rand]);

    
register_forward(FM_KeyValue"fwd_KeyValue"1);
}

public 
client_connect(id)
{
    
sound[id] = true;
    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)
{
    
sound[id] = true;

    new 
i;
    
transferring[id] = 0;
    
    for (
i=0i<32i++)
    {
        if (
killed[i] == id)
        {
            break;
        }
    }
    
    if(
== 32
        return;
    
    if (
killed[i] == id)
    {
        for (
i++; i<32 && killed[i]!=0i++)
        {
            
killed[i-1] = killed[i];
        }
        
killed[i] = 0;
    }

    if( 
is_user_aliveid ) && g_bFlyingid ] ) {
        
ResetCameraid );
    }
}


public 
hideandseek(idlevelcid)
{
    new 
arg[16];
    new 
pnum;
    new 
cts;
    new 
players[32];
    new 
i;
    
    if (
read_argv(1arg15) == 0)
    {
        
console_print(id"* Hide & Seek plugin v%s is currently %s [hidetime:%d,mincats:%d,mice:%d]"HAS_VERSIONactive "running!" "stopped."floatround(hidetime), mincatsmice);
        return 
PLUGIN_HANDLED;
    }
    
    if (!
cmd_access(idlevelcid1))
    {
        return 
PLUGIN_HANDLED;
    }
    
    if (
equal(arg"mincats") || equal(arg"chatsmin"))
    {
        if (
read_argv(2arg15) == 0)
        {
            
console_print(id"* Hide & Seek: mincats = %d"mincats);
            return 
PLUGIN_HANDLED;
        }
        else
        {
            if (
cmd_access(idlevelcid1))
            {
                if (
active != 0)
                {
                    
console_print(id"* Hide & Seek: you can not change game rules right now!");
                    return 
PLUGIN_HANDLED;
                }
                
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(2arg15) == 0)
        {
            
console_print(id"* Hide & Seek: mice = %d"mice);
            return 
PLUGIN_HANDLED;
        }
        else
        {
            if (
cmd_access(idlevelcid1))
            {
                if (
active != 0)
                {
                    
console_print(id"* Hide & Seek: you can not change game rules right now!");
                    return 
PLUGIN_HANDLED;
                }
                
                
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(2arg15) == 0)
        {
            
console_print(id"* Hide & Seek: hidetime = %d seconds"floatround(hidetime));
            return 
PLUGIN_HANDLED;
        }
        else
        {
            if (
cmd_access(idlevelcid1))
            {
                if (
active != 0)
                {
                    
console_print(id"* Hide & Seek: you can not change game rules right now!");
                    return 
PLUGIN_HANDLED;
                }
                
                
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(0print_chat"[HNS] A session has just been started!");
        
        new 
ConfigsDir[128]
        
get_configsdir(ConfigsDir127)
        
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"4);
        
set_cvar_num("mp_freezetime"1);
        
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(playerscts"e""CT");
        if (
cts maxcats)
        {
            for (
i=maxcatsi<ctsi++)
            {
                if (
hasdbg
                    
client_print(0print_chat,"* HNS[init]: Already enough CTs")
                
                
fm_set_user_team(players[i], FM_TEAM_T);
            }
        }
        else if (
cts mincats)
        {
            
get_players(playerspnum"e""TERRORIST");
            for (
i=0cts<mincats && i<pnumi++)
            {
                if (
hasdbg
                    
client_print(0print_chat"* HNS[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(0print_chat"[HNS] Session terminated.");
        
        new 
ConfigsDir[128]
        
get_configsdir(ConfigsDir127)
        
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(playerspnum);
        for(
i=0i<pnumi++)
        {
            
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(tstnum"e""TERRORIST");
    
get_players(ctsctnum"e""CT");
    
    if(
ctnum==0)
        
specialcase 1;
    
    if(
tnum>=mice && ctnum>=mincats)
    {
        if(
active == 1)
        {
            
client_print(0print_chat"[HNS] Enough players, let's go!");
            
active 2;
            
set_cvar_num("sv_restart"1);
        }
        else if (
active == 3)
        {
            if (
phase == 1)
            {
                for(
i=0i<tnumi++)
                {
                    
fm_set_user_maxspeed(ts[i], 400.0);
                    
fm_set_user_gravity(ts[i], 1.0);
                }
                for(
i=0i<ctnumi++)
                {
                    
fm_set_user_maxspeed(cts[i], 0.1);
                    
fm_set_user_gravity(cts[i], 10.0);
                }
            }
            else if (
phase == 2)
            {
                for(
i=0i<tnumi++)
                {
                    
fm_set_user_maxspeed(ts[i], 0.1);
                    
fm_set_user_gravity(ts[i], 10.0);
                }
                for(
i=0i<ctnumi++)
                {
                    
fm_set_user_maxspeed(cts[i], 400.0);
                    
fm_set_user_gravity(cts[i], 1.0);
                }
            }
        }
    }
    else
    {
        if (
ctnum mincats)
        {
            for(
i=tnum-1i>=&& ctnum<maxcatsi--)
            {
                if (
hasdbg
                    
client_print(0,print_chat,"* HNS[timer]: Not enough CTs")
                
                
fm_set_user_team(ts[i], FM_TEAM_CT);
                
ctnum++;
                
tnum--;
            }
        }
        else if (
ctnum>maxcats)
        {
            for(
i=ctnum-maxcatsi>=&& tnum<micei--)
            {
                if (
hasdbg
                    
client_print(0,print_chat,"* HNS[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(025500.050.406.05.00.50.157);
                
show_hudmessage(0"[HNS] Waiting for more players to join...");
            }
            else
            {
                
set_hudmessage(025500.050.406.05.00.50.157);
                
show_hudmessage(0"[HNS] Waiting for more players to join...");
                
                
active 1;
                
remove_task(412564);
                
remove_task(412565);
                
                for(
i=0i<tnumi++)
                {
                    
fm_set_user_maxspeed(ts[i], 240.0);
                    
fm_set_user_gravity(ts[i], 1.0);
                }
                for(
i=0i<ctnumi++)
                {
                    
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(tstnum"b");
    for(
tnum--; tnum>=0tnum--)
    {
        
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(playerspnum"e""CT");
        
get_players(playersi"e""TERRORIST");
        if (
pnum>=mincats && pnum<=maxcats && i>=mice)
        {
            
set_hudmessage(025500.050.406.05.00.50.157);
            
show_hudmessage(0"[HNS] Terrorists, you've got %d seconds to get hidden!"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=0i<32i++)
            {
                
killed[i] = 0;
            }
            
            
get_players(players,pnum,"e","TERRORIST");
            new 
random_num(0sizeof(hidesongs) - 1);
            for (
i=0i<pnumi++)
            {
                
engclient_cmd(players[i], "weapon_knife");
                
fm_set_user_godmode(players[i], 1);
                
fm_set_user_nvg(players[i], 1);
                
                
                
flashlight[players[i]] = 0
                render
(players[i])
                if(
sound[players[i]])
                    
client_cmd(players[i], "mp3 play media/%s"hidesongs[a]);
            }
            
            
get_players(players,pnum,"e","CT");
            for (
i=0i<pnumi++)
            {
                
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);
                
render(players[i])
                if(
sound[i])
                    
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");
            
            
//set_task(240.0,"kill", 0 );
            
            
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 
kill()
{

   
        new 
iPlayers[32], iNum
        get_players
(iPlayersiNum"ah")

        for(new 
ii<iNum i++)
        {
            
user_kill(iPlayers[i], 1)
        }

}  

public 
lancerDecompte(id
{
    
g_decompte id 789456;
    
set_task(1.0"afficherDecompte"147258""0"b");
}

public 
afficherDecompte() 
{
    
set_hudmessage(2552552550.050.4501.01.00.20.28);
    
    
g_decompte--;
    if(
g_decompte == 0
    {
        new 
players[32], inumid;
        
get_players(playersinum"ae""TERRORIST");
        for(new 
0inumi++) 
        {
            
id players[i];
            
set_pdata_int(id444get_user_deaths(id) - 1);
            
user_kill(id1);
        }
        
remove_task(147258);
        return
    }
    
show_hudmessage(0"%ds before the end !"g_decompte);
}

public 
countdown()
{
    
set_hudmessage(2552000.100.5001.01.00.20.29);
    
counter--;
    
show_hudmessage(0"%d"counter);
}

public 
round_timer()
{
    new 
players[32];
    new 
pnum;
    
    if (
active == 3)
    {
        
remove_task(412566);
        
client_print(0print_chat"[HNS] CTs, go find the Terrorists and kill them!");
        
client_print(0print_chat"[HNS] Terrorists, to switch to soulspec mode write /soulspec !");
        
client_cmd(0"spk radio/com_go");
        
phase 2;
        
        if(
get_pcvar_num(amx_hs_light)) {
            
fm_set_lights("a"); 
        
        }
        
get_players(playerspnum"ae""CT");
        new 
random_num(0sizeof(seekerssongs) - 1);
        
        for (
pnum--; pnum>=0pnum--)
        {
            
f2b(players[pnum], 0);
            if(
sound[players[pnum] ])
                
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");
            }
        }
        
        
random_num(0sizeof(seekedsongs) - 1);
        
get_players(playerspnum"ae""TERRORIST");
        for (
pnum--; pnum>=0pnum--)
        {
            
fm_set_user_godmode(players[pnum], 0);
            if(
sound[players[pnum] ])
                
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(0print_chat,"[HNS] Terrorists, stop jumping or you'll crash on the ground!");
        
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 && active 
    {
        
fm_set_user_maxspeed(id400.0);
        return;
    }
    new 
team get_user_team(id);
    
    switch( 
phase )
    {
        case 
1:
        {
            switch( 
team ) {
                case 
2:
                {
                    
fm_set_user_maxspeed(id0.1);
                }
                case 
1:
                {
                    
fm_set_user_maxspeed(id400.0);
                }
            }
        }
        case 
2:
        {
            switch( 
team ) {
                case 
1:
                {
                    
fm_set_user_maxspeed(id0.1);
                }
                case 
2:
                {
                    
fm_set_user_maxspeed(id400.0);
                }
            }
        }
    }
}

public 
buy(id)
{
    if (
active == 3)
    {
        new 
team[32];
        
get_user_team(idteam31);
        
        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(victim1000.0);
        
get_user_team(victimteam31);
        
        if (
equali(team"TERRORIST"))
        {
            
client_cmd(0"spk radio/enemydown");
            for (
i=0i<32 && killed[i]!=0i++)
            {
            }
        
            if (
== 32)
            {
                for (
i=1i<32i++)
                    
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(ctsctnum"e""CT");
    
get_players(playerspnum"e""TERRORIST");
    
    if (
ctnum<mincats || pnum<mice)
    {
        
client_print(0print_chat,"[HNS] Someone has left! We're going to change teams...");
        return 
PLUGIN_CONTINUE;
    }
    
    new 
maxcats get_maxcats();
    
get_players(players,pnum,"ae","TERRORIST");
    for (
i=0i<pnum && newcats<maxcatsi++)
    {
        if (
hasdbg
            
client_print(0,print_chat,"* HNS[endround]: Was still alive, moving to CTs")
        
        
fm_set_user_team(players[i], FM_TEAM_CT);
        
newcats++;
    }
    
    if (
newcats maxcats)
    {
        for (
i=31i>=&& killed[i]==0i--)
        {
            
        }
        for (; 
i>=&& newcats<maxcatsi--)
        {
            if (
hasdbg
                
client_print(0,print_chat,"* HNS[endround]: Was killed, moving to CTs");
            
            
fm_set_user_team(killed[i], FM_TEAM_CT);
            
newcats++;
        }
    }
    
    for(
i=0ctnumi++)
    {
        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(idFloat:duration)
{
    
set_hudmessage(2551270, -1.00.121.0duration0.01.08);
    
show_hudmessage(id"HNS cache cache");
}

stock f2b(idtype)
{
    
message_begin(MSG_ONE_UNRELIABLEgmsgScreenFade_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 != && get_pcvar_num(flashlight_only_ct))
    {
        
flashlight[id] = 0;
    }
    else
    {
        if(
flashlight[id]) 
        {
            
flashlight[id] = 0;
            
color[id] = random_num(0sizeofg_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)) {
        
    
        new 
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();
        }
    }

    new 
weapon get_user_weapon(id);
       new 
team get_user_team(id);
       if(
team == 2) {    

           if( 
pev(idpev_takedamage) )
           {
            
set_pev(idpev_takedamage0.0);
        
           }
       } else if( !(
pev(idpev_takedamage)) ){
        
set_pev(idpev_takedamage1.0);
       }

    if(
team == 1) {

            if( 
weapon != CSW_KNIFE )
            {
                    
client_cmd(id"drop");
                    
engclient_cmd(id"weapon_knife");
            }
     }
    return 
FMRES_IGNORED;


}

public 
fwd_KeyValue(entIdkvd_id)
{
    if(!
pev_valid(entId))
        return 
FMRES_IGNORED;
    
    static 
className[64];
    
get_kvd(kvd_idKV_ClassNameclassName63);
    
    if(
containi(className"func_bomb_target") != -1
    
|| containi(className"info_bomb_target") != -1
    
|| containi(className"hostage_entity") != -1
    
|| containi(className"monster_scientist") != -1
    
|| containi(className"func_hostage_rescue") != -1
    
|| containi(className"info_hostage_rescue") != -1
    
|| containi(className"info_vip_start") != -1
    
|| containi(className"func_vip_safetyzone") != -1
    
|| containi(className"func_escapezone") != -1)
        
engfunc(EngFunc_RemoveEntityentId);
    
    if(!
hostageMade)
    {
        
hostageMade true;
        new 
ent engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"hostage_entity"));
        
engfunc(EngFunc_SetOriginentFloat:{0.0,0.0,-55000.0});
        
engfunc(EngFunc_SetSizeentFloat:{-1.0,-1.0,-1.0}, Float:{1.0,1.0,1.0});
        
dllfunc(DLLFunc_Spawnent);
    }
    
    return 
FMRES_HANDLED;
}  

// 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(indexpev_originorigin);
    
set_pev(entpev_originorigin);
    
set_pev(entpev_spawnflagspev(entpev_spawnflags) | SF_NORESPAWN);
    
dllfunc(DLLFunc_Spawnent);

    new 
save pev(entpev_solid);
    
dllfunc(DLLFunc_Touchentindex);
    if (
pev(entpev_solid) != save)
        return 
ent;

    
engfunc(EngFunc_RemoveEntityent);

    return -
1;
}

stock fm_set_user_gravity(indexFloat:gravity 1.0) {
    
set_pev(indexpev_gravitygravity);

    return 
1;
}

stock fm_set_user_godmode(indexgodmode 0) {
    
set_pev(indexpev_takedamagegodmode == DAMAGE_NO DAMAGE_AIM);

    return 
1;
}

stock fm_set_user_maxspeed(indexFloat:speed = -1.0) {
    
engfunc(EngFunc_SetClientMaxspeedindexspeed);
    
set_pev(indexpev_maxspeedspeed);

    return 
1;
}

stock fm_set_user_nvg(indexnvgoggles 1)
{
    new 
current get_pdata_int(indexOFFSET_NVGOGGLES);
    
    if( !(
current HAS_NVGOGGLES) && nvgoggles )
    {
        
current |= HAS_NVGOGGLES;
    }
    else if( (
current HAS_NVGOGGLES) && !nvgoggles )
    {
        
current &= ~HAS_NVGOGGLES;
    }
    else
    {
        return 
0;
    }
    
    
set_pdata_int(indexOFFSET_NVGOGGLEScurrent);
    
    return 
1;
}

fm_set_lights(const lights[])
    
engfunc(EngFunc_LightStyle0lights);

stock fm_set_kvd(entity, const key[], const value[], const classname[] = "") {
    if (
classname[0])
        
set_kvd(0KV_ClassNameclassname);
    else {
        new class[
32];
        
pev(entitypev_classname, class, sizeof class - 1);
        
set_kvd(0KV_ClassName, class);
    }

    
set_kvd(0KV_KeyNamekey);
    
set_kvd(0KV_Valuevalue);
    
set_kvd(0KV_fHandled0);

    return 
dllfunc(DLLFunc_KeyValueentity0);
}

stock fm_set_user_team(clientteam) {
    
set_pdata_int(clientOFFSET_TEAMteam);

    static const 
TeamInfo[FM_TEAM_MAX][] =
    {
        
"UNASSIGNED",
        
"TERRORIST",
        
"CT",
        
"SPECTATOR"
    
};

    
message_begin(MSG_ALLgmsgTeamInfo);
    
write_byte(client);
    
write_string(TeamInfo[team]);
    
message_end();


Thanks in advance guys !

quilhos 08-07-2012 23:00

Re: [Edit Plugin] CacheCache Hide&Seek
 
It help post the main code in english the original version. Anyway I dont have really time to see the code, but this bug it's very anoying :) I hope someone can and have the time needed to help

BaNzoun3t 08-08-2012 04:53

Re: [Edit Plugin] CacheCache Hide&Seek
 
I just realize I was trying to edit the wrong .sma, I updated my first post, this one seems more logical, I will take a look.

Edit : Removing the fog seems to do the trick, the map is now totally in the night :)

PHP Code:

public plugin_precache()
{
    
/*
    new fog = fm_create_entity("env_fog");
    //DispatchKeyValue(fog, "density", "0.000650");
    fm_set_kvd(fog, "density", "0.1650");

    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]);
    
set_cvar_string("sv_skyname""space");

    
register_forward(FM_KeyValue"fwd_KeyValue"1);



Zer0Cool 08-10-2012 16:21

Re: [Edit Plugin] CacheCache Hide&Seek
 
PHP Code:

#include <amxmodx>
#include <engine>
 
new var
 
public 
plugin_init()
{
    
register_plugin"Light Changer""1.0""Wrecked" )
 
    var = 
register_cvar"light_value""a" )
 
    
UpdateCvar()
    
set_task5.0"UpdateCvar"___"b" )
}
 
public 
UpdateCvar()
{
    static 
light[3]
    
get_pcvar_string( var, light)
    
set_lightslight )




All times are GMT -4. The time now is 05:54.

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