[Ajuda] Relogio de UP
#1

Tenho um relogio Up feito por um amigo aqui do forum ,cicinho
mas estou com um problema nele, gostaria de saber o MOTIVO e como resolvo!

Quando player morre o relуgio й duplicado ou quando o cara sai do servidor e entra de novo o relуgio fica mais acelerado.
Ps: Essa ultima ai da aceleraзгo nгo tenho tanta certeza se й esse o motivo, mais de vez em quando, quando olho ta acelerado!

PHP код:
public OnPlayerSpawn(playerid)
{
    
format(Stringsizeof String"+UP %s"Convert(PlayerInfo[playerid][pSegundos]));
    
PlayerTextDrawSetString(playeridRelogioUP[playerid], String);
    
PlayerInfo[playerid][pSegundos]--;
    
SetTimerEx("Contagem"10000"d"playerid);
    return 
true;
}
forward Contagem(playerid);
public 
Contagem(playerid)
{
    if(
PlayerInfo[playerid][pSegundos] > 0)
    {
        
format(Stringsizeof String"+UP %s"Convert(PlayerInfo[playerid][pSegundos]));
        
PlayerTextDrawSetString(playeridRelogioUP[playerid], String);
        
PlayerInfo[playerid][pSegundos]--;
        
SetTimerEx("Contagem"10000"d",playerid);
    }else{
        
PlayerInfo[playerid][pSegundos] = SEGUNDOSScore;
        
ScoreUP(playerid);
        
SetTimerEx("Contagem"10000"d"playerid);
    }
    return 
true;
}
{
    
PlayerInfo[playerid][pScore] ++;
    
GivePlayerMoney(playerid1500);
    
SendClientMessage(playerid0x00FF00FF"| Level UP | Parabens voce Upou +1 Level e ganhou R$ 1500");
    
GameTextForPlayer(playerid"~w~Level ~p~UP"20001);
    
PlayerPlaySound(playerid,1058,0.0,0.0,0.0);
    
SetPlayerScore(playeridGetPlayerScore(playerid) + 1);
    
// COLOQUE AQUI AS FUNЗХES QUE DESEJA NO SEU "Score UP"
}
Convert(number)
{
    new 
hours 0mins 0secs 0string[100];
    
hours floatround(number 3600);
    
mins floatround((number 60) - (hours 60));
    
secs floatround(number - ((hours 3600) + (mins 60)));
    new 
days 0;
    if(
hours >= 24)
    {
        
days floatround((hours/24), floatround_floor);
        
hours hours 24;
    }
    if(
days 0)
    {
        
format(string100"%d, %d:%d:%d:"dayshoursminssecs);
    }
    else if(
hours 0)
    {
        
format(string100"%d:%d:%d"hoursminssecs);
    }
    else
    {
        
format(string100"%02d:%02d"minssecs);
    }
    return 
string;

Como proceder?
Reply
#2

O relуgio do SAMP й o mesmo horбrio no seu PC, sу acelera se seu PC acelera tbm... provavelmente tem algo errado no seu pc, pois se ele funfa direito ele nгo pode alterar a hora de um modo tгo bugado!

E outra, Й APENAS UM RELУGIO, nгo precisa de nenhuma conversгo de valores, apenas deve atualizar o seu horбrio / horбrio do host para funfar de boa... Olha na minha assinatura e entra no FS despertador e olha o meu sistema de hora! й simples...

@EDIT

Entendi, premiaзгo de tempos em tempos. Jб que vc й novato no assunto pq n usa um sistema de premiaзгo pelo relуgio.
Ex:

if(relogio == 06)
{
GivePlayerMoney(playerid, 1000)
SendClientMessage(playerid, -1, "Agora й 6 da manhг e vc recebeu R$ 1000!")
}

@EDIT2

Se vc usa no seu salvamento o sistema de horas jogadas, seria mais recomendбvel, jб que vc pode definir a HORA, MIN, SEG de tempos jogados para o player receber uma premiaзгo
Reply
#3

Cara nгo й hora de servidor, й um relogio de UP
Reply
#4

Acho que deve ser pq o Timer nгo й destruнdo quando o player sai do server.

https://sampwiki.blast.hk/wiki/KillTimer
Reply
#5

Se o SetTimer jб obtйm o parвmetro Ex, jб estб na cara que й para um certo objetivo exceto de outros iguais.
PHP код:
SetTimerEx("Contagem"10000"d"playerid); 
PHP код:
enum pTimer {
    
tContagem
}
new 
Timer[MAX_PLAYERS][pTimer];
Timer[playerid][tContagem] = SetTimerEx("Contagem"10000"i"playerid); 
Quando quiser para o timer, principalmente na hora de desconectar o player.
PHP код:
KillTimer(Timer[playerid][tContagem]); 
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)