Frage zu der Funktion "GameTextForPlayer"

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


    So, ich habe eine Frage zu GameTextForPlayer ( http://wiki.sa-mp.com/wiki/GameTextForPlayer ) .
    Muss ich den String vorher definieren und dann per format umwandeln ? Ich bin mir da nicht ganz sicher, da im alten System der Text direkt in die GameTextForPLayer geschrieben wurde. Das verwirt mich deshalb.


    Irgendwie sah das so aus :



    public IsPlayerAtEnterExit(playerid)
    {
    for(new i = 0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInRangeOfPoint(i, 1.0, gPickKoords[0][0], gPickKoords[0][1], gPickKoords[0][2]))
    {
    GameTextForPlayer(i, "~r~Los Santos Police Department~n~~w~Betreten: ~g~/enter", 4000, 5);
    return 1;
    }
    if(IsPlayerInRangeOfPoint(i, 1.0, gPickKoords[1][0], gPickKoords[1][1], gPickKoords[1][2]))
    {
    GameTextForPlayer(i, "Verlassen: ~r~/exit", 4000, 5);
    return 1;
    }
    if(IsPlayerInRangeOfPoint(i, 1.0, gPickKoords[2][0], gPickKoords[2][1], gPickKoords[2][2]))
    {
    GameTextForPlayer(i, "~r~Rathaus~n~~w~Betreten: ~g~/enter", 4000, 5);
    return 1;
    }
    if(IsPlayerInRangeOfPoint(i, 1.0, gPickKoords[3][0], gPickKoords[3][1], gPickKoords[3][2]))
    {
    GameTextForPlayer(playerid, "Verlassen: ~r~/exit", 4000, 5);
    return 1;
    }
    if(IsPlayerInRangeOfPoint(i, 1.0, gPickKoords[4][0], gPickKoords[4][1], gPickKoords[4][2]))
    {
    GameTextForPlayer(i, "~r~Admin Base~n~~w~Betreten: ~g~/enter", 4000, 5);
    return 1;
    }
    }
    return 0;
    }




    Wie kann ich so etwas scripten, ohne den String zu formatieren, den im Wike steht es anderst und ich bekomme sonst auch Fehlermeldungen.
    MfG dUDA

  • Kommt drauf an, wenn du nur einen Text haben willst, dann geht das so wie du es geschrieben hast, aber wenn du einen dynamischen Text haben, sprich der für einige User anders ist, z.B.


    Herzlich WillkommenGrex
    dann muss das ganze in einen String, wenn es aber heißt "Herzlich willkommen", dann nicht.

  • Kannst beides verwenden :D Entweder per format oda direkt den text hineinschreiben. Das mit dem Format macht man eig aber nur um noch andere strings un variablen oda sonstiges in das format per integer einzufügen ;)


    MFG, Robdeflop®


    EDIT: Grex war schneller xD

  • Also ist im Wike-Beispiel das Format nur da,weil die Model/Car-ID ausgelesen wird ?
    Ich möchte zB einfach schreiben:


    Los Santos Police Department
    Betreten: /enter
    (Das mit dem Zeilenumbruch ist klar).


    Wofür steht das ? Muss ich bei meinem System auch so etwas einbauen. Ich bin am Punkt X und Meldung Y soll erscheinen.
    for(new i = 0; i<MAX_PLAYERS; i++)

  • Zitat

    Also ist im Wike-Beispiel das Format nur da,weil die Model/Car-ID ausgelesen wird ?


    Ja :D


    Zitat

    Ich möchte zB einfach schreiben:


    Los Santos Police Department
    Betreten: /enter
    (Das mit dem Zeilenumbruch ist klar).


    Dafür brauchst du keinen format ;)


    Zitat

    Wofür steht das ? Muss ich bei meinem System auch so etwas einbauen. Ich bin am Punkt X und Meldung Y soll erscheinen.


    for(new i = 0; i<MAX_PLAYERS; i++)


    Das ist eine schleife. MAX_PLAYERS is nix anderes als einen, wert, ich glaub der is 500, also die maximale anzahl an spielern die auf einem server gleichzeitig sein kann. Mit so einer schleife kann man alle playerid´s von 0 bis 499(?) durchlaufen lassen xD Ich hoff ich hab mich klar ausgedrückt :)


    MFG, Robdeflop®

  • Hmm..ok


    Kann ich bei dem Beispiel:



    if(IsPlayerInRangeOfPoint(i, 1.0, gPickKoords[2][0], gPickKoords[2][1], gPickKoords[2][2]))
    {
    GameTextForPlayer(i, "~r~Garage~n~~w~Betreten: ~g~/enter", 4000, 5);
    return 1;
    }



    Das "i" durch playerid ersetzen und dann oben die Schleife weglassen ?


    MfG dUDA

  • Ja aber nur wenn playerid definiert is xD Welche funktion denn?


    MFG, Robdelfop®


    EDIT: Wenn du das in die Funktio public IsPlayerAtEnterExit(playerid) reinmachen willst, und playerid auch richtig ausgegeben wird, dann kannst du die schleife weglassen un das i durch playerid verwenden :)


    MFG, Robdeflop®

    Einmal editiert, zuletzt von Robdeflop ()