Ajuda salvamento bugando -
LE4NDrO - 02.08.2014
Galera , esse meu salvamento ele salva mas muitas vezes buga tambйm , eu dou /q e tem vez que volto desetado de tudo , minha conta fica registrada mas ela nгo fica setada de nada , sу acontece as vezes eu fiz o teste pelo /rcon gmx , peguei outro gamemode e testei o gmx e votei setado , quando fui fazer no meu ele volta desetado todas as vezes.
Resumindo : o gamemode sу salva quando quer , muitas das vezes quando vou relogar volto sem estб setado
Codigo V
Код:
SalvarPlayer(playerid)
{
AntiDeAMX();
new String[256];
format(String, sizeof(String), CONTAS, Nome(playerid));
DOF2_SetInt(String,"Administrador", PlayerInfo[playerid][pAdmin]);
DOF2_SetInt(String,"ADM", PlayerInfo[playerid][pADM]);
DOF2_SetInt(String,"CBF", PlayerInfo[playerid][pCBF]);
DOF2_SetInt(String,"PMLV", PlayerInfo[playerid][pPMLV]);
DOF2_SetInt(String,"PMLS", PlayerInfo[playerid][pPMLS]);
DOF2_SetInt(String,"PMSF", PlayerInfo[playerid][pPMSF]);
DOF2_SetInt(String,"RGT", PlayerInfo[playerid][pRGT]);
DOF2_SetInt(String,"Narrador", PlayerInfo[playerid][pNarrador]);
DOF2_SetInt(String,"Score", GetPlayerScore(playerid));
DOF2_SetInt(String,"Viptemp", PlayerInfo[playerid][pVip]);
new date[32];
new hour, minute, second, day, month, year;
gettime(hour, minute, second);
getdate(year, month, day);
format(date, 32,"%d/%d/%d/%d/%d/%d",day,month,year,hour, minute, second);
DOF2_SetString(String,"LastLogin", date);
DOF2_SetInt(String,"LastLoginTick", Now());
DOF2_SaveFile();
return 1;
}
SetarPlayer(playerid)
{
AntiDeAMX();
new String[256];
format(String, sizeof(String), CONTAS, Nome(playerid));
PlayerInfo[playerid][pAdmin] = DOF2_GetInt(String, "Administrador");
PlayerInfo[playerid][pADM] = DOF2_GetInt(String, "ADM");
PlayerInfo[playerid][pCBF] = DOF2_GetInt(String, "CBF");
PlayerInfo[playerid][pPMLV] = DOF2_GetInt(String, "PMLV");
PlayerInfo[playerid][pPMLS] = DOF2_GetInt(String, "PMLS");
PlayerInfo[playerid][pPMSF] = DOF2_GetInt(String, "PMSF");
PlayerInfo[playerid][pRGT] = DOF2_GetInt(String, "RGT");
PlayerInfo[playerid][pNarrador] = DOF2_GetInt(String, "Narrador");
SetPlayerScore(playerid, DOF2_GetInt(String,"Score"));
PlayerInfo[playerid][pVip] = DOF2_GetInt(String, "Viptemp");
return 1;
}
Em OnGameModeExit, OnPlayerDisconnect, nos settal(...).
Код:
SalvarPlayer(playerid) e/ou (i).
Login e registro
Код:
if(dialogid == REGISTRO)
{
if(response)
{
if(!strlen(inputtext))
{
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
new String[128];
format(String, sizeof(String), "{FFFFFF}Parece que й sua primeira vez aqui.\n\nNick: %s\nStatus: {FF0000}Nгo registrada\n\n{FFFFFF}Digite uma senha abaixo para se registrar.", Nome);
ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_PASSWORD, "Registro", String, "Registrar", "Cancelar");
SendClientMessage(playerid,VERMELHO,"ERRO: Senha invalida, digite uma senha vбlida");
return 1;
}
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
new String[128];
format(String, sizeof(String), CONTAS, Nome);
DOF2_CreateFile(String);
DOF2_SetString(String,"Senha",inputtext);
DOF2_SetInt(String,"Administrador", 0);
DOF2_SetInt(String,"ADM",0);
DOF2_SetInt(String,"CBF",0);
DOF2_SetInt(String,"PMLV",0);
DOF2_SetInt(String,"PMLS",0);
DOF2_SetInt(String,"PMSF",0);
DOF2_SetInt(String,"RGT",0);
DOF2_SetInt(String,"Narrador",0);
DOF2_SetInt(String,"Score",0);
DOF2_SetInt(String,"Viptemp",0);
new year,day,month;
getdate(year, month, day);
new str[32];
format(str, 32,"%02d/%02d/%d",day,month,year);
DOF2_SetString(String,"RegisterDate",str);
GivePlayerMoney(playerid, 1000);
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
format(String, sizeof(String), "[INFO] Sua conta foi registrada com a senha '%s'", inputtext);
SendClientMessage(playerid, 0x51FF3EAA, String);
DOF2_SaveFile();
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Parabens! Conta criada com sucesso.\n\n Pra logar digite sua senha.", "Logar", "Cancelar");
return 1;
}
else
{
SendClientMessage(playerid, VERMELHO, "ERRO: Vocк nгo quis se registrar, por este motivo foi kickado.");
Kick(playerid);
return 1;
}
}
if(dialogid == LOGIN)
{
if(response)
{
if(!strlen(inputtext))
{
new String[128];
format(String, sizeof(String), "{FFFFFF}Olб {FFFF00}%s.\n{FFFFFF}Tipo de Conta: {00CC00}Registrada.\n{FFFFFF}Digite sua senha para continuar:",Nome(playerid));
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login", String, "Logar", "Cancelar");
SendClientMessage(playerid,ERRO,"Senha incorreta digite-a novamente.");
return 1;
}
new String[128];
format(String, sizeof(String), CONTAS, Nome(playerid));
if(!strcmp(inputtext,DOF2_GetString(String,"Senha"),false))
{
ShowPlayerDialog(playerid,ESCOLHA_CIDADE,DIALOG_STYLE_LIST,"Sйrie A 2014","{FFFFFF}Norte/Nordeste {FFFF00}- {00CC00}[LV]\n{FFFFFF}Sudeste {FFFF00}- {00CC00}[LS]\n{FFFFFF}Sul {FFFF00}- {00CC00}[SF]","Escolher","");
GivePlayerMoney(playerid, 10000);
SetarPlayer(playerid);
SalvarPlayer(playerid);
new lastlogin[19];
format(lastlogin, 19, "%s.", DOF2_GetString(String, "LastLogin") );
if(strlen(lastlogin) == 17)
format(lastlogin, 9, "%s", DOF2_GetString(String, "LastLogin") );
else if(strlen(lastlogin) == 19)
format(lastlogin, 11, "%s", DOF2_GetString(String, "LastLogin") );
else if(strlen(lastlogin) == 18)
format(lastlogin, 10, "%s", DOF2_GetString(String, "LastLogin") );
SendClientMessage(playerid, -1, " ");
SendFormattedMessage(playerid, AZULCLARO, "** Bem vindo %s!", Nome(playerid));
SendFormattedMessage(playerid, AZULCLARO, "** Registrado em %s | Ъltimo Login: %s.", DOF2_GetString(String, "RegisterDate"), lastlogin);
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
if(PlayerInfo[playerid][pVip] >= 1)
{
new var10[128];
format(var10, sizeof(var10), "** Seu VIP expira em %s.", SistemaVipSpeed(PlayerInfo[playerid][pVip]-Now()));
SendClientMessage(playerid, AZULCLARO, var10);
SetPlayerArmour(playerid,100);
}
if(PlayerInfo[playerid][pAdmin] >= 1)
{
ShowPlayerDialog(playerid, 901, DIALOG_STYLE_PASSWORD,"Anti-Fake","Administrador, coloque a senha Anti-Fake:", "Ok", "");
}
if(PlayerInfo[playerid][pADM] == 1)
{
SendClientMessage(playerid,AZULCLARO,"** Vocк й um Organizador.");
}
if(PlayerInfo[playerid][pCBF] == 1)
{
SendClientMessage(playerid,AZULCLARO,"** Vocк й um CBF.");
}
if(PlayerInfo[playerid][pNarrador] == 1)
{
SendClientMessage(playerid,AZULCLARO,"**: Vocк й um Narrador.");
}
if(PlayerInfo[playerid][pPMLS] >= 1)
{
SendClientMessage(playerid,AZULCLARO,"** Vocк й um Polнcial.");
}
if(PlayerInfo[playerid][pPMSF] >= 1)
{
SendClientMessage(playerid,AZULCLARO,"** Vocк й um Polнcial.");
}
if(PlayerInfo[playerid][pPMLV] >= 1)
{
SendClientMessage(playerid,AZULCLARO,"** Vocк й um Polнcial.");
}
return 1;
}
else
{
SendClientMessage(playerid,ERRO,"Senha incorreta digite-a novamente.");
format(String, sizeof(String), "{FFFFFF}Olб {FFFF00}%s.\n{FFFFFF}Tipo de Conta: {00CC00}Registrada.\n{FFFFFF}Digite sua senha para continuar:",Nome(playerid));
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login", String, "Logar", "Cancelar");
}
return 1;
}
else
{
SendClientMessage(playerid, ERRO, "Vocк nгo quis se logar, por este motivo foi kickado.");
Kick(playerid);
}
return 1;
}
Re: Ajuda salvamento bugando -
ArthurxD - 02.08.2014
depois disso:
pawn Код:
SalvarPlayer(playerid)
{
AntiDeAMX();
new String[256];
format(String, sizeof(String), CONTAS, Nome(playerid));
DOF2_SetInt(String,"Administrador", PlayerInfo[playerid][pAdmin]);
DOF2_SetInt(String,"ADM", PlayerInfo[playerid][pADM]);
DOF2_SetInt(String,"CBF", PlayerInfo[playerid][pCBF]);
DOF2_SetInt(String,"PMLV", PlayerInfo[playerid][pPMLV]);
DOF2_SetInt(String,"PMLS", PlayerInfo[playerid][pPMLS]);
DOF2_SetInt(String,"PMSF", PlayerInfo[playerid][pPMSF]);
DOF2_SetInt(String,"RGT", PlayerInfo[playerid][pRGT]);
DOF2_SetInt(String,"Narrador", PlayerInfo[playerid][pNarrador]);
DOF2_SetInt(String,"Score", GetPlayerScore(playerid));
DOF2_SetInt(String,"Viptemp", PlayerInfo[playerid][pVip]);
coloque isso:
ficando isso:
pawn Код:
SalvarPlayer(playerid)
{
AntiDeAMX();
new String[256];
format(String, sizeof(String), CONTAS, Nome(playerid));
DOF2_SetInt(String,"Administrador", PlayerInfo[playerid][pAdmin]);
DOF2_SetInt(String,"ADM", PlayerInfo[playerid][pADM]);
DOF2_SetInt(String,"CBF", PlayerInfo[playerid][pCBF]);
DOF2_SetInt(String,"PMLV", PlayerInfo[playerid][pPMLV]);
DOF2_SetInt(String,"PMLS", PlayerInfo[playerid][pPMLS]);
DOF2_SetInt(String,"PMSF", PlayerInfo[playerid][pPMSF]);
DOF2_SetInt(String,"RGT", PlayerInfo[playerid][pRGT]);
DOF2_SetInt(String,"Narrador", PlayerInfo[playerid][pNarrador]);
DOF2_SetInt(String,"Score", GetPlayerScore(playerid));
DOF2_SetInt(String,"Viptemp", PlayerInfo[playerid][pVip]);
DOF2_SaveFile();
Re: Ajuda salvamento bugando -
Schocc - 02.08.2014
Primeiro de tudo faзa uma boa endentaзгo no cуdigo, cуdigo sem endentaзгo nгo й cуdigo..
pawn Код:
if(dialogid == REGISTRO) {
if(response) {
if(!strlen(inputtext)) {
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
new String[128];
format(String, sizeof(String), "{FFFFFF}Parece que й sua primeira vez aqui.\n\nNick: %s\nStatus: {FF0000}Nгo registrada\n\n{FFFFFF}Digite uma senha abaixo para se registrar.", Nome);
ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_PASSWORD, "Registro", String, "Registrar", "Cancelar");
SendClientMessage(playerid,VERMELHO,"ERRO: Senha invalida, digite uma senha vбlida");
return 1;
}
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
new String[128];
format(String, sizeof(String), CONTAS, Nome);
DOF2_CreateFile(String);
DOF2_SetString(String,"Senha",inputtext);
DOF2_SetInt(String,"Administrador", 0);
DOF2_SetInt(String,"ADM",0);
DOF2_SetInt(String,"CBF",0);
DOF2_SetInt(String,"PMLV",0);
DOF2_SetInt(String,"PMLS",0);
DOF2_SetInt(String,"PMSF",0);
DOF2_SetInt(String,"RGT",0);
DOF2_SetInt(String,"Narrador",0);
DOF2_SetInt(String,"Score",0);
DOF2_SetInt(String,"Viptemp",0);
new year,day,month,str[32];
getdate(year, month, day);
format(str, 32,"%02d/%02d/%d",day,month,year);
DOF2_SetString(String,"RegisterDate",str);
GivePlayerMoney(playerid, 1000);
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
format(String, sizeof(String), "[INFO] Sua conta foi registrada com a senha '%s'", inputtext);
SendClientMessage(playerid, 0x51FF3EAA, String);
DOF2_SaveFile();
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Parabens! Conta criada com sucesso.\n\n Pra logar digite sua senha.", "Logar", "Cancelar");
}
else
{
SendClientMessage(playerid, VERMELHO, "ERRO: Vocк nгo quis se registrar, por este motivo foi kickado.");
Kick(playerid);
}
return 1;
}
if(dialogid == LOGIN) {
if(response) {
if(!strlen(inputtext)) {
new String[128];
format(String, sizeof(String), "{FFFFFF}Olб {FFFF00}%s.\n{FFFFFF}Tipo de Conta: {00CC00}Registrada.\n{FFFFFF}Digite sua senha para continuar:",Nome(playerid));
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login", String, "Logar", "Cancelar");
SendClientMessage(playerid,ERRO,"Senha incorreta digite-a novamente.");
return 1;
}
new String[128];
format(String, sizeof(String), CONTAS, Nome(playerid));
if (!strcmp(inputtext, DOF2_GetString(String, "Senha"), false)) {
ShowPlayerDialog(playerid,ESCOLHA_CIDADE,DIALOG_STYLE_LIST,"Sйrie A 2014","{FFFFFF}Norte/Nordeste {FFFF00}- {00CC00}[LV]\n{FFFFFF}Sudeste {FFFF00}- {00CC00}[LS]\n{FFFFFF}Sul {FFFF00}- {00CC00}[SF]","Escolher","");
GivePlayerMoney(playerid, 10000);
SetarPlayer(playerid);
SalvarPlayer(playerid);
new lastlogin[19];
format(lastlogin, 19, "%s.", DOF2_GetString(String, "LastLogin") );
if(strlen(lastlogin) == 17)
format(lastlogin, 9, "%s", DOF2_GetString(String, "LastLogin") );
else if(strlen(lastlogin) == 19)
format(lastlogin, 11, "%s", DOF2_GetString(String, "LastLogin") );
else if(strlen(lastlogin) == 18)
format(lastlogin, 10, "%s", DOF2_GetString(String, "LastLogin") );
SendClientMessage(playerid, -1, " ");
SendFormattedMessage(playerid, AZULCLARO, "** Bem vindo %s!", Nome(playerid));
SendFormattedMessage(playerid, AZULCLARO, "** Registrado em %s | Ъltimo Login: %s.", DOF2_GetString(String, "RegisterDate"), lastlogin);
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
if(PlayerInfo[playerid][pVip] >= 1) {
new var10[128];
format(var10, sizeof(var10), "** Seu VIP expira em %s.", SistemaVipSpeed(PlayerInfo[playerid][pVip]-Now()));
SendClientMessage(playerid, AZULCLARO, var10);
SetPlayerArmour(playerid,100);
}
if(PlayerInfo[playerid][pAdmin] >= 1) {
ShowPlayerDialog(playerid, 901, DIALOG_STYLE_PASSWORD,"Anti-Fake","Administrador, coloque a senha Anti-Fake:", "Ok", "");
}
if(PlayerInfo[playerid][pADM] == 1) {
SendClientMessage(playerid,AZULCLARO,"** Vocк й um Organizador.");
}
if(PlayerInfo[playerid][pCBF] == 1) {
SendClientMessage(playerid,AZULCLARO,"** Vocк й um CBF.");
}
if(PlayerInfo[playerid][pNarrador] == 1) {
SendClientMessage(playerid,AZULCLARO,"**: Vocк й um Narrador.");
}
if(PlayerInfo[playerid][pPMLS] >= 1) {
SendClientMessage(playerid,AZULCLARO,"** Vocк й um Polнcial.");
}
if(PlayerInfo[playerid][pPMSF] >= 1) {
SendClientMessage(playerid,AZULCLARO,"** Vocк й um Polнcial.");
}
if(PlayerInfo[playerid][pPMLV] >= 1) {
SendClientMessage(playerid,AZULCLARO,"** Vocк й um Polнcial.");
}
}
else {
SendClientMessage(playerid,ERRO,"Senha incorreta digite-a novamente.");
format(String, sizeof(String), "{FFFFFF}Olб {FFFF00}%s.\n{FFFFFF}Tipo de Conta: {00CC00}Registrada.\n{FFFFFF}Digite sua senha para continuar:",Nome(playerid));
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login", String, "Logar", "Cancelar");
}
}
else {
SendClientMessage(playerid, ERRO, "Vocк nгo quis se logar, por este motivo foi kickado.");
}
return 1;
}
SalvarPlayer(playerid) {
AntiDeAMX();
new String[128], date[32], hour, minute, second, day, month, year;
gettime(hour, minute, second);
getdate(year, month, day);
format(String, sizeof(String), CONTAS, Nome(playerid));
format(date, 32,"%d/%d/%d/%d/%d/%d",day, month, year, hour, minute, second);
DOF2_SetInt(String,"Administrador", PlayerInfo[playerid][pAdmin]);
DOF2_SetInt(String,"ADM", PlayerInfo[playerid][pADM]);
DOF2_SetInt(String,"CBF", PlayerInfo[playerid][pCBF]);
DOF2_SetInt(String,"PMLV", PlayerInfo[playerid][pPMLV]);
DOF2_SetInt(String,"PMLS", PlayerInfo[playerid][pPMLS]);
DOF2_SetInt(String,"PMSF", PlayerInfo[playerid][pPMSF]);
DOF2_SetInt(String,"RGT", PlayerInfo[playerid][pRGT]);
DOF2_SetInt(String,"Narrador", PlayerInfo[playerid][pNarrador]);
DOF2_SetInt(String,"Score", GetPlayerScore(playerid));
DOF2_SetInt(String,"Viptemp", PlayerInfo[playerid][pVip]);
DOF2_SetInt(String,"LastLoginTick", Now());
DOF2_SetString(String,"LastLogin", date);
DOF2_SaveFile();
return 1;
}
SetarPlayer(playerid) {
AntiDeAMX();
new String[128];
format(String, sizeof(String), CONTAS, Nome(playerid));
PlayerInfo[playerid][pAdmin] = DOF2_GetInt(String, "Administrador");
PlayerInfo[playerid][pADM] = DOF2_GetInt(String, "ADM");
PlayerInfo[playerid][pCBF] = DOF2_GetInt(String, "CBF");
PlayerInfo[playerid][pPMLV] = DOF2_GetInt(String, "PMLV");
PlayerInfo[playerid][pPMLS] = DOF2_GetInt(String, "PMLS");
PlayerInfo[playerid][pPMSF] = DOF2_GetInt(String, "PMSF");
PlayerInfo[playerid][pRGT] = DOF2_GetInt(String, "RGT");
PlayerInfo[playerid][pNarrador] = DOF2_GetInt(String, "Narrador");
PlayerInfo[playerid][pVip] = DOF2_GetInt(String, "Viptemp");
SetPlayerScore(playerid, DOF2_GetInt(String,"Score"));
return 1;
}
Depois, vocк poderia explicar melhor ? em que momento acontece o problema...