Dialog Listitem - mit string

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
  • Guten Tach leute


    so ich würde die dialoge so machen das ich nur die aktiven zb "pickups" drin habe


    zurzeit ist es so:


    Command("Pickups")
    {
    if(IsOnServer(playerid))
    {
    Schleife(DynamicP,DateiID)// ersetzt for(new.....
    {format(string, sizeof(string), "%s\nBeschreibung: %s ID: %d\n",string,DynamicP[DateiID][PBeschreibung],DateiID);}
    ShowPlayerDialog(playerid,ALLPICKUPS,DIALOG_STYLE_LIST,"Dynamic Pickups",string,"Weiter","Abbrechen");
    }return 1;
    }


    fast das gleiche probleme habe ich bei meinen sms system:


    Command("smslesen")
    {
    new Text1[30],Text2[30],Text3[30],Text4[30],Text5[30],Text6[30],Text7[30],Text8[30],Text9[30],Text10[30],Text11[30];
    if(SMSSystem[playerid][Gelesen1] == 0) {Text1 = "Nicht Gelesen";} else if(SMSSystem[playerid][Gelesen1] == 1) {Text1 = "Gelesen";}
    if(SMSSystem[playerid][Gelesen2] == 0) {Text2 = "Nicht Gelesen";}else if(SMSSystem[playerid][Gelesen2] == 1) {Text2 = "Gelesen";}
    if(SMSSystem[playerid][Gelesen3] == 0) {Text3 = "Nicht Gelesen";}else if(SMSSystem[playerid][Gelesen3] == 1) {Text3 = "Gelesen";}
    if(SMSSystem[playerid][Gelesen4] == 0) {Text4 = "Nicht Gelesen";}else if(SMSSystem[playerid][Gelesen4] == 1) {Text4 = "Gelesen";}
    if(SMSSystem[playerid][Gelesen5] == 0) {Text5 = "Nicht Gelesen";}else if(SMSSystem[playerid][Gelesen5] == 1) {Text5 = "Gelesen";}
    if(SMSSystem[playerid][Gelesen6] == 0) {Text6 = "Nicht Gelesen";}else if(SMSSystem[playerid][Gelesen6] == 1) {Text6 = "Gelesen";}
    if(SMSSystem[playerid][Gelesen7] == 0) {Text7 = "Nicht Gelesen";}else if(SMSSystem[playerid][Gelesen7] == 1) {Text7 = "Gelesen";}
    if(SMSSystem[playerid][Gelesen8] == 0) {Text8 = "Nicht Gelesen";}else if(SMSSystem[playerid][Gelesen8] == 1) {Text8 = "Gelesen";}
    if(SMSSystem[playerid][Gelesen9] == 0) {Text9 = "Nicht Gelesen";}else if(SMSSystem[playerid][Gelesen9] == 1) {Text9 = "Gelesen";}
    if(SMSSystem[playerid][Gelesen10] == 0) {Text10 = "Nicht Gelesen";}else if(SMSSystem[playerid][Gelesen10] == 1){Text10 = "Gelesen";}
    if(SMSSystem[playerid][Gelesen11] == 0) {Text11 = "Nicht Gelesen";}else if(SMSSystem[playerid][Gelesen11] == 1){Text11 = "Gelesen";}
    new string1[300],string2[300],string3[500];
    if(SMSSystem[playerid][AnzahlSMS] == 0)
    {format(string, sizeof(string), " "); strmid(SMSSystem[playerid][Absender1] , string, 0, strlen(string), 32);}
    if(SMSSystem[playerid][AnzahlSMS] == 1)
    {format(string, sizeof(string), " "); strmid(SMSSystem[playerid][Absender2] , string, 0, strlen(string), 32);}
    if(SMSSystem[playerid][AnzahlSMS] == 2)
    {format(string, sizeof(string), " "); strmid(SMSSystem[playerid][Absender3] , string, 0, strlen(string), 32);Text4 = "_";}
    if(SMSSystem[playerid][AnzahlSMS] == 3)
    {format(string, sizeof(string), " "); strmid(SMSSystem[playerid][Absender4] , string, 0, strlen(string), 32);Text5 = "_";}
    if(SMSSystem[playerid][AnzahlSMS] == 4)
    {format(string, sizeof(string), " "); strmid(SMSSystem[playerid][Absender5] , string, 0, strlen(string), 32);Text6 = "_";}
    if(SMSSystem[playerid][AnzahlSMS] == 5)
    {format(string, sizeof(string), " "); strmid(SMSSystem[playerid][Absender6] , string, 0, strlen(string), 32);Text7 = "_";}
    if(SMSSystem[playerid][AnzahlSMS] == 6)
    {format(string, sizeof(string), " "); strmid(SMSSystem[playerid][Absender7] , string, 0, strlen(string), 32);Text8 = "_";}
    if(SMSSystem[playerid][AnzahlSMS] == 7)
    {format(string, sizeof(string), " "); strmid(SMSSystem[playerid][Absender8] , string, 0, strlen(string), 32);Text9 = "_";}
    if(SMSSystem[playerid][AnzahlSMS] == 8)
    {format(string, sizeof(string), " "); strmid(SMSSystem[playerid][Absender9] , string, 0, strlen(string), 32);Text10 = "_";}
    if(SMSSystem[playerid][AnzahlSMS] == 9)
    format(string, sizeof(string), " "); {strmid(SMSSystem[playerid][Absender10] , string, 0, strlen(string), 32);Text11 = "_";}
    format(string1, sizeof(string1), "%s %s\n%s %s\n%s %s\n%s %s\n%s %s\n",SMSSystem[playerid][Absender1],Text1,SMSSystem[playerid][Absender2],Text2,SMSSystem[playerid][Absender3],Text3,SMSSystem[playerid][Absender4],Text4,SMSSystem[playerid][Absender5],Text5);
    format(string2, sizeof(string2), "%s %s\n%s %s\n%s %s\n%s %s\n%s %s\n",SMSSystem[playerid][Absender6],Text6,SMSSystem[playerid][Absender7],Text7,SMSSystem[playerid][Absender8],Text8,SMSSystem[playerid][Absender9],Text9,SMSSystem[playerid][Absender10],Text10,SMSSystem[playerid][Absender11],Text11);
    format(string3, sizeof(string3), "%s\n%s",string1,string2);
    ShowPlayerDialog(playerid, DIA_READSMS, DIALOG_STYLE_LIST, "SMS SYSTEM",string3, "Auswählen", "Abbrechen");
    return 1;
    }

  • Welches Porblem hast du denn genau?
    Du willst also das deine aktuellen Pickups in einem ListItem Dialog angezeigt werden um sie ein/auszuschalten?
    oder verstehe ich das falsch?
    mfg


    Bewerte mich und meine Transaktionen als Mittelsmann

  • ich möchte nur die pickups anzeigen die wirklich da sind zurzeit werden 15 angezeigt da ich im enum die maximale datei anzahl auf 15 gesetzt habe

  • Schick uns mal bitte den Code vom enum.
    Und wenn du mehr als 15 nutzt aber nichtn alles nutzt vermute ich geht es nicht das nur bestimmte im Dialog angezeigt werden.
    mfg


    Bewerte mich und meine Transaktionen als Mittelsmann

  • Hmm hab gerade ne idee und wenn ich extra in ner datei speichere PickupAnzahl bei der erstellung plus rechnen lasse und das dann abfragen lasse


    for(new ID = 0; ID < sizeof(PickupAnzahl ); ID ++) ? müsste doch gehen

  • nun ja würde schon funktionieren aber was ist wenn ich jetzt 2 Pickups Erstelle und zb das erste pickup lösche ..... dann wird nur das zweite pickup angezeigt das hat ja die Pickup id: 2 ich lass aber die ID herausfinden bei der bearbeitung per pickupid = listitem;


    (


    if(dialogid == ALLPICKUPS)
    {
    if(response)
    {
    SavePickupID[playerid] = listitem;
    ShowPlayerDialog(playerid, PICKUP_LIST, DIALOG_STYLE_LIST, "Pickup System", "Beschreibung Ändern\nLöschen\nModel Ändern\nPorten\nFarbe Ändern\n", "Auswählen", "Abbrechen");
    }


    }
    )

  • Wenn ich es da richtig lese ist dort kein String drinne.
    Das heißt es wird dir nur das Bearbeiten/Ändern Speichern angezeigt ohne di ID etc..
    Zei uns mal bitte den String und diwe Funktion:
    SavePickupID[playerid] = listitem;

    mfg


    Bewerte mich und meine Transaktionen als Mittelsmann

  • Dort wird nur die id gesetzt abgefragt wird sie in der bearbeitung


    zb löschung:


    if(dialogid == Pickup_Dellet)
    {
    if(response)
    {
    format(string, sizeof(string), "/Pickups/%d.ini", SavePickupID[playerid]);
    dini_Remove(string);
    Delete3DTextLabel(DynamicLabel[SavePickupID[playerid]]);
    DestroyPickup(DynamicPickup[SavePickupID[playerid]]);
    SendClientMessage(playerid,COLOR_GREEN,"Pickup Erfolgreich Gelöscht");
    PickupAnzahl -= 1;


    }
    }

  • Also wenn ich das richtig verstanden habe, dann ist das Problem, dass du die gewählte ID vom Dialog nimmst, was aber nicht funktioniert wenn z.B. das 1. Pickup gelöscht wird weil es dann nichtmehr in der Liste erscheint und somit die 1. ID in der Liste das 2. Pickup wäre?^^

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Genau Haxler anderst kann ich die id ja nicht herauslesen