24.07.2012, 17:48
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;
}
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");
}
}
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.