SA-MP Forums

SA-MP Forums (https://forum.sa-mp.com/index.php)
-   Português/Portuguese (https://forum.sa-mp.com/forumdisplay.php?f=34)
-   -   [Ajuda] Chat próximo (https://forum.sa-mp.com/showthread.php?t=664812)

RayanSanty 11/03/2019 10:07 PM

Chat próximo
 
Preciso de ajuda pra mudar isso

Quero que quando o player digite apareca somente para todos proximo a ele
Aqui esta como chat global, me ajudem

Code:

new string[256];
format(string,sizeof(string),"[ID: %d] %s",playerid,text);
SendPlayerMessageToAll(playerid,string);
return 0;
}


ipsLuan 11/03/2019 10:08 PM

Re: Chat próximo
 
Loop + IsPlayerInRangeOfPoint.

ipsLuan 11/03/2019 10:36 PM

Re: Chat próximo
 
Quote:

Originally Posted by GGsamp (Post 4088381)
Na callback OnPlayerText

if(text[0] == ';'){ChatProximo(playerid, COLOUR_CHATPROX, text[1]);return 0;}

Final do gm ou onde preferir

stock ChatProximo(playerid, color, const string[])
{
new output[128], pNameX[MAX_PLAYER_NAME],outadm[128],rawstring[128];
GetPlayerName(playerid, pNameX, sizeof(pNameX));

format(output, sizeof(output), "%s: (%i): %s", pNameX, playerid, string);
format(rawstring, sizeof(rawstring), "%s",string);

GetPlayerPos(playerid, PosX, PosY, PosZ);

format(outadm, sizeof(outadm), "CHATP >> %s: (%i): %s", pNameX,playerid,string);
for(new i; i < GetMaxPlayers(); i++){if(IsPlayerConnected(i)){
if(CallRemoteFunction("GetPlayerAdminLevel","i",i) >= 4){
if(!IsPlayerInRangeOfPoint(i, 20.0, PosX, PosY, PosZ)){
SendClientMessage(i, 0xFF9900AA, outadm);}}}}

for(new i; i < GetMaxPlayers(); i++){if(IsPlayerConnected(i)){
if(IsPlayerInRangeOfPoint(i, 20.0, PosX, PosY, PosZ)){
SendClientMessage(i, color, output);
PlayerPlaySound(i,1057,0.0,0.0,0.0);}}}
SetPlayerChatBubble(playerid, rawstring, COLOUR_CHATPROX, 20.0, 10000);

return 1;
}

Com essa callback, vai enviar a mensagem também se o jogador não estiver próximo.

Malandrin 11/03/2019 10:59 PM

Re: Chat próximo
 
Eu utilizo essa, pois com essa pode configurar várias cores, dependendo da distância do jogador.

PHP Code:


ProxDetector
(Float:radiplayeridstring[], col1col2col3col4col5)
{
    new 
Float:oldposxFloat:oldposyFloat:oldposz;
    
GetPlayerPos(playeridoldposxoldposyoldposz);
    for(new 
i=0i<MAX_PLAYERSi++)
    {
        if(
GetPlayerVirtualWorld(i) == GetPlayerVirtualWorld(playerid) && GetPlayerInterior(i) == GetPlayerInterior(playerid))
        {
            if(
IsPlayerInRangeOfPoint(iradi/16,oldposxoldposyoldposz)) SendClientMessage(icol1string);
            else if(
IsPlayerInRangeOfPoint(iradi/8,oldposxoldposyoldposz)) SendClientMessage(icol2string);
            else if(
IsPlayerInRangeOfPoint(iradi/4,oldposxoldposyoldposz)) SendClientMessage(icol3string);
            else if(
IsPlayerInRangeOfPoint(iradi/2,oldposxoldposyoldposz)) SendClientMessage(icol4string);
            else if(
IsPlayerInRangeOfPoint(iradi,oldposxoldposyoldposz)) SendClientMessage(icol5string);
        }
    }
    return 
1;



zF3lKy3 11/03/2019 11:34 PM

Re: Chat próximo
 
Quote:

Originally Posted by GGsamp (Post 4088381)
Na callback OnPlayerText

if(text[0] == ';'){ChatProximo(playerid, COLOUR_CHATPROX, text[1]);return 0;}

Final do gm ou onde preferir

stock ChatProximo(playerid, color, const string[])
{
new output[128], pNameX[MAX_PLAYER_NAME],outadm[128],rawstring[128];
GetPlayerName(playerid, pNameX, sizeof(pNameX));

format(output, sizeof(output), "%s: (%i): %s", pNameX, playerid, string);
format(rawstring, sizeof(rawstring), "%s",string);

GetPlayerPos(playerid, PosX, PosY, PosZ);

format(outadm, sizeof(outadm), "CHATP >> %s: (%i): %s", pNameX,playerid,string);
for(new i; i < GetMaxPlayers(); i++){if(IsPlayerConnected(i)){
if(CallRemoteFunction("GetPlayerAdminLevel","i",i) >= 4){
if(!IsPlayerInRangeOfPoint(i, 20.0, PosX, PosY, PosZ)){
SendClientMessage(i, 0xFF9900AA, outadm);}}}}

for(new i; i < GetMaxPlayers(); i++){if(IsPlayerConnected(i)){
if(IsPlayerInRangeOfPoint(i, 20.0, PosX, PosY, PosZ)){
SendClientMessage(i, color, output);
PlayerPlaySound(i,1057,0.0,0.0,0.0);}}}
SetPlayerChatBubble(playerid, rawstring, COLOUR_CHATPROX, 20.0, 10000);

return 1;
}

Sistema da Game-Mode do Bloody Vegas :)


All times are GMT. The time now is 12:17 PM.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.