LogicProject/System/ArenaActivity/ArenaManagerModel.cs
@@ -19,7 +19,6 @@ } } static ServerMirrorFightModel mirrorFightModel { get { return ModelCenter.Instance.GetModel<ServerMirrorFightModel>(); } } /// stage public static readonly Vector3 leftBornPoint = new Vector3(4.9f, 0.2f, 3.5f); LogicProject/System/CrossServerQualifying/CrossServerQualifyingModel.cs
@@ -361,7 +361,7 @@ { var dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>(); var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID); return PlayerDatas.Instance.baseData.CrossServerFlag > 2 && mapList.IndexOf(dataMapId) != -1; return mapList.IndexOf(dataMapId) != -1; } //进入跨服排位赛,借用跨服竞技1v1模拟 @@ -460,11 +460,6 @@ OverType = netPack.OverType; WinnerID = netPack.WinnerID; RoundWinnerID = netPack.RoundWinnerID.ToList(); if (WindowCenter.Instance.IsOpen<CrossServerOneVsOneRoundWin>()) { WindowCenter.Instance.Close<CrossServerOneVsOneRoundWin>(); } if (WindowCenter.Instance.IsOpen<FightingPKWin>()) { System/CrossServer/CrossServerUtility.cs
@@ -44,14 +44,8 @@ var dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>(); var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID); if (dataMapId == 32070) { return PlayerDatas.Instance.baseData.CrossServerFlag > 2 && dataMapId == 32070; } return PlayerDatas.Instance.baseData.CrossServerFlag > 2 && dataMapId == CrossServerOneVsOneModel.CrossServerDataMapId; return dataMapId == CrossServerOneVsOneModel.CrossServerDataMapId || dataMapId == 32070; } public static bool IsCrossServerBoss() System/CrossServerOneVsOne/CrossServerOneVsOneArenaWin.cs
@@ -48,6 +48,7 @@ CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent += UpdatePlayerInfo; TimeMgr.Instance.OnMinuteEvent += UpdateMinute; crossServerModel.UpdateMatchPlayersEvent += UpdateMatchPlayers; RoleParticularModel.OnRevPackage += OnRecvPlayerViewPack; } protected override void OnAfterOpen() @@ -61,12 +62,29 @@ CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent -= UpdatePlayerInfo; TimeMgr.Instance.OnMinuteEvent -= UpdateMinute; crossServerModel.UpdateMatchPlayersEvent -= UpdateMatchPlayers; RoleParticularModel.OnRevPackage -= OnRecvPlayerViewPack; } protected override void OnAfterClose() { } #endregion private void OnRecvPlayerViewPack(int viewType, int playerID, RoleParticularModel.ViewPlayerData data) { if (crossServerModel.matchPlayers.Count == 0) return; for (int i = 0;i < crossServerModel.matchPlayers.Count; i++) { if (crossServerModel.matchPlayers[i].PlayerID == playerID) { matchPlayerObjs[i].Display(i); break; } } } private void UpdatePlayerInfo() { @@ -129,7 +147,6 @@ winRateText.text = CrossServerOneVsOnePlayerInfo.Instance.DisplayWinningRate(); sumNumText.text = CrossServerOneVsOnePlayerInfo.Instance.PKCount.ToString(); int winSteakCnt = CrossServerOneVsOnePlayerInfo.Instance.CWinCount; winSteakCnt = winSteakCnt > 1 ? winSteakCnt : 0; winStreakText.text = winSteakCnt.ToString(); } System/CrossServerOneVsOne/CrossServerOneVsOneMatchResultCell.cs
@@ -45,18 +45,14 @@ } else { int winNum = 0; int failNum = 0; resultInfo.GetWinAndFailNum(out winNum,out failNum); string compareScore = StringUtility.Contact(winNum,":",failNum); if (isWinStreak) { info.text = Language.Get("CrossServer102", resultInfo.VsPlayerName.Replace("@gm", ""), compareScore,resultInfo.AddScore, info.text = Language.Get("CrossServer102", resultInfo.VsPlayerName.Replace("@gm", ""), resultInfo.AddScore, resultInfo.WinStreak, winStreakScore); } else { info.text = Language.Get("CrossServer101", resultInfo.VsPlayerName.Replace("@gm", ""), compareScore,resultInfo.AddScore); info.text = Language.Get("CrossServer101", resultInfo.VsPlayerName.Replace("@gm", ""), resultInfo.AddScore); } } System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs
@@ -30,6 +30,8 @@ public event Action UpdateMatchPlayersEvent; public bool loginQueryMatch = false; public Dictionary<int, GA_PlayerClient.PlayerInfo> robots = new Dictionary<int, GA_PlayerClient.PlayerInfo>(); public override void Init() { ParseFuncConfig(); @@ -47,7 +49,6 @@ CrossServerOneVsOnePKSeason.Instance.updateSelfSeasonEvent -= UpdateSeason; TimeMgr.Instance.OnMinuteEvent -= UpdateMinute; GlobalTimeEvent.Instance.secondEvent -= UpdateSecond; dungeonModel.updateMissionEvent -= UpdateFBHelp; rewardModel.CrossRealmPKAwardStateUpdate -= UpdateDayAwardState; CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent -= UpdateDayAwardState; TimeMgr.Instance.OnDayEvent -= OnDay; @@ -75,7 +76,6 @@ GlobalTimeEvent.Instance.secondEvent += UpdateSecond; rewardModel.CrossRealmPKAwardStateUpdate += UpdateDayAwardState; CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent += UpdateDayAwardState; dungeonModel.updateMissionEvent += UpdateFBHelp; TimeMgr.Instance.OnDayEvent += OnDay; UpdateServerOpenDay(); UpdateDayAwardState(); @@ -127,6 +127,18 @@ } } recordDataMapId = dataMapId; if (dataMapId == CrossServerDataMapId || dataMapId == 1000) { PersonalEnemy.OnMirrorPlayerAppear += OnPlayerAppear; } } private void OnPlayerAppear(GA_Player player) { CrossServerLogin.Instance.UpdatePKPlayerInfo(player); PersonalEnemy.OnMirrorPlayerAppear -= OnPlayerAppear; dungeonModel.dungeonFightStage = DungeonFightStage.Normal; } private void UpdateMinute() @@ -182,47 +194,6 @@ UpdateCrossMatchRedpoint(); } private void UpdateFBHelp() { if (!CrossServerUtility.IsCrossServerOneVsOne()) { return; } var hero = PlayerDatas.Instance.hero; var mission = dungeonModel.mission; if (mission.prepareTime > 0) { roundEndTime = DateTime.Now + new TimeSpan(mission.prepareTime * TimeSpan.TicksPerMillisecond); if (!WindowCenter.Instance.IsOpen<CrossServerOneVsOneRoundWin>()) { WindowCenter.Instance.Open<CrossServerOneVsOneRoundWin>(); } if (hero != null) { hero.Behaviour.StopHandupAI(true); hero.StopPathFind(); } } DebugEx.LogFormat("副本帮助信息回合是否开始::{0}", mission.isStart); if (mission.isStart == 1) { if (WindowCenter.Instance.IsOpen<CrossServerOneVsOneRoundWin>()) { WindowCenter.Instance.Close<CrossServerOneVsOneRoundWin>(); } if (!WindowCenter.Instance.IsOpen<CrossServerOneVsOneStartFightWin>()) { WindowCenter.Instance.Open<CrossServerOneVsOneStartFightWin>(); } if (hero != null) { hero.Behaviour.StartHandupAI(); } } } public List<AwardType> GetDayAwardsList() { @@ -454,13 +425,70 @@ matchPlayers.Clear(); for (int i = 0; i < package.MatchPlayerCount; i++) { matchPlayers.Add(package.MatchPlayer[i]); //服务端没有主动推送的话,这里需要请求一次玩家缓存数据 int playerID = (int)package.MatchPlayer[i].PlayerID; if (playerID > 10000) { matchPlayers.Add(package.MatchPlayer[i]); //服务端没有主动推送的话,这里需要请求一次玩家缓存数据 ModelCenter.Instance.GetModel<RoleParticularModel>().ViewPlayerCacheData(playerID); } else { int job = (byte)UnityEngine.Random.Range(1, 3); string name = ClientCrossServerOneVsOne.GetRandomOpponentName(job); int level = 1; int fightPower = 0; int fightPowerEx = 0; //战力,整除亿部分 ulong tmpFightPower = 0; if (playerID == 1) { level = Math.Min((int)(PlayerDatas.Instance.baseData.LV * 1.2), 999); tmpFightPower = PlayerDatas.Instance.baseData.FightPoint*2; } else if (playerID == 2) { level = Math.Max((int)(PlayerDatas.Instance.baseData.LV * 0.8), 160); tmpFightPower = (ulong)(PlayerDatas.Instance.baseData.FightPoint * 0.8); } else if (playerID == 3) { level = Math.Max((int)(PlayerDatas.Instance.baseData.LV * 0.6), 160); tmpFightPower = (ulong)(PlayerDatas.Instance.baseData.FightPoint * 0.5); } fightPower = (int)(tmpFightPower % 100000000); fightPowerEx = (int)(tmpFightPower / 100000000); //机器人 matchPlayers.Add(new HC001_tagGCCrossRealmPKMatchOK.tagGCCrossRealmPKMatchPlayer() { PlayerID = (uint)playerID, PlayerName = name, Job = (byte)job, LV = (ushort)level, RealmLV = PlayerDatas.Instance.baseData.realmLevel, Face = (uint)AvatarHelper.GetAvatarDefaultID(job), FacePic = (uint)AvatarHelper.GetAvatarFrameDefaultID(job), FightPower = (uint)fightPower, FightPowerEx = (uint)fightPowerEx }); CreateRobot(matchPlayers[i]); } } UpdateMatchPlayersEvent?.Invoke(); } void CreateRobot(HC001_tagGCCrossRealmPKMatchOK.tagGCCrossRealmPKMatchPlayer player) { var job = player.Job; var playerName = player.PlayerName; var level = player.LV; var scoreClass = CrossServerOneVsOnePlayerInfo.Instance.DanLV; robots[(int)player.PlayerID] = ClientCrossServerOneVsOne.GetRandomOpponentPlayerInfo(scoreClass, job, playerName, level, 1); } BuffModel buffDatas { get { return ModelCenter.Instance.GetModel<BuffModel>(); } } /// <summary> @@ -489,56 +517,56 @@ GameNetSystem.Instance.SendInfo(pKBuy); } public bool TryGetMatchTip() { int mapId = PlayerDatas.Instance.baseData.MapID; bool isCrossDungeon = CrossServerUtility.IsCrossServer(); if (isCrossDungeon) { SysNotifyMgr.Instance.ShowTip("CrossMatching3"); return true; } //public bool TryGetMatchTip() //{ // int mapId = PlayerDatas.Instance.baseData.MapID; // bool isCrossDungeon = CrossServerUtility.IsCrossServer(); // if (isCrossDungeon) // { // SysNotifyMgr.Instance.ShowTip("CrossMatching3"); // return true; // } var mapConfig = MapConfig.Get(mapId); bool isDungeon = mapConfig != null && mapConfig.MapFBType != 0 ? true : false; if (isDungeon) { SysNotifyMgr.Instance.ShowTip("CrossMatching4"); return true; } // var mapConfig = MapConfig.Get(mapId); // bool isDungeon = mapConfig != null && mapConfig.MapFBType != 0 ? true : false; // if (isDungeon) // { // SysNotifyMgr.Instance.ShowTip("CrossMatching4"); // return true; // } var deadModel = ModelCenter.Instance.GetModel<PlayerDeadModel>(); if (deadModel.playerIsDie) { SysNotifyMgr.Instance.ShowTip("CrossMatching5"); return true; } // var deadModel = ModelCenter.Instance.GetModel<PlayerDeadModel>(); // if (deadModel.playerIsDie) // { // SysNotifyMgr.Instance.ShowTip("CrossMatching5"); // return true; // } var teamModel = ModelCenter.Instance.GetModel<TeamModel>(); bool isTeamMatch = teamModel.isMatching; if (isTeamMatch) { SysNotifyMgr.Instance.ShowTip("CrossMatching6"); return true; } // var teamModel = ModelCenter.Instance.GetModel<TeamModel>(); // bool isTeamMatch = teamModel.isMatching; // if (isTeamMatch) // { // SysNotifyMgr.Instance.ShowTip("CrossMatching6"); // return true; // } bool isDungeonPrepare = teamModel.teamPrepare.isPreparing; if (isDungeonPrepare) { SysNotifyMgr.Instance.ShowTip("CrossMatching7"); return true; } // bool isDungeonPrepare = teamModel.teamPrepare.isPreparing; // if (isDungeonPrepare) // { // SysNotifyMgr.Instance.ShowTip("CrossMatching7"); // return true; // } int remainMatchNum = CrossServerOneVsOnePlayerInfo.Instance.GetDayRemainNum(); if (remainMatchNum <= 0) { SysNotifyMgr.Instance.ShowTip("CrossMatching16"); return true; } // int remainMatchNum = CrossServerOneVsOnePlayerInfo.Instance.GetDayRemainNum(); // if (remainMatchNum <= 0) // { // SysNotifyMgr.Instance.ShowTip("CrossMatching16"); // return true; // } return false; // return false; } //} public bool TryGetBuyMatchTimes(string key) { System/CrossServerOneVsOne/CrossServerOneVsOnePKPlayerCell.cs
@@ -25,22 +25,42 @@ return; var matchPlayer = crossServerModel.matchPlayers[index]; ShowRawPlayer((int)matchPlayer.PlayerID); ShowRawPlayer((int)matchPlayer.PlayerID, index); nameText.text = matchPlayer.PlayerName; fightPointTxt.text = UIHelper.ReplaceLargeArtNum(matchPlayer.FightPowerEx * Constants.ExpPointValue + matchPlayer.FightPower); winScoreTxt.text = crossServerModel.winConstScoreArr[index].ToString(); winScoreTxt.text = Language.Get("CrossServerOneVsOne2") + crossServerModel.winConstScoreArr[index].ToString(); challengeBtn.AddListener(() => { if (matchPlayer.PlayerID > 10000) { var teamModel = ModelCenter.Instance.GetModel<TeamModel>(); if (teamModel.isMatching) { teamModel.RequestCancelAutoMatchTeam(); } CrossServerLogin.Instance.InitOneVsOnePlayerInfo(matchPlayer); mirrorFightModel.SendMirrorFight(CrossServerOneVsOneModel.CrossServerDataMapId, 0, matchPlayer.PlayerID, 0); } else { CrossServerLogin.Instance.InitOneVsOneClientPlayerInfo(matchPlayer); ClientCrossServerOneVsOne.JiaMatchOk(matchPlayer); } }); } void ShowRawPlayer(int playerID) void ShowRawPlayer(int playerID, int index) { if (playerID < 10000) { ShowRobot(playerID, index); return; } var viewPlayerData = model.GetViewPlayerData(playerID); if (viewPlayerData == null) { @@ -75,8 +95,59 @@ titleID = viewPlayerData.rolePropData.TitleID, }; UI3DModelExhibition.Instance.ShowPlayer(playerRaw, data); if (index == 0) UI3DModelExhibition.InstanceClone1.ShowPlayer(playerRaw, data); else if (index == 1) UI3DModelExhibition.InstanceClone2.ShowPlayer(playerRaw, data); else if (index == 2) UI3DModelExhibition.InstanceClone3.ShowPlayer(playerRaw, data); playerRaw.raycastTarget = false; } void ShowRobot(int playerID, int index) { var robot = crossServerModel.robots[playerID]; int clothesID = 0; int weaponID1 = 0; int weaponID2 = 0; // 因为衣服是所有装备的父节点, 需要预先处理衣服 for (int i = 0; i < robot.itemDatas.Length; ++i) { var _itemInfo = robot.itemDatas[i]; if (_itemInfo.place == (int)RoleEquipType.Clothes) { clothesID = (int)_itemInfo.id; } if (_itemInfo.place == (int)RoleEquipType.Weapon) { weaponID1 = (int)_itemInfo.id; } else if (_itemInfo.place == (int)RoleEquipType.Weapon2) { weaponID2 = (int)_itemInfo.id; } } var data = new UI3DPlayerExhibitionData { job = robot.job, clothesId = clothesID, weaponId = weaponID1, secondaryId = weaponID2, }; if (index == 0) UI3DModelExhibition.InstanceClone1.ShowPlayer(playerRaw, data); else if (index == 1) UI3DModelExhibition.InstanceClone2.ShowPlayer(playerRaw, data); else if (index == 2) UI3DModelExhibition.InstanceClone3.ShowPlayer(playerRaw, data); playerRaw.raycastTarget = false; } } } System/CrossServerOneVsOne/CrossServerOneVsOneRewardModel.cs
@@ -189,10 +189,6 @@ { if (CrossServerUtility.IsCrossServerOneVsOne() )//副本结算界面 { if (WindowCenter.Instance.IsOpen<CrossServerOneVsOneRoundWin>()) { WindowCenter.Instance.Close<CrossServerOneVsOneRoundWin>(); } WindowCenter.Instance.Open<CrossServerSettlementWin>(); } } System/CrossServerOneVsOne/CrossServerOneVsOneRoundWin.cs
File was deleted System/CrossServerOneVsOne/CrossServerOneVsOneRoundWin.cs.meta
File was deleted System/CrossServerOneVsOne/CrossServerOneVsOneStartFightWin.cs
File was deleted System/CrossServerOneVsOne/CrossServerOneVsOneStartFightWin.cs.meta
File was deleted System/CrossServerOneVsOne/CrossServerSettlementWin.cs
@@ -64,6 +64,7 @@ protected override void OnPreOpen() { PlayerDatas.Instance.hero.StopAll(); timer = 0f; int WinnerID = crossServerModel.pkResultInfo.WinnerID; int playerID = (int)PlayerDatas.Instance.baseData.PlayerID; @@ -131,10 +132,11 @@ } else { CrossServerOneVsOneRewardModel.ExitCrossRealm(); model.ExitCurrentDungeon(); } CloseClick(); PlayerDatas.Instance.hero.StopAll(); } private void SetNormal() System/CrossServerOneVsOne/FightingPKWin.cs
@@ -223,6 +223,7 @@ if (type == DungeonCoolDownType.FightStart) { dungeonEndTime = dungeonModel.GetCoolDownEndTime(DungeonCoolDownType.FightStart); PlayerDatas.Instance.hero.Behaviour.StartHandupAI(); } } private void Updatefighting(PlayerDataType _tCDBPlayerRefresh) System/CrossServerOneVsOneClient/ClientCrossServerOneVsOne.cs
@@ -3,14 +3,13 @@ using UnityEngine; using vnxbqy.UI; using System; using System.Text.RegularExpressions; using LitJson; using System.Text; public class ClientCrossServerOneVsOne { public const int mapId = 1000; public const uint OPPONENT_PLAYERID = 999999; public static uint OPPONENT_PLAYERID; public static bool isClientCrossServerOneVsOne { get; private set; } public static FightResultSupplement resultSupplement; @@ -44,50 +43,10 @@ } } public static bool TryClientCrossServerOneVsOne(int myClass) { var config = CrossServerArenaConfig.Get(myClass); if (config == null) { return false; } if (config.robotProbability <= 0) { return false; } var random = UnityEngine.Random.Range(0, 100); return random < config.robotProbability; } public static string GetRandomOpponentName(int job) { var serverName = string.Empty; while (string.IsNullOrEmpty(serverName)) { try { var groupRandom = UnityEngine.Random.Range(0, ServerListCenter.Instance.serverInfoCommon.common.Length); var serverRandom = UnityEngine.Random.Range(0, ServerListCenter.Instance.serverInfoCommon.common[groupRandom].group_list.Length); var serverData = ServerListCenter.Instance.serverInfoCommon.common[groupRandom].group_list[serverRandom]; if (serverData.running_status == (int)ServerState.Normal || serverData.running_status == (int)ServerState.Busy || serverData.running_status == (int)ServerState.Hot) { serverName = serverData.name; } } catch (System.Exception ex) { Debug.LogError(ex); } } var playerName = StringUtility.Contact(RandomNameConfig.GetFirstName(job), RandomNameConfig.GetSecondName(job)); return string.Concat("[", serverName.Replace("@gm", ""), "]", playerName); return StringUtility.Contact(RandomNameConfig.GetFirstName(job), RandomNameConfig.GetSecondName(job)); } public static GA_PlayerClient.PlayerInfo GetRandomOpponentPlayerInfo(int scoreClass, int job, string playerName, int level, ulong maxHp) @@ -130,37 +89,18 @@ return playerInfo; } //改为直接挑战机器人 public static void JiaMatchOk() //挑战机器人 ID固定为 1-对应高分段机器人,2-中分段,3-低分段 public static void JiaMatchOk(HC001_tagGCCrossRealmPKMatchOK.tagGCCrossRealmPKMatchPlayer player) { var teamModel = ModelCenter.Instance.GetModel<TeamModel>(); if (teamModel.isMatching) { teamModel.RequestCancelAutoMatchTeam(); } var package = new HC001_tagGCCrossRealmPKMatchOK(); //package.RoomID = 1000; var serverName = ServerListCenter.Instance.currentServer.name; var playerName = PlayerDatas.Instance.baseData.PlayerName; //package.PlayerName = StringUtility.Contact("[", serverName.Replace("@gm", ""), "]", playerName); //package.Number = (byte)UnityEngine.Random.Range(1, 3); var opponent = new HC001_tagGCCrossRealmPKMatchOK.tagGCCrossRealmPKMatchPlayer(); opponent.Job = (byte)UnityEngine.Random.Range(1, 3); opponent.PlayerName = GetRandomOpponentName(opponent.Job); opponent.PlayerID = OPPONENT_PLAYERID; var exceptedLevel = PlayerDatas.Instance.baseData.LV - UnityEngine.Random.Range(1, 5); opponent.LV = (ushort)(Mathf.Clamp(exceptedLevel, FuncOpenLVConfig.Get(157).LimitLV, 999)); //opponent.MaxProDef = 100; //var maxHP = (ulong)(PlayerDatas.Instance.extersion.MaxHP * UnityEngine.Random.Range(0.7f, 0.95f)); //opponent.MaxHP = (uint)(maxHP % Constants.ExpPointValue); //opponent.MaxHPEx = (uint)(maxHP / Constants.ExpPointValue); package.MatchPlayer = new HC001_tagGCCrossRealmPKMatchOK.tagGCCrossRealmPKMatchPlayer[] { opponent }; //myPlace = package.Number; opponentName = opponent.PlayerName; myPlace = 1; opponentName = player.PlayerName; OPPONENT_PLAYERID = player.PlayerID; StartClientCrossServerOneVsOne(); } @@ -293,6 +233,7 @@ ClientCrossServerOneVsOne.resultSupplement = resultSupplement; var sendInfo = new CC108_tagCMCrossRealmPKRobotOver(); sendInfo.IsWin = (byte)(resultSupplement.winPlayerId == PlayerDatas.Instance.baseData.PlayerID ? 1 : 0); sendInfo.TagPlayerID = OPPONENT_PLAYERID; GameNetSystem.Instance.SendInfo(sendInfo); } System/CrossServerOneVsOneClient/ClientCrossServerOneVsOneStage.cs
@@ -18,7 +18,9 @@ static GA_PVPClientPlayer opponentPlayer; static uint roundWiner = 0; PKStage currentStage; PKStage currentStage; CrossServerOneVsOneModel model { get { return ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>(); } } public override void Initialize() { @@ -62,13 +64,9 @@ opponentPlayer = null; } var job = CrossServerLogin.Instance.oneVsOnePlayerData.opponentJob; var playerName = CrossServerLogin.Instance.oneVsOnePlayerData.opponentName; var level = CrossServerLogin.Instance.oneVsOnePlayerData.opponentLevel; var maxHp = CrossServerLogin.Instance.oneVsOnePlayerData.opponentMaxHp; var scoreClass = CrossServerOneVsOnePlayerInfo.Instance.DanLV; playerInfo = ClientCrossServerOneVsOne.GetRandomOpponentPlayerInfo(scoreClass, job, playerName, level, maxHp); // opponentPlayer = GAMgr.Instance.ReqClntPlayer<GA_PVPClientPlayer>(playerInfo, E_ActorGroup.Enemy); playerInfo = model.robots[(int)ClientCrossServerOneVsOne.OPPONENT_PLAYERID]; playerInfo.maxHp = CrossServerLogin.Instance.oneVsOnePlayerData.opponentMaxHp; playerInfo.hp = playerInfo.maxHp; PersonalEnemy.Create(30000, ClientCrossServerOneVsOne.myPlace == 1 ? rightBornPoint : leftBornPoint, playerInfo); PersonalEnemy.OnPlayerAppear += OnPlayerAppear; SnxxzGame.Instance.StartCoroutine(WaitForPlayerCreate()); @@ -252,19 +250,9 @@ public override void End() { fightInfo.roundWinnerIds.Add(roundWiner);//记录获胜者的id if (fightInfo.roundCount >= 2) if (fightInfo.roundCount >= 1) { if (fightInfo.roundCount == 2) { if (fightInfo.roundWinnerIds[0] == fightInfo.roundWinnerIds[1]) { fightInfo.isOver = true; } } else { fightInfo.isOver = true; } fightInfo.isOver = true; } if (fightInfo.isOver) System/Dungeon/DungeonModel.cs
@@ -1486,7 +1486,7 @@ if (PlayerDatas.Instance.baseData.dungeonMapId != 0) { config = MapConfig.Get(PlayerDatas.Instance.baseData.dungeonMapId); if (config != null && config.MapFBType == (int)MapType.SingleFB) if (config != null && (config.MapFBType == (int)MapType.SingleFB || config.MapFBType == 10)) { _mapId = PlayerDatas.Instance.baseData.dungeonMapId; } System/Login/CrossServerLogin.cs
@@ -41,6 +41,82 @@ public string passwordBuf { get; private set; } public void InitOneVsOnePlayerInfo(HC001_tagGCCrossRealmPKMatchOK.tagGCCrossRealmPKMatchPlayer player) { oneVsOnePlayerData = new CrossServerOneVsOne() { isClient = false, myName = PlayerDatas.Instance.baseData.PlayerName, myJob = PlayerDatas.Instance.baseData.Job, myFace = AvatarHelper.GetMyAvatarID(), myFacePic = AvatarHelper.GetMyAvatarFrameID(), myBornPoint = 1, opponentName = player.PlayerName.Replace("@gm", ""), opponentJob = player.Job, opponentFace = (int)player.Face, opponentFacePic = (int)player.FacePic, opponentLevel = player.LV, opponentPlayerId = (int)player.PlayerID, }; } public void UpdatePKPlayerInfo(GA_Player player) { oneVsOnePlayerData = new CrossServerOneVsOne() { isClient = oneVsOnePlayerData.isClient, myName = oneVsOnePlayerData.myName, myJob = oneVsOnePlayerData.myJob, myFace = oneVsOnePlayerData.myFace, myFacePic = oneVsOnePlayerData.myFacePic, myBornPoint = oneVsOnePlayerData.myBornPoint, opponentName = oneVsOnePlayerData.opponentName, opponentJob = oneVsOnePlayerData.opponentJob, opponentFace = oneVsOnePlayerData.opponentFace, opponentFacePic = oneVsOnePlayerData.opponentFacePic, opponentMaxHp = player.ActorInfo.MaxHp, opponentLevel = oneVsOnePlayerData.opponentLevel, opponentPlayerId = oneVsOnePlayerData.opponentPlayerId, MaxProDef = (int)player.ActorInfo.maxProDef, }; } //挑战机器人 ID固定为 1-对应高分段机器人,2-中分段,3-低分段 public void InitOneVsOneClientPlayerInfo(HC001_tagGCCrossRealmPKMatchOK.tagGCCrossRealmPKMatchPlayer player) { int playerID = (int)player.PlayerID; ulong maxHP = 100000; if (playerID == 1) { maxHP = PlayerDatas.Instance.extersion.MaxHP * 2; } else if (playerID == 2) { maxHP = (ulong)(PlayerDatas.Instance.extersion.MaxHP*0.8); } else if (playerID == 3) { maxHP = (ulong)(PlayerDatas.Instance.extersion.MaxHP * 0.4); } oneVsOnePlayerData = new CrossServerOneVsOne() { isClient = false, myName = PlayerDatas.Instance.baseData.PlayerName, myJob = PlayerDatas.Instance.baseData.Job, myFace = AvatarHelper.GetMyAvatarID(), myFacePic = AvatarHelper.GetMyAvatarFrameID(), myBornPoint = 1, opponentName = player.PlayerName.Replace("@gm", ""), opponentJob = player.Job, opponentFace = (int)player.Face, opponentFacePic = (int)player.FacePic, opponentLevel = player.LV, opponentPlayerId = (int)player.PlayerID, opponentMaxHp = maxHP }; } //public void CrossServerOneVsOneLogin() //{ // var loginModel = ModelCenter.Instance.GetModel<LoginModel>(); @@ -258,15 +334,10 @@ public ulong opponentMaxHp; public int MaxProDef;// 最大护盾 public CrossServerOneVsOne SetWaitForLoginCrossServer(bool waitForLoginCrossServer) { this.waitForLoginCrossServer = waitForLoginCrossServer; return this; } public bool IsCrossServerOneVsOneEntering() { return autoEnsureTime > Time.time; return false; } }