[Pedido] Sistema de salvamento
#1

Fala, galera! Gostaria de pedir a vocкs se vocкs pode me ajudar com um tutorial de sistema de salvamento, nгo somente o Registro/Login, mais sim ele todo, por favor, peзo a ajuda de vocкs. Muito obrigado pela atenзгo.
Reply
#2

Alguйm pode me ajudar?
Reply
#3

Que tipo de salvamento?

MySQL?
DOF2?
Dini?
Ini?
Reply
#4

Tome aqui um уtimo tutorial para fazer um sistema de salvamento:
https://www.youtube.com/watch?v=SJpr3n3Xz9M
Reply
#5

Tipo de salvamento DOF2
Reply
#6

Sу adicionar em sua GM:

PHP Code:

#include DOF2
//===================
#define     DIALOG_REGISTER         0
#define     DIALOG_LOGIN            1
main(){}
enum pInfo
{
    
pAdmin,
    
pSkin,
    
pScore,
    
pMoney,
    
Float:pPosX,
    
Float:pPosY,
    
Float:pPosZ,
    
Float:pPosA,
    
pInterior,
    
pVW,
    
bool:pLogado
}
new
    
Player[MAX_PLAYERS][pInfo],reset[pInfo],
    
Conta[256]
;
//========================================
public OnPlayerRequestClass(playeridclassid)
{
    
IsPlayerLogged(playerid);
    return 
false;
}
//========================================
public OnPlayerRequestSpawn(playerid) return IsPlayerLogged(playerid);
IsPlayerLogged(playerid)
{
    if(
Player[playerid][pLogado] == true)
    {
        
SetSpawnInfo(playerid,-1,Player[playerid][pSkin],Player[playerid][pPosX],Player[playerid][pPosY],Player[playerid][pPosZ],Player[playerid][pPosA],0,0,0,0,0,0);
        
SpawnPlayer(playerid);
        
SetPlayerInterior(playerid0);
        
SetCameraBehindPlayer(playerid);
    }
    return 
1;
}
//========================================
public OnPlayerConnect(playerid)
{
    
Player[playerid][pLogado]=false;
    
//=================================[ LOGIN/REGISTRO ]===============================||
    
format(Contasizeof(Conta), "Contas/%s.ini"Name(playerid));
    if(!
DOF2_FileExists(Conta))
    {
        
ShowPlayerDialog(playeridDIALOG_REGISTERDIALOG_STYLE_INPUT"Register""Escreva uma senha, para se registrar!""Registrar""Sair");
    }
    else
    {
        
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"LOGIN""Bem vindo ! \nEscreva uma senha abaixo para entrar em sua conta.""Entrar""Sair");
    }
    
//==================================================================================||
    
return 1;
}
//========================================
public OnPlayerDisconnect(playeridreason)
{
    
SalvarConta(playerid);
    
Player[playerid] = reset;
    return 
1;
}
//========================================
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    
//=================================[ DIALOG_REGISTER ]==============================||
    
if(dialogid == DIALOG_REGISTER)
    {
        if(!
response) return Kick(playerid);
        if(
strlen(inputtext) < 4) return ShowPlayerDialog(playeridDIALOG_REGISTERDIALOG_STYLE_INPUT"Register""Escreva uma senha, para se registrar!""registrar""sair");
        if(
response)
        {
            if(
strlen(inputtext))
            {
                
format(Contasizeof(Conta), "Contas/%s.ini"Name(playerid));
                
DOF2_CreateFile(Conta);
                
DOF2_SetString(Conta"Password"inputtext);
                
DOF2_SaveFile();
                
CriarConta(playerid);
                
CarregarConta(playerid);
            }
            else 
ShowPlayerDialog(playeridDIALOG_REGISTERDIALOG_STYLE_INPUT"Register""Escreva uma senha, para se registrar!""registrar""Sair");
        }
        return 
1;
    }
    
//=================================[ DIALOGO   LOGIN ]==============================||
    
if(dialogid == DIALOG_LOGIN)
    {
        if(!
response) return Kick(playerid);
        if(
response)
        {
            if(!
strlen(inputtext))
            {
                return 
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_INPUT"LOGIN""Bem vindo ! \nEscreva uma senha abaixo para entrar em sua conta.","entrar""sair");
            }
            
format(Contasizeof(Conta), "Contas/%s.ini"Name(playerid));
            if(
strcmp(inputtextDOF2_GetString(Conta"Password"), true))
            {
                
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_INPUT"LOGIN""Bem vindo ! \nEscreva uma senha abaixo para entrar em sua conta.","entrar""sair");
                
SendClientMessage(playerid, -1"[ SERVER ] a senha estб errada!");
            }
            else 
//se acertar a senha
            
{
                
CarregarConta(playerid);
            }
        }
        return 
1;
    }
    return 
