示例#1
0
        public void AddShootPlayer(int cmdSeq, IBulletEntityAgent bulletEntityAgent, PrecisionsVector3 hitPoint,
                                   EntityKey targetKey, PrecisionsVector3 positionValue, EBodyPart part,
                                   float totalDamage)
        {
            StatisticsHitPlayerEvent hitPlayerEvent =
                (StatisticsHitPlayerEvent)EventInfos.Instance.Allocate(EEventType.HitPlayerStastics,
                                                                       false);

            hitPlayerEvent.cmdSeq = cmdSeq;
            //    hitPlayerEvent.bulletRuntimeText = bulletEntityAgent.ToDynamicString();
            //  hitPlayerEvent.bulletBaseText    = bulletEntityAgent.ToBaseDataString();
            hitPlayerEvent.bodyPart     = part;
            hitPlayerEvent.totalDamage  = totalDamage;
            hitPlayerEvent.posValue     = positionValue;
            hitPlayerEvent.hitPoint     = hitPoint;
            hitPlayerEvent.serverTime   = bulletEntityAgent.ServerTime;
            hitPlayerEvent.statisticStr = bulletEntityAgent.StatisticsInfo.ToString();
            hitPlayerEvent.shootKey     =
                string.Format("{0}_{1}_to_{2}", cmdSeq, bulletEntityAgent.OwnerEntityKey, targetKey);
            hitPlayerEvent.shootTarget = targetKey;

            // srcPlayer.localEvents.Events.AddEvent(e);

            AddShootPlayer(hitPlayerEvent);
        }
示例#2
0
        public void CopyFrom(object rightComponent)
        {
            var r = rightComponent as BulletDataComponent;

            Distance = r.Distance;
            Velocity = r.Velocity;
        }
        public void OnBulletFire(PlayerWeaponController controller, WeaponSideCmd cmd)
        {
            //            DebugUtil.MyLog("[seq:{1}]MuzzleP3Position:{0}",controller.RelatedFirePos.MuzzleP3Position,cmd.UserCmd.Seq);
            var bulletCfg = controller.HeldWeaponAgent.BulletCfg;

            AssertUtility.Assert(bulletCfg != null);
            var cmdSeq   = cmd.UserCmd.Seq;
            var fireAmmu = controller.RelatedCameraSNew.IsAiming() ? sightFireAmmu : normalFireAmmu;

            // 射出子弹
            for (int i = 0; i < bulletCfg.HitCount; i++)
            {
                var bulletData = PlayerBulletData.Allocate();
                bulletData.Dir =
                    PrecisionsVector3.MakePrecisionsV(
                        fireAmmu.GetFireDir(cmdSeq + i, controller, cmd.UserCmd.Seq), 3);
                var viewPos = PrecisionsVector3.MakePrecisionsV(fireAmmu.GetFireViewPosition(controller), 3);
                bulletData.ViewPosition = PrecisionsVector3.MakeRoundPrecisionsV(viewPos, 3);
                //枪口位置取原始精度
                bulletData.EmitPosition = fireAmmu.GetFireEmitPosition(controller);
                controller.AddAuxBullet(bulletData);
                // DebugUtil.AppendShootText(cmd.UserCmd.Seq, "[Bullet Fire]{0}", bulletData.ToStringExt());
            }

            controller.AfterAttack();
        }
示例#4
0
        public void Interpolate(object left, object right, IInterpolationInfo interpolationInfo)
        {
            var l = left as BulletDataComponent;
            var r = right as BulletDataComponent;

            Distance = InterpolateUtility.Interpolate(l.Distance, r.Distance, interpolationInfo);
            Velocity = r.Velocity;
        }
        public void RewindTo(IEvent value)
        {
            StatisticsHitPlayerEvent other = value as StatisticsHitPlayerEvent;

            cmdSeq = other.cmdSeq;
            // bulletRuntimeText = other.bulletRuntimeText;
            statisticStr = other.statisticStr;
            bodyPart     = other.bodyPart;
            totalDamage  = other.totalDamage;
            posValue     = other.posValue;
            hitPoint     = other.hitPoint;
            shootKey     = other.shootKey;
            shootTarget  = other.shootTarget;
            serverTime   = other.serverTime;
        }
        public void ExecuteUserCmd(IPlayerUserCmdGetter getter, IUserCmd cmd)
        {
            var player = getter.OwnerEntity as PlayerEntity;
            PrecisionsVector3 locatorDelta = new PrecisionsVector3(player.characterBoneInterface.CharacterBone.BaseLocatorDelta, 4);
            var clientUpdateComp           = player.playerClientUpdate;
            var gamePlay = player.gamePlay;

            clientUpdateComp.LastSpreadOffsetX             = locatorDelta.x;
            clientUpdateComp.LastSpreadOffsetY             = locatorDelta.y;
            clientUpdateComp.DestoryPreparedThrowingEntity = PlayerStateUtil.HasUIState(gamePlay);
            if (gamePlay.UIStateUpdate)
            {
                gamePlay.UIStateUpdate = false;
                FreeMessageSender.SendOpenSpecifyUIMessageC(player);
            }

            // if ( && )
            // {
            //     FreeMessageSender.SendOpenSpecifyUIMessageC(player);
            // }
        }