Array Problem

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


    Ich habe mir ein Array gemacht, wo ich den Radionamen und dann die RadioURL hinterlegt habe.
    Nun möchte ich ein Dialog erstellen lassen, welcher mir die Namen aus dem Array anzeigen lässt.
    Das ganze habe ich so gemacht:



    new RadioList[7][2] =
    {
    {"Technobase.fm","http://dsl.tb-stream.net"},
    {"Housetime.fm","http://mp3.ht-stream.net"},
    {"Trancebase.fm","http://mp3.trb-stream.net"},
    {"Hardbase.fm","http://mp3.hb-stream.net"},
    {"Coretime.fm","http://mp3.ct-stream.net"},
    {"iLoveRadio","http://www.iloveradio.de//listen.m3u"},
    {"iLoveDance","http://87.230.53.70/iloveradio2.mp3"}
    };


    ocmd:radio(playerid, params[])
    {
    new liste[1024];
    for(new i = 0; i < sizeof(RadioList)+1; i++)
    {
    format(liste,sizeof(liste),"%s%s\n",liste,RadioList[i][1]);
    }
    ShowPlayerDialog(playerid, RADIO_DIALOG, DIALOG_STYLE_LIST, "PlanetReallife - Radiosystem", liste, "Auswählen","Abbrechen");
    return 1;
    }


    Leider bekomme ich aber folgenden Error:
    error 018: initialization data exceeds declared size


    Wie bekomme ich den denn weg?

  • Habe es nun so:


    new RadioList[10][2] =
    {
    {"Technobase.fm","http://dsl.tb-stream.net"},
    {"Housetime.fm","http://mp3.ht-stream.net"},
    {"Trancebase.fm","http://mp3.trb-stream.net"},
    {"Hardbase.fm","http://mp3.hb-stream.net"},
    {"Coretime.fm","http://mp3.ct-stream.net"},
    {"iLoveRadio","http://www.iloveradio.de//listen.m3u"},
    {"iLoveDance","http://87.230.53.70/iloveradio2.mp3"}
    };


    Doch leider mit dem selben Fehler

  • new RadioList[7][50] =
    {
    {"Technobase.fm","http://dsl.tb-stream.net"},
    {"Housetime.fm","http://mp3.ht-stream.net"},
    {"Trancebase.fm","http://mp3.trb-stream.net"},
    {"Hardbase.fm","http://mp3.hb-stream.net"},
    {"Coretime.fm","http://mp3.ct-stream.net"},
    {"iLoveRadio","http://www.iloveradio.de//listen.m3u"},
    {"iLoveDance","http://87.230.53.70/iloveradio2.mp3"}
    };
    ocmd:radio(playerid)
    {
    new liste[100];
    for(new i = 0; i < sizeof(RadioList)+1; i++)
    {
    format(liste,sizeof(liste),"%s\n",RadioList[i]);
    }
    ShowPlayerDialog(playerid, RADIO_DIALOG, DIALOG_STYLE_LIST, "PlanetReallife - Radiosystem", liste, "Auswählen","Abbrechen");
    return 1;
    }


    Probier das mal
    /e

    KleineHilfe 2.0

  • Oh Leute, da tuen ja einem die Augen weh bei euren "Lösungsvorschlägen" !


    Das ist totaler Müll den ihr dahin schreibt, wenn ihr es nicht wisst, dann lasst es doch lieber :pinch:


    Hier, so musst du das machen:


    //Die Variable
    new RadioList[][][] = {
    {"Technobase.fm","http://dsl.tb-stream.net"},
    {"Housetime.fm","http://mp3.ht-stream.net"},
    {"Trancebase.fm","http://mp3.trb-stream.net"},
    {"Hardbase.fm","http://mp3.hb-stream.net"},
    {"Coretime.fm","http://mp3.ct-stream.net"},
    {"iLoveRadio","http://www.iloveradio.de//listen.m3u"},
    {"iLoveDance","http://87.230.53.70/iloveradio2.mp3"}
    };


    und hier der Command:


    ocmd:radio(playerid) {
    new liste[100],buffer[32];
    for(new i; i<sizeof(RadioList); i++) {
    format(buffer,32,"%s\n",RadioList[i][0]);
    strins(liste,buffer,strlen(liste),100);
    }
    ShowPlayerDialog(playerid, RADIO_DIALOG, DIALOG_STYLE_LIST, "PlanetReallife - Radiosystem", liste, "Auswählen","Abbrechen");
    return 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

    Einmal editiert, zuletzt von Kaliber ()

  • Danke Kaliber! Nun zeigt er den Dialog an, aber spielt leider den Stream nicht ab.


    if(dialogid == RADIO_DIALOG)
    {
    if(response == 1)
    {
    new i = listitem;
    new text[512];
    format(text,sizeof(text),"[Radio] Du hörst nun: %s", RadioList[i][0]);
    SendClientMessage(playerid,FARBE_GELB,text);
    PlayAudioStreamForPlayer(playerid, RadioList[i][1]);
    }
    return 1;
    }


    Er versucht z.B. bei Hardbase.fm folgenden Stream abzuspielen:


    Audio stream: ardbase.fm

  • new i = listitem+1;
    new text[512];
    format(text,sizeof(text),"[Radio] Du hörst nun: %s", RadioList[i][0]);
    SendClientMessage(playerid,FARBE_GELB,text);
    PlayAudioStreamForPlayer(playerid, RadioList[i][1]);


    Ups, habe da was vergessen, schreibe die Variable so:


    new RadioList[][][] = {
    {"Technobase.fm","http://dsl.tb-stream.net"},
    {"Housetime.fm","http://mp3.ht-stream.net"},
    {"Trancebase.fm","http://mp3.trb-stream.net"},
    {"Hardbase.fm","http://mp3.hb-stream.net"},
    {"Coretime.fm","http://mp3.ct-stream.net"},
    {"iLoveRadio","http://www.iloveradio.de//listen.m3u"},
    {"iLoveDance","http://87.230.53.70/iloveradio2.mp3"}
    };


    Dann geht es ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S