Page 1 of 2
Naujoj sistema ir chooseteam
Posted: 2012 Apr 04 23:22
by Pukuotukas951
Naudoju naująją menu sistemą, meniu yra užsatytas ant chooseteam ir assigeteam , galit parašyt kodą kad pasirinkus tarkim meniu
1.Perkelia pas ct
2.Perkelias pas t
3.Pas spectator ?
nes dabar niekaip negaliu keist komandos
Re: Naujoj sistema ir chooseteam
Posted: 2012 Apr 04 23:40
by xFrostas
Plugin
Re: Naujoj sistema ir chooseteam
Posted: 2012 Apr 05 11:42
by Pukuotukas951
Ačiū, bet va, aš bšk. persidariau, kad ir mirusiam eitų persikelti į kitą komandą, o kaip padaryt, kad tą komandą leistų keisti tik 1 kartą per round?
Code: Select all
#include <amxmodx>#include <cstrike> public plugin_init(){ register_plugin("Team Menu", "1.0", "Lightas") register_clcmd("say /team", "Main_Team_Menu") register_clcmd("say team", "Main_Team_Menu")} public Main_Team_Menu(id){ new menu = menu_create("\rChoose Team", "Team_Menu") menu_additem(menu, "\yTerrorist", "1", 0) menu_additem(menu, "\yCounter-Terrorist", "2", 0) menu_additem(menu, "\ySpectator", "3", 0) menu_setprop(menu, MPROP_EXIT, MEXIT_ALL) menu_display(id, menu, 0)}public Menu(id, menu, item){ if (item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } 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: { if (is_user_alive(id)) { user_silentkill(id) cs_set_user_team(id, CS_TEAM_T) } else { cs_set_user_team(id, CS_TEAM_T) } } case 2: { if (is_user_alive(id)) { user_silentkill(id) cs_set_user_team(id, CS_TEAM_CT) } else { cs_set_user_team(id, CS_TEAM_CT) } case 3: { if (is_user_alive(id)) { user_silentkill(id) cs_set_user_team(id, CS_TEAM_SPECTATOR) } else { cs_set_user_team(id, CS_TEAM_SPECTATOR) } } menu_destroy(menu) return PLUGIN_HANDLED}
Kažką su šituo daryt?
Code: Select all
new bool:ChooseTeam_Used[33]; public Event_HLTV_New_Round(id) { arrayset(ChooseTeam_Used, false, sizeof(ChooseTeam_Used)); } public client_authorized(id){ ChooseTeam_Used[id] = false;} //........// if(ChooseTeam_Used[id] == true) { client_print(id, print_center, "Leidziama keisti tik 1 komanda."); return PLUGIN_HANDLED; } //.....// ChooseTeam_Used[id] = true;
Re: Naujoj sistema ir chooseteam
Posted: 2012 Apr 05 12:56
by xFrostas
Netikrinau, bet turėtų veikti.
Re: Naujoj sistema ir chooseteam
Posted: 2012 Apr 05 16:00
by Pukuotukas951
Neveikia, vistiek galima keisti daug kartų.
Re: Naujoj sistema ir chooseteam
Posted: 2012 Apr 05 16:09
by InvIs
Tai kai pasirenka komandą uždėk kintamajį pasirinko[id] = 1
Code: Select all
switch(key){case 1:{ if(pasirinko[id] != 1) { cs_set_user_team(id, CS_TEAM_T) pasirinko[id] = 1 }}case 2:{ if(pasirinko[id] != 1) { cs_set_user_team(id, CS_TEAM_CT) pasirinko[id] = 1 }}case 3:{ if(pasirinko[id] != 1) { cs_set_user_team(id, CS_TEAM_SPECTATOR) pasirinko[id] = 1 }}}
Code: Select all
public logevent_round_start(){ get_players( players, num ) for( new i = 1;i < num; i++) { pasirinko[i] = 0 }}
Re: Naujoj sistema ir chooseteam
Posted: 2012 Apr 05 16:27
by Pukuotukas951
Pas mane yra padaryta su else tuomet tikrinimas netinka, nes tik pirmam if tikrins, o antram ne.
čia pilnas kodas
Code: Select all
#include <amxmodx>#include <cstrike> new bool: Changed[33] new ChangeTeam[33] public plugin_init(){ register_plugin("Team Menu", "1.0", "Lightas") register_clcmd("say /team", "Main_Team_Menu") register_clcmd("say team", "Main_Team_Menu")} public client_disconnect(id){ ChangeTeam[id] = 0 Changed[id] = false} public Main_Team_Menu(id){ new menu = menu_create("\rChoose Team", "Team_Menu") menu_additem(menu, "\yTerrorist", "1", 0) menu_additem(menu, "\yCounter-Terrorist", "2", 0) menu_additem(menu, "\ySpectator", "3", 0) menu_setprop(menu, MPROP_EXIT, MEXIT_ALL) menu_display(id, menu, 0)}public Menu(id, menu, item){ if (item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } 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: { if (is_user_alive(id)) { user_silentkill(id) cs_set_user_team(id, CS_TEAM_T) Changed[id] = true ChangeTeam[id]++ } else { cs_set_user_team(id, CS_TEAM_T) Changed[id] = true ChangeTeam[id]++ } if (ChangeTeam[id] > 1) { client_print(id, print_center, "Negali keisti komandos du kartus!") return PLUGIN_HANDLED } else if (Changed[id]) { ChangeTeam[id] = 0 } } case 2: { if (is_user_alive(id)) { user_silentkill(id) cs_set_user_team(id, CS_TEAM_CT) Changed[id] = true ChangeTeam[id]++ } else { cs_set_user_team(id, CS_TEAM_CT) Changed[id] = true ChangeTeam[id]++ } if (ChangeTeam[id] > 1) { client_print(id, print_center, "Negali keisti komandos du kartus!") return PLUGIN_HANDLED } else if (Changed[id]) { ChangeTeam[id] = 0 } } case 3: { if (is_user_alive(id)) { user_silentkill(id) cs_set_user_team(id, CS_TEAM_SPECTATOR) Changed[id] = true ChangeTeam[id]++ } else { cs_set_user_team(id, CS_TEAM_SPECTATOR) Changed[id] = true ChangeTeam[id]++ } if (ChangeTeam[id] > 1) { client_print(id, print_center, "Negali keisti komandos du kartus!") return PLUGIN_HANDLED } else if (Changed[id]) { ChangeTeam[id] = 0 } } } menu_destroy(menu) return PLUGIN_HANDLED}
Re: Naujoj sistema ir chooseteam
Posted: 2012 Apr 05 17:03
by InvIs
Tai tu pagal mane pasidaryk....
EDIT:
Code: Select all
#include <amxmodx>#include <cstrike> new Changed[33] public plugin_init(){ register_plugin("Team Menu", "1.0", "Lightas") register_clcmd("say /team", "Main_Team_Menu") register_clcmd("say team", "Main_Team_Menu") register_logevent("logevent_round_start", 2, "1=Round_Start") } public client_disconnect(id){ Changed[id] = 0} public Main_Team_Menu(id){ new menu = menu_create("\rChoose Team", "Team_Menu") menu_additem(menu, "\yTerrorist", "1", 0) menu_additem(menu, "\yCounter-Terrorist", "2", 0) menu_additem(menu, "\ySpectator", "3", 0) menu_setprop(menu, MPROP_EXIT, MEXIT_ALL) menu_display(id, menu, 0)}public Menu(id, menu, item){ if (item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } 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: { if (Changed[id] == 1) { client_print(id, print_center, "Negali keisti komandos du kartus!") return PLUGIN_HANDLED } if (is_user_alive(id)) { user_silentkill(id) cs_set_user_team(id, CS_TEAM_T) Changed[id] = 1 } else { cs_set_user_team(id, CS_TEAM_T) Changed[id] = 1 } } case 2: { if (Changed[id] == 1) { client_print(id, print_center, "Negali keisti komandos du kartus!") return PLUGIN_HANDLED } if (is_user_alive(id)) { user_silentkill(id) cs_set_user_team(id, CS_TEAM_CT) Changed[id] = 1 } else { cs_set_user_team(id, CS_TEAM_CT) Changed[id] = 1 } } case 3: { if (Changed[id] == 1) { client_print(id, print_center, "Negali keisti komandos du kartus!") return PLUGIN_HANDLED } if (is_user_alive(id)) { user_silentkill(id) cs_set_user_team(id, SPECTATOR) Changed[id] = 1 } else { cs_set_user_team(id, CS_TEAM_SPECTATOR) Changed[id] = 1 } } } menu_destroy(menu) return PLUGIN_HANDLED} public logevent_round_start(){ new players[32], num get_players( players, num ) for( new i = 1;i < num; i++) { Changed[i] = 0 }}
Re: Naujoj sistema ir chooseteam
Posted: 2012 Apr 05 18:21
by Pukuotukas951
Dabar leidžia vieną kartą pakeisti komandą, o daugiau išvis neleidžia, man reikia kaip default, pvz.:
Aš būnu T spaudžiu, kad perkeltų į CT tada mane nuždo ir kol būnu negyvas neleidžia keisti komandos kol į ją nepapuoliau arba tui praeiti 1 round.
Re: Naujoj sistema ir chooseteam
Posted: 2012 Apr 05 20:42
by Fly3r
Taigi kam jūs kuriat masyvą?
Kuriat vieną kintamąjį ir pagal hleV pamoką tikrinate su bitų operacijomis.
