Fix for Vehicle Respawning

Schedules respawning vehicles on to other maps
This commit is contained in:
ChocoTaco1 2021-02-16 15:26:24 -05:00
parent d9bf1c9014
commit 79d1550ff4

View file

@ -0,0 +1,49 @@
//Vehicle Respawn bug fix - Respawn schedules carrying into map changes
package VehicleRespawnFix
{
function VehicleData::respawn(%data, %marker)
{
if($MatchStarted + $missionRunning == 2 && isObject(%marker))
{
%mask = $TypeMasks::PlayerObjectType | $TypeMasks::VehicleObjectType | $TypeMasks::TurretObjectType;
InitContainerRadiusSearch(%marker.getWorldBoxCenter(), %data.checkRadius, %mask);
if(containerSearchNext() == 0)
{
%newObj = %data.create(%marker.curTeam, %marker);
%newObj.startFade(1000, 0, false);
%newObj.setTransform(%marker.getTransform());
setTargetSensorGroup(%newObj.target, %newObj.team);
MissionCleanup.add(%newObj);
}
else
{
%marker.schedule = %data.schedule(3000, "respawn", %marker);
}
}
}
function VehicleData::createPositionMarker(%data, %obj)
{
%marker = new Trigger(PosMarker)
{
dataBlock = markerTrigger;
mountable = %obj.mountable;
disableMove = %obj.disableMove;
resetPos = %obj.resetPos;
data = %obj.getDataBlock().getName();
deployed = %obj.deployed;
curTeam = %obj.team;
respawnTime = %obj.respawnTime;
};
%marker.setTransform(%obj.getTransform());
MissionCleanup.add(%marker);
return %marker;
}
};
// Prevent package from being activated if it is already
if (!isActivePackage(VehicleRespawnFix))
activatePackage(VehicleRespawnFix);