Beiträge von Jeffry

    Ok, weißt du was, mache es so, dann sparst du dir die Arbeit mit den ganzen Tags:
    new
    BlockDown = 0,
    BlockUP = 1,
    BlockLeft = 2,
    BlockNews = 3,
    BlockRegBG = 4,
    BlockLogBG = 5,
    BlockReg = 6,
    BlockLog = 7,
    BlockNewsHead = 8,
    TextRegShadow = 9,
    TextReg = 10,
    TextLogShadow = 11,
    TextLog = 12,
    TextNewsShadow = 13,
    TextNews = 14,
    TextNewsBox = 15,
    LogoWelcome = 16,
    LogoWord = 17,
    LogoServerName = 18,
    LogoUnderline = 19,
    SideTextForum = 20,
    SideTextTs3 = 21;
    new Text:Login[22];


    Und:
    for(new i; i < sizeof(Login); i++) TextDrawShowForPlayer(playerid,Login[i]);

    Das musst du hierzu ändern, das hast du vergessen:
    enum tData
    {
    BlockDown,
    BlockUP,
    BlockLeft,
    BlockNews,
    BlockRegBG,
    BlockLogBG,
    BlockReg,
    BlockLog,
    BlockNewsHead,
    TextRegShadow,
    TextReg,
    TextLogShadow,
    TextLog,
    TextNewsShadow,
    TextNews,
    TextNewsBox,
    LogoWelcome,
    LogoWord,
    LogoServerName,
    LogoUnderline,
    SideTextForum,
    SideTextTs3,
    };
    new Text:Login[tData];

    Dann lass dir davor mal die Werte ausgeben:
    printf("Admin: %d / Fraktion: %d", Spieler[playerid][pAdmin], Spieler[playerid][pFraktion]);


    Wenn da 0 und 0 im Server Log steht, dann lädst du die Werte nicht (richtig).

    if(GetTickCount() < Spieler[playerid][pLastSpamCmd][0] && Spieler[playerid][pAdmin] == 0 && Spieler[playerid][pFraktion] == 0)


    So dürfte es dann nur klappen, wenn du weder Admin bist, noch in einer Fraktion.

    Da verlässt man sich einmal auf das englische Forum (da ich nicht zu Hause war) und gleich ist es nichts. X(


    for(new tData:i; i < tData; i++) TextDrawShowForPlayer(playerid,Login[i]);


    Dann bekommst du keine Warnung mehr, selbst getestet.

    Ah, so hast du das. Dann mache es so:


    enum tData
    {
    BlockDown,
    BlockUP,
    BlockLeft,
    BlockNews,
    BlockRegBG,
    BlockLogBG,
    BlockReg,
    BlockLog,
    BlockNewsHead,
    TextRegShadow,
    TextReg,
    TextLogShadow,
    TextLog,
    TextNewsShadow,
    TextNews,
    TextNewsBox,
    LogoWelcome,
    LogoWord,
    LogoServerName,
    LogoUnderline,
    SideTextForum,
    SideTextTs3,
    };
    new Text:Login[tData];


    Spoiler anzeigen
    for(new i; i != _:tData; ++i)TextDrawShowForPlayer(playerid,Login[tData:i]);

    EDIT: Tag Mistach

    Eigentlich musst du das nicht so machen, es reicht ein normales Array, möglicherweise hast du es ja auch so deklariert.
    Versuche:
    for(new i; i < sizeof(Login); ++i)TextDrawShowForPlayer(playerid,Login[i]);


    Ansonsten zeige, wie du "Login" definiert hast.

    Stimmt, da hast du Recht. Da habe ich nicht drauf geschaut.
    Allerdings würde ich es nicht per Timer machen, bzw. bei OnPlayerStateChange, weil das oft unschön aussieht für den Spieler, wenn er erst rein geht, und dann wieder raus geht.


    Ich finde diese Methode am besten:
    RemovePlayerFromVehicle(playerid);
    zu:
    TogglePlayerControllable(playerid, false);
    TogglePlayerControllable(playerid, true);


    Dann kommt man auch nicht mehr rein. Als Alternative dazu, falls das je mal nicht greift (warum auch immer) könnte man die Prüfung dazu noch unter OnPlayerStateChange machen, falls man das will.

    Du musst die Größe das anklickbaren Bereiches mit PlayerTextDrawTextSize anpassen. https://wiki.sa-mp.com/wiki/PlayerTextDrawTextSize Der X Wert ist die Position PLUS die Größe des nach rechts anklickbaren Bereiches. Der Y Wert ist die geschätzte Höhe.


    Angenommen du erstellst dein Textdraw bei X = 120 und Y = 90. Dann machst du den Text "Hallo Welt" da rein. Sagen wir, der Text ist so groß, dass er in etwa über ein Zehntel deines Bildschirmes geht (musst du abschätzen, oder mit einem Lineal abmessen), dann heißt das 640 durch 10, das wäre 64. Somit ist PlayerTextDrawTextSize-X = 120 + 64 = 184.
    Nun misst, bzw. schätzt, du die Höhe des Textdraws, sagen wir mal du bekommst den Text in etwa 20 mal untereinander hin, bis dein Bildschirm von oben nach unten voll damit wäre. Heißt also: 480 durch 20, das gibt 24. Somit wäre PlayerTextDrawTextSize-Y = 24.





    Der Code muss in das Callback https://wiki.sa-mp.com/wiki/OnPlayerClickPlayerTextDraw_DE