Obter o ID pelo Nick -
SIZET - 01.09.2018
Alguйm tem uma funзгo que obtem o ID do player escrevendo o Nick dele ( Por exemplo em uma dialog )
Tava testando todos os meus sistemas й eu tava usando strval mas nгo tava dando certo. Й um sistema de casa que eu fiz um tempo atrбs й ele convida um player pelo nick no Dialog. Ai para colocar na Variбvel nгo posso colocar o Nome do player ( inputtext direto ) eu preciso converter o Nome para o ID.
Eu usava assim:
PHP код:
Convidou[strval(inputtext)] = 1;
Mas o convite vem pra mim + a mensagem.
Re: Obter o ID pelo Nick -
Paulthaz - 01.09.2018
Код:
ReturnUser(PlayerName[])
{
if(IsNumeric(PlayerName))
return strval(PlayerName);
else
{
new found=0, id;
foreach(new i : Player)
{
new foundname[MAX_PLAYER_NAME];
GetPlayerName(i, foundname, MAX_PLAYER_NAME);
new namelen = strlen(foundname);
new bool:searched=false;
for(new pos=0; pos <= namelen; pos++)
{
if(searched != true)
{
if(strfind(foundname,PlayerName,true) == pos)
{
found++;
id = i;
}
}
}
}
if(found == 1)
return id;
else
return INVALID_PLAYER_ID;
}
}
Re: Obter o ID pelo Nick -
SIZET - 01.09.2018
Parece dar certo para o meu sistema.
Agora tenho que achar uma maneira de encaixar isso no meu sistema
PHP код:
Convidou[ReturnUser(inputtext)] = 1;
SendClientMessage(ReturnUser(inputtext), -1, "| INFO | Vocк foi convidado!");
Nгo sei se estou certo mas tenho que testar depois.
Vlw
Re: Obter o ID pelo Nick -
Paulthaz - 01.09.2018
Nгo,
giveid = ReturnUser(nome);
if(IsPlayerConnect(giveid))
{aqui dentro}
Re: Obter o ID pelo Nick -
SIZET - 01.09.2018
Vc sу ta definindo mais coisas pq vai ser o mesmo resultado :/ Eu sу usando direto a funзгo - inputtext vai ser o que eu digitei na Dialog que no caso й o Nick do jogador ai converte o inputtext para o id do player.
Mas seria a mesma coisa se usar uma new giveid.
PHP код:
new id = InvertName(inputtext);
Convidou[id] = 1;
SendClientMessage(id, -1, "| INFO | Vocк foi convidado");
Re: Obter o ID pelo Nick -
InsaneBR - 01.09.2018
Voce tinha postado algo parecido com isso a um tempo atrбs.
Veja
isto
Re: Obter o ID pelo Nick -
DelK - 01.09.2018
PHP код:
stock GetPlayerIdFromName(playername[])
{
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
new playername2[MAX_PLAYER_NAME];
GetPlayerName(i, playername2, sizeof(playername2));
if(strcmp(playername2, playername, true, strlen(playername)) == 0)
{
return i;
}
}
}
return INVALID_PLAYER_ID;
}
Re: Obter o ID pelo Nick -
Paulthaz - 01.09.2018
Quote:
Originally Posted by SIZET
Vc sу ta definindo mais coisas pq vai ser o mesmo resultado :/ Eu sу usando direto a funзгo - inputtext vai ser o que eu digitei na Dialog que no caso й o Nick do jogador ai converte o inputtext para o id do player.
Mas seria a mesma coisa se usar uma new giveid.
PHP код:
new id = InvertName(inputtext);
Convidou[id] = 1;
SendClientMessage(id, -1, "| INFO | Vocк foi convidado");
|
Okay, okay... Se o jogador n tiver conectado ? iai ? vai deixar dar crash msm ?
Re: Obter o ID pelo Nick -
Locky_ - 01.09.2018
Use o sscanf.
PHP код:
new id;
sscanf(inputtext, "u", id);
if(IsPlayerConnected(id))
{
SendClientMessage(id, -1, "Vocк foi convidado");
}
else
SendClientMessage(playerid, -1, "Jogador desconectado");
Se nгo usa sscanf em seu gamemode, entгo acredito que atй muitos comandos (/kick, /ban) devem usar strtok, uma forma bem antiga de se lidar com parвmetros e outras coisas. sscanf й muito ъtil, pois para isso vocк pode usar tanto id ou o nome do jogador (parвmetro 'u').
Saiba mais:
https://sampforum.blast.hk/showthread.php?tid=570927
Re: Obter o ID pelo Nick -
SIZET - 01.09.2018
Vou testar com esses modo agora posso testar pelo Hamachi.
Entenda que isso nгo й um comando to fazendo por inputtext. que no caso й o que o dono(a) da casa escreve o nome de quem ele(a) quer convidar para morar com ele(a) ai sу escrever o Nick no dialog e mandar o convite para o player.
Quote:
Originally Posted by InsaneBR
Voce tinha postado algo parecido com isso a um tempo atrбs.
|
Sim. eu tava fazendo por strval mas nгo deu certo.
@EDIT
Algumas formas deu certo de fazer, mas eu usei sscanf porйm a funзгo й bem pequena comparando com as outras tbm tive alguns bugs (warnings)
Tbm o IsPlayerConnected eu usei IsConnectedName uma outra funзгo de um cara aqui do fуrum esqueci do nick ;-;