Dynamisches Sms System

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 bin gerade bei meinem sms system und komme da nicht weiter da ich nicht alle Sms sehen kann im Dialog nur wieso normalerweise müsste ich alle Sms im Dialog mit dem Absender stehen haben hier mal der stock:stock Sms(playerid)
    {
    new mysql[60];
    new Nama[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Nama,sizeof(Nama));
    format(mysql, sizeof (mysql), "SELECT Sender FROM sms WHERE Empfänger = '%s'",Nama);
    mysql_query(mysql);
    mysql_store_result();
    new Get[128];
    while(mysql_fetch_row(Get))
    {
    new str[64];
    new string[640];
    format(str,sizeof(str),"Neue SMS Absender:%s.\n",Get);
    format(string,sizeof(string),"%s%s\r\n",string,Get);
    SendClientMessage(playerid,Gelb,Get);
    }
    ShowPlayerDialog(playerid,DIALOG_SMS,DIALOG_STYLE_LIST,"Sms",Get,"Antworten","Schließen");
    return 1;
    }


    hoffe mir kann jemand helfen....



    MFG janpplayer

  • Okay super es geht mein dummert fehler wie kann ich jetzt unter OnDialogResponse abfragen auf welche sms der Player geklickt mit dem absender also das ich darüber einen neuen dialog erhalte und er antworten kann ?



    also wie kriege ich jetzt abgefragt welches listitem welchen text hatte und das ist ja der Absender und dann will ich den Inhalt über den Absender abfragen.


    hier mal mein versuch der aber leider nicht geht.:if(dialogid == DIALOG_SMS)
    {
    if(response)
    {
    new listit[32];
    format(listit,sizeof(listit),"%s",listitem);
    new Inhalt[128];
    new str[32];
    format(str,sizeof(str),"Sms von %s.",listitem);
    format(Inhalt,sizeof(Inhalt),"%s hat geschrieben: %s",listitem,mysql_GetString("sms","Inhalt","Absender",listit));
    ShowPlayerDialog(playerid,DIALOG_SMSANTWORTEN,DIALOG_STYLE_INPUT,str,Inhalt,"Absenden","Abbrechen");
    }
    }



    // edit geht jetzt andere frage
    // edit 2: text hinzugefügt
    mFG janpplayer

    2 Mal editiert, zuletzt von janpplayer ()

  • Ich hab da ne Idee, aber die ist verdammt schwer zu erklären :D
    Ich hab so ein Laptop System, das ähnelt deinem SMS-System.
    Also es gibt ja dann mehrere Listitems.
    Und dann musst du eben eine Variable, ich nenn sie mal 'counter' erstellen.
    Und dann lässt du ne For-Schleife durchlaufen, die Prüft, ob der Empfänger der gewünschte Spieler, also 'playerid', ist.
    Wenn das so ist dann prüfst du, ob counter den Wert von listitem hat. Wenns so ist, führst du den Code aus und lädst mit dem 'i' aus der For-Schleife die Daten aus dem Array mit den SMS Daten oder aus der MySQL Tabelle.
    Und am ende der if-abfrage if(listitem == counter) machst du ganz wichtig ein return 1; hin.
    Nach der if-abfrage machst du dann ein counter++; hin, damit sich counter um 1 erhöht.
    Weil, wenn du ne Schleife durch alls SMS laufen lässt, kommt ja listitem 1 zu erst und wenn du die Schleife wieder durchlaufen lässt ist listitem 1 ja wieder listitem 1.
    Ja ich weiß ist schwer, dazu kommt ich kann schlecht erklären :D
    Vllt verstehst du es ja ^^

  • kann d mir das vll mal jemand erstellen mein stock ist ja oben


    und dann hier halt noch das von OnPlayerDialog: if(dialogid == DIALOG_SMS)
    {
    if(response)
    {
    new listit[32];
    format(listit,sizeof(listit),"%s",listitem);
    new Inhalt[128];
    new str[32];
    format(str,sizeof(str),"Sms von %s.",listitem);
    format(Inhalt,sizeof(Inhalt),"%s hat geschrieben: %s",listitem,mysql_GetString("sms","Inhalt","Absender",listit));
    ShowPlayerDialog(playerid,DIALOG_SMSANTWORTEN,DIALOG_STYLE_INPUT,str,Inhalt,"Absenden","Abbrechen");
    }
    }


    //edit algemein formuliert

    Einmal editiert, zuletzt von janpplayer ()