[Tutorial] Velocímetro Básico

| |



Primeiramente crie a variável global Timer_Velo de preferencia.
pawn Code:
new Timer_Velo;
Em public OnPlayerStateChange, estará verificando se o estado do jogador é de motorista. Caso seja, irá ser criado um tempo que seguira atualizando.

pawn Code:
public OnPlayerStateChange(playerid, newstate, oldstate) {     if( newstate == PLAYER_STATE_DRIVER)     {         Timer_Velo = SetTimer("KMH", 10, true);     }
Agora vamos declarar a callback, que será chamada ao tempo correspondente.
pawn Code:
forward KMH(playerid); // Atualizado by DartakousLien :p public KMH(playerid) {     new Str[80];     format(Str, sizeof(Str), "~w~KM/H:~g~ %d", GetPlayerSpeed(playerid));     GameTextForPlayer(playerid, Str, false, 6); }
Aqui, criamos uma string, que armazenara o valor da velocidade do jogador, que será chamada por uma stock .Valor correspondente será função GameTextForPlayer.

Agora declaração da função extra, que obterá a velocidade de determinado jogador, ocorrendo um processo de verificação.


Creditos da função desconhecido.
pawn Code:
stock GetPlayerSpeed(playerid) {     new Float:ST[4];     if(IsPlayerInAnyVehicle(playerid))     GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);     else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);     ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 100.3;     return floatround(ST[3]); }
 Em public OnPlayerStateChange vamos verificar, se o estado antigo do jogador era motorista. Assim, toda vez que ele sair de um veículo em que ele estivesse dirigindo, a verificação será chamada.
pawn Code:
public OnPlayerStateChange(playerid, newstate, oldstate) {     if( oldstate == PLAYER_STATE_DRIVER)     {         KillTimer(Timer_Velo );     }
Acima, estamos Destruindo o timer, fazendo que a GameTextForPlayer Desapareça .
A public OnPlayerStateChange deve ficar no final das contas assim :

pawn Code:
public OnPlayerStateChange(playerid, newstate, oldstate) {     if( newstate == PLAYER_STATE_DRIVER)     {         Timer = SetTimer("KMH", 10, true);     }         if( oldstate == PLAYER_STATE_DRIVER)     {         KillTimer(Timer_Velo);     }     return 1; }
Em fim, espero que tenham entendido.
Minhas intenções foram ajudar, estou aqui em casa deu certo, ficou como eu esperava.

Imagens:

--

--

2 comentários:

Lixo. Simplesmente isso que eu tenho para te informar. Se não sabe codar pawno, enfia seu orgulho e sabedoria de merda no cú. "GetPlayerSpeed", fumou droga? Vá tomar no seu cú.

Postar um comentário