Hallo,
ich wollte ein mehrdimensionaler string machen.
Nur zeigt er ingame "||" ein. Also er lädt kein titel bzw link.
//oben
enum enum_musiclist
{
music_dbid,
music_spielername[MAX_PLAYER_NAME],
music_titel[30][6],//maxlänge 30 max 5xtitel
music_link[60][6]//maxlänge 60 max 5xlinks
};
new musiclist[MAX_PLAYERS][enum_musiclist];
//befehl
ocmd:radio(playerid,params[])
{
new string[256],str[1000],var[61],vari,i;
format(string, sizeof(string),"SELECT * FROM `musiclist` WHERE `dbid` = '%d'", SInfo[playerid][pid]);
self_mysql_queryEx(string);
mysql_store_result();
while(mysql_fetch_row_format(string,"|"))
{
mysql_get_field("dbid",var); musiclist[playerid][music_dbid] = strval(var);
mysql_get_field("Spielername",var); format(musiclist[playerid][music_spielername],MAX_PLAYER_NAME,var);
mysql_get_field("titel",var); format(musiclist[playerid][music_titel][i],30,var);
mysql_get_field("link",var); format(musiclist[playerid][music_link][i],60,var);
mysql_free_result();
if(vari==0)format(str,sizeof str,"%s || %s\n",musiclist[playerid][music_titel][i],musiclist[playerid][music_link][i]);
if(vari!=0)format(str,sizeof str,"%s%s || %s\n",str,musiclist[playerid][music_titel][i],musiclist[playerid][music_link][i]);
i++,vari++;
}
ShowPlayerDialog(playerid,DIALOG_RADIO1,DIALOG_STYLE_LIST,"Radio",str,"Abspielen","Abbrechen");
return 1;
}
//dialogresponse
if(dialogid == DIALOG_RADIO1)
{
if(!response)return 1;
PlayAudioStreamForPlayer(playerid,musiclist[playerid][music_link][listitem]);
SCMEx(playerid,COLOR_GRUN,"Du hörst jetzt %s||%s",musiclist[playerid][music_titel][listitem],musiclist[playerid][music_link][listitem]);
return 1;
}
Im Anhang ist noch wie ich die mysql struktur aussieht.
Mehrdimensionaler String mit Mysql - scriptfehler
- theTV
- Geschlossen
- Erledigt
-
-
Ich bin mir nicht sicher, aber probier mal folgendes:
enum enum_musiclist
{
music_dbid,
music_spielername[MAX_PLAYER_NAME],
music_titel[5][30],//maxlänge 30 max 5xtitel
music_link[5][60]//maxlänge 60 max 5xlinks
};BTW:
Du benötigst doch nur den Titel und den Link, richtig?
Und wenn nicht, erklär mal was das Script macht und wozu dbid bzw. Spielername in der Tabelle aufgeführt ist. -
Ich will so ne art Musik-Playlist machen
//Ungefähr so soll es aussehen:
enum enum_musiclist
{
music_titel[5][30],
music_link[5][60]
};//Bsp.:
music_titel[0] = "Titel1"; music_link[0] = "Link zum Titel1, zum abspielen";
music_titel[1] = "Titel2"; music_link[1] = "Link zum Titel2, zum abspielen";
music_titel[2] = "Titel3"; music_link[2] = "Link zum Titel3, zum abspielen";
music_titel[3] = "Titel4"; music_link[3] = "Link zum Titel4, zum abspielen";
music_titel[4] = "Titel5"; music_link[4] = "Link zum Titel5, zum abspielen";//ich will nicht:
enum enum_musiclist
{
music_titel1[30],
music_titel2[30],
music_titel3[30],
music_titel4[30],
music_titel5[30],
music_link1[60],
music_link2[60],
music_link3[60],
music_link4[60],
music_link5[60]
};
music_titel1 = "Titel1"; music_link1 = "Link zum Titel1, zum abspielen";
music_titel2 = "Titel2"; music_link2 = "Link zum Titel2, zum abspielen";
music_titel3 = "Titel3"; music_link3 = "Link zum Titel3, zum abspielen";
music_titel4 = "Titel4"; music_link4 = "Link zum Titel4, zum abspielen";
music_titel5 = "Titel5"; music_link5 = "Link zum Titel5, zum abspielen"; -
new music_title[5][30], music_link[5][60];
format(music_title[0], 30, "Titel 1");
format(music_link[0], 60, "Link zum Titel 1");Sollte funktionieren.
-
breadfish.de
Hat das Thema geschlossen.