[PEDIDO] Chat igual de RPG
#1

Gostaria de um chat igual ao de RPG, com aquele diz: e sу pode ver o que estб escrito se a pessoa estiver perto dela... Jб procurei no ****** e no fуrum mas nгo deu certo

Valeu.
Reply
#2

PHP код:
forward ProxDetector(Float:radiplayeridstring[], col1col2col3col4col5);
public 
OnPlayerText(playeridtext[])
{
    
ProxDetector(10playeridtext0xFFFFFFFF0xFFFFFFFF0xFFFFFFFF0xFFFFFFFF0xFFFFFFFF);
    return 
1;
}
public 
ProxDetector(Float:radiplayeridstring[], col1col2col3col4col5)
{
    if(
IsPlayerConnected(playerid))
    {
        new 
Float:posxFloat:posyFloat:posz;
        new 
Float:oldposxFloat:oldposyFloat:oldposz;
        new 
Float:tempposxFloat:tempposyFloat:tempposz;
        
GetPlayerPos(playeridoldposxoldposyoldposz);
        for(new 
0MAX_PLAYERSi++)
        {
            if(
IsPlayerConnected(i))
            {
                
GetPlayerPos(iposxposyposz);
                
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)))
                {
                    
SendClientMessage(icol1string);
                }
                else if (((
tempposx radi/8) && (tempposx > -radi/8)) && ((tempposy radi/8) && (tempposy > -radi/8)) && ((tempposz radi/8) && (tempposz > -radi/8)))
                {
                    
SendClientMessage(icol2string);
                }
                else if (((
tempposx radi/4) && (tempposx > -radi/4)) && ((tempposy radi/4) && (tempposy > -radi/4)) && ((tempposz radi/4) && (tempposz > -radi/4)))
                {
                    
SendClientMessage(icol3string);
                }
                else if (((
tempposx radi/2) && (tempposx > -radi/2)) && ((tempposy radi/2) && (tempposy > -radi/2)) && ((tempposz radi/2) && (tempposz > -radi/2)))
                {
                    
SendClientMessage(icol4string);
                }
                else if (((
tempposx radi) && (tempposx > -radi)) && ((tempposy radi) && (tempposy > -radi)) && ((tempposz radi) && (tempposz > -radi)))
                {
                    
SendClientMessage(icol5string);
                }
              }
        }
    }
    return 
1;

Reply
#3

https://sampforum.blast.hk/showthread.php?tid=264699
Reply
#4

Os 2 nгo funcionaram... Usei o kDetector e o ProxDetector, quando mando algo a mensagem se repete em cima da mensagem que eu enviei ou pula uma linha

Код:
LimitGlobalChatRadius(200.0)
Tф usando isso agora ._.
Reply
#5

minha stock:
pawn Код:
stock iSendMessageForProxPlayer(pid, &Float:radius,color,messagen[])// By: [iPs] Garfield
{
    static
        Float:garfield[3] = 0xFFFFFF;
       
    GetPlayerPos(pid, garfield[0], garfield[1], garfield[2]);
    for(new i; i < MAX_PLAYERS; ++i)
    {
        if(IsPlayerInRangeOfPoint(i, radius, garfield[0],garfield[1],garfield[2]);
        {
            SendClientMessage(i, color, mensagen);
        }
    }
    return true;
}
Uso:
pawn Код:
iSendMessageForProxPlayer(playerid, 2.0,-1,"Todos sгo gays.");
Reply
#6

Coloque em OnPlayerText, No meu funcionou e fechou, Tenta configurar de acordo com o seu GM, nгo lembro quem me passou esse codigo, mais graзas a deus me ajudou e fechou o chat, boa sorte..

new Msg[128],Name[24],Float:Flut[3];
GetPlayerPos(playerid,Flut[0],Flut[1],Flut[2]);
GetPlayerName(playerid,Name,sizeof(Name));
format(Msg,sizeof(Msg),"%s [%i] diz: {FFFFFF}%s{FFFFFF}",Name,playerid,text);
for(new strong; strong != MAX_PLAYERS; strong++)
if(IsPlayerInRangeOfPoint(strong,40.0,Flut[0],Flut[1],Flut[2]))
SendClientMessage(strong,GetPlayerColor(playerid), Msg);
return false;
}
Reply
#7

PHP код:
public OnPlayerText(playerid,text[])
{
    new 
s[128],nome[24],p[3];
    
GetPlayerPos(playerid,p[0],p[1],p[2]);
    
GetPlayerName(playerid,nome,sizeof(nome));
    
format(s,sizeof(s),"%s {FFFFFF}(%d) diz: %s",nome,playerid,text);
    for(new 
0GetMaxPlayers(); != j; ++i) {
        if(
IsPlayerInRangeOfPoint(i,50.0,p[0],p[1],p[2])) {
            
SendClientMessage(i,GetPlayerColor(playerid),s)
        }    
    }
    return 
false;

Reply
#8

Felipe, seu code da o seguinte erro...

Код:
 warning 213: tag mismatch
Linha: GetPlayerPos(playerid,p[0],p[1],p[2]);
Reply
#9

pawn Код:
public OnPlayerText(playerid,text[])
{
    new s[128],nome[24],Float:p[3];
    GetPlayerPos(playerid,p[0],p[1],p[2]);
    GetPlayerName(playerid,nome,sizeof(nome));
    format(s,sizeof(s),"%s {FFFFFF}(%d) diz: %s",nome,playerid,text);
    for(new i = 0, j = GetMaxPlayers(); i != j; ++i) {
        if(IsPlayerInRangeOfPoint(i,50.0,p[0],p[1],p[2])) {
            SendClientMessage(i,GetPlayerColor(playerid),s)
        }    
    }
    return false;
}
aproveite ao adicionar o cуdigo em seu script, idente ele...


Atenciosamente,
[Y]Falcon.
Reply
#10

Quote:
Originally Posted by [AF]Junior
Посмотреть сообщение
Felipe, seu code da o seguinte erro...

Код:
 warning 213: tag mismatch
Linha: GetPlayerPos(playerid,p[0],p[1],p[2]);
Isto acontece porque a variavel "p[3]" nгo й do tipo float, tente substituir p[3] por Float: p[3];

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)