[Ajuda] OnVehicleDamageStatusUpdate
#1

Olб, eu estou com duvidas, tenho um codigo aqui, й usado em uma public do SA-MP, й o seguinte, caso a pessoa bate com um veiculo e nгo estiver com o cinto de seguranзa:

PHP код:
VerificarVelocidade(playerid); //Essa funзгo й chamada apenas quando o condutor ou passageiro esteja sem o cinto 
Eu queria fazer com que essa funзгo seja valida para o motorista e passageiros, neste momento, estб apenas para motoristas, como eu faзo para o passageiro receber a mesma funзгo(Exemplo, a pessoa bate um veiculo, ae todos do veiculo recebe a funзгo)? muito complexo, passa alйm do SA-MP!..


PHP код:
public OnVehicleDamageStatusUpdate(vehicleidplayerid)
{
    for (new 
0MAX_PLAYERSi++)
    {
        if (
IsPlayerInVehicle(ivehicleid))
        {
            if (
CintoPlayerid[i] == 0)
            {
                
VerificarVelocidade(playerid);
            }
            else if (
Capacetes[i] == && IsAMotos(GetPlayerVehicleID(i)))
            {
                
VerificarVelocidade(playerid);
            }
        }
    }

Reply
#2

Nгo encontrei nada mais detalhado sobre o funcionamento desta callback, mas teoricamente ela teria de ser chamada para todos os jogadores que ocupam o veнculo.

Se fosse assim seria simples:
PHP код:
public OnVehicleDamageStatusUpdate(vehicleidplayerid)  {
    if ( 
CintoPlayerid[playerid] == || ( Capacetes[playerid] == && IsAMotosGetPlayerVehicleID(playerid) ) ) ) 
        
VerificarVelocidade(playerid);
    return 
1;

Caso nгo seja como o esperado:

PHP код:
public OnVehicleDamageStatusUpdate(vehicleidplayerid)  {
    static 
i;
    for ( 
GetPlayerPoolSize(); >= 0; --)  {
        if ( 
IsPlayerConnected(i) && GetPlayerVehicleID(i) == vehicleid )  {
            if ( 
CintoPlayerid[i] == || ( Capacetes[i] == && IsAMotosGetPlayerVehicleID(i) ) ) ) 
                
VerificarVelocidade(i); 
        } 
    } 
    return 
1;

Nгo sei ao certo se a funзгo GetPlayerVehicleID() funciona para passageiros, nгo hб nada documentado sobre isso tambйm.

Recomendo que vocк faзa um debug ao "getar" a velocidade do jogador, em alguns casos й possнvel que sua funзгo sу pegue a velocidade correta do motorista, retornando 0 para passageiros, o que comprometeria seu sistema.

#edit
Porque vocк sempre cria um tуpico na бrea portuguesa e na бrea inglesa?
Reply
#3

Quote:
Originally Posted by Gii
Посмотреть сообщение
Nгo encontrei nada mais detalhado sobre o funcionamento desta callback, mas teoricamente ela teria de ser chamada para todos os jogadores que ocupam o veнculo.

Se fosse assim seria simples:
PHP код:
public OnVehicleDamageStatusUpdate(vehicleidplayerid)  {
    if ( 
CintoPlayerid[playerid] == || ( Capacetes[playerid] == && IsAMotosGetPlayerVehicleID(playerid) ) ) ) 
        
VerificarVelocidade(playerid);
    return 
1;

Caso nгo seja como o esperado:

PHP код:
public OnVehicleDamageStatusUpdate(vehicleidplayerid)  {
    static 
i;
    for ( 
GetPlayerPoolSize(); >= 0; --)  {
        if ( 
IsPlayerConnected(i) && GetPlayerVehicleID(i) == vehicleid )  {
            if ( 
CintoPlayerid[i] == || ( Capacetes[i] == && IsAMotosGetPlayerVehicleID(i) ) ) ) 
                
VerificarVelocidade(i); 
        } 
    } 
    return 
1;

Nгo sei ao certo se a funзгo GetPlayerVehicleID() funciona para passageiros, nгo hб nada documentado sobre isso tambйm.

Recomendo que vocк faзa um debug ao "getar" a velocidade do jogador, em alguns casos й possнvel que sua funзгo sу pegue a velocidade correta do motorista, retornando 0 para passageiros, o que comprometeria seu sistema.

#edit
Porque vocк sempre cria um tуpico na бrea portuguesa e na бrea inglesa?
Nгo funcionou.. tentei aprimorar mais dб o mesmo erro... o cara sai do carro ao entrar no mesmo toda hora..
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)