Contas Salvando apartir da primeira Logada... -
maikonk - 17.01.2013
Pessoal, o que esta acontecendo aqui, й meio complicado de explicar, e tambem de postar as linhas pois nao tenho ideia de como esta vindo esse problema.
Mas й o seguinte, estou usando o sistema Dof_2, e o player loga normal, salva normal, as informaзхes sao carregada, tudo certinho conforme o esperado.
Mas o problema ta quando o segundo, o terceiro, o quarto, e assim em diante...
Quando todos deslogando que eu desligo o server. Todas as contas sao Salvas com as informaзхes do primeiro player.
Dinheiro, Nivel, Carro, e atй mesmo o nick. Na verdade quando esses players logam, apartir do momento que entram no servidor, eles ja carregam com as informaзхes do primeiro personagem.
Aqui estao as Linhas:
OnPlayerRequestClass:
Код:
PlayerDados[playerid][Logado] = false;
format(StringContas, sizeof(StringContas), "Contas/%s.ini", Nome(playerid));
if(!DOF2_FileExists(StringContas))
{
SetPlayerCameraPos(playerid, 1883.210815, -1433.973876, 97.572807);
SetPlayerCameraLookAt(playerid, 1878.508300, -1432.563720, 98.520172);
SetPlayerPos(playerid, 1541.7875,-1703.0524,13.9816);
PlayAudioStreamForPlayer(playerid,"http://dl.dropbox.com/u/84402336/musica%20de%20gta%20san%20andreas.mp3");
//PlayerPlaySound(playerid, 1097, 0.0, 0.0, 0.0);
format(String, sizeof(String), "{FFFAFA}Bem Vindo {1BCCE0}%s{FFFAFA}\nServidor Reinascece RPG (CrashGames)\n\nDigite uma senha abaixo para se registrar:", Nome(playerid));
ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_INPUT, "COMEЗANDO NO SERVIDOR", String, "Registrar", "");
}
OnPlayerDialogResponse:
Код:
if(dialogid == LOGIN)
{
if(!strlen(inputtext)) return SendClientMessage(playerid, VERMELHO, "Digite sua senha"), format(String, sizeof(String), "{FFFFFF}Ola Novamente, {1BCCE0}%s{FFFFFF}\n\nLogue-se usando sua senha :D\nE Tenha um bom jogo !!!", Nome(playerid)), ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "Logando", String, "Conectar", "");
if(!strcmp(inputtext, DOF2_GetString(StringContas, "Senha"), false))
{
SetPlayerCameraPos(playerid, 1616.129516, -1503.749755, 83.916160);
SetPlayerCameraLookAt(playerid, 1615.509277, -1499.735717, 86.832138);
SetPlayerPos(playerid, 1541.7875,-1703.0524,13.9816);
PlayerDados[playerid][Logado] = true;
strmid(PlayerDados[playerid][pPNOME], DOF2_GetString(StringContas, "Nome"), 0, strlen(DOF2_GetString(StringContas, "Nome")), 255);
GivePlayerMoneyEx(playerid,DOF2_GetInt(StringContas, "Dinheiro"));
SetPlayerScore(playerid,DOF2_GetInt(StringContas, "Nivel"));
SetPlayerSkin(playerid, DOF2_GetInt(StringContas, "Skin1"));
PlayerDados[playerid][pNivel] = DOF2_GetInt(StringContas, "Nivel");
PlayerDados[playerid][pExp] = DOF2_GetInt(StringContas, "Exp");
PlayerDados[playerid][pAdmin] = DOF2_GetInt(StringContas, "Admin");
PlayerDados[playerid][pRegis] = DOF2_GetInt(StringContas, "Registro");
PlayerDados[playerid][pSexo] = DOF2_GetInt(StringContas, "Sexo");
PlayerDados[playerid][pHabit] = DOF2_GetInt(StringContas, "Habitacao");
PlayerDados[playerid][pRMoney] = DOF2_GetInt(StringContas, "RMoney");
PlayerDados[playerid][pRMoneyBanco] = DOF2_GetInt(StringContas, "RMoneyBanco");
PlayerDados[playerid][pVip] = DOF2_GetInt(StringContas, "Vip");
PlayerDados[playerid][pSkin1] = DOF2_GetInt(StringContas, "Skin1");
PlayerDados[playerid][pSkin2] = DOF2_GetInt(StringContas, "Skin2");
PlayerDados[playerid][pTG] = DOF2_GetInt(StringContas, "TempoLogado");
PlayerDados[playerid][pLicTer] = DOF2_GetInt(StringContas, "LicTerrestre");
PlayerDados[playerid][pLicMar] = DOF2_GetInt(StringContas, "LicMaritima");
PlayerDados[playerid][pLicAer] = DOF2_GetInt(StringContas, "LicAerea");
PlayerDados[playerid][pLicArmas] = DOF2_GetInt(StringContas, "LicArmas");
PlayerDados[playerid][pEmprego] = DOF2_GetInt(StringContas, "Emprego");
PlayerDados[playerid][pMembro] = DOF2_GetInt(StringContas, "Membro");
PlayerDados[playerid][pNumLoteria] = DOF2_GetInt(StringContas, "NumLoteria");
PlayerDados[playerid][pDinBanco] = DOF2_GetInt(StringContas, "DinBanco");
PlayerDados[playerid][pEstudos] = DOF2_GetInt(StringContas, "Estudos");
PlayerDados[playerid][pFormacao] = DOF2_GetInt(StringContas, "Formacao");
PlayerDados[playerid][pEmpAdv] = DOF2_GetInt(StringContas, "AdvEmprego");
PlayerDados[playerid][pCasa] = DOF2_GetInt(StringContas, "Casas");
PlayerDados[playerid][pEmpresa] = DOF2_GetInt(StringContas, "Empresas");
PlayerDados[playerid][pAluguel] = DOF2_GetInt(StringContas, "Aluguel");
PlayerDados[playerid][pidaluguel] = DOF2_GetInt(StringContas, "CasaAluguel");
PlayerDados[playerid][XXX] = DOF2_GetFloat(StringContas, "XXX");
PlayerDados[playerid][YYY] = DOF2_GetFloat(StringContas, "YYY");
PlayerDados[playerid][ZZZ] = DOF2_GetFloat(StringContas, "ZZZ");
PlayerDados[playerid][ROT] = DOF2_GetFloat(StringContas, "ROT");
PlayerDados[playerid][pEmprestado] = DOF2_GetInt(StringContas, "Emprestado");
PlayerDados[playerid][pEmprestimo] = DOF2_GetInt(StringContas, "Emprestimo");
PlayerDados[playerid][pCarro] = DOF2_GetInt(StringContas, "Carro");
PlayerDados[playerid][pChaveCarro] = DOF2_GetInt(StringContas, "ChaveCarro");
PlayerDados[playerid][pEvento] = DOF2_GetInt(StringContas, "Evento");
PlayerDados[playerid][pFome] = DOF2_GetInt(StringContas, "Fome");
PlayerDados[playerid][pTipoLuta] = DOF2_GetInt(StringContas, "Luta");
PlayerDados[playerid][pTempoVip] = DOF2_GetInt(StringContas, "TempoVip");
PlayerDados[playerid][pTitulos] = DOF2_GetInt(StringContas, "Titulos");
PlayerDados[playerid][pBan] = DOF2_GetInt(StringContas, "Ban");
gLogado[playerid] = 1;
Contagem[playerid] = SetTimer("TempoLogado",600000,true);
//
if(PlayerDados[playerid][pRegis] == 0)
{
ShowPlayerDialog(playerid,SEXO,DIALOG_STYLE_MSGBOX,"PREENCHA AS INFORMAЗХES","Escolha o SEXO do seu Personagem","Masculino","Feminino");
}
if(PlayerDados[playerid][pRegis] == 1)
{
ShowPlayerDialog(playerid, REGRAS, DIALOG_STYLE_MSGBOX, "REGRAS DO SERVIDOR (RPG)","Veja Abaixo as regras essenciais para Manter sua conta Limpa:\n\n*Extremamente Proibido uso de Cheater\n*Proibido DM/DB sem motivo\n*Respeito Total com seus colegas, idependendo de Nivel, Dinheiro e Cor, Todos Sao iguais\n*Nгo Peзa Admin, isso vai queimar seu filme (;\n*Nгo Flood o Chat, muito menos Anuncios e relatos para os Admin\n\nLeia nossas Regras: /regras", "Aceitar", "Sair");
}
}
else
{
SendClientMessage(playerid, VERMELHO, "Senha Incorreta!");
format(String, sizeof(String), "{FFFFFF}Ola Novamente, {1BCCE0}%s{FFFFFF}\n\nLogue-se usando sua senha :D\nE Tenha um bom jogo !!!", Nome(playerid));
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Logando", String, "Conectar", "");
return 1;
}
}
Salvamento (OnPlayerDisconnect)
Код:
if(gLogado[playerid])
{
new PlayerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
format(StringContas, sizeof(StringContas), "Contas/%s.ini", PlayerName);
if(DOF2_FileExists(StringContas))
{
DOF2_SetString(StringContas, "Nome", PlayerDados[playerid][pPNOME]);
DOF2_SetInt(StringContas, "Dinheiro", GetPlayerMoney(playerid));
DOF2_SetInt(StringContas, "Nivel", PlayerDados[playerid][pNivel]);
DOF2_SetInt(StringContas, "Exp", PlayerDados[playerid][pExp]);
DOF2_SetInt(StringContas, "Admin", PlayerDados[playerid][pAdmin]);
DOF2_SetInt(StringContas, "Registro", PlayerDados[playerid][pRegis]);
DOF2_SetInt(StringContas, "Sexo", PlayerDados[playerid][pSexo]);
DOF2_SetInt(StringContas, "Habitacao", PlayerDados[playerid][pHabit]);
DOF2_SetInt(StringContas, "RMoney", PlayerDados[playerid][pRMoney]);
DOF2_SetInt(StringContas, "RMoneyBanco", PlayerDados[playerid][pRMoneyBanco]);
DOF2_SetInt(StringContas, "Vip", PlayerDados[playerid][pVip]);
DOF2_SetInt(StringContas, "Skin1", PlayerDados[playerid][pSkin1]);
DOF2_SetInt(StringContas, "Skin2", PlayerDados[playerid][pSkin2]);
DOF2_SetInt(StringContas, "TempoLogado", PlayerDados[playerid][pTG]);
DOF2_SetInt(StringContas, "LicTerrestre", PlayerDados[playerid][pLicTer]);
DOF2_SetInt(StringContas, "LicMaritima", PlayerDados[playerid][pLicMar]);
DOF2_SetInt(StringContas, "LicAerea", PlayerDados[playerid][pLicAer]);
DOF2_SetInt(StringContas, "LicArmas", PlayerDados[playerid][pLicArmas]);
DOF2_SetInt(StringContas, "Emprego", PlayerDados[playerid][pEmprego]);
DOF2_SetInt(StringContas, "Membro", PlayerDados[playerid][pMembro]);
DOF2_SetInt(StringContas, "NumLoteria", PlayerDados[playerid][pNumLoteria]);
DOF2_SetInt(StringContas, "DinBanco", PlayerDados[playerid][pDinBanco]);
DOF2_SetInt(StringContas, "Estudos", PlayerDados[playerid][pEstudos]);
DOF2_SetInt(StringContas, "Formacao", PlayerDados[playerid][pFormacao]);
DOF2_SetInt(StringContas, "AdvEmprego", PlayerDados[playerid][pEmpAdv]);
DOF2_SetInt(StringContas, "Casas", PlayerDados[playerid][pCasa]);
DOF2_SetInt(StringContas, "Empresas", PlayerDados[playerid][pEmpresa]);
DOF2_SetInt(StringContas, "Aluguel", PlayerDados[playerid][pAluguel]);
DOF2_SetInt(StringContas, "CasaAluguel", PlayerDados[playerid][pidaluguel]);
DOF2_SetFloat(StringContas, "XXX", PlayerDados[playerid][XXX]);
DOF2_SetFloat(StringContas, "YYY", PlayerDados[playerid][YYY]);
DOF2_SetFloat(StringContas, "ZZZ", PlayerDados[playerid][ZZZ]);
DOF2_SetFloat(StringContas, "ROT", PlayerDados[playerid][ROT]);
DOF2_SetInt(StringContas, "Emprestado", PlayerDados[playerid][pEmprestado]);
DOF2_SetInt(StringContas, "Emprestimo", PlayerDados[playerid][pEmprestimo]);
DOF2_SetInt(StringContas, "Carro", PlayerDados[playerid][pCarro]);
DOF2_SetInt(StringContas, "ChaveCarro", PlayerDados[playerid][pChaveCarro]);
DOF2_SetInt(StringContas, "Evento", PlayerDados[playerid][pEvento]);
DOF2_SetInt(StringContas, "Fome", PlayerDados[playerid][pFome]);
DOF2_SetInt(StringContas, "Luta", PlayerDados[playerid][pTipoLuta]);
DOF2_SetInt(StringContas, "TempoVip", PlayerDados[playerid][pTempoVip]);
DOF2_SetInt(StringContas, "Titulos", PlayerDados[playerid][pTitulos]);
DOF2_SetInt(StringContas, "Ban", PlayerDados[playerid][pBan]);
}
}
Entao, alguem ai sabe o que pode ser ?
Se alguem ja enfrentou esse problema, como arrumou ?
Se Alguem quiser ajudar, ja agradeзo desde ja (;
Att