Problem mit /m

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
  • Hallo ich habe ein Problem mit /m


    Also wenn man /m macht dann sieht es fast der ganze Server, ich will aber nicht das man es so weit sieht sondern nur so 30 Meter oder so!


    if(strcmp(cmd, "/megaphone", true) == 0 || strcmp(cmd, "/m", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pGangJailed] == 1)
    {
    SendClientMessage(playerid, TEAM_CYAN_COLOR, "Du kannst im GangJail kein Megephone benutzen!");
    return 1;
    }
    if(PlayerInfo[playerid][pMauled] == 1)
    {
    SendClientMessage(playerid, TEAM_CYAN_COLOR, "Du kannst gefesselt kein Megaphone benutzen!");
    return 1;
    }
    //new tmpcar = GetPlayerVehicleID(playerid);
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: (/m)egaphone [megaphone chat]");
    return 1;
    }
    if(gTeam[playerid] == 2 || IsACop(playerid) || PlayerInfo[playerid][pMember] == 24||PlayerInfo[playerid][pLeader] == 24 || PlayerInfo[playerid][pLeader] == 22 || PlayerInfo[playerid][pMember] == 22 || PlayerInfo[playerid][pLeader] == 4 || PlayerInfo[playerid][pMember] == 4)
    {
    /*if(!IsACopCar(tmpcar))
    {
    SendClientMessage(playerid, COLOR_GRAD2, " You are not in a Police Vehicle !");
    return 1;
    }*/
    if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1)
    {
    format(string, sizeof(string), "[Officer %s:o< %s]", sendername, result);
    ProxDetector(100.0, playerid, string,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
    }
    else if(PlayerInfo[playerid][pMember] == 2||PlayerInfo[playerid][pLeader] == 2)
    {
    format(string, sizeof(string), "[Agent %s:o< %s]", sendername, result);
    ProxDetector(100.0, playerid, string,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
    }
    else if(PlayerInfo[playerid][pMember] == 3||PlayerInfo[playerid][pLeader] == 3)
    {
    format(string, sizeof(string), "[Soldat %s:o< %s]", sendername, result);
    ProxDetector(100.0, playerid, string,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
    }
    else if(PlayerInfo[playerid][pMember] == 23||PlayerInfo[playerid][pLeader] == 23)
    {
    format(string, sizeof(string), "[Soldat %s:o< %s]", sendername, result);
    ProxDetector(100.0, playerid, string,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
    }
    else if(PlayerInfo[playerid][pMember] == 24||PlayerInfo[playerid][pLeader] == 24)
    {
    format(string, sizeof(string), "[O-Amt %s:o< %s]", sendername, result);
    ProxDetector(100.0, playerid, string,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
    }
    else if(PlayerInfo[playerid][pMember] == 4||PlayerInfo[playerid][pLeader] == 4)
    {
    format(string, sizeof(string), "[Medic %s:o< %s]", sendername, result);
    ProxDetector(100.0, playerid, string,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
    }
    else if(PlayerInfo[playerid][pMember] == 22||PlayerInfo[playerid][pLeader] == 22)
    {
    format(string, sizeof(string), "[S.W.A.T.-Officer %s:o< %s]", sendername, result);
    ProxDetector(100.0, playerid, string,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
    }
    printf("%s", string);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2, " Du musst bei der Polizei/Bundeswehr sein, um diesen Befehl benutzen zu können !");
    return 1;
    }
    }
    return 1;
    }

  • denk mal nach wie deine Nachricht an die Spieler gesendet wird .



    ProxDetector(100.0, playerid, string,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);


    dazu noch die Function




    Function ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:posx, Float:posy, Float:posz;
    new Float:oldposx, Float:oldposy, Float:oldposz;
    new Float:tempposx, Float:tempposy, Float:tempposz;
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    //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 (((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;
    }


    und wenn man den Syntax anschaut sieht man das der erste Parameter der radius ist , in dem es an die Leute geschickt wird.


    entweder du entfernst dich etwa mehr als 100.0 [LE] von dem Spieler damit du es nicht mit bekommst also es soll heißten du solltest das ganze reduzieren
    oder da hast an der berechnung rum gepfuscht