[Ajuda] Sistema de Level
#1

Boa tarde, meu sistema de level nгo aumenta o level ou score do player, o que tem de errado??

PHP код:
forward UparLevel(playerid);
public 
UparLevel(playerid)
{
    if( 
IsPlayerConnectedplayerid ) && Logado[playerid] == true )
    {
        new 
Arquivolvl[40];
         if(
PlayerInfo[playerid][pRespeito] == )
        {
            
PlayerInfo[playerid][pLevel] ++ ;
            
PlayerInfo[playerid][pRespeito] = 0;
            
SendClientMessage(playerid,-1,"{7FFF00}| LEVEL | Parabйns! Vocк juntou {FFFFFF}[ 5/5 ]{7FFF00} de experiкncia e ganhou {FFFFFF}+1 {7FFF00}Level.");
            
GameTextForPlayer(playerid"~w~~h~UP "30006);
            
PlayerPlaySound(playerid10570.00.010.0);
            
DOF2_SetInt(Arquivolvl,"Level",PlayerInfo[playerid][pLevel]);
            
SetPlayerScore(playerid,DOF2_GetInt(Arquivolvl,"Level"));
            
PagarSalario(playerid);
        }
        else
        {
            
PlayerInfo[playerid][pRespeito] ++;
            
format(stringmediasizeof(stringmedia), "{7FFF00}| UP | Vocк ganhou {FFFFFF}[ %d/5 ] {7FFF00}de experiкncia!"PlayerInfo[playerid][pRespeito]);
            
SendClientMessage(playerid,0xFFFFFFAA,stringmedia);
            
GameTextForPlayer(playerid"~r~~h~+~w~EXP"30006);
            
PlayerPlaySound(playerid10570.00.010.0);
            
DOF2_SetInt(Arquivolvl,"EXP",PlayerInfo[playerid][pRespeito]);
        }
    }
    return 
1;

Reply
#2

Faзa um debug no DOF2_GetInt e veja o que estб a retornar.
Reply
#3

Quote:
Originally Posted by bruxo00
Посмотреть сообщение
Faзa um debug no DOF2_GetInt e veja o que estб a retornar.
Ele nгo aumenta o level, ele pega o level que esta na conta, o anterior.

Ex: tenho level 1, ao invйs de adicionar mais 1 e eu ficar com 2, ele pega o 1 e seta de novo.
Reply
#4

TESTE ESSE

PHP код:
forward UparLevel(playerid); 
public 
UparLevel(playerid

    if( 
IsPlayerConnectedplayerid ) && Logado[playerid] == true 
    { 
        new 
Arquivolvl[40]; 
         if(
PlayerInfo[playerid][pRespeito] == 
        { 
            
PlayerInfo[playerid][pLevel] ++ ; 
            
PlayerInfo[playerid][pRespeito] = 0
            
SetPlayerScore(playerid,GetPlayerScore(playerid)+1);
            
SendClientMessage(playerid,-1,"{7FFF00}| LEVEL | Parabйns! Vocк juntou {FFFFFF}[ 5/5 ]{7FFF00} de experiкncia e ganhou {FFFFFF}+1 {7FFF00}Level."); 
            
GameTextForPlayer(playerid"~w~~h~UP "30006); 
            
PlayerPlaySound(playerid10570.00.010.0); 
            
DOF2_SetInt(Arquivolvl,"Level",PlayerInfo[playerid][pLevel]); 
            
SetPlayerScore(playerid,DOF2_GetInt(Arquivolvl,"Level")); 
            
PagarSalario(playerid); 
        } 
        else 
        { 
            
PlayerInfo[playerid][pRespeito] ++; 
            
format(stringmediasizeof(stringmedia), "{7FFF00}| UP | Vocк ganhou {FFFFFF}[ %d/5 ] {7FFF00}de experiкncia!"PlayerInfo[playerid][pRespeito]); 
            
SendClientMessage(playerid,0xFFFFFFAA,stringmedia); 
            
GameTextForPlayer(playerid"~r~~h~+~w~EXP"30006); 
            
PlayerPlaySound(playerid10570.00.010.0); 
            
DOF2_SetInt(Arquivolvl,"EXP",PlayerInfo[playerid][pRespeito]); 
        } 
    } 
    return 
1

Reply
#5

Quote:
Originally Posted by D3sconn3ct
Посмотреть сообщение
TESTE ESSE

PHP код:
forward UparLevel(playerid); 
public 
UparLevel(playerid

    if( 
IsPlayerConnectedplayerid ) && Logado[playerid] == true 
    { 
        new 
Arquivolvl[40]; 
         if(
PlayerInfo[playerid][pRespeito] == 
        { 
            
PlayerInfo[playerid][pLevel] ++ ; 
            
PlayerInfo[playerid][pRespeito] = 0
            
SetPlayerScore(playerid,GetPlayerScore(playerid)+1);
            
SendClientMessage(playerid,-1,"{7FFF00}| LEVEL | Parabйns! Vocк juntou {FFFFFF}[ 5/5 ]{7FFF00} de experiкncia e ganhou {FFFFFF}+1 {7FFF00}Level."); 
            
GameTextForPlayer(playerid"~w~~h~UP "30006); 
            
PlayerPlaySound(playerid10570.00.010.0); 
            
DOF2_SetInt(Arquivolvl,"Level",PlayerInfo[playerid][pLevel]); 
            
SetPlayerScore(playerid,DOF2_GetInt(Arquivolvl,"Level")); 
            
PagarSalario(playerid); 
        } 
        else 
        { 
            
PlayerInfo[playerid][pRespeito] ++; 
            
format(stringmediasizeof(stringmedia), "{7FFF00}| UP | Vocк ganhou {FFFFFF}[ %d/5 ] {7FFF00}de experiкncia!"PlayerInfo[playerid][pRespeito]); 
            
SendClientMessage(playerid,0xFFFFFFAA,stringmedia); 
            
GameTextForPlayer(playerid"~r~~h~+~w~EXP"30006); 
            
PlayerPlaySound(playerid10570.00.010.0); 
            
DOF2_SetInt(Arquivolvl,"EXP",PlayerInfo[playerid][pRespeito]); 
        } 
    } 
    return 
1

jб testei, mas se eu tenho o getplayerscore jб, nгo preciso do PlayerInfo[playerid][pLevel] ++ ; '-'
Reply
#6

Quote:
Originally Posted by LucasDias
Посмотреть сообщение
jб testei, mas se eu tenho o getplayerscore jб, nгo preciso do PlayerInfo[playerid][pLevel] ++ ; '-'
@EDIT
Aumentou absurdamente o level, do 1 fou pro 69, e salvou como 1 sу.

up! Alguem?
Reply
#7

Fiz de um modo pratico, testa ae e me fala, me manda esse timer da public, caso tenha.. estuda.. pedir cуdigo nгo vai lhe ajudar!

PHP код:
forward UparLevel(playerid);
public 
UparLevel(playerid)
{
    if (
IsPlayerConnected(playerid) && Logado[playerid] == true)
    {
        if (
PlayerInfo[playerid][pRespeito] == 4)
        {
            
PlayerInfo[playerid][pLevel]++, PlayerInfo[playerid][pRespeito] = 0;
            
SetPlayerScore(playeridPlayerInfo[playerid][pLevel]);
            
SalvarNivel(playeridPlayerInfo[playerid][pLevel]);
            
PlayerInfo[playerid][pRespeito] = 0;
            
SendClientMessage(playerid, -1"{7FFF00}| LEVEL | Parabйns! Vocк juntou {FFFFFF}[ 5/5 ]{7FFF00} de experiкncia e ganhou {FFFFFF}+1 {7FFF00}Level.");
            
GameTextForPlayer(playerid"~w~~h~UP "30006);
            
PlayerPlaySound(playerid10570.00.010.0);
            
PagarSalario(playerid);
        }
        else
        {
            
PlayerInfo[playerid][pRespeito]++;
            
SalvarRespeito(playeridPlayerInfo[playerid][pRespeito]);
            
format(stringmediasizeof(stringmedia), "{7FFF00}| UP | Vocк ganhou {FFFFFF}[ %d/5 ] {7FFF00}de experiкncia!"PlayerInfo[playerid][pRespeito]);
            
SendClientMessage(playerid, -1stringmedia);
            
GameTextForPlayer(playerid"~r~~h~+~w~EXP"30006);
            
PlayerPlaySound(playerid10570.00.010.0);
        }
    }
    return 
1;
}
SalvarRespeito(playeridvalor)
{
    new 
arquivo[128], Nome[MAX_PLAYERS];
    
GetPlayerName(playeridNomesizeof(Nome));
    
format(arquivosizeof(arquivo), "Contas/%s.cfg"Nome); //mude aqui a localizaзгo das contas
    
DOF2_SetInt(arquivo"EXP"valor);
    
DOF2_SaveFile();
}
SalvarNivel(playeridvalor)
{
    new 
arquivo[128], Nome[MAX_PLAYERS];
    
GetPlayerName(playeridNomesizeof(Nome));
    
format(arquivosizeof(arquivo), "Contas/%s.cfg"Nome); //mude aqui a localizaзгo das contas
    
DOF2_SetInt(arquivo"Level"valor);
    
DOF2_SaveFile();

Reply
#8

Quote:
Originally Posted by PabLo98
Посмотреть сообщение
Fiz de um modo pratico, testa ae e me fala, me manda esse timer da public, caso tenha.. estuda.. pedir cуdigo nгo vai lhe ajudar!

PHP код:
forward UparLevel(playerid);
public 
UparLevel(playerid)
{
    if (
IsPlayerConnected(playerid) && Logado[playerid] == true)
    {
        if (
PlayerInfo[playerid][pRespeito] == 4)
        {
            
PlayerInfo[playerid][pLevel]++, PlayerInfo[playerid][pRespeito] = 0;
            
SetPlayerScore(playeridPlayerInfo[playerid][pLevel]);
            
SalvarNivel(playeridPlayerInfo[playerid][pLevel]);
            
PlayerInfo[playerid][pRespeito] = 0;
            
SendClientMessage(playerid, -1"{7FFF00}| LEVEL | Parabйns! Vocк juntou {FFFFFF}[ 5/5 ]{7FFF00} de experiкncia e ganhou {FFFFFF}+1 {7FFF00}Level.");
            
GameTextForPlayer(playerid"~w~~h~UP "30006);
            
PlayerPlaySound(playerid10570.00.010.0);
            
PagarSalario(playerid);
        }
        else
        {
            
PlayerInfo[playerid][pRespeito]++;
            
SalvarRespeito(playeridPlayerInfo[playerid][pRespeito]);
            
format(stringmediasizeof(stringmedia), "{7FFF00}| UP | Vocк ganhou {FFFFFF}[ %d/5 ] {7FFF00}de experiкncia!"PlayerInfo[playerid][pRespeito]);
            
SendClientMessage(playerid, -1stringmedia);
            
GameTextForPlayer(playerid"~r~~h~+~w~EXP"30006);
            
PlayerPlaySound(playerid10570.00.010.0);
        }
    }
    return 
1;
}
SalvarRespeito(playeridvalor)
{
    new 
arquivo[128], Nome[MAX_PLAYERS];
    
GetPlayerName(playeridNomesizeof(Nome));
    
format(arquivosizeof(arquivo), "Contas/%s.cfg"Nome); //mude aqui a localizaзгo das contas
    
DOF2_SetInt(arquivo"EXP"valor);
    
DOF2_SaveFile();
}
SalvarNivel(playeridvalor)
{
    new 
arquivo[128], Nome[MAX_PLAYERS];
    
GetPlayerName(playeridNomesizeof(Nome));
    
format(arquivosizeof(arquivo), "Contas/%s.cfg"Nome); //mude aqui a localizaзгo das contas
    
DOF2_SetInt(arquivo"Level"valor);
    
DOF2_SaveFile();

Nгo pedi, perguntei aonde estб errado no meu. O timer й SetTimer( "UparLevel", 600000, true );
Reply
#9

Muda para:

PHP код:
SetTimerEx("UparLevel"600000true"i"playerid); 
Coloca em OnPlayerSpawn, eu acho..

https://sampwiki.blast.hk/wiki/SetTimerEx

Testa ae e me fala!
Reply
#10

Quote:
Originally Posted by PabLo98
Посмотреть сообщение
Muda para:

PHP код:
SetTimerEx("UparLevel"600000true"i"playerid); 
https://sampwiki.blast.hk/wiki/SetTimerEx

Testa ae e me fala!
O que acontece agora do seu modo й o seguinte, ao invйs de ele somar meu level com o que ta setando, ele reinicia os leveis .
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)