[AJUDA] Dialog com campo de preenchimento -
Mattos - 01.09.2011
Pessoal, eu tenho um comando que й assim:
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
(...TEM UNS CODIGOS AQUI ANTES...)
else if (strcmp(param, "/kills", true) == 0)
{
if (pDataInfo[playerid][Logado] == true && pDataInfo[playerid][Level] >= 4)
{
ShowPlayerDialog(playerid, 2693, DIALOG_STYLE_INPUT,"Team SA:MP [DM] v2.10 - EDITAR KILLS", "Para editar os kills de um jogador vocк\ndeve inserir a ID no campo abaixo e apertar selecionar.\nDeixe em branco para cancelar.\n\nInsira a ID do jogador para editar:", "Selecionar", "Cancelar");
return PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
} else return SendClientMessage(playerid, COR_VERMELHA, "| Й necessбrio ser no mнnimo administrador para usar este comando.");
}
(...TEM UNS CODIGOS AQUI DEPOIS...)
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 2693) // Comando Editar Kills
{
if (strlen(inputtext) == 0) return 1;
if (ValidaComando(playerid, inputtext) == 0) return 1;
if (!IsNumeric(inputtext)) return 1;
new PlayerReset = strval(inputtext);
if (IsPlayerConnected(PlayerReset))
{
if (pDataInfo[PlayerReset][Logado] == false) return SendClientMessage(playerid, COR_VERMELHA, "| O jogador nгo estб logado no servidor");
if (pDataInfo[PlayerReset][Registrado] == false) return SendClientMessage(playerid, COR_VERMELHA, "| O jogador nгo estб registrado no servidor");
if (response)
{
pDataInfo[PlayerReset][Matou] = 10; bd_escrever_int(pName(PlayerReset),"MatouGeral",10);
format(strres, 128, "| Kills do jogador %s(%d) foram editados com sucesso.", pName(PlayerReset), PlayerReset); SendClientMessage(playerid, COR_VERDE, strres);
format(strres, 128, "| Seus Kills foram editados com sucesso pelo administrador %s(%d).", pName(playerid), playerid); SendClientMessage(PlayerReset, COR_VERDE, strres);
}
} else return SendClientMessage(playerid, COR_VERMELHA, "| O jogador nгo estб conectado no servidor.");
PlayerPlaySound(playerid,1057,0.0,0.0,0.0); return 1;
}
}
O comando funciona certinho, ele define os kills do banco de dados do jogador escolhido pra 10 apartir do pDataInfo[PlayerReset][Matou] = 10; bd_escrever_int(pName(PlayerReset),"MatouGeral",10 );
Porem eu quero que nao seja um numero certo e ao eu usar o comando /kills me aparece o dialog que ja aparece, pedindo o id do player, e depois um dialog pedindo o numero pelo qual eu devo definir o pDataInfo[PlayerReset][Matou] = X; bd_escrever_int(pName(PlayerReset),"MatouGeral",X) ;
Resumindo: O adm utiliza /kills, o dialog pede a id do jogador, aparece outro dialog pedindo o numero de kills que serб modificado para o player (numero que substituirб o X no cуdigo)
Aguardo por respostas.
Re: [AJUDA] Dialog com campo de preenchimento -
Pharrel - 01.09.2011
й sу vc criar outro dialog com outro numero pra ele digitar o numero de kills, c foi vc q fez esse cmd, й facil vc fazer o resto.
eu ate faria c esse seu comando n tivesse tao desorganizado...
pawn Код:
if(isplayerconected(PlayerReset)
{
ShowPlayerDialog(playerid, 2694, DIALOG_STYLE_INPUT,"Digite o numero de kills do player", "Selecionar", "Cancelar");
}
if(dialogid == 2694) // Comando Editar Kills
{
pDataInfo[PlayerReset][Matou] = inputtext;
}
Re: [AJUDA] Dialog com campo de preenchimento -
Mattos - 01.09.2011
nao й meu, estou sу editando... nao acho tao desorganizado... й que nao sei fazer o correlacionamento entre o numero sendo posto no dialog e o X e por um dialog depois do outro...
Re: [AJUDA] Dialog com campo de preenchimento -
Pharrel - 01.09.2011
vou fazer do 0 pra vc pq vendo seu codigo parece mto incoerente... guenta ai ja edito esse post...
Kills й uma string? tpo Matou Geral fica como a kills do player ou um numero? o_O
Re: [AJUDA] Dialog com campo de preenchimento -
Mattos - 01.09.2011
Tipo cara... nao tem muito o que entender... deve sу ser criado um outro dialog apos o dialog pedindo a id do jogador. Este outro dialog terб um campo onde serб posta um numero e esse numero substituirб aquela incуgnita no codigo, no caso o X
Re: [AJUDA] Dialog com campo de preenchimento -
Mattos - 01.09.2011
Olha eu tentei fazendo assim apуs a utilizaзгo do comando /kills:
pawn Код:
if(dialogid == 2693) // Comando Editar Kills
{
if (strlen(inputtext) == 0) return 1;
if (ValidaComando(playerid, inputtext) == 0) return 1;
if (!IsNumeric(inputtext)) return 1;
new PlayerReset = strval(inputtext);
if (IsPlayerConnected(PlayerReset))
{
if (pDataInfo[PlayerReset][Logado] == false) return SendClientMessage(playerid, COR_VERMELHA, "| O jogador nгo estб logado no servidor");
if (pDataInfo[PlayerReset][Registrado] == false) return SendClientMessage(playerid, COR_VERMELHA, "| O jogador nгo estб registrado no servidor");
if (response)
{
ShowPlayerDialog(playerid, 2694, DIALOG_STYLE_INPUT,"Team SA:MP [DM] v2.10 - EDITAR KILLS", "Insira uma quantidade de kills para o jogador:", "Selecionar", "Cancelar");
if(dialogid == 2694) // Comando Editar Kills
{
if (strlen(inputtext) == 0) return 1;
if (ValidaComando(playerid, inputtext) == 0) return 1;
if (!IsNumeric(inputtext)) return 1;
new PlayerKills = strval(inputtext);
{
pDataInfo[PlayerReset][Matou] = PlayerKills; bd_escrever_int(pName(PlayerReset),"MatouGeral",PlayerKills);
format(strres, 128, "| Kills do jogador %s(%d) foram editados com sucesso.", pName(PlayerReset), PlayerReset); SendClientMessage(playerid, COR_VERDE, strres);
format(strres, 128, "| Seus Kills foram editados com sucesso pelo administrador %s(%d).", pName(playerid), playerid); SendClientMessage(PlayerReset, COR_VERDE, strres);
}
}
}
} else return SendClientMessage(playerid, COR_VERMELHA, "| O jogador nгo estб conectado no servidor.");
PlayerPlaySound(playerid,1057,0.0,0.0,0.0); return 1;
}
O segundo dialog apaerceu certinho para ser colocado o valor que irб redefinir os kills do player porem apуs apertar selecionar, nada ocorre.
Re: [AJUDA] Dialog com campo de preenchimento -
Pharrel - 01.09.2011
pawn Код:
if(dialogid == 2693) // Comando Editar Kills
{
if (strlen(inputtext) == 0) return 1;
if (ValidaComando(playerid, inputtext) == 0) return 1;
if (!IsNumeric(inputtext)) return 1;
new PlayerReset = strval(inputtext);
if (IsPlayerConnected(PlayerReset))
{
if (pDataInfo[PlayerReset][Logado] == false) return SendClientMessage(playerid, COR_VERMELHA, "| O jogador nгo estб logado no servidor");
if (pDataInfo[PlayerReset][Registrado] == false) return SendClientMessage(playerid, COR_VERMELHA, "| O jogador nгo estб registrado no servidor");
if (response)
{
ShowPlayerDialog(playerid, 2694, DIALOG_STYLE_INPUT,"Team SA:MP [DM] v2.10 - EDITAR KILLS", "Insira uma quantidade de kills para o jogador:", "Selecionar", "Cancelar");
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
}
}
else return SendClientMessage(playerid, COR_VERMELHA, "| O jogador nгo estб conectado no servidor.");
return 1;}
if(dialogid == 2694) // Comando Editar Kills
{
if (strlen(inputtext) == 0) return 1;
if (ValidaComando(playerid, inputtext) == 0) return 1;
if (!IsNumeric(inputtext)) return 1;
new PlayerKills = strval(inputtext);
pDataInfo[PlayerReset][Matou] = PlayerKills; bd_escrever_int(pName(PlayerReset),"MatouGeral",PlayerKills);
format(strres, 128, "| Kills do jogador %s(%d) foram editados com sucesso.", pName(PlayerReset), PlayerReset); SendClientMessage(playerid, COR_VERDE, strres);
format(strres, 128, "| Seus Kills foram editados com sucesso pelo administrador %s(%d).", pName(playerid), playerid); SendClientMessage(PlayerReset, COR_VERDE, strres);
}
Re: [AJUDA] Dialog com campo de preenchimento -
Mattos - 01.09.2011
Isso que vc fez nao deu certo... Bom infelizmente tive de apelar pro comando em texto e deu certo fiz assim:
pawn Код:
if (strcmp(param, "/kills", true) == 0)
{
if (pDataInfo[playerid][Logado] == true && pDataInfo[playerid][Level] >= 3)
{
param = strtok(cmdtext, idcmd);
new tmppk[128]; tmppk = strtok(cmdtext, idcmd);
if (!strlen(param) || !IsNumeric(param)) return SendClientMessage(playerid, COR_VERMELHA, "| /kills [playerid][Quantidade]");
if (!strlen(tmppk) || !IsNumeric(tmppk)) return SendClientMessage(playerid, COR_VERMELHA, "| /kills playerid [Quantidade]");
new player1 = strval(param), PlayerKills = strval(tmppk);
if (IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID)
{
if (pDataInfo[player1][Logado] == false) return SendClientMessage(playerid, COR_VERMELHA, "| O jogador nгo estб logado no servidor");
if (pDataInfo[player1][Spawned] == false) return SendClientMessage(playerid, COR_VERMELHA, "| O jogador ainda nгo deu spawn, aguarde.");
if (pDataInfo[player1][pASK] >= 1) return SendClientMessage(playerid, COR_VERMELHA, "| Administrador BOT: Este jogador estб em tempo de spawn.");
pDataInfo[player1][Matou] = PlayerKills; bd_escrever_int(pName(player1),"MatouGeral",PlayerKills);
return PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
} else return SendClientMessage(playerid, COR_VERMELHA, "| O jogador nгo estб conectado no servidor.");
} else return SendClientMessage(playerid, COR_VERMELHA, "| Й necessбrio ser no mнnimo sub-administrador para usar este comando.");
}
Obrigado por tentar ajudar