Page 1 of 3
Kas antrą round
Posted: 2013 May 24 14:07
by Spag
žodžiu susidūriau su problema, kaip padaryt kad iš meniu leistų kas antrą round panaudoti punktą tam tikrą?
Pvz:
meniu:
1. pasirinkimas vienas
2. pasirinkimas antras
3. pasirinkimas trečias
0. iseiti
pasirinkus round pradžioje tarkim 1 punktą, jį kitą round užblokuotų, bet leistų kitus punktus pasirinkti. Parėjus tam roundui kai buvo užblokuotas tas pasirinkimas, jį vėl galėtų pasirinkti.. HOW?
Re: Kas antrą round
Posted: 2013 May 24 22:13
by aaarnas
Kažkas panašaus. Patingėjau ten daugiau žaisti.
Code: Select all
/* Plugin generated by AMXX-Studio */ #include <amxmodx>#include <amxmisc> #define PLUGIN "New Plug-In"#define VERSION "1.0"#define AUTHOR "aaarnas" new selection[33] public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("HLTV", "event_round_start", "a", "1=0", "2=0") register_clcmd("/test", "meniu")} public event_round_start() { arrayset(selection, 0, 33)}public client_putinserver(id) { selection[id] = 0} public menu_disable(id, menu, item) { return ITEM_DISABLED}public meniu(id){ new menu = menu_create("\rMenu top:", "menu_handler") new buffer[100], callback = menu_makecallback("menu_disable") formatex(buffer, charsmax(buffer), "%sPunktas 1", selection[id]==1?"\r":"\w") menu_additem(menu, buffer, "", 0, selection[id]==1?callback:-1) formatex(buffer, charsmax(buffer), "%sPunktas 2", selection[id]==2?"\r":"\w") menu_additem(menu, buffer, "", 0, selection[id]==2?callback:-1) formatex(buffer, charsmax(buffer), "%sPunktas 3", selection[id]==3?"\r":"\w") menu_additem(menu, buffer, "", 0, selection[id]==3?callback:-1) menu_display(id, menu, 0)} public menu_handler(id, menu, item){ if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } /*switch(item) { case 0: { } case 1: { } case 2: { } }*/ selection[id] = item+1 menu_destroy(menu) return PLUGIN_HANDLED}
Re: Kas antrą round
Posted: 2013 May 25 12:38
by Spag
aaarnas wrote:Kažkas panašaus. Patingėjau ten daugiau žaisti.
Code: Select all
/* Plugin generated by AMXX-Studio */ #include <amxmodx>#include <amxmisc> #define PLUGIN "New Plug-In"#define VERSION "1.0"#define AUTHOR "aaarnas" new selection[33] public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("HLTV", "event_round_start", "a", "1=0", "2=0") register_clcmd("/test", "meniu")} public event_round_start() { arrayset(selection, 0, 33)}public client_putinserver(id) { selection[id] = 0} public menu_disable(id, menu, item) { return ITEM_DISABLED}public meniu(id){ new menu = menu_create("\rMenu top:", "menu_handler") new buffer[100], callback = menu_makecallback("menu_disable") formatex(buffer, charsmax(buffer), "%sPunktas 1", selection[id]==1?"\r":"\w") menu_additem(menu, buffer, "", 0, selection[id]==1?callback:-1) formatex(buffer, charsmax(buffer), "%sPunktas 2", selection[id]==2?"\r":"\w") menu_additem(menu, buffer, "", 0, selection[id]==2?callback:-1) formatex(buffer, charsmax(buffer), "%sPunktas 3", selection[id]==3?"\r":"\w") menu_additem(menu, buffer, "", 0, selection[id]==3?callback:-1) menu_display(id, menu, 0)} public menu_handler(id, menu, item){ if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } /*switch(item) { case 0: { } case 1: { } case 2: { } }*/ selection[id] = item+1 menu_destroy(menu) return PLUGIN_HANDLED}
neveikia - išvis čia nelogiškas kodas
Re: Kas antrą round
Posted: 2013 May 25 12:58
by newb
Krc tau reikia tureti 2 mati masyva ([zaidejai][meniu punktai], cia, aisku, jei nori visus meniu punktus blokuot 1 rounda) ir round counteri. Kai zmogus paspaudzia meniu uzdedi jam dabartini raunda / tikrini ar jau praejo 1 roundas po paskutinio paspaudymo.
Re: Kas antrą round
Posted: 2013 May 25 16:52
by Spag
newb wrote:Krc tau reikia tureti 2 mati masyva ([zaidejai][meniu punktai], cia, aisku, jei nori visus meniu punktus blokuot 1 rounda) ir round counteri. Kai zmogus paspaudzia meniu uzdedi jam dabartini raunda / tikrini ar jau praejo 1 roundas po paskutinio paspaudymo.
Galima pavyzdį?
Re: Kas antrą round
Posted: 2013 May 25 17:07
by newb
Deja, neturiu laiko

