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); }
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(); }
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); // } }