Nomes RolePlay
#1

Boas a todos, venho cб tirar uma dъvida, ja tentei mas pareзe muito dificil, tambem ja procurei e nao encontrei nada. Continuando... quase ninguem sabe.
Entгo й assim... nуs costumamos ver os nomes em cima da cabeзa, entгo queria fazer desaparece-los, e sу dar quando dissemos o nome ou quando mostrase o BI.
Alguem sabe?


Cumprimentos,
Vitor Mondim
Reply
#2

Entгo Vнtor vocк pode criar uma array para ver se o player esta dando o "BI" caso ele esteja dando o "Bi" irб mostrar
Reply
#3

Quote:
Originally Posted by DraKoN
Посмотреть сообщение
Entгo Vнtor vocк pode criar uma array para ver se o player esta dando o "BI" caso ele esteja dando o "Bi" irб mostrar
Eu realmente tambйm estava interessado nesta duvida..
Б alguma maneira de fazer como o vitor disse?

O meu exemplo penso que й igual, ou seja, quando comeзar o gamemode, para todos, ninguem ver os nomes de ninguem.. sу se o player disser ao outro o nome escrito por exemplo Jose Socrates, os que estгo num raio de alguma distancia ficam com o nome 4ever por cima da cabeзa do outro que o disse!

Depois a partir dai, pode-se codar perfeitamente o sistema de dizer o nome tambйm ao entregar o BI..
Reply
#4

Cara isso realmente й complicado enfim dessa maneira й possнvel porйm nгo sei se й correcta
Enfim nunca usei Text Label Tente:

Funciona da Seguinte forma caso o player digite seu Nome (Igual) no chat ele irб fazer uma busca das strings que seria o texto e o nome do player caso a busca for verdadeira ele irб criar o Text Label acima do player que seria o nome do mesmo..

pawn Код:
new Text3D:label[MAX_PLAYERS];
 
public OnPlayerText(playerid,text[])
{
    new name[MAX_PLAYER_NAME], string[44];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s",name);
    new nomedele = strfind(text, name, true);//Procura no texto o nome
    if(nomedele == -1)//Caso tiver
{
    label[playerid] = Create3DTextLabel(name,0x008080FF,30.0,40.0,50.0,40.0,0);
    Attach3DTextLabelToPlayer(label[playerid], playerid, 0.0, 0.0, 0.7);
}
    return 1;
}
 
public OnPlayerDisconnect(playerid, reason)
{
    Delete3DTextLabel(label[playerid]);
    return 1;
}
Desculpa se tiver erro nгo estou correto sobre a comparaзгo das strings estou em dъvida sobre 'strcmp' e 'strfind'.
Enfim.
Reply
#5

Quote:
Originally Posted by DraKoN
Посмотреть сообщение
Cara isso realmente й complicado enfim dessa maneira й possнvel porйm nгo sei se й correcta
Enfim nunca usei Text Label Tente:

Funciona da Seguinte forma caso o player digite seu Nome (Igual) no chat ele irб fazer uma busca das strings que seria o texto e o nome do player caso a busca for verdadeira ele irб criar o Text Label acima do player que seria o nome do mesmo..

pawn Код:
new Text3D:label[MAX_PLAYERS];
 
public OnPlayerText(playerid,text[])
{
    new name[MAX_PLAYER_NAME], string[44];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s",name);
    new nomedele = strfind(text, name, true);//Procura no texto o nome
    if(nomedele == -1)//Caso tiver
{
    label[playerid] = Create3DTextLabel(name,0x008080FF,30.0,40.0,50.0,40.0,0);
    Attach3DTextLabelToPlayer(label[playerid], playerid, 0.0, 0.0, 0.7);
}
    return 1;
}
 
public OnPlayerDisconnect(playerid, reason)
{
    Delete3DTextLabel(label[playerid]);
    return 1;
}
Desculpa se tiver erro nгo estou correto sobre a comparaзгo das strings estou em dъvida sobre 'strcmp' e 'strfind'.
Enfim.

Esta la quase Dragon,
O Problema, й o nome que aparece para toda a gente do servidor, quando o dizes.. ou seja, ґnгo sу ao teu parceiro que estб num raio de +/- alguma distancia, mas ao dizeres, o servidor todo fica com o teu nome por cima da cabeзa (alem que o nome esta com um formato esquesito, e bem alto da cabeзa, nгo fica normal como no samp padrгo :P)

Achas que podes modificar algo do codigo? a Ideia estб boa, mas presisa de ser melhorada..
Abraзo
Reply
#6

Sу um erro no script definiste duas vezes a string, mas bom trabalho.
Reply
#7

Bom trabalho, desde jб agradeзo por teres ajudado. Como jб disseram sу mesmo esse erro гo disseres o nome apareзer a todos e nгo para quem estб pelo menos 2 metros perto. Mas estб muito bom.
Mais uma vez obrigado.
Cumprimentos,
VitorMondim
Reply
#8

@KrZ7:
Cara na boa odeio gente de 1° post que vem me corrigir sem mesmo olha o code, nгo eu defini 2 string...

@Vitor:
Muito Fбcil, se algo do tipo 'ProxDetector' encontrado em alguns GameModes,FilterScript...
Ficaria desta forma mais ou menos
:
pawn Код:
new Text3D:label[MAX_PLAYERS];
 
public OnPlayerText(playerid,text[])
{

    new name[MAX_PLAYER_NAME], string[44];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s",name);
    new nomedele = strfind(text, name, true);//Procura no texto o nome
    if(nomedele == -1)//Caso tiver
{
     for(new allplayers = 0; allplayers < GetMaxPlayers(); allplayers++)
    {
    if(GetDistanceBetweenPlayers(playerid,allplayers) >= 15)
      { //Usa ProxDetector
 
    label[playerid] = Create3DTextLabel(name,0x008080FF,30.0,40.0,50.0,40.0,0);
    Attach3DTextLabelToPlayer(label[playerid], playerid, 0.0, 0.0, 0.7);
   }}
}
    return 1;
}
 
public OnPlayerDisconnect(playerid, reason)
{
    Delete3DTextLabel(label[playerid]);
    return 1;
}
stock GetDistanceBetweenPlayers(playerid,playerid2) //By Slick (Edited by Sacky)
{
new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
new Float:dis;
GetPlayerPos(playerid,x1,y1,z1);
GetPlayerPos(playerid2,x2,y2,z2);
dis = floatsqroot((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1));
return floatround(dis);
}
Obs: Isso apenas geta a distancia, й um exemplo,deve-se usar ProxDetector
Reply
#9

Mais uma vez, bom trabalho. Irei testar logo direi algo.

Cumprimentos,
Vitor Mondim
Reply
#10

Drakon desculpa, meti o script no gamemode e era que tinha uma string jб defenida, peзo imensa desculpa.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)