Realchat buggt rum.

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.. ich habe habe das problem im realchat..
    es wird trotzdem eine nachricht gesendet, die alle spieler auf dem server lesen können..
    new realchat = 1; //hab ich ganz oben..
    LimitGlobalChatRadius(0);//Habe ich bei OnGameModeInit
    und sie sieht das OnPlayerTExt aus..


    public OnPlayerText(playerid, text[])
    {
    new string[200];
    if (realchat)
    {
    if(pLogged[playerid] == 0)
    {
    return 0;
    }
    }
    if(sD[playerid][pTot] == 1)
    {
    return 0;
    }
    format(string, sizeof(string), "%s sagt: %s", Spielername(playerid), text);
    ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
    return 0;
    }
    return 1;
    }

  • Eines wundert mich: Die Klammerpaare passen nicht.


    Schau mal hier. Habe das mal in Notepad getestet und die erkannten zugehörigen Paare jeweils mit der gleichen Zahl numeriert.
    Die zweite 1 passt da nicht hin. Wundert mich, dass da kein Syntax Error kommt.


    public OnPlayerText(playerid, text[])
    { //1
    new string[200];
    if (realchat)
    { //2
    if(pLogged[playerid] == 0)
    { //3
    return 0;
    } //3
    } //2
    if(sD[playerid][pTot] == 1)
    { //4
    return 0;
    } //4
    format(string, sizeof(string), "%s sagt: %s", Spielername(playerid), text);
    ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
    return 0;
    } //1
    return 1;
    } // ?


    Sollte das nicht das Problem lösen, teile uns mal bitte mit, was die Funktion ProxDetector() macht und poste sie mal bitte.

  • public ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:posx, Float:posy, Float:posz, vworld;
    new Float:oldposx, Float:oldposy, Float:oldposz;
    new Float:tempposx, Float:tempposy, Float:tempposz;
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    vworld = GetPlayerVirtualWorld(playerid);
    //radi = 2.0; //Trigger Radius
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(!BigEar[i])
    {
    GetPlayerPos(i, posx, posy, posz);
    tempposx = (oldposx -posx);
    tempposy = (oldposy -posy);
    tempposz = (oldposz -posz);
    //printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
    if(GetPlayerVirtualWorld(i) == vworld)
    {
    if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
    {
    SendClientMessage(i, col1, string);
    }
    else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
    {
    SendClientMessage(i, col2, string);
    }
    else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
    {
    SendClientMessage(i, col3, string);
    }
    else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
    {
    SendClientMessage(i, col4, string);
    }
    else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
    {
    SendClientMessage(i, col5, string);
    }
    }
    }
    else
    {
    SendClientMessage(i, col1, string);
    }
    }
    }
    }
    return 1;
    }