[Ajuda] Stocks Salvamento .
#1

Poxa galera sei que esse й meu primeiro tуpico e tudo , mais to coma dificuldade aqui .
No fim do meu GM eu tenho isso :

pawn Код:
stock Load(playerid)
{
    Contas(playerid);
    SetPlayerScore(playerid, DOF2_GetInt(arquivo_conta, "Level"));
    return 1;
}

stock Contas(playerid)
{
    new
        Arquivo[50],
        Nome_S[MAX_PLAYER_NAME]
    ;
   
    GetPlayerName(playerid, Nome_S, sizeof(Nome_S));
    format(Arquivo, sizeof(Arquivo), "Contas/%s.ini", Nome_S);
}

stock Salvar(playerid)
{
    Contas(playerid);
    if (!DOF2_FileExists(Arquivo))
    {
        DOF2_CreateFile(Arquivo);
        Salvar(playerid);
        return 1;
    }
    DOF2_SetInt(Arquivo, "Level", GetPlayerScore(playerid));
    DOF2_SaveFile();
    return 1;
}
Sу que da erros .

pawn Код:
C:\Users\cRc\Desktop\Untitled.pwn(287) : error 017: undefined symbol "Arquivo"
C:\Users\cRc\Desktop\Untitled.pwn(289) : error 017: undefined symbol "Arquivo"
C:\Users\cRc\Desktop\Untitled.pwn(293) : error 017: undefined symbol "Arquivo"
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase

3 Errors.
Eu nгo sei por que estб falando que o "arquivo_conta" й indefinido , jб que eu estou chamando a stock Contas dentro das stocks Ler e Salvar .

Em fim , quem souber concertar pode me ajudar ? й isso .
Reply
#2

Tenta ver se vai funcionar.
pawn Код:
stock Load(playerid)
{
    SetPlayerScore(playerid, DOF2_GetInt(Contas(playerid), "Level"));
    return 1;
}

stock Contas(playerid)
{
    new
        Arquivo[50],
        Nome_S[MAX_PLAYER_NAME]
    ;

    GetPlayerName(playerid, Nome_S, sizeof(Nome_S));
    format(Arquivo, sizeof(Arquivo), "Contas/%s.ini", Nome_S);
    return Arquivo;
}

stock Salvar(playerid)
{
    if(!DOF2_FileExists(Contas(playerid)))
    {
        DOF2_CreateFile(Contas(playerid));
        Salvar(playerid);
        return 1;
    }
    DOF2_SetInt(Contas(playerid), "Level", GetPlayerScore(playerid));
    DOF2_SaveFile();
    return 1;
}
Reply
#3

DrTHE . Deu certo cara , muito obrigado .

Porem , eu estou com um probleminha . quero salvar a posiзгo do player quando ele sair do servidor . Para isso , eu botei Salvar(playerid); na OnPlayerDisconect . e fiz isso aqui :

pawn Код:
stock Ler(playerid)
{
    SetPlayerPos(playerid, DOF2_GetInt(Contas(playerid), "Pos"));
    return 1;
}

stock Salvar(playerid)
{
    if(!DOF2_FileExists(Contas(playerid)))
    {
        DOF2_CreateFile(Contas(playerid));
        Salvar(playerid);
        return 1;
    }
   
    DOF2_SetInt(Contas(playerid), "Pos", GetPlayerPos(playerid, Px, Py, Pz));
    DOF2_SaveFile();
    return 1;
}
Sу que nгo dб muito certo .
Nessa linha :
pawn Код:
SetPlayerPos(playerid, DOF2_GetInt(Contas(playerid), "Pos"));
Dб dois Warnings .

" number of arguments does not match definition "

Por que isso acontece ?

Lembrando que as variбveis Px, Py, Pz Sгo Floats Globais .
Reply
#4

Usa DOF2_SetFloat em px, py, e pz para salvar, e DOF2_GetFloat para ler depois.
Reply
#5

pawn Код:
stock Ler(playerid)
{
    SetPlayerPos(playerid, DOF2_GetFloat(Contas(playerid), "Pos"));
    return 1;
}

stock Salvar(playerid)
{
    if(!DOF2_FileExists(Contas(playerid)))
    {
        DOF2_CreateFile(Contas(playerid));
        Salvar(playerid);
        return 1;
    }
   
    DOF2_SetFloat(Contas(playerid), "Pos", GetPlayerPos(playerid, Px, Py, Pz));
    DOF2_SaveFile();
    return 1;
}
Deu os mesmos warnigns.
Reply
#6

pawn Код:
// OnPlayerDisconnect //
new Float: Pos[3];
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
DOF2_SetFloat(Contas(playerid),"CoordenadaX",Pos[0]);
DOF2_SetFloat(Contas(playerid),"CoordenadaY",Pos[1]);
DOF2_SetFloat(Contas(playerid),"CoordenadaZ",Pos[2]);
DOF2_SaveFile();

// OnPlayerSpawn // ou // OnPlayerConnect //

SetPlayerPos(playerid,DOF2_GetFloat(Contas(playerid),"CoordenadaX"),DOF2_GetFloat(Contas(playerid),"CoordenadaY"),DOF2_GetFloat(Contas(playerid),"CoordenadaZ"));
Acho que й isso
Reply
#7

Nгo, й pra criar uma tag para cada "P", ou seja:
pawn Код:
GetPlayerPos(playerid, Px, Py, Pz);
DOF2_SetFloat(Contas(playerid), "PosX", Px);
DOF2_SetFloat(Contas(playerid), "PosY", Py);
DOF2_SetFloat(Contas(playerid), "PosZ", Pz);
pawn Код:
SetPlayerPos(playerid, DOF2_GetFloat(Contas(playerid), "PosX"), DOF2_GetFloat(Contas(playerid), "PosY"), DOF2_GetFloat(Contas(playerid), "PosZ"));
iSmir ninja
Reply
#8

Fiz assim e compilou.

pawn Код:
stock Ler(playerid)
{
    SetPlayerPos(playerid,
    DOF2_GetFloat(Contas(playerid), "PosX"),
    DOF2_GetFloat(Contas(playerid), "PosY"),
    DOF2_GetFloat(Contas(playerid), "PosZ"));
    return 1;
}

stock Salvar(playerid)
{
    if(!DOF2_FileExists(Contas(playerid)))
    {
        DOF2_CreateFile(Contas(playerid));
        Salvar(playerid);
        return 1;
    }
   
    DOF2_SetFloat(Contas(playerid), "Pos", GetPlayerPos(playerid, Px, Py, Pz));
    DOF2_SaveFile();
    return 1;
}
Reply
#9

Muito obrigado a todos ai por terem me ajudado .
Reply
#10

Quote:
Originally Posted by rCr
Посмотреть сообщение
Fiz assim e compilou.

pawn Код:
stock Ler(playerid)
{
    SetPlayerPos(playerid,
    DOF2_GetFloat(Contas(playerid), "PosX"),
    DOF2_GetFloat(Contas(playerid), "PosY"),
    DOF2_GetFloat(Contas(playerid), "PosZ"));
    return 1;
}

stock Salvar(playerid)
{
    if(!DOF2_FileExists(Contas(playerid)))
    {
        DOF2_CreateFile(Contas(playerid));
        Salvar(playerid);
        return 1;
    }
   
    DOF2_SetFloat(Contas(playerid), "Pos", GetPlayerPos(playerid, Px, Py, Pz));
    DOF2_SaveFile();
    return 1;
}
Corrigindo apenas uma coisa:
pawn Код:
stock Salvar(playerid)
{
    if(!DOF2_FileExists(Contas(playerid)))
    {
        DOF2_CreateFile(Contas(playerid));
        Salvar(playerid);
        return 1;
    }

    GetPlayerPos(playerid, Px, Py, Pz);
    DOF2_SetFloat(Contas(playerid), "PosX", Px);
    DOF2_SetFloat(Contas(playerid), "PosY", Py);
    DOF2_SetFloat(Contas(playerid), "PosZ", Pz);
    DOF2_SaveFile();
    return 1;
}
Quote:
Originally Posted by rCr
Посмотреть сообщение
Muito obrigado a todos ai por terem me ajudado .
De nada
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)