Dialog. -
ViniZiNN - 30.03.2018
Olб,
Eu queria uma ajuda para transferir o /admins para DIALOG. Como eu ainda estou aprendendo, peguei uma GM e comecei a editar nela, porйm o estilo que ela tinha nгo era tipo "aInfo[playerid][Admin] => 5", era cada cargo com um desses... ai achei complicado.
Cуdigo do /admins sem o DIALOG:
Код:
if(!strcmp(cmd, "/admins", true) || !strcmp(cmd, "/mods", true) || !strcmp(cmd, "/administradores", true) || !strcmp(cmd, "/moderadores", true))
{
SendClientMessage(playerid, AZUL_WE, "Administraзгo online:");
new
adml, adm, mdr, hlp, crg
;
foreach(Player, i)
{
if(WE_GetInt(f(i), "AdminL") == 1)
{
if(aInfo[i][Oculto] == false)
{
adml ++;
format(string, sizeof(string), "{FF1E1E}%s [%d] {FFFFFF}- Cargo: {328E0A}Dono(a)", PlayerName(i), i);
SendClientMessage(playerid, VERMELHO_WE, string);
}
}
if(aInfo[i][Admin] == 1 && WE_GetInt(f(i), "AdminL") == 0)
{
if(aInfo[i][Oculto] == false)
{
adm ++;
format(string, sizeof(string), "{FF1E1E}%s [%d] {FFFFFF}- Cargo: {008bce}Administrador(a)", PlayerName(i), i);
SendClientMessage(playerid, VERMELHO_WE, string);
}
}
if(aInfo[i][Moderador] == 1 && WE_GetInt(f(i), "AdminL") == 0)
{
if(aInfo[i][Oculto] == false)
{
mdr ++;
format(string, sizeof(string), "{1E90FF}%s [%d] {FFFFFF}- Cargo: {FF8C00}Moderador(a)", PlayerName(i), i);
SendClientMessage(playerid, AZUL_WE, string);
}
}
if(aInfo[i][Ajudante] == 1 && WE_GetInt(f(i), "AdminL") == 0)
{
if(aInfo[i][Oculto] == false)
{
hlp ++;
format(string, sizeof(string), "{1E90FF}%s [%d] {FFFFFF}- Cargo: {FFFF00}Ajudante", PlayerName(i), i);
SendClientMessage(playerid, AZUL_WE, string);
}
}
if(aInfo[i][Corregedor] == 1 && WE_GetInt(f(i), "AdminL") == 0)
{
if(aInfo[i][Oculto] == false)
{
crg ++;
format(string, sizeof(string), "{1E90FF}%s [%d] {FFFFFF}- Cargo: {1E90FF}Corregedor(a)", PlayerName(i), i);
SendClientMessage(playerid, AZUL_WE, string);
}
}
}
if(adm == 0 && mdr == 0 && adml == 0 && hlp == 0 && crg == 0) return SendClientMessage(playerid, VERMELHO_WE, "Nenhum membro da administraзгo conectado no momento.");
return 1;
}
Exemplo de como eu queria que ficasse ( eu fiz isso, mas sem os cуdigos para pegar nome do Adm e Cargo)
Ficarei grato pelo ajuda
Re: Dialog. -
FerrariL - 30.03.2018
Veja se й isso que queres,tinha muita coisa desnecessбria nesse cуdigo.
Criei duas funзхes para facilitar sua vida,para nгo ficar fazendo condicional toda hora para verificar o cargo do jogador ou verificar se ele й administrador.
PHP код:
Cargos(playerid)
{
new Str[25];
if(WE_GetInt(f(playerid), "AdminL") == 1)
{
Str = "Dono";
}
else if(aInfo[playerid][Admin] == 1 && WE_GetInt(f(playerid), "AdminL") == 0)
{
Str = "Administrador";
}
else if(aInfo[playerid][Moderador] == 1 && WE_GetInt(f(playerid), "AdminL") == 0)
{
Str = "Moderador";
}
else if(aInfo[playerid][Ajudante] == 1 && WE_GetInt(f(playerid), "AdminL") == 0)
{
Str = "Ajudante";
}
else if(aInfo[playerid][Corregedor] == 1 && WE_GetInt(f(playerid), "AdminL") == 0)
{
Str = "Corregedor";
}
return Str;
}
IsAdmin(playerid)
{
if((WE_GetInt(f(playerid), "AdminL") == 1) || aInfo[playerid][Admin] == 1 && WE_GetInt(f(playerid), "AdminL") == 0 || aInfo[playerid][Moderador] == 1 && WE_GetInt(f(playerid), "AdminL") == 0 || aInfo[playerid][Ajudante] == 1 && WE_GetInt(f(playerid), "AdminL") == 0 || aInfo[playerid][Corregedor] == 1 && WE_GetInt(f(playerid), "AdminL") == 0)
return true;
else return false;
}
if(!strcmp(cmd, "/admins", true) || !strcmp(cmd, "/mods", true) || !strcmp(cmd, "/administradores", true) || !strcmp(cmd, "/moderadores", true))
{
SendClientMessage(playerid, AZUL_WE, "Administraзгo online:");
new
adml,Str[80];
foreach(Player, i)
{
if(IsAdmin(playerid))
{
if(aInfo[i][Oculto] == false)
{
adml ++;
format(string, sizeof(string), "{FF1E1E}%s [%d] {FFFFFF}- Cargo: {328E0A}%s", PlayerName(i), i,Cargos(i));
strcat(Str,string);
}
}
}
ShowPlayerDialog(playerid, 4444, DIALOG_STYLE_TABLIST, "Administradores",Str,"Ok","");
if(adm1 == 0) SendClientMessage(playerid, VERMELHO_WE, "Nenhum membro da administraзгo conectado no momento.");
return 1;
}
Re: Dialog. -
ViniZiNN - 30.03.2018
Obrigado @FerrariL, pelas funзхes que vocк ofereceu <3 Agradeзo de coraзгo.
O cуdigo do /admins deu certo, porйm in-game nгo.
Eu entrei com outra conta ao mesmo tempo e quando dei /admins... ficava em apenas uma linha os dois adm's.
Re: Dialog. -
FerrariL - 30.03.2018
Troque por isto :
PHP код:
if(!strcmp(cmd, "/admins", true) || !strcmp(cmd, "/mods", true) || !strcmp(cmd, "/administradores", true) || !strcmp(cmd, "/moderadores", true))
{
SendClientMessage(playerid, AZUL_WE, "Administraзгo online:");
new
adml,Str[80];
foreach(Player, i)
{
if(IsAdmin(playerid))
{
if(aInfo[i][Oculto] == false)
{
adml ++;
format(string, sizeof(string), "{FF1E1E}%s [%d] {FFFFFF}- Cargo: {328E0A}%s\n", PlayerName(i), i,Cargos(i));
strcat(Str,string);
}
}
}
ShowPlayerDialog(playerid, 4444, DIALOG_STYLE_TABLIST, "Administradores",Str,"Ok","");
if(adm1 == 0) SendClientMessage(playerid, VERMELHO_WE, "Nenhum membro da administraзгo conectado no momento.");
return 1;
}
Re: Dialog. -
ViniZiNN - 30.03.2018
Agora nгo mostra mais o cargo do adm
Re: Dialog. -
FerrariL - 30.03.2018
Nгo,vocк tem que usar o cуdigo que te passei,vocк vai manter as funзхes e trocar sу o comando.
Sistema completo :
PHP код:
Cargos(playerid)
{
new Str[25];
if(WE_GetInt(f(playerid), "AdminL") == 1)
{
Str = "Dono";
}
else if(aInfo[playerid][Admin] == 1 && WE_GetInt(f(playerid), "AdminL") == 0)
{
Str = "Administrador";
}
else if(aInfo[playerid][Moderador] == 1 && WE_GetInt(f(playerid), "AdminL") == 0)
{
Str = "Moderador";
}
else if(aInfo[playerid][Ajudante] == 1 && WE_GetInt(f(playerid), "AdminL") == 0)
{
Str = "Ajudante";
}
else if(aInfo[playerid][Corregedor] == 1 && WE_GetInt(f(playerid), "AdminL") == 0)
{
Str = "Corregedor";
}
return Str;
}
IsAdmin(playerid)
{
if((WE_GetInt(f(playerid), "AdminL") == 1) || aInfo[playerid][Admin] == 1 && WE_GetInt(f(playerid), "AdminL") == 0 || aInfo[playerid][Moderador] == 1 && WE_GetInt(f(playerid), "AdminL") == 0 || aInfo[playerid][Ajudante] == 1 && WE_GetInt(f(playerid), "AdminL") == 0 || aInfo[playerid][Corregedor] == 1 && WE_GetInt(f(playerid), "AdminL") == 0)
return true;
else return false;
}
if(!strcmp(cmd, "/admins", true) || !strcmp(cmd, "/mods", true) || !strcmp(cmd, "/administradores", true) || !strcmp(cmd, "/moderadores", true))
{
SendClientMessage(playerid, AZUL_WE, "Administraзгo online:");
new
adml,Str[80];
foreach(Player, i)
{
if(IsAdmin(playerid))
{
if(aInfo[i][Oculto] == false)
{
adml ++;
format(string, sizeof(string), "{FF1E1E}%s [%d] {FFFFFF}- Cargo: {328E0A}%s\n", PlayerName(i), i,Cargos(i));
strcat(Str,string);
}
}
}
ShowPlayerDialog(playerid, 4444, DIALOG_STYLE_TABLIST, "Administradores",Str,"Ok","");
if(adm1 == 0) SendClientMessage(playerid, VERMELHO_WE, "Nenhum membro da administraзгo conectado no momento.");
return 1;
}
Re: Dialog. -
ViniZiNN - 30.03.2018
Estб completo o Sistema ^^, segue a print:
Re: Dialog. -
FerrariL - 30.03.2018
Aumente o nъmero de strings de
para
Re: Dialog. -
ViniZiNN - 30.03.2018
Resolvido o problema das linhas, mas agora surgiu outro problema :/
Eu removi o cargo do mesmo e mesmo assim ele ainda aparece no /admins, segue a print
Re: Dialog. -
FerrariL - 30.03.2018
Veja agora :
PHP код:
IsAdmin(playerid)
{
if((WE_GetInt(f(playerid), "AdminL") == 1) || aInfo[playerid][Admin] == 1 || aInfo[playerid][Moderador] == 1 || aInfo[playerid][Ajudante] == 1 || aInfo[playerid][Corregedor] == 1)
return true;
else return false;
}