Cara, vocк tem alguma experiкncia no pawn? Quando eu comecei eu nгo tinha ideia alguma sobre a linguagem. Depois eu fui aprendendo, e acredite em mim, й fбcil criar um sistema como esses.
PHP код:
//Antes de qualquer coisa, em sua pasta scriptfiles, crie uma pasta denominada InfoOrg.
//Para esse InfoOrg vocк deverб usar a include DINI, futuramente vista.
#include <dini>
//Vamos criar uma forward para futuramente usar uma Public, que tal?
forward SalvarInfoOrg(playerid);
forward CarregarInfoOrg(playerid);
//Vocк deverб criar uma variбvel para o sistema.
enum InfoOrg
{
VagaID
}
new pInfoOrg[MAX_PLAYERS][InfoOrg];
// Agora que criamos a variбvel vocк deverб criar o sistema de salvamento/carregamento, que por sua vez pode ser feito em DINI, uma include nгo muito rбpida mas de fбcil manutenзгo.
public CarregarInfoOrg(playerid) // Public registrada anteriormente pela forward
{
if(PlayerInfo[playerid][pMembro] > 0 || PlayerInfo[playerid][pLider] > 0) // Caso vocк use outra variбvel, altere a aqui setada.
{
new caminho[56];//Nгo sou muito bom em contar caracteres para por a string de modo correto, entгo sempre deixo assim.
if(PlayerInfo[playerid][pLider] == 0) format(caminho, sizeof(caminho), "/InfoOrg/Org%d.ini", PlayerInfo[playerid][pMembro]); // Esse й o caminho do arquivo
if(PlayerInfo[playerid][pLider] > 0) format(caminho, sizeof(caminho, "InfoOrg/Org%d.ini", PlayerInfo[playerid][pLider]); // Esse й o caminho do arquivo caso o player seja lнder de alguma organizaзгo.
if(!dini_Exists(caminho)) dini_Create(caminho); // Essa linha checarб se o arquivo existe ou nгo, caso negativo, criarб o mesmo.
new nomedoplayer[MAX_PLAYER_NAME];//Essa variбvel serб usada para ver o nome do player.
GetPlayerName(playerid, nomedoplayer, sizeof(nomedoplayer));//Essa linha pegarб o nome do player e incluirб na variбvel
pInfoOrg[playerid][VagaID] = 0;
// AS LINHAS ABAIXO SГO AS VAGAS
if(dini_Get(caminho, "Vaga1") == nomedoplayer) return pInfoOrg[playerid][VagaID] = 1;
if(dini_Get(caminho, "Vaga2") == nomedoplayer) return pInfoOrg[playerid][VagaID] = 2;
if(dini_Get(caminho, "Vaga3") == nomedoplayer) return pInfoOrg[playerid][VagaID] = 3;
if(dini_Get(caminho, "Vaga4") == nomedoplayer) return pInfoOrg[playerid][VagaID] = 4;
if(dini_Get(caminho, "Vaga5") == nomedoplayer) return pInfoOrg[playerid][VagaID] = 5;
if(dini_Get(caminho, "Vaga6") == nomedoplayer) return pInfoOrg[playerid][VagaID] = 6;
if(dini_Get(caminho, "Vaga7") == nomedoplayer) return pInfoOrg[playerid][VagaID] = 7;
if(pInfoOrg[playerid][VagaID] == 0)
{
if(!PlayerInfo[playerid][pLider] == dini_Get(caminho, "Lider")) // Caso o nome do lнder contido no arquivo seja diferente do nome
{
PlayerInfo[playerid][pLider] = 0;
PlayerInfo[playerid][pMembro] = 0;
SetPlayerSkin(playerid, 23);
SpawnPlayer(playerid);
SendClientMessage(playerid, 0xFFFFFFFF, "Vocк foi demitido de sua organizaзгo enquanto estava OffLine, sinto muito!");
}//Vocк poderб ver quais sгo as outras variбveis setadas no /pedircontas e acrescentar aqui.
}
}
}
public SalvarInfoOrg(playerid)//Public anteriormente definida pela forward
{
if(PlayerInfo[playerid][pMembro] > 0 || PlayerInfo[playerid][pLider] > 0)
{
new caminho[56];
if(PlayerInfo[playerid][pLider] == 0) format(caminho, sizeof(caminho), "/InfoOrg/Org%d.ini", PlayerInfo[playerid][pMembro])
if(PlayerInfo[playerid][pLider] > 0) format(caminho, sizeof(caminho), "/InfoOrg/Org%d.ini", PlayerInfo[playerid][pLider])
new nomedoplayer[MAX_PLAYER_NAME];
GetPlayerName(playerid, nomedoplayer, sizeof(nomedoplayer)));
if(!dini_Exists(caminho)) dini_Create(caminho);
new vagaid[16];
if(PlayerInfo[playerid][pLider] > 0) format(vagaid, sizeof(vagaid), "Vaga%d", PlayerInfo[playerid][pLider]); dini_Set(caminho, vagaid, nomedoplayer);
if(PlayerInfo[playerid][pLider] == 0) dini_Set(caminho, "Lider", nomedoplayer);
}
}//Aqui salvamos o InfoOrg com sucesso, xD.
// Vocк deverб acrescentar a funзгo SalvarInfoOrg(playerid) na public OnPlayerLogin(se estiver usando GF) e na public OnPlayerDisconnect, alйm de tambйm acrescentar nos comandos: /pedircontas*, /convidar* e /demitir*
//*: Pode ser diferente em seu Gamemode.
//Que tal agora fazer o comando /Infoorg? Eu topo!
//Acrescente-o na public OnPlayerCommandText.
if(strcmp(cmd, "/infoorg", true) == 0)
{
if(PlayerInfo[playerid][pMembro] > 0 || PlayerInfo[playerid][pLider] > 0)
{
new caminho[56];
if(PlayerInfo[playerid][pLider] == 0) format(caminho, sizeof(caminho), "/InfoOrg/Org%d", PlayerInfo[playerid][pMembro]);
if(PlayerInfo[playerid][pLider] > 0) format(caminho, sizeof(caminho), "/InfoOrg/Org%d", PlayerInfo[playerid][pLider]);
new v1[16], v2[16], v3[16], v4[16], v5[16], v6[16], v7[16], l[16];
format(v1, sizeof(v1), "~~> Vaga 1: %s", dini_Get(caminho, "Vaga1);
format(v2, sizeof(v2), "~~> Vaga 2: %s", dini_Get(caminho, "Vaga2);
format(v3, sizeof(v3), "~~> Vaga 3: %s", dini_Get(caminho, "Vaga3);
format(v4, sizeof(v4), "~~> Vaga 4: %s", dini_Get(caminho, "Vaga4);
format(v5, sizeof(v5), "~~> Vaga 5: %s", dini_Get(caminho, "Vaga5);
format(v6, sizeof(v6), "~~> Vaga 6: %s", dini_Get(caminho, "Vaga6);
format(v7, sizeof(v7), "~~> Vaga 7: %s", dini_Get(caminho, "Vaga7);
format(l, sizeof(l), "~~> Lider da Organizaзгo: %s", dini_Get(caminho, "Lider");
SendClientMessage(playerid, 0xFFFFFFF, "Informaзхes da Organizaзгo");
SendClientMessage(playerid, 0xFFFFFFF, l);
SendClientMessage(playerid, 0xFFFFFFF, v1);
SendClientMessage(playerid, 0xFFFFFFF, v2);
SendClientMessage(playerid, 0xFFFFFFF, v3);
SendClientMessage(playerid, 0xFFFFFFF, v4);
SendClientMessage(playerid, 0xFFFFFFF, v5);
SendClientMessage(playerid, 0xFFFFFFF, v6);
SendClientMessage(playerid, 0xFFFFFFF, v7);
}
return 1;
}
Cara, acho que isso aн dб.