listendialog mit dini

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 möchte für mein grundbizsystem alle bizzes über einen listendialog sehen also das dann der name also die art da steht und da neben halt der Besitzer und dann dadrunter das selbe also immer so weiter nur die frage wie ?


    hier frage ich alle bizzes mit ab : for(new i=1;i<MAX_biz;i++) // schleife für alle bizzes


    so ich arbeite mit dini hier mein stock : stock LoadBiz(bizid)
    {
    new pfad[128];
    format(pfad,128,"/biz/%d.txt",bizid);
    if(!fexist(pfad))return 0;
    BizInfo[bizid][biz_x1] = dini_Float(pfad,"x1");
    BizInfo[bizid][biz_y2] = dini_Float(pfad,"y2");
    BizInfo[bizid][biz_z3] = dini_Float(pfad,"z3");
    BizInfo[bizid][biz_preis] = dini_Int(pfad,"preis");
    format(BizInfo[bizid][biz_art],32,"%s",dini_Get(pfad,"Art"));
    format(BizInfo[bizid][biz_besitzer],32,"%s",dini_Get(pfad,"besitzer"));
    new Float:x,Float:y,Float:z;
    x = BizInfo[bizid][biz_x1] = dini_Float(pfad,"x1");
    y = BizInfo[bizid][biz_y2] = dini_Float(pfad,"y2");
    z = BizInfo[bizid][biz_z3] = dini_Float(pfad,"z3");
    new string[128];
    format(string,sizeof(string),"Besitzer: %s\npreis: %i\nArt: %s",BizInfo[bizid][biz_besitzer],BizInfo[bizid][biz_preis],BizInfo[bizid][biz_art]);
    Create3DTextLabel(string,BizBlau,x,y,z,40.0,0);
    BizInfo[bizid][biz_pickup] = CreatePickup(1273 ,23,x,y,z,0); //erstellt ein Pickup an den Hauskoordinaten
    return print("Das Biz wurde erfolgreich geladen");
    }



    wennn irgendwas fehlt ich poste es nach denke es reicht für den dialog



    MFG janpplayer

  • So sollte es gehen:
    new string[256];//Falls nicht alle angezeigt werden den string hier erhöhen
    for(new i=1;i<MAX_biz;i++)
    {
    new string2[84];
    format(string2, sizeof(string2),"Art: %s\tBesitzer: %s\n",BizInfo[i][biz_art],BizInfo[i][biz_besitzer]);
    strcat(string, string2);
    }
    ShowPlayerDialog(playerid,DEINE_DIALOG_ID,DIALOG_STYLE_LIST,"Dein Wunsch Titel",string, "OK","Abbrechen");

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • so danke geht jetzt hab ich noch 2 probs wie mach ich das wenn ich den string größer hab und er größer ist das dann da nicht art: besitzer:
    steht weil ich habe zurzeit z.b 31 bizzes die gibts auch in der liste und der string ist 1024 aber darunter kommen noch mehr wo nur art und besitzer steht also leere felder kann ich das irgendwie machen das nur für die die es auch zurzeit gibt eine reihe in der liste ist?


    und die 2te frage ist wie frag ich ab in welche zeile welches biz ist? damit wenn ich das löschen will ich das auch machen kann nur wenn ich eins lösche geht die reihenfolge ja nicht mehr 1,2,3, sondern wenn ich 2 lösche 1,3,4,5, dadurch geht das nicht mit case oder listitem?


    MFG janpplayer

  • könnte mir das mal jemand erklären


    The Styler wenn mir jemand das erklärt dann kann ich das auch !!!!!


    edit 2 fragen hinzugefügt


    wie kann ich das denn machen das sich der string sich der menge des bizzes anpasst dass wenn ich z.b 31bizzes hab es auch nur 31 reihen in der liste gib und wenn ich dann wieder welche mache das es dann mehr bzw wenieger reihen gibt also ohne das ich den string immer anpassen muss?


    und die 2te frage wie mach ich wen ich 31 bizzes hab und ich die nr.2 lösche dann ist die reihenfolge ja nicht mehr richtig wie mach ich das jetzt das ich das abfrage welches biz das war?


    bitte um hilfe !!!!!


    MFG
    japplayer

    Einmal editiert, zuletzt von janpplayer ()