//Uma parte do sistema de registro
new arquivo[40], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, 32);
format(arquivo, 40, "Contas/%s.ini", name);
if(dialogid == DIALOG_REGISTRO)
{
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Registro", "\nDigite sua senha novamente para se registrar!", "Confirma", "Cancelar");
return 1;
}
if(!response)
{
Kick(playerid);
return 1;
}
else
{
PlayerInfo[playerid][Senha] = TerroR_HashKey(inputtext);
DOF2_CreateFile(arquivo);
DOF2_SetInt(arquivo, "Senha", PlayerInfo[playerid][Senha]);
DOF2_SetInt(arquivo, "Level", PlayerInfo[playerid][Level] = 2);
DOF2_SetInt(arquivo, "Admin", PlayerInfo[playerid][Admin] = 0);
DOF2_SetInt(arquivo, "Dinheiro", PlayerInfo[playerid][Dinheiro] = 1900);
DOF2_SetInt(arquivo, "Membro", PlayerInfo[playerid][Membro] = 0);
DOF2_SetInt(arquivo, "Lider", PlayerInfo[playerid][Lider] = 0);
DOF2_SetInt(arquivo, "Respeito", PlayerInfo[playerid][Respeito] = 0);
DOF2_SetInt(arquivo, "Tuto", PlayerInfo[playerid][Tuto] = 0);
DOF2_SetInt(arquivo, "Banco", PlayerInfo[playerid][Banco] = 500);
DOF2_SetInt(arquivo, "Matou", PlayerInfo[playerid][Matou] = 0);
DOF2_SetInt(arquivo, "Morreu", PlayerInfo[playerid][Morreu] = 0);
DOF2_SetInt(arquivo, "Drogas", PlayerInfo[playerid][Drogas] = 0);
DOF2_SetInt(arquivo, "Profissao", PlayerInfo[playerid][Profissao] = 0);
DOF2_SaveFile();
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк se cadastrou, agora й sу logar com sua senha registrada!", "Confirma", "Cancelar");
}
}
if(!response)
{
Kick(playerid);
return 1;
}
if(dialogid == DIALOG_LOGAR)
{
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
return 1;
}
if(!response)
{
Kick(playerid);
return 1;
}
//OnPlayerConnect
new arquivo[40], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, 32);
format(arquivo, 40, "Contas/%s.ini", name);
if(DOF2_FileExists(arquivo))
{
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк й Registrado, digite sua senha para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
}
else
{
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Registro", "Vocк ainda nгo й Registrado, digite uma senha para se registrar!", "Confirma", "Cancelar");
}
//Enum de infomarзхes
enum pInfo
{
Senha,
Level,
Admin,
Dinheiro,
Membro,
Lider,
Respeito,
Tuto,
Banco,
Matou,
Morreu,
Drogas,
Profissao
}
new PlayerInfo[MAX_PLAYERS][pInfo];
new Erro[MAX_PLAYERS];
//OnPlayerDesconnect
new arquivo[40], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, 32);
format(arquivo, 40, "Contas/%s.ini", name);
if(DOF2_FileExists(arquivo))
{
DOF2_SetInt(arquivo,"Dinheiro",GetPlayerMoney(playerid));
DOF2_SetInt(arquivo,"Level",PlayerInfo[playerid][Level]);
DOF2_SetInt(arquivo,"Admin",PlayerInfo[playerid][Admin]);
DOF2_SetInt(arquivo,"Membro",PlayerInfo[playerid][Membro]);
DOF2_SetInt(arquivo,"Lider",PlayerInfo[playerid][Lider]);
DOF2_SetInt(arquivo,"Respeito",PlayerInfo[playerid][Respeito]);
DOF2_SetInt(arquivo,"Tuto",PlayerInfo[playerid][Tuto]);
DOF2_SetInt(arquivo,"Banco",PlayerInfo[playerid][Banco]);
DOF2_SetInt(arquivo,"Matou",PlayerInfo[playerid][Matou]);
DOF2_SetInt(arquivo,"Morreu",PlayerInfo[playerid][Morreu]);
DOF2_SetInt(arquivo,"Drogas",PlayerInfo[playerid][Drogas]);
DOF2_SetInt(arquivo,"Profissao",PlayerInfo[playerid][Profissao]);
DOF2_SaveFile();
}
CMD:rg(playerid, params[])
{
Rg(playerid);
return true;
}
//----------------
Rg(playerid)
{
new PlayerName[MAX_PLAYER_NAME];
new String[128];
format(String, sizeof(String), "------------------------------------[ Seu RG %s ]-------------------------------------",PlayerName);
SendClientMessage(playerid, COLOR_GOLD,String);
format(String, sizeof(String), "Level: [%d] - Respeito: [%d] - Dinheiro: [%d] - Banco: [%d] - Emprego: [%s] ",PlayerInfo[playerid][Level], PlayerInfo[playerid][Respeito], PlayerInfo[playerid][Dinheiro], PlayerInfo[playerid][Banco], Profs(playerid), PlayerInfo[playerid][Profissao]);
SendClientMessage(playerid, Branco,String);
SendClientMessage(playerid, COLOR_GOLD, "------------------------------------------------------------------------------------");
return 1;
}
Essa й a questгo eu ainda nгo sei tudo sobre pawn, E tambйm nгo sei o significado de um loop
|
for(new i = 0; i < MAX_PLAYERS; i++)
{
//Codigo
}
GetPlayerName(playerid, Nome, sizeof(Nome));
// Entгo Ficando
GetPlayerName(i, Nome, sizeof(Nome));
Definindo para todos os players a mesma aзгo em vez de um player apenas.
Em vez de:
for(new i = 0; i < MAX_PLAYERS; i++)
//Apenas
foreach(i, Player)
forward qualquernome(playerid);
public qualquernome(playerid)
{
static arquivo[40], name[MAX_PLAYER_NAME+1]; // Aqui, usamos static.
GetPlayerName(playerid, name,sizeof(name)); // MAX_PLAYER_NAME = 24, entгo o valor que que colocaste й invalido.
format(arquivo, 40, "Contas/%s.ini", name); // Formatando o nome.
if(DOF2_FileExists(arquivo)) // caso jб existe, inserir estas informaзхes.
{
DOF2_SetInt(arquivo,"Dinheiro",GetPlayerMoney(playerid));
DOF2_SetInt(arquivo,"Level",PlayerInfo[playerid][Level]);
DOF2_SetInt(arquivo,"Admin",PlayerInfo[playerid][Admin]);
DOF2_SetInt(arquivo,"Membro",PlayerInfo[playerid][Membro]);
DOF2_SetInt(arquivo,"Lider",PlayerInfo[playerid][Lider]);
DOF2_SetInt(arquivo,"Respeito",PlayerInfo[playerid][Respeito]);
DOF2_SetInt(arquivo,"Tuto",PlayerInfo[playerid][Tuto]);
DOF2_SetInt(arquivo,"Banco",PlayerInfo[playerid][Banco]);
DOF2_SetInt(arquivo,"Matou",PlayerInfo[playerid][Matou]);
DOF2_SetInt(arquivo,"Morreu",PlayerInfo[playerid][Morreu]);
DOF2_SetInt(arquivo,"Drogas",PlayerInfo[playerid][Drogas]);
DOF2_SetInt(arquivo,"Profissao",PlayerInfo[playerid][Profissao]);
DOF2_SaveFile();
}
}
//Bom leo, mas como eu ativo isso ??? Simples, utilize um settimer.
new qualquercoisa[MAX_PLAYERS]; // Para todos os jogadores. Topo do Gm.
public OnPlayerConnect(playerid) // colocar o settimer no inicio ou no fim, Apenas para ficar organizado.
{
qualquercoisa[playerid] = SetTimer("qualquernome",5000,true); // porque true? pois com true irб se repetir. Se quiser, mude o tempo de atualizaзгo.
}