Dialog não fecha - Whaispe - 10/07/2024
Alguém pode me ajudar com essas dialog, ela simplesmente quando clico em "fechar" é como tivesse clicando em "selecionar" tipo os dois botao estao fazendo a mesma coisa que é seleciona mas o fechar por algum motivo não está fechando o dialog não entendo muito de dialogs ou se é as return que tá errada sla
Código: CMD:modos(playerid)
{
if(Logado[playerid] < 1) return SCM(playerid, VERMELHO, "ERROR |{ffffff} Voce nao pode usar comandos sem esta logado!!");
ShowPlayerDialog(playerid, Dialog_Modos, DIALOG_STYLE_LIST, "Modos:", "Fuga\nPvP\nDM\nAcademy", "Selecionar", "Fechar");
return 1;
}
if(dialogid == Dialog_Modos)
{
if(listitem == 0)
{
new spawn = random(sizeof(Sfuga));
SetPlayerPos(playerid, Sfuga[spawn][0], Sfuga[spawn][1], Sfuga[spawn][2]);
ResetPlayerWeapons(playerid);
SetPlayerVirtualWorld(playerid, 400);
SetPlayerArmour(playerid, 10000000);
SetPlayerHealth(playerid, 10000000);
SetPlayerInterior(playerid, 0);
g_InArena[playerid] = false;
g_InFuga[playerid] = true;
SCM(playerid, -1, "{ff0000}WIZE | Voce foi teleportado para o mundo fugas!!");
}
else if(listitem == 1)
{
SetPlayerVirtualWorld(playerid, 500);
ShowPlayerDialog(playerid, Dialog_Arenas, DIALOG_STYLE_LIST, "Arenas:", "Arena M4\nArena Ak47\nArena Desert\nArena Sniper\nArena MP5\nArena FVL\nArena Rush\nArena Pc\nArena Mobile", "Selecionar", "Fechar");
}
else if(listitem == 2)
{
SetPlayerVirtualWorld(playerid, 600);
}
else if(listitem == 3)
{
SetPlayerVirtualWorld(playerid, 700);
}
return 1;
}
RE: Dialog não fecha - Alfarr Heimrik - 11/07/2024
(10/07/2024 22:26)Whaispe Escreveu: Alguém pode me ajudar com essas dialog, ela simplesmente quando clico em "fechar" é como tivesse clicando em "selecionar" tipo os dois botao estao fazendo a mesma coisa que é seleciona mas o fechar por algum motivo não está fechando o dialog não entendo muito de dialogs ou se é as return que tá errada sla
Tenta dessa forma aqui:
Adicionei o if(response) que verifica se o player escolheu o botão 1 da dialog.
Código PHP: if(dialogid == Dialog_Modos) { if(response) { if(listitem == 0) { new spawn = random(sizeof(Sfuga)); SetPlayerPos(playerid, Sfuga[spawn][0], Sfuga[spawn][1], Sfuga[spawn][2]); ResetPlayerWeapons(playerid); SetPlayerVirtualWorld(playerid, 400); SetPlayerArmour(playerid, 10000000); SetPlayerHealth(playerid, 10000000); SetPlayerInterior(playerid, 0); g_InArena[playerid] = false; g_InFuga[playerid] = true; SCM(playerid, -1, "{ff0000}WIZE | Voce foi teleportado para o mundo fugas!!"); } if(listitem == 1) { SetPlayerVirtualWorld(playerid, 500); ShowPlayerDialog(playerid, Dialog_Arenas, DIALOG_STYLE_LIST, "Arenas:", "Arena M4\nArena Ak47\nArena Desert\nArena Sniper\nArena MP5\nArena FVL\nArena Rush\nArena Pc\nArena Mobile", "Selecionar", "Fechar"); } if(listitem == 2) { SetPlayerVirtualWorld(playerid, 600); } if(listitem == 3) { SetPlayerVirtualWorld(playerid, 700); } } } return 1; }
RE: Dialog não fecha - Cifra Modder - 11/07/2024
(10/07/2024 22:26)Whaispe Escreveu: Alguém pode me ajudar com essas dialog, ela simplesmente quando clico em "fechar" é como tivesse clicando em "selecionar" tipo os dois botao estao fazendo a mesma coisa que é seleciona mas o fechar por algum motivo não está fechando o dialog não entendo muito de dialogs ou se é as return que tá errada sla
CMD:modos(playerid)
{
if(Logado[playerid] < 1) return SCM(playerid, VERMELHO, "ERROR |{ffffff} Voce nao pode usar comandos sem esta logado!!");
ShowPlayerDialog(playerid, Dialog_Modos, DIALOG_STYLE_LIST, "Modos:", "Fuga\nPvP\nDM\nAcademy", "Selecionar", "Fechar");
return 1;
}
if(dialogid == Dialog_Modos)
{
if(listitem == 0)
{
new spawn = random(sizeof(Sfuga));
SetPlayerPos(playerid, Sfuga[spawn][0], Sfuga[spawn][1], Sfuga[spawn][2]);
ResetPlayerWeapons(playerid);
SetPlayerVirtualWorld(playerid, 400);
SetPlayerArmour(playerid, 10000000);
SetPlayerHealth(playerid, 10000000);
SetPlayerInterior(playerid, 0);
g_InArena[playerid] = false;
g_InFuga[playerid] = true;
SCM(playerid, -1, "{ff0000}WIZE | Voce foi teleportado para o mundo fugas!!");
}
else if(listitem == 1)
{
SetPlayerVirtualWorld(playerid, 500);
ShowPlayerDialog(playerid, Dialog_Arenas, DIALOG_STYLE_LIST, "Arenas:", "Arena M4\nArena Ak47\nArena Desert\nArena Sniper\nArena MP5\nArena FVL\nArena Rush\nArena Pc\nArena Mobile", "Selecionar", "Fechar");
}
else if(listitem == 2)
{
SetPlayerVirtualWorld(playerid, 600);
}
else if(listitem == 3)
{
SetPlayerVirtualWorld(playerid, 700);
}
return 1;
}
Não precisa de else para verificar as outras categorias.
Tente assim:
Código: if(dialogid == Dialog_Modos)
{
if(response)
{
if(listitem == 0)
{
new spawn = random(sizeof(Sfuga));
SetPlayerPos(playerid, Sfuga[spawn][0], Sfuga[spawn][1], Sfuga[spawn][2]);
ResetPlayerWeapons(playerid);
SetPlayerVirtualWorld(playerid, 400);
SetPlayerArmour(playerid, 10000000);
SetPlayerHealth(playerid, 10000000);
SetPlayerInterior(playerid, 0);
g_InArena[playerid] = false;
g_InFuga[playerid] = true;
SCM(playerid, -1, "{ff0000}WIZE | Voce foi teleportado para o mundo fugas!!");
}
if(listitem == 1)
{
SetPlayerVirtualWorld(playerid, 500);
ShowPlayerDialog(playerid, Dialog_Arenas, DIALOG_STYLE_LIST, "Arenas:", "Arena M4\nArena Ak47\nArena Desert\nArena Sniper\nArena MP5\nArena FVL\nArena Rush\nArena Pc\nArena Mobile", "Selecionar", "Fechar");
}
if(listitem == 2)
{
SetPlayerVirtualWorld(playerid, 600);
}
if(listitem == 3)
{
SetPlayerVirtualWorld(playerid, 700);
}
}
return 1;
}
RE: Dialog não fecha - Calasans - 12/07/2024
(11/07/2024 18:42)Cifra Modder Escreveu: (10/07/2024 22:26)Whaispe Escreveu: Alguém pode me ajudar com essas dialog, ela simplesmente quando clico em "fechar" é como tivesse clicando em "selecionar" tipo os dois botao estao fazendo a mesma coisa que é seleciona mas o fechar por algum motivo não está fechando o dialog não entendo muito de dialogs ou se é as return que tá errada sla
CMD:modos(playerid)
{
if(Logado[playerid] < 1) return SCM(playerid, VERMELHO, "ERROR |{ffffff} Voce nao pode usar comandos sem esta logado!!");
ShowPlayerDialog(playerid, Dialog_Modos, DIALOG_STYLE_LIST, "Modos:", "Fuga\nPvP\nDM\nAcademy", "Selecionar", "Fechar");
return 1;
}
if(dialogid == Dialog_Modos)
{
if(listitem == 0)
{
new spawn = random(sizeof(Sfuga));
SetPlayerPos(playerid, Sfuga[spawn][0], Sfuga[spawn][1], Sfuga[spawn][2]);
ResetPlayerWeapons(playerid);
SetPlayerVirtualWorld(playerid, 400);
SetPlayerArmour(playerid, 10000000);
SetPlayerHealth(playerid, 10000000);
SetPlayerInterior(playerid, 0);
g_InArena[playerid] = false;
g_InFuga[playerid] = true;
SCM(playerid, -1, "{ff0000}WIZE | Voce foi teleportado para o mundo fugas!!");
}
else if(listitem == 1)
{
SetPlayerVirtualWorld(playerid, 500);
ShowPlayerDialog(playerid, Dialog_Arenas, DIALOG_STYLE_LIST, "Arenas:", "Arena M4\nArena Ak47\nArena Desert\nArena Sniper\nArena MP5\nArena FVL\nArena Rush\nArena Pc\nArena Mobile", "Selecionar", "Fechar");
}
else if(listitem == 2)
{
SetPlayerVirtualWorld(playerid, 600);
}
else if(listitem == 3)
{
SetPlayerVirtualWorld(playerid, 700);
}
return 1;
}
Não precisa de else para verificar as outras categorias.
Tente assim:
Código: if(dialogid == Dialog_Modos)
{
if(response)
{
if(listitem == 0)
{
new spawn = random(sizeof(Sfuga));
SetPlayerPos(playerid, Sfuga[spawn][0], Sfuga[spawn][1], Sfuga[spawn][2]);
ResetPlayerWeapons(playerid);
SetPlayerVirtualWorld(playerid, 400);
SetPlayerArmour(playerid, 10000000);
SetPlayerHealth(playerid, 10000000);
SetPlayerInterior(playerid, 0);
g_InArena[playerid] = false;
g_InFuga[playerid] = true;
SCM(playerid, -1, "{ff0000}WIZE | Voce foi teleportado para o mundo fugas!!");
}
if(listitem == 1)
{
SetPlayerVirtualWorld(playerid, 500);
ShowPlayerDialog(playerid, Dialog_Arenas, DIALOG_STYLE_LIST, "Arenas:", "Arena M4\nArena Ak47\nArena Desert\nArena Sniper\nArena MP5\nArena FVL\nArena Rush\nArena Pc\nArena Mobile", "Selecionar", "Fechar");
}
if(listitem == 2)
{
SetPlayerVirtualWorld(playerid, 600);
}
if(listitem == 3)
{
SetPlayerVirtualWorld(playerid, 700);
}
}
return 1;
}
Não há problemas em utilizar else, isso pode até ser bom para economizar processamento, já que utilizando else as outras opções não serão avaliadas exceto a que ele escolheu.
RE: Dialog não fecha - White_Blue - 12/07/2024
Acontece que você não está definindo o que o botão da dialog deve fazer ao ser pressionado. Ao clicar em qualquer botão, o código da dialog será executado, pois a distinção entre botões não é feita automaticamente. Se você quer que a dialog seja fechada ao clicar no botão 0 (botão direito), basta verificar se o usuário clicou no botão utilizando o parâmetro `response` e retornar 1.
Exemplo:
Código PHP: if(!response) return 1; // Verifica se o valor de response é 0/falso utilizando o operador de negação (também pode ser feito utilizando os operadores de igualdade, caso preferir) e retorna 1 (nesse caso, nada)
|