Frage zu /schout /me /close

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

  • public OnPlayerText(playerid, text[])
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);


    new string[128];
    format(string,sizeof(string), "%s sagt: %s",
    getPlayerName(playerid), text);


    new chat_color;


    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!IsPlayerInRangeOfPoint(i, CHAT_RADIUS, x, y, z))continue;
    new Float:distance = GetPlayerDistanceFromPoint(i, x, y, z);
    if(distance < CHAT_RADIUS / CHAT_FADES)
    {
    chat_color = COLOR_CHAT;
    }
    else if(distance < CHAT_RADIUS / CHAT_FADES * 2)
    {
    chat_color = COLOR_FADE1;
    }
    else if(distance < CHAT_RADIUS / CHAT_FADES * 3)
    {
    chat_color = COLOR_FADE2;
    }
    else if(distance < CHAT_RADIUS / CHAT_FADES * 4)
    {
    chat_color = COLOR_FADE3;
    }
    else if(distance <= CHAT_RADIUS / CHAT_FADES * 5)
    {
    chat_color = COLOR_FADE4;
    }
    SendClientMessage(i, chat_color, string);
    }
    return 0;
    }



    Hey ich wollte fragen ich arbeite mit CMD


    OCMD:close 2 befehl zum nutzen /c


    %s sagt: %s


    CMD:shout 2 Befehl /s


    CMD:me



    format(string, sizeof(string), "* %s %s", sendername, result);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);

  • Du musst einfach nur schauen das du in deinem %s %s den Spielernamen benutzt, z.B PlayerName(playerid) und dann den string, in dem Fall das geschriebene.
    Dann solltest du noch die Reichweite abfragen wie im normalen Chat falls der bei dir schon existiert, damit man es nicht von überall aus lesen kann.
    Dann brauchst du nur noch eine Farbe.
    Versuch mal etwas zu basteln und zeig uns dann den Code! :)


  • CMD:shout(playerid)
    {
    if(IsPlayerConnected(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, "FEHLER: (/s)hout [local chat]");
    return 1;
    }
    format(string, sizeof(string), "%s schreit: %s!!", sendername, result);
    ProxDetector(30.0, playerid, string,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_FADE1,COLOR_FADE2);
    printf("%s", string);
    }
    return 1;
    }



    C:\Users\-\Desktop\Selfmade xGhost\gamemodes\Selfmade.pwn(1880) : error 017: undefined symbol "sendername"
    C:\Users\-\Desktop\Selfmade xGhost\gamemodes\Selfmade.pwn(1880) : error 017: undefined symbol "sendername"
    C:\Users\-\Desktop\Selfmade xGhost\gamemodes\Selfmade.pwn(1880) : error 029: invalid expression, assumed zero
    C:\Users\-\Desktop\Selfmade xGhost\gamemodes\Selfmade.pwn(1880) : fatal error 107: too many error messages on one line

  • Wenn du mit cmd arbeitest, musst du deine Befehle nicht so umständlich machen.
    Hier ein Beispiel für den /me Befehl:


    cmd:me(playerid,params[])
    {
    new string[256];
    if(sscanf(params, "s[256]", string)) return SendClientMessage(playerid, FARBE, "Benutze: /me [Text]");
    format(string, sizeof(string), "* %s %s", PlayerName(playerid), string);
    SendRadiusMessage(playerid,12.0,string, FARBE); <- Das ist eine eigene Funktion bei der eine Nachricht in einem bestimmten Radius verschickt wird, musst du dann selber probieren. :)
    return 1;
    }


    Daran kannst du dich auch bei den anderen Sachen orientieren.

  • C:\Users\-\Desktop\Selfmade xGhost\gamemodes\Selfmade.pwn(1883) : error 017: undefined symbol "ProxDetector"



    CMD:me(playerid,params[])
    {
    new string[256];
    new result[64];
    new sendername[MAX_PLAYER_NAME];
    if(sscanf(params, "s[256]", string)) return SendClientMessage(playerid, COLOR_LIGHTBLUE, "Benutze: /me [Text]");
    format(string, sizeof(string), "* %s %s", sendername, result);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); //1883
    return 1;
    }


  • C:\Users\Natascha\Desktop\Selfmade xGhost\gamemodes\Selfmade.pwn(1883) : warning 213: tag mismatch
    C:\Users\Natascha\Desktop\Selfmade xGhost\gamemodes\Selfmade.pwn(1883) : warning 202: number of arguments does not match definition




    CMD:me(playerid,params[])
    {
    new string[256];
    new result[64];
    new sendername[MAX_PLAYER_NAME];
    if(sscanf(params, "s[256]", string)) return SendClientMessage(playerid, COLOR_LIGHTBLUE, "Benutze: /me [Text]");
    format(string, sizeof(string), "* %s %s", sendername, result);
    SendRadiusMessage(playerid,30.0,string, COLOR_RED); //1883
    return 1;
    }

  • C:\Users\Natascha\Desktop\Selfmade xGhost\gamemodes\Selfmade.pwn(1883) : error 017: undefined symbol "SendRadiusMessage"

    Da sagte ich ja auch, SendRadiusMessage ist eine eigene Funktion die du so nicht benutzen kannst.
    Entferne einfach mal die Zeile mit dem Radius und schau ob der Befehl dann generell funktioniert.
    Dann schauen wir wie wir bei dir einen Chatradius hinbekommen.


  • CMD:me(playerid,params[])
    {
    new string[256];
    new result[64];
    new sendername[MAX_PLAYER_NAME];
    if(sscanf(params, "s[256]", string)) return SendClientMessage(playerid, COLOR_LIGHTBLUE, "Benutze: /me [Text]");
    format(string, sizeof(string), "* %s %s", sendername, result);
    return 1;
    }



    Funktioniert nicht.


  • CMD:me(playerid,params[])
    {
    new string[256];
    if(sscanf(params, "s[256]", string)) return SendClientMessage(playerid, COLOR_LIGHTBLUE, "Benutze: /me [Text]");
    format(string, sizeof(string), "* %s %s", PlayerName(playerid), string);
    return 1;
    }




    PlayerName findet er nicht!


  • CMD:me(playerid,params[])
    {
    new string[256];
    if(sscanf(params, "s[256]", string)) return SendClientMessage(playerid, COLOR_LIGHTBLUE, "Benutze: /me [Text]");
    format(string, sizeof(string), "* %s %s", getPlayerName(playerid), string);
    return 1;
    }



    habs angepasst... aber wen ich es teste kommt keine Nachricht der Befehl exestiert aber kommt keine Nachricht