public static void AddHitPlayerEffectEvent(PlayerEntity srcPlayer, EntityKey target, Vector3 hitPoint, Vector3 offset) { HitPlayerEvent e = (HitPlayerEvent)EventInfos.Instance.Allocate(EEventType.HitPlayer, false); e.Target = target; e.Offset = offset; e.HitPoint = hitPoint; srcPlayer.localEvents.Events.AddEvent(e); }
public static void AddHitPlayerEffectEvent(PlayerEntity srcPlayer, EntityKey target, Vector3 hitPoint, int audioId, EBodyPart part) { HitPlayerEvent e = (HitPlayerEvent)EventInfos.Instance.Allocate(EEventType.HitPlayer, false); e.Target = target; e.HitPoint = hitPoint.ShiftedToFixedVector3(); e.HitAudioId = audioId; e.HitBodyPart = (byte)part; srcPlayer.localEvents.Events.AddEvent(e); }
public static void CreateHitPlayerEffect(Contexts context, EntityKey owner, HitPlayerEvent hitPlayerEvent) { if (SharedConfig.IsHXMod) { return; } var player = context.player.GetEntityWithEntityKey(owner); if (null == player || !player.hasBones) { return; } var effectId = SingletonManager.Get <ClientEffectCommonConfigManager>() .GetConfigByType(EEffectObjectClassify.PlayerHit).PreLoadCfgId; ClientEffectEmitter clientEffectObj = LocalObjectGenerator.EffectLocal.GetClientEffectEmitter(EEffectObjectClassify.PlayerHit); var hitPlayerEffectBehavior = ObjectAllocatorHolder <HitPlayerEffectBehavior> .Allocate(); hitPlayerEffectBehavior.Initialize(hitPlayerEvent.HitPoint.ShiftedVector3(), new AudioEffectData(hitPlayerEvent.HitBodyPart, hitPlayerEvent.HitAudioId, AudioClientEffectType.WeaponPlayerHit), player.bones.Spine); clientEffectObj.Initialize(effectId, hitPlayerEffectBehavior); }