From 8221f8167efdc7bf23fce08dd42588d3e2bf2702 Mon Sep 17 00:00:00 2001 From: Raul125 Date: Wed, 19 Jul 2023 17:59:43 +0200 Subject: [PATCH 1/3] fix NullReferenceException --- MapEditorReborn/Events/Handlers/Internal/EventHandler.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/MapEditorReborn/Events/Handlers/Internal/EventHandler.cs b/MapEditorReborn/Events/Handlers/Internal/EventHandler.cs index 28afff1a..520591b9 100644 --- a/MapEditorReborn/Events/Handlers/Internal/EventHandler.cs +++ b/MapEditorReborn/Events/Handlers/Internal/EventHandler.cs @@ -107,8 +107,10 @@ internal static void OnShootingDoor(ShootingEventArgs ev) { Vector3 forward = ev.Player.CameraTransform.forward; Vector3 position = ev.Player.CameraTransform.position; - Firearm firearm = ((Exiled.API.Features.Items.Firearm)ev.Player.CurrentItem).Base; - float maxDistance = firearm.BaseStats.MaxDistance(); + if (ev.Player.CurrentItem is not Exiled.API.Features.Items.Firearm firearm) + return; + + float maxDistance = firearm.Base.BaseStats.MaxDistance(); if (!Physics.Raycast(position, forward, out RaycastHit raycastHit, maxDistance, StandardHitregBase.HitregMask)) return; @@ -119,7 +121,7 @@ internal static void OnShootingDoor(ShootingEventArgs ev) if (doorObject.Base.IgnoredDamageSources.HasFlagFast(DoorDamageType.Weapon) || doorObject._remainingHealth <= 0f) return; - doorObject._remainingHealth -= firearm.BaseStats.DamageAtDistance(firearm, raycastHit.distance) * 0.1f; + doorObject._remainingHealth -= firearm.Base.BaseStats.DamageAtDistance(firearm.Base, raycastHit.distance) * 0.1f; if (doorObject._remainingHealth <= 0f) doorObject.BreakDoor(); From 32e7a3a5d108f1ef835e28e87c7ee2f69e351293 Mon Sep 17 00:00:00 2001 From: Raul125 Date: Wed, 19 Jul 2023 19:00:33 +0200 Subject: [PATCH 2/3] fix ParticleDisruptor ammo --- .../API/Features/Objects/ItemSpawnPointObject.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/MapEditorReborn/API/Features/Objects/ItemSpawnPointObject.cs b/MapEditorReborn/API/Features/Objects/ItemSpawnPointObject.cs index 1f0d3e0a..924e4621 100644 --- a/MapEditorReborn/API/Features/Objects/ItemSpawnPointObject.cs +++ b/MapEditorReborn/API/Features/Objects/ItemSpawnPointObject.cs @@ -19,7 +19,6 @@ namespace MapEditorReborn.API.Features.Objects using Serializable; using UnityEngine; using static API; - using FirearmPickup = InventorySystem.Items.Firearms.FirearmPickup; using Random = UnityEngine.Random; /// @@ -92,12 +91,15 @@ public override void UpdateObject() if (!Base.CanBePickedUp) PickupsLocked.Add(pickup.Serial); - if (pickup.Base is FirearmPickup firearmPickup) + if (pickup is FirearmPickup firearmPickup) { // int rawCode = GetAttachmentsCode(Base.AttachmentsCode); // uint code = rawCode != -1 ? (item.Base as InventorySystem.Items.Firearms.Firearm).ValidateAttachmentsCode((uint)rawCode) : AttachmentsUtils.GetRandomAttachmentsCode(parsedItem); - // firearmPickup.NetworkStatus = new InventorySystem.Items.Firearms.FirearmStatus(firearmPickup.NetworkStatus.Ammo, firearmPickup.NetworkStatus.Flags, code); + // firearmPickup.Base.NetworkStatus = new InventorySystem.Items.Firearms.FirearmStatus(firearmPickup.Base.NetworkStatus.Ammo, firearmPickup.Base.NetworkStatus.Flags, code); + + if (firearmPickup.Type == ItemType.ParticleDisruptor) + firearmPickup.Ammo = 5; } pickup.Scale = transform.localScale; From 874ce625c90f306e6dc673d368595a5b15223dce Mon Sep 17 00:00:00 2001 From: Raul125 Date: Wed, 19 Jul 2023 19:01:42 +0200 Subject: [PATCH 3/3] Revert "fix NullReferenceException" This reverts commit 8221f8167efdc7bf23fce08dd42588d3e2bf2702. --- MapEditorReborn/Events/Handlers/Internal/EventHandler.cs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/MapEditorReborn/Events/Handlers/Internal/EventHandler.cs b/MapEditorReborn/Events/Handlers/Internal/EventHandler.cs index 520591b9..28afff1a 100644 --- a/MapEditorReborn/Events/Handlers/Internal/EventHandler.cs +++ b/MapEditorReborn/Events/Handlers/Internal/EventHandler.cs @@ -107,10 +107,8 @@ internal static void OnShootingDoor(ShootingEventArgs ev) { Vector3 forward = ev.Player.CameraTransform.forward; Vector3 position = ev.Player.CameraTransform.position; - if (ev.Player.CurrentItem is not Exiled.API.Features.Items.Firearm firearm) - return; - - float maxDistance = firearm.Base.BaseStats.MaxDistance(); + Firearm firearm = ((Exiled.API.Features.Items.Firearm)ev.Player.CurrentItem).Base; + float maxDistance = firearm.BaseStats.MaxDistance(); if (!Physics.Raycast(position, forward, out RaycastHit raycastHit, maxDistance, StandardHitregBase.HitregMask)) return; @@ -121,7 +119,7 @@ internal static void OnShootingDoor(ShootingEventArgs ev) if (doorObject.Base.IgnoredDamageSources.HasFlagFast(DoorDamageType.Weapon) || doorObject._remainingHealth <= 0f) return; - doorObject._remainingHealth -= firearm.Base.BaseStats.DamageAtDistance(firearm.Base, raycastHit.distance) * 0.1f; + doorObject._remainingHealth -= firearm.BaseStats.DamageAtDistance(firearm, raycastHit.distance) * 0.1f; if (doorObject._remainingHealth <= 0f) doorObject.BreakDoor();