Local Chat for RP!
#1

Guys, how can i make my chat local? i mean when a player chat normaly, only the person near him can see tha message, not all players!
Reply
#2

This should get you started:

http://forum.sa-mp.com/showthread.ph...ght=local+chat
Reply
#3

Use ProxDetector!


EDIT: -.- nevermind
Reply
#4

Quote:
Originally Posted by [ISS]jumbo
Посмотреть сообщение
Use ProxDetector!


EDIT: -.- nevermind
Ow my god O.O i can't set this up, i am sure i will get error's , every time i try to set something like that i failed. Is there something more easy to install??
Reply
#5

pawn Код:
public ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
{  //Check the comments behind some lines! (scroll to the right)
    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);
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
            if(IsPlayerConnected(i) && (GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)))
            {
                GetPlayerPos(i, posx, posy, posz);
                tempposx = (oldposx -posx);
                tempposy = (oldposy -posy);
                tempposz = (oldposz -posz);
                if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16))) // If the player is within 16 meters
                {
                    SendClientMessage(i, col1, string);
                }
                else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8))) // within 8 meters
                {
                    SendClientMessage(i, col2, string);
                }
                else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4))) //4 meters
                {
                    SendClientMessage(i, col3, string);
                }
                else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2))) //2 meters
                {
                    SendClientMessage(i, col4, string);
                }
                else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi))) //1 meter
                {
                    SendClientMessage(i, col5, string);
                }
            }
            else
            {
                SendClientMessage(i, col1, string);
            }
        }
    }
    return 1;
}

this is the code for proxdetector ... pastein your gm
then see exapmple


pawn Код:
public OnPlayerText(playerid, text[]) // This callback is called when the players are chatting, we will change this from normal chat to our ProxDetector :)
{
    new pname[24], str[128]; // the new for the name and string the player will say
    GetPlayerName(playerid, pname, 24); // Gets the name so that it displays a name and not an ID
    format(str, sizeof(str), "%s Says: %s", pname, text); // The actual text, formatted into a string
    ProxDetector(10.0, playerid, str, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5); // Now this is where the fun begins. 10 means the radius, playerid is, well the playerid xD, str is your string and the colors are the colors you would like to have. You can change it!
    return 0; //IMPORTANT! always use return 0; otherwise it will display both normal chat AND the ProxDetector
}
this send the chat to player from 10.0 range see?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)