AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   [help] slender mod (https://forums.alliedmods.net/showthread.php?t=236837)

Maverickmz 03-12-2014 00:45

[help] slender mod
 
1 Attachment(s)
Hello , my slender no cause damage when near you , eh put all plugins correctly, does everything but when life takes no near you.
Leaving. Sma, there any error? Help! Sorry for my bad english, i am spanish

NikKOo31 03-12-2014 05:13

Re: [help] slender mod
 
The code is good, posibly your slender didn't spawn.
You may replace set_user_health with a fakadamage, else no one will get frags.
Try debugging the plugin.. put some client_print in the prethink foward to see if that part of the code is being executed.. If it doesn't your problem is in the first if (in the prethink forward) ^^

Maverickmz 03-12-2014 08:55

Re: [help] slender mod
 
Quote:

Originally Posted by NikKOo31 (Post 2110740)
The code is good, posibly your slender didn't spawn.
You may replace set_user_health with a fakadamage, else no one will get frags.
Try debugging the plugin.. put some client_print in the prethink foward to see if that part of the code is being executed.. If it doesn't your problem is in the first if (in the prethink forward) ^^

You can help me? I have no idea about this ... please! : '(

NikKOo31 03-12-2014 13:53

Re: [help] slender mod
 
Look at the huds I added for debug. Try the plugin and you will know if that part of code is being executed or not

Code:

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

#define PLUGIN "Slender Mod"
#define VERSION "1.1.0 RC4"
#define AUTHOR "UnitedDevs"

#define SLENDER_RADIUS 250.0
#define SLENDER_DELAY 0.32
#define SLENDER_L_DELAY 15.0
#define SLENDER_EDITOR_ACCESS ADMIN_BAN


#define SetAlive(%1) ( gBitAlive |= (1<<%1) )
#define SetDead(%1) ( gBitAlive &= ~(1<<%1) )
#define IsAlive(%1) ( gBitAlive & (1<<%1) )

#define m_iVGUI        510
#define m_fGameHUDInitialized  349


/* CVars */

new cvar_light,cvar_damage,cvar_speed,cvar_pages,cvar_delay,cvar_sky

/* Constants */

new const g_szGamePrefix[]            =    "!team[AMXX]"

stock const FIRST_JOIN_MSG[]          =  "#Team_Select"
stock const FIRST_JOIN_MSG_SPEC[]    =  "#Team_Select_Spect"
stock const INGAME_JOIN_MSG[]      =  "#IG_Team_Select"
stock const INGAME_JOIN_MSG_SPEC[]    =  "#IG_Team_Select_Spect"
stock const VGUI_JOIN_TEAM_NUM      =  2
const iMaxLen                  =    sizeof(INGAME_JOIN_MSG_SPEC);

new CTCount,TCount,g_MsgShowMenu

/* Sounds */
new const g_szTeleportSound[]      = "slenderman/bassdrum.wav"
new const g_szSlenderLaugh[]      = "slenderman/slenderlaugh.wav"

/* Model */
new const g_szSlenderModel[]      = "models/player/slenderman/slenderman.mdl"

/* Sprite */
new const g_szPageSprite[]        = "sprites/slenderpage.spr"
new const g_szEditorSprite[]          = "sprites/editorsprite.spr"

/* Floats */

new Float:g_flLastTeleportTime[33]
new Float:g_flSlayDelay[33]
new Float:g_flLaughDelay[33]

/* Integer */

new g_iPages,g_iLastTerr,gBitAlive,g_iSlenderId

/* Booleans */

new g_bAllPagesShow

/* Precache */

public plugin_precache()
{
        precache_sound(g_szTeleportSound)
        precache_sound(g_szSlenderLaugh)
        precache_model(g_szSlenderModel)
        precache_model(g_szPageSprite)
        precache_model(g_szEditorSprite)
}

public plugin_init()
{
        register_plugin(PLUGIN, VERSION, AUTHOR)
        register_cvar("slender_version", VERSION, FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_SPONLY);
        register_dictionary("slender.txt")
       
        /* Register Stuff */
       
        RegisterHam(Ham_Spawn,                            "player", "fw_Spawn", 1)
        RegisterHam(Ham_Player_PreThink,            "player", "fw_PlayerPreThink")
       
        register_forward( FM_Spawn,                  "fw_SpawnPost",1)
        register_forward( FM_Touch,                  "fw_Touch")
        register_forward( FM_GetGameDescription,    "GameDesc")
       
        /* Events */
       
        register_event("DeathMsg",                  "ev_Death", "a")
        register_event("HLTV",                      "ev_HLTV", "a", "1=0", "2=0")
       
        /* Touch */
       
        register_touch("slenderpage",                      "player","player_touch_slenderpage")
       
        /* Messages */
       
        register_message(get_user_msgid("ShowMenu"), "message_ShowMenu")
        register_message(get_user_msgid("VGUIMenu"), "message_VGUIMenu")
       
       
        /* Commands */
       
        register_clcmd("reloadlights",              "ApplyEnvironment")
       
        register_clcmd("chooseteam",                "show_team_menu")
        register_clcmd("jointeam",                  "jointeam")
        register_clcmd("joinclass",                  "jointeam")
        register_clcmd("say /editor",                                "origin_2_file_menu")
       
        register_impulse(100,                        "OnFlashLight")
       
        /* Cvars */
       
        cvar_light      = register_cvar              ("slender_light","b")
        cvar_delay      = register_cvar              ("slender_teleport_delay","6")
        cvar_speed      = register_cvar              ("slender_speed","100")
        cvar_damage    = register_cvar              ("slender_damage","30")
        cvar_pages      = register_cvar              ("slender_pages","8")
        cvar_sky        = register_cvar              ("slender_sky","black")
       
        /* Misc */
        g_MsgShowMenu        =                                                                get_user_msgid("ShowMenu");
        g_bAllPagesShow =                                                                false
       
        ApplyEnvironment()
       
}

public client_disconnect(id)
{
        if(id == g_iSlenderId)
        {
                server_cmd("sv_restartround 1")
                g_iSlenderId = 0
        }
}

/* Cvar's goes here */

public plugin_cfg()
{
        set_cvar_num("mp_flashlight", 1)
        set_cvar_num("mp_limitteams ", 0)
        set_cvar_num("mp_autobalance", 0)
}

/* Fowards */

public fw_PlayerPreThink(id)
{
        if(!IsAlive(id)
        || !is_user_alive(id)
        || cs_get_user_team(id) != CS_TEAM_CT
        || !is_user_alive(g_iSlenderId))
        return;
       
        //************************************DEBUG*************************************************
        set_hudmessage(255, 255, 255, -0.5, 0.1, 0, 6.0, 12.0, 0.1)
        show_hudmessage(0, "Slender esta vivo")
        //******************************************************************************************
       
        new Float:origin[3];
        entity_get_vector(id, EV_VEC_origin, origin);
       
        if(ExecuteHam(Ham_FVisible, g_iSlenderId, id)
        && entity_range(g_iSlenderId, id) <= SLENDER_RADIUS
        && is_in_viewcone(g_iSlenderId,origin)
        && get_gametime() > g_flSlayDelay[id] )
        {
                //************************************DEBUG*****************************************
                new name[32]
                get_user_name(id, name, 31)
                set_hudmessage(255, 255, 255, -0.5, 0.3, 0, 6.0, 12.0, 0.1)
                show_hudmessage(0, "Slender esta haciendo danio a %s", name)
                //**********************************************************************************
       
                set_user_health(id, get_user_health(id) - get_pcvar_num(cvar_damage))
                shake_user_screen(id)
                g_flSlayDelay[id] = get_gametime() + SLENDER_DELAY
                if(get_gametime() > g_flLaughDelay[id])
                {
                        emit_sound( id, CHAN_ITEM, g_szSlenderLaugh, VOL_NORM, ATTN_NORM, 0, PITCH_NORM );
                        g_flLaughDelay[id] = get_gametime() + SLENDER_L_DELAY
                }
        }
        else
        {
                //************************************DEBUG*****************************************
                new name[32]
                get_user_name(id, name, 31)
                set_hudmessage(255, 255, 255, -0.5, 0.3, 0, 6.0, 12.0, 0.1)
                show_hudmessage(0, "Slender NO esta haciendo danio a %s", name)
                //**********************************************************************************       
        }
}

public fw_SpawnPost( iEntity )
{
        new szClassname[ 32 ];
        pev(iEntity,pev_classname,szClassname,charsmax( szClassname ) );
       
        static const g_szObjectives[ ][ ] =
        {
                "func_bomb_target",
                "info_bomb_target",
                "hostage_entity",
                "monster_scientist",
                "func_hostage_rescue",
                "info_hostage_rescue",
                "info_vip_start",
                "func_vip_safetyzone",
                "func_escapezone"
        } 
       
        for(new i=0;i<sizeof g_szObjectives;i++)
        {
                if(equali(szClassname,g_szObjectives[i]))
                {
                        remove_entity( iEntity );
                        break;
                }
        }
}

public fw_Touch( ent , id )
{
        new g_MaxPlayers = get_maxplayers()
       
        static const models[][] =
        {
                "models/w_backpack.mdl",
                "models/w_flashbang.mdl",
                "models/w_hegrenade.mdl",
                "models/w_smokegrenade.mdl"
        }
       
        if (!(1 <= id <= g_MaxPlayers) || !pev_valid(ent) || !(pev(ent , pev_flags) & FL_ONGROUND))
                return FMRES_IGNORED;
       
        static szEntModel[32];
        pev(ent , pev_model , szEntModel , 31);
       
        return equal(szEntModel , models[random(sizeof(models))]) ? FMRES_IGNORED : FMRES_SUPERCEDE;
}
public fw_Spawn(id)
{
        if(is_user_alive(id))
        {
                SetAlive(id)
                switch(cs_get_user_team(id))
                {
                        case CS_TEAM_T    : set_task(0.3,"slenderstuff",id)
                        case CS_TEAM_CT  : set_task(0.3,"humanstuff",id)
                }
        }
}
public ev_Death()
{
        new iAttacker = read_data(1)
        new id = read_data(2)
        SetDead(id)
        new user_name[33]
        get_user_name(id, user_name, charsmax(user_name))
        if(is_user_alive(iAttacker) && cs_get_user_team(id) == CS_TEAM_CT && cs_get_user_team(iAttacker) == CS_TEAM_T)
        {
                ChatColor(0, "%s !g%s !yfue asesinado por Slenderman!",g_szGamePrefix, user_name)
        }
}

public ev_HLTV(id)
{
        g_iPages = 1
        new i, iPlayers[ 32 ], iNum, iPlayer;
        get_players( iPlayers, iNum, "c")
       
        if( iNum <= 1 )
                return PLUGIN_CONTINUE;
       
        for( i = 0; i < iNum; i++ )
        {
                iPlayer = iPlayers[ i ];
                if( cs_get_user_team( iPlayer ) == CS_TEAM_T )
                {
                        cs_set_user_team( iPlayer, CS_TEAM_CT )
                }
        }
       
        new iRandomPlayer, CsTeams:iTeam;
        while( ( iRandomPlayer = iPlayers[ random_num( 0, iNum - 1 ) ] ) == g_iLastTerr ) { }
       
        g_iLastTerr = iRandomPlayer;
       
        iTeam = cs_get_user_team( iRandomPlayer );
       
        if( iTeam == CS_TEAM_T || iTeam == CS_TEAM_CT )
        {
                new szName[ 32 ];
                get_user_name( iRandomPlayer, szName, 31 );
               
                ChatColor(0, "%s !g%s !yes Slenderman!",g_szGamePrefix, szName)
               
                create_sprite(iRandomPlayer)
                g_iSlenderId = iRandomPlayer
               
                cs_set_user_team(iRandomPlayer, CS_TEAM_T);
               
                //************************************DEBUG*****************************************
                set_hudmessage(255, 255, 255, -0.5, 0.4, 0, 6.0, 12.0, 0.1)
                show_hudmessage(0, "Slender spawneo")
                //**********************************************************************************
        }
        else
        {
                ev_HLTV(id);
        }
       
        return PLUGIN_CONTINUE;
}

/* Gameplay Stuff */

public slenderstuff(id)
{
        strip_user_weapons(id);
        cs_set_user_money(id,0);
        cs_set_user_nvg(id,1)
       
        set_user_footsteps(id, 1)
        set_user_godmode(id, 1)
       
        engfunc(EngFunc_SetClientMaxspeed, id, get_pcvar_float(cvar_speed))
       
        cs_set_user_model(id, "slenderman")
       
}
public humanstuff(id)
{
        strip_user_weapons( id );
        give_item(id, "weapon_knife")
        cs_set_user_money( id, 0 );
        cs_set_user_nvg(id,0)
       
        set_user_footsteps(id, 0)
        set_user_godmode(id, 0)
       
        cs_set_user_model(id, "gsg9")
       
        set_hudmessage(255, 255, 255, -0.5, 0.5, 0, 6.0, 12.0, 0.1)
        show_hudmessage(id, "Encuentra las %i páginas!", get_pcvar_num(cvar_pages))
       
}
public ApplyEnvironment()
{
        static light_cvar[3]
        get_pcvar_string(cvar_light,light_cvar,charsmax(light_cvar))
        set_lights(light_cvar)
       
        static sky_cvar[33]
        get_pcvar_string(cvar_sky,sky_cvar,charsmax(sky_cvar))
       
        set_cvar_string("sv_skyname",sky_cvar)
       
}
public OnFlashLight(id)
{
        switch(cs_get_user_team(id))
        {
                case CS_TEAM_T: TeleportPlayer(id)
                case CS_TEAM_CT: return PLUGIN_CONTINUE
        }
        return PLUGIN_HANDLED
}

public TeleportPlayer(id)
{
        if(!is_user_alive(id) || cs_get_user_team(id) != CS_TEAM_T)
                return PLUGIN_HANDLED
       
        new Float:flGameTime = get_gametime();
       
        new iDelay = get_pcvar_num( cvar_delay );
       
        if( flGameTime - g_flLastTeleportTime[ id ] < iDelay )
        {
                ChatColor(id, "%s !yTienes que esperar !g%i !ysegundos cada !g2 !yteleports",g_szGamePrefix,iDelay)
                return PLUGIN_HANDLED
        }
       
        new vOldLocation[3], vNewLocation[3]
       
        get_user_origin( id, vOldLocation );
        get_user_origin( id, vNewLocation, 3 );
       
        emit_sound( 0, CHAN_ITEM, g_szTeleportSound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM );
       
        vOldLocation[2] += 15;
        vNewLocation[0] += ( ( vNewLocation[0] - vOldLocation[0] > 0 ) ? -50 : 50 );
        vNewLocation[1] += ( ( vNewLocation[1] - vOldLocation[1] > 0 ) ? -50 : 50 );
        vNewLocation[2] += 40;       
       
        set_user_origin( id, vNewLocation );
        g_flLastTeleportTime[ id ] = get_gametime();
       
        new parm[5];
        parm[0] = id;
        parm[1] = vOldLocation[0];
        parm[2] = vOldLocation[1];
        parm[3] = vOldLocation[2];
        parm[4] = vNewLocation[2];
       
        set_task( 0.1, "CheckStuck", 1337 + id, parm, 5 );
        return PLUGIN_HANDLED
}

public CheckStuck(parm[])
{
        new id = parm[0] 
       
        new vOldLocation[3], vOrigin[3];
       
        vOldLocation[0] = parm[1];
        vOldLocation[1] = parm[2];
        vOldLocation[2] = parm[3];
       
        get_user_origin( id, vOrigin );
       
        if ( parm[4] == vOrigin[2] )
        {
                set_user_origin( id, vOldLocation );
        }
}

/* Misc */

public GameDesc( )
{
        new szVersName[64]
        formatex(szVersName,charsmax(szVersName),"SlenderMod %s by UnitedDevs",VERSION)
       
        forward_return( FMV_STRING, szVersName );
        return FMRES_SUPERCEDE;
}

/* Origin2File */
public origin_2_file_menu(id)
{
        if(!get_user_flags(id) && SLENDER_EDITOR_ACCESS)
                return PLUGIN_HANDLED
       
        new menu = menu_create("Editor de spawn de páginas","origin_2_file_handler")
        new save[64],show[64],remove[64]
       
        formatex(save, charsmax(save), "Guardar páginas \ractuales")
        formatex(show, charsmax(show), "Mostrar lugares de las \rpáginas")
        formatex(remove, charsmax(remove),"Remover todas las \rpáginas")
       
        menu_additem(menu,save,                        "1",0);
       
        if(g_bAllPagesShow)
                menu_additem(menu,show,        "2",1<<31);
        else
                menu_additem(menu,show,                "2",0)
       
        if(!g_bAllPagesShow)
                menu_additem(menu,remove,        "3",1<<31);
        else
                menu_additem(menu,remove,  "3",0)
       
       
        menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
        menu_display(id, menu, 0);
        return PLUGIN_HANDLED
}
public origin_2_file_handler(id, menu, item)
{
        static filename[256]
        get_configsdir(filename,charsmax(filename))
       
        static map[32]
        get_mapname(map, charsmax(map))
       
        formatex(filename, charsmax(filename), "%s\slenderman\maps\%s.cfg",filename,map)
       
        new data[6], szName[64];
        new access, callback;
        menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
        new key = str_to_num(data);
        switch(key)
        {
                case 1:
                {       
                        new iOrigin[3]
                        get_user_origin(id, iOrigin, 0)
                       
                        new origincontent[256]
                        formatex(origincontent, charsmax(origincontent), "%d %d %d", iOrigin[0],iOrigin[1],iOrigin[2])
                       
                        write_file(filename, origincontent)
                }
                case 2:
                {
                        new lines = file_size(filename, 1);
                        for (new line=0; line <=lines; line++)
                        {
                                static iOrigin[3][8]
                                static Float:origin[3]
                                static lineBuffer[256], len;
                                read_file(filename, line, lineBuffer, charsmax(lineBuffer), len);
                               
                                parse(lineBuffer,iOrigin[0],7,iOrigin[1],7,iOrigin[2],7)
                               
                                origin[0] = str_to_float(iOrigin[0])
                                origin[1] = str_to_float(iOrigin[1])
                                origin[2] = str_to_float(iOrigin[2])
                               
                                new ent = create_entity("env_sprite")
                               
                                entity_set_string(ent, EV_SZ_classname, "editorpage")
                                entity_set_model(ent, g_szEditorSprite)
                                entity_set_int(ent, EV_INT_spawnflags, SF_SPRITE_STARTON)
                                entity_set_float(ent, EV_FL_framerate, 30.0)
                               
                                DispatchSpawn(ent)
                               
                                entity_set_origin(ent, origin)
                                entity_set_size(ent, Float:{-25.0, -25.0, -25.0}, Float:{25.0, 25.0, 25.0})
                                entity_set_int(ent, EV_INT_solid, SOLID_TRIGGER)
                                entity_set_int(ent, EV_INT_movetype, MOVETYPE_FLY)
                                entity_set_int(ent, EV_INT_rendermode, kRenderTransAdd)
                                entity_set_float(ent, EV_FL_renderamt, 255.0)
                                entity_set_float(ent, EV_FL_scale, 1.0)
                                entity_set_float(ent, EV_FL_gravity,0.0)
                               
                        }
                        g_bAllPagesShow = true
                }
                case 3:
                {
                        DeleteAllEditorSprites()
                       
                }       
        }
}

public DeleteAllEditorSprites()
{
        new ent = -1
        while((ent = find_ent_by_class(ent,"editorpage")))
        {
                remove_entity(ent)
        }
        g_bAllPagesShow = false
}

/* Pages Stuff */

public DeleteAllSprites()
{
        new ent = -1
        while((ent = find_ent_by_class(ent,"slenderpage")))
        {
                remove_entity(ent)
        }
}

public create_sprite(id)
{
        new map[32],config[32],file[64]
       
        get_mapname(map, charsmax(map))
        get_localinfo("amxx_configsdir",config,charsmax(config))
       
        formatex(file,charsmax(file),"%s\slenderman\maps\%s.cfg",config,map)
       
        if(file_exists(file))
        {
                DeleteAllSprites()
               
                new iOrigin[3][8]
                new Float:origin[3]
               
                new lines = file_size(file, 1);
                new randomLine = random(lines);
               
                new lineBuffer[256], len;
                read_file(file, randomLine, lineBuffer, charsmax(lineBuffer), len);
               
                parse(lineBuffer,iOrigin[0],7,iOrigin[1],7,iOrigin[2],7)
               
                origin[0] = str_to_float(iOrigin[0])
                origin[1] = str_to_float(iOrigin[1])
                origin[2] = str_to_float(iOrigin[2])
               
                new ent = create_entity("env_sprite")
               
                entity_set_string(ent, EV_SZ_classname, "slenderpage")
                entity_set_model(ent,g_szPageSprite)
                entity_set_int(ent, EV_INT_spawnflags, SF_SPRITE_STARTON)
                entity_set_float(ent, EV_FL_framerate, 30.0)
               
                DispatchSpawn(ent)
               
                entity_set_origin(ent, origin)
                entity_set_size(ent, Float:{-25.0, -25.0, -25.0}, Float:{25.0, 25.0, 25.0})
                entity_set_int(ent, EV_INT_solid, SOLID_TRIGGER)
                entity_set_int(ent, EV_INT_movetype, MOVETYPE_FLY)
                entity_set_int(ent, EV_INT_rendermode, kRenderTransAdd)
                entity_set_float(ent, EV_FL_renderamt, 255.0)
                entity_set_float(ent, EV_FL_scale, 1.0)
                entity_set_float(ent, EV_FL_gravity,0.0) 
               
                ChatColor(id, "%s !yPágina numero !g%i generada!",g_szGamePrefix,g_iPages)
        }
        else
        {
                ChatColor(0, "%s !gError !y: Archivo de páginas no encontrado!",g_szGamePrefix)
        }
}

public player_touch_slenderpage(ent, id)
{
        if(cs_get_user_team(id) == CS_TEAM_CT)
        {
                remove_entity(ent)
               
                new szName[32];
                get_user_name(id, szName, 31);
               
                set_hudmessage(255, 255, 255, -0.5, 0.5, 0, 6.0, 12.0, 0.1)
                show_hudmessage(id, "Página %i de %i", g_iPages, get_pcvar_num(cvar_pages))
               
                ChatColor(0, "%s !g%s !yencontro una página! !g%i !yde !g%i",g_szGamePrefix,szName,g_iPages,get_pcvar_num(cvar_pages))
               
                if(g_iPages >= get_pcvar_num(cvar_pages))
                {
                        user_kill(g_iSlenderId)
                        g_iPages = 1
                }
               
                g_iPages++       
                create_sprite(id)
        }
}

/* Color Chat */

stock ChatColor(const id, const input[], any:...)
{
    new count = 1, players[32]
    static msg[191]
    vformat(msg, 190, input, 3)
   
    replace_all(msg, 190, "!g", "^4") // Green Color
    replace_all(msg, 190, "!y", "^1") // Default Color
    replace_all(msg, 190, "!team", "^3") // Team Color
    replace_all(msg, 190, "!team2", "^0") // Team2 Color
   
    if (id) players[0] = id; else get_players(players, count, "ch")
    {
        for (new i = 0; i < count; i++)
        {
            if (is_user_connected(players[i]))
            {
                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
                write_byte(players[i]);
                write_string(msg);
                message_end();
            }
        }
       
    }
}

/* Team Manager */

public message_ShowMenu(iMsgid, iDest, id)
{
        static sMenuCode[iMaxLen];
        get_msg_arg_string(4, sMenuCode, sizeof(sMenuCode) - 1)
        if(equal(sMenuCode, FIRST_JOIN_MSG) || equal(sMenuCode, FIRST_JOIN_MSG_SPEC))
        {
                show_team_menu(id)
                return PLUGIN_HANDLED
               
        }
        return PLUGIN_CONTINUE;
}

public message_VGUIMenu(iMsgid, iDest, id)
{
        if(get_msg_arg_int(1) != VGUI_JOIN_TEAM_NUM)
        {
                return PLUGIN_CONTINUE;
        }
       
        show_team_menu(id)
        return PLUGIN_HANDLED;
}

public count_teams()
{
        CTCount = 0
        TCount = 0
       
        new Players[32]
        new playerCount, i
        get_players(Players, playerCount, "")
        for (i=0; i<playerCount; i++)
        {
                if (is_user_connected(Players[i]))
                {
                        if (cs_get_user_team(Players[i]) == CS_TEAM_CT) CTCount++
                        if (cs_get_user_team(Players[i]) == CS_TEAM_T) TCount++
                }
        }
}

public team_choice(id, menu, item)
{
        static dst[32], data[5], access, callback
        static restore, vgui, msgblock
       
        if(item == MENU_EXIT)
        {
                msgblock = get_msg_block(g_MsgShowMenu)
                set_msg_block(g_MsgShowMenu, BLOCK_ONCE)
                engclient_cmd(id, "jointeam", "2")
                engclient_cmd(id, "joinclass", "2")
                set_msg_block(g_MsgShowMenu, msgblock)
                menu_destroy(menu)
                return PLUGIN_HANDLED
        }
       
        restore = get_pdata_int(id, m_iVGUI)
        vgui = restore & (1<<0)
        if(vgui)
                set_pdata_int(id, m_iVGUI, restore & ~(1<<0))
       
       
        menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
        menu_destroy(menu)
       
        switch(data[0])
        {
                case('1'):
                {           
                        count_teams()
                       
                        if(TCount < 1)
                        {
                                msgblock = get_msg_block(g_MsgShowMenu)
                                set_msg_block(g_MsgShowMenu, BLOCK_ONCE)
                                engclient_cmd(id, "jointeam", "1")
                                engclient_cmd(id, "joinclass", "1")
                                set_msg_block(g_MsgShowMenu, msgblock)
                        }
                        else
                        {
                                msgblock = get_msg_block(g_MsgShowMenu)
                                set_msg_block(g_MsgShowMenu, BLOCK_ONCE)
                                engclient_cmd(id, "jointeam", "2")
                                engclient_cmd(id, "joinclass", "2")
                                set_msg_block(g_MsgShowMenu, msgblock)
                        }
                       
                }
                case('2'):
                {
                        msgblock = get_msg_block(g_MsgShowMenu)
                        set_msg_block(g_MsgShowMenu, BLOCK_ONCE)
                        engclient_cmd(id, "jointeam", "2")
                        engclient_cmd(id, "joinclass", "2")
                        set_msg_block(g_MsgShowMenu, msgblock)
                }
               
        }
        if(vgui)
                set_pdata_int(id, m_iVGUI, restore)
        return PLUGIN_HANDLED
}

public show_team_menu(id)
{
        static menu
       
        menu = menu_create("\wSelecciona tu \rclase:", "team_choice")
       
        if(TCount < 1)
                menu_additem(menu, "Slenderman", "1", 0)
        else
                menu_additem(menu, "\dSlenderman", "1", 1<<31)
       
        menu_additem(menu, "Humano", "2", 0)
        menu_display(id, menu)
       
        return PLUGIN_HANDLED
}

public jointeam(id) return PLUGIN_HANDLED

/* Stocks */

stock shake_user_screen(id)
{
        message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, id)  // Shake Screen
        write_short(1<<14)
        write_short(1<<14)
        write_short(1<<14)
        message_end()
}



All times are GMT -4. The time now is 06:04.

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