public static PlayerEntity CreateNewPlayerEntity( PlayerContext playerContext, Vector3 position, ICreatePlayerInfo playerInfo, bool prediction, bool autoMove) { var playerEntity = playerContext.CreateEntity(); playerEntity.AddPlayerInfo(playerInfo.Token, playerInfo.EntityId, playerInfo.PlayerId, playerInfo.PlayerName, playerInfo.RoleModelId, playerInfo.TeamId, playerInfo.Num, playerInfo.Level, playerInfo.BackId, playerInfo.TitleId, playerInfo.BadgeId, playerInfo.AvatarIds, playerInfo.WeaponAvatarIds, playerInfo.Camp, playerInfo.SprayLacquers, 0, position); playerEntity.AddPlayerToken(playerInfo.Token); playerEntity.playerInfo.WeaponBags = playerInfo.WeaponBags; playerEntity.AddUserCmd(); playerEntity.AddUserCmdSeq(0); playerEntity.AddLatestAdjustCmd(-1, -1); playerEntity.AddUserCmdOwner(new UserCmdOwnerAdapter(playerEntity)); playerEntity.AddEntityKey(new EntityKey(playerInfo.EntityId, (int)EEntityType.Player)); playerEntity.AddPosition(); playerEntity.position.Value = position; playerEntity.AddVehicleCmdSeq(0); playerEntity.isFlagSyncSelf = true; //On server-side, do not sync player entity to other players until the player login server successfully if (!SharedConfig.IsServer) { playerEntity.isFlagCompensation = true; playerEntity.isFlagSyncNonSelf = true; } playerEntity.isFlagAutoMove = autoMove; playerEntity.isFlagSelf = prediction; playerEntity.AddOrientation(0, 0, 0, 0, 0); playerEntity.AddPlayerRotateLimit(false); playerEntity.AddPlayerMove(Vector3.zero, 0, 0, true, false, 0); playerEntity.AddPlayerSkyMove(false, -1); playerEntity.AddPlayerSkyMoveInterVar(); playerEntity.AddTime(0); playerEntity.AddGamePlay(100, 100, -1, -1); playerEntity.AddChangeRole(false); // playerEntity.AddWeaponState(); AddCameraStateNew(playerEntity); playerEntity.AddState(); playerEntity.AddFirePosition(); playerEntity.AddStateBefore(); playerEntity.AddStateInterVar(new StateInterCommands(), new StateInterCommands(), new UnityAnimationEventCommands(), new UnityAnimationEventCommands()); playerEntity.AddStateInterVarBefore(); playerEntity.AddMoveUpdate(); playerEntity.AddSkyMoveUpdate(); playerEntity.AddPlayerMoveByAnimUpdate(); playerEntity.AddFirstPersonAppearance(playerEntity.entityKey.Value.EntityId); playerEntity.AddFirstPersonAppearanceUpdate(); playerEntity.AddThirdPersonAppearance(); //playerEntity.AddNetworkWeaponAnimation(string.Empty, 0, string.Empty, 0); playerEntity.AddLatestAppearance(); playerEntity.latestAppearance.Init(); playerEntity.AddPredictedAppearance(); playerEntity.AddClientAppearance(); playerEntity.AddOxygenEnergy(0); playerEntity.AddSound(); playerEntity.AddUpdateMessagePool(); playerEntity.AddRemoteEvents(new PlayerEvents()); playerEntity.AddUploadEvents(new PlayerEvents(), new PlayerEvents()); playerEntity.AddStatisticsData(false, new BattleData(), new StatisticsData()); playerEntity.AddPlayerMask((byte)(EPlayerMask.TeamA | EPlayerMask.TeamB), (byte)(EPlayerMask.TeamA | EPlayerMask.TeamB)); playerEntity.AddPlayerClientUpdate(); playerEntity.AttachPlayerAux(); #if UNITY_EDITOR //if (SharedConfig.IsOffline) //{ // playerEntity.playerWeaponAuxiliary.BagOpenLimitTime = 50000; //} #endif playerEntity.AddTriggerEvent(); playerEntity.AddRaycastTest(5f, new List <GameObject>()); playerEntity.AddPlayerSpray(0); //Logger.Info(playerEntity.Dump()); return(playerEntity); }
public static void ConvertFrom(this PlayerInfoMessage message, ICreatePlayerInfo info) { message.Camp = info.Camp; message.Level = info.Level; message.Num = info.Num; message.BackId = info.BackId; message.BadgeId = info.BadgeId; message.EntityId = info.EntityId; message.PlayerId = info.PlayerId; message.PlayerName = info.PlayerName; message.TeamId = info.TeamId; message.TitleId = info.TitleId; message.RoleModelId = info.RoleModelId; foreach (var id in info.AvatarIds) { message.AvatarIds.Add(id); } foreach (var id in info.WeaponAvatarIds) { message.WeaponAvatarIds.Add(id); } foreach (var id in info.SprayLacquers) { message.SprayLacquers.Add(id); } foreach (var bag in info.WeaponBags) { if (null == bag) { continue; } PlayerWeaponBagData bagData = PlayerWeaponBagData.Allocate(); bagData.BagIndex = bag.BagIndex; foreach (var weapon in bag.weaponList) { var weaponData = PlayerWeaponData.Allocate(); weaponData.Index = weapon.Index; weaponData.WeaponTplId = weapon.WeaponTplId; weaponData.WeaponAvatarTplId = weapon.WeaponAvatarTplId; if (weapon.LowerRail > 0) { weaponData.WeaponPartTplId.Add(weapon.LowerRail); } if (weapon.Magazine > 0) { weaponData.WeaponPartTplId.Add(weapon.Magazine); } if (weapon.UpperRail > 0) { weaponData.WeaponPartTplId.Add(weapon.UpperRail); } if (weapon.Muzzle > 0) { weaponData.WeaponPartTplId.Add(weapon.Muzzle); } if (weapon.Stock > 0) { weaponData.WeaponPartTplId.Add(weapon.Stock); } bagData.WeaponList.Add(weaponData); } message.WeaponBags.Add(bagData); } message.InitPosition = Vector3.Allocate(); message.InitPosition.X = info.InitPosition.x; message.InitPosition.Y = info.InitPosition.y; message.InitPosition.Z = info.InitPosition.z; }
public static void ConvertFrom(this ICreatePlayerInfo info, PlayerInfoMessage message) { info.Token = "local"; info.Camp = message.Camp; info.Level = message.Level; info.Num = message.Num; info.BackId = message.BackId; info.BadgeId = message.BadgeId; info.EntityId = message.EntityId; info.PlayerId = message.PlayerId; info.PlayerName = message.PlayerName; info.TeamId = message.TeamId; info.TitleId = message.TitleId; info.RoleModelId = message.RoleModelId; info.AvatarIds = new List <int>(); info.AvatarIds.AddRange(message.AvatarIds); info.WeaponAvatarIds = new List <int>(); info.WeaponAvatarIds.AddRange(message.WeaponAvatarIds); info.SprayLacquers = new List <int>(); info.SprayLacquers.AddRange(message.SprayLacquers); info.WeaponBags = new Core.Room.PlayerWeaponBagData[message.WeaponBags.Count]; for (var i = message.WeaponBags.Count - 1; i >= 0; i--) { info.WeaponBags[i] = new Core.Room.PlayerWeaponBagData(); info.WeaponBags[i].BagIndex = message.WeaponBags[i].BagIndex; info.WeaponBags[i].weaponList = new List <Core.Room.PlayerWeaponData>(); Core.Room.PlayerWeaponData weaponData; foreach (var playerWeaponData in message.WeaponBags[i].WeaponList) { //info.WeaponBags[i].weaponList.Add( weaponData = new Core.Room.PlayerWeaponData { Index = playerWeaponData.Index, WeaponTplId = playerWeaponData.WeaponTplId, WeaponAvatarTplId = playerWeaponData.WeaponAvatarTplId }; foreach (var part in playerWeaponData.WeaponPartTplId) { var type = SingletonManager.Get <WeaponPartsConfigManager>().GetPartType(part); switch (type) { case EWeaponPartType.LowerRail: weaponData.LowerRail = part; break; case EWeaponPartType.Magazine: weaponData.Magazine = part; break; case EWeaponPartType.Muzzle: weaponData.Muzzle = part; break; case EWeaponPartType.SideRail: break; case EWeaponPartType.Stock: weaponData.Stock = part; break; case EWeaponPartType.UpperRail: weaponData.UpperRail = part; break; } } info.WeaponBags[i].weaponList.Add(weaponData); } } info.InitPosition = new UnityEngine.Vector3(message.InitPosition.X, message.InitPosition.Y, message.InitPosition.Z); }
public static PlayerEntity CreateNewPlayerEntity( PlayerContext playerContext, IWeaponSlotController weaponSlotController, Vector3 position, ICreatePlayerInfo playerInfo, bool prediction, bool autoMove) { PlayerEntity playerEntity = playerContext.CreateEntity(); var sex = SingletonManager.Get <RoleConfigManager>().GetRoleItemById(playerInfo.RoleModelId).Sex; var modelName = sex == 1 ? SharedConfig.maleModelName : SharedConfig.femaleModelName; playerEntity.AddPlayerInfo(playerInfo.EntityId, playerInfo.PlayerId, playerInfo.PlayerName, playerInfo.RoleModelId, modelName, playerInfo.TeamId, playerInfo.Num, playerInfo.Level, playerInfo.BackId, playerInfo.TitleId, playerInfo.BadgeId, playerInfo.AvatarIds, playerInfo.WeaponAvatarIds, playerInfo.Camp); playerEntity.playerInfo.WeaponBags = playerInfo.WeaponBags; playerEntity.AddUserCmd(); playerEntity.AddUserCmdSeq(0); playerEntity.AddUserCmdOwner(new UserCmdOwnerAdapter(playerEntity)); playerEntity.AddEntityKey(new EntityKey(playerInfo.EntityId, (int)EEntityType.Player)); playerEntity.AddPosition(position); playerEntity.AddVehicleCmdSeq(0); playerEntity.isFlagCompensation = true; playerEntity.isFlagSyncSelf = true; playerEntity.isFlagSyncNonSelf = true; playerEntity.isFlagAutoMove = autoMove; playerEntity.isFlagSelf = prediction; playerEntity.AddOrientation(0, 0, 0, 0, 0); playerEntity.AddPlayerRotateLimit(false); playerEntity.AddPlayerMove(Vector3.zero, 0, true, false, 0); playerEntity.AddPlayerSkyMove(true, -1); playerEntity.AddPlayerSkyMoveInterVar(); playerEntity.AddTime(0); playerEntity.AddGamePlay(100, 100); playerEntity.AddWeaponState(0, 0); #if UNITY_EDITOR if (SharedConfig.IsOffline) { playerEntity.weaponState.BagOpenLimitTime = 50000; } #endif playerEntity.AddPlayerWeaponState(0, false, 0, 0, 0, 0, false, 0, 0); AddCameraStateNew(playerEntity); playerEntity.AddState(); playerEntity.AddFirePosition(); playerEntity.AddStateBefore(); playerEntity.AddStateInterVar(new StateInterCommands(), new StateInterCommands(), new StateInterCommands(), new StateInterCommands()); playerEntity.AddStateInterVarBefore(); playerEntity.AddMoveUpdate(); playerEntity.AddSkyMoveUpdate(); playerEntity.AddPlayerMoveByAnimUpdate(); playerEntity.AddFirstPersonAppearance(playerEntity.entityKey.Value.EntityId); playerEntity.AddThirdPersonAppearance(); //playerEntity.AddNetworkWeaponAnimation(string.Empty, 0, string.Empty, 0); playerEntity.AddLatestAppearance(); playerEntity.latestAppearance.Init(); playerEntity.AddPredictedAppearance(); playerEntity.AddOxygenEnergy(0); playerEntity.AddSound(); playerEntity.AddUpdateMessagePool(); playerEntity.AddRemoteEvents(new PlayerEvents()); playerEntity.AddStatisticsData(false, new BattleData(), new StatisticsData()); weaponSlotController.InitPlayerWeaponBySlotInfo(playerEntity); playerEntity.AddPlayerMask((byte)(EPlayerMask.TeamA | EPlayerMask.TeamB), (byte)(EPlayerMask.TeamA | EPlayerMask.TeamB)); playerEntity.AddOverrideBag(0); //Logger.Info(playerEntity.Dump()); return(playerEntity); }