@Saybrax
Object m_AnomalyActivator - локальная переменная в контексте метода Action
после завершения она уже не ссылается на обьект
самый простой способ это вынести в статичискую переменную
и молиться что бы кто-то не сделает это же действие паралельно)))
но лучше завести хелпера или хранить переменную на AnomalyActivator внутри предмета
вторая возможная причина, если вдруг ссылка на обьект всё таки проходит и я не прав
возможно ты пытаешься удалить обьект у которого еще активна физика
нужно или как-то дождаться что физикаа звыершилась или вырубить её перед удалением
проверь не переопределяет ли какой-нибудь мод метод ThrowPhysically
а-то на ваниле как-то же вот этот код работает без проблем
class HandActionThrow extends HandActionBase
{
override void Action (HandEventBase e)
{
#ifdef ENABLE_LOGGING
if ( LogManager.IsInventoryHFSMLogEnable() )
{
Debug.InventoryHFSMLog("Action - STS = " + e.m_Player.GetSimulationTimeStamp(), e.ToString() , "n/a", "HandActionThrow", e.m_Player.ToString() );
}
#endif
HandEventThrow throwEvent = HandEventThrow.Cast(e);
GameInventory.LocationSyncMoveEntity(e.GetSrc(), e.GetDst());
DayZPlayer player = DayZPlayer.Cast(e.m_Player);
if ( player.GetInstanceType() != DayZPlayerInstanceType.INSTANCETYPE_REMOTE )
{
InventoryItem item = InventoryItem.Cast(e.GetSrcEntity());
if( item )
item.ThrowPhysically(player, throwEvent.GetForce());
else
Error("[hndfsm] HandActionThrow - src entity null!");
}
player.OnItemInHandsChanged();
}
};