24.08.2012, 09:35
I was writing a piece of script for driving wheelchairs.
I thought to create the object, apply an animation to the player to make him sitting, and then moving the object and the player at the same time.
Then I realised it was easier attaching the object to the player, so I did.
I added a few timers for moving the player. It worked, but it's a little bit jerky.
How to move player smoother?
I tried a few values in milliseconds for the timer in MoveWheelchairForward and Back.
I thought to create the object, apply an animation to the player to make him sitting, and then moving the object and the player at the same time.
Then I realised it was easier attaching the object to the player, so I did.
I added a few timers for moving the player. It worked, but it's a little bit jerky.
How to move player smoother?
Код:
if (strcmp("/wheelchair", cmdtext, true, 10) == 0) { new Float:OffsetX,Float:OffsetY,Float:OffsetZ; new Float:rZ; GetPlayerPos(playerid, OffsetX, OffsetY, OffsetZ); GetPlayerFacingAngle(playerid, rZ); Wheelchair[playerid] = CreateObject(1369, OffsetX, OffsetY, OffsetZ-0.5, 0.00, 0.00, 0.00); AttachObjectToPlayer(Wheelchair[playerid], playerid, 0.0, -0.5, -0.5, 0.0, 0.0, 180); ApplyAnimation(playerid,"PED","SEAT_idle",4.0,1,0,0,1,1); return 1; } public OnPlayerUpdate(playerid) { new Keys,ud,lr; GetPlayerKeys(playerid,Keys,ud,lr); if(ud < 0) //UP { TimerForward = SetTimerEx("MoveWheelchairForward",100,0,"i",playerid); return 1; } else if(ud > 0) //DOWN { TimerBack = SetTimerEx("MoveWheelchairBack",30,0,"i",playerid); return 1; } } public MoveWheelchairForward(playerid) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); GetXYInFrontOfPlayer(playerid, x, y, 0.3); SetPlayerPos(playerid, x, y, z); return 1; } public MoveWheelchairBack(playerid) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); GetXYBehindPlayer(playerid, x, y, 0.2); SetPlayerPos(playerid, x, y, z); return 1; }