Originally Posted by leonardo1434
pawn Код:
stock CarregarConta(playerid) { new Contas[41], Nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, Nome, 25); format(Contas, 41, "Jogadores/%s.ini", Nome); if(DOF2_FileExists(Contas)) { Informacoes[playerid][Gps] = DOF2_GetInt(Contas, "Gps"); Informacoes[playerid][Skin] = DOF2_GetInt(Contas, "Skin"); Informacoes[playerid][Sexo] = DOF2_GetInt(Contas, "Sexo"); Informacoes[playerid][Level] = DOF2_GetInt(Contas, "Level"); Informacoes[playerid][Lider] = DOF2_GetInt(Contas, "Lider"); GivePlayerMoney(playerid, DOF2_GetInt(Contas, "Grana")); Informacoes[playerid][Membro] = DOF2_GetInt(Contas, "Membro"); Informacoes[playerid][Moderador] = DOF2_GetInt(Contas, "Moderador"); } return 1; }
Salvar Ficheiro:
pawn Код:
stock SalvarConta(playerid) { new Contas[41], Nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, Nome, 25); // pra que 32? se o nome mбximo й 24 e + 1 pra o fechamento? format(Contas, 41, "Jogadores/%s.ini", Nome); if(DOF2_FileExists(Contas)) { Informacoes[playerid][Skin] = GetPlayerSkin(playerid); DOF2_SetInt(Contas, "Gps", Informacoes[playerid][Sexo]); DOF2_SetInt(Contas, "Skin", Informacoes[playerid][Skin]); DOF2_SetInt(Contas, "Sexo", Informacoes[playerid][Sexo]); DOF2_SetInt(Contas, "Level", Informacoes[playerid][Skin]); DOF2_SetInt(Contas, "Senha", Informacoes[playerid][Senha]); DOF2_SetInt(Contas, "Grana", Informacoes[playerid][Grana]); DOF2_SetInt(Contas, "Lider", Informacoes[playerid][Lider]); DOF2_SetInt(Contas, "Membro", Informacoes[playerid][Membro]); DOF2_SetInt(Contas, "Moderador", Informacoes[playerid][Moderador]); DOF2_SaveFile(); } return 1; }
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { new Contas[41], Nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, Nome, sizeof(Nome)); format(Contas, sizeof(Contas),"Jogadores/%s.ini",Nome); //Login if(dialogid == 1) { if(response == 0) { SendClientMessage(playerid,-1,"Sistema: Vocк foi kickado por cancelar o login!"); Kick(playerid); } if(!strlen(inputtext)) // strlen й usado para medir o tamanho da string, caso ele nгo tenha digitado nada, irб executar isto abaixo. { ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Logando...","Vocк digitou uma senha invalida\nDigite uma senha valida abaixo","Logar","Cancelar"); } else // caso ele tenha digitado alguma coisa, vai medir o tamanho da string da pasta contas com a que ele digitou, se medir o mesmo tamanho ele logar, isto й errado. { Informacoes[playerid][Senha] = DOF2_GetInt(Contas, "Senha"); if(strlen(inputtext) == Informacoes[playerid][Senha]) { CarregarConta(playerid); SpawnPlayer(playerid); } } } //Registro if(dialogid == 2) { if(response == 0) { SendClientMessage(playerid,-1,"Sistema: Vocк foi kickado por cancelar o login!"); Kick(playerid); } if(!strlen(inputtext)) { ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "Registrando...","Vocк digitou uma senha invalida\nDigite uma senha valida abaixo","Registrar","Cancelar"); } else // se fez a mesma coisa aqui....se a senha tiver o mesmo tamanho mesmo que nгo seja iguais, vocк vai substituir a senha que tem o mesmo tamanho pela velha que tem o mesmo tamanho. { Informacoes[playerid][Senha] = strlen(inputtext); DOF2_CreateFile(Contas); DOF2_SetString(Contas, "Senha", Informacoes[playerid][Senha]); DOF2_SaveFile(); GivePlayerMoney(playerid, 1000); SetPlayerVirtualWorld(playerid, 1); SetPlayerPos(playerid, 1643.0941,-2262.9111,13.4867); SetPlayerCameraPos(playerid, 1643.0941,-2262.9111,13.4867); SetPlayerCameraLookAt(playerid, 1643.2544,-2249.0349,13.3228); ShowPlayerDialog(playerid,3,DIALOG_STYLE_MSGBOX,"{FFFFFF}Escolha seu Sexo","{FFFF00}Vocк й Homem ou Mulher?","Homem","Mulher"); } }
Eu apenas apontei os erros que fizeste, cabe a vocк conserta-los, sobre as senhas o correto й compara-las e nгo medi-las, entгo deves usar strcmp.
Sobre as stock's, aparentemente estгo corretas pois adicionei + 1 cell para ficar correto, Apenas vi estes erros mas podem haver mais pois hoje estou um pouco desatento.
|