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...
Kartais ne:
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.
