Nomes RolePlay -
VitorMondim - 08.07.2010
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
Re: Nomes RolePlay -
ipsBruno - 08.07.2010
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
Re: Nomes RolePlay -
Amendoim - 08.07.2010
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..
Re: Nomes RolePlay -
ipsBruno - 08.07.2010
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.
Re: Nomes RolePlay -
Amendoim - 08.07.2010
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
Re: Nomes RolePlay -
KrZ7 - 08.07.2010
Sу um erro no script definiste duas vezes a string, mas bom trabalho.
Re: Nomes RolePlay -
VitorMondim - 08.07.2010
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
Re: Nomes RolePlay -
ipsBruno - 08.07.2010
@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
Re: Nomes RolePlay -
VitorMondim - 08.07.2010
Mais uma vez, bom trabalho. Irei testar logo direi algo.
Cumprimentos,
Vitor Mondim
Re: Nomes RolePlay -
KrZ7 - 08.07.2010
Drakon desculpa, meti o script no gamemode e era que tinha uma string jб defenida, peзo imensa desculpa.