1;
}
//========================================
public OnPlayerSpawn(playerid)
{
    
SetPlayerSkin(playeridPlayer[playerid][pSkin]);
    
DarMoney(playerid,Player[playerid][pMoney]);
    
TogglePlayerControllable(playerid,true);
    return 
1;
}
//=====================================================================================||
CriarConta(playerid)
{
    
format(Contasizeof(Conta), "Contas/%s.ini"Name(playerid));
    
DOF2_SetInt(Conta"Admin"0);
    
DOF2_SetInt(Conta"Skin"98);
    
DOF2_SetInt(Conta"Money"500);
    
DOF2_SetInt(Conta"Score"0);
    
DOF2_SetFloat(Conta"PosX"2069.8767);
    
DOF2_SetFloat(Conta"PosY", -1766.6870);
    
DOF2_SetFloat(Conta"PosZ"13.5621);
    
DOF2_SetFloat(Conta"PosA"90.0);
    
DOF2_SetInt(Conta"Interior"0);
    
DOF2_SetInt(Conta"VW"0);
    
DOF2_SaveFile();
}
CarregarConta(playerid)
{
    
format(Contasizeof(Conta), "Contas/%s.ini"Name(playerid));
    
Player[playerid][pAdmin] = DOF2_GetInt(Conta"Admin");
    
Player[playerid][pSkin] = DOF2_GetInt(Conta"Skin");
    
Player[playerid][pMoney] = DOF2_GetInt(Conta"Money");
    
Player[playerid][pScore] = DOF2_GetInt(Conta"Score");
    
Player[playerid][pPosX] = DOF2_GetInt(Conta"PosX");
    
Player[playerid][pPosY] = DOF2_GetInt(Conta"PosY");
    
Player[playerid][pPosZ] = DOF2_GetInt(Conta"PosZ");
    
Player[playerid][pPosA] = DOF2_GetInt(Conta"PosA");
    
Player[playerid][pInterior] = DOF2_GetInt(Conta"Interior");
    
Player[playerid][pVW] = DOF2_GetInt(Conta"VW");
    
Player[playerid][pLogado]=true;
    
SetPlayerScore(playeridPlayer[playerid][pScore]);
    
DarMoney(playeridPlayer[playerid][pMoney]);
    
SetPlayerInterior(playeridPlayer[playerid][pInterior]);
    
SetPlayerVirtualWorld(playeridPlayer[playerid][pVW]);
    
SetSpawnInfo(playerid, -1Player[playerid][pSkin], Player[playerid][pPosX], Player[playerid][pPosY], Player[playerid][pPosZ], Player[playerid][pPosA],0,0,0,0,0,0);
    
SpawnPlayer(playerid);
}
SalvarConta(playerid)
{
    
format(Contasizeof(Conta), "Contas/%s.ini"Name(playerid));
    
GetPlayerPos(playeridPlayer[playerid][pPosX], Player[playerid][pPosY], Player[playerid][pPosZ]);
    
GetPlayerFacingAngle(playerid,Player[playerid][pPosA]);
    
DOF2_SetInt(Conta"Admin"Player[playerid][pAdmin]);
    
DOF2_SetInt(Conta"Skin"Player[playerid][pSkin]);
    
DOF2_SetInt(Conta"Money"Player[playerid][pMoney]);
    
DOF2_SetInt(Conta"Score"Player[playerid][pScore]);
    
DOF2_SetFloat(Conta"PosX"Player[playerid][pPosX]);
    
DOF2_SetFloat(Conta"PosY"Player[playerid][pPosY]);
    
DOF2_SetFloat(Conta"PosZ"Player[playerid][pPosZ]);
    
DOF2_SetFloat(Conta"PosA"Player[playerid][pPosA]);
    
DOF2_SetInt(Conta"Interior"GetPlayerInterior(playerid));
    
DOF2_SetInt(Conta"VW"GetPlayerVirtualWorld(playerid));
    
DOF2_SaveFile();
}
Name(playerid)
{
    new 
pNome[MAX_PLAYER_NAME];
    
GetPlayerName(playeridpNome24);
    return 
pNome;

Aconselho essa GM Base: https://sampforum.blast.hk/showthread.php?tid=625795 muito boa para aprender mais...
Reply
#7

Code:
new Dinheiro[MAX_PLAYERS]; // cria variavel dinheiro 1 variavel para MAX_PLAYERS

//OnPlayerDisconnect


DOF2_SetInt(/* Lugar do arquivo*/, "Key", GetPlayerMoney(playerid));

//OnPlayerConnect

Dinheiro[playerid] = DOF2_GetInt(/* Lugar do arquivo*/, "Key"); // Geta o valor da Key na variavel Dinheiro
GivePlayerMoney(playerid, Dinheiro[playerid]);
Reply
#8

Quote:
Originally Posted by IlanZ
View Post
Code:
new Dinheiro[MAX_PLAYERS]; // cria variavel dinheiro 1 variavel para MAX_PLAYERS

//OnPlayerDisconnect


DOF2_SetInt(/* Lugar do arquivo*/, "Key", GetPlayerMoney(playerid));

//OnPlayerConnect

Dinheiro[playerid] = DOF2_GetInt(/* Lugar do arquivo*/, "Key"); // Geta o valor da Key na variavel Dinheiro
GivePlayerMoney(playerid, Dinheiro[playerid]);
poderia me explicar oq й esse lugar do arquivo ... ?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)