Kas antrą round
Kas antrą round
ž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?
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?
- aaarnas
- Vyr. diskusijų administratorius
- Posts: 3891
- Joined: 2010 Aug 31 13:21
- Skype: fiarno
- Contact:
Re: Kas antrą round
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}
Palikau CS pasaulį ;/ . Nebepasiekiamas.
Re: Kas antrą round
neveikia - išvis čia nelogiškas kodasaaarnas 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}
Re: Kas antrą round
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
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
Deja, neturiu laiko 

- aaarnas
- Vyr. diskusijų administratorius
- Posts: 3891
- Joined: 2010 Aug 31 13:21
- Skype: fiarno
- Contact:
Re: Kas antrą round
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.
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.
Palikau CS pasaulį ;/ . Nebepasiekiamas.
-
- Gana aktyvus vartotojas
- Posts: 421
- Joined: 2011 Aug 13 11:12
- Skype: pksoldierlt
- Location: ATOSTOGOSE
Re: Kas antrą round
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]-- } }}
ISVYKES
Re: Kas antrą round
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... ?InvIs wrote:Code: Select all
#define ITEM_COUNT 3 // Priklauso kiek meniu punktųnew Itemas[33][ITEM_COUNT]
Meniu pasirinkimeCode: 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).}
Manau optimaliau galima, bet čia ant greitoCode: Select all
public logevent_round_start(){ for(new i = 1; i < 32; i++) { for(new a = 0; a < ITEM_COUNT; a++) { Itemas[i][a]-- } }}
-
- Gana aktyvus vartotojas
- Posts: 421
- Joined: 2011 Aug 13 11:12
- Skype: pksoldierlt
- Location: ATOSTOGOSE
Re: Kas antrą round
Č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;}
ISVYKES
Who is online
Users browsing this forum: No registered users and 3 guests