AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Joinclass (https://forums.alliedmods.net/showthread.php?t=221551)

csaba1998 07-23-2013 11:59

Joinclass
 
I made a plugin, which hook joinclass, but not work
UP: i search and made it but not respawn me :(

Someone fix it?
Thanks :D

PHP Code:

/* AMX Mod X
*    Custom Team Select Menu
*    Code By baby
*    Credits:
*    VEN(Borrowed some code from his Auto Join on Connect :D)
*
*/

#include <amxmodx>
#include <cstrike>
#include <hamsandwich>

#define PLUGIN_NAME "custom team select menu"
#define PLUGIN_VERSION "0.10"
#define PLUGIN_AUTHOR "baby"

#define TEAM_SELECT_VGUI_MENU_ID 2

new bool:g_unassigned[33]
new 
bool:g_changed[33]
new 
menu[33]
new 
g_msgid[33]
new 
p_allow_spectators
new p_teambalance
new p_limitteams

new bool:g_allow_t
new bool:g_allow_ct
new bool:g_allow_spec
new g_num_tg_num_ct

#define Keysmenu_1 (1<<0)|(1<<1)|(1<<4)|(1<<5)|(1<<9) // Keys: 12560
#define Keysmenu_2 (1<<0)|(1<<1)|(1<<4)|(1<<5)|(1<<9) // Keys: 12560

public plugin_init() {
    
register_plugin(PLUGIN_NAMEPLUGIN_VERSIONPLUGIN_AUTHOR)
    
    
register_message(get_user_msgid("ShowMenu"), "message_show_menu")
    
register_message(get_user_msgid("VGUIMenu"), "message_vgui_menu")
    
    
register_menucmd(register_menuid("mainmenu"), Keysmenu_1"_menu_chooseteam")
    
    
register_logevent("hook_roundstart",2,"1=Round_Start")
    
    
p_allow_spectators get_cvar_pointer("allow_spectators")
    
p_teambalance get_cvar_pointer"mp_autoteambalance" )
    
p_limitteams get_cvar_pointer"mp_limitteams" )
    
register_clcmd("chooseteam""hook_chooseteam")
    
}

public 
plugin_precache()
{
    
precache_model("models/player/ara/ara.mdl")
    
precache_model("models/player/gerrard/gerrard.mdl")
    
precache_model("models/player/jennifer/jennifer.mdl")
    
precache_model("models/player/marineboy/marineboy.mdl")
    
precache_model("models/player/marinegirl/marinegirl.mdl")
    
precache_model("models/player/natasha/natasha.mdl")
    
precache_model("models/player/pirateboy/pirateboy.mdl")
    
precache_model("models/player/pirategirl/pirategirl.mdl")
    
precache_model("models/player/spetsnaz/spetsnaz.mdl")
}

public 
hook_roundstart()
{
    for (new 
133i++)
    {
        
g_changed[i] = false
    
}
}

public 
client_connect(id)
{
    
g_changed[id] = false
    g_unassigned
[id] = true
    
}

public 
client_disconnect(id)
{
    
g_changed[id] = false
    g_unassigned
[id] = true
    
}
public 
hook_chooseteam(id)
{
    
menu_chooseteam(id)
    return 
PLUGIN_HANDLED
}

stock team_join(idteam[] = "5")
{
    new 
menu_msgid g_msgid[id]
    new 
msg_block get_msg_block(menu_msgid)
    
set_msg_block(menu_msgidBLOCK_SET)
    
engclient_cmd(id"jointeam"team)
    
set_msg_block(menu_msgidmsg_block)
}

public 
menu_choosemodel_t(id)
{
    new 
fejlec[64]
        
format(fejlec,63,"\wTDM: \rChoose a class")
        
menu[id]=menu_create(fejlec,"_menu_choosemodel_t")
        
menu_additem(menu[id], "\wPhoenix Connexion""1"0)
        
menu_additem(menu[id], "\wElite Crew""2"0)
        
menu_additem(menu[id], "\wArctic Avengers""3"0)
        
menu_additem(menu[id], "\wGuerilla Warfare""4"0)
        
menu_additem(menu[id], "\wMidwest Militia""5"0)
        
menu_additem(menu[id], "\wAsia Red Army""6"0)
        
menu_additem(menu[id], "\wJennifer""7"0)
        
menu_additem(menu[id], "\wMichaela""8"0)
        
menu_additem(menu[id], "\wRaven""9"0)
        
menu_display(idmenu[id], 0)
        
menu_setprop(menu[id],MPROP_EXIT,MEXIT_ALL)
}
public 
_menu_choosemodel_t(idmenuitem)
{
    new 
data[6], iName[64];
    new 
accesscallback;
    
menu_item_getinfo(menuitemaccessdata,5iName63callback);
    
        new 
key str_to_num(data)
    
    switch(
key)
    {
    case 
1:
    {
    
cs_set_user_model(id"terror")
    
ExecuteHamB(Ham_CS_RoundRespawn,id)   
    }
    case 
2:
    {
    
cs_set_user_model(id"leet")
    
ExecuteHamB(Ham_CS_RoundRespawn,id)   
    } 
    case 
3:
    {
    
cs_set_user_model(id"artic")
    
ExecuteHamB(Ham_CS_RoundRespawn,id)   
    } 
    case 
4:
    {
    
cs_set_user_model(id"guerilla"
    
ExecuteHamB(Ham_CS_RoundRespawn,id)  
    } 
    case 
5:
    {
    
cs_set_user_model(id"terror"
    
ExecuteHamB(Ham_CS_RoundRespawn,id)  
    }
    case 
6:
    {
    
cs_set_user_model(id"ara")
    
ExecuteHamB(Ham_CS_RoundRespawn,id)   
    } 
    case 
7:
    {
    
cs_set_user_model(id"jennifer")  
    
ExecuteHamB(Ham_CS_RoundRespawn,id
    }
    case 
8:
    {
    
cs_set_user_model(id"pirategirl")
    
ExecuteHamB(Ham_CS_RoundRespawn,id)   
    }
    case 
9:
    {
    
cs_set_user_model(id"pirateboy"
    
ExecuteHamB(Ham_CS_RoundRespawn,id)  
    }
    }
    
    
g_changed[id] = true
    g_unassigned
[id] = false
    menu_destroy
(menu);
    
    
    return 
PLUGIN_HANDLED;
}

public 
menu_choosemodel_ct(id)
{
    new 
fejlec[64]
        
format(fejlec,63,"\wTDM: \rChoose a class")
        
menu[id]=menu_create(fejlec,"_menu_choosemodel_ct")
        
menu_additem(menu[id], "\wSEAL Team 6""1"0)
        
menu_additem(menu[id], "\wGSG-9""2"0)
        
menu_additem(menu[id], "\wSAS""3"0)
        
menu_additem(menu[id], "\wGIGN""4"0)
        
menu_additem(menu[id], "\wSPETSNAZ""5"0)
        
menu_additem(menu[id], "\wNatasha""6"0)
        
menu_additem(menu[id], "\wGerrard""7"0)
        
menu_additem(menu[id], "\wLucia""8"0)
        
menu_additem(menu[id], "\wEnzo""9"0)
        
menu_display(idmenu[id], 0)
        
menu_setprop(menu[id],MPROP_EXIT,MEXIT_ALL)
}
public 
_menu_choosemodel_ct(idmenuitem)
{
    
    new 
data[6], iName[64];
    new 
accesscallback;
    
menu_item_getinfo(menuitemaccessdata,5iName63callback);
    
    new 
key str_to_num(data)
    
    switch(
key)
    {
    case 
1:
    {
    
cs_set_user_model(id"urban")  
    
ExecuteHamB(Ham_CS_RoundRespawn,id
    }
    case 
2:
    {
    
cs_set_user_model(id"gsg9")
    
ExecuteHamB(Ham_CS_RoundRespawn,id)  
    } 
    case 
3:
    {
    
cs_set_user_model(id"sas"
    
ExecuteHamB(Ham_CS_RoundRespawn,id)  
    } 
    case 
4:
    {
    
cs_set_user_model(id"gign"
    
ExecuteHamB(Ham_CS_RoundRespawn,id)  
    }  
    case 
5:
    {
    
cs_set_user_model(id"spetsnaz"
    
ExecuteHamB(Ham_CS_RoundRespawn,id)  
    }
    case 
6:
    {
    
cs_set_user_model(id"natasha"
    
ExecuteHamB(Ham_CS_RoundRespawn,id)  
    } 
    case 
7:
    {
    
cs_set_user_model(id"gerrard")  
    
ExecuteHamB(Ham_CS_RoundRespawn,id
    }
    case 
8:
    {
    
cs_set_user_model(id"marinegirl")  
    
ExecuteHamB(Ham_CS_RoundRespawn,id
    }
    case 
9:
    {
    
cs_set_user_model(id"marineboy")   
    
ExecuteHamB(Ham_CS_RoundRespawn,id)
    }
    }
    
    
g_changed[id] = true
    g_unassigned
[id] = false
    menu_destroy
(menu);
    
    return 
PLUGIN_HANDLED;
}

public 
menu_chooseteam(id)
{
    if (
is_user_connected(id) && !is_user_bot(id) && !is_user_hltv(id))
    {
        
        
check_teams(id)
        
        new 
text[512], len
        
        len 
format(text511,"\yTeam Select Spect^n^n")
        
        if (
g_changed[id])
        {
            
len += format(text[len], 511 len"\wTDM: Can only be replaced once a team^n")
            
len += format(text[len], 511 len"\d1. Terrorist Force^n")
            
len += format(text[len], 511 len"\d2. Counter-Terrorist Force^n")
            
len += format(text[len], 511 len,  "\d5. Auto-select^n"
            
len += format(text[len], 511 len"\d6. Spectator^n^n")
        }
        else
        { 
            
len += format(text[len], 511 len"\rTDM: Select your appearance^n")
            
len += format(text[len], 511 len"\r1. \wTerrorist Force^n")
            
len += format(text[len], 511 len"\r2. \wCounter-Terrorist Force^n")
            
len += format(text[len], 511 len"\r5. \wAuto-select^n")
        }

        
        if ((
g_allow_spec && !g_changed[id]))
        {
            
len += format(text[len], 511 len"\r6. \wSpectator^n^n")
            
len += format(text[len], 511 len"^n\r0. Exit^n")
            
show_menu(idKeysmenu_1text, -1"mainmenu")
        }
        else
        {
            
len += format(text[len], 511 len"^n\r0. Exit^n")
            
show_menu(idKeysmenu_2text, -1"mainmenu")
        }
        
    }
}

public 
_menu_chooseteam(idkey)
{
    
check_teams(id)
    switch(
key)
    {
        case 
0:
        {
            if (
g_allow_t && !g_changed[id])
            {
                
team_join(id"1")
                
                
menu_choosemodel_t(id)
            }
            
//set_force_team_join_task(id, g_msgid[id])
            
        
}
        case 
1:
        {
            if (
g_allow_ct && !g_changed[id])
            {
                
team_join(id"2")
                
                
menu_choosemodel_ct(id)
            }
            
//Send them to the submenu
            
        
}
        case 
4:
        {
            if (!
g_changed[id])
            {
                if (
g_allow_t && g_allow_ct)
                {
                    if (
get_systime() % 2)
                    {
                        
team_join(id"1")
                        
menu_choosemodel_t(id)
                    }
                    else
                    {
                        
team_join(id"2")
                        
menu_choosemodel_ct(id)
                    }

                }
                else if (
g_allow_t)
                {
                    
team_join(id"1")
                    
menu_choosemodel_t(id)
                    
//Send them to the submenu
                
}
                else if (
g_allow_ct)
                {
                    
team_join(id"2")
                    
menu_choosemodel_ct(id)
                }
            }
        }
        case 
5:
        {
            if (!
g_changed[id])
            {
                
force_team_join(idg_msgid[id], "6"_)
            }
            
//Send them to the submenu
            
        
}
        case 
9:
        {
            return 
PLUGIN_HANDLED;
        }
    }
    
    return 
PLUGIN_HANDLED;
}

public 
message_show_menu(msgiddestid) {
    
    
    static 
team_select[] = "#Team_Select"
    
static menu_text_code[sizeof team_select]
    
get_msg_arg_string(4menu_text_codesizeof menu_text_code 1)
    
    
//
    //server_print("Graphic menu");
    
    
if (!equal(menu_text_codeteam_select))
        return 
PLUGIN_CONTINUE
    
    
    g_msgid
[id] = msgid
    menu_chooseteam
(id)
    
    
    return 
PLUGIN_HANDLED
}

public 
message_vgui_menu(msgiddestid) {
    if (
get_msg_arg_int(1) != TEAM_SELECT_VGUI_MENU_ID)
        return 
PLUGIN_CONTINUE
    
//
    //server_print("VGUI menu");
    
    
g_msgid[id] = msgid
    menu_chooseteam
(id)
    
    
    return 
PLUGIN_HANDLED
}

public 
check_teams(id)
{
    
g_allow_ttrue
    g_allow_ct 
true
    
    
    
new playerst[32], playersct[32]
    
get_players(playerstg_num_t"eh""TERRORIST")
    
get_players(playersctg_num_ct"eh""CT")
    
    if (
get_pcvar_num(p_allow_spectators) && (g_num_t g_num_ct || g_unassigned[id]))
    {
        
g_allow_spec true
    
}
    else
    {
        
g_allow_spec false
    
}
    
    
    if (
get_user_team(id) == 2)//ct
    
{
        
g_num_ct--
    }
    else if (
get_user_team(id) == 1)//t
    
{
        
g_num_t--
    }
    
    if (
get_pcvar_num(p_teambalance))
    {
        new 
limit get_pcvar_num(p_limitteams)
        if (
g_num_t g_num_ct >= limit)
        {
            
g_allow_t false
        
}
        else if (
g_num_ct g_num_t >= limit)
        {
            
g_allow_ct false
        
}
    }
}

stock force_team_join(idmenu_msgidteam[] = "5",  class[] = "0") {
    static 
jointeam[] = "jointeam"
    
if (class[0] == '0') {
        
engclient_cmd(idjointeamteam)
        
g_changed[id] = true
        g_unassigned
[id] = false
        
return
    }
    
    static 
msg_blockjoinclass[] = "joinclass"
    
msg_block get_msg_block(menu_msgid)
    
set_msg_block(menu_msgidBLOCK_SET)
    
engclient_cmd(idjointeamteam)
    
engclient_cmd(idjoinclass, class)
    
set_msg_block(menu_msgidmsg_block)
    
    
g_changed[id] = true
    g_unassigned
[id] = false




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

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