Vanilla commit:
804445830f
This was exiting with 0 damage if _hit=="". It accounts for vehicles not
being damaged at all when crashing full speed into walls. It was also
causing the player to sometimes glitch out of the vehicle or into the
ground when crashing as you noticed before @icomrade.
Also fixed driver getting a humanity hit for damaging passengers in
crash. Reverting 22b2a3a since this is more reliable.
All other scripts using findSafePos either set the third parameter or
use a getPosATL/etc. instead before the position is saved to database.
Also partially reverted d6e78b2 since it is not needed.
better logging as well.
I haven't had objects purchased spawn in the debug, only those spawned
in with the admin tools since the position doesn't always have a third
element.
The player who died is colored red and the killer is colored green. The
weapon now points in the direction of the player who died.
Also reverted 66fd5be since it did not help. It is already done globally
in player_death.sqf anyway. I tested again and this actually fixes the
problem.
This prevents "player combat logged" message after a player dies. The
alive check should prevent this in onPlayerDisconect, but it is
apparently unreliable or slow to update.
Don't even bother using vector in the key calculation, the sqf ObjectUID
isn't as critical anymore. This method will be much faster.
Changed ObjectUID column to Varchar since with this key generation
method we can approach the BigINT ceiling much quicker than we used to.
If there was no helipad available findSafePos was called. If that failed
it spawned the vehicle in the debug zone.
Calling findSafePos is no longer necessary since we are now using
createVehicle "NONE".
append diag_ticktime to key. Max length is 24 characters in the DB so
the limit so this shouldn't cause issues unless the server is up for
hundreds of days.
I just noticed before 5f0c2fc this was also running if the player was
dead. Now it will run if the player is alive in playerSync otherwise it
will run here if they are dead.
Thanks @ndavalos
@ebaydayz since this was moved after player_sumMedical is called in
5f0c2fcc49
it would no longer save the modified unconcious and timeout vars to the
DB.
See my comments on ae78fde and a3c3ccc
The object_maintenance function is only for vanilla buildables and is
currently not used. It immediately overwrites with a 306 call.
Moved combat log setVariables to playerSync. Now the player object is no
longer needed for any of the code at the bottom of playerSync or
onPlayerDisconnected.
Update objects is already performed at the bottom of playerSync. There
is no reason to do it again in playerDisconnect since it calls
playerSync.
@icomrade you forgot to change the _playerObj variable to _character
when you moved this.
Also if BIS_fnc_findSafePos was successful on the first attempt the way
you had it would use the original _charPos instead of the successful
return because you never set _charPos = _newPos;
ed3227fa7a
I made no changes apart from removing the (_characterID != "0") check
and the corresponding spacing/tabs.
If _characterID == "0" the script would have already exited on line 30.
Removed redundant diag_log since it is already done in dayz_recordLogin.
Removed noatlf4 variable because we use inCombat instead. Noatlf4 is
only set if the player is hit in the damage handler, while inCombat is
set any time the player is in combat.
This allows finer grained control of crashsite, carepackage and infected
camp spawn positions and radii (further north, south, east, west, etc.).
Also removed some hardcoded checks for Chernarus, since
dayz_townGenerator should always be off on other maps for now. Someone
may add town generator coordinates for other maps later.
Related vanilla commits:
b20b402bf07c8b69eb827dfd3ef9cf