OnPlayerUpdate dont called when passenger Drive-By
#1

when you're a passenger and press "Block mayus" for passenger drive-by, OnPlayerUpdate is called only when you fire a gun, if you dont fire OnPlayerUpdate is called every ~5 seconds, and other players see you on pause. Also, hits are desynced here.

test it:
Enter a vehicle as passenger, give a gun, and test using this code:
pawn Код:
public OnPlayerUpdate (playerid)
{
    static
        lastOPU [MAX_PLAYERS];
       
    new
        string [60];
       
    format (string, sizeof (string), "OnPlayerUpdate: Last call was %d ms ago", GetTickCount() - lastOPU [playerid]);
    SendClientMessage (playerid, -1, string);
   
    lastOPU [playerid] = GetTickCount();
    return 1;
}
Other bug:
OnPlayerWeaponShot is called with "weaponid" = 0 when you're a passenger, and get a weapon while you are in a vehнcle.

Test it: enter a vehicle as passenger, get a weapon, and debug OnPlayerWeaponShot, you will see it

pawn Код:
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
    new szString[144];
    format(szString, sizeof(szString), "Weapon %i fired. hittype: %i   hitid: %i   pos: %f, %f, %f", weaponid, hittype, hitid, fX, fY, fZ);
    SendClientMessage(playerid, -1, szString);

    return 1;
}
Also, GetPlayerWeapon return 0 when you get a weapon when your state is passenger. Passenger state is really bugged. Sorry for my english
Reply
#2

OnPlayerUpdate gets called when a client syncs something to the server. If a player is the passenger of a vehicle, they don't need to sync anything (because they can't move, and their state is constant), apart from when they shoot.

IIRC this only affects OnPlayerUpdate, and it doesn't actually show that they are paused with SA-MP's hourglass thing.
Reply
#3

I guess this is a problem, because it should synchronize the movement and animation when a player being passenger drive-by (because the animation depends on the mouse position).
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)