Page 1 of 1

Klausimas

Posted: 2011 Aug 19 16:16
by InvIs
Hmmm....Tiesiog pasidarė įdomu, taigi klausiu:

Tarkim yra meniu(nesvarbu koks)

1. Pasirinkimas
2. Pasirinkimas
3. Pasirinkimas [1]

Ir va spaudžiant 3pasirinkimą, keičiasi skaičiukas tarp [ ].
Pvz:
Paspaudus kartą bus Pasirinkimas [2], paspaudus dar bus Pasirinkimas [3] ir t.t...Kaip taip padaryti? Nes kolkas moku tik | (a < 1) ? "True" : "False" | . Dėkui, kas padės.

Re: Klausimas

Posted: 2011 Aug 19 18:01
by hleV
Netestavau.

Code: Select all

public MenuHandler(id, menu, item){    if (item == 2)    {        static num; num++;        new access, name[32], callback;         menu_item_getinfo(menu, item, access, data, name, 0, name, charsmax(name), callback);        format(name[strfind(name, "[") + 1], 4, "%d]", num);        menu_item_setname(menu, item, name);    }}

Re: Klausimas

Posted: 2011 Aug 19 22:36
by InvIs
Nezinau, siandien kodo nepabandysiu, bet man rodos ne taip supratai. Ta prasme tarp [ ] gali buti bet koks uzrasas ir su kiekvienu uzrasu butu vis kita funkcija kaip su if, else if, else if, else ir t.t...

Re: Klausimas

Posted: 2011 Aug 20 01:40
by aaarnas
hlev paaiškino kiek sudėtingiau ir optimaliau. Štai ko tau reikia:

Code: Select all

new item[33] public meniu() {        new menu, holder[100],    names[][] = {        "Sk_1",        "Sk_2",        "Sk_3",        "Sk_4",        "Sk_5"    }        formatex(holder, charsmax(holder), "Punktas [%s]", names[item[id]])    menu_additem(menu, item)} public handle() {        if(item == 2) {                if(item[id] < 5) item[id]++        else item[id] = 0    }}

Re: Klausimas

Posted: 2011 Aug 20 10:45
by InvIs
Hmmm...

Code: Select all

new item[id][5]
Kartais ne:

Code: Select all

new item[33][5]

Code: Select all

formatex(holder, charsmax(holder), "Punktas [%s]", names[item[id]])
Nežinau ar tai teisinga, bet kitaip metė errorą, tai names[item[id]] teko padaryti names[item[id][1]]
O šito erroro nesutaisau:

Error ties čia:

Code: Select all

    if(item == 2) {               if(item[id] < 5) item[id]++        else item[id] = 0    }
"Invalid subscript <not an array or too many subscripts>: "item""

Re: Klausimas

Posted: 2011 Aug 20 11:05
by aaarnas
Srry, ten privėliau kažko. Dabar bus gerai.

Re: Klausimas

Posted: 2011 Aug 20 11:16
by InvIs
Vistiek ties čia:

Code: Select all

    if(item == 5)    {            if(item[id] < 5) item[id]++            else item[id] = 0    }
Meta error: "Invalid subscript <not an array or too many subscripts>: "item""

Re: Klausimas

Posted: 2011 Aug 20 21:09
by aaarnas
Uoj.

item ten yra punkto numeris, kurį perduoda meniu.

Na, o kintamąjį kitaip kaip pavadink, nes sutampa kintamųjų vardai.

Re: Klausimas

Posted: 2011 Aug 20 22:21
by InvIs
Mmm, nenoriu įkyrėt, bet galėtum ir kodukais paaiškinti, man čia dar tankus miškas, bet noriu išmokti tokiais "didesniais gabalais", nes žinau, kad sugebėsiu, tiesiog reikia man vieną kartą aiškiai paaiškint. :S: