[FRAGE] Chat Radius Farbe je nach Entfernung ändern

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
  • Hey Breadfish,
    ich habe ein Chat Radius gemacht. Jedoch wenn ich was in den Chat schreibe steht da: Malte sagt: ..... immer in weisser Schrift.
    Wie kann ich das machen das nur Leute die z.B 5 Meter von mir entfernt stehen das so in weiss sehen und alle anderen die z.B weiter als 5 Meter weg stehen das dann in hellgrau angezeigt bekommen?
    Man sollte den Chat nach 10 Metern garnicht mehr lesen können.
    MFG


    Hier der bisherige Chat:



    new string[128]; format(string,128,"%s sagt: %s",SpielerName(playerid),text); for(new i = 0;i<MAX_PLAYERS;i++) { new Float:X,Float:Y,Float:Z; GetPlayerPos(playerid,X,Y,Z); if(IsPlayerInRangeOfPoint(playerid,10.0,X,Y,Z)) { SendClientMessage(i,WEISS,string); return 0; } }

  • Kleines Beispiel unter OnPlayerText
    new string [148];
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string,sizeof(string), "{006AFF}%s {FFFFFF} sagt:%s",pName,text);
    Hier wäre der Name zum Beispiel blau und die Nachricht weiss.

  • Sorry aber ich meine das anderes.
    Der Name und die Nachricht soll gleichfarbig sein.
    Es soll nur für Spieler die in meiner Nähe sind in weiss angezeigt werden(Name+Text)
    Und für Spieler die weiter als z.B 5 Meter von mir weg sind sollen dann das in hellgrau bekommen(Name+Text)
    Wie mach ich das mit den Range Sachen?^^
    HAT KEINER EINE IDEE?

    Einmal editiert, zuletzt von Malte_W ()

  • Bei OnPlayerText


    new string[128];
    format(string, sizeof(string), "%s: %s", PlayerName(playerid), text);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid, x, y, z);
    if(IsPlayerInRangeOfPoint(i, 5.0, x, y, z))
    {
    SendClientMessage(i, 0xFFFFFFFF, string);
    return 0;
    }
    else if(IsPlayerInRangeOfPoint(i, 10.0, x, y, z)
    {
    SendClientMessage(i, 0xB4B4B4FF, string);
    return 0
    }
    }


    und irgendwo ins Script , ausserhalb eines Callbacks:


    stock PlayerName(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    return name;
    }