26.06.2016, 17:12
Olб alguйm saberia como poder me ajudar, bem eu pesquisei sobre alguns tutoriais de DOF2 e consegui fazer um sistema me baseando nesses tutoriais, tudo deu certo sem nenhum erro, mas quando eu fecho e abro o server e me conecto simplesmente reseta, mas sу quando eu me conecto depois de fechar e abrir o server, se eu sair e volta pro server estб okay, mas se o server fechar e abrir e eu me conectar simplesmente reseta a conta.
Код:
public OnGameModeExit() { for(new i=0; i<MAX_PLAYERS; ++i) SalvarContas(i); DOF2_Exit(); return 1; }
Код:
public OnPlayerConnect(playerid) { logado[playerid] = 0; if(DOF2_FileExists(GetarConta(playerid))) ShowPlayerDialog(playerid, logar, DIALOG_STYLE_PASSWORD, "{00FF7F}Logar", "{F0E68C}Digite sua senha cadastrada para logar{FFFFFF}.\n{F0E68C}Se errar cinco vezes vocк serб kickado{FFFFFF}.", "Confirma", "Cancelar"); else ShowPlayerDialog(playerid, registro, DIALOG_STYLE_INPUT, "{00FF7F}Registro", "{F0E68C}Vocк ainda nгo й Registrado, digite uma senha para se registrar{FFFFFF}.", "Confirma", "Cancelar"); return 1; }
Код:
public OnPlayerDisconnect(playerid) { if(logado[playerid] == 1){ SalvarContas(playerid); logado[playerid] = 0; } return 1; }
Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == registro) { if(response) { if(!strlen(inputtext)) { ShowPlayerDialog(playerid,registro,DIALOG_STYLE_INPUT,"{00FF7F}Registro", "{F0E68C}Digite apenas nъmeros{FFFFFF}.\n{F0E68C}Digite sua senha novamente para se registrar{FFFFFF}.", "Confirma", "Cancelar"); return 1; } new senha[16]; format(senha, sizeof(senha), "%s", inputtext); pDados[playerid][Senha] = senha; pDados[playerid][Staff] = 0; pDados[playerid][Level] = 1; pDados[playerid][Dolar] = 800; SetPlayerScore(playerid, 1); DOF2_CreateFile(GetarConta(playerid)); DOF2_SetString(GetarConta(playerid), "Senha", pDados[playerid][Senha]); DOF2_SaveFile(); SalvarContas(playerid); ShowPlayerDialog(playerid, sexo, DIALOG_STYLE_MSGBOX, "{00FF7F}Sexo", "{F0E68C}Vocк se cadastrou, agora escolha qual seu sexo{FFFFFF}.", "Masculino", "Feminino"); } } if(dialogid == sexo) { if(response) { ShowPlayerDialog(playerid, logar, DIALOG_STYLE_PASSWORD, "{00FF7F}Logar", "{F0E68C}Certo, vocк й um homem agora й sу logar{FFFFFF}.", "Confirma", "Cancelar"); pDados[playerid][Sexo]=1; SetPlayerSkin(playerid, 240); pDados[playerid][Vida]=100; pDados[playerid][Colete]=20; pDados[playerid][Skin]=240; } else { ShowPlayerDialog(playerid, logar, DIALOG_STYLE_PASSWORD, "{00FF7F}Logar", "{F0E68C}Certo, vocк й uma mulher agora й sу logar{FFFFFF}.", "Confirma", "Cancelar"); pDados[playerid][Sexo]=2; SetPlayerSkin(playerid, 233); pDados[playerid][Skin]=233; } } if(dialogid == logar) { if(response) { if(!strlen(inputtext)) { ShowPlayerDialog(playerid,logar,DIALOG_STYLE_PASSWORD, "{00FF7F}Logar", "{F0E68C}Digite sua senha cadastrada para logar{FFFFFF}.\n{F0E68C}Se errar cinco vezes vocк serб kickado{FFFFFF}.", "Confirma", "Cancelar"); return 1; } else { if(strcmp(DOF2_GetString(GetarConta(playerid), "Senha", pDados[playerid][Senha]), inputtext, true, 10) == 0) { SendClientMessage(playerid, C_Server, "Logado com Sucesso{FFFFFF}."); CarregarConta(playerid); logado[playerid] = 1; SpawnPlayer(playerid); } else { SendClientMessage(playerid, C_Server, "Vocк foi kickado por errar a sua senha{FFFFFF}."); Kick(playerid); } } } else { SendClientMessage(playerid, C_Server, "Login Cancelado{FFFFFF}."); Kick(playerid); } } return 1; }
Код:
stock SalvarContas(playerid) { DOF2_SetString(GetarConta(playerid), "Senha", pDados[playerid][Senha]); DOF2_SetInt(GetarConta(playerid), "Matou", pDados[playerid][Matou]); DOF2_SetInt(GetarConta(playerid), "Dolar", pDados[playerid][Dolar]); DOF2_SetInt(GetarConta(playerid), "Sexo", pDados[playerid][Sexo]); DOF2_SetInt(GetarConta(playerid), "Skin", pDados[playerid][Skin]); DOF2_SetInt(GetarConta(playerid), "Staff", pDados[playerid][Staff]); DOF2_SetInt(GetarConta(playerid), "Vida", pDados[playerid][Vida]); DOF2_SetInt(GetarConta(playerid), "Colete", pDados[playerid][Colete]); DOF2_SaveFile(); return 1; } stock CarregarConta(playerid) { pDados[playerid][Staff] = DOF2_GetInt(GetarConta(playerid), "Staff"); pDados[playerid][Matou] = DOF2_GetInt(GetarConta(playerid), "Matou"); SetPlayerScore(playerid, DOF2_GetInt(GetarConta(playerid), "Level")); SetPlayerSkin(playerid, DOF2_GetInt(GetarConta(playerid), "Skin")); GivePlayerMoney(playerid, DOF2_GetInt(GetarConta(playerid), "Dolar")); SetPlayerHealth(playerid, DOF2_GetInt(GetarConta(playerid), "Vida")); SetPlayerArmour(playerid, DOF2_GetInt(GetarConta(playerid), "Colete")); return 1; } stock GetarConta(playerid) { new arq[40]; format(arq, sizeof(arq), arquivo, pName(playerid)); return arq; } stock pName(playerid) { new name[24]; GetPlayerName(playerid, name, sizeof(name)); return name; }