Mehrdimensionaler String mit Mysql - scriptfehler

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • 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.

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


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'