Kas antrą round

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Spag
Gana aktyvus vartotojas
Posts: 269
Joined: 2012 Dec 31 15:39

Kas antrą round

Post 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?

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: Kas antrą round

Post 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}
Palikau CS pasaulį ;/ . Nebepasiekiamas.

Spag
Gana aktyvus vartotojas
Posts: 269
Joined: 2012 Dec 31 15:39

Re: Kas antrą round

Post 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

newb
Pluginų patvirtintojas
Posts: 1047
Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:

Re: Kas antrą round

Post 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.

Spag
Gana aktyvus vartotojas
Posts: 269
Joined: 2012 Dec 31 15:39

Re: Kas antrą round

Post 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į?

newb
Pluginų patvirtintojas
Posts: 1047
Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:

Re: Kas antrą round

Post by newb »

Deja, neturiu laiko :D

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: Kas antrą round

Post 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.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

InvIs
Gana aktyvus vartotojas
Posts: 421
Joined: 2011 Aug 13 11:12
Skype: pksoldierlt
Location: ATOSTOGOSE

Re: Kas antrą round

Post 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
ISVYKES

Spag
Gana aktyvus vartotojas
Posts: 269
Joined: 2012 Dec 31 15:39

Re: Kas antrą round

Post 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... ?

InvIs
Gana aktyvus vartotojas
Posts: 421
Joined: 2011 Aug 13 11:12
Skype: pksoldierlt
Location: ATOSTOGOSE

Re: Kas antrą round

Post 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;}
ISVYKES

Post Reply

Who is online

Users browsing this forum: No registered users and 4 guests