Spieler Protokoll ~ 10 Einträge pro Dialog Seite

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Es gibt Neuigkeiten! Ab sofort könnt ihr dem Donators Club auf Lebenszeit beitreten.
Weitere Infos im Thema Donator's Club ab heute wieder verfügbar!

  • Naja, man es kann aber sicherlich einrichten, das sobald einmal auf Weiter geklickt wurde, der Schließen Button als Zurück benutzt werden kann.

    Kaliber schrieb:

    Ich habe keine Ahnung, was du meinst.
    Wenn ich auf Seite 2 gehe, weil von meinem Account aus, sind mehrer MySQL Seiten vorhanden, dann sagt er beim "!response Button", das nichts mehr vorhanden sei.

    //EDIT
    Einigermaßen geht das jetzt auch.. aber bei der ersten Seite gibt er mir dann aus das nicht mehr da sei & dass kein Eintrag gefunden wurde.
    Gerne kann ich dir es auch mit Bildern verdeutlichen @Kaliber.

    PAWN-Quellcode

    1. case D_PP:
    2. {
    3. new end = GetPVarInt(playerid,"ProtocolEnd");
    4. DeletePVar(playerid,"ProtocolEnd");
    5. if(!response)
    6. {
    7. if(end%10==0)
    8. {
    9. ShowPlayerProtocol(playerid,end-10);
    10. return 1;
    11. }
    12. DeletePVar(playerid,"ProtocolName"), SCM(playerid, COLOR_GREY, "Du hast entweder das Fenster geschlossen oder es sind keine weiteren Einträge vorhanden!");
    13. }
    14. ShowPlayerProtocol(playerid,end+10);
    15. }
    Alles anzeigen
    Рыба лично :rolleyes:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Kasakow ()

  • Kasakow schrieb:

    Naja, man es kann aber sicherlich einrichten, das sobald einmal auf Weiter geklickt wurde, der Schließen Button als Zurück benutzt werden kann.
    Natürlich, ich wollte dich lediglich darauf hinweisen, dass das bei diesem System (deinem Grundsystem) nicht vorhanden war/ist.

    Probiere es mal so (nicht getestet):

    C-Quellcode

    1. case PLAYER_QUERY_PPROTOCOL:
    2. {
    3. if(!rows) return SCM(playerid, COLOR_LESSRED, "Es wurde kein Eintrag gefunden.");
    4. new str[1024] = "Datum\tUhrzeit\tInhalt\n",end = GetPVarInt(playerid,"ProtocolEnd"),btnA[32] = "Schließen",btnB[32]="";
    5. for(new i,date[11],time[9],data[128]; i<rows; i++)
    6. {
    7. cache_get_value_name(i, "Datum", date, sizeof(date)),
    8. cache_get_value_name(i, "Uhrzeit", time, sizeof(time)),
    9. cache_get_value_name(i, "Inhalt", data, sizeof(data));
    10. if(data[0] != EOS) format(str, sizeof str, "%s%s\t%s\t%s\n", str, date, time, data);
    11. }
    12. if(end != 0) btnA = "Zurück",SetPVarInt(playerid,"ProtocolBtnA",1);
    13. if(rows%10 == 0) btnB = "Weiter",SetPVarInt(playerid,"ProtocolBtnB",1);
    14. else if(end != 0) btnB = "Schließen",SetPVarInt(playerid,"ProtocolBtnB",2);
    15. ShowPlayerDialog(playerid, D_PP, DIALOG_STYLE_TABLIST_HEADERS, "Spielerprotokoll", str, btnA, btnB);
    16. }
    17. case D_PP:
    18. {
    19. new end = GetPVarInt(playerid,"ProtocolEnd"),btnA = GetPVarInt(playerid,"ProtocolBtnA"),btnB = GetPVarInt(playerid,"ProtocolBtnB");
    20. DeletePVar(playerid,"ProtocolEnd"),DeletePVar(playerid,"ProtocolBtnA"),DeletePVar(playerid,"ProtocolBtnB");
    21. if(response) //Left Button
    22. {
    23. switch(btnA)
    24. {
    25. case 0: DeletePVar(playerid,"ProtocolName"),SCM(playerid,COLOR_GREY,"Fenster geschlossen.");
    26. case 1: ShowPlayerProtocol(playerid,end-10);
    27. }
    28. }
    29. else
    30. {
    31. switch(btnB)
    32. {
    33. case 1: ShowPlayerProtocol(playerid,end+10);
    34. case 2: DeletePVar(playerid,"ProtocolName"),SCM(playerid,COLOR_GREY,"Fenster geschlossen.");
    35. }
    36. }
    37. }
    Alles anzeigen


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. X/
  • Vielen Dank Kaliber, es funktioniert nun wie gegossen.
    Da ich es aber nicht mag, Copy & Paste zu betreiben & dann bestimmte Sektoren des Codes, nicht zu verstehen, hab ich noch die ein oder andere Frage.

    EOS? End of String?
    Inwiefern lässt sich das irgendwo noch einsetzen.
    Ich meine, könnte ich z.B anstatt if(!strlen(string)) auch if(string[0] == EOS) einsetzen? Und inwiefern macht das dann auch Sinn? Dann könnte ich ja auch if(!string[0]) einsetzen oder nicht?
    Wo lässt sich EOS wo verwenden?

    if(rows%10 == 0) btnB = "Weiter",SetPVarInt(playerid,"ProtocolBtnB",1);
    Damit frage ich ab ob der PVar Zahlenwert kleiner als 10 ist oder wie? So habe ich meinen Code noch nicht gestaltet.

    Auch wenn ich nicht müsste, möchte ich noch was hinzufügen.
    Ich hatte über 1.5 Jahre Pause beim Skripten und bin ein bisschen raus, ich bin gewiss kein Volldepp aber ich muss wieder reinkommen, auch was das ordentliche Arbeiten angeht.-
    Ich werde mal mit nem Zeichenzähler durch meine Strings gehen und schauen wie viel Speicher ich überhaupt benötige.
    Рыба лично :rolleyes:
  • Das % heißt Modulo und gibt den Rest der Division von zwei Zahlen zurück. Also in diesem Falle rows/10 und der Restwert ist das Ergebnis. Damit kommt dann nur der Weiter Button wenn auch mindestens 10 weitere Einträge vorhanden sind.
    Ich helfe zu allen Fragen bezüglich PAWN Scripting gerne weiter.
    Auch im Bereich JavaScript und dort der RageMP API helfe ich gern.

    Konversation: Konversation starten
    Discord: LeonMrBonnie#2251

  • Kasakow schrieb:

    Inwiefern lässt sich das irgendwo noch einsetzen.
    Ich meine, könnte ich z.B anstatt if(!strlen(string)) auch if(string[0] == EOS) einsetzen? Und inwiefern macht das dann auch Sinn? Dann könnte ich ja auch if(!string[0]) einsetzen oder nicht?
    Wo lässt sich EOS wo verwenden?
    Alles korrekt.
    Das prüft quasi nur, ob das erste Zeichen im String das NULL Zeichen ist und wenn dem so ist, dann ist der String leer. Das ist einfach nur etwas schneller und performanter, als strlen zu nutzen :)
    Ein krass ausführliches Tutorial zu Strings gibt es hier: forum.sa-mp.com/showthread.php?t=654471

    Wie LeonMrBonnie schon korrekt erklärt hat ist das % Zeichen der Modulo Operator: de.wikipedia.org/wiki/Division_mit_Rest


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