[Ajuda] Nascendo com skin CJ
#1

Problema: Eu criei um sistema de login, aonde ele salva muitas informaзхes, dentre elas a skin. Quando eu dou /q no server ele salva todas as informaзхes, mas quando eu dou /gmx ele nгo salva a skin do jogador mas as outras informaзхes sim. Eu gostaria de saber oque pode ser!
Caso queiram o cуdigo sу pedir!
Reply
#2

Qual sistema de salvamento vocк estб usando?
e o code claro --'
Reply
#3

Passa o cуdigo de salvamento de dados que estб no OnPlayerDisconnect, pois apartir desse cуdigo й possivel fazer uma stock que salva os dados do jogador no GMX!
Reply
#4

Uso o DOF2.

pawn Код:
public OnPlayerDisconnect(playerid)
{
    new Contas[40], Nome[24];
    GetPlayerName(playerid, Nome, 32);
    format(Contas, 40, "Contas/%s.ini", Nome);
    if(DOF2_FileExists(Contas))
    {
        DOF2_SetInt(Contas,"Level", GetPlayerScore(playerid));
        DOF2_SetInt(Contas,"Admin", Player[playerid][pAdmin]);
        DOF2_SetInt(Contas,"Dinheiro", GetPlayerMoney(playerid));
        DOF2_SetInt(Contas,"Sexo", Player[playerid][pSexo]);
        DOF2_SetInt(Contas,"Skin", GetPlayerSkin(playerid));
        DOF2_SetInt(Contas,"Conta Vip", Player[playerid][pVip]);
        DOF2_SaveFile();
    }
    return 1;
}
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new Contas[40], Nome[24];
    GetPlayerName(playerid, Nome, 32);
    format(Contas, 40, "Contas/%s.ini", Nome);
//Logando
    if(dialogid == 1)
    {
        if (!response) return Kick(playerid);
        if(response)
        {
            new Senha = DOF2_GetInt(Contas, "Senha");
            if(Senha != Encrypt(inputtext))
            {
                ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Logando","Esta senha nгo й correspondente com a conta\nTente novamente","Logar","Cancelar");
            }
            else
            {
                Player[playerid][pSexo] = DOF2_GetInt(Contas,"Sexo");
                Player[playerid][pAdmin] = DOF2_GetInt(Contas,"Admin");
                Player[playerid][pLevel] = SetPlayerScore(playerid,DOF2_GetInt(Contas,"Level"));
                Player[playerid][pSkin] = SetPlayerSkin(playerid,DOF2_GetInt(Contas,"Skin"));
                Player[playerid][pDinheiro] = GivePlayerMoney(playerid,DOF2_GetInt(Contas,"Dinheiro"));
                Player[playerid][pVip] = DOF2_GetInt(Contas,"Conta Vip");
                SpawnPlayer(playerid);
                SetSpawnInfo(playerid, 0, DOF2_GetInt(Contas,"Skin"), 240.1, 110.0, 200.0, 0.0, 0, 0, 0, 0, 0, 0);
            }
        }
    }
//Registrando
    if(dialogid == 2)
    {
        if (!response) return Kick(playerid);
        if(response)
        {
            DOF2_SetInt(Contas,"Senha",Encrypt(inputtext));
            DOF2_SetInt(Contas,"Level",1);
            DOF2_SetInt(Contas,"Admin",0);
            DOF2_SetInt(Contas,"Dinheiro",1500);
            DOF2_SetInt(Contas,"Sexo",0);
            DOF2_SetInt(Contas,"Skin",0);
            DOF2_SetInt(Contas,"Conta Vip",0);
            DOF2_SaveFile();
            ShowPlayerDialog(playerid,1,DIALOG_STYLE_PASSWORD,"Logando","Obrigado por registrar-se em nosso servidor\nAgora basta apenas logar. Digite sua senha","Logar","Cancelar");
        }
    }
Reply
#5

Corrigido.

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new Contas[40], Nome[24];
    GetPlayerName(playerid, Nome, 32);
    format(Contas, 40, "Contas/%s.ini", Nome);
//Logando
    if(dialogid == 1)
    {
        if (!response) return Kick(playerid);
        if(response)
        {
            new Senha = DOF2_GetInt(Contas, "Senha");
            if(Senha != Encrypt(inputtext))
            {
                ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Logando","Esta senha nгo й correspondente com a conta\nTente novamente","Logar","Cancelar");
            }
            else
            {
                Player[playerid][pSexo] = DOF2_GetInt(Contas,"Sexo");
                Player[playerid][pAdmin] = DOF2_GetInt(Contas,"Admin");
                Player[playerid][pLevel] = SetPlayerScore(playerid,DOF2_GetInt(Contas,"Level"));
                Player[playerid][pSkin] = DOF2_GetInt(Contas,"Skin");
                Player[playerid][pDinheiro] = GivePlayerMoney(playerid,DOF2_GetInt(Contas,"Dinheiro"));
                Player[playerid][pVip] = DOF2_GetInt(Contas,"Conta Vip");
                SetSpawnInfo(playerid, 0, Player[playerid][pSkin], 240.1, 110.0, 200.0, 0.0, 0, 0, 0, 0, 0, 0);
                SpawnPlayer(playerid);
               
            }
        }
    }
