07.07.2012, 00:39
Ola pessoal eu tenho um game mode com sistema de registro que salva quando o player sai do serve, eu queria atualizes-se sem ele ter que sai, Entгo como seria?
Como ficaria esse cуdigo?
@EDIT
Para explicar melhor minha duvida irei dar um exemplo
Por exemplo eu do o comando /grana e ganho dinheiro mais sу que os meus status originais nгo atualiza tipo no /rg continua aparecer a contia antiga
pawn Код:
//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();
}
@EDIT
Para explicar melhor minha duvida irei dar um exemplo
Por exemplo eu do o comando /grana e ganho dinheiro mais sу que os meus status originais nгo atualiza tipo no /rg continua aparecer a contia antiga