mirror of
https://github.com/sp-tarkov/modules.git
synced 2025-02-12 22:10:45 -05:00
Fixed BTR doing a wheelie in Woods (!139)
I've done testing to ensure the player can't phase through the BTR as well. Have not tested anything else besides that. Reviewed-on: SPT/Modules#139 Co-authored-by: Nympfonic <arys.steam@gmail.com> Co-committed-by: Nympfonic <arys.steam@gmail.com>
This commit is contained in:
parent
5b5d498102
commit
8f8c56d528
@ -290,7 +290,7 @@ namespace SPT.Custom.BTR
|
||||
|
||||
private IEnumerator CoverFireTimer(float time)
|
||||
{
|
||||
yield return new WaitForSecondsRealtime(time);
|
||||
yield return new WaitForSeconds(time);
|
||||
botEventHandler.StopTraderServiceBtrSupport();
|
||||
}
|
||||
|
||||
@ -314,7 +314,9 @@ namespace SPT.Custom.BTR
|
||||
{
|
||||
var player = gameWorld.MainPlayer;
|
||||
|
||||
BTRSide btrSide = player.BtrInteractionSide != null ? player.BtrInteractionSide : lastInteractedBtrSide;
|
||||
BTRSide btrSide = player.BtrInteractionSide != null
|
||||
? player.BtrInteractionSide
|
||||
: lastInteractedBtrSide;
|
||||
byte sideId = btrClientSide.GetSideId(btrSide);
|
||||
switch (sideId)
|
||||
{
|
||||
@ -373,6 +375,19 @@ namespace SPT.Custom.BTR
|
||||
}
|
||||
|
||||
btrServerSide.turnCheckerObject.GetComponent<Renderer>().enabled = false; // Disables the red debug sphere
|
||||
|
||||
// For some reason the client BTR collider is disabled but the server collider is enabled.
|
||||
// Initially we assumed there was a reason for this so it was left as is.
|
||||
// Turns out disabling the server collider in favour of the client collider fixes the "BTR doing a wheelie" bug,
|
||||
// while preventing the player from walking through the BTR.
|
||||
const string exteriorColliderName = "BTR_82_exterior_COLLIDER";
|
||||
var serverExteriorCollider = btrServerSide.GetComponentsInChildren<Collider>(true)
|
||||
.First(x => x.gameObject.name == exteriorColliderName);
|
||||
var clientExteriorCollider = btrClientSide.GetComponentsInChildren<Collider>(true)
|
||||
.First(x => x.gameObject.name == exteriorColliderName);
|
||||
|
||||
serverExteriorCollider.gameObject.SetActive(false);
|
||||
clientExteriorCollider.gameObject.SetActive(true);
|
||||
}
|
||||
|
||||
private void UpdateTarget()
|
||||
@ -430,7 +445,7 @@ namespace SPT.Custom.BTR
|
||||
{
|
||||
isShooting = true;
|
||||
|
||||
yield return new WaitForSecondsRealtime(machineGunAimDelay);
|
||||
yield return new WaitForSeconds(machineGunAimDelay);
|
||||
if (currentTarget?.Person == null || currentTarget?.IsVisible == false || !btrBotShooter.BotBtrData.CanShoot())
|
||||
{
|
||||
isShooting = false;
|
||||
@ -457,11 +472,11 @@ namespace SPT.Custom.BTR
|
||||
firearmController.PlayWeaponSound(weaponSoundPlayer, btrMachineGunAmmo, machineGunMuzzle.position, aimDirection, false);
|
||||
|
||||
burstCount--;
|
||||
yield return new WaitForSecondsRealtime(0.092308f); // 650 RPM
|
||||
yield return new WaitForSeconds(0.092308f); // 650 RPM
|
||||
}
|
||||
|
||||
float waitTime = Random.Range(machineGunRecoveryTime.x, machineGunRecoveryTime.y);
|
||||
yield return new WaitForSecondsRealtime(waitTime);
|
||||
yield return new WaitForSeconds(waitTime);
|
||||
|
||||
isShooting = false;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user