Allied Modders en español
auto joinclass - Versión para impresión

+- Allied Modders en español (https://amxmodx-es.com)
+-- Foro: AMX Mod X - Scripting (https://amxmodx-es.com/Forum-AMX-Mod-X-Scripting)
+--- Foro: Aportes (https://amxmodx-es.com/Forum-Aportes)
+--- Tema: auto joinclass (/Thread-auto-joinclass)



auto joinclass - Nelo - 06/01/2022

lo que hace este plugin es bloquear el comando joinclass y los menues, y te setea un model random (joinclass 5)
se puede cambiar de equipo normalmente mediante el menu, solo que bloquea el segundo menu y te setea la clase aleatorea
solia usarlo en un servidor con fast respawn porque si te quedabas en este menu sin elegir la clase no revivias

a mi me funcionaba bien, es un plugin viejo pero cualquier problema me avisan, posteo porque quizas a alguien le sirva

Código:
#include <amxmodx>

public plugin_init()
{
    register_plugin("Auto Joinclass", "1.0", "Nelo")
    
    register_clcmd("joinclass", "block")
    register_clcmd("jointeam", "hook_jt")
    register_menucmd(register_menuid("Team_Select", 1), (1<<0)|(1<<1)|(1<<2)|(1<<4)|(1<<5), "TeamSelect")

    register_message(get_user_msgid("TextMsg"), "block_msg")
}

public block(id)
    return PLUGIN_HANDLED

public hook_jt(id)
{
    new Team[10]
    read_argv(1, Team, charsmax(Team))
    
    set_msg_block(get_user_msgid("VGUIMenu"), BLOCK_ONCE)
    set_msg_block(get_user_msgid("ShowMenu"), BLOCK_ONCE)
    engclient_cmd(id, "jointeam", Team)

    set_task(0.01, "force_joinclass", id)
    
    set_msg_block(get_user_msgid("VGUIMenu"), BLOCK_NOT)
    set_msg_block(get_user_msgid("ShowMenu"), BLOCK_NOT)
    return PLUGIN_HANDLED
}

public TeamSelect(id, key)
{
    set_msg_block(get_user_msgid("ShowMenu"), BLOCK_ONCE)
    
    switch(key)
    {
        case 0:
        {
            engclient_cmd(id, "jointeam", "1")
            set_task(0.01, "force_joinclass", id)
        }
        
        case 1:
        {
            engclient_cmd(id, "jointeam", "2")
            set_task(0.01, "force_joinclass", id)
        }
            
        case 2:
        {
            engclient_cmd(id, "jointeam", "3") // vip
        }
        
        case 4:
        {
            engclient_cmd(id, "jointeam", "5")
            set_task(0.01, "force_joinclass", id)
        }
        
        case 5:    
        {
            engclient_cmd(id, "jointeam", "6") // spec
        }
    }

    set_msg_block(get_user_msgid("ShowMenu"), BLOCK_NOT)
    return PLUGIN_HANDLED
}    

public block_msg(id, dest, entity)
{
    new blockmsg[32]
    get_msg_arg_string(2, blockmsg, charsmax(blockmsg))
    
    if(equal(blockmsg, "#Command_Not_Available"))
        return PLUGIN_HANDLED
    
    return PLUGIN_CONTINUE
}

public force_joinclass(id)
    engclient_cmd(id, "joinclass", "5")



RE: auto joinclass - [N]drs - 07/01/2022

Con regamedll
Código PHP:
mp_auto_join_team "1"

// any/CT/T
humans_join_team "any"