How to make Nearby OnPlayerText
#1

SLOVED
Reply
#2

Created this simple function for you, this will send a message to the players who's in range, that you have set.

Code
pawn Код:
stock SendNearByMessage(playerid, color, Float:radius, const message[])
{
    new
        Float:Position[ 3 ], i = 0
    ;

    GetPlayerPos( playerid, Position[ 0 ], Position[ 1 ], Position[ 2 ]);
    while(i < MAX_PLAYERS)
    {
        if(!IsPlayerConnected(playerid)) continue;

        if(IsPlayerInRangeOfPoint(i, radius, Position[ 0 ], Position[ 1 ], Position[ 2 ]))
        {
            SendClientMessage(i, color, message); return true;
        }
        i++;
    }
    return false;
}
Example of Usage
pawn Код:
public OnPlayerConnect(playerid)
{
    return SendNearByMessage(playerid, -1, 20.0, "Message Here");
}
Reply
#3

No... i want to make IC Chat for Roleplay server... Example:
"PRESSING "T"" And im typing: Hello!
I want to show it like that:
Firstname_Lastname says: Hello!
How can i make it ...
Reply
#4

I think this is what you want, explanation inside.

pawn Код:
public OnPlayerText(playerid, text[])
{
    new
        string[ 128 ], PlayerName[ MAX_PLAYER_NAME ]; // variable, so we wouldn't get undefined ....

    GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME); //this function gets the name of the player.

    format(string, sizeof(string), "%s: %s", PlayerName, text);
    SendNearByMessage(playerid, -1, 20.0, string); // will send the message who's in range of 20.0
    return false; //return false, because if it's true, the message will be sent twice.
}

stock SendNearByMessage(playerid, color, Float:radius, const message[])
{
    new
        Float:Position[ 3 ], i = 0
    ;

    GetPlayerPos( playerid, Position[ 0 ], Position[ 1 ], Position[ 2 ]);
    while(i < MAX_PLAYERS)
    {
        if(!IsPlayerConnected(playerid)) continue;

        if(IsPlayerInRangeOfPoint(i, radius, Position[ 0 ], Position[ 1 ], Position[ 2 ]))
        {
            SendClientMessage(i, color, message);
        }
        i++;
    }
}
Reply
#5

A note on the above code, that using "return true;" will break the loop. It doesn't actually need to return any value (that function).
Reply
#6

Thanks guys! Its Okay now!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)