Aporte: Hidenseek de exolent
#1
Les dejo este hidenseek que lo edite, saque todo lo relacionado con el scrim y solamente 2k de lineas, lo probé y funcionaba todo, solamente deje un hud permanente por si quieren meterle algo.

Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fakemeta_util>

new const PLUGIN_NAME[] =    "Community: HidenSeek"
new const PLUGIN_VERSION[] =    "2.8"
new const PLUGIN_AUTHOR[] =    "Exolent - Code removido: Ivan.-rlz"

new const g_sBlank[] = "";
new const 
g_sA[] = "a";
new const 
g_sB[] = "b";
new const 
g_sS[] = "s";
new const 
g_sKnifeModel_v[] = "models/v_knife.mdl";
new const 
g_sKnifeModel_w[] = "models/w_knife.mdl";
new const 
g_sModel[] = "model";
new const 
g_sLightsNormal[] = "m";
new const 
g_sClassBreakable[] = "func_breakable";
new const 
g_sClassDoor[] = "func_door";
new const 
g_sClassDoorRotating[] = "func_door_rotating";

/* CONVERT CSTRIKE TO FAKEMETA */

enum CsTeams CS_TEAM_UNASSIGNED 0CS_TEAM_TCS_TEAM_CTCS_TEAM_SPECTATOR };
enum CsInternalModel CS_DONTCHANGE 0,CS_CT_URBAN,CS_T_TERRORCS_T_LEET,CS_T_ARCTIC,CS_CT_GSG9,CS_CT_GIGN,CS_CT_SAS,CS_T_GUERILLA,CS_CT_VIP,CZ_T_MILITIA,CZ_CT_SPETSNAZ };
enum CsArmorType CS_ARMOR_NONE 0CS_ARMOR_KEVLARCS_ARMOR_VESTHELM };

#define OFFSET_ARMORTYPE        112
#define OFFSET_TEAM            114
#define OFFSET_MONEY            115
#define OFFSET_INTERNALMODEL        126
#define OFFSET_AWP_AMMO            377 
#define OFFSET_SCOUT_AMMO        378
#define OFFSET_PARA_AMMO        379
#define OFFSET_FAMAS_AMMO        380
#define OFFSET_M3_AMMO            381
#define OFFSET_USP_AMMO            382
#define OFFSET_FIVESEVEN_AMMO        383
#define OFFSET_DEAGLE_AMMO        384
#define OFFSET_P228_AMMO        385
#define OFFSET_GLOCK_AMMO        386
#define OFFSET_FLASHBANG_AMMO        387
#define OFFSET_HEGRENADE_AMMO        388
#define OFFSET_SMOKEGRENADE_AMMO    389
#define OFFSET_C4_AMMO            390

#define cs_set_user_bpammo(%1,%2,%3) set_pdata_int(%1, __get_ammo_offset(%2), %3)
#define cs_set_user_model(%1,%2) engfunc(EngFunc_SetClientKeyValue, %1, engfunc(EngFunc_GetInfoKeyBuffer, %1), g_sModel, %2)
#define cs_get_user_model(%1,%2,%3) engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, %1), g_sModel, %2, %3)

/* END OF CSTRIKE TO FAKEMETA CONVERSION */

#define HIDE_MONEY        (1<<5)

new const CsTeams:HNS_TEAM_HIDER CS_TEAM_T;
new const 
CsTeams:HNS_TEAM_SEEKER CS_TEAM_CT;

new const 
CsInternalModel:HNS_MODEL_HIDER CS_T_LEET;
new const 
CsInternalModel:HNS_MODEL_SEEKER CS_CT_GIGN;

new const 
g_sBuyCommands[][] =
{
    
"usp""glock""deagle""p228""elites",
    
"fn57""m3""xm1014""mp5""tmp""p90",
    
"mac10""ump45""ak47""galil""famas",
    
"sg552""m4a1""aug""scout""awp""g3sg1",
    
"sg550""m249""vest""vesthelm""flash",
    
"hegren""sgren""defuser""nvgs""shield",
    
"primammo""secammo""km45""9x19mm""nighthawk",
    
"228compact""fiveseven""12gauge""autoshotgun",
    
"mp""c90""cv47""defender""clarion""krieg552",
    
"bullpup""magnum""d3au1""krieg550"
};
new const 
MAX_BUY_COMMANDS sizeof(g_sBuyCommands);
new const 
g_sRemoveEntities[][] =
{
    
"func_bomb_target",
    
"info_bomb_target",
    
"hostage_entity",
    
"monster_scientist",
    
"func_hostage_rescue",
    
"info_hostage_rescue",
    
"info_vip_start",
    
"func_vip_safetyzone",
    
"func_escapezone",
    
"armoury_entity"
};
new const 
MAX_REMOVED_ENTITIES sizeof(g_sRemoveEntities);
new const 
g_sAllModels[CsTeams][][] =
{
    {
""""""""},
    {
"terror""arctic""leet""guerilla"},
    {
"gign""gsg9""sas""urban"},
    {
""""""""}
};
new const 
g_sDefaultModels[CsTeams][] =
{
    
"",
    
"leet",
    
"gign",
    
""
};
new const 
g_sTeamInfo[CsTeams][] =
{
    
"UNASSIGNED",
    
"TERRORIST",
    
"CT",
    
"SPECTATOR"
};
new const 
g_sTeamNames[CsTeams][] =
{
    
"Spectator",
    
"Terrorist",
    
"Counter-Terrorist",
    
"Spectator"
};

enum (+= 1000)
{
    
TASK_ID_STRIPWEAPONS 1000,
    
TASK_ID_GIVEWEAPONS,
    
TASK_ID_GIVEKNIFE,
    
TASK_ID_CHECKMODEL,
    
TASK_ID_HIDETIMER,
    
TASK_ID_SWAPTEAMS,
    
TASK_ID_SETLIGHTS,
    
TASK_SHOWHUD
};

#define ID_SHOWHUD (taskid - TASK_SHOWHUD)

new const g_PlayerTasks[] =
{
    
TASK_ID_STRIPWEAPONS,
    
TASK_ID_GIVEWEAPONS,
    
TASK_ID_GIVEKNIFE,
    
TASK_ID_CHECKMODEL,
};
new const 
MAX_PLAYER_TASKS sizeof(g_PlayerTasks);

new 
bool:g_bHnsOn truebool:g_bConnected[33], bool:g_bAlive[33], bool:g_bFirstSpawn[33], CsTeams:g_Team[33];
new 
bool:g_bSolid[33], bool:g_bRestoreSolid[33], bool:g_bWeaponsGiven;

new 
g_sHelpMotd[43], g_sLights[16]

new 
Float:g_fKillMsgDelay[33];

new 
g_RoundsLostg_RoundsEndedg_HideTimerg_OldMoney;

new 
bool:g_bDisableSlash true;

new 
bool:g_bNonSpawnEvent[33];
new 
g_FwdClientCommand_post;

new 
bool:g_bRemovedBreakables;
new 
bool:g_bRemovedDoors;
new 
bool:g_bRemovedDoorsRotating;

new 
Float:g_fBoostPunishDelay[33];
new 
Float:g_fBoostMessageDelay[33];

new 
hns_footstepshns_moneyhns_nubslashhns_disablebuyhns_hiders_knife
new hns_grenades[CsTeams], hns_grenades_percent[CsTeams], hns_flashbangs[CsTeams]
new 
hns_flashbangs_percent[CsTeams], hns_smokegren[CsTeams], hns_smokegren_percent[CsTeams]
new 
hns_armor[CsTeams], hns_hidetimehns_timersoundshns_noslowdownhns_teamchange
new hns_disablekillhns_blindcolorshns_hudcolorshns_hiders_alivefragshns_lights
new hns_visiblecommandshns_chooseteamhns_semicliphns_semiclip_alphahns_gametype
new hns_prefixhns_removebreakableshns_noflashhns_removedoorshns_noboosting
new hns_noboosting_damagehns_noboosting_punishhns_noboosting_interval
new hns_warmup_godmodehns_warmup_respawn

new g_msgSayTextg_msgHideWeapong_msgScreenFadeg_msgTeamInfog_msgMoneyg_msgArmorType;
new 
g_MaxPlayersg_MaxEntitiesg_HostageEntsv_restartg_Hudg_Hud2;

public 
plugin_precache()
{
    
register_forward(FM_Spawn"fwdSpawn"0);
    
    new 
allocHostageEntity engfunc(EngFunc_AllocString"hostage_entity");
    do
    {
        
g_HostageEnt engfunc(EngFunc_CreateNamedEntityallocHostageEntity);
    }
    while( !
pev_valid(g_HostageEnt) );
    
    
engfunc(EngFunc_SetOriging_HostageEntFloat:{0.00.0, -55000.0});
    
engfunc(EngFunc_SetSizeg_HostageEntFloat:{-1.0, -1.0, -1.0}, Float:{1.01.01.0});
    
dllfunc(DLLFunc_Spawng_HostageEnt);
    
    return 
PLUGIN_CONTINUE;
}

public 
plugin_init()
{
    
register_plugin(PLUGIN_NAMEPLUGIN_VERSIONPLUGIN_AUTHOR);
    
    new 
sBuyHandle[] = "cmdBuy";
    
register_clcmd("buy"sBuyHandle, -1g_sBlank);
    
register_clcmd("buyammo1"sBuyHandle, -1g_sBlank);
    
register_clcmd("buyammo2"sBuyHandle, -1g_sBlank);
    
register_clcmd("buyequip"sBuyHandle, -1g_sBlank);
    
register_clcmd("cl_autobuy"sBuyHandle, -1g_sBlank);
    
register_clcmd("cl_rebuy"sBuyHandle, -1g_sBlank);
    
register_clcmd("cl_setautobuy"sBuyHandle, -1g_sBlank);
    
register_clcmd("cl_setrebuy"sBuyHandle, -1g_sBlank);
    
    
register_concmd("hns_status""cmdHnsStatus"ADMIN_KICK"<0|1> -- 0=HNS OFF   1=HNS ON");
    
    
register_say_command("hnshelp""cmdHelp", -1g_sBlank);
    
    
register_forward(FM_Touch"fwdTouch"0);
    
register_forward(FM_CmdStart"fwdCmdStart"0);
    
register_forward(FM_SetModel"fwdSetModel"0);
    
register_forward(FM_ClientKill"fwdClientKill"0);
    
register_forward(FM_PlayerPreThink"fwdPlayerPreThink"0);
    
register_forward(FM_PlayerPostThink"fwdPlayerPostThink"0);
    
register_forward(FM_AddToFullPack"fwdAddToFullPackPost"1);
    
register_forward(FM_Voice_SetClientListening"fwdSetVoice"0);
    
    
register_event("TextMsg""eventRestartAttempt"g_sA"2&#Game_w");
    
register_clcmd("fullupdate""cmdFullupdate", -1g_sBlank);
    
    
hns_footsteps register_cvar("hns_footsteps""1"00.0);
    
hns_money register_cvar("hns_money""0"00.0);
    
hns_nubslash register_cvar("hns_nubslash""3"00.0);
    
hns_disablebuy register_cvar("hns_disablebuy""1"00.0);
    
hns_hiders_knife register_cvar("hns_hiders_knife""1"00.0);
    
hns_grenades[HNS_TEAM_HIDER] = register_cvar("hns_hiders_grenades""1"00.0);
    
hns_grenades_percent[HNS_TEAM_HIDER] = register_cvar("hns_hiders_grenades_percent""100"00.0);
    
hns_flashbangs[HNS_TEAM_HIDER] = register_cvar("hns_hiders_flashbangs""2"00.0);
    
hns_flashbangs_percent[HNS_TEAM_HIDER] = register_cvar("hns_hiders_flashbangs_percent""100"00.0);
    
hns_smokegren[HNS_TEAM_HIDER] = register_cvar("hns_hiders_smokegren""1"00.0);
    
hns_smokegren_percent[HNS_TEAM_HIDER] = register_cvar("hns_hiders_smokegren_percent""100"00.0);
    
hns_armor[HNS_TEAM_HIDER] = register_cvar("hns_hiders_armor""100"00.0);
    
hns_grenades[HNS_TEAM_SEEKER] = register_cvar("hns_seekers_grenades""0"00.0);
    
hns_grenades_percent[HNS_TEAM_SEEKER] = register_cvar("hns_seekers_grenades_percent""0"00.0);
    
hns_flashbangs[HNS_TEAM_SEEKER] = register_cvar("hns_seekers_flashbangs""0"00.0);
    
hns_flashbangs_percent[HNS_TEAM_SEEKER] = register_cvar("hns_seekers_flashbangs_percent""0"00.0);
    
hns_smokegren[HNS_TEAM_SEEKER] = register_cvar("hns_seekers_smokegren""0"00.0);
    
hns_smokegren_percent[HNS_TEAM_SEEKER] = register_cvar("hns_seekers_smokegren_percent""0"00.0);
    
hns_armor[HNS_TEAM_SEEKER] = register_cvar("hns_seekers_armor""100"00.0);
    
hns_hidetime register_cvar("hns_hidetime""10"00.0);
    
hns_timersounds register_cvar("hns_timersounds""1"00.0);
    
hns_noslowdown register_cvar("hns_noslowdown""0"00.0);
    
hns_teamchange register_cvar("hns_teamchange""0"00.0);
    
hns_disablekill register_cvar("hns_disablekill""1"00.0);
    
hns_blindcolors register_cvar("hns_blindcolors""0 0 0 255"00.0);
    
hns_hudcolors register_cvar("hns_hudcolors""0 255 0"00.0);
    
hns_hiders_alivefrags register_cvar("hns_hiders_alivefrags""1"00.0);
    
hns_lights register_cvar("hns_lights"g_sLightsNormal00.0);
    
hns_visiblecommands register_cvar("hns_visiblecommands""0"00.0);
    
hns_chooseteam register_cvar("hns_chooseteam""0"00.0);
    
hns_semiclip register_cvar("hns_semiclip""1"00.0);
    
hns_semiclip_alpha register_cvar("hns_semiclip_alpha""127"00.0);
    
hns_prefix register_cvar("hns_prefix""[HNS]"00.0);
    
hns_removebreakables register_cvar("hns_removebreakables""1"00.0);
    
hns_noflash register_cvar("hns_noflash""1"00.0);
    
hns_removedoors register_cvar("hns_removedoors""1"00.0);
    
hns_noboosting register_cvar("hns_noboosting""1"00.0);
    
hns_noboosting_damage register_cvar("hns_noboosting_damage""25"00.0);
    
hns_noboosting_punish register_cvar("hns_noboosting_punish""3"00.0);
    
hns_noboosting_interval register_cvar("hns_noboosting_interval""1.0"00.0);
    
hns_warmup_godmode register_cvar("hns_warmup_godmode""1"00.0);
    
hns_warmup_respawn register_cvar("hns_warmup_respawn""1"00.0);
    
    new 
sHideNSeek[32];
    
formatex(sHideNSeek31"HideNSeek v%s"PLUGIN_VERSION);
    
hns_gametype register_cvar("hns_gametype"sHideNSeek00.0);
    
    
g_Hud CreateHudSyncObj();
    
g_Hud2 CreateHudSyncObj();
    
    
sv_restart get_cvar_pointer("sv_restart");
    
    
g_msgSayText get_user_msgid("SayText");
    
g_msgHideWeapon get_user_msgid("HideWeapon");
    
g_msgScreenFade get_user_msgid("ScreenFade");
    
g_msgTeamInfo get_user_msgid("TeamInfo");
    
g_msgMoney get_user_msgid("Money");
    
g_msgArmorType get_user_msgid("ArmorType");
    
    
register_message(g_msgHideWeapon"messageHideWeapon");
    
register_message(g_msgScreenFade"messageScreenFade");
    
    
register_event("ResetHUD""eventResetHUD"g_sB);
    
register_event("Money""eventMoney"g_sB);
    
register_event("HLTV""eventNewRound"g_sA"1=0""2=0");
    
register_event("SendAudio""eventTerrWin"g_sA"2=%!MRAD_terwin");
    
register_event("TextMsg""eventRestartRound"g_sA"2&#Game_C""2&#Game_w");
    
register_event("CurWeapon""eventCurWeapon"g_sB"1=1");
    
    
register_logevent("logeventRoundStart"2"1=Round_Start");
    
register_logevent("logeventRoundEnd"2"1=Round_End");
    
    
g_MaxPlayers global_get(glb_maxClients);
    
g_MaxEntities global_get(glb_maxEntities);
    
    
copy(g_sLights15g_sLightsNormal);
    
set_task(1.0"taskSetLights"TASK_ID_SETLIGHTSg_sBlank0g_sB0);
    
    new 
dir[23];
    
get_configsdir(dir22);
    
    
formatex(g_sHelpMotd42"%s/hidenseek_help.txt"dir);
    
    
set_task(1.0"taskExecuteConfig");
    
    return 
PLUGIN_CONTINUE;
}

public 
plugin_natives()
{
    
register_library("hidenseek");
    
register_native("hns_get_status""_GetHnsStatus");
    
    return 
PLUGIN_CONTINUE;
}

public 
bool:_GetHnsStatus(pluginparams)
{
    return 
g_bHnsOn;
}

public 
client_putinserver(id)
{
    
g_bConnected[id] = true;
    
g_bAlive[id] = false;
    
g_bFirstSpawn[id] = false;
    
    
set_task(1.0"ShowHUD"id+TASK_SHOWHUD__"b")
}

public 
client_disconnect(plr)
{
    
g_bConnected[plr] = false;
    
    for( new 
0MAX_PLAYER_TASKSi++ )
    {
        
remove_task(plr g_PlayerTasks[i], 0);
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
client_command(plr)
{
    if( !
g_bHnsOn )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    new 
sArg[13];
    if( 
read_argv(0sArg12) > 11 )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    if( 
equali(sArg"chooseteam") && (CS_TEAM_UNASSIGNED cs_get_user_team(plr) < CS_TEAM_SPECTATOR) )
    {
        new 
CsTeams:team cs_get_user_team(plr);
        new 
chooseteam get_pcvar_num(hns_chooseteam);
        
        if( 
team != HNS_TEAM_HIDER && team != HNS_TEAM_SEEKER
        
|| chooseteam == 1
        
|| chooseteam == && is_user_admin(plr) )
        {
            return 
PLUGIN_CONTINUE;
        }
        
        return 
PLUGIN_HANDLED;
    }
    
    if( !
get_pcvar_num(hns_disablebuy) )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    for( new 
0MAX_BUY_COMMANDSi++ )
    {
        if( 
equali(g_sBuyCommands[i], sArg0) )
        {
            return 
PLUGIN_HANDLED;
        }
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
cmdBuy(plr)
    return (
g_bHnsOn && get_pcvar_num(hns_disablebuy)) ? PLUGIN_HANDLED PLUGIN_CONTINUE;

public 
cmdFullupdate(plr)
{
    
g_bNonSpawnEvent[plr] = true;
    
    
g_FwdClientCommand_post register_forward(FM_ClientCommand"fwdClientCommandPost"1);
    
    return 
PLUGIN_CONTINUE;
}

public 
cmdHnsStatus(plrlevelcid)
{
    if( !
cmd_access(plrlevelcid2) )
    {
        return 
PLUGIN_HANDLED;
    }
    
    new 
sArg[16];
    
read_argv(1sArg15);
    
    new 
bool:bOn bool:clamp(str_to_num(sArg), 01);
    
    if( 
bOn == g_bHnsOn )
    {
        new 
sPrefix[16];
        
get_pcvar_string(hns_prefixsPrefix15);
        
        
console_print(plr"%s HideNSeek is already o%s!"sPrefixg_bHnsOn "n" "ff");
        return 
PLUGIN_HANDLED;
    }
    
    
g_bHnsOn bOn;
    
set_pcvar_num(sv_restart1);
    
    new 
sName[64]; /* server hostnames can be longer than player names */
    
get_user_name(plrsName63);
    
    
hns_print(0"^x03%s :^x01  st%sed HideNSeek!"sNamebOn "art" "opp");
    
    return 
PLUGIN_HANDLED;
}

public 
cmdHelp(plr)
{
    if( 
file_exists(g_sHelpMotd) )
    {
        new 
sText[2500];
        
        new 
fopen(g_sHelpMotd"rt"), sData[512];
        while( !
feof(f) )
        {
            
fgets(fsData511);
            
add(sText2499sData0);
        }
        
fclose(f);
        
        new 
sTeamChange[64];
        
copy(sTeamChange63"The teams will switch ");
        new 
info get_pcvar_num(hns_teamchange);
        if( 
info )
        {
            
format(sTeamChange63"%safter %i rounds have ended"sTeamChangeinfo);
        }
        else
        {
            
add(sTeamChange63"when Seekers win the round");
        }
        
        new 
sHiderEquipment[512];
        if( 
get_pcvar_num(hns_hiders_knife) == )
        {
            
copy(sHiderEquipment511"Broken knife<br>");
        }
        
info get_pcvar_num(hns_grenades[HNS_TEAM_HIDER]);
        new 
percent get_pcvar_num(hns_grenades_percent[HNS_TEAM_HIDER]);
        if( 
info && percent )
        {
            
format(sHiderEquipment511"%s%i HE Grenade%s"sHiderEquipmentinfoinfo == g_sBlank g_sS);
            if( 
percent 100 )
            {
                
format(sHiderEquipment511"%s (%i%% chance per grenade)<br>"sHiderEquipmentpercent);
            }
            else
            {
                
add(sHiderEquipment511"<br>"0);
            }
        }
        
info get_pcvar_num(hns_flashbangs[HNS_TEAM_HIDER]);
        
percent get_pcvar_num(hns_flashbangs_percent[HNS_TEAM_HIDER]);
        if( 
info && percent )
        {
            
format(sHiderEquipment511"%s%i Flashbang%s"sHiderEquipmentinfoinfo == g_sBlank g_sS);
            if( 
percent 100 )
            {
                
format(sHiderEquipment511"%s (%i%% chance per flashbang)<br>"sHiderEquipmentpercent);
            }
            else
            {
                
add(sHiderEquipment511"<br>"0);
            }
        }
        
info get_pcvar_num(hns_smokegren[HNS_TEAM_HIDER]);
        
percent get_pcvar_num(hns_smokegren_percent[HNS_TEAM_HIDER]);
        if( 
info && percent )
        {
            
format(sHiderEquipment511"%s%i Smoke Grenade%s"sHiderEquipmentinfoinfo == g_sBlank g_sS);
            if( 
percent 100 )
            {
                
format(sHiderEquipment511"%s (%i%% chance per smoke grenade)<br>"sHiderEquipmentpercent);
            }
            else
            {
                
add(sHiderEquipment511"<br>"0);
            }
        }
        
info get_pcvar_num(hns_armor[HNS_TEAM_HIDER]);
        
format(sHiderEquipment511"%sArmor: %i"sHiderEquipmentinfo);
        
        new 
sSeekerEquipment[512];
        
copy(sSeekerEquipment511"A Knife");
        
info get_pcvar_num(hns_grenades[HNS_TEAM_SEEKER]);
        
percent get_pcvar_num(hns_grenades_percent[HNS_TEAM_SEEKER]);
        if( 
info && percent )
        {
            
format(sSeekerEquipment511"%s<br>%i HE Grenade%s"sSeekerEquipmentinfoinfo == g_sBlank g_sS);
            if( 
percent 100 )
            {
                
format(sSeekerEquipment511"%s (%i%% chance per grenade)"sSeekerEquipmentpercent);
            }
        }
        
info get_pcvar_num(hns_flashbangs[HNS_TEAM_SEEKER]);
        
percent get_pcvar_num(hns_flashbangs_percent[HNS_TEAM_SEEKER]);
        if( 
info && percent )
        {
            
format(sSeekerEquipment511"%s<br>%i Flashbang%s"sSeekerEquipmentinfoinfo == g_sBlank g_sS);
            if( 
percent 100 )
            {
                
format(sSeekerEquipment511"%s (%i%% chance per flashbang)"sSeekerEquipmentpercent);
            }
        }
        
info get_pcvar_num(hns_smokegren[HNS_TEAM_SEEKER]);
        
percent get_pcvar_num(hns_smokegren_percent[HNS_TEAM_SEEKER]);
        if( 
info && percent )
        {
            
format(sSeekerEquipment511"%s<br>%i Smoke Grenade%s"sSeekerEquipmentinfoinfo == g_sBlank g_sS);
            if( 
percent 100 )
            {
                
format(sSeekerEquipment511"%s (%i%% chance per smoke grenade)"sSeekerEquipmentpercent);
            }
        }
        
info get_pcvar_num(hns_armor[HNS_TEAM_SEEKER]);
        
format(sSeekerEquipment511"%s<br>Armor: %i"sSeekerEquipmentinfo);
        
        
        
format(sText2499sTextPLUGIN_NAMEPLUGIN_VERSIONPLUGIN_AUTHORPLUGIN_NAMEg_sTeamNames[HNS_TEAM_HIDER], g_sTeamNames[HNS_TEAM_SEEKER], sTeamChangesHiderEquipmentsSeekerEquipment);
        
show_motd(plrsText"HideNSeek Help");
    }
    else
    {
        
hns_print(plr"^x03HideNSeek Help^x01 does not exist for this server.");
    }
    
    return 
get_pcvar_num(hns_visiblecommands) ? PLUGIN_CONTINUE PLUGIN_HANDLED;
}

public 
fwdClientCommandPost(plr)
{
    
unregister_forward(FM_ClientCommandg_FwdClientCommand_post1);
    
    
g_bNonSpawnEvent[plr] = false;
    
    return 
FMRES_HANDLED;
}

public 
fwdSpawn(ent)
{
    if( !
pev_valid(ent) || ent == g_HostageEnt )
    {
        return 
FMRES_IGNORED;
    }
    
    new 
sClass[32];
    
pev(entpev_classnamesClass31);
    
    for( new 
0MAX_REMOVED_ENTITIESi++ )
    {
        if( 
equal(sClassg_sRemoveEntities[i]) )
        {
            
engfunc(EngFunc_RemoveEntityent);
            return 
FMRES_SUPERCEDE;
        }
    }
    
    return 
FMRES_IGNORED;
}

public 
fwdTouch(boosterplr)
{
    if( !
g_bHnsOn
    
|| !pev_valid(booster) || !pev_valid(plr)
    || !(
booster <= g_MaxPlayers) || !(plr <= g_MaxPlayers)
    || !
g_bAlive[booster] || !g_bAlive[plr] )
    {
        return 
FMRES_IGNORED;
    }
    
    new 
boosting get_pcvar_num(hns_noboosting);
    
    if( 
boosting == get_pcvar_num(hns_semiclip)
    || 
boosting != && !(boosting == && cs_get_user_team(booster) == cs_get_user_team(plr)) )
    {
        return 
FMRES_IGNORED;
    }
    
    new 
Float:vBoosterOrigin[3], Float:vPlrOrigin[3];
    
pev(boosterpev_originvBoosterOrigin);
    
pev(plrpev_originvPlrOrigin);
    
    if( !(
49.0 < (vPlrOrigin[2] - vBoosterOrigin[2]) < 73.0) )
    {
        return 
FMRES_IGNORED;
    }
    
    switch( 
get_pcvar_num(hns_noboosting_punish) )
    {
        case 
3:
        {
            
handle_booster(booster);
            
handle_booster(plr);
        }
        case 
2:
        {
            
handle_booster(booster);
        }
        case 
1:
        {
            
handle_booster(plr);
        }
    }
    
    return 
FMRES_IGNORED;
}

public 
fwdCmdStart(plrucHandleseed)
{
    if( !
g_bHnsOn || !g_bAlive[plr] )
    {
        return 
FMRES_IGNORED;
    }
    
    static 
clipammo;
    if( 
get_user_weapon(plrclipammo) != CSW_KNIFE )
    {
        return 
FMRES_IGNORED;
    }
    
    new 
CsTeams:team cs_get_user_team(plr);
    
    if( 
team == HNS_TEAM_HIDER )
    {
        new 
button get_uc(ucHandleUC_Buttons);
        
        if( 
button&IN_ATTACK )
        {
            
button &= ~IN_ATTACK;
        }
        if( 
button&IN_ATTACK2 )
        {
            
button &= ~IN_ATTACK2;
        }
        
        
set_uc(ucHandleUC_Buttonsbutton);
        
        return 
FMRES_SUPERCEDE;
    }
    else if( 
team == HNS_TEAM_SEEKER )
    {
        if( 
g_bDisableSlash )
        {
            new 
button get_uc(ucHandleUC_Buttons);
            
            if( 
button&IN_ATTACK )
            {
                
button &= ~IN_ATTACK;
                
button |= IN_ATTACK2;
            }
            
            
set_uc(ucHandleUC_Buttonsbutton);
            
            return 
FMRES_SUPERCEDE;
        }
    }
    
    return 
FMRES_IGNORED;
}

public 
fwdSetModel(entsModel[])
{
    if( !
g_bHnsOn )
    {
        return 
FMRES_IGNORED;
    }
    
    if( !
pev_valid(ent) || !equal(sModel"models/w_"9) || equal(sModel"models/w_weaponbox.mdl"0) )
    {
        return 
FMRES_IGNORED;
    }
    
    new 
owner pev(entpev_owner);
    if( !(
owner <= g_MaxPlayers) )
    {
        return 
FMRES_IGNORED;
    }
    
    new 
sClass[32];
    
pev(entpev_classnamesClass31);
    
    if( 
equal(sClass"weapon_shield"0) )
    {
        
set_pev(entpev_effectsEF_NODRAW);
        
set_task(0.1"taskRemoveShield"ent);
        
        return 
FMRES_IGNORED;
    }
    
    if( !
equal(sClass"weaponbox"0) )
    {
        return 
FMRES_IGNORED;
    }
    
    for( new 
g_MaxPlayers 1<= g_MaxEntitiesi++ )
    {
        if( !
pev_valid(i) )
        {
            continue;
        }
        
        if( 
pev(ipev_owner) == ent )
        {
            
dllfunc(DLLFunc_Thinkent);
            break;
        }
    }
    
    return 
FMRES_IGNORED;
}

public 
fwdClientKill(plr)
{
    if( !
g_bHnsOn )
    {
        return 
FMRES_IGNORED;
    }
    
    if( 
get_pcvar_num(hns_disablekill) )
    {
        new 
Float:fGametime get_gametime();
        if( 
fGametime >= g_fKillMsgDelay[plr] )
        {
            
g_fKillMsgDelay[plr] = fGametime 1.0;
            
            
hns_print(plr"You cannot kill yourself during HideNSeek!");
        }
        
        return 
FMRES_SUPERCEDE;
    }
    
    return 
FMRES_IGNORED;
}

public 
fwdPlayerPreThink(plr)
{
    if( !
g_bHnsOn )
    {
        return 
FMRES_IGNORED;
    }
    
    new 
semiclip get_pcvar_num(hns_semiclip);
    
    if( 
g_bAlive[plr] )
    {
        new 
CsTeams:team cs_get_user_team(plr);
        if( 
g_HideTimer && team == HNS_TEAM_SEEKER )
        {
            
set_pev(plrpev_maxspeed, -1.0);
            
set_pev(plrpev_velocityFloat:{0.00.00.0});
            
//set_pev(plr, pev_flags, pev(plr, pev_flags) | FL_FROZEN);
        
}
        
        new 
footsteps get_pcvar_num(hns_footsteps);
        if( 
footsteps && (footsteps == || footsteps == _:team) )
        {
            
set_pev(plrpev_flTimeStepSound999);
        }
        
        if( 
get_pcvar_num(hns_noslowdown) )
        {
            
set_pev(plrpev_fuser20.0);
        }
        
        
/*if( semiclip )
        {
            // thanks Jon for code
            
            new target, body;
            get_user_aiming(plr, target, body, 9999);
            
            if( 0 < target <= g_MaxPlayers && g_bAlive[target] )
            {
                new CsTeams:targetTeam = cs_get_user_team(target);
                if( semiclip == 2 || targetTeam == team )
                {
                    new sName[32];
                    get_user_name(target, sName, 31);
                    
                    new sMessage[64];
                    if( targetTeam == team )
                    {
                        formatex(sMessage, 63, "Amigo: %s^nVida: %i", sName, get_user_health(target));
                    }
                    else
                    {
                        formatex(sMessage, 63, "Enemigo: %s", sName);
                    }
                    
                    if( targetTeam == CS_TEAM_CT )
                    {
                        set_hudmessage(0, 63, 127, -1.0, -1.0, 0, 0.0, 0.1, 0.0, 0.0, -1);
                    }
                    else if( targetTeam == CS_TEAM_T )
                    {
                        set_hudmessage(127, 0, 0, -1.0, -1.0, 0, 0.0, 0.1, 0.0, 0.0, -1);
                    }
                    
                    ShowSyncHudMsg(g_Hud3, "%s", sMessage);
                }
            }
        }*/
    
}
    
    static 
LastThinki;
    
    if( 
plr LastThink // player think loop started again
    
{
        for( 
1<= g_MaxPlayersi++ )
        {
            if( !
g_bConnected[i] || !g_bAlive[i] )
            {
                
g_bSolid[i] = false;
                continue;
            }
            
            
g_Team[i] = cs_get_user_team(i);
            
g_bSolid[i] = bool:(pev(ipev_solid) == SOLID_SLIDEBOX);
        }
    }
    
    
LastThink plr;
    
    if( !
g_bSolid[plr] || !semiclip )
    {
        return 
FMRES_IGNORED;
    }
    
    for( 
1<= g_MaxPlayersi++ )
    {
        if( !
g_bSolid[i] || g_bRestoreSolid[i] || == plr )
        {
            continue;
        }
        
        if( 
semiclip == || g_Team[plr] == g_Team[i] )
        {
            
set_pev(ipev_solidSOLID_NOT);
            
g_bRestoreSolid[i] = true;
        }
    }
    
    return 
FMRES_IGNORED;
}

public 
ShowHUD(taskid)
{
    static 
idid ID_SHOWHUD
    
    
if (!is_user_alive(id))
    {
        
id pev(idpev_iuser2)
        if (!
is_user_alive(id)) return;
    }
    
    if (
id != ID_SHOWHUD)
    {
        
set_hudmessage(2552552550.350.0116.01.10.00.0
        
ShowSyncHudMsg(ID_SHOWHUDg_Hud2"Esto es un test")
    }
    else
    {
        
set_hudmessage(2552552550.350.0106.01.10.00.0
        
ShowSyncHudMsg(ID_SHOWHUDg_Hud2"Esto es un test")
    }
}

public 
fwdPlayerPostThink(plr)
{
    static 
i;
    
    for( 
1<= g_MaxPlayersi++ )
    {
        if( 
g_bRestoreSolid[i] )
        {
            
set_pev(ipev_solidSOLID_SLIDEBOX);
            
g_bRestoreSolid[i] = false;
        }
    }
    
    return 
FMRES_IGNORED;
}

public 
fwdAddToFullPackPost(eseenthosthostflagsplayerpSet)
{
    if( !
g_bHnsOn )
    {
        return 
FMRES_IGNORED;
    }
    
    if( 
player )
    {
        if( 
g_bSolid[host] && g_bSolid[ent] )
        {
            new 
semiclip get_pcvar_num(hns_semiclip);
            if( 
semiclip == || g_Team[host] == g_Team[ent] )
            {
                
set_es(esES_SolidSOLID_NOT);
                
                static 
Float:fOldAlpha;
                
                new 
Float:fAlpha get_pcvar_float(hns_semiclip_alpha);
                if( 
fAlpha 255.0 )
                {
                    
set_es(esES_RenderModekRenderTransAlpha);
                    
set_es(esES_RenderAmtfAlpha);
                }
                else if( 
fOldAlpha 255.0 )
                {
                    
set_es(esES_RenderModekRenderNormal);
                    
set_es(esES_RenderAmt16.0);
                }
                
                
fOldAlpha fAlpha;
            }
        }
    }
    
    return 
FMRES_IGNORED;
}

public 
fwdGetGameDescription()
{
    if( !
g_bHnsOn )
    {
        return 
FMRES_IGNORED;
    }
    
    new 
sGameType[32];
    
get_pcvar_string(hns_gametypesGameType31);
    
    if( !
strlen(sGameType) || had_older_version(sGameType) )
    {
        
formatex(sGameType31"HideNSeek v%s"PLUGIN_VERSION);
        
        
set_pcvar_string(hns_gametypesGameType);
    }
    
    
forward_return(FMV_STRINGsGameType);
    return 
FMRES_SUPERCEDE;
}

public 
fwdPlayerSpawn(plr)
{
    
g_bAlive[plr] = true;
    
    if( !
g_bHnsOn )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    new 
CsTeams:team cs_get_user_team(plr);
    if( 
team != HNS_TEAM_SEEKER && team != HNS_TEAM_HIDER )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    if( !
g_bFirstSpawn[plr] )
    {    
        
g_bFirstSpawn[plr] = true;
    }
    
    
set_task(0.3"taskStripWeapons"plr TASK_ID_STRIPWEAPONSg_sBlank0g_sBlank0);
    
    new 
param[2];
    
param[0] = _:team;
    
set_task(0.6"taskGiveKnife"plr TASK_ID_GIVEKNIFEparam2g_sBlank0);
    
set_task(0.9"taskCheckModel"plr TASK_ID_CHECKMODELparam2g_sBlank0);
    
    if( 
g_bWeaponsGiven )
    {
        
set_task(0.6"taskGiveWeapons"plr TASK_ID_GIVEWEAPONSparam2g_sBlank0);
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
fwdSetVoice(receiversenderbool:bListen)
{
    if( !
g_bConnected[receiver]
    || !
g_bConnected[sender]
    || 
receiver == sender )
    {
        return 
FMRES_IGNORED;
    }
    
    if( 
cs_get_user_team(receiver) == cs_get_user_team(sender) )
    {
        
engfunc(EngFunc_SetClientListeningreceiversender1);
    }
    else
    {
        
engfunc(EngFunc_SetClientListeningreceiversender0);
    }
    
    return 
FMRES_SUPERCEDE;
}

public 
messageHideWeapon(msgiddestplr)
{
    if( !
g_bHnsOn )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    if( 
get_pcvar_num(hns_money) == )
    {
        
set_msg_arg_int(1ARG_BYTEget_msg_arg_int(1)|HIDE_MONEY);
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
messageScreenFade(msgiddestplr)
{
    if( !
g_bHnsOn )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    new 
noflash get_pcvar_num(hns_noflash);
    if( !
noflash )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    if( 
get_msg_arg_int(4) == 255 && get_msg_arg_int(5) == 255 && get_msg_arg_int(6) == 255 )
    {    
        if( 
noflash == _:cs_get_user_team(plr) )
        {
            return 
PLUGIN_HANDLED;
        }
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
eventRestartAttempt()
{
    new 
players[32], pnum;
    
get_players(playerspnumg_sA);
    
    for( new 
0pnumi++ )
    {
        
g_bNonSpawnEvent[players[i]] = true;
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
eventResetHUD(plr)
{
    if( 
g_bHnsOn && get_pcvar_num(hns_money) == )
    {
        
make_HideWeapon(plrHIDE_MONEY);
    }
    
    if( 
is_user_alive(plr) )
    {
        if( 
g_bNonSpawnEvent[plr] )
        {
            
g_bNonSpawnEvent[plr] = false;
        }
        else
        {
            
fwdPlayerSpawn(plr);
        }
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
eventMoney(plr)
{
    if( !
g_bHnsOn )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    new 
money get_pcvar_num(hns_money);
    
money clamp(money, -116000);
    
    if( 
money >= )
    {
        
cs_set_user_money(plrmoney0);
    }
    if( 
money == && g_OldMoney != )
    {
        
make_HideWeapon(plrHIDE_MONEY);
    }
    
    
g_OldMoney money;
    
    return 
PLUGIN_HANDLED;
}

public 
eventNewRound()
{
    if( !
g_bHnsOn )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    if( 
g_bDisableSlash )
    {
        new 
rounds get_pcvar_num(hns_nubslash);
        if( 
rounds && g_RoundsLost >= rounds )
        {
            
hns_print(0"Seekers ahora pueden usar nubslash por perder %i round%s!",\
                
rounds, (rounds == 1) ? g_sBlank "s seguidas");
            
            
g_bDisableSlash false;
        }
    }
    
    
g_HideTimer get_pcvar_num(hns_hidetime);
    
    return 
PLUGIN_CONTINUE;
}

public 
eventTerrWin()
{
    if( 
g_bDisableSlash )
    {
        
g_RoundsLost++;
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
eventRestartRound()
{
    
g_RoundsLost 0;
    
g_RoundsEnded 0;
    
g_bDisableSlash true;
    
    
g_bWeaponsGiven false;
    
    
g_HideTimer = -1;
}

public 
eventCurWeapon(plr)
{
    if( !
g_bHnsOn )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    if( 
cs_get_user_team(plr) == HNS_TEAM_HIDER && get_pcvar_num(hns_hiders_knife) == )
    {
        new 
sModel[32];
        
        
pev(plrpev_viewmodel2sModel31);
        if( 
equali(sModelg_sKnifeModel_v0) )
        {
            
set_pev(plrpev_viewmodel2g_sBlank);
        }
        
        
pev(plrpev_weaponmodel2sModel31);
        if( 
equali(sModelg_sKnifeModel_w0) )
        {
            
set_pev(plrpev_weaponmodel2g_sBlank);
        }
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
TaskRespawn(plr)
{
    
set_pev(plrpev_deadflagDEAD_RESPAWNABLE);
    
dllfunc(DLLFunc_Thinkplr);
}

public 
logeventRoundStart()
{
    if( !
g_bHnsOn )
    {
        if( 
g_bRemovedBreakables )
        {
            
g_bRemovedBreakables restore_entities(g_sClassBreakable);
        }
        
        return 
PLUGIN_CONTINUE;
    }
    
    if( 
get_pcvar_num(hns_removebreakables) )
    {
        
g_bRemovedBreakables remove_entities(g_sClassBreakable);
    }
    else if( 
g_bRemovedBreakables )
    {
        
g_bRemovedBreakables restore_entities(g_sClassBreakable);
    }
    
    if( 
get_pcvar_num(hns_removedoors) )
    {
        
g_bRemovedDoors remove_entities(g_sClassDoor);
        
g_bRemovedDoorsRotating remove_entities(g_sClassDoorRotating);
    }
    else
    {
        if( 
g_bRemovedDoors )
        {
            
g_bRemovedDoors restore_entities(g_sClassDoor);
        }
        
        if( 
g_bRemovedDoorsRotating )
        {
            
g_bRemovedDoorsRotating restore_entities(g_sClassDoorRotating);
        }
    }
    
    
remove_task(TASK_ID_HIDETIMER0);
    
set_task(0.0"taskHideTimer"TASK_ID_HIDETIMERg_sBlank0g_sBlank0);
    
    return 
PLUGIN_CONTINUE;
}

public 
logeventRoundEnd()
{
    if( !
g_bHnsOn )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    
remove_task(TASK_ID_HIDETIMER0);
    
    new 
sMessage[192];
    new 
CsTeams:winner HNS_TEAM_SEEKER;
    
    new 
hiderseekerhider_alive;
    
get_hider_and_seeker(hiderseekerhider_alive);
    
    if( 
hider_alive )
    {
        
winner HNS_TEAM_HIDER;
    }
    
    if( !
hider || !seeker )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    static const 
sTaskSwapTeams[] = "taskSwapTeams";
    
    ++
g_RoundsEnded;
    
    new 
teamchange get_pcvar_num(hns_teamchange);
    if( 
teamchange && teamchange == g_RoundsEnded )
    {
        
hns_print(0"%i rounds have ended. Switching teams."g_RoundsEnded);
        
        
set_task(0.5sTaskSwapTeamsTASK_ID_SWAPTEAMSg_sBlank0g_sBlank0);
    }
    
    static const 
sNoTeamChange[] = "^nNo hay cambios";
    if( 
winner == HNS_TEAM_SEEKER )
    {
        
copy(sMessage191"Seekers ganan !");
        
        if( !
teamchange )
        {
            
add(sMessage191"^nCambiando equipos .."0);
            
            
set_task(0.5sTaskSwapTeamsTASK_ID_SWAPTEAMSg_sBlank0g_sBlank0);
        }
    }
    else if( 
winner == HNS_TEAM_HIDER )
    {
        
copy(sMessage191"Hiders ganan !");
        
        new 
frags get_pcvar_num(hns_hiders_alivefrags);
        
        if( 
frags )
        {
            static 
Float:fFrags;
            for( new 
plr 1plr <= g_MaxPlayersplr++ )
            {
                if( 
g_bConnected[plr] && g_bAlive[plr] && cs_get_user_team(plr) == HNS_TEAM_HIDER )
                {
                    
pev(plrpev_fragsfFrags);
                    
set_pev(plrpev_fragsfFrags float(frags));
                    
                    
hns_print(plr"Ganaste %i frag%s por sobrevivir la ronda!",\
                        
frags, (frags == 1) ? g_sBlank g_sS);
                }
            }
        }
        
        if( !
teamchange )
        {
            
add(sMessage191sNoTeamChange0);
        }
    }
    
    static 
redgreenblue;
    
get_hud_colors(redgreenblue);
    
set_hudmessage(redgreenblue, -1.0, -1.000.05.00.10.21);
    
show_hudmessage(0"%s"sMessage);
    
    
g_bWeaponsGiven false;
    
    return 
PLUGIN_CONTINUE;
}

public 
taskRemoveShield(ent)
{
    
dllfunc(DLLFunc_Thinkent);
    
    return 
PLUGIN_CONTINUE;
}

public 
taskHideTimer()
{
    new 
seekerhider;
    
    if( 
g_HideTimer <= )
    {
        
seeker 1;
        
hider 1;
    }
    else
    {
        
get_hider_and_seeker(hiderseeker);
    }
    
    static const 
sTaskHideTimer[] = "taskHideTimer";
    if( !
hider || !seeker )
    {
        
g_HideTimer 0;
        
set_task(0.0sTaskHideTimerTASK_ID_HIDETIMERg_sBlank0g_sBlank0);
        
        return 
PLUGIN_CONTINUE;
    }
    
    static 
CsTeams:team;
    
    if( 
g_HideTimer )
    {
        new 
sounds get_pcvar_num(hns_timersounds);
        
        new 
sSound[16];
        
num_to_word(g_HideTimersSound15);
        
        static 
blind_redblind_greenblind_blueblind_alpha;
        
get_blind_colors(blind_redblind_greenblind_blueblind_alpha);
        
        static 
hud_redhud_greenhud_blue;
        
get_hud_colors(hud_redhud_greenhud_blue);
        
        for( new 
plr 1plr <= g_MaxPlayersplr++ )
        {
            if( !
g_bConnected[plr] )
            {
                continue;
            }
            
            
team cs_get_user_team(plr);
            if( 
team == HNS_TEAM_SEEKER || team == HNS_TEAM_HIDER )
            {
                if( 
team == HNS_TEAM_SEEKER && g_bAlive[plr] )
                {
                    
make_ScreenFade(plr1.51.5blind_redblind_greenblind_blueblind_alpha);
                    
                    
/*set_pev(plr, pev_flags, pev(plr, pev_flags) | FL_FROZEN);
                    set_pev(plr, pev_maxspeed, -1.0);*/
                
}
                
                
set_hudmessage(hud_redhud_greenhud_blue, -1.0, -1.000.01.10.10.11);
                
show_hudmessage(plr"Hiders tienen %i segundos para esconderse!"g_HideTimer);
                
                if( 
sounds )
                {
                    
client_cmd(plr"spk fvox/%s.wav"sSound);
                }
            }
        }
        
        
g_HideTimer--;
        
set_task(1.0sTaskHideTimerTASK_ID_HIDETIMERg_sBlank0g_sBlank0);
    }
    else if( 
g_HideTimer == )
    {
        static 
hud_redhud_greenhud_blue;
        
get_hud_colors(hud_redhud_greenhud_blue);
        
        static 
param[2];
        for( new 
plr 1plr <= g_MaxPlayersplr++ )
        {
            if( !
g_bConnected[plr] )
            {
                continue;
            }
            
            
team cs_get_user_team(plr);
            if( 
team == HNS_TEAM_SEEKER || team == HNS_TEAM_HIDER )
            {
                if( 
team == HNS_TEAM_SEEKER && g_bAlive[plr] )
                {
                    
make_ScreenFade(plr0.00.0000255);
                    
                    
cs_reset_user_maxspeed(plr);
                    
//set_pev(plr, pev_flags, pev(plr, pev_flags) & ~FL_FROZEN);
                
}
                
                
set_hudmessage(hud_redhud_greenhud_blue, -1.0, -1.000.03.00.10.11);
                
show_hudmessage(plr"La ronda comenzo!");
                
                
param[0] = _:team;
                
taskGiveWeapons(paramplr TASK_ID_GIVEWEAPONS);
            }
        }
        
        
g_bWeaponsGiven true;
        
        
g_HideTimer--;
        
set_task(1.0sTaskHideTimerTASK_ID_HIDETIMERg_sBlank0g_sBlank0);
    }
    else
    {
        for( new 
plr 1plr <= g_MaxPlayersplr++ )
        {
            if( !
g_bConnected[plr] )
            {
                continue;
            }
            
            if( 
g_bAlive[plr] && cs_get_user_team(plr) == HNS_TEAM_SEEKER )
            {
                
make_ScreenFade(plr0.00.0000255);
                
                
cs_reset_user_maxspeed(plr);
                
//set_pev(plr, pev_flags, pev(plr, pev_flags) & ~FL_FROZEN);
            
}
        }
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
taskStripWeapons(plr)
{
    
plr -= TASK_ID_STRIPWEAPONS;
    
    
fm_strip_user_weapons(plr);
    
    return 
PLUGIN_CONTINUE;
}

public 
taskGiveKnife(param[], plr)
{
    
plr -= TASK_ID_GIVEKNIFE;
    
    new 
CsTeams:team CsTeams:param[0];
    
    if( 
team != HNS_TEAM_HIDER || get_pcvar_num(hns_hiders_knife))
    {
        
fm_give_item(plr"weapon_knife");
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
taskGiveWeapons(param[], plr)
{
    
plr -= TASK_ID_GIVEWEAPONS;
    
    new 
CsTeams:team CsTeams:param[0];
    if( 
team != HNS_TEAM_HIDER && team != HNS_TEAM_SEEKER )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    
chance(plrget_pcvar_num(hns_grenades[team]), get_pcvar_num(hns_grenades_percent[team]),"weapon_hegrenade"CSW_HEGRENADE"HE Grenade");
    
chance(plrget_pcvar_num(hns_flashbangs[team]), get_pcvar_num(hns_flashbangs_percent[team]), "weapon_flashbang"CSW_FLASHBANG"Flashbang");
    
chance(plrget_pcvar_num(hns_smokegren[team]), get_pcvar_num(hns_smokegren_percent[team]), "weapon_smokegrenade"CSW_SMOKEGRENADE"Smoke Grenade");
    
    new 
num get_pcvar_num(hns_armor[team]);
    
num clamp(num0100);
    
    switch( 
num )
    {
        case 
0cs_set_user_armor(plr0CS_ARMOR_NONE);
        case 
1..99cs_set_user_armor(plrnumCS_ARMOR_KEVLAR);
        case 
100cs_set_user_armor(plrnumCS_ARMOR_VESTHELM);
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
taskCheckModel(param[], plr)
{
    
plr -= TASK_ID_CHECKMODEL;
    
    new 
CsTeams:team CsTeams:param[0];
    
    if( 
team == HNS_TEAM_SEEKER || team == HNS_TEAM_HIDER )
    {
        new 
CsTeams:otherteam = (team == HNS_TEAM_HIDER) ? HNS_TEAM_SEEKER HNS_TEAM_HIDER;
        
        new 
sModel[32];
        
cs_get_user_model(plrsModel31);
        
        for( new 
04i++ )
        {
            if( 
equal(sModelg_sAllModels[otherteam][i], 0) )
            {
                
cs_set_user_model(plrg_sDefaultModels[team]);
                break;
            }
        }
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
taskSwapTeams(taskid)
{
    static 
CsTeams:team;
    
    for( new 
plr 1plr <= g_MaxPlayersplr++ )
    {
        if( !
g_bConnected[plr] )
        {
            continue;
        }
        
        
team cs_get_user_team(plr);
        if( 
team == HNS_TEAM_HIDER )
        {
            
cs_set_user_team(plrHNS_TEAM_SEEKERHNS_MODEL_SEEKER);
            
            
emake_TeamInfo(plrg_sTeamInfo[HNS_TEAM_SEEKER]); /* let other plugins know that the player changed teams */
        
}
        else if( 
team == HNS_TEAM_SEEKER )
        {
            
cs_set_user_team(plrHNS_TEAM_HIDERHNS_MODEL_HIDER);
            
            
emake_TeamInfo(plrg_sTeamInfo[HNS_TEAM_HIDER]); /* let other plugins know that the player changed teams */
        
}
    }
    
    
g_RoundsLost 0;
    
g_RoundsEnded 0;
    
g_bDisableSlash true;
    
    return 
1;
}

public 
taskSetLights()
{
    if( !
g_bHnsOn )
    {
        if( !
equali(g_sLightsg_sLightsNormal) )
        {
            
set_lights(g_sLightsNormal);
        }
    }
    else
    {
        new 
sLights[16];
        
get_pcvar_string(hns_lightssLights15);
        
        if( !
equali(g_sLightssLights) )
        {
            if( !
strlen(sLights) )
            {
                
set_lights(g_sLightsNormal);
                
set_pcvar_string(hns_lightsg_sLightsNormal);
            }
            else
            {
                
set_lights(sLights);
            }
        }
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
taskExecuteConfig()
{
    new 
sConfig[64];
    
get_configsdir(sConfig63);
    
add(sConfig63"/hidenseek.cfg"0);
    
    if( 
file_exists(sConfig) )
    {
        
server_cmd("exec %s"sConfig);
        
server_exec();
        
        
set_task(1.0"TaskCheckOldVersion");
    }
    else
    {
        
make_config(sConfigtrue);
        
        
register_forward(FM_GetGameDescription"fwdGetGameDescription"0);
    }
}

public 
TaskCheckOldVersion()
{
    new 
sValue[32];
    
get_pcvar_string(hns_gametypesValue31);
    
    if( 
had_older_version(sValue) || is_config_old() )
    {
        
formatex(sValue31"HideNSeek v%s"PLUGIN_VERSION);
        
set_pcvar_string(hns_gametypesValue);
        
        
set_task(1.0"TaskResetConfig");
    }
    else
    {
        
register_forward(FM_GetGameDescription"fwdGetGameDescription"0);
    }
}

public 
TaskResetConfig()
{
    new 
sConfig[64];
    
get_configsdir(sConfig63);
    
add(sConfig63"/hidenseek.cfg"0);
    
    
make_config(sConfigfalse);
    
    
register_forward(FM_GetGameDescription"fwdGetGameDescription"0);
}

bool:had_older_version(const sGameType[])
{
    new 
bool:bOld false;
    
    new 
sTemp[32];
    
formatex(sTemp31"HideNSeek v%s"PLUGIN_VERSION);
    
    if( !
equali(sTempsGameType) )
    {
        new 
Float:version str_to_float(PLUGIN_VERSION);
        for( new 
Float:2.0version+= 0.1 )
        {
            
formatex(sTemp31"HideNSeek v%.1f"i);
            
            if( 
equali(sTempsGameType) )
            {
                
bOld true;
                break;
            }
        }
    }
    
    return 
bOld;
}

bool:is_config_old()
{
    new 
sConfig[64];
    
get_configsdir(sConfig63);
    
add(sConfig63"/hidenseek.cfg"0);
    
    new 
fopen(sConfig"rt");
    new 
data[128];
    
    while( !
feof(f) )
    {
        
fgets(fdatasizeof(data) - 1);
        
        if( 
containi(data"hns_warmup") != -)
        {
            
fclose(f);
            
            return 
false;
        }
    }
    
    
fclose(f);
    
    return 
true;
}

make_config(const sConfig[], bool:bCheckVersion)
{
    new 
fopen(sConfig"wt");
    
    new 
sValue[32]; // any string needed from a cvar
    
    
fprintf(f"hns_footsteps %i^n"get_pcvar_num(hns_footsteps));
    
fprintf(f"hns_money %i^n"get_pcvar_num(hns_money));
    
fprintf(f"hns_nubslash %i^n"get_pcvar_num(hns_nubslash));
    
fprintf(f"hns_disablebuy %i^n"get_pcvar_num(hns_disablebuy));
    
fprintf(f"hns_hidetime %i^n"get_pcvar_num(hns_hidetime));
    
fprintf(f"hns_timersounds %i^n"get_pcvar_num(hns_timersounds));
    
fprintf(f"hns_noslowdown %i^n"get_pcvar_num(hns_noslowdown));
    
fprintf(f"hns_teamchange %i^n"get_pcvar_num(hns_teamchange));
    
fprintf(f"hns_disablekill %i^n"get_pcvar_num(hns_disablekill));
    
fprintf(f"hns_chooseteam %i^n"get_pcvar_num(hns_chooseteam));
    
fprintf(f"hns_semiclip %i^n"get_pcvar_num(hns_semiclip));
    
fprintf(f"hns_semiclip_alpha %i^n"get_pcvar_num(hns_semiclip_alpha));
    
fprintf(f"hns_noflash %i^n"get_pcvar_num(hns_noflash));
    
fprintf(f"hns_removebreakables %i^n"get_pcvar_num(hns_removebreakables));
    
fprintf(f"hns_removedoors %i^n"get_pcvar_num(hns_removedoors));
    
fprintf(f"hns_visiblecommands %i^n"get_pcvar_num(hns_visiblecommands));
    
fprintf(f"hns_noboosting %i^n"get_pcvar_num(hns_noboosting));
    
fprintf(f"hns_noboosting_punish %i^n"get_pcvar_num(hns_noboosting_punish));
    
fprintf(f"hns_noboosting_damage %i^n"get_pcvar_num(hns_noboosting_damage));
    
fprintf(f"hns_noboosting_interval %.4f^n"get_pcvar_float(hns_noboosting_interval));
    
get_pcvar_string(hns_blindcolorssValue31);
    
fprintf(f"hns_blindcolors ^"%s^"^n"sValue);
    
get_pcvar_string(hns_hudcolorssValue31);
    
fprintf(f"hns_hudcolors ^"%s^"^n"sValue);
    
get_pcvar_string(hns_lightssValue31);
    
fprintf(f"hns_lights ^"%s^"^n"sValue);
    
    
get_pcvar_string(hns_gametypesValue31);
    if( 
bCheckVersion )
    {
        if( 
had_older_version(sValue) )
        {
            
formatex(sValue31"HideNSeek v%s"PLUGIN_VERSION);
        }
    }
    
fprintf(f"hns_gametype ^"%s^"^n"sValue);
    
    
get_pcvar_string(hns_prefixsValue31);
    
fprintf(f"hns_prefix ^"%s^"^n"sValue);
    
fprintf(f"hns_warmup_godmode %i^n"get_pcvar_num(hns_warmup_godmode));
    
fprintf(f"hns_warmup_respawn %i^n^n"get_pcvar_num(hns_warmup_respawn));
    
    new 
sTeams[CsTeams][16];
    
copy(sTeams[HNS_TEAM_HIDER], 15"hiders");
    
copy(sTeams[HNS_TEAM_SEEKER], 15"seekers");
    
fprintf(f"hns_hiders_knife %i^n"get_pcvar_num(hns_hiders_knife));
    
fprintf(f"hns_hiders_alivefrags %i^n"get_pcvar_num(hns_hiders_alivefrags));
    for( new 
CsTeams:team HNS_TEAM_HIDERteam CS_TEAM_SPECTATORteam++ )
    {
        
fprintf(f"hns_%s_grenades %i^n"sTeams[team], get_pcvar_num(hns_grenades[team]));
        
fprintf(f"hns_%s_grenades_percent %i^n"sTeams[team], get_pcvar_num(hns_grenades_percent[team]));
        
fprintf(f"hns_%s_flashbangs %i^n"sTeams[team], get_pcvar_num(hns_flashbangs[team]));
        
fprintf(f"hns_%s_flashbangs_percent %i^n"sTeams[team], get_pcvar_num(hns_flashbangs_percent[team]));
        
fprintf(f"hns_%s_smokegren %i^n"sTeams[team], get_pcvar_num(hns_smokegren[team]));
        
fprintf(f"hns_%s_smokegren_percent %i^n"sTeams[team], get_pcvar_num(hns_smokegren_percent[team]));
        
fprintf(f"hns_%s_armor %i^n^n"sTeams[team], get_pcvar_num(hns_armor[team]));
    }
    
    
fclose(f);
}

register_say_command(const sCommand[], const sHandle[], const flags=-1, const sDescription[]="", const FlagManager=-1)
{
    new 
sTemp[64];
    
    
formatex(sTemp63"say /%s"sCommand);
    
register_clcmd(sTempsHandleflagssDescriptionFlagManager);
    
    
formatex(sTemp63"say .%s"sCommand);
    
register_clcmd(sTempsHandleflagssDescriptionFlagManager);
    
    
formatex(sTemp63"say_team /%s"sCommand);
    
register_clcmd(sTempsHandleflagssDescriptionFlagManager);
    
    
formatex(sTemp63"say_team .%s"sCommand);
    
register_clcmd(sTempsHandleflagssDescriptionFlagManager);
}

handle_booster(plr)
{
    new 
sPrefix[16];
    new 
Float:fGametime get_gametime();
    new 
Float:fInterval get_pcvar_float(hns_noboosting_interval);
    
get_pcvar_string(hns_prefixsPrefix15);
    
    if( 
fGametime >= g_fBoostPunishDelay[plr] )
    {
        
punish_booster(plr);
        
g_fBoostPunishDelay[plr] = fGametime fInterval;
    }
    
    if( 
fGametime >= g_fBoostMessageDelay[plr] )
    {
        
set_hudmessage(2555050, -1.00.613.03.00.10.1, -1);
        
ShowSyncHudMsg(plrg_Hud"%s No Boosting Allowed!"sPrefix);
        
        
g_fBoostMessageDelay[plr] = fGametime 2.8;
    }
}

punish_booster(plr)
{
    new 
damage get_pcvar_num(hns_noboosting_damage);
    
    if( 
damage >= get_user_health(plr) )
    {
        
fm_fakedamage(plr"anti-boost system"float(damage), DMG_CRUSH);
    }
    else
    {
        
user_slap(plrdamage1);
        
user_slap(plr01);
    }
}

get_hider_and_seeker(&hider 0, &seeker 0, &hider_alive 0)
{
    static 
CsTeams:team;
    for( new 
plr 1plr <= g_MaxPlayersplr++ )
    {
        if( !
g_bConnected[plr] )
        {
            continue;
        }
        
        
team cs_get_user_team(plr);
        if( 
team == HNS_TEAM_SEEKER && !seeker )
        {
            
seeker plr;
            
            if( 
hider && hider_alive )
            {
                break;
            }
        }
        else if( 
team == HNS_TEAM_HIDER )
        {
            if( !
hider )
            {
                
hider plr;
            }
            if( !
hider_alive && g_bAlive[plr] )
            {
                
hider_alive plr;
                
                if( 
seeker && hider )
                {
                    break;
                }
            }
        }
    }
}

bool:remove_entities(const class[])
{
    new 
bool:remove false;
    
    new 
ent g_MaxPlayersproperties[32], Float:amt;
    while( (
ent engfunc(EngFunc_FindEntityByStringent"classname", class)) )
    {
        
pev(entpev_renderamtamt);
        
formatex(properties31"^"%i^" ^"%f^" ^"%i^""pev(entpev_rendermode), amtpev(entpev_solid));
        
        
set_pev(entpev_messageproperties);
        
set_pev(entpev_rendermodekRenderTransAlpha);
        
set_pev(entpev_renderamt0.0);
        
set_pev(entpev_solidSOLID_NOT);
        
        
remove true;
    }
    
    return 
remove;
}

bool:restore_entities(const class[])
{
    new 
bool:remove true;
    
    new 
ent g_MaxPlayersproperties[32], rendermode[4], amt[16], solid[4];
    while( (
ent engfunc(EngFunc_FindEntityByStringent"classname", class)) )
    {
        
pev(entpev_messageproperties31);
        
parse(propertiesrendermode3amt15solid3);
        
        
set_pev(entpev_rendermodestr_to_num(rendermode));
        
set_pev(entpev_renderamtstr_to_float(amt));
        
set_pev(entpev_solidstr_to_num(solid));
        
set_pev(entpev_messageg_sBlank);
        
        
remove false;
    }
    
    return 
remove;
}

cs_reset_user_maxspeed(plr)
{
    static 
Float:fMaxSpeed;
    
    static 
clipammo;
    switch( 
get_user_weapon(plrclipammo) )
    {
        case 
CSW_SG550CSW_AWPCSW_G3SG1:
        {
            
fMaxSpeed 210.0;
        }
        case 
CSW_M249:
        {
            
fMaxSpeed 220.0;
        }
        case 
CSW_AK47:
        {
            
fMaxSpeed 221.0;
        }
        case 
CSW_M3CSW_M4A1:
        {
            
fMaxSpeed 230.0;
        }
        case 
CSW_SG552:
        {
            
fMaxSpeed 235.0;
        }
        case 
CSW_XM1014CSW_AUGCSW_GALILCSW_FAMAS:
        {
            
fMaxSpeed 240.0;
        }
        case 
CSW_P90:
        {
            
fMaxSpeed 245.0;
        }
        case 
CSW_SCOUT:
        {
            
fMaxSpeed 260.0;
        }
        default:
        {
            
fMaxSpeed 250.0;
        }
    }
    
    
engfunc(EngFunc_SetClientMaxspeedplrfMaxSpeed);
    
set_pev(plrpev_maxspeedfMaxSpeed);
    
    return 
1;
}

chance(plrmaxcountpercentsClass[], CSW_type=0sName[]="")
{
    if( !
maxcount || !percent )
    {
        return 
0;
    }
    
    new 
count;
    for( new 
0maxcounti++ )
    {
        if( 
random_num(1100) <= percent )
        {
            if( 
count == )
            {
                
fm_give_item(plrsClass);
            }
            
            
count++;
        }
    }
    
    if( 
count && CSW_type )
    {
        if( 
percent 100 )
        {
            
hns_print(plr"You received %i %s%s! (%i%% chance)"countsName, (count == 1) ? g_sBlank g_sSpercent);
        }
        
        
cs_set_user_bpammo(plrCSW_typecount);
    }
    
    return 
1;
}

get_blind_colors(&red, &green, &blue, &alpha)
{
    new 
sColors[20];
    
get_pcvar_string(hns_blindcolorssColors19);
    
    static 
sRed[5], sGreen[5], sBlue[5], sAlpha[5];
    if( 
parse(sColorssRed4sGreen4sBlue4sAlpha4) < )
    {
        
red 0;
        
green 0;
        
blue 0;
        
alpha 255;
        
        
formatex(sColors19"%i %i %i %i"redgreenbluealpha);
        
set_pcvar_string(hns_blindcolorssColors);
        
        return 
0;
    }
    
    
red =    equali(sRed"rand"0) ?    random(256) : clamp(str_to_num(sRed), 0255);
    
green =    equali(sGreen"rand"0) ?    random(256) : clamp(str_to_num(sGreen), 0255);
    
blue =    equali(sBlue"rand"0) ?    random(256) : clamp(str_to_num(sBlue), 0255);
    
alpha =    equali(sAlpha"rand"0) ?    random(256) : clamp(str_to_num(sAlpha), 0255);
    
    return 
1;
}

get_hud_colors(&red, &green, &blue)
{
    new 
sColors[20];
    
get_pcvar_string(hns_hudcolorssColors19);
    
    static 
sRed[5], sGreen[5], sBlue[5];
    if( 
parse(sColorssRed4sGreen4sBlue4) < )
    {
        
red 255;
        
green 255;
        
blue 255;
        
        
formatex(sColors19"%i %i %i"redgreenblue);
        
set_pcvar_string(hns_blindcolorssColors);
        
        return 
0;
    }
    
    
red =    equali(sRed"rand"0) ?    random(256) : clamp(str_to_num(sRed), 0255);
    
green =    equali(sGreen"rand"0) ?    random(256) : clamp(str_to_num(sGreen), 0255);
    
blue =    equali(sBlue"rand"0) ?    random(256) : clamp(str_to_num(sBlue), 0255);
    
    return 
1;
}

set_lights(const sLights[])
{
    
engfunc(EngFunc_LightStyle0sLights);
    
copy(g_sLights16sLights);
    
    return 
1;
}

make_HideWeapon(plrflags)
{
    static 
iplr plr get_player();
    if( !
)
    {
        return 
0;
    }
    
    
message_begin(plr MSG_ONE MSG_ALLg_msgHideWeapon, {000}, plr);
    
write_byte(flags);
    
message_end();
    
    return 
1;
}

make_ScreenFade(plrFloat:fDurationFloat:fHoldtimeredgreenbluealpha)
{
    static 
iplr plr get_player();
    if( !
)
    {
        return 
0;
    }
    
    
message_begin(plr MSG_ONE MSG_ALLg_msgScreenFade, {000}, plr);
    
write_short(floatround(4096.0 fDurationfloatround_round));
    
write_short(floatround(4096.0 fHoldtimefloatround_round));
    
write_short(4096);
    
write_byte(red);
    
write_byte(green);
    
write_byte(blue);
    
write_byte(alpha);
    
message_end();
    
    return 
1;
}

emake_TeamInfo(plrsTeam[])
{
    if( !
plr )
    {
        return 
0;
    }
    
    
emessage_begin(MSG_ALLg_msgTeamInfo, {000}, 0);
    
ewrite_byte(plr);
    
ewrite_string(sTeam);
    
emessage_end();
    
    return 
1;
}

make_TeamInfo(plrsTeam[])
{
    if( !
plr )
    {
        return 
0;
    }
    
    
message_begin(MSG_ALLg_msgTeamInfo, {000}, 0);
    
write_byte(plr);
    
write_string(sTeam);
    
message_end();
    
    return 
1;
}

make_Money(plrmoneyflash)
{
    if( !
plr )
    {
        return 
0;
    }
    
    
message_begin(MSG_ONEg_msgMoney, {000}, plr);
    
write_long(money);
    
write_byte(flash 0);
    
message_end();
    
    return 
1;
}

make_ArmorType(plrhelmet)
{
    if( !
plr )
    {
        return 
0;
    }
    
    
message_begin(MSG_ONEg_msgArmorType, {000}, plr);
    
write_byte(helmet);
    
message_end();
    
    return 
1;
}

make_SayText(receiversendersMessage[])
{
    if( !
sender )
    {
        return 
0;
    }
    
    
message_begin(receiver MSG_ONE MSG_ALLg_msgSayText, {000}, receiver);
    
write_byte(sender);
    
write_string(sMessage);
    
message_end();
    
    return 
1;
}

hns_print(plr, const sFormat[], any:...)
{
    static 
iplr plr get_player();
    if( !
)
    {
        return 
0;
    }
    
    new 
sPrefix[16];
    
get_pcvar_string(hns_prefixsPrefix15);
    
    new 
sMessage[256];
    new 
len formatex(sMessage255"^x04%s^x01 "sPrefix);
    
vformat(sMessage[len], 255-lensFormat3);
    
sMessage[192] = '^0';
    
    
make_SayText(plrisMessage);
    
    return 
1;
}

get_player()
{
    for( new 
plr 1plr <= g_MaxPlayersplr++ )
    {
        if( 
g_bConnected[plr] )
        {
            return 
plr;
        }
    }
    
    return 
0;
}

/* cstrike -> fakemeta stocks */
CsTeams:cs_get_user_team(plr, &{CsInternalModel,_}:model=CS_DONTCHANGE)
{
    
model CsInternalModel:get_pdata_int(plrOFFSET_INTERNALMODEL);
    
    return 
CsTeams:get_pdata_int(plrOFFSET_TEAM);
}

cs_set_user_team(plr, {CsTeams,_}:team, {CsInternalModel,_}:model=CS_DONTCHANGE)
{
    
set_pdata_int(plrOFFSET_TEAM_:team);
    if( 
model )
    {
        
set_pdata_int(plrOFFSET_INTERNALMODEL_:model);
    }
    
    
dllfunc(DLLFunc_ClientUserInfoChangedplr);
    
    
make_TeamInfo(plrg_sTeamInfo[team]);
    
    return 
1;
}

cs_set_user_money(plrmoneyflash=1)
{
    
set_pdata_int(plrOFFSET_MONEYmoney);
    
    
make_Money(plrmoneyflash);
    
    return 
1;
}

cs_set_user_armor(plramountCsArmorType:type)
{
    
set_pdata_int(plrOFFSET_ARMORTYPE_:type);
    
set_pev(plrpev_armorvaluefloat(amount));
    
    if( 
type != CS_ARMOR_NONE )
    {
        
make_ArmorType(plr, (type == CS_ARMOR_VESTHELM) ? 0);
    }
    
    return 
1;
}

__get_ammo_offset(weapon)
{
    static 
offset;
    
    switch( 
weapon )
    {
        case 
CSW_AWP:
        {
            
offset OFFSET_AWP_AMMO;
        }
        case 
CSW_SCOUTCSW_AK47CSW_G3SG1:
        {
            
offset OFFSET_SCOUT_AMMO;
        }
        case 
CSW_FAMASCSW_M4A1CSW_AUGCSW_SG550CSW_GALILCSW_SG552:
        {
            
offset OFFSET_FAMAS_AMMO;
        }
        case 
CSW_M3CSW_XM1014:
        {
            
offset OFFSET_M3_AMMO;
        }
        case 
CSW_USPCSW_UMP45CSW_MAC10:
        {
            
offset OFFSET_USP_AMMO;
        }
        case 
CSW_FIVESEVENCSW_P90:
        {
            
offset OFFSET_FIVESEVEN_AMMO;
        }
        case 
CSW_DEAGLE:
        {
            
offset OFFSET_DEAGLE_AMMO;
        }
        case 
CSW_P228:
        {
            
offset OFFSET_P228_AMMO;
        }
        case 
CSW_GLOCK18CSW_MP5NAVYCSW_TMPCSW_ELITE:
        {
            
offset OFFSET_GLOCK_AMMO;
        }
        case 
CSW_FLASHBANG:
        {
            
offset OFFSET_FLASHBANG_AMMO;
        }
        case 
CSW_HEGRENADE:
        {
            
offset OFFSET_HEGRENADE_AMMO;
        }
        case 
CSW_SMOKEGRENADE:
        {
            
offset OFFSET_SMOKEGRENADE_AMMO;
        }
        case 
CSW_C4:
        {
            
offset OFFSET_C4_AMMO;
        }
        default:
        {
            return 
0;
        }
    }
    
    return 
offset;

Responder
#2
te falto esto :
new const g_sBuyCommands[][] =
{
"smg","usp", "glock", "deagle", "p228", "elites",
"fn57", "m3", "xm1014", "mp5", "tmp", "p90",
"mac10", "ump45", "ak47", "galil", "famas",
"sg552", "m4a1", "aug", "scout", "awp", "g3sg1",
"sg550", "m249", "vest", "vesthelm", "flash",
"hegren", "sgren", "defuser", "nvgs", "shield",
"primammo", "secammo", "km45", "9x19mm", "nighthawk",
"228compact", "fiveseven", "12gauge", "autoshotgun",
"mp", "c90", "cv47", "defender", "clarion", "krieg552",
"bullpup", "magnum", "d3au1", "krieg550"
}; Osea Agregar La Smg
Responder
#3
(23/06/2016, 09:52 AM)Ivan.-rlz escribió: Les dejo este hidenseek que lo edite, saque todo lo relacionado con el scrim y solamente 2k de lineas, lo probé y funcionaba todo, solamente deje un hud permanente por si quieren meterle algo.

Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fakemeta_util>

new const PLUGIN_NAME[] =    "Community: HidenSeek"
new const PLUGIN_VERSION[] =    "2.8"
new const PLUGIN_AUTHOR[] =    "Exolent - Code removido: Ivan.-rlz"

new const g_sBlank[] = "";
new const 
g_sA[] = "a";
new const 
g_sB[] = "b";
new const 
g_sS[] = "s";
new const 
g_sKnifeModel_v[] = "models/v_knife.mdl";
new const 
g_sKnifeModel_w[] = "models/w_knife.mdl";
new const 
g_sModel[] = "model";
new const 
g_sLightsNormal[] = "m";
new const 
g_sClassBreakable[] = "func_breakable";
new const 
g_sClassDoor[] = "func_door";
new const 
g_sClassDoorRotating[] = "func_door_rotating";

/* CONVERT CSTRIKE TO FAKEMETA */

enum CsTeams CS_TEAM_UNASSIGNED 0CS_TEAM_TCS_TEAM_CTCS_TEAM_SPECTATOR };
enum CsInternalModel CS_DONTCHANGE 0,CS_CT_URBAN,CS_T_TERRORCS_T_LEET,CS_T_ARCTIC,CS_CT_GSG9,CS_CT_GIGN,CS_CT_SAS,CS_T_GUERILLA,CS_CT_VIP,CZ_T_MILITIA,CZ_CT_SPETSNAZ };
enum CsArmorType CS_ARMOR_NONE 0CS_ARMOR_KEVLARCS_ARMOR_VESTHELM };

#define OFFSET_ARMORTYPE        112
#define OFFSET_TEAM            114
#define OFFSET_MONEY            115
#define OFFSET_INTERNALMODEL        126
#define OFFSET_AWP_AMMO            377 
#define OFFSET_SCOUT_AMMO        378
#define OFFSET_PARA_AMMO        379
#define OFFSET_FAMAS_AMMO        380
#define OFFSET_M3_AMMO            381
#define OFFSET_USP_AMMO            382
#define OFFSET_FIVESEVEN_AMMO        383
#define OFFSET_DEAGLE_AMMO        384
#define OFFSET_P228_AMMO        385
#define OFFSET_GLOCK_AMMO        386
#define OFFSET_FLASHBANG_AMMO        387
#define OFFSET_HEGRENADE_AMMO        388
#define OFFSET_SMOKEGRENADE_AMMO    389
#define OFFSET_C4_AMMO            390

#define cs_set_user_bpammo(%1,%2,%3) set_pdata_int(%1, __get_ammo_offset(%2), %3)
#define cs_set_user_model(%1,%2) engfunc(EngFunc_SetClientKeyValue, %1, engfunc(EngFunc_GetInfoKeyBuffer, %1), g_sModel, %2)
#define cs_get_user_model(%1,%2,%3) engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, %1), g_sModel, %2, %3)

/* END OF CSTRIKE TO FAKEMETA CONVERSION */

#define HIDE_MONEY        (1<<5)

new const CsTeams:HNS_TEAM_HIDER CS_TEAM_T;
new const 
CsTeams:HNS_TEAM_SEEKER CS_TEAM_CT;

new const 
CsInternalModel:HNS_MODEL_HIDER CS_T_LEET;
new const 
CsInternalModel:HNS_MODEL_SEEKER CS_CT_GIGN;

new const 
g_sBuyCommands[][] =
{
    
"usp""glock""deagle""p228""elites",
    
"fn57""m3""xm1014""mp5""tmp""p90",
    
"mac10""ump45""ak47""galil""famas",
    
"sg552""m4a1""aug""scout""awp""g3sg1",
    
"sg550""m249""vest""vesthelm""flash",
    
"hegren""sgren""defuser""nvgs""shield",
    
"primammo""secammo""km45""9x19mm""nighthawk",
    
"228compact""fiveseven""12gauge""autoshotgun",
    
"mp""c90""cv47""defender""clarion""krieg552",
    
"bullpup""magnum""d3au1""krieg550"
};
new const 
MAX_BUY_COMMANDS sizeof(g_sBuyCommands);
new const 
g_sRemoveEntities[][] =
{
    
"func_bomb_target",
    
"info_bomb_target",
    
"hostage_entity",
    
"monster_scientist",
    
"func_hostage_rescue",
    
"info_hostage_rescue",
    
"info_vip_start",
    
"func_vip_safetyzone",
    
"func_escapezone",
    
"armoury_entity"
};
new const 
MAX_REMOVED_ENTITIES sizeof(g_sRemoveEntities);
new const 
g_sAllModels[CsTeams][][] =
{
    {
""""""""},
    {
"terror""arctic""leet""guerilla"},
    {
"gign""gsg9""sas""urban"},
    {
""""""""}
};
new const 
g_sDefaultModels[CsTeams][] =
{
    
"",
    
"leet",
    
"gign",
    
""
};
new const 
g_sTeamInfo[CsTeams][] =
{
    
"UNASSIGNED",
    
"TERRORIST",
    
"CT",
    
"SPECTATOR"
};
new const 
g_sTeamNames[CsTeams][] =
{
    
"Spectator",
    
"Terrorist",
    
"Counter-Terrorist",
    
"Spectator"
};

enum (+= 1000)
{
    
TASK_ID_STRIPWEAPONS 1000,
    
TASK_ID_GIVEWEAPONS,
    
TASK_ID_GIVEKNIFE,
    
TASK_ID_CHECKMODEL,
    
TASK_ID_HIDETIMER,
    
TASK_ID_SWAPTEAMS,
    
TASK_ID_SETLIGHTS,
    
TASK_SHOWHUD
};

#define ID_SHOWHUD (taskid - TASK_SHOWHUD)

new const g_PlayerTasks[] =
{
    
TASK_ID_STRIPWEAPONS,
    
TASK_ID_GIVEWEAPONS,
    
TASK_ID_GIVEKNIFE,
    
TASK_ID_CHECKMODEL,
};
new const 
MAX_PLAYER_TASKS sizeof(g_PlayerTasks);

new 
bool:g_bHnsOn truebool:g_bConnected[33], bool:g_bAlive[33], bool:g_bFirstSpawn[33], CsTeams:g_Team[33];
new 
bool:g_bSolid[33], bool:g_bRestoreSolid[33], bool:g_bWeaponsGiven;

new 
g_sHelpMotd[43], g_sLights[16]

new 
Float:g_fKillMsgDelay[33];

new 
g_RoundsLostg_RoundsEndedg_HideTimerg_OldMoney;

new 
bool:g_bDisableSlash true;

new 
bool:g_bNonSpawnEvent[33];
new 
g_FwdClientCommand_post;

new 
bool:g_bRemovedBreakables;
new 
bool:g_bRemovedDoors;
new 
bool:g_bRemovedDoorsRotating;

new 
Float:g_fBoostPunishDelay[33];
new 
Float:g_fBoostMessageDelay[33];

new 
hns_footstepshns_moneyhns_nubslashhns_disablebuyhns_hiders_knife
new hns_grenades[CsTeams], hns_grenades_percent[CsTeams], hns_flashbangs[CsTeams]
new 
hns_flashbangs_percent[CsTeams], hns_smokegren[CsTeams], hns_smokegren_percent[CsTeams]
new 
hns_armor[CsTeams], hns_hidetimehns_timersoundshns_noslowdownhns_teamchange
new hns_disablekillhns_blindcolorshns_hudcolorshns_hiders_alivefragshns_lights
new hns_visiblecommandshns_chooseteamhns_semicliphns_semiclip_alphahns_gametype
new hns_prefixhns_removebreakableshns_noflashhns_removedoorshns_noboosting
new hns_noboosting_damagehns_noboosting_punishhns_noboosting_interval
new hns_warmup_godmodehns_warmup_respawn

new g_msgSayTextg_msgHideWeapong_msgScreenFadeg_msgTeamInfog_msgMoneyg_msgArmorType;
new 
g_MaxPlayersg_MaxEntitiesg_HostageEntsv_restartg_Hudg_Hud2;

public 
plugin_precache()
{
    
register_forward(FM_Spawn"fwdSpawn"0);
    
    new 
allocHostageEntity engfunc(EngFunc_AllocString"hostage_entity");
    do
    {
        
g_HostageEnt engfunc(EngFunc_CreateNamedEntityallocHostageEntity);
    }
    while( !
pev_valid(g_HostageEnt) );
    
    
engfunc(EngFunc_SetOriging_HostageEntFloat:{0.00.0, -55000.0});
    
engfunc(EngFunc_SetSizeg_HostageEntFloat:{-1.0, -1.0, -1.0}, Float:{1.01.01.0});
    
dllfunc(DLLFunc_Spawng_HostageEnt);
    
    return 
PLUGIN_CONTINUE;
}

public 
plugin_init()
{
    
register_plugin(PLUGIN_NAMEPLUGIN_VERSIONPLUGIN_AUTHOR);
    
    new 
sBuyHandle[] = "cmdBuy";
    
register_clcmd("buy"sBuyHandle, -1g_sBlank);
    
register_clcmd("buyammo1"sBuyHandle, -1g_sBlank);
    
register_clcmd("buyammo2"sBuyHandle, -1g_sBlank);
    
register_clcmd("buyequip"sBuyHandle, -1g_sBlank);
    
register_clcmd("cl_autobuy"sBuyHandle, -1g_sBlank);
    
register_clcmd("cl_rebuy"sBuyHandle, -1g_sBlank);
    
register_clcmd("cl_setautobuy"sBuyHandle, -1g_sBlank);
    
register_clcmd("cl_setrebuy"sBuyHandle, -1g_sBlank);
    
    
register_concmd("hns_status""cmdHnsStatus"ADMIN_KICK"<0|1> -- 0=HNS OFF   1=HNS ON");
    
    
register_say_command("hnshelp""cmdHelp", -1g_sBlank);
    
    
register_forward(FM_Touch"fwdTouch"0);
    
register_forward(FM_CmdStart"fwdCmdStart"0);
    
register_forward(FM_SetModel"fwdSetModel"0);
    
register_forward(FM_ClientKill"fwdClientKill"0);
    
register_forward(FM_PlayerPreThink"fwdPlayerPreThink"0);
    
register_forward(FM_PlayerPostThink"fwdPlayerPostThink"0);
    
register_forward(FM_AddToFullPack"fwdAddToFullPackPost"1);
    
register_forward(FM_Voice_SetClientListening"fwdSetVoice"0);
    
    
register_event("TextMsg""eventRestartAttempt"g_sA"2&#Game_w");
    
register_clcmd("fullupdate""cmdFullupdate", -1g_sBlank);
    
    
hns_footsteps register_cvar("hns_footsteps""1"00.0);
    
hns_money register_cvar("hns_money""0"00.0);
    
hns_nubslash register_cvar("hns_nubslash""3"00.0);
    
hns_disablebuy register_cvar("hns_disablebuy""1"00.0);
    
hns_hiders_knife register_cvar("hns_hiders_knife""1"00.0);
    
hns_grenades[HNS_TEAM_HIDER] = register_cvar("hns_hiders_grenades""1"00.0);
    
hns_grenades_percent[HNS_TEAM_HIDER] = register_cvar("hns_hiders_grenades_percent""100"00.0);
    
hns_flashbangs[HNS_TEAM_HIDER] = register_cvar("hns_hiders_flashbangs""2"00.0);
    
hns_flashbangs_percent[HNS_TEAM_HIDER] = register_cvar("hns_hiders_flashbangs_percent""100"00.0);
    
hns_smokegren[HNS_TEAM_HIDER] = register_cvar("hns_hiders_smokegren""1"00.0);
    
hns_smokegren_percent[HNS_TEAM_HIDER] = register_cvar("hns_hiders_smokegren_percent""100"00.0);
    
hns_armor[HNS_TEAM_HIDER] = register_cvar("hns_hiders_armor""100"00.0);
    
hns_grenades[HNS_TEAM_SEEKER] = register_cvar("hns_seekers_grenades""0"00.0);
    
hns_grenades_percent[HNS_TEAM_SEEKER] = register_cvar("hns_seekers_grenades_percent""0"00.0);
    
hns_flashbangs[HNS_TEAM_SEEKER] = register_cvar("hns_seekers_flashbangs""0"00.0);
    
hns_flashbangs_percent[HNS_TEAM_SEEKER] = register_cvar("hns_seekers_flashbangs_percent""0"00.0);
    
hns_smokegren[HNS_TEAM_SEEKER] = register_cvar("hns_seekers_smokegren""0"00.0);
    
hns_smokegren_percent[HNS_TEAM_SEEKER] = register_cvar("hns_seekers_smokegren_percent""0"00.0);
    
hns_armor[HNS_TEAM_SEEKER] = register_cvar("hns_seekers_armor""100"00.0);
    
hns_hidetime register_cvar("hns_hidetime""10"00.0);
    
hns_timersounds register_cvar("hns_timersounds""1"00.0);
    
hns_noslowdown register_cvar("hns_noslowdown""0"00.0);
    
hns_teamchange register_cvar("hns_teamchange""0"00.0);
    
hns_disablekill register_cvar("hns_disablekill""1"00.0);
    
hns_blindcolors register_cvar("hns_blindcolors""0 0 0 255"00.0);
    
hns_hudcolors register_cvar("hns_hudcolors""0 255 0"00.0);
    
hns_hiders_alivefrags register_cvar("hns_hiders_alivefrags""1"00.0);
    
hns_lights register_cvar("hns_lights"g_sLightsNormal00.0);
    
hns_visiblecommands register_cvar("hns_visiblecommands""0"00.0);
    
hns_chooseteam register_cvar("hns_chooseteam""0"00.0);
    
hns_semiclip register_cvar("hns_semiclip""1"00.0);
    
hns_semiclip_alpha register_cvar("hns_semiclip_alpha""127"00.0);
    
hns_prefix register_cvar("hns_prefix""[HNS]"00.0);
    
hns_removebreakables register_cvar("hns_removebreakables""1"00.0);
    
hns_noflash register_cvar("hns_noflash""1"00.0);
    
hns_removedoors register_cvar("hns_removedoors""1"00.0);
    
hns_noboosting register_cvar("hns_noboosting""1"00.0);
    
hns_noboosting_damage register_cvar("hns_noboosting_damage""25"00.0);
    
hns_noboosting_punish register_cvar("hns_noboosting_punish""3"00.0);
    
hns_noboosting_interval register_cvar("hns_noboosting_interval""1.0"00.0);
    
hns_warmup_godmode register_cvar("hns_warmup_godmode""1"00.0);
    
hns_warmup_respawn register_cvar("hns_warmup_respawn""1"00.0);
    
    new 
sHideNSeek[32];
    
formatex(sHideNSeek31"HideNSeek v%s"PLUGIN_VERSION);
    
hns_gametype register_cvar("hns_gametype"sHideNSeek00.0);
    
    
g_Hud CreateHudSyncObj();
    
g_Hud2 CreateHudSyncObj();
    
    
sv_restart get_cvar_pointer("sv_restart");
    
    
g_msgSayText get_user_msgid("SayText");
    
g_msgHideWeapon get_user_msgid("HideWeapon");
    
g_msgScreenFade get_user_msgid("ScreenFade");
    
g_msgTeamInfo get_user_msgid("TeamInfo");
    
g_msgMoney get_user_msgid("Money");
    
g_msgArmorType get_user_msgid("ArmorType");
    
    
register_message(g_msgHideWeapon"messageHideWeapon");
    
register_message(g_msgScreenFade"messageScreenFade");
    
    
register_event("ResetHUD""eventResetHUD"g_sB);
    
register_event("Money""eventMoney"g_sB);
    
register_event("HLTV""eventNewRound"g_sA"1=0""2=0");
    
register_event("SendAudio""eventTerrWin"g_sA"2=%!MRAD_terwin");
    
register_event("TextMsg""eventRestartRound"g_sA"2&#Game_C""2&#Game_w");
    
register_event("CurWeapon""eventCurWeapon"g_sB"1=1");
    
    
register_logevent("logeventRoundStart"2"1=Round_Start");
    
register_logevent("logeventRoundEnd"2"1=Round_End");
    
    
g_MaxPlayers global_get(glb_maxClients);
    
g_MaxEntities global_get(glb_maxEntities);
    
    
copy(g_sLights15g_sLightsNormal);
    
set_task(1.0"taskSetLights"TASK_ID_SETLIGHTSg_sBlank0g_sB0);
    
    new 
dir[23];
    
get_configsdir(dir22);
    
    
formatex(g_sHelpMotd42"%s/hidenseek_help.txt"dir);
    
    
set_task(1.0"taskExecuteConfig");
    
    return 
PLUGIN_CONTINUE;
}

public 
plugin_natives()
{
    
register_library("hidenseek");
    
register_native("hns_get_status""_GetHnsStatus");
    
    return 
PLUGIN_CONTINUE;
}

public 
bool:_GetHnsStatus(pluginparams)
{
    return 
g_bHnsOn;
}

public 
client_putinserver(id)
{
    
g_bConnected[id] = true;
    
g_bAlive[id] = false;
    
g_bFirstSpawn[id] = false;
    
    
set_task(1.0"ShowHUD"id+TASK_SHOWHUD__"b")
}

public 
client_disconnect(plr)
{
    
g_bConnected[plr] = false;
    
    for( new 
0MAX_PLAYER_TASKSi++ )
    {
        
remove_task(plr g_PlayerTasks[i], 0);
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
client_command(plr)
{
    if( !
g_bHnsOn )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    new 
sArg[13];
    if( 
read_argv(0sArg12) > 11 )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    if( 
equali(sArg"chooseteam") && (CS_TEAM_UNASSIGNED cs_get_user_team(plr) < CS_TEAM_SPECTATOR) )
    {
        new 
CsTeams:team cs_get_user_team(plr);
        new 
chooseteam get_pcvar_num(hns_chooseteam);
        
        if( 
team != HNS_TEAM_HIDER && team != HNS_TEAM_SEEKER
        
|| chooseteam == 1
        
|| chooseteam == && is_user_admin(plr) )
        {
            return 
PLUGIN_CONTINUE;
        }
        
        return 
PLUGIN_HANDLED;
    }
    
    if( !
get_pcvar_num(hns_disablebuy) )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    for( new 
0MAX_BUY_COMMANDSi++ )
    {
        if( 
equali(g_sBuyCommands[i], sArg0) )
        {
            return 
PLUGIN_HANDLED;
        }
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
cmdBuy(plr)
    return (
g_bHnsOn && get_pcvar_num(hns_disablebuy)) ? PLUGIN_HANDLED PLUGIN_CONTINUE;

public 
cmdFullupdate(plr)
{
    
g_bNonSpawnEvent[plr] = true;
    
    
g_FwdClientCommand_post register_forward(FM_ClientCommand"fwdClientCommandPost"1);
    
    return 
PLUGIN_CONTINUE;
}

public 
cmdHnsStatus(plrlevelcid)
{
    if( !
cmd_access(plrlevelcid2) )
    {
        return 
PLUGIN_HANDLED;
    }
    
    new 
sArg[16];
    
read_argv(1sArg15);
    
    new 
bool:bOn bool:clamp(str_to_num(sArg), 01);
    
    if( 
bOn == g_bHnsOn )
    {
        new 
sPrefix[16];
        
get_pcvar_string(hns_prefixsPrefix15);
        
        
console_print(plr"%s HideNSeek is already o%s!"sPrefixg_bHnsOn "n" "ff");
        return 
PLUGIN_HANDLED;
    }
    
    
g_bHnsOn bOn;
    
set_pcvar_num(sv_restart1);
    
    new 
sName[64]; /* server hostnames can be longer than player names */
    
get_user_name(plrsName63);
    
    
hns_print(0"^x03%s :^x01  st%sed HideNSeek!"sNamebOn "art" "opp");
    
    return 
PLUGIN_HANDLED;
}

public 
cmdHelp(plr)
{
    if( 
file_exists(g_sHelpMotd) )
    {
        new 
sText[2500];
        
        new 
fopen(g_sHelpMotd"rt"), sData[512];
        while( !
feof(f) )
        {
            
fgets(fsData511);
            
add(sText2499sData0);
        }
        
fclose(f);
        
        new 
sTeamChange[64];
        
copy(sTeamChange63"The teams will switch ");
        new 
info get_pcvar_num(hns_teamchange);
        if( 
info )
        {
            
format(sTeamChange63"%safter %i rounds have ended"sTeamChangeinfo);
        }
        else
        {
            
add(sTeamChange63"when Seekers win the round");
        }
        
        new 
sHiderEquipment[512];
        if( 
get_pcvar_num(hns_hiders_knife) == )
        {
            
copy(sHiderEquipment511"Broken knife<br>");
        }
        
info get_pcvar_num(hns_grenades[HNS_TEAM_HIDER]);
        new 
percent get_pcvar_num(hns_grenades_percent[HNS_TEAM_HIDER]);
        if( 
info && percent )
        {
            
format(sHiderEquipment511"%s%i HE Grenade%s"sHiderEquipmentinfoinfo == g_sBlank g_sS);
            if( 
percent 100 )
            {
                
format(sHiderEquipment511"%s (%i%% chance per grenade)<br>"sHiderEquipmentpercent);
            }
            else
            {
                
add(sHiderEquipment511"<br>"0);
            }
        }
        
info get_pcvar_num(hns_flashbangs[HNS_TEAM_HIDER]);
        
percent get_pcvar_num(hns_flashbangs_percent[HNS_TEAM_HIDER]);
        if( 
info && percent )
        {
            
format(sHiderEquipment511"%s%i Flashbang%s"sHiderEquipmentinfoinfo == g_sBlank g_sS);
            if( 
percent 100 )
            {
                
format(sHiderEquipment511"%s (%i%% chance per flashbang)<br>"sHiderEquipmentpercent);
            }
            else
            {
                
add(sHiderEquipment511"<br>"0);
            }
        }
        
info get_pcvar_num(hns_smokegren[HNS_TEAM_HIDER]);
        
percent get_pcvar_num(hns_smokegren_percent[HNS_TEAM_HIDER]);
        if( 
info && percent )
        {
            
format(sHiderEquipment511"%s%i Smoke Grenade%s"sHiderEquipmentinfoinfo == g_sBlank g_sS);
            if( 
percent 100 )
            {
                
format(sHiderEquipment511"%s (%i%% chance per smoke grenade)<br>"sHiderEquipmentpercent);
            }
            else
            {
                
add(sHiderEquipment511"<br>"0);
            }
        }
        
info get_pcvar_num(hns_armor[HNS_TEAM_HIDER]);
        
format(sHiderEquipment511"%sArmor: %i"sHiderEquipmentinfo);
        
        new 
sSeekerEquipment[512];
        
copy(sSeekerEquipment511"A Knife");
        
info get_pcvar_num(hns_grenades[HNS_TEAM_SEEKER]);
        
percent get_pcvar_num(hns_grenades_percent[HNS_TEAM_SEEKER]);
        if( 
info && percent )
        {
            
format(sSeekerEquipment511"%s<br>%i HE Grenade%s"sSeekerEquipmentinfoinfo == g_sBlank g_sS);
            if( 
percent 100 )
            {
                
format(sSeekerEquipment511"%s (%i%% chance per grenade)"sSeekerEquipmentpercent);
            }
        }
        
info get_pcvar_num(hns_flashbangs[HNS_TEAM_SEEKER]);
        
percent get_pcvar_num(hns_flashbangs_percent[HNS_TEAM_SEEKER]);
        if( 
info && percent )
        {
            
format(sSeekerEquipment511"%s<br>%i Flashbang%s"sSeekerEquipmentinfoinfo == g_sBlank g_sS);
            if( 
percent 100 )
            {
                
format(sSeekerEquipment511"%s (%i%% chance per flashbang)"sSeekerEquipmentpercent);
            }
        }
        
info get_pcvar_num(hns_smokegren[HNS_TEAM_SEEKER]);
        
percent get_pcvar_num(hns_smokegren_percent[HNS_TEAM_SEEKER]);
        if( 
info && percent )
        {
            
format(sSeekerEquipment511"%s<br>%i Smoke Grenade%s"sSeekerEquipmentinfoinfo == g_sBlank g_sS);
            if( 
percent 100 )
            {
                
format(sSeekerEquipment511"%s (%i%% chance per smoke grenade)"sSeekerEquipmentpercent);
            }
        }
        
info get_pcvar_num(hns_armor[HNS_TEAM_SEEKER]);
        
format(sSeekerEquipment511"%s<br>Armor: %i"sSeekerEquipmentinfo);
        
        
        
format(sText2499sTextPLUGIN_NAMEPLUGIN_VERSIONPLUGIN_AUTHORPLUGIN_NAMEg_sTeamNames[HNS_TEAM_HIDER], g_sTeamNames[HNS_TEAM_SEEKER], sTeamChangesHiderEquipmentsSeekerEquipment);
        
show_motd(plrsText"HideNSeek Help");
    }
    else
    {
        
hns_print(plr"^x03HideNSeek Help^x01 does not exist for this server.");
    }
    
    return 
get_pcvar_num(hns_visiblecommands) ? PLUGIN_CONTINUE PLUGIN_HANDLED;
}

public 
fwdClientCommandPost(plr)
{
    
unregister_forward(FM_ClientCommandg_FwdClientCommand_post1);
    
    
g_bNonSpawnEvent[plr] = false;
    
    return 
FMRES_HANDLED;
}

public 
fwdSpawn(ent)
{
    if( !
pev_valid(ent) || ent == g_HostageEnt )
    {
        return 
FMRES_IGNORED;
    }
    
    new 
sClass[32];
    
pev(entpev_classnamesClass31);
    
    for( new 
0MAX_REMOVED_ENTITIESi++ )
    {
        if( 
equal(sClassg_sRemoveEntities[i]) )
        {
            
engfunc(EngFunc_RemoveEntityent);
            return 
FMRES_SUPERCEDE;
        }
    }
    
    return 
FMRES_IGNORED;
}

public 
fwdTouch(boosterplr)
{
    if( !
g_bHnsOn
    
|| !pev_valid(booster) || !pev_valid(plr)
    || !(
booster <= g_MaxPlayers) || !(plr <= g_MaxPlayers)
    || !
g_bAlive[booster] || !g_bAlive[plr] )
    {
        return 
FMRES_IGNORED;
    }
    
    new 
boosting get_pcvar_num(hns_noboosting);
    
    if( 
boosting == get_pcvar_num(hns_semiclip)
    || 
boosting != && !(boosting == && cs_get_user_team(booster) == cs_get_user_team(plr)) )
    {
        return 
FMRES_IGNORED;
    }
    
    new 
Float:vBoosterOrigin[3], Float:vPlrOrigin[3];
    
pev(boosterpev_originvBoosterOrigin);
    
pev(plrpev_originvPlrOrigin);
    
    if( !(
49.0 < (vPlrOrigin[2] - vBoosterOrigin[2]) < 73.0) )
    {
        return 
FMRES_IGNORED;
    }
    
    switch( 
get_pcvar_num(hns_noboosting_punish) )
    {
        case 
3:
        {
            
handle_booster(booster);
            
handle_booster(plr);
        }
        case 
2:
        {
            
handle_booster(booster);
        }
        case 
1:
        {
            
handle_booster(plr);
        }
    }
    
    return 
FMRES_IGNORED;
}

public 
fwdCmdStart(plrucHandleseed)
{
    if( !
g_bHnsOn || !g_bAlive[plr] )
    {
        return 
FMRES_IGNORED;
    }
    
    static 
clipammo;
    if( 
get_user_weapon(plrclipammo) != CSW_KNIFE )
    {
        return 
FMRES_IGNORED;
    }
    
    new 
CsTeams:team cs_get_user_team(plr);
    
    if( 
team == HNS_TEAM_HIDER )
    {
        new 
button get_uc(ucHandleUC_Buttons);
        
        if( 
button&IN_ATTACK )
        {
            
button &= ~IN_ATTACK;
        }
        if( 
button&IN_ATTACK2 )
        {
            
button &= ~IN_ATTACK2;
        }
        
        
set_uc(ucHandleUC_Buttonsbutton);
        
        return 
FMRES_SUPERCEDE;
    }
    else if( 
team == HNS_TEAM_SEEKER )
    {
        if( 
g_bDisableSlash )
        {
            new 
button get_uc(ucHandleUC_Buttons);
            
            if( 
button&IN_ATTACK )
            {
                
button &= ~IN_ATTACK;
                
button |= IN_ATTACK2;
            }
            
            
set_uc(ucHandleUC_Buttonsbutton);
            
            return 
FMRES_SUPERCEDE;
        }
    }
    
    return 
FMRES_IGNORED;
}

public 
fwdSetModel(entsModel[])
{
    if( !
g_bHnsOn )
    {
        return 
FMRES_IGNORED;
    }
    
    if( !
pev_valid(ent) || !equal(sModel"models/w_"9) || equal(sModel"models/w_weaponbox.mdl"0) )
    {
        return 
FMRES_IGNORED;
    }
    
    new 
owner pev(entpev_owner);
    if( !(
owner <= g_MaxPlayers) )
    {
        return 
FMRES_IGNORED;
    }
    
    new 
sClass[32];
    
pev(entpev_classnamesClass31);
    
    if( 
equal(sClass"weapon_shield"0) )
    {
        
set_pev(entpev_effectsEF_NODRAW);
        
set_task(0.1"taskRemoveShield"ent);
        
        return 
FMRES_IGNORED;
    }
    
    if( !
equal(sClass"weaponbox"0) )
    {
        return 
FMRES_IGNORED;
    }
    
    for( new 
g_MaxPlayers 1<= g_MaxEntitiesi++ )
    {
        if( !
pev_valid(i) )
        {
            continue;
        }
        
        if( 
pev(ipev_owner) == ent )
        {
            
dllfunc(DLLFunc_Thinkent);
            break;
        }
    }
    
    return 
FMRES_IGNORED;
}

public 
fwdClientKill(plr)
{
    if( !
g_bHnsOn )
    {
        return 
FMRES_IGNORED;
    }
    
    if( 
get_pcvar_num(hns_disablekill) )
    {
        new 
Float:fGametime get_gametime();
        if( 
fGametime >= g_fKillMsgDelay[plr] )
        {
            
g_fKillMsgDelay[plr] = fGametime 1.0;
            
            
hns_print(plr"You cannot kill yourself during HideNSeek!");
        }
        
        return 
FMRES_SUPERCEDE;
    }
    
    return 
FMRES_IGNORED;
}

public 
fwdPlayerPreThink(plr)
{
    if( !
g_bHnsOn )
    {
        return 
FMRES_IGNORED;
    }
    
    new 
semiclip get_pcvar_num(hns_semiclip);
    
    if( 
g_bAlive[plr] )
    {
        new 
CsTeams:team cs_get_user_team(plr);
        if( 
g_HideTimer && team == HNS_TEAM_SEEKER )
        {
            
set_pev(plrpev_maxspeed, -1.0);
            
set_pev(plrpev_velocityFloat:{0.00.00.0});
            
//set_pev(plr, pev_flags, pev(plr, pev_flags) | FL_FROZEN);
        
}
        
        new 
footsteps get_pcvar_num(hns_footsteps);
        if( 
footsteps && (footsteps == || footsteps == _:team) )
        {
            
set_pev(plrpev_flTimeStepSound999);
        }
        
        if( 
get_pcvar_num(hns_noslowdown) )
        {
            
set_pev(plrpev_fuser20.0);
        }
        
        
/*if( semiclip )
        {
            // thanks Jon for code
            
            new target, body;
            get_user_aiming(plr, target, body, 9999);
            
            if( 0 < target <= g_MaxPlayers && g_bAlive[target] )
            {
                new CsTeams:targetTeam = cs_get_user_team(target);
                if( semiclip == 2 || targetTeam == team )
                {
                    new sName[32];
                    get_user_name(target, sName, 31);
                    
                    new sMessage[64];
                    if( targetTeam == team )
                    {
                        formatex(sMessage, 63, "Amigo: %s^nVida: %i", sName, get_user_health(target));
                    }
                    else
                    {
                        formatex(sMessage, 63, "Enemigo: %s", sName);
                    }
                    
                    if( targetTeam == CS_TEAM_CT )
                    {
                        set_hudmessage(0, 63, 127, -1.0, -1.0, 0, 0.0, 0.1, 0.0, 0.0, -1);
                    }
                    else if( targetTeam == CS_TEAM_T )
                    {
                        set_hudmessage(127, 0, 0, -1.0, -1.0, 0, 0.0, 0.1, 0.0, 0.0, -1);
                    }
                    
                    ShowSyncHudMsg(g_Hud3, "%s", sMessage);
                }
            }
        }*/
    
}
    
    static 
LastThinki;
    
    if( 
plr LastThink // player think loop started again
    
{
        for( 
1<= g_MaxPlayersi++ )
        {
            if( !
g_bConnected[i] || !g_bAlive[i] )
            {
                
g_bSolid[i] = false;
                continue;
            }
            
            
g_Team[i] = cs_get_user_team(i);
            
g_bSolid[i] = bool:(pev(ipev_solid) == SOLID_SLIDEBOX);
        }
    }
    
    
LastThink plr;
    
    if( !
g_bSolid[plr] || !semiclip )
    {
        return 
FMRES_IGNORED;
    }
    
    for( 
1<= g_MaxPlayersi++ )
    {
        if( !
g_bSolid[i] || g_bRestoreSolid[i] || == plr )
        {
            continue;
        }
        
        if( 
semiclip == || g_Team[plr] == g_Team[i] )
        {
            
set_pev(ipev_solidSOLID_NOT);
            
g_bRestoreSolid[i] = true;
        }
    }
    
    return 
FMRES_IGNORED;
}

public 
ShowHUD(taskid)
{
    static 
idid ID_SHOWHUD
    
    
if (!is_user_alive(id))
    {
        
id pev(idpev_iuser2)
        if (!
is_user_alive(id)) return;
    }
    
    if (
id != ID_SHOWHUD)
    {
        
set_hudmessage(2552552550.350.0116.01.10.00.0
        
ShowSyncHudMsg(ID_SHOWHUDg_Hud2"Esto es un test")
    }
    else
    {
        
set_hudmessage(2552552550.350.0106.01.10.00.0
        
ShowSyncHudMsg(ID_SHOWHUDg_Hud2"Esto es un test")
    }
}

public 
fwdPlayerPostThink(plr)
{
    static 
i;
    
    for( 
1<= g_MaxPlayersi++ )
    {
        if( 
g_bRestoreSolid[i] )
        {
            
set_pev(ipev_solidSOLID_SLIDEBOX);
            
g_bRestoreSolid[i] = false;
        }
    }
    
    return 
FMRES_IGNORED;
}

public 
fwdAddToFullPackPost(eseenthosthostflagsplayerpSet)
{
    if( !
g_bHnsOn )
    {
        return 
FMRES_IGNORED;
    }
    
    if( 
player )
    {
        if( 
g_bSolid[host] && g_bSolid[ent] )
        {
            new 
semiclip get_pcvar_num(hns_semiclip);
            if( 
semiclip == || g_Team[host] == g_Team[ent] )
            {
                
set_es(esES_SolidSOLID_NOT);
                
                static 
Float:fOldAlpha;
                
                new 
Float:fAlpha get_pcvar_float(hns_semiclip_alpha);
                if( 
fAlpha 255.0 )
                {
                    
set_es(esES_RenderModekRenderTransAlpha);
                    
set_es(esES_RenderAmtfAlpha);
                }
                else if( 
fOldAlpha 255.0 )
                {
                    
set_es(esES_RenderModekRenderNormal);
                    
set_es(esES_RenderAmt16.0);
                }
                
                
fOldAlpha fAlpha;
            }
        }
    }
    
    return 
FMRES_IGNORED;
}

public 
fwdGetGameDescription()
{
    if( !
g_bHnsOn )
    {
        return 
FMRES_IGNORED;
    }
    
    new 
sGameType[32];
    
get_pcvar_string(hns_gametypesGameType31);
    
    if( !
strlen(sGameType) || had_older_version(sGameType) )
    {
        
formatex(sGameType31"HideNSeek v%s"PLUGIN_VERSION);
        
        
set_pcvar_string(hns_gametypesGameType);
    }
    
    
forward_return(FMV_STRINGsGameType);
    return 
FMRES_SUPERCEDE;
}

public 
fwdPlayerSpawn(plr)
{
    
g_bAlive[plr] = true;
    
    if( !
g_bHnsOn )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    new 
CsTeams:team cs_get_user_team(plr);
    if( 
team != HNS_TEAM_SEEKER && team != HNS_TEAM_HIDER )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    if( !
g_bFirstSpawn[plr] )
    {    
        
g_bFirstSpawn[plr] = true;
    }
    
    
set_task(0.3"taskStripWeapons"plr TASK_ID_STRIPWEAPONSg_sBlank0g_sBlank0);
    
    new 
param[2];
    
param[0] = _:team;
    
set_task(0.6"taskGiveKnife"plr TASK_ID_GIVEKNIFEparam2g_sBlank0);
    
set_task(0.9"taskCheckModel"plr TASK_ID_CHECKMODELparam2g_sBlank0);
    
    if( 
g_bWeaponsGiven )
    {
        
set_task(0.6"taskGiveWeapons"plr TASK_ID_GIVEWEAPONSparam2g_sBlank0);
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
fwdSetVoice(receiversenderbool:bListen)
{
    if( !
g_bConnected[receiver]
    || !
g_bConnected[sender]
    || 
receiver == sender )
    {
        return 
FMRES_IGNORED;
    }
    
    if( 
cs_get_user_team(receiver) == cs_get_user_team(sender) )
    {
        
engfunc(EngFunc_SetClientListeningreceiversender1);
    }
    else
    {
        
engfunc(EngFunc_SetClientListeningreceiversender0);
    }
    
    return 
FMRES_SUPERCEDE;
}

public 
messageHideWeapon(msgiddestplr)
{
    if( !
g_bHnsOn )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    if( 
get_pcvar_num(hns_money) == )
    {
        
set_msg_arg_int(1ARG_BYTEget_msg_arg_int(1)|HIDE_MONEY);
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
messageScreenFade(msgiddestplr)
{
    if( !
g_bHnsOn )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    new 
noflash get_pcvar_num(hns_noflash);
    if( !
noflash )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    if( 
get_msg_arg_int(4) == 255 && get_msg_arg_int(5) == 255 && get_msg_arg_int(6) == 255 )
    {    
        if( 
noflash == _:cs_get_user_team(plr) )
        {
            return 
PLUGIN_HANDLED;
        }
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
eventRestartAttempt()
{
    new 
players[32], pnum;
    
get_players(playerspnumg_sA);
    
    for( new 
0pnumi++ )
    {
        
g_bNonSpawnEvent[players[i]] = true;
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
eventResetHUD(plr)
{
    if( 
g_bHnsOn && get_pcvar_num(hns_money) == )
    {
        
make_HideWeapon(plrHIDE_MONEY);
    }
    
    if( 
is_user_alive(plr) )
    {
        if( 
g_bNonSpawnEvent[plr] )
        {
            
g_bNonSpawnEvent[plr] = false;
        }
        else
        {
            
fwdPlayerSpawn(plr);
        }
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
eventMoney(plr)
{
    if( !
g_bHnsOn )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    new 
money get_pcvar_num(hns_money);
    
money clamp(money, -116000);
    
    if( 
money >= )
    {
        
cs_set_user_money(plrmoney0);
    }
    if( 
money == && g_OldMoney != )
    {
        
make_HideWeapon(plrHIDE_MONEY);
    }
    
    
g_OldMoney money;
    
    return 
PLUGIN_HANDLED;
}

public 
eventNewRound()
{
    if( !
g_bHnsOn )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    if( 
g_bDisableSlash )
    {
        new 
rounds get_pcvar_num(hns_nubslash);
        if( 
rounds && g_RoundsLost >= rounds )
        {
            
hns_print(0"Seekers ahora pueden usar nubslash por perder %i round%s!",\
                
rounds, (rounds == 1) ? g_sBlank "s seguidas");
            
            
g_bDisableSlash false;
        }
    }
    
    
g_HideTimer get_pcvar_num(hns_hidetime);
    
    return 
PLUGIN_CONTINUE;
}

public 
eventTerrWin()
{
    if( 
g_bDisableSlash )
    {
        
g_RoundsLost++;
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
eventRestartRound()
{
    
g_RoundsLost 0;
    
g_RoundsEnded 0;
    
g_bDisableSlash true;
    
    
g_bWeaponsGiven false;
    
    
g_HideTimer = -1;
}

public 
eventCurWeapon(plr)
{
    if( !
g_bHnsOn )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    if( 
cs_get_user_team(plr) == HNS_TEAM_HIDER && get_pcvar_num(hns_hiders_knife) == )
    {
        new 
sModel[32];
        
        
pev(plrpev_viewmodel2sModel31);
        if( 
equali(sModelg_sKnifeModel_v0) )
        {
            
set_pev(plrpev_viewmodel2g_sBlank);
        }
        
        
pev(plrpev_weaponmodel2sModel31);
        if( 
equali(sModelg_sKnifeModel_w0) )
        {
            
set_pev(plrpev_weaponmodel2g_sBlank);
        }
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
TaskRespawn(plr)
{
    
set_pev(plrpev_deadflagDEAD_RESPAWNABLE);
    
dllfunc(DLLFunc_Thinkplr);
}

public 
logeventRoundStart()
{
    if( !
g_bHnsOn )
    {
        if( 
g_bRemovedBreakables )
        {
            
g_bRemovedBreakables restore_entities(g_sClassBreakable);
        }
        
        return 
PLUGIN_CONTINUE;
    }
    
    if( 
get_pcvar_num(hns_removebreakables) )
    {
        
g_bRemovedBreakables remove_entities(g_sClassBreakable);
    }
    else if( 
g_bRemovedBreakables )
    {
        
g_bRemovedBreakables restore_entities(g_sClassBreakable);
    }
    
    if( 
get_pcvar_num(hns_removedoors) )
    {
        
g_bRemovedDoors remove_entities(g_sClassDoor);
        
g_bRemovedDoorsRotating remove_entities(g_sClassDoorRotating);
    }
    else
    {
        if( 
g_bRemovedDoors )
        {
            
g_bRemovedDoors restore_entities(g_sClassDoor);
        }
        
        if( 
g_bRemovedDoorsRotating )
        {
            
g_bRemovedDoorsRotating restore_entities(g_sClassDoorRotating);
        }
    }
    
    
remove_task(TASK_ID_HIDETIMER0);
    
set_task(0.0"taskHideTimer"TASK_ID_HIDETIMERg_sBlank0g_sBlank0);
    
    return 
PLUGIN_CONTINUE;
}

public 
logeventRoundEnd()
{
    if( !
g_bHnsOn )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    
remove_task(TASK_ID_HIDETIMER0);
    
    new 
sMessage[192];
    new 
CsTeams:winner HNS_TEAM_SEEKER;
    
    new 
hiderseekerhider_alive;
    
get_hider_and_seeker(hiderseekerhider_alive);
    
    if( 
hider_alive )
    {
        
winner HNS_TEAM_HIDER;
    }
    
    if( !
hider || !seeker )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    static const 
sTaskSwapTeams[] = "taskSwapTeams";
    
    ++
g_RoundsEnded;
    
    new 
teamchange get_pcvar_num(hns_teamchange);
    if( 
teamchange && teamchange == g_RoundsEnded )
    {
        
hns_print(0"%i rounds have ended. Switching teams."g_RoundsEnded);
        
        
set_task(0.5sTaskSwapTeamsTASK_ID_SWAPTEAMSg_sBlank0g_sBlank0);
    }
    
    static const 
sNoTeamChange[] = "^nNo hay cambios";
    if( 
winner == HNS_TEAM_SEEKER )
    {
        
copy(sMessage191"Seekers ganan !");
        
        if( !
teamchange )
        {
            
add(sMessage191"^nCambiando equipos .."0);
            
            
set_task(0.5sTaskSwapTeamsTASK_ID_SWAPTEAMSg_sBlank0g_sBlank0);
        }
    }
    else if( 
winner == HNS_TEAM_HIDER )
    {
        
copy(sMessage191"Hiders ganan !");
        
        new 
frags get_pcvar_num(hns_hiders_alivefrags);
        
        if( 
frags )
        {
            static 
Float:fFrags;
            for( new 
plr 1plr <= g_MaxPlayersplr++ )
            {
                if( 
g_bConnected[plr] && g_bAlive[plr] && cs_get_user_team(plr) == HNS_TEAM_HIDER )
                {
                    
pev(plrpev_fragsfFrags);
                    
set_pev(plrpev_fragsfFrags float(frags));
                    
                    
hns_print(plr"Ganaste %i frag%s por sobrevivir la ronda!",\
                        
frags, (frags == 1) ? g_sBlank g_sS);
                }
            }
        }
        
        if( !
teamchange )
        {
            
add(sMessage191sNoTeamChange0);
        }
    }
    
    static 
redgreenblue;
    
get_hud_colors(redgreenblue);
    
set_hudmessage(redgreenblue, -1.0, -1.000.05.00.10.21);
    
show_hudmessage(0"%s"sMessage);
    
    
g_bWeaponsGiven false;
    
    return 
PLUGIN_CONTINUE;
}

public 
taskRemoveShield(ent)
{
    
dllfunc(DLLFunc_Thinkent);
    
    return 
PLUGIN_CONTINUE;
}

public 
taskHideTimer()
{
    new 
seekerhider;
    
    if( 
g_HideTimer <= )
    {
        
seeker 1;
        
hider 1;
    }
    else
    {
        
get_hider_and_seeker(hiderseeker);
    }
    
    static const 
sTaskHideTimer[] = "taskHideTimer";
    if( !
hider || !seeker )
    {
        
g_HideTimer 0;
        
set_task(0.0sTaskHideTimerTASK_ID_HIDETIMERg_sBlank0g_sBlank0);
        
        return 
PLUGIN_CONTINUE;
    }
    
    static 
CsTeams:team;
    
    if( 
g_HideTimer )
    {
        new 
sounds get_pcvar_num(hns_timersounds);
        
        new 
sSound[16];
        
num_to_word(g_HideTimersSound15);
        
        static 
blind_redblind_greenblind_blueblind_alpha;
        
get_blind_colors(blind_redblind_greenblind_blueblind_alpha);
        
        static 
hud_redhud_greenhud_blue;
        
get_hud_colors(hud_redhud_greenhud_blue);
        
        for( new 
plr 1plr <= g_MaxPlayersplr++ )
        {
            if( !
g_bConnected[plr] )
            {
                continue;
            }
            
            
team cs_get_user_team(plr);
            if( 
team == HNS_TEAM_SEEKER || team == HNS_TEAM_HIDER )
            {
                if( 
team == HNS_TEAM_SEEKER && g_bAlive[plr] )
                {
                    
make_ScreenFade(plr1.51.5blind_redblind_greenblind_blueblind_alpha);
                    
                    
/*set_pev(plr, pev_flags, pev(plr, pev_flags) | FL_FROZEN);
                    set_pev(plr, pev_maxspeed, -1.0);*/
                
}
                
                
set_hudmessage(hud_redhud_greenhud_blue, -1.0, -1.000.01.10.10.11);
                
show_hudmessage(plr"Hiders tienen %i segundos para esconderse!"g_HideTimer);
                
                if( 
sounds )
                {
                    
client_cmd(plr"spk fvox/%s.wav"sSound);
                }
            }
        }
        
        
g_HideTimer--;
        
set_task(1.0sTaskHideTimerTASK_ID_HIDETIMERg_sBlank0g_sBlank0);
    }
    else if( 
g_HideTimer == )
    {
        static 
hud_redhud_greenhud_blue;
        
get_hud_colors(hud_redhud_greenhud_blue);
        
        static 
param[2];
        for( new 
plr 1plr <= g_MaxPlayersplr++ )
        {
            if( !
g_bConnected[plr] )
            {
                continue;
            }
            
            
team cs_get_user_team(plr);
            if( 
team == HNS_TEAM_SEEKER || team == HNS_TEAM_HIDER )
            {
                if( 
team == HNS_TEAM_SEEKER && g_bAlive[plr] )
                {
                    
make_ScreenFade(plr0.00.0000255);
                    
                    
cs_reset_user_maxspeed(plr);
                    
//set_pev(plr, pev_flags, pev(plr, pev_flags) & ~FL_FROZEN);
                
}
                
                
set_hudmessage(hud_redhud_greenhud_blue, -1.0, -1.000.03.00.10.11);
                
show_hudmessage(plr"La ronda comenzo!");
                
                
param[0] = _:team;
                
taskGiveWeapons(paramplr TASK_ID_GIVEWEAPONS);
            }
        }
        
        
g_bWeaponsGiven true;
        
        
g_HideTimer--;
        
set_task(1.0sTaskHideTimerTASK_ID_HIDETIMERg_sBlank0g_sBlank0);
    }
    else
    {
        for( new 
plr 1plr <= g_MaxPlayersplr++ )
        {
            if( !
g_bConnected[plr] )
            {
                continue;
            }
            
            if( 
g_bAlive[plr] && cs_get_user_team(plr) == HNS_TEAM_SEEKER )
            {
                
make_ScreenFade(plr0.00.0000255);
                
                
cs_reset_user_maxspeed(plr);
                
//set_pev(plr, pev_flags, pev(plr, pev_flags) & ~FL_FROZEN);
            
}
        }
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
taskStripWeapons(plr)
{
    
plr -= TASK_ID_STRIPWEAPONS;
    
    
fm_strip_user_weapons(plr);
    
    return 
PLUGIN_CONTINUE;
}

public 
taskGiveKnife(param[], plr)
{
    
plr -= TASK_ID_GIVEKNIFE;
    
    new 
CsTeams:team CsTeams:param[0];
    
    if( 
team != HNS_TEAM_HIDER || get_pcvar_num(hns_hiders_knife))
    {
        
fm_give_item(plr"weapon_knife");
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
taskGiveWeapons(param[], plr)
{
    
plr -= TASK_ID_GIVEWEAPONS;
    
    new 
CsTeams:team CsTeams:param[0];
    if( 
team != HNS_TEAM_HIDER && team != HNS_TEAM_SEEKER )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    
chance(plrget_pcvar_num(hns_grenades[team]), get_pcvar_num(hns_grenades_percent[team]),"weapon_hegrenade"CSW_HEGRENADE"HE Grenade");
    
chance(plrget_pcvar_num(hns_flashbangs[team]), get_pcvar_num(hns_flashbangs_percent[team]), "weapon_flashbang"CSW_FLASHBANG"Flashbang");
    
chance(plrget_pcvar_num(hns_smokegren[team]), get_pcvar_num(hns_smokegren_percent[team]), "weapon_smokegrenade"CSW_SMOKEGRENADE"Smoke Grenade");
    
    new 
num get_pcvar_num(hns_armor[team]);
    
num clamp(num0100);
    
    switch( 
num )
    {
        case 
0cs_set_user_armor(plr0CS_ARMOR_NONE);
        case 
1..99cs_set_user_armor(plrnumCS_ARMOR_KEVLAR);
        case 
100cs_set_user_armor(plrnumCS_ARMOR_VESTHELM);
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
taskCheckModel(param[], plr)
{
    
plr -= TASK_ID_CHECKMODEL;
    
    new 
CsTeams:team CsTeams:param[0];
    
    if( 
team == HNS_TEAM_SEEKER || team == HNS_TEAM_HIDER )
    {
        new 
CsTeams:otherteam = (team == HNS_TEAM_HIDER) ? HNS_TEAM_SEEKER HNS_TEAM_HIDER;
        
        new 
sModel[32];
        
cs_get_user_model(plrsModel31);
        
        for( new 
04i++ )
        {
            if( 
equal(sModelg_sAllModels[otherteam][i], 0) )
            {
                
cs_set_user_model(plrg_sDefaultModels[team]);
                break;
            }
        }
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
taskSwapTeams(taskid)
{
    static 
CsTeams:team;
    
    for( new 
plr 1plr <= g_MaxPlayersplr++ )
    {
        if( !
g_bConnected[plr] )
        {
            continue;
        }
        
        
team cs_get_user_team(plr);
        if( 
team == HNS_TEAM_HIDER )
        {
            
cs_set_user_team(plrHNS_TEAM_SEEKERHNS_MODEL_SEEKER);
            
            
emake_TeamInfo(plrg_sTeamInfo[HNS_TEAM_SEEKER]); /* let other plugins know that the player changed teams */
        
}
        else if( 
team == HNS_TEAM_SEEKER )
        {
            
cs_set_user_team(plrHNS_TEAM_HIDERHNS_MODEL_HIDER);
            
            
emake_TeamInfo(plrg_sTeamInfo[HNS_TEAM_HIDER]); /* let other plugins know that the player changed teams */
        
}
    }
    
    
g_RoundsLost 0;
    
g_RoundsEnded 0;
    
g_bDisableSlash true;
    
    return 
1;
}

public 
taskSetLights()
{
    if( !
g_bHnsOn )
    {
        if( !
equali(g_sLightsg_sLightsNormal) )
        {
            
set_lights(g_sLightsNormal);
        }
    }
    else
    {
        new 
sLights[16];
        
get_pcvar_string(hns_lightssLights15);
        
        if( !
equali(g_sLightssLights) )
        {
            if( !
strlen(sLights) )
            {
                
set_lights(g_sLightsNormal);
                
set_pcvar_string(hns_lightsg_sLightsNormal);
            }
            else
            {
                
set_lights(sLights);
            }
        }
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
taskExecuteConfig()
{
    new 
sConfig[64];
    
get_configsdir(sConfig63);
    
add(sConfig63"/hidenseek.cfg"0);
    
    if( 
file_exists(sConfig) )
    {
        
server_cmd("exec %s"sConfig);
        
server_exec();
        
        
set_task(1.0"TaskCheckOldVersion");
    }
    else
    {
        
make_config(sConfigtrue);
        
        
register_forward(FM_GetGameDescription"fwdGetGameDescription"0);
    }
}

public 
TaskCheckOldVersion()
{
    new 
sValue[32];
    
get_pcvar_string(hns_gametypesValue31);
    
    if( 
had_older_version(sValue) || is_config_old() )
    {
        
formatex(sValue31"HideNSeek v%s"PLUGIN_VERSION);
        
set_pcvar_string(hns_gametypesValue);
        
        
set_task(1.0"TaskResetConfig");
    }
    else
    {
        
register_forward(FM_GetGameDescription"fwdGetGameDescription"0);
    }
}

public 
TaskResetConfig()
{
    new 
sConfig[64];
    
get_configsdir(sConfig63);
    
add(sConfig63"/hidenseek.cfg"0);
    
    
make_config(sConfigfalse);
    
    
register_forward(FM_GetGameDescription"fwdGetGameDescription"0);
}

bool:had_older_version(const sGameType[])
{
    new 
bool:bOld false;
    
    new 
sTemp[32];
    
formatex(sTemp31"HideNSeek v%s"PLUGIN_VERSION);
    
    if( !
equali(sTempsGameType) )
    {
        new 
Float:version str_to_float(PLUGIN_VERSION);
        for( new 
Float:2.0version+= 0.1 )
        {
            
formatex(sTemp31"HideNSeek v%.1f"i);
            
            if( 
equali(sTempsGameType) )
            {
                
bOld true;
                break;
            }
        }
    }
    
    return 
bOld;
}

bool:is_config_old()
{
    new 
sConfig[64];
    
get_configsdir(sConfig63);
    
add(sConfig63"/hidenseek.cfg"0);
    
    new 
fopen(sConfig"rt");
    new 
data[128];
    
    while( !
feof(f) )
    {
        
fgets(fdatasizeof(data) - 1);
        
        if( 
containi(data"hns_warmup") != -)
        {
            
fclose(f);
            
            return 
false;
        }
    }
    
    
fclose(f);
    
    return 
true;
}

make_config(const sConfig[], bool:bCheckVersion)
{
    new 
fopen(sConfig"wt");
    
    new 
sValue[32]; // any string needed from a cvar
    
    
fprintf(f"hns_footsteps %i^n"get_pcvar_num(hns_footsteps));
    
fprintf(f"hns_money %i^n"get_pcvar_num(hns_money));
    
fprintf(f"hns_nubslash %i^n"get_pcvar_num(hns_nubslash));
    
fprintf(f"hns_disablebuy %i^n"get_pcvar_num(hns_disablebuy));
    
fprintf(f"hns_hidetime %i^n"get_pcvar_num(hns_hidetime));
    
fprintf(f"hns_timersounds %i^n"get_pcvar_num(hns_timersounds));
    
fprintf(f"hns_noslowdown %i^n"get_pcvar_num(hns_noslowdown));
    
fprintf(f"hns_teamchange %i^n"get_pcvar_num(hns_teamchange));
    
fprintf(f"hns_disablekill %i^n"get_pcvar_num(hns_disablekill));
    
fprintf(f"hns_chooseteam %i^n"get_pcvar_num(hns_chooseteam));
    
fprintf(f"hns_semiclip %i^n"get_pcvar_num(hns_semiclip));
    
fprintf(f"hns_semiclip_alpha %i^n"get_pcvar_num(hns_semiclip_alpha));
    
fprintf(f"hns_noflash %i^n"get_pcvar_num(hns_noflash));
    
fprintf(f"hns_removebreakables %i^n"get_pcvar_num(hns_removebreakables));
    
fprintf(f"hns_removedoors %i^n"get_pcvar_num(hns_removedoors));
    
fprintf(f"hns_visiblecommands %i^n"get_pcvar_num(hns_visiblecommands));
    
fprintf(f"hns_noboosting %i^n"get_pcvar_num(hns_noboosting));
    
fprintf(f"hns_noboosting_punish %i^n"get_pcvar_num(hns_noboosting_punish));
    
fprintf(f"hns_noboosting_damage %i^n"get_pcvar_num(hns_noboosting_damage));
    
fprintf(f"hns_noboosting_interval %.4f^n"get_pcvar_float(hns_noboosting_interval));
    
get_pcvar_string(hns_blindcolorssValue31);
    
fprintf(f"hns_blindcolors ^"%s^"^n"sValue);
    
get_pcvar_string(hns_hudcolorssValue31);
    
fprintf(f"hns_hudcolors ^"%s^"^n"sValue);
    
get_pcvar_string(hns_lightssValue31);
    
fprintf(f"hns_lights ^"%s^"^n"sValue);
    
    
get_pcvar_string(hns_gametypesValue31);
    if( 
bCheckVersion )
    {
        if( 
had_older_version(sValue) )
        {
            
formatex(sValue31"HideNSeek v%s"PLUGIN_VERSION);
        }
    }
    
fprintf(f"hns_gametype ^"%s^"^n"sValue);
    
    
get_pcvar_string(hns_prefixsValue31);
    
fprintf(f"hns_prefix ^"%s^"^n"sValue);
    
fprintf(f"hns_warmup_godmode %i^n"get_pcvar_num(hns_warmup_godmode));
    
fprintf(f"hns_warmup_respawn %i^n^n"get_pcvar_num(hns_warmup_respawn));
    
    new 
sTeams[CsTeams][16];
    
copy(sTeams[HNS_TEAM_HIDER], 15"hiders");
    
copy(sTeams[HNS_TEAM_SEEKER], 15"seekers");
    
fprintf(f"hns_hiders_knife %i^n"get_pcvar_num(hns_hiders_knife));
    
fprintf(f"hns_hiders_alivefrags %i^n"get_pcvar_num(hns_hiders_alivefrags));
    for( new 
CsTeams:team HNS_TEAM_HIDERteam CS_TEAM_SPECTATORteam++ )
    {
        
fprintf(f"hns_%s_grenades %i^n"sTeams[team], get_pcvar_num(hns_grenades[team]));
        
fprintf(f"hns_%s_grenades_percent %i^n"sTeams[team], get_pcvar_num(hns_grenades_percent[team]));
        
fprintf(f"hns_%s_flashbangs %i^n"sTeams[team], get_pcvar_num(hns_flashbangs[team]));
        
fprintf(f"hns_%s_flashbangs_percent %i^n"sTeams[team], get_pcvar_num(hns_flashbangs_percent[team]));
        
fprintf(f"hns_%s_smokegren %i^n"sTeams[team], get_pcvar_num(hns_smokegren[team]));
        
fprintf(f"hns_%s_smokegren_percent %i^n"sTeams[team], get_pcvar_num(hns_smokegren_percent[team]));
        
fprintf(f"hns_%s_armor %i^n^n"sTeams[team], get_pcvar_num(hns_armor[team]));
    }
    
    
fclose(f);
}

register_say_command(const sCommand[], const sHandle[], const flags=-1, const sDescription[]="", const FlagManager=-1)
{
    new 
sTemp[64];
    
    
formatex(sTemp63"say /%s"sCommand);
    
register_clcmd(sTempsHandleflagssDescriptionFlagManager);
    
    
formatex(sTemp63"say .%s"sCommand);
    
register_clcmd(sTempsHandleflagssDescriptionFlagManager);
    
    
formatex(sTemp63"say_team /%s"sCommand);
    
register_clcmd(sTempsHandleflagssDescriptionFlagManager);
    
    
formatex(sTemp63"say_team .%s"sCommand);
    
register_clcmd(sTempsHandleflagssDescriptionFlagManager);
}

handle_booster(plr)
{
    new 
sPrefix[16];
    new 
Float:fGametime get_gametime();
    new 
Float:fInterval get_pcvar_float(hns_noboosting_interval);
    
get_pcvar_string(hns_prefixsPrefix15);
    
    if( 
fGametime >= g_fBoostPunishDelay[plr] )
    {
        
punish_booster(plr);
        
g_fBoostPunishDelay[plr] = fGametime fInterval;
    }
    
    if( 
fGametime >= g_fBoostMessageDelay[plr] )
    {
        
set_hudmessage(2555050, -1.00.613.03.00.10.1, -1);
        
ShowSyncHudMsg(plrg_Hud"%s No Boosting Allowed!"sPrefix);
        
        
g_fBoostMessageDelay[plr] = fGametime 2.8;
    }
}

punish_booster(plr)
{
    new 
damage get_pcvar_num(hns_noboosting_damage);
    
    if( 
damage >= get_user_health(plr) )
    {
        
fm_fakedamage(plr"anti-boost system"float(damage), DMG_CRUSH);
    }
    else
    {
        
user_slap(plrdamage1);
        
user_slap(plr01);
    }
}

get_hider_and_seeker(&hider 0, &seeker 0, &hider_alive 0)
{
    static 
CsTeams:team;
    for( new 
plr 1plr <= g_MaxPlayersplr++ )
    {
        if( !
g_bConnected[plr] )
        {
            continue;
        }
        
        
team cs_get_user_team(plr);
        if( 
team == HNS_TEAM_SEEKER && !seeker )
        {
            
seeker plr;
            
            if( 
hider && hider_alive )
            {
                break;
            }
        }
        else if( 
team == HNS_TEAM_HIDER )
        {
            if( !
hider )
            {
                
hider plr;
            }
            if( !
hider_alive && g_bAlive[plr] )
            {
                
hider_alive plr;
                
                if( 
seeker && hider )
                {
                    break;
                }
            }
        }
    }
}

bool:remove_entities(const class[])
{
    new 
bool:remove false;
    
    new 
ent g_MaxPlayersproperties[32], Float:amt;
    while( (
ent engfunc(EngFunc_FindEntityByStringent"classname", class)) )
    {
        
pev(entpev_renderamtamt);
        
formatex(properties31"^"%i^" ^"%f^" ^"%i^""pev(entpev_rendermode), amtpev(entpev_solid));
        
        
set_pev(entpev_messageproperties);
        
set_pev(entpev_rendermodekRenderTransAlpha);
        
set_pev(entpev_renderamt0.0);
        
set_pev(entpev_solidSOLID_NOT);
        
        
remove true;
    }
    
    return 
remove;
}

bool:restore_entities(const class[])
{
    new 
bool:remove true;
    
    new 
ent g_MaxPlayersproperties[32], rendermode[4], amt[16], solid[4];
    while( (
ent engfunc(EngFunc_FindEntityByStringent"classname", class)) )
    {
        
pev(entpev_messageproperties31);
        
parse(propertiesrendermode3amt15solid3);
        
        
set_pev(entpev_rendermodestr_to_num(rendermode));
        
set_pev(entpev_renderamtstr_to_float(amt));
        
set_pev(entpev_solidstr_to_num(solid));
        
set_pev(entpev_messageg_sBlank);
        
        
remove false;
    }
    
    return 
remove;
}

cs_reset_user_maxspeed(plr)
{
    static 
Float:fMaxSpeed;
    
    static 
clipammo;
    switch( 
get_user_weapon(plrclipammo) )
    {
        case 
CSW_SG550CSW_AWPCSW_G3SG1:
        {
            
fMaxSpeed 210.0;
        }
        case 
CSW_M249:
        {
            
fMaxSpeed 220.0;
        }
        case 
CSW_AK47:
        {
            
fMaxSpeed 221.0;
        }
        case 
CSW_M3CSW_M4A1:
        {
            
fMaxSpeed 230.0;
        }
        case 
CSW_SG552:
        {
            
fMaxSpeed 235.0;
        }
        case 
CSW_XM1014CSW_AUGCSW_GALILCSW_FAMAS:
        {
            
fMaxSpeed 240.0;
        }
        case 
CSW_P90:
        {
            
fMaxSpeed 245.0;
        }
        case 
CSW_SCOUT:
        {
            
fMaxSpeed 260.0;
        }
        default:
        {
            
fMaxSpeed 250.0;
        }
    }
    
    
engfunc(EngFunc_SetClientMaxspeedplrfMaxSpeed);
    
set_pev(plrpev_maxspeedfMaxSpeed);
    
    return 
1;
}

chance(plrmaxcountpercentsClass[], CSW_type=0sName[]="")
{
    if( !
maxcount || !percent )
    {
        return 
0;
    }
    
    new 
count;
    for( new 
0maxcounti++ )
    {
        if( 
random_num(1100) <= percent )
        {
            if( 
count == )
            {
                
fm_give_item(plrsClass);
            }
            
            
count++;
        }
    }
    
    if( 
count && CSW_type )
    {
        if( 
percent 100 )
        {
            
hns_print(plr"You received %i %s%s! (%i%% chance)"countsName, (count == 1) ? g_sBlank g_sSpercent);
        }
        
        
cs_set_user_bpammo(plrCSW_typecount);
    }
    
    return 
1;
}

get_blind_colors(&red, &green, &blue, &alpha)
{
    new 
sColors[20];
    
get_pcvar_string(hns_blindcolorssColors19);
    
    static 
sRed[5], sGreen[5], sBlue[5], sAlpha[5];
    if( 
parse(sColorssRed4sGreen4sBlue4sAlpha4) < )
    {
        
red 0;
        
green 0;
        
blue 0;
        
alpha 255;
        
        
formatex(sColors19"%i %i %i %i"redgreenbluealpha);
        
set_pcvar_string(hns_blindcolorssColors);
        
        return 
0;
    }
    
    
red =    equali(sRed"rand"0) ?    random(256) : clamp(str_to_num(sRed), 0255);
    
green =    equali(sGreen"rand"0) ?    random(256) : clamp(str_to_num(sGreen), 0255);
    
blue =    equali(sBlue"rand"0) ?    random(256) : clamp(str_to_num(sBlue), 0255);
    
alpha =    equali(sAlpha"rand"0) ?    random(256) : clamp(str_to_num(sAlpha), 0255);
    
    return 
1;
}

get_hud_colors(&red, &green, &blue)
{
    new 
sColors[20];
    
get_pcvar_string(hns_hudcolorssColors19);
    
    static 
sRed[5], sGreen[5], sBlue[5];
    if( 
parse(sColorssRed4sGreen4sBlue4) < )
    {
        
red 255;
        
green 255;
        
blue 255;
        
        
formatex(sColors19"%i %i %i"redgreenblue);
        
set_pcvar_string(hns_blindcolorssColors);
        
        return 
0;
    }
    
    
red =    equali(sRed"rand"0) ?    random(256) : clamp(str_to_num(sRed), 0255);
    
green =    equali(sGreen"rand"0) ?    random(256) : clamp(str_to_num(sGreen), 0255);
    
blue =    equali(sBlue"rand"0) ?    random(256) : clamp(str_to_num(sBlue), 0255);
    
    return 
1;
}

set_lights(const sLights[])
{
    
engfunc(EngFunc_LightStyle0sLights);
    
copy(g_sLights16sLights);
    
    return 
1;
}

make_HideWeapon(plrflags)
{
    static 
iplr plr get_player();
    if( !
)
    {
        return 
0;
    }
    
    
message_begin(plr MSG_ONE MSG_ALLg_msgHideWeapon, {000}, plr);
    
write_byte(flags);
    
message_end();
    
    return 
1;
}

make_ScreenFade(plrFloat:fDurationFloat:fHoldtimeredgreenbluealpha)
{
    static 
iplr plr get_player();
    if( !
)
    {
        return 
0;
    }
    
    
message_begin(plr MSG_ONE MSG_ALLg_msgScreenFade, {000}, plr);
    
write_short(floatround(4096.0 fDurationfloatround_round));
    
write_short(floatround(4096.0 fHoldtimefloatround_round));
    
write_short(4096);
    
write_byte(red);
    
write_byte(green);
    
write_byte(blue);
    
write_byte(alpha);
    
message_end();
    
    return 
1;
}

emake_TeamInfo(plrsTeam[])
{
    if( !
plr )
    {
        return 
0;
    }
    
    
emessage_begin(MSG_ALLg_msgTeamInfo, {000}, 0);
    
ewrite_byte(plr);
    
ewrite_string(sTeam);
    
emessage_end();
    
    return 
1;
}

make_TeamInfo(plrsTeam[])
{
    if( !
plr )
    {
        return 
0;
    }
    
    
message_begin(MSG_ALLg_msgTeamInfo, {000}, 0);
    
write_byte(plr);
    
write_string(sTeam);
    
message_end();
    
    return 
1;
}

make_Money(plrmoneyflash)
{
    if( !
plr )
    {
        return 
0;
    }
    
    
message_begin(MSG_ONEg_msgMoney, {000}, plr);
    
write_long(money);
    
write_byte(flash 0);
    
message_end();
    
    return 
1;
}

make_ArmorType(plrhelmet)
{
    if( !
plr )
    {
        return 
0;
    }
    
    
message_begin(MSG_ONEg_msgArmorType, {000}, plr);
    
write_byte(helmet);
    
message_end();
    
    return 
1;
}

make_SayText(receiversendersMessage[])
{
    if( !
sender )
    {
        return 
0;
    }
    
    
message_begin(receiver MSG_ONE MSG_ALLg_msgSayText, {000}, receiver);
    
write_byte(sender);
    
write_string(sMessage);
    
message_end();
    
    return 
1;
}

hns_print(plr, const sFormat[], any:...)
{
    static 
iplr plr get_player();
    if( !
)
    {
        return 
0;
    }
    
    new 
sPrefix[16];
    
get_pcvar_string(hns_prefixsPrefix15);
    
    new 
sMessage[256];
    new 
len formatex(sMessage255"^x04%s^x01 "sPrefix);
    
vformat(sMessage[len], 255-lensFormat3);
    
sMessage[192] = '^0';
    
    
make_SayText(plrisMessage);
    
    return 
1;
}

get_player()
{
    for( new 
plr 1plr <= g_MaxPlayersplr++ )
    {
        if( 
g_bConnected[plr] )
        {
            return 
plr;
        }
    }
    
    return 
0;
}

/* cstrike -> fakemeta stocks */
CsTeams:cs_get_user_team(plr, &{CsInternalModel,_}:model=CS_DONTCHANGE)
{
    
model CsInternalModel:get_pdata_int(plrOFFSET_INTERNALMODEL);
    
    return 
CsTeams:get_pdata_int(plrOFFSET_TEAM);
}

cs_set_user_team(plr, {CsTeams,_}:team, {CsInternalModel,_}:model=CS_DONTCHANGE)
{
    
set_pdata_int(plrOFFSET_TEAM_:team);
    if( 
model )
    {
        
set_pdata_int(plrOFFSET_INTERNALMODEL_:model);
    }
    
    
dllfunc(DLLFunc_ClientUserInfoChangedplr);
    
    
make_TeamInfo(plrg_sTeamInfo[team]);
    
    return 
1;
}

cs_set_user_money(plrmoneyflash=1)
{
    
set_pdata_int(plrOFFSET_MONEYmoney);
    
    
make_Money(plrmoneyflash);
    
    return 
1;
}

cs_set_user_armor(plramountCsArmorType:type)
{
    
set_pdata_int(plrOFFSET_ARMORTYPE_:type);
    
set_pev(plrpev_armorvaluefloat(amount));
    
    if( 
type != CS_ARMOR_NONE )
    {
        
make_ArmorType(plr, (type == CS_ARMOR_VESTHELM) ? 0);
    }
    
    return 
1;
}

__get_ammo_offset(weapon)
{
    static 
offset;
    
    switch( 
weapon )
    {
        case 
CSW_AWP:
        {
            
offset OFFSET_AWP_AMMO;
        }
        case 
CSW_SCOUTCSW_AK47CSW_G3SG1:
        {
            
offset OFFSET_SCOUT_AMMO;
        }
        case 
CSW_FAMASCSW_M4A1CSW_AUGCSW_SG550CSW_GALILCSW_SG552:
        {
            
offset OFFSET_FAMAS_AMMO;
        }
        case 
CSW_M3CSW_XM1014:
        {
            
offset OFFSET_M3_AMMO;
        }
        case 
CSW_USPCSW_UMP45CSW_MAC10:
        {
            
offset OFFSET_USP_AMMO;
        }
        case 
CSW_FIVESEVENCSW_P90:
        {
            
offset OFFSET_FIVESEVEN_AMMO;
        }
        case 
CSW_DEAGLE:
        {
            
offset OFFSET_DEAGLE_AMMO;
        }
        case 
CSW_P228:
        {
            
offset OFFSET_P228_AMMO;
        }
        case 
CSW_GLOCK18CSW_MP5NAVYCSW_TMPCSW_ELITE:
        {
            
offset OFFSET_GLOCK_AMMO;
        }
        case 
CSW_FLASHBANG:
        {
            
offset OFFSET_FLASHBANG_AMMO;
        }
        case 
CSW_HEGRENADE:
        {
            
offset OFFSET_HEGRENADE_AMMO;
        }
        case 
CSW_SMOKEGRENADE:
        {
            
offset OFFSET_SMOKEGRENADE_AMMO;
        }
        case 
CSW_C4:
        {
            
offset OFFSET_C4_AMMO;
        }
        default:
        {
            return 
0;
        }
    }
    
    return 
offset;


Oh god whyOh god whyOh god whyOh god whyOh god whyOh god why CerealspitCerealspitCerealspitCerealspitCerealspitCerealspitCerealspit
Enserio ? pasate por las reglas por favor....
[PLUGIN] Dominacion CSGO [v1.3a] + Guardo TOP 10
[APORTES] Evento de Logros [v1.2] + Guardado TOP 10
Código:
La tristeza es una parte ensencal de la vida, solo aquel que la conoce, es capaz de disfrutar de la verdadera felicidad.
Responder
#4
Es un aporte de mierda pero no infringe las reglas
Responder
#5
Por usar la tecla "SURP" te pensás que podes poner tu nombre al lado del de Exolent??????????????????????????????????????????????
[Imagen: paypalqr.png]
Responder
#6
OHHHHHHHHHHH, Este aporte me servira, borrare mi hns y pondre este de 2000 líneas WhateverWhateverWhateverWhateverTrolleyesRainbowRoflmao
Responder
#7
Cita:23-06-2016 06:52 am
Porque no se fijan en la fecha de publicación Ragestart
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

Estudia siempre; el tiempo es oro, lo material se puede recuperar pero el tiempo no se puede recuperar.
(02/10/2016, 05:05 PM)meTaLiCroSS escribió: Siempre me gusta ayudar cuando alguien esta interesado realmente en ver que esta programando.
(08/08/2019, 05:32 PM)meTaLiCroSS escribió: grax x el dato cr4ck


Mis aportes

PLUGINS
MAPAS
Menú LANG [SF] Sistema de Frags
Say System (Admin Prefix)
Responder
#8
(05/09/2016, 11:28 PM)totopizza escribió:
Cita:23-06-2016 06:52 am
Porque no se fijan en la fecha de publicación Ragestart
Y para que quiero saber la fecha?
[Imagen: paypalqr.png]
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)