Re: Kas antrą round
Posted: 2013 May 25 17:47
by aaarnas
Dėl veikimo nežinau, miegodamas rašiau.
Bet nematau, kas ten nelogiško? Tas, kad nėra tiksliai tas, ko tau reikia.
Į kintamąjį išsaugom punktą, kurį žaidėjas pasirinko. Pagal tai galim jį blokuoti. O kada vėl nori leisti rinktis, tai kintamąjį nustatai į 0.
Žinoma jei iškviesi meniu vėl ir pasirinksi punktą, kurį galima, tai kintamasis bus perrašytas. Čia klausimas kaip viskas turi veikti, ar keli variantai gali būti pasirenkami ar tik vienas ir meniu nebebus rodomas.
Nuo to priklauso ir kaip padaryta turi būti.
Re: Kas antrą round
Posted: 2013 May 25 22:46
by InvIs
Code: Select all
#define ITEM_COUNT 3 // Priklauso kiek meniu punktųnew Itemas[33][ITEM_COUNT]
Meniu pasirinkime
Code: Select all
if(!Itemas[id][item_id]){ Itemas[id][item_id] = 2 // Ant kito roundo padarys reikšmę = 1 (Vis dar negalės naudoti). Dar ant kito roundo padarys reikšmę = 0 (Naudoti jau galės).}
Code: Select all
public logevent_round_start(){ for(new i = 1; i < 32; i++) { for(new a = 0; a < ITEM_COUNT; a++) { Itemas[i][a]-- } }}
Manau optimaliau galima, bet čia ant greito
Re: Kas antrą round
Posted: 2013 Jun 01 09:33
by Spag
InvIs wrote:Code: Select all
#define ITEM_COUNT 3 // Priklauso kiek meniu punktųnew Itemas[33][ITEM_COUNT]
Meniu pasirinkime
Code: Select all
if(!Itemas[id][item_id]){ Itemas[id][item_id] = 2 // Ant kito roundo padarys reikšmę = 1 (Vis dar negalės naudoti). Dar ant kito roundo padarys reikšmę = 0 (Naudoti jau galės).}
Code: Select all
public logevent_round_start(){ for(new i = 1; i < 32; i++) { for(new a = 0; a < ITEM_COUNT; a++) { Itemas[i][a]-- } }}
Manau optimaliau galima, bet čia ant greito
Kad či air taip optimaliai manau parašei, kaip dar įmanoma labiau? Ir ta vieta su ItemID nelogiška, nesuprantu, tas Item_ID niekur neregistruotas... ?
Re: Kas antrą round
Posted: 2013 Jun 01 11:43
by InvIs
Čia meniu punkto id. Priklauso kaip tu jį pasivadinęs.
Code: Select all
public menu_handler(id, menu, item){ if(item == MENU_EXIT) { menu_destrou(menu) return PLUGIN_HANDLED; } switch(item) { case 0: Itemas[id][item] = 2 case 1: Itemas[id][item] = 2 case 2: Itemas[id][item] = 2 // Ir t.t. } return PLUGIN_HANDLED;}