//Registrando
    if(dialogid == 2)
    {
        if (!response) return Kick(playerid);
        if(response)
        {
            DOF2_SetInt(Contas,"Senha",Encrypt(inputtext));
            DOF2_SetInt(Contas,"Level",1);
            DOF2_SetInt(Contas,"Admin",0);
            DOF2_SetInt(Contas,"Dinheiro",1500);
            DOF2_SetInt(Contas,"Sexo",0);
            DOF2_SetInt(Contas,"Skin",0);
            DOF2_SetInt(Contas,"Conta Vip",0);
            DOF2_SaveFile();
            ShowPlayerDialog(playerid,1,DIALOG_STYLE_PASSWORD,"Logando","Obrigado por registrar-se em nosso servidor\nAgora basta apenas logar. Digite sua senha","Logar","Cancelar");
        }
    }
Reply
#6

Tente usar:

Nota: A Stock pode ser colocada no topo ou final do GM!

pawn Код:
stock SalvarInfo(playerid)
{
    new Contas[40], Nome[24];
    GetPlayerName(playerid, Nome, 32);
    format(Contas, 40, "Contas/%s.ini", Nome);
    if(DOF2_FileExists(Contas))
    {
        DOF2_SetInt(Contas,"Level", GetPlayerScore(playerid));
        DOF2_SetInt(Contas,"Admin", Player[playerid][pAdmin]);
        DOF2_SetInt(Contas,"Dinheiro", GetPlayerMoney(playerid));
        DOF2_SetInt(Contas,"Sexo", Player[playerid][pSexo]);
        DOF2_SetInt(Contas,"Skin", GetPlayerSkin(playerid));
        DOF2_SetInt(Contas,"Conta Vip", Player[playerid][pVip]);
        DOF2_SaveFile();
    }
    return 1;
}

public OnGameModeExit()
{
    for(new p=0; p<MAX_PLAYERS; p++)
    {
        if(IsPlayerConnected(p))
        {
            SalvarInfo(p);
        }
    }
    return 1;
}
@EDIT

Hm, nгo vi que apenas a Skin й que nгo guardava...
Reply
#7

Quote:
Originally Posted by Pedro_Miranda
Посмотреть сообщение
Corrigido.

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new Contas[40], Nome[24];
    GetPlayerName(playerid, Nome, 32);
    format(Contas, 40, "Contas/%s.ini", Nome);
//Logando
    if(dialogid == 1)
    {
        if (!response) return Kick(playerid);
        if(response)
        {
            new Senha = DOF2_GetInt(Contas, "Senha");
            if(Senha != Encrypt(inputtext))
            {
                ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Logando","Esta senha nгo й correspondente com a conta\nTente novamente","Logar","Cancelar");
            }
            else
            {
                Player[playerid][pSexo] = DOF2_GetInt(Contas,"Sexo");
                Player[playerid][pAdmin] = DOF2_GetInt(Contas,"Admin");
                Player[playerid][pLevel] = SetPlayerScore(playerid,DOF2_GetInt(Contas,"Level"));
                Player[playerid][pSkin] = SetPlayerSkin(playerid,DOF2_GetInt(Contas,"Skin"));
                Player[playerid][pDinheiro] = GivePlayerMoney(playerid,DOF2_GetInt(Contas,"Dinheiro"));
                Player[playerid][pVip] = DOF2_GetInt(Contas,"Conta Vip");
                SetSpawnInfo(playerid, 0, DOF2_GetInt(Contas,"Skin"), 240.1, 110.0, 200.0, 0.0, 0, 0, 0, 0, 0, 0);
                SpawnPlayer(playerid);
               
            }
        }
    }
//Registrando
    if(dialogid == 2)
    {
        if (!response) return Kick(playerid);
        if(response)
        {
            DOF2_SetInt(Contas,"Senha",Encrypt(inputtext));
            DOF2_SetInt(Contas,"Level",1);
            DOF2_SetInt(Contas,"Admin",0);
            DOF2_SetInt(Contas,"Dinheiro",1500);
            DOF2_SetInt(Contas,"Sexo",0);
            DOF2_SetInt(Contas,"Skin",0);
            DOF2_SetInt(Contas,"Conta Vip",0);
            DOF2_SaveFile();
            ShowPlayerDialog(playerid,1,DIALOG_STYLE_PASSWORD,"Logando","Obrigado por registrar-se em nosso servidor\nAgora basta apenas logar. Digite sua senha","Logar","Cancelar");
        }
    }
Nгo resultou!
Reply
#8

Editei acima, veja se funciona.
Reply
#9

Quote:
Originally Posted by Pedro_Miranda
Посмотреть сообщение
Editei acima, veja se funciona.
Tambйm nгo funcionou.

ainda tem essa outra parte do sistema

pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
    new Contas[40], Nome[24];
    SetPlayerColor(playerid,-1);
    GetPlayerName(playerid, Nome, 32);
    format(Contas, 40, "Contas/%s.ini", Nome);
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    if(DOF2_FileExists(Contas))
    {
        SpawnPlayer(playerid);
        SetPlayerSkin(playerid,DOF2_GetInt(Contas,"Skin"));
        SetSpawnInfo(playerid, 0, DOF2_GetInt(Contas,"Skin"), 240.1, 110.0, 200.0, 0.0, 0, 0, 0, 0, 0, 0);
    }
    return 1;
}
Reply
#10

O SetSpawnInfo deve vir antes de SpawnPlayer.

pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
    new Contas[40], Nome[24];
    SetPlayerColor(playerid,-1);
    GetPlayerName(playerid, Nome, 32);
    format(Contas, 40, "Contas/%s.ini", Nome);
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    if(DOF2_FileExists(Contas))
    {
        SetSpawnInfo(playerid, 0, DOF2_GetInt(Contas,"Skin"), 240.1, 110.0, 200.0, 0.0, 0, 0, 0, 0, 0, 0);
        SpawnPlayer(playerid);
    }
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)