SA-MP Forums Archive
[Ajuda] Velocнmetro nгo funciona - 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] Velocнmetro nгo funciona (/showthread.php?tid=530368)



Velocнmetro nгo funciona - bruxo00 - 06.08.2014

PHP код:
public ActualizarCarro(playerid)
{
    new 
vehicleFloat:speed_xFloat:speed_yFloat:speed_zspeedstring[256];
    
GetPlayerVehicleID(vehicle);
    
GetVehicleVelocity(vehiclespeed_xspeed_yspeed_z);
     
Velocidade[playerid] = floatmul(floatsqroot(floatadd(floatpower(speed_x2), floatadd(floatpower(speed_y2), floatpower(speed_z2)))), 185);
    
format(speedstringsizeof(speedstring), "%0.0f"Velocidade[playerid]);
    
TextDrawSetString(Textdraw10[playerid], speedstring);
    
    return 
1;

Tenho este velocнmetro noutro GameMode, e funciona bem lб. Passei-o para outro GM, e nгo sei porquк, a velocidade fica sempre 0. O que serб?


Re: Velocнmetro nгo funciona - ViniBorn - 06.08.2014

Nгo falta TextDrawShowForPlayer?


Re: Velocнmetro nгo funciona - caoraivoso3 - 06.08.2014

faz o que o vini disse, mas para isso nao ea melhor uma playertextdraw em vez de uma global? o estou a dizer que era melhor uma playertextdraw.


Re: Velocнmetro nгo funciona - bruxo00 - 06.08.2014

A textdraw й mostrada quando o player entra num carro,nгo й esse o problema. O problema й que a velocidade й sempre 0.


Re: Velocнmetro nгo funciona - ViniBorn - 06.08.2014

Exatamente aн pode estar o problema.

Se TextDraw sу й mostrada quando o jogador entra no carro, ele nгo vai ser mostrado durante as atualizaзхes.

Adicione a funзгo acima e diga o resultado.


Re: Velocнmetro nгo funciona - bruxo00 - 06.08.2014

Pense comigo.

* Jogador entra no carro
- Textdraw й mostrado
- Comeзa o timer para chamar aquela callback
- A string й actualizada cada vez que o timer acaba

No outro GM estб exactamente igual e funciona muito bem.


Re: Velocнmetro nгo funciona - ViniBorn - 06.08.2014

Vocк tem que usar TextDrawShowForPlayer apуs TextDrawSetString.

No mesmo bloco de cуdigo ou nгo, mas isso tem que ser feito.

Verifique isso.

Pelo que parece, vocк sу estб usando TextDrawShowForPlayer uma vez, quando o jogador entra no veнculo.


Re: Velocнmetro nгo funciona - caoraivoso3 - 06.08.2014

Quote:
Originally Posted by bruxo00
Посмотреть сообщение
Pense comigo.

* Jogador entra no carro
- Textdraw й mostrado
- Comeзa o timer para chamar aquela callback
- A string й actualizada cada vez que o timer acaba

No outro GM estб exactamente igual e funciona muito bem.
Bruxo tens de dar show da textdraw cada vez que mudas a string ou quando a alters de alguma maneira.
no outro gm tenho certeza que noutro lado talvez onplayerupdate tem o show dessa textdraw


Re: Velocнmetro nгo funciona - PT - 07.08.2014

Tens a certeza que tens o timer a chamar a callback apos entrares no carro?

talvez seja por isso.


Re: Velocнmetro nгo funciona - bruxo00 - 07.08.2014

Sim, tenho.

PHP код:
new TimerActualizarCarro[MAX_PLAYERS]; 
PHP код:
    if(newstate == PLAYER_STATE_DRIVER)
    {
        
TextDrawShowForPlayer(playeridTextdraw0);
        
TextDrawShowForPlayer(playeridTextdraw1);
        
TextDrawShowForPlayer(playeridTextdraw2);
        
TextDrawShowForPlayer(playeridTextdraw3);
        
TextDrawShowForPlayer(playeridTextdraw4);
        
TextDrawShowForPlayer(playeridTextdraw5);
        
TextDrawShowForPlayer(playeridTextdraw6);
        
TextDrawShowForPlayer(playeridTextdraw7);
        
TextDrawShowForPlayer(playeridTextdraw8);
          
TextDrawShowForPlayer(playeridTextdraw9[playerid]);
        
TextDrawShowForPlayer(playeridTextdraw10[playerid]);
        
TextDrawShowForPlayer(playeridTextdraw11[playerid]);
        
TextDrawShowForPlayer(playeridTextdraw12[playerid]);
        
TextDrawShowForPlayer(playeridTextdraw13[playerid]);
        
TextDrawShowForPlayer(playeridTextdraw14[playerid]);
        
TimerActualizarCarro[playerid] = SetTimerEx("ActualizarCarro"300true"i"playerid);
    } 
Fiz um debug, e o no GetPlayerVelocity, todos os valores estгo a returnar 0... nгo sei o que se passa :/

Edit: acho que descubri o bug. O GetPlayerVehicleID estб a pegar o ID do carro mal. O carro em que estou й o ID 1 e ele pega o ID 0.

Todos cegos aqui xD

GetPlayerVehicleID(vehicle);

era

GetPlayerVehicleID(playerid);