if(dialogid == 9999)
{
return ShowPlayerDialog(playerid, DIALOG_HIERARQUIA, DIALOG_STYLE_LIST, "Hierarquia Da Comunidade",
"Administradores\n\
Lнderes da Facзгo\n\
Donos do morro\n\
Frentes\n\
Gerentes\n\
Vapores\n\
Fogueteiros\n\
Radinhos\n",
"Escolher", "Cancelar");
}
if(dialogid == DIALOG_HIERARQUIA)
{
if(response)
{
new gStr[128], info[2048];
if(listitem == 0)// Administrador
{
for(new i; i < MAX_PLAYERS; i++)
{
if(Player[i][pAdmin] > 0 && Player[i][pFaccoes] == Player[playerid][pFaccoes])
{
format(gStr, sizeof(gStr), "{ff0000}» {ffffff}%s\n", getPName(i));
strcat(info, gStr);
}
}
strcat(info, " ");
ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Administradores da Comunidade", info,"Ok","Voltar");
return 1;
}
if(listitem == 1)// Lider
{
for(new i; i < MAX_PLAYERS; i++)
{
if(Player[i][pLider] > 0 && Player[i][pFaccoes] == Player[playerid][pFaccoes])
{
format(gStr, sizeof(gStr), "{ff0000}» {ffffff}%s\n", getPName(i));
strcat(info, gStr);
}
}
strcat(info, " ");
ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Lider da Facзгo", info,"Ok","Voltar");
return 1;
}
if(listitem == 2)// Donos do morro
{
for(new i; i < MAX_PLAYERS; i++)
{
if(Player[i][pDM] > 0 && Player[i][pFaccoes] == Player[playerid][pFaccoes])
{
format(gStr, sizeof(gStr), "{ff0000}» {ffffff}%s\n", getPName(i));
strcat(info, gStr);
}
}
strcat(info, " ");
ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Dono da Comunidade", info, "Ok","Voltar");
return 1;
}
if(listitem == 3)// Frentes
{
for(new i; i < MAX_PLAYERS; i++)
{
if(Player[i][pFrente] > 0 && Player[i][pFaccoes] == Player[playerid][pFaccoes])
{
format(gStr, sizeof(gStr), "{ff0000}» {ffffff}%s\n", getPName(i));
strcat(info, gStr);
}
}
strcat(info, " ");
ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Frente da Comunidade", info,"Ok","Voltar");
return 1;
}
if(listitem == 4)// Gerentes
{
for(new i; i < MAX_PLAYERS; i++)
{
if(Player[i][pGerente] > 0 && Player[i][pFaccoes] == Player[playerid][pFaccoes])
{
format(gStr, sizeof(gStr), "{ff0000}» {ffffff}%s\n", getPName(i));
strcat(info, gStr);
}
}
strcat(info, " ");
ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Gerente da Comunidade",info,"Ok","Voltar");
return 1;
}
if(listitem == 5)// Vaporzгo
{
for(new i; i < MAX_PLAYERS; i++)
{
if(Player[i][pVapor] > 0 && Player[i][pFaccoes] == Player[playerid][pFaccoes])
{
format(gStr, sizeof(gStr), "{ff0000}» {ffffff}%s\n", getPName(i));
strcat(info, gStr);
}
}
strcat(info, " ");
ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Vapor da Comunidade", info,"Ok","Voltar");
return 1;
}
if(listitem == 6)// Fogueteiros
{
for(new i; i < MAX_PLAYERS; i++)
{
if(Player[i][pFogueteiro] > 0 && Player[i][pFaccoes] == Player[playerid][pFaccoes])
{
format(gStr, sizeof(gStr), "{ff0000}» {ffffff}%s\n", getPName(i));
strcat(info, gStr);
}
}
strcat(info, " ");
ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Fogueteiro da Comunidade", info,"Ok","Voltar");
return 1;
}
}
return 1;
}
Vou tentar desclever pala vocк.
Clie um arquivo chamado faction_1.ini , nele vocк vai salvar os cargos, exemplo: [faction_1.ini] Lider: Belingela Dono: Macalгo Flente: Lalanja Gelente: Lasanha Vapor: Fumasa Fogueteilo: Jacale Depois й sу vocк usar o GET do DOF2 pala pegar os nomes. |
#define MAX_FACCOES 50 //Mбximo de facзхes que vocк quer ter no seu servidor, tanto faz o nъmero, vocк que manda!
enum FaccaoEnum //topo do cуdigo
{
Administrador1[MAX_PLAYER_NAME],
Administrador2[MAX_PLAYER_NAME],
Administrador3[MAX_PLAYER_NAME],
Lider1[MAX_PLAYER_NAME],
Lider2[MAX_PLAYER_NAME],
Lider3[MAX_PLAYER_NAME],
DonoComunidade1[MAX_PLAYER_NAME],
Frente[MAX_PLAYER_NAME],
CofreFaccao,
DrogasFaccao
//Por aн vai... O ъltimo item do Enum nгo tem "," no final, nгo esqueзa...
}
new FaccaoDados[MAX_FACCOES][FaccaoEnum];
stock CarregarFaccoes() //final do cуdigo
{
new Contador[50];
for(new i = 0; i < MAX_FACCOES; i++)
{
format(Contador, sizeof(Contador), PASTA_VEICULOS, i);
if(DOF2_FileExists(Contador))
{
strmid(FaccaoDados[i][Administrador1], DOF2_GetString(Contador, "Administrador1"), 0, strlen(DOF2_GetString(Contador, "Administrador1")), MAX_PLAYER_NAME); //Quando й texto faзa desse modo
strmid(FaccaoDados[i][Administrador1], DOF2_GetString(Contador, "Administrador2"), 0, strlen(DOF2_GetString(Contador, "Administrador2")), MAX_PLAYER_NAME);
strmid(FaccaoDados[i][Administrador1], DOF2_GetString(Contador, "Administrador3"), 0, strlen(DOF2_GetString(Contador, "Administrador3")), MAX_PLAYER_NAME);
strmid(FaccaoDados[i][Placa], DOF2_GetString(Contador, "Lider1"), 0, strlen(DOF2_GetString(Contador, "Lider1")), 10);
//etc...
FaccaoDados[i][CofreFaccao] = DOF2_GetInt(Contador, "CofreFaccao"); //Valores inteiros desse modo
FaccaoDados[i][DrogasFaccao] = DOF2_GetInt(Contador, "DrogasFaccao");
}
}
return 1;
}
Seguinte, pelo o que eu vi vocк salva essas informaзхes no jogador, tipo qual a facзгo do player, qual cargo, etc.. Mas o ideal й que vocк crie um salvamento em DOF2 para as facзхes criminosas do seu servidor, comece com um Enum:
PHP код:
PHP код:
|
Mano jб uso pra salve jб tem mano mais tipo queria bota pra pegar os players offline jб tem funзгo pra pega os cargos tendeu
|
As enum sгo
Dono,
Lider
Cargo,
DOF2_SetInt(PegarConta(playerid), "Lider", Player[playerid][Lider]);
DOF2_SetInt(PegarConta(playerid), "Cargo", Player[playerid][Cargo]);
DOF2_SetInt(PegarConta(playerid), "Dono", Player[playerid][Dono]);
Player[playerid][Lider] = DOF2_GetInt(PegarConta(playerid), "Lider");
Player[playerid][Cargo] = DOF2_GetInt(PegarConta(playerid), "Cargo");
Player[playerid][Dono] = DOF2_GetInt(PegarConta(playerid), "Dono");
CMD:setcargo(playerid, params[])
{
new string[500];
if(Player[playerid][Admin] < 4)
return SCM(playerid, COLOR_ORANGE, MSG_CMD_WITHOUT_PERMISSION);
new id, level;
if(sscanf(params, "ui", id, level))
return SCM(playerid, 0xa4a4a4AA, ""TAG_USOCORRETO" /setcargo [playerid] [level]");
switch(level)
{
case 1: //Caso o level digitado seje 1 o player serб fogueteiro.
{
Player[id][Cargo] = 1;
SendFormattedMessage(playerid,COLOR_WHITE,""TAG_SERVER" Vocк setou %s de Fogueteiro.",Nome(id));
SendFormattedMessage(id,COLOR_WHITE,""TAG_SERVER" Vocк foi setado de Fogueteiro pelo %s %s.", AccountName(playerid), Nome(playerid));
format(string, sizeof(string),""TAG_SERVER" o %s %s setou %s de Fogueteiro.", AccountName(playerid), Nome(playerid), Nome(id));
MensagemAdmin(string);
format(string, sizeof(string), ""TAG_SERVER" O %s %s setou %s de Fogueteiro.", Nome(playerid), AccountName(playerid), Nome(id));
DarCargo(string);
SalvarDados(id);
}
case 2: //Caso o level digitado seje 2 o player serб Vapor.
{
Player[id][Cargo] = 2;
SendFormattedMessage(playerid,COLOR_WHITE,""TAG_SERVER" Vocк setou %s de Vapor.",Nome(id));
SendFormattedMessage(id,COLOR_WHITE,""TAG_SERVER" Vocк foi setado de Vapor pelo %s %s.", AccountName(playerid), Nome(playerid));
format(string, sizeof(string),""TAG_SERVER" o %s %s setou %s de Vapor.", AccountName(playerid), Nome(playerid), Nome(id));
MensagemAdmin(string);
format(string, sizeof(string), ""TAG_SERVER" O %s %s setou %s de Vapor.", Nome(playerid), AccountName(playerid), Nome(id));
DarCargo(string);
SalvarDados(id);
}
case 3: //Caso o level digitado seje 3 o player serб Gerente.
{
Player[id][Cargo] = 3;
SendFormattedMessage(playerid,COLOR_WHITE,""TAG_SERVER" Vocк setou %s de Gerente.",Nome(id));
SendFormattedMessage(id,COLOR_WHITE,""TAG_SERVER" Vocк foi setado de Gerente pelo %s %s.", AccountName(playerid), Nome(playerid));
format(string, sizeof(string),""TAG_SERVER" o %s %s setou %s de Gerente.", AccountName(playerid), Nome(playerid), Nome(id));
MensagemAdmin(string);
format(string, sizeof(string), ""TAG_SERVER" O %s %s setou %s de Gerente.", Nome(playerid), AccountName(playerid), Nome(id));
DarCargo(string);
SalvarDados(id);
}
case 4: //Caso o level digitado seje 4 o player serб Frente.
{
Player[id][Cargo] = 4;
SendFormattedMessage(playerid,COLOR_WHITE,""TAG_SERVER" Vocк setou %s de Frente.",Nome(id));
SendFormattedMessage(id,COLOR_WHITE,""TAG_SERVER" Vocк foi setado de Frente pelo %s %s.", AccountName(playerid), Nome(playerid));
format(string, sizeof(string),""TAG_SERVER" o %s %s setou %s de Frente.", AccountName(playerid), Nome(playerid), Nome(id));
MensagemAdmin(string);
format(string, sizeof(string), ""TAG_SERVER" O %s %s setou %s de Frente.", Nome(playerid), AccountName(playerid), Nome(id));
DarCargo(string);
SalvarDados(id);
}
default: //caso o player digitou outro nъmero
{
SendClientMessage(playerid,-1,""TAG_ERRO" /setcargo [id] level de 0 a 4");
}
}
return true;
}
if(dialogid == DIALOG_HIERARQUIA)
{
if(response)
{
new gStr[128], info[2048];
if(listitem == 0)// Administrador
{
for(new i; i < MAX_PLAYERS; i++)
{
if(Player[i][Admin] > 0 && Player[i][Faccoes] == Player[playerid][Faccoes])
{
format(gStr, sizeof(gStr), "{ff0000}» {ffffff}%s\n", Nome(i));
strcat(info, gStr);
}
}
strcat(info, " ");
ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Administradores da Comunidade", info,"Ok","Voltar");
return 1;
}
if(listitem == 1)// Lider
{
for(new i; i < MAX_PLAYERS; i++)
{
if(Player[i][Lider] > 0 && Player[i][Faccoes] == Player[playerid][Faccoes])
{
format(gStr, sizeof(gStr), "{ff0000}» {ffffff}%s\n", Nome(i));
strcat(info, gStr);
}
}
strcat(info, " ");
ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Lider da Facзгo", info,"Ok","Voltar");
return 1;
}
if(listitem == 2)// Donos do morro
{
for(new i; i < MAX_PLAYERS; i++)
{
if(Player[i][Dono] > 0 && Player[i][Faccoes] == Player[playerid][Faccoes])
{
format(gStr, sizeof(gStr), "{ff0000}» {ffffff}%s\n", Nome(i));
strcat(info, gStr);
}
}
strcat(info, " ");
ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Dono da Comunidade", info, "Ok","Voltar");
return 1;
}
if(listitem == 3)// Frentes
{
for(new i; i < MAX_PLAYERS; i++)
{
if(Player[i][Cargo] > 4 && Player[i][Faccoes] == Player[playerid][Faccoes])
{
format(gStr, sizeof(gStr), "{ff0000}» {ffffff}%s\n", Nome(i));
strcat(info, gStr);
}
}
strcat(info, " ");
ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Frente da Comunidade", info,"Ok","Voltar");
return 1;
}
if(listitem == 4)// Gerentes
{
for(new i; i < MAX_PLAYERS; i++)
{
if(Player[i][Cargo] > 3 && Player[i][Faccoes] == Player[playerid][Faccoes])
{
format(gStr, sizeof(gStr), "{ff0000}» {ffffff}%s\n", Nome(i));
strcat(info, gStr);
}
}
strcat(info, " ");
ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Gerente da Comunidade",info,"Ok","Voltar");
return 1;
}
if(listitem == 5)// Vaporzгo
{
for(new i; i < MAX_PLAYERS; i++)
{
if(Player[i][Cargo] > 2 && Player[i][Faccoes] == Player[playerid][Faccoes])
{
format(gStr, sizeof(gStr), "{ff0000}» {ffffff}%s\n", Nome(i));
strcat(info, gStr);
}
}
strcat(info, " ");
ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Vapor da Comunidade", info,"Ok","Voltar");
return 1;
}
if(listitem == 6)// Fogueteiros
{
for(new i; i < MAX_PLAYERS; i++)
{
if(Player[i][Cargo] > 1 && Player[i][Faccoes] == Player[playerid][Faccoes])
{
format(gStr, sizeof(gStr), "{ff0000}» {ffffff}%s\n", Nome(i));
strcat(info, gStr);
}
}
strcat(info, " ");
ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Fogueteiro da Comunidade", info,"Ok","Voltar");
return 1;
}
}
return 1;
}