Raised This Month: $ Target: $400
 0% 

Joinclass


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
csaba1998
Member
Join Date: Mar 2013
Old 07-23-2013 , 11:59   Joinclass
Reply With Quote #1

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

Someone fix it?
Thanks

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


Last edited by csaba1998; 07-23-2013 at 13:28.
csaba1998 is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


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


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