예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }