SA-MP Forums Archive
[Ajuda] Level - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Level (/showthread.php?tid=644677)



Level - SnowBorn - 12.11.2017

Estou editando um game mod.
Pуrem o sistema de level dele й chato й por EXP.
e demora 50 min pra upar 1 level chato isso..
Alguйm podera o Alterar o cdigo para cada EXP Ser 5 minutos ex:5Minutos = 1exp. sendo assim qnd completar 5exp completa 1 level.

Codigo(TEMPO):
PHP код:
    SetTimer("GanharExp"300000true); 
Sistema de ganhar o EXP.
PHP код:
forward GanharExp(i);
public 
GanharExp(i)
{
       new 
string[128];
    
format(filesizeof(file), PASTA_CONTASPlayerName(i));
    if(
IsPlayerConnected(i))
    {
      if(
AFK[i] == 0){
      {
    if(
PlayerInfo[i][pExpe] == 4)
    {
    
PlayerInfo[i][pLevel]++;
    
PlayerInfo[i][pExpe] = 0;
    
TempoLevelMinuto[i] = 10;
    
format(stringsizeof(string), "| UP | Vocк acaba de ganhar +1 level, somando um total de %d"PlayerInfo[i][pLevel]);
    
SendClientMessage(i0x00FF00AAstring);
    
PlayerPlaySound(i10570.00.010.0);
    
dini_IntSet(file"EXP"PlayerInfo[i][pExpe]);
    
dini_IntSet(file"Level"PlayerInfo[i][pLevel]);
    if(
dini_Int(file"Level") > dini_Int("RankL.ini""LRank1")){
    if(
strcmp(dini_Get("RankL.ini""Rank1"), PlayerName(i), true) == 0){
    
dini_IntSet("RankL.ini""LRank1"dini_Int(file"Level"));
    }else{
    
dini_Set("RankL.ini""Rank2"dini_Get("RankL.ini""Rank1"));
    
dini_IntSet("RankL.ini""LRank2"dini_Int("RankL.ini""LRank1"));
    
dini_Set("RankL.ini""Rank1"PlayerName(i));
    
dini_IntSet("RankL.ini""LRank1"dini_Int(file"Level"));
    }
    }else{
    if(
dini_Int(file"Level") > dini_Int("RankL.ini""LRank2")){
    if(
strcmp(dini_Get("RankL.ini""Rank2"), PlayerName(i), true) == 0){
    
dini_IntSet("RankL.ini""LRank2"dini_Int(file"Level"));
    }else{
    
dini_Set("RankL.ini""Rank3"dini_Get("RankL.ini""Rank2"));
    
dini_IntSet("RankL.ini""LRank3"dini_Int("RankL.ini""LRank2"));
    
dini_Set("RankL.ini""Rank2"PlayerName(i));
    
dini_IntSet("RankL.ini""LRank2"dini_Int(file"Level"));
    }
    }else{
    if(
dini_Int(file"Level") > dini_Int("RankL.ini""LRank3")){
    
dini_Set("RankL.ini""Rank3"PlayerName(i));
    
dini_IntSet("RankL.ini""LRank3"dini_Int(file"Level"));
    }
    }
    }
      
Salario(i);
    }
    else
    {
    
PlayerInfo[i][pExpe]++;
    
TempoLevelMinuto[i] = 10;
    
format(stringsizeof(string), "| EXP | Vocк acaba de ganhar +1 ponto de experiкncia (%d/5)"PlayerInfo[i][pExpe]);
    
SendClientMessage(i0x00FF00AAstring);
    
PlayerPlaySound(i10570.00.010.0);
    
dini_IntSet(file"EXP"PlayerInfo[i][pExpe]);
    }
     }
    }
    }
    return 
1;




Re: Level - BykiLler - 12.11.2017

Meio contraditуrio . "SetTimer" utilizando uma call back com o parвmetro.
https://sampwiki.blast.hk/wiki/SetTimer

@edit
PHP код:
enum players
{
    
experiencia,
    
level,
    
bool:AFK,
};
new 
PlayerInfo[MAX_PLAYERS][players];
new 
loopExperiencia;
public 
OnGameModeInit()
{
    
loopExperiencia SetTimer("GanharExp"3000001);
    return 
1;
}
forward GanharExp();
public 
GanharExp()
{
    for (new 
iMAX_PLAYERS; ++i)
    {
        if ( !
IsPlayerConnected(i) || PlayerInfo[i][AFK])continue;
        ++
PlayerInfo[i][experiencia];
        if ( 
PlayerInfo[i][experiencia] > 4)
        {
            
PlayerInfo[i][experiencia] = 0;
            ++
PlayerInfo[i][level];
        }
    }
    return 
1;
}
OBS20 minutos +nivel 



Re: Level - SammyJ - 12.11.2017

Quote:
Originally Posted by BykiLler
Посмотреть сообщение
Meio contraditуrio . "SetTimer" utilizando uma call back com o parвmetro.
https://sampwiki.blast.hk/wiki/SetTimer

@edit
PHP код:
enum players
{
    
experiencia,
    
level,
    
bool:AFK,
};
new 
PlayerInfo[MAX_PLAYERS][players];
new 
loopExperiencia;
public 
OnGameModeInit()
{
    
loopExperiencia SetTimer("GanharExp"3000001);
    return 
1;
}
forward GanharExp();
public 
GanharExp()
{
    for (new 
iMAX_PLAYERS; ++i)
    {
        if ( !
IsPlayerConnected(i) || PlayerInfo[i][AFK])continue;
        ++
PlayerInfo[i][experiencia];
        if ( 
PlayerInfo[i][experiencia] > 4)
        {
            
PlayerInfo[i][experiencia] = 0;
            ++
PlayerInfo[i][level];
        }
    }
    return 
1;
}
OBS20 minutos +nivel 
Desculpe comentar o desnecessбrio, mas "contraditуrio" й vocк criar uma variбvel para receber o valor (ID) do SetTimer e nгo fazer nenhuma manipulaзгo da mesma.


Re: Level - SnowBorn - 12.11.2017

Vocкs podem alterar esse codigo que eu postei?