Ez a baj, hogy ez a nehéz. (vagymi)
Egyszerûbben úgy is megoldhatnád, hogy lekérdezed a zenék nevét, kiadod egy dialogba, egy stringbe, és amit a játékos kiválaszt, azt olvasod be kiválasztás után, és játszod le,. így elkerülve a string miatt kialakuló darabolódást
Valahogy így (nemsimerem a dilfe-t, ezért marad a dini :whistle:)
dialog kiírása
new string[512],
zene[16];
for(new i = 0; i < 100; i++) {
format(zene, sizeof(zene), \"NAME%02d\", i); //0-tól kezdve formázza
if(!dini_Isset(fájl, zene)) break; //ha nem létezik ez a szám, magyarul elérte a maxot, akkor megállítja a ciklust
format(string, sizeof(string), \"%s\\n%s\", string, dini_Get(fájl, zene)); //formázza
}
ShowPlayerDialog(playerid, 1234, DIALOG_STYLE_LIST, \"asd\", string, \"1\", \"2\");
ondilaogresponse
if(dialogid == 1234) {
if(!response) return 1;
new string[128],
zene[16];
format(zene, sizeof(zene), \"LINK%02d\", listitem); //0-tól számolva beolvassa a listitem értékét a fájlból, amit kiválasztott a listából
format(string, sizeof(string), \"%s\", dini_Get(fájl, zene)); // beolvassa a linket
PlayAudioStreamForPlayer(playerid, string); //elindítja a zenét
}
fájlban
NAME00=rádió0
LINK00=http://0
NAME01=rádió1
LINK01=http://1
NAME02=rádió2
LINK02=http://2
NAME03=rádió3
LINK04=http://3
illetve ez megoldható 1 változóval is fájlon belül, de akkor splitelni, vagy sscanfolni kell.
Én így oldanám meg.