Wanted Information im Textdraw

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
  • Aloha und Gute Nacht.


    Ich habe eine wahrscheinlich kleinere Frage für euch, doch eine große für mein Gehirn ^^
    Da ich nicht möchte das die ganzen Wanted vergaben im Chat rum stehen, da dies nur gespamme gibt wollte ich es in einem Textdraw speichern.


    Das Prinzip soll so gehen:


    Ein Polizist gibt jemand ein Wanted, dann erscheint ganz oben im Textdraw die Nachricht:
    %s hat ein Verbrechen begangen: %s. Anzahl: %i | Zeuge: %s. (Bloß halt mit Name Grund Anzahl versteht sich)


    Diese Nachricht bleibt ganz oben bis ! - noch jemand ein Wanted bekommt, dann soll die erste Nachricht eine Zeile nach unten versetzt werden und die neue ganz oben.


    Dann bekommt wieder jemand ein Wanted, dann gehen beide Nachrichten wieder eine Zeile nach unten, so..


    Dann haben wir im Textdraw 3 Nachrichten bzw 3 begangene Verbrechen.. Kommt jetzt eine neue dazu wird die letzte gelöscht und die anderen wieder nach unten versetzt so das maximal nur 3 Verbrechen im Texdraw sind :)


    Ich hoffe ich hab mich einigermaßen verständlich ausgedrückt :D Hier einmal mein momentaner befehl damit man sich mein System aneignen kann;




    Hier mal ein kleines Bild meines Textdraws


    Hoffe auf beispiele oder Hilfe :)



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Mahlzeit ENEF,


    du brauchst lediglich 4 globale Strings & 1ne Zählervariable.
    Das macht zusammen 4 Zählerabfragen(0,1,2,3) & 3x Zähler+1
    Musst natürlich dann auch immer den alten TXD hiden & bei der Abfrage ob bereits 3 im Textdraw stehen die strings neu umformatieren.
    Das wars.


    "(Bloß halt mit Name Grund Anzahl versteht sich)"


    Was verstehst du daran genau nicht?
    - Den Namen kriegst du per GetPlayerName
    - Den Grund kannst du per inputtext entnehmen, dafür musst du den string in einer variable abspeichern und ausgeben - jenachdem wie du es gemacht hast.
    - Den Anzahl-INT entnimmst du genauso wie den String, nur das du ihn nicht formatieren musst sondern direkt speichern kannst.



    Mit freundlichen Grüßen,
    KleineHilfe

    3 Mal editiert, zuletzt von KleineHilfe ()

  • Das mit Name Grund und Anzahl versteh ich sorry hab mich falsch ausgedrückt sollte nur nicht unübersichtlich anhand des Beispiels werden


    Kannst du mir ein Beispiel mit pwn Code machen daran versteh ich das dann besser wenn es keine Umstände für dich bereitet :)
    Vielen Dank



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Ich besitze leider kein PAWNO da ich auch kein GTA SA habe.
    Allerdings sollte dieser Code an sich einwandfrei funktionieren und dir als Beispiel dienen.
    Konnte es mit dem Editor leider nicht gescheit einrücken, tut mir leid.
    Beispiel ist nun aus nem CMD & String zusammen gesetzt, denke mal der rest erklärt sich von selbst.


    Bei Fragen oder Problemen beim umschreiben auf TXD's einfach nochmal melden.




    • new vari, str[128], str2[128],str4[128], str5[128],input[10];
    • ocmd:test(playerid, params[])
    • {
    • if (sscanf(params, "s", input)) return SendClientMessage(playerid, -1, "XXX");
    • if (vari == 0)
    • {
    • format(str4,sizeof(str4), "blabla %s", input);
    • SendClientMessage(playerid,-1,str4); // Frist Text
    • vari++;
    • return 1;
    • }
    • if (vari == 1)
    • {
    • format(str2,sizeof(str2), "blabla %s", input);
    • SendClientMessage(playerid,-1,str2); //New sec text
    • SendClientMessage(playerid,-1,str4); // Old first text
    • vari++;
    • return 1;
    • }
    • if (vari == 2)
    • {
    • format(str5,sizeof(str5), "blabla %s", input);
    • SendClientMessage(playerid,-1,str5); //New third text
    • SendClientMessage(playerid,-1,str2); //Old sec text
    • SendClientMessage(playerid,-1,str4); //Old first text
    • vari++;
    • return 1;
    • }
    • if (vari == 3)
    • {
    • format(str,sizeof(str), "blabla %s", input);
    • SendClientMessage(playerid,-1,str); //new first text
    • SendClientMessage(playerid,-1,str5); // old first text
    • SendClientMessage(playerid,-1,str2); //old second text
    • format(str2,sizeof(str2), "%s", str5); //Set format old second = next third text
    • format(str5,sizeof(str5), "%s", str); //Set format old new input = next second text
    • }
    • return 1;
    • }


    Mit freundlichen Grüßen,
    Kleine Hilfe

    2 Mal editiert, zuletzt von KleineHilfe ()

  • Sorry leute, der Fehler ist doch nicht gelöst :/


    Kurz nochmal zu meinem Problem:





    Der Command:


    Ich bin auf jede Hilfe angewiesen :D


    danke im vorraus :)



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

    2 Mal editiert, zuletzt von ENEF ()

  • 8| man kann es schwer erkennen wo der Fehler liegt du müsstest mal dein Text bearbeiten und es übersichtlicher machen, dann kann man es besser erkennen und es würde dann einige Leute weiterhelfen dein Problem zu finden.


    //Edit
    Sry, habs übersehen

    • new vari, str[128], str2[128],str4[128], str5[128],input[14];
      ocmd:test(playerid, params[])
      {
      if (sscanf(params, "s", input)) return SendClientMessage(playerid, 0xFF0000AA, "ERROR");
      if (vari == 0)
      {
      format(str4,sizeof(str4), "blabla %s", input);
      PlayerTextDrawShow(playerid, TextInformation[playerid]);
      PlayerTextDrawShow(playerid, TextInformation1[playerid]);
      PlayerTextDrawShow(playerid, TextInformation2[playerid]);
      PlayerTextDrawSetString(playerid, TextInformation[playerid], str4);
      vari++;
      return 1;
      }
      if (vari == 1)
      {
      format(str2,sizeof(str2), "blabla %s", input);
      PlayerTextDrawSetString(playerid, TextInformation[playerid], str2);
      PlayerTextDrawSetString(playerid, TextInformation1[playerid], str4);
      vari++;
      return 1;
      }
      if (vari == 2)
      {
      format(str5,sizeof(str5), "blabla %s", input);
      PlayerTextDrawSetString(playerid, TextInformation[playerid], str5);
      PlayerTextDrawSetString(playerid, TextInformation1[playerid], str2);
      PlayerTextDrawSetString(playerid, TextInformation2[playerid], str4);
      vari++;
      return 1;
      }
      if (vari == 3)
      {
      format(str,sizeof(str), "blabla %s", input);
      PlayerTextDrawSetString(playerid, TextInformation[playerid], str);
      PlayerTextDrawSetString(playerid, TextInformation1[playerid], str5);
      PlayerTextDrawSetString(playerid, TextInformation2[playerid], str2);
      str2 = str5;
      str5 = str;
      return 1;
      }
      return 1;
      }




    Siehe PM für unzensierte TextDraw's.


    //Edit
    Code angepasst,
    @ENEFs Problem ist gelöst.

    Einmal editiert, zuletzt von KleineHilfe ()

  • Guten Tag, habe leider gerade gemerkt das die Wantedinformation nur für mich angezeigt wird und nicht für andere Polizisten.
    Habe den Fehler schnell gefunden(Da nur bei dem jenigen der die Wanteds vergibt die Textdraws geändert bzw angezeigt werden)
    Habe dafür eine Funktion erstellt bzw versucht.


    Der Command sieht folgt aus:


    Irgendwie geht es für mich weiterhin top, doch für andere Polizisten geht es manchmal garnicht und manchmal geht es aber die Reihenfolge ist ziemlich anders. Kleiner denkanstoß sollte genügen


    Mit freundlichen Grüßen



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Da deine TextDraw's nicht individuell sind, kannst du sie global erstellen und laufen lassen und nicht pro Spieler. Somit hat letztendlich jeder Spieler dasselbe TextDraw und nicht für jeden ein eigenes.
    Zusammengefasst, benutz globale TextDraw's dann funktionierts.
    lg, KleineHilfe :)

    KleineHilfe 2.0

    Einmal editiert, zuletzt von YaBroo ()