Ajuda Verificação || 2 - agi.exe - 30/04/2022
Eae blz, Too querendo verificar se oque o player digitar na DIALOG_STYLE_IMPUT e igual a um nome de algum player conectado no servidor
RE: Ajuda Verificação || 2 - Carlos Victor - 30/04/2022
Código PHP: public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == dialogid) { if(response) { if(!strlen(inputtext)) return ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_INPUT, "Titulo", "ERRO: Voce deve digitar algo.\n\nDigite o nome do jogador abaixo", "Confirmar", "Cancelar");
for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i) && i != INVALID_PLAYER_ID) { if(!strcmp(GetPlayerNameEx(i), inputtext, true)) { SendClientMessage(playerid, -1, "Jogador conectado."); return 1; } else { SendClientMessage(playerid, -1, "Jogador nao conectado."); return 1; } } } } } return 1; }
CMD:test(playerid) { ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_INPUT, "Titulo", "Digite o nome do jogador abaixo", "Confirmar", "Cancelar"); return 1; }
GetPlayerNameEx(playerid) { new var[MAX_PLAYER_NAME]; GetPlayerName(playerid, var, sizeof(var)); return var; }
Talvez com isso você consiga algo, eu acredito que dê pra otimizar, porém atualmente oque me vem na mente é isso.
RE: Ajuda Verificação || 2 - Dr Editor - 01/05/2022
(30/04/2022 19:26)Carlos Victor Escreveu: Código PHP: public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == dialogid) { if(response) { if(!strlen(inputtext)) return ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_INPUT, "Titulo", "ERRO: Voce deve digitar algo.\n\nDigite o nome do jogador abaixo", "Confirmar", "Cancelar");
for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i) && i != INVALID_PLAYER_ID) { if(!strcmp(GetPlayerNameEx(i), inputtext, true)) { SendClientMessage(playerid, -1, "Jogador conectado."); return 1; } else { SendClientMessage(playerid, -1, "Jogador nao conectado."); return 1; } } } } } return 1; }
CMD:test(playerid) { ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_INPUT, "Titulo", "Digite o nome do jogador abaixo", "Confirmar", "Cancelar"); return 1; }
GetPlayerNameEx(playerid) { new var[MAX_PLAYER_NAME]; GetPlayerName(playerid, var, sizeof(var)); return var; }
Talvez com isso você consiga algo, eu acredito que dê pra otimizar, porém atualmente oque me vem na mente é isso.
Isso vai dar problema, pois vai parar na primeira volta do loop.
A condição "i != INVALID_PLAYER_ID" é desnecessária, pois sempre vai retornar true.
A lógica da construção está correta, o código não.
Código: new bool:jogadorOnline;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(!strcmp(GetPlayerNameEx(i), inputtext, true))
{
jogadorOnline = true;
break;
}
}
}
if(jogadorOnline)
SendClientMessage(playerid, -1, "Jogador conectado.");
else
SendClientMessage(playerid, -1, "Jogador nao conectado.");
RE: Ajuda Verificação || 2 - Carlos Victor - 01/05/2022
Corretíssimo! Agradeço pela correção.
|