SendRangeMessage

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
  • Guden,
    Ich habe letztens einen stock hier im Forum gefunden!


    stock SendRangeMessage(playerid, color, text[],Float:range = 25.0)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    for(new i;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInRangeOfPoint(i, range, x, y, z))
    {
    SendClientMessage(i, color, text);
    }
    }
    }
    return 1;
    }


    Damit soll einen Message an alle Spieler in der Nähe eines bestimmten Spielers gesendet werden!
    Jetzt ist mein Problem, dass erstens jeder überall den Text geschickt bekommt und dass der komplette chat vollgespammt wird! Hat jemand einen ählichen stock oder kann mir sagen was hierdran falsch ist?
    Hier mal die Zeile in der ich SendRangeMessage verwende!


    /////////LEAVE NACHRICHT/////////////////////
    if(!IsPlayerNPC(playerid))
    {
    new pName[MAX_PLAYER_NAME];
    new LeaveText[256];
    GetPlayerName(playerid, pName, sizeof(pName));
    switch(reason)
    {
    case 0: format(LeaveText, sizeof(LeaveText), "{FF0000}<< {FFFFFF}Anti-Offlineflucht{FF0000} >> {FFFFFF}%s hat den Server verlassen. {FF0000}[Crash/Error]", pName);
    case 1: format(LeaveText, sizeof(LeaveText), "{FF0000}<< {FFFFFF}Anti-Offlineflucht{FF0000} >> {FFFFFF}%s hat den Server verlassen. {FF0000}[Verlassen]", pName);
    case 2: format(LeaveText, sizeof(LeaveText), "{FF0000}<< {FFFFFF}Anti-Offlineflucht{FF0000} >> {FFFFFF}%s hat den Server verlassen. {FF0000}[Kick/Ban]", pName);
    }
    for(new i=0; i<MAX_PLAYERS; i++)
    SendRangeMessage(i, COLOR_RED, LeaveText, 25.0);
    }

  • Hm...
    Kann ja auch nicht gehen :P
    if(!IsPlayerNPC(playerid))
    {
    new pName[MAX_PLAYER_NAME];
    new LeaveText[256];
    GetPlayerName(playerid, pName, sizeof(pName));
    switch(reason)
    {
    case 0: format(LeaveText, sizeof(LeaveText), "{FF0000}<< {FFFFFF}Anti-Offlineflucht{FF0000} >> {FFFFFF}%s hat den Server verlassen. {FF0000}[Crash/Error]", pName);
    case 1: format(LeaveText, sizeof(LeaveText), "{FF0000}<< {FFFFFF}Anti-Offlineflucht{FF0000} >> {FFFFFF}%s hat den Server verlassen. {FF0000}[Verlassen]", pName);
    case 2: format(LeaveText, sizeof(LeaveText), "{FF0000}<< {FFFFFF}Anti-Offlineflucht{FF0000} >> {FFFFFF}%s hat den Server verlassen. {FF0000}[Kick/Ban]", pName);
    }
    SendRangeMessage(playerid, COLOR_RED, LeaveText, 25.0);
    }


    Wenn du die Spieler doch schon an alle in der Range verschickst und dann nochmal an alle auf dem Server kann es nur vollgespammt werden.