[AJUDA] Apenas pessoas que estiverem perto recebe a mensaegm
#1

Eu fiz o sisteminha para apenas pessoas que estiverem 13 metros ouvem, sу que agora vem a pergunta, como eu fasso para tal mensagem apenas pessoas que estiverem perto ouvirem?

pawn Код:
LimitGlobalChatRadius(23.0);
pawn Код:
CMD:darpizza(playerid,params[])
{
    if(sscanf(params, "us[128]", id)) return SendClientMessage(playerid, COR_CINZA, "* USE: /darpizza [ID]");
    GetPlayerName(playerid,nome,MAX_PLAYER_NAME);
    format(adminstring, sizeof(adminstring), "* s% levou uma pizza atй o s%", Jogador, Outro);
    SendMessageAdminsDono(COR_CINZA, adminstring);
    format(adminstring, sizeof(adminstring), "s% estб comendo uma pizza", Outro);
    SendMessageAdminsDono(COR_CINZA, adminstring);
    SetPlayerHealth(id, 40);
    return 1;
}
Ai teria que substituir esse SendMessageAdminsDono por nгo sei o que.....
Reply
#2

Acho q й proxdetector.
e nгo seria:
pawn Код:
CMD:darpizza(playerid,params[])
{
    if(sscanf(params, "us[128]", id)) return SendClientMessage(playerid, COR_CINZA, "* USE: /darpizza [ID]");
    GetPlayerName(playerid,nome,MAX_PLAYER_NAME);
    format(adminstring, sizeof(adminstring), "* %slevou uma pizza atй o %s", Jogador, Outro);
    SendMessageAdminsDono(COR_CINZA, adminstring);
    format(adminstring, sizeof(adminstring), "%s estб comendo uma pizza", Outro);
    SendMessageAdminsDono(COR_CINZA, adminstring);
    SetPlayerHealth(id, 40);
    return 1;
}
Reply
#3

PHP код:
CMD:darpizza(playerid,params[])
{
    if(
sscanf(params"u"id)) return SendClientMessage(playeridCOR_CINZA"* USE: /darpizza [ID]");
    
GetPlayerName(playerid,nome,MAX_PLAYER_NAME);
    
format(adminstringsizeof(adminstring), "* %s levou uma pizza atй o %s"JogadorOutro);
    
IsPlayerInRangeForMessage(playeridCOR_CINZAadminstring10.0)
    
format(adminstringsizeof(adminstring), "%s estб comendo uma pizza"Outro);
    
IsPlayerInRangeForMessage(playeridCOR_CINZAadminstring10.0)
    
SetPlayerHealth(id40);
    return 
1;
}
stock IsPlayerInRangeForMessage(playeridcolor, const striyng[], Floatrange)// Feito por mim
{
    for(new 
xMAX_PLAYERSx++)
    {
        new 
FloatPoz[3];
        
GetPlayerPos(playeridPoz[0], Poz[1], Poz[2]);
        if(
IsPlayerInRangeOfPoint(xrangePoz[0], Poz[1], Poz[2]))
        {
            
SendClientMessage(xcolorstriyng);
            return 
true;
        }
    }
    return 
false;

Reply
#4

Humm vlw ousenber , nao sei se funciono por falta de 2 pessoas para testar mais vamo ve kk

mesmo assim +rep
Reply
#5

pawn Код:
CMD:darpizza(playerid,params[])
{
    if(sscanf(params, "u", id)) return SendClientMessage(playerid, COR_CINZA, "* USE: /darpizza [ID]");
    GetPlayerName(playerid,nome,MAX_PLAYER_NAME);
    format(adminstring, sizeof(adminstring), "* %s levou uma pizza atй o %s", Jogador, Outro);
    SendProxMessage(playerid, COR_CINZA, 10.0, adminstring)
    format(adminstring, sizeof(adminstring), "%s estб comendo uma pizza", Outro);
    SendProxMessage(playerid, COR_CINZA, 10.0, adminstring)
    SetPlayerHealth(id, 40);
    return 1;
}

SendProxMessage(playerid, color, Float:prox, str[]) {
    new
        a = GetMaxPlayers(),
        i = 0,
        Float:Pos[3];
    GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    for( ; i != a; ++i) {
        if(IsPlayerInRangeOfPoint(i, range, Poz[0], Poz[1], Poz[2])) {
            return SendClientMessage(i, color, str);
        }
    }
    return 1;
}
Reply
#6

a e outra que eu esqueci,
Tem como fazer assim, se a pessoa tiver a mais que 5 metros apareзa a mensagem

O jogador estб longe*

pawn Код:
CMD:darpizza(playerid,params[])
{
    if(sscanf(params, "u", id)) return SendClientMessage(playerid, COR_CINZA, "* USE: /darpizza [ID]");
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COR_CINZA, "Jogador nгo conectado!");
    GetPlayerName(playerid,nome,MAX_PLAYER_NAME);
    GetPlayerName(playerid, Jogador, 23);
    GetPlayerName(id, Outro, 23);
    format(adminstring, sizeof(adminstring), "* %s levou uma pizza atй o %s", Jogador, Outro);
    IsPlayerInRangeForMessage(playerid, COR_PURPLE, adminstring, 10.0);
    format(adminstring, sizeof(adminstring), "%s esta comendo uma pizza", Outro);
    IsPlayerInRangeForMessage(playerid, COR_PURPLE, adminstring, 10.0);
    SetPlayerHealth(id, 40);
    return 1;
}
Reply
#7

Entendi errado.. aqui:
pawn Код:
CMD:darpizza(playerid,params[])
{
    if(sscanf(params, "u", id)) return SendClientMessage(playerid, COR_CINZA, "* USE: /darpizza [ID]");
    if(!IsProx(playerid, id)) return SendClientMessage(playerid, -1, "Jogador a 10 metros mais longe.");
    GetPlayerName(playerid,nome,MAX_PLAYER_NAME);
    format(adminstring, sizeof(adminstring), "* %s levou uma pizza atй o %s", Jogador, Outro);
    SendProxMessage(playerid, COR_CINZA, 10.0, adminstring)
    format(adminstring, sizeof(adminstring), "%s estб comendo uma pizza", Outro);
    SendProxMessage(playerid, COR_CINZA, 10.0, adminstring)
    SetPlayerHealth(id, 40);
    return 1;
}

IsProx(playerid, id) {
    new Float:Pos[3];
    GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    return IsPlayerInRangeOfPoint(id, 10.0, Pos[0], Pos[1], Pos[2]);
}
SendProxMessage(playerid, color, Float:prox, str[]) {
    new
        a = GetMaxPlayers(),
        i = 0,
        Float:Pos[3];
    GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    for( ; i != a; ++i) {
        if(IsPlayerInRangeOfPoint(i, range, Poz[0], Poz[1], Poz[2])) {
            return SendClientMessage(i, color, str);
        }
    }
    return 1;
}
Reply
#8

@Ricop522

Da esse erro (960) : warning 219: local variable "id" shadows a variable at a preceding level

Na linha:

pawn Код:
IsProx(playerid, id)
Reply
#9

PHP код:
IsProx(playeridplayeryd) {
    new 
Float:Pos[3];
    
GetPlayerPos(playeridPos[0], Pos[1], Pos[2]);
    return 
IsPlayerInRangeOfPoint(playeryd10.0Pos[0], Pos[1], Pos[2]);

Reply
#10

Opa funciono vlw Ricoop e o outro ai

+rep tmbm
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)