[Ajuda] Atualizar dados em dof2
#1

Eae pessual, eu estou com um problema aqui, tipo eu consertei o meu sistema de exp e level, agora ele esta salvando certo no arquivo do player, mas para isso eu tive que retirar duas linhas na minha stock de salvamento, retirei a que salvava o exo e a do level, ai funcionou o sistema de exp e level.

Se eu sair do jogo e ir ver se esta salvo os esp e level que eu ganhei, eles aparecem tudo certo, mas quando eu aperto TAB para ver o score(level) ele nao atualizou o level, o level fica parado igual a do arquivo, e se eu relogar ele aparece certo.
Como eu faзo para aparecer.
Tenho que criar uma stock de atualizar dados?
ou o que devo fazer.
Reply
#2

Use OnPlayerUpdate.
PHP код:
SetPlayerScore(playerid,DOF2_GetInt(ARQUIVO,LINHA)) 
Reply
#3

Quote:
Originally Posted by darkxdll
Посмотреть сообщение
Use OnPlayerUpdate.
PHP код:
SetPlayerScore(playerid,DOF2_GetInt(ARQUIVO,LINHA)) 
Isso funcionou.

mas agora tem outro problema, quendo eu vou dar level nao esta salvando, na verdade nao esta dando.

eu tive que fazer isso para o exp e level savarem
pawn Код:
stock SalvarDados(playerid)
{
    format(StrContas, sizeof(StrContas), "Contas/%s.ini", Nome(playerid));
    DOF2_SetInt(StrContas, "Dinheiro", GetPlayerMoney(playerid));
    DOF2_SetInt(StrContas, "Skin", GetPlayerSkin(playerid));
    DOF2_SetInt(StrContas, "Admin", DadosPlayer[playerid][pAdmin]);
    //DOF2_SetInt(StrContas, "Level", GetPlayerScore(playerid));// <<=====
    DOF2_SetInt(StrContas, "Profissao", PlayerProf[playerid]);
    DOF2_SetInt(StrContas, "Avisos", DadosPlayer[playerid][pAvisos]);
    DOF2_SetInt(StrContas, "Ajudante", DadosPlayer[playerid][pAjudante]);
    DOF2_SetInt(StrContas, "TemConta", DadosPlayer[playerid][TemConta]);
    DOF2_SetInt(StrContas, "Saldo", DadosPlayer[playerid][Saldo]);
    //DOF2_SetInt(StrContas, "EXP", DadosPlayer[playerid][EXP]);// <<=====
    DOF2_SaveFile();
    return 1;
}
sу que fazendo isso agora nao posso setar level e nem exp como adm, o comando ate funfa, mas nao conta, salva...
Reply
#4

Mostre-me o comando .
Reply
#5

pawn Код:
CMD:setarlevel(playerid, params[])
{
    if(DadosPlayer[playerid][pAdmin] < 3)
        return SendClientMessage(playerid, VERMELHO,"|ERRO| Vocк nгo й um membro da Staff e nгo pode Executar esse Comando.");

    new Valor;
    if(sscanf(params, "uii", ID, Valor))
        return SendClientMessage(playerid, VERMELHO,"|ERRO| Correto: /setarlevel [ID] [Quantidade].");
    if(!IsPlayerConnected(ID))
        return SendClientMessage(playerid, VERMELHO, "|ERRO| Player nгo conectado");

    format(strg, sizeof(strg), "|INFO| O %s %s setou %i de Level para vocк.", CargoAdmin(playerid), GetPlayerNameEx(playerid), Valor);
    SendClientMessage(ID, AZULCLARO, strg);
    format(strg, sizeof(strg), "|INFO| Vocк setou para %s, %i de Level.", GetPlayerNameEx(playerid), Valor);
    SendClientMessage(playerid, AZULCLARO, strg);
    SetPlayerScore(ID, Valor);
    return true;
}
Reply
#6

Em vez de setar o score , sete o valor da variбvel de Level .

ex :
PHP код:
playerinfo[playerid][level] = 50;//exemplo apenas 
Reply
#7

mas me sistema de level й este.
ai nao sei se iria dar certo.
pawn Код:
forward RelogioUP(playerid);
public RelogioUP(playerid)
{
    if(segUP[playerid] == 0 && minUP[playerid] == 0)
    {
        GetPlayerName(playerid, StrContas, sizeof(StrContas));
        format(StrContas, sizeof(StrContas), "Contas/%s.ini", Nome(playerid));
        if(DadosPlayer[playerid][TemConta] == 1)
        {
            DOF2_SetInt(StrContas, "EXP", DOF2_GetInt(StrContas, "EXP") +1);
            format(strg, sizeof(strg), "| EXP | Vocк ganhou +1 de experiкncia! [ %d / 5 ]", DOF2_GetInt(StrContas, "EXP"));
            PlayerPlaySound(playerid, 1057, 0, 0, 0);
            SendClientMessage(playerid, 0x33AAFFFF, strg);
            DOF2_SetInt(StrContas, "Tempo",0);
        }
        if(DOF2_GetInt(StrContas, "EXP") >=5)
        {
            DOF2_SetInt(StrContas, "Level", DOF2_GetInt(StrContas, "Level") +1);
            format(strg, sizeof(strg), "| UP | Vocк juntou 5 experiкncias, e ganhou +1 level  [Level: %d]", DOF2_GetInt(StrContas, "Level"));
            SendClientMessage(playerid, 0x75EA00AA, strg);
            PlayerPlaySound(playerid, 1057, 0, 0, 0);
            DOF2_SetInt(StrContas, "EXP", 0);
            DOF2_SaveFile();
        }
    }
    if(segUP[playerid] == -1)// -1
    {
        if(minUP[playerid] == 0)
        minUP[playerid] = 1;
        segUP[playerid] = 20;
        minUP[playerid] --;
    }
    format(strg, sizeof(strg), "~w~+~r~UP: ~w~%02d:%02d", minUP[playerid], segUP[playerid]);
    TextDrawSetString(UPRelogio[playerid], strg);
    segUP[playerid] --;
    return 1;
}
Reply
#8

Entгo no comando de setar o level, abra o arquivo do player e sete o level dele.
PHP код:
new playername[24] , arquivo[128];
GetPlayerName(ID,playername,sizeof(playername));
format(arquivo,sizeof(arquivo),"%s.txt",playername);
DOF2_SetInt(arquivo,"Level",Valor);
DOF2_SaveFile(); 
Troque pelo SetPlayerScore no seu comando .
Reply
#9

Quote:
Originally Posted by darkxdll
Посмотреть сообщение
Entгo no comando de setar o level, abra o arquivo do player e sete o level dele.
PHP код:
new playername[24] , arquivo[128];
GetPlayerName(ID,playername,sizeof(playername));
format(arquivo,sizeof(arquivo),"%s.txt",playername);
DOF2_SetInt(arquivo,"Level",Valor);
DOF2_SaveFile(); 
Troque pelo SetPlayerScore no seu comando .
OK, Tudo certo agora.

Mas quando eu aperto TAB o score fica lokiando, ele ta em 50 que й o level certo e derrepente ele vai pra 0 ai ele volta pra 50 e fica assim ate desconectar.
Reply
#10

Deve ter conflito , alguma funзгo estб setando o score a 0 .
De um CTRL F e procure por SetPlayerScore
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)