onplayertext: Texte werden zuoft geschrieben

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
  • hi leute,


    wenn ich inGame etwas schreibe, dann wird es unendlich oft hintereinander in die chatbox geschrieben:
    hier der Code:
    new GradColor[] =
    {
    0xB4B5B7FF,
    0xBFC0C2FF,
    0xCBCCCEFF,
    0xD8D8D8FF,
    0xE3E3E3FF,
    0xF0F0F0FF
    };

    new sendername[MAX_PLAYER_NAME], string[256];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "%s sagt: %s", sendername, text);
    for(new i;i<MAX_PLAYERS;i++)
    {
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid, X,Y,Z);
    if(IsPlayerInRangeOfPoint(playerid, 30.0, X, Y, Z))
    {
    new GradRandom = random(sizeof(GradColor));
    SendMessage(playerid, GradColor[GradRandom], string);
    }
    }


    ich sehe hier keinen Fehler...


    mfg xXganzereuroXx

  • ich schon
    for(new i;i<MAX_PLAYERS;i++)
    {
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(i, X,Y,Z);
    if(IsPlayerInRangeOfPoint(i, 30.0, X, Y, Z))
    {
    new GradRandom = random(sizeof(GradColor));
    SendMessage(i, GradColor[GradRandom], string);
    }
    }

  • Solange 'i' kleiner als MAX_PLAYERS(500) ist (INFO: was man nicht verwenden sollte sondern GetMaxPlayers(); weil die variable höher zählt als nötig.) und er im Festgelegten radius ist wird die message ausgegeben.


    Also die for schleife weg.

  • ich habs jetzt so gemacht:

    for(new i;i<MAX_PLAYERS;i++)
    {
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid, X,Y,Z);
    if(IsPlayerInRangeOfPoint(i, 30.0, X, Y, Z))
    {
    new GradRandom = random(sizeof(GradColor));
    SendMessage(i, GradColor[GradRandom], string);
    }
    }

    und so funktionierts

  • @ Adan:


    GetMaxPlayers returnt nicht wie viele Spieler auf dem server sind, sondern wie hoch die maximale spielerangabe in der server.cfg ist!!! Wenn diese also auf 500 steht, macht es keinen unterschied ;)


    MFG, Robdeflop®

  • Zitat

    GetMaxPlayers returnt nicht wie viele Spieler auf dem server sind

    Und MAX_PLAYERS ist nur 500.


    Wen in der server.cfg bei maxplayers 10 steht und du eine for schleife mit MAX_PLAYERS benutzt ist es doch besser wen man nur GetMaxPlayers(); benutzt.
    Wozu umsonst so hochzählen lassen?


    PS: Adnan mit 2 'n' ^^