View Issue Details

IDProjectCategoryView StatusLast Update
0008352Multi Theft Auto : San AndreasSynchronizationpublic2014-07-15 00:48
ReporterStifflersMomAssigned Toccw 
PrioritynormalSeverityminorReproducibilitysometimes
Status resolvedResolutionfixed 
Product Version 
Target Version1.4Fixed in Version1.4 
Summary0008352: Explosions can desync unoccupied vehicles
Description

Server: MTA:SA Server v1.4-release-6659
Client: Multi Theft Auto v1.4-release-6663
Explosions, such as satchel detonations can desync position of unoccupied vehicles

Steps To Reproduce

https://www.youtube.com/watch?v=h3HUNy60D-c
This is also reproduceable with freeroam:
Player A (StifflersMom at the video) creates a vehicle (sultan for example)
Player B attachs satchels to it and let them explode.
The vehicle takes no damage and the position can be desynced (you see it around 0:45 at the video)

Additional Information

We also tried that the same way with latest 1.3.5 - The desync is not reproduceable there, so it seems to be new at 1.4.0 ...

TagsNo tags attached.

Activities

ccw

2014-07-11 22:32

administrator   ~~0021328

Thanks for video.
I still can't reproduce this.
You 100% sure there are no other scripts doing something?
Does it happen every time, no matter who does it?
Do grenades cause damage?

StifflersMom

2014-07-13 21:48

updater   ~~0021332

Thanks for testing it. We tried to reproduce it with freeroam, we also can't reproduce it.
We checked the difference between freroam and our resource: We do a warpPedIntoVehicle 500ms after the vehicle creation.
So we commented out only the line setTimer(warpPedIntoVehicle,500,1,source,vehicle)
from our script, and it's also unreproduceable. So I think, it has something to do with warpPedIntoVehicle.

We retested it with grenades, if the grenade does not touch the vehicle, it takes no damage and after the detonation, the vehicle position is different for all streamed in players...

StifflersMom

2014-07-14 20:44

updater   ~~0021339

With a few lines of code server side we can reproduce it:

function demov(me)
theV = createVehicle(560,-1937.02734, 61.23730, 25.28147)
setTimer(warpPedIntoVehicle,500,1,me,theV)
end

function demosync()
if isElement(theV) then
theS = getElementSyncer(theV)
if theS and getElementType(theS) == "player" then
outputChatBox("sync: "..getPlayerName(theS))
end
end
end
addCommandHandler('demop', demov)
addCommandHandler('demos', demosync)

You always need 2 or more players at stream in area.
The attacker must NOT be the syncer of the vehicle.
Also rocket launcher works. The steps:

Player A does the command demop
Vehicle is created and the player is warped in.
Player A leaves the vehicle.
Player B get a rocket launcher and attacks the vehicle.
With a chance of 50% the vehicle seems totally damage resistant.
With every shoot from rocket launcher the vehicle is at another position for each player (desync).
Also, as I stated before - We can't reproduce it WITHOUT warpPedIntoVehicle.
Additionally - If you stream out (far away) and back, the positions are ok again.

ccw

2014-07-15 00:47

administrator   ~~0021342

Thanks for the example cold

Fixed in https://code.google.com/p/mtasa-blue/source/detail?r=6678

Issue History

Date Modified Username Field Change