|
Member
|

07-23-2013
, 11:59
Joinclass
|
#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_t, g_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_NAME, PLUGIN_VERSION, PLUGIN_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 i = 1; i < 33; i++) { 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(id, team[] = "5") { new menu_msgid = g_msgid[id] new msg_block = get_msg_block(menu_msgid) set_msg_block(menu_msgid, BLOCK_SET) engclient_cmd(id, "jointeam", team) set_msg_block(menu_msgid, msg_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(id, menu[id], 0) menu_setprop(menu[id],MPROP_EXIT,MEXIT_ALL) } public _menu_choosemodel_t(id, menu, item) { new data[6], iName[64]; new access, callback; menu_item_getinfo(menu, item, access, data,5, iName, 63, callback); 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(id, menu[id], 0) menu_setprop(menu[id],MPROP_EXIT,MEXIT_ALL) } public _menu_choosemodel_ct(id, menu, item) { new data[6], iName[64]; new access, callback; menu_item_getinfo(menu, item, access, data,5, iName, 63, callback); 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(text, 511,"\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(id, Keysmenu_1, text, -1, "mainmenu") } else { len += format(text[len], 511 - len, "^n\r0. Exit^n") show_menu(id, Keysmenu_2, text, -1, "mainmenu") } } }
public _menu_chooseteam(id, key) { 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(id, g_msgid[id], "6", _) } //Send them to the submenu } case 9: { return PLUGIN_HANDLED; } } return PLUGIN_HANDLED; }
public message_show_menu(msgid, dest, id) { static team_select[] = "#Team_Select" static menu_text_code[sizeof team_select] get_msg_arg_string(4, menu_text_code, sizeof menu_text_code - 1) // //server_print("Graphic menu"); if (!equal(menu_text_code, team_select)) return PLUGIN_CONTINUE g_msgid[id] = msgid menu_chooseteam(id) return PLUGIN_HANDLED }
public message_vgui_menu(msgid, dest, id) { 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_t= true g_allow_ct = true new playerst[32], playersct[32] get_players(playerst, g_num_t, "eh", "TERRORIST") get_players(playersct, g_num_ct, "eh", "CT") if (get_pcvar_num(p_allow_spectators) && (g_num_t + g_num_ct > 1 || 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(id, menu_msgid, team[] = "5", class[] = "0") { static jointeam[] = "jointeam" if (class[0] == '0') { engclient_cmd(id, jointeam, team) g_changed[id] = true g_unassigned[id] = false return } static msg_block, joinclass[] = "joinclass" msg_block = get_msg_block(menu_msgid) set_msg_block(menu_msgid, BLOCK_SET) engclient_cmd(id, jointeam, team) engclient_cmd(id, joinclass, class) set_msg_block(menu_msgid, msg_block) g_changed[id] = true g_unassigned[id] = false }
Last edited by csaba1998; 07-23-2013 at 13:28.
|
|