SELFMADE Normalen Chat entfernen? und /achat

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
  • Heyho ich arbeite immoment an einem Script
    und ich habe immer noch diesen Normalen chat wo die namen farbig sind und jeder sieht was der andere schreibt....
    Wollte mal fragen wie man das entfernt und das nur noch jemand denn chat sieht wenn jemand in der nähe ist halt der normale RL-Server Chat :
    und dann noch einen Admin chat der mit /achat geht!

  • Wenn du das machen musst brauchst du eine Funktion, die immer andersfarbig sendet.
    Ich empfehle dir es jetzt nur EINfarbig zu machen, und bis dein Selfmade fertig ist wirst du sehr viel lernen und da wirst du es auch schaffen soeine funktion zu machen.
    Ich würde es jetzt nur mit IsPlayerInRangeOfPoint machen ^^


    public OnPlayerText(playerid, text[])
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerInRangeOfPoint(i,60.0,x,y,z)
    {
    new string[256];
    format(string,sizeof(string),"%s",text);
    SendClientMessage(i,COLOR_WHITE,string);
    }
    }
    return 0;
    }


    Ahja, "return 0" dient dazu, damit der farbige Text nicht gesendet wird: Unter OnPlayerText darfst du NIEMALS einen return 1 setzen, sonst sendet es die Message an alle ;)


    PS.: In meiner Include spriTe (Showroom) gibts eine Funktion, die heißt "SendDistancedClientMessage", damit kannst du ruhig arbeiten ;D

  • Ersmal danke :) und nochmals danke für die nette erklärung hinten dran :)

  • ocmd:achat(p,prm[])
    {
    new str[2][128];
    if(sscanf(prm,"s",str[0]))return SendClientMessage(p,0xFFFFFFFF,"/achat [text]");
    GetPlayerName(p,str[1],MAX_PLAYER_NAME);
    format(str[0],128,"[[ %s %s: %s ]]",(IsPlayerAdmin(p)?("Admin"):("User")),str[1],str[0]);
    for(new i;i<MAX_PLAYERS;i++)if(IsPlayerAdmin(i))SendClientMessage(i,0xFFFFFFFF,str[0]);
    return 1;
    }