少年修仙传客户端代码仓库
client_Hale
2019-07-08 b9885c49f34e6b697dca9cc2b268640d112df8da
4445 【BUG】【主干】跨服pk打机器人,技能用了没特效没伤害
2个文件已添加
11个文件已修改
440 ■■■■ 已修改文件
Core/NetworkPackage/ClientPack/ClientToMapServer/CB4_Fight/CB40F_tagCMRecyclePriWoodPile.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ClientPack/ClientToMapServer/CB4_Fight/CB40F_tagCMRecyclePriWoodPile.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0406_tagNPCAppear.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0608_tagNPCDie.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/HeroAI_Auto.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/HeroBehaviour.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GAMgr.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_PVPClientPlayer.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/PersonalEnemy.cs 142 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Stage/Dungeon/DungeonStage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/FightingPKWin.cs 150 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOneClient/ClientCrossServerOneVsOne.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOneClient/ClientCrossServerOneVsOneStage.cs 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ClientPack/ClientToMapServer/CB4_Fight/CB40F_tagCMRecyclePriWoodPile.cs
New file
@@ -0,0 +1,18 @@
// B4 0F 回收私有专属木桩怪 #tagCMRecyclePriWoodPile
public class CB40F_tagCMRecyclePriWoodPile : GameNetPackBasic
{
    public uint ObjID;
    public CB40F_tagCMRecyclePriWoodPile()
    {
        combineCmd = (ushort)0x03FE;
        _cmd = (ushort)0xB40F;
    }
    public override void WriteToBytes()
    {
        WriteBytes(ObjID, NetDataType.DWORD);
    }
}
Core/NetworkPackage/ClientPack/ClientToMapServer/CB4_Fight/CB40F_tagCMRecyclePriWoodPile.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: be36f35f95686874bab75bb7fa423a7a
timeCreated: 1562589481
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0406_tagNPCAppear.cs
@@ -33,6 +33,11 @@
            PersonalEnemy.Bind(vNetData);
            return;
        }
        else if (_npcConfig.NPCType == (int)E_NpcType.PersonalEnemyPVP)
        {
            PersonalEnemy.Bind(vNetData);
            return;
        }
        if (BossInfoConfig.IsStone((int)vNetData.NPCID))
        {
Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0608_tagNPCDie.cs
@@ -22,14 +22,18 @@
        if (PersonalEnemy.m_SBindCDict.ContainsKey(vNetData.ObjID))
        {
            _actor = GAMgr.Instance.GetBySID(PersonalEnemy.m_SBindCDict[vNetData.ObjID]) as GActorFight;
            _actor.ActorInfo.serverDie = true;
            _actor.ActorInfo.SyncServerHp = 0;
            _actor.ActorInfo.SyncServerHpEx = 0;
            _actor.ActorInfo.ReduceHp(GActorInfo.FullHp);
            ClientSceneManager.Instance.lastDeadPos = _actor.Pos;
            GAMgr.Instance.ServerDie(_actor.ServerInstID);
            _actor.Die();
            _actor.ActorInfo.serverDie = true;
            GAMgr.Instance.DoDelayDie(_actor as GActorFight);
            if (_actor is GA_PVPClientPlayer)
            {
                GA_PVPClientPlayer.Result(true);
            }
            if (_hero != null)
            {
                if (_hero.SelectTarget != null && _actor.ServerInstID == _hero.SelectTarget.ServerInstID)
Fight/Actor/AI/HeroAI_Auto.cs
@@ -217,6 +217,14 @@
                if (m_IsDungeon)
                {
                    if (ClientCrossServerOneVsOne.isClientCrossServerOneVsOne)
                    {
                        if (dungeonModel.dungeonFightStage == DungeonFightStage.Prepare)
                        {
                            return;
                        }
                    }
                    if (dungeonModel.dungeonFightStage == DungeonFightStage.Normal
                     || PlayerDatas.Instance.baseData.MapID == 31010)
                    {
Fight/Actor/HeroBehaviour.cs
@@ -789,7 +789,8 @@
                    ClientSceneManager.Instance.lastDeadPos = _target.Pos;
                    if (_target is GA_NpcClientFightNorm)
                    if (_target is GA_NpcClientFightNorm
                     || _target is GA_PVPClientPlayer)
                    {
                        _bindID = PersonalEnemy.GetPersionEnemySID(_target.ServerInstID);
                    }
@@ -798,7 +799,8 @@
                    CB405_tagCMSuperAtk.tagSkillPosHurtObj _hurtObj = new CB405_tagCMSuperAtk.tagSkillPosHurtObj();
                    _hurtObj.ObjID = _bindID == 0 ? _target.ServerInstID : _bindID;
                    if (_target is GA_PlayerXMZZ)
                    if (_target is GA_PlayerXMZZ
                     || _target is GA_PVPClientPlayer)
                    {
                        _hurtObj.ObjType = (byte)GameObjType.gotNPC;
                    }
Fight/GameActor/GAMgr.cs
@@ -1450,7 +1450,8 @@
        // 全体模式, 强制模式 需要对玩家进行预先判断
        if ((E_AttackMode)PlayerDatas.Instance.baseData.AttackMode == E_AttackMode.All
         || (E_AttackMode)PlayerDatas.Instance.baseData.AttackMode == E_AttackMode.Family
         || PlayerDatas.Instance.maliciousAtkPlayer.Count > 0)
         || PlayerDatas.Instance.maliciousAtkPlayer.Count > 0
         || ClientCrossServerOneVsOne.isClientCrossServerOneVsOne)
        {
            List<GActor> _list = GetGroupList(E_ActorGroup.Player);
            DoFindTarget(_list, chkPos, r, ref _actor, angle, lockNpcID);
Fight/GameActor/GA_PVPClientPlayer.cs
@@ -173,7 +173,7 @@
    public sealed override void RefreshLifeBar(ulong value)
    {
        GA_Hero _hero = PlayerDatas.Instance.hero;
        if (_hero != null && _hero.SelectTarget == this)
        if (_hero != null && (_hero.SelectTarget == this || ClientCrossServerOneVsOne.isClientCrossServerOneVsOne))
        {
            if (GA_Player.s_OnRefreshLife != null)
            {
Fight/GameActor/PersonalEnemy.cs
@@ -9,6 +9,7 @@
        public uint npcID;
        public Vector3 pos;
        public E_ActorGroup g;
        public GA_PlayerClient.PlayerInfo playerInfo;
    }
    public static Dictionary<uint, uint> m_CBinSdDict = new Dictionary<uint, uint>();
@@ -17,6 +18,7 @@
    private static Dictionary<uint, List<BindInfo>> BindInfoDict = new Dictionary<uint, List<BindInfo>>();
    public static UnityEngine.Events.UnityAction<GA_NpcClientFightNorm> OnNpcAppear;
    public static UnityEngine.Events.UnityAction<GA_PVPClientPlayer> OnPlayerAppear;
    public static void UnInit()
    {
@@ -33,6 +35,30 @@
            return _objID;
        }
        return 0;
    }
    public static void Create(uint npcID, Vector3 position, GA_PlayerClient.PlayerInfo info)
    {
        var _bindInfo = new BindInfo
        {
            npcID = npcID,
            pos = position,
            playerInfo = info
        };
        if (!BindInfoDict.ContainsKey(npcID))
        {
            BindInfoDict.Add(npcID, new List<BindInfo>());
        }
        BindInfoDict[npcID].Add(_bindInfo);
        var _package = new CB40C_tagCMSummonPriWoodPile();
        _package.NPCID = npcID;
        _package.Count = 1;
        _package.HP = info.hp;
        _package.HPEx = 0;
        GameNetSystem.Instance.SendInfo(_package);
    }
    public static void Create(uint npcID, E_ActorGroup group, Vector3 position,
@@ -69,11 +95,33 @@
        GameNetSystem.Instance.SendInfo(_package);
    }
    public static void ReleaseAll()
    {
        foreach (var _csid in m_CBinSdDict.Keys)
        {
            var _p = new CB40F_tagCMRecyclePriWoodPile();
            _p.ObjID = m_CBinSdDict[_csid];
            GameNetSystem.Instance.SendInfo(_p);
            var _actor = GAMgr.Instance.GetBySID(_csid);
            if (_actor != null)
            {
                GAMgr.Instance.ServerDie(_actor.ServerInstID);
                GAMgr.Instance.Release(_actor);
            }
        }
        m_CBinSdDict.Clear();
        m_SBindCDict.Clear();
        BindInfoDict.Clear();
    }
    public static void Release(GA_NpcClientFightNorm npc)
    {
        uint _psid = 0;
        if (m_CBinSdDict.TryGetValue(npc.ServerInstID, out _psid))
        {
            var _p = new CB40F_tagCMRecyclePriWoodPile();
            _p.ObjID = _psid;
            GameNetSystem.Instance.SendInfo(_p);
            m_CBinSdDict.Remove(npc.ServerInstID);
            if (m_SBindCDict.ContainsKey(_psid))
            {
@@ -84,44 +132,88 @@
        GAMgr.Instance.Release(npc);
    }
    public static void ReleasePlayer(GA_PVPClientPlayer player)
    {
        uint _psid = 0;
        if (m_CBinSdDict.TryGetValue(player.ServerInstID, out _psid))
        {
            var _p = new CB40F_tagCMRecyclePriWoodPile();
            _p.ObjID = _psid;
            GameNetSystem.Instance.SendInfo(_p);
            m_CBinSdDict.Remove(player.ServerInstID);
            if (m_SBindCDict.ContainsKey(_psid))
            {
                m_SBindCDict.Remove(_psid);
            }
        }
        GAMgr.Instance.ServerDie(player.ServerInstID);
        GAMgr.Instance.Release(player);
    }
    public static void Bind(H0406_tagNPCAppear h0406)
    {
        Vector3 _pos = PlayerDatas.Instance.hero.Pos;
        GA_PlayerClient.PlayerInfo playerInfo = default(GA_PlayerClient.PlayerInfo);
        if (BindInfoDict.ContainsKey(h0406.NPCID) && BindInfoDict[h0406.NPCID].Count > 0)
        {
            _pos = BindInfoDict[h0406.NPCID][0].pos;
            playerInfo = BindInfoDict[h0406.NPCID][0].playerInfo;
            BindInfoDict[h0406.NPCID].RemoveAt(0);
        }
        var _config = NPCConfig.Get((int)h0406.NPCID);
        GA_NpcClientFightNorm _npc = null;
        if (_config.IsBoss != (int)E_MonsterType.Normal
         && _config.IsBoss != (int)E_MonsterType.Elite)
        GA_PVPClientPlayer _player = null;
        if (_config.NPCType == (int)E_NpcType.PersonalEnemyPVP)
        {
            _npc = GAMgr.Instance.ReqClntFightNpc<GA_NpcClientFightBoss>(h0406.NPCID, E_ActorGroup.Enemy);
        }
        else
        {
            _npc = GAMgr.Instance.ReqClntFightNpc<GA_NpcClientFightNorm>(h0406.NPCID, E_ActorGroup.Enemy);
        }
        if (_npc != null)
        {
            var _vaildPos = _pos;
            GActor.TryGetValidPos(_pos, ref _vaildPos);
            _npc.BornPos = _npc.Pos = _vaildPos;
            m_CBinSdDict[_npc.ServerInstID] = h0406.ObjID;
            m_SBindCDict[h0406.ObjID] = _npc.ServerInstID;
            _npc.ActorInfo.Hp = h0406.NPCHP;
            _npc.ActorInfo.HpEx = h0406.NPCHPEx;
            _npc.ActorInfo.MaxHp = h0406.MaxHP;
            _npc.ActorInfo.MaxHpEx = h0406.MaxHPEx;
            _npc.ActorInfo.moveSpeed = 500f / h0406.Speed;
            _npc.ActorInfo.LV = h0406.CurLV;
            _npc.RefreshLifeBar(_npc.ActorInfo.RealHp);
            if (OnNpcAppear != null)
            _player = GAMgr.Instance.ReqClntPlayer<GA_PVPClientPlayer>(playerInfo, E_ActorGroup.Player);
            if (_player != null)
            {
                OnNpcAppear(_npc);
                m_CBinSdDict[_player.ServerInstID] = h0406.ObjID;
                m_SBindCDict[h0406.ObjID] = _player.ServerInstID;
                _player.ActorInfo.Hp = h0406.NPCHP;
                _player.ActorInfo.HpEx = h0406.NPCHPEx;
                _player.ActorInfo.MaxHp = playerInfo.maxHp;
                _player.ActorInfo.MaxHpEx = h0406.MaxHPEx;
                _player.ActorInfo.moveSpeed = 500f / 150;
                _player.ActorInfo.LV = playerInfo.level;
                if (OnPlayerAppear != null)
                {
                    OnPlayerAppear(_player);
                }
            }
        }
        else if (_config.NPCType == (int)E_NpcType.PersonalEnemy)
        {
            if (_config.IsBoss != (int)E_MonsterType.Normal
             && _config.IsBoss != (int)E_MonsterType.Elite)
            {
                _npc = GAMgr.Instance.ReqClntFightNpc<GA_NpcClientFightBoss>(h0406.NPCID, E_ActorGroup.Enemy);
            }
            else
            {
                _npc = GAMgr.Instance.ReqClntFightNpc<GA_NpcClientFightNorm>(h0406.NPCID, E_ActorGroup.Enemy);
            }
            if (_npc != null)
            {
                var _vaildPos = _pos;
                GActor.TryGetValidPos(_pos, ref _vaildPos);
                _npc.BornPos = _npc.Pos = _vaildPos;
                m_CBinSdDict[_npc.ServerInstID] = h0406.ObjID;
                m_SBindCDict[h0406.ObjID] = _npc.ServerInstID;
                _npc.ActorInfo.Hp = h0406.NPCHP;
                _npc.ActorInfo.HpEx = h0406.NPCHPEx;
                _npc.ActorInfo.MaxHp = h0406.MaxHP;
                _npc.ActorInfo.MaxHpEx = h0406.MaxHPEx;
                _npc.ActorInfo.moveSpeed = 500f / h0406.Speed;
                _npc.ActorInfo.LV = h0406.CurLV;
                _npc.RefreshLifeBar(_npc.ActorInfo.RealHp);
                if (OnNpcAppear != null)
                {
                    OnNpcAppear(_npc);
                }
            }
        }
    }
Fight/Stage/Dungeon/DungeonStage.cs
@@ -156,6 +156,7 @@
            AdventureStage.Instance.Exit();
        }
        PersonalEnemy.ReleaseAll();
        ClientSceneManager.Instance.UnInit();
        ClientCollectUtility.UnInit();
        GAMgr.Instance.UnInit();
@@ -163,7 +164,6 @@
        ClientDropItemUtility.Instance.ReleaseAll();
        SFXPlayUtility.Instance.Unitialize();
        FakeDungeonUtility.Instance.Reset();
        PersonalEnemy.UnInit();
    }
    protected override void OnUpdate()
System/CrossServerOneVsOne/FightingPKWin.cs
@@ -1,23 +1,23 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Friday, December 21, 2018
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Friday, December 21, 2018
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class FightingPKWin : Window
{
    public class FightingPKWin : Window
    {
        [SerializeField] RoleInformation m_RoleInformation1;
        [SerializeField] RoleInformation m_RoleInformation2;
        [SerializeField] Button m_AutoBtn;
        [SerializeField] GameObject m_AutoImg;
        [SerializeField] RoleInformation m_RoleInformation2;
        [SerializeField] Button m_AutoBtn;
        [SerializeField] GameObject m_AutoImg;
        [SerializeField] Text m_ScoreText1;
        [SerializeField] Text m_ScoreText2;
        [SerializeField] Text m_CountdownText;
@@ -40,39 +40,39 @@
        BuffModel m_BuffModel;
        BuffModel Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<BuffModel>()); } }
        private int positionType = 1;
        #region Built-in
        protected override void BindController()
        private int positionType = 1;
        #region Built-in
        protected override void BindController()
        {
            _ScrollRect1 = Viewport1.GetComponent<ScrollRect>();
            _ScrollRect2 = Viewport2.GetComponent<ScrollRect>();
            m_ScrollerController1.OnRefreshCell += OnRefreshGridCell1;
            m_ScrollerController2.OnRefreshCell += OnRefreshGridCell2;
            m_ScrollerController2.OnRefreshCell += OnRefreshGridCell2;
        }
        protected override void AddListeners()
        {
            m_AutoBtn.AddListener(AutoButton);
            m_RoleInformation1.BuffButton.AddListener(myBuffList);
            m_RoleInformation2.BuffButton.AddListener(opponentBuffList);
        }
        protected override void OnPreOpen()
        {
            positionType = CrossServerLogin.Instance.oneVsOnePlayerData.myBornPoint;
        protected override void AddListeners()
        {
            m_AutoBtn.AddListener(AutoButton);
            m_RoleInformation1.BuffButton.AddListener(myBuffList);
            m_RoleInformation2.BuffButton.AddListener(opponentBuffList);
        }
        protected override void OnPreOpen()
        {
            positionType = CrossServerLogin.Instance.oneVsOnePlayerData.myBornPoint;
            CrossServerOneVsOneRewardModel.PkDanLvNow = CrossServerOneVsOnePlayerInfo.Instance.DanLV;
            PlayerDatas.Instance.playerDataRefreshEvent += Updatefighting;//数据的刷新(h0418)
            GA_Player.s_OnRefreshLife += OnRefreshPlayerLifeBar;
            PlayerDatas.Instance.playerDataRefreshEvent += Updatefighting;//数据的刷新(h0418)
            GA_Player.s_OnRefreshLife += OnRefreshPlayerLifeBar;
            if (PlayerDatas.Instance.hero != null)
            {
                PlayerDatas.Instance.hero.ActorInfo.OnHpChange += OnHeroHpChanged;
            }
            _MyBuffSortList.Clear();
            _OpponentBuffSortList.Clear();
            m_ScoreText1.text = 0.ToString();
            m_ScoreText2.text = 0.ToString();
            }
            _MyBuffSortList.Clear();
            _OpponentBuffSortList.Clear();
            m_ScoreText1.text = 0.ToString();
            m_ScoreText2.text = 0.ToString();
            SetScoreText();
            BuffScheduling();//buff排序
            GetopponentBuff();
@@ -89,28 +89,28 @@
        {
            dungeonEndTime = dungeonModel.GetCoolDownEndTime(DungeonCoolDownType.FightStart);
            PlaceOfBirth(positionType);//从出生位置设置信息
            Viewport1.gameObject.SetActive(false);
            Viewport1.gameObject.SetActive(false);
            Viewport2.gameObject.SetActive(false);
        }
        protected override void OnAfterOpen()
        }
        protected override void OnAfterOpen()
        {
            HeroBehaviour.OnStopHandupAI += OnHeroHandupAIStopPassive;
            HeroBehaviour.OnStartHandupAI += OnHeroHandupAIStarted;
            dungeonModel.dungeonCoolDownEvent += DungeonCoolDownEvent;
            dungeonModel.dungeonCoolDownEvent += DungeonCoolDownEvent;
            dungeonModel.updateMissionEvent += UpdateMissionEvent;
            BuffModel.Even_ObjAddBuf += AddBuff;
            BuffModel.Even_ObjDelBuff += DelBuff;
            BuffModel.BuffUpdateEvent += BuffUpdateEvent;
            OpponentInformation.Instance.ShieldUpdate += ShieldUpdate;
            BuffModel.Even_ObjDelBuff += DelBuff;
            BuffModel.BuffUpdateEvent += BuffUpdateEvent;
            OpponentInformation.Instance.ShieldUpdate += ShieldUpdate;
        }
        protected override void OnPreClose()
        protected override void OnPreClose()
        {
            PlayerDatas.Instance.playerDataRefreshEvent -= Updatefighting;//数据的刷新(h0418)
            PlayerDatas.Instance.playerDataRefreshEvent -= Updatefighting;//数据的刷新(h0418)
            GA_Player.s_OnRefreshLife -= OnRefreshPlayerLifeBar;
            if (PlayerDatas.Instance.hero != null)
            {
@@ -123,13 +123,13 @@
            BuffModel.Even_ObjAddBuf -= AddBuff;
            BuffModel.Even_ObjDelBuff -= DelBuff;
            BuffModel.BuffUpdateEvent -= BuffUpdateEvent;
            OpponentInformation.Instance.ShieldUpdate -= ShieldUpdate;
            OpponentInformation.Instance.ShieldUpdate -= ShieldUpdate;
        }
        protected override void OnAfterClose()
        {
        protected override void OnAfterClose()
        {
        }
        protected override void LateUpdate()
        {
@@ -161,13 +161,13 @@
            }
        }
        #endregion
        #endregion
        private void OnHeroHpChanged(ulong hp)
        {
            PlaceOfBirthUpdate(positionType);
        }
        }
        private void DelBuff()
        {
            BuffScheduling();
@@ -217,14 +217,14 @@
                    OnCreateGridLineCell(m_ScrollerController1);
                }
            }
        }
        }
        private void DungeonCoolDownEvent(DungeonCoolDownType type)
        {
            if (type == DungeonCoolDownType.FightStart)
            {
                dungeonEndTime = dungeonModel.GetCoolDownEndTime(DungeonCoolDownType.FightStart);
            }
        }
        }
        private void Updatefighting(PlayerDataType _tCDBPlayerRefresh)
        {
            switch (_tCDBPlayerRefresh)
@@ -244,7 +244,7 @@
        }
        private void OnRefreshPlayerLifeBar(uint _instanceId, ulong _hp, ulong _maxHp)
        {
            //   DebugEx.LogError("最大血量"+ _maxHp+"当前血量"+ _hp);
            // Debug.Log("============== 最大血量" + _maxHp + "当前血量" + _hp);
            if (positionType == 1)
            {
                m_RoleInformation2.SetHeroHP((int)_maxHp, (int)_hp);
@@ -285,7 +285,7 @@
            //{
            //    m_AutoImg.SetActive(false);
            //}
        }
        }
        private void AutoButton()
        {
            var _hero = PlayerDatas.Instance.hero;
@@ -301,8 +301,8 @@
                }
            }
            //m_AutoImg.SetActive(!m_AutoImg.activeSelf);
        }
        }
        private void SetScoreText()
        {
            int roundNum = dungeonModel.mission.roundNum;
@@ -337,7 +337,7 @@
        private void myBuffList()
        {
            Viewport1.gameObject.SetActive(true);
        }
        }
        private void opponentBuffList()
        {
            Viewport2.gameObject.SetActive(true);
@@ -408,7 +408,7 @@
            _buffBGM.b_BuffTime.gameObject.SetActive(false);
            _buffBGM.BiBuffText.gameObject.SetActive(false);
            _buffBGM._OnOff = false;
        }
        }
        void UpdateControllerPosition()
        {
            if (_MyBuffSortList.Count == 0)
@@ -474,7 +474,7 @@
                    (Viewport1 as RectTransform).sizeDelta = (Viewport1 as RectTransform).sizeDelta.SetY(_OpponentBuffSortList.Count * ItemHeight + UpperAndLower);
                }
            }
        }
        }
        void BuffScheduling()//buff排序
        {
            _MyBuffSortList.Clear();
@@ -483,7 +483,7 @@
                _MyBuffSortList.Add(key);
            }
        }
        }
        private void IsShowMyBuffBtn()
        {
            if (_MyBuffSortList.Count > 0)
@@ -555,8 +555,8 @@
            {
                m_RoleInformation1.BuffNumber.text = _OpponentBuffSortList.Count.ToString();
            }
        }
        }
        private void PlaceOfBirth(int type)//关于出生点设置位置信息
        {
            if (type == 1)//左
@@ -605,7 +605,7 @@
                m_RoleInformation1.SetHeroHP(PlayerDatas.Instance.extersion.MaxHP, (int)PlayerDatas.Instance.baseData.HP);
                m_RoleInformation1.SetShieldNumber(PlayerDatas.Instance.extersion.MaxProDef, (int)PlayerDatas.Instance.baseData.shield);
#if UNITY_EDITOR
                Debug.LogFormat("设置血量: {0}/{1}", PlayerDatas.Instance.baseData.HP, PlayerDatas.Instance.extersion.MaxHP);
                //  Debug.LogFormat("设置血量: {0}/{1}", PlayerDatas.Instance.baseData.HP, PlayerDatas.Instance.extersion.MaxHP);
#endif
            }
            else
@@ -615,7 +615,7 @@
                m_RoleInformation2.SetHeroHP(PlayerDatas.Instance.extersion.MaxHP, (int)PlayerDatas.Instance.baseData.HP);
                m_RoleInformation2.SetShieldNumber(PlayerDatas.Instance.extersion.MaxProDef, (int)PlayerDatas.Instance.baseData.shield);
#if UNITY_EDITOR
                Debug.LogFormat("设置血量: {0}/{1}", PlayerDatas.Instance.baseData.HP, PlayerDatas.Instance.extersion.MaxHP);
                //  Debug.LogFormat("设置血量: {0}/{1}", PlayerDatas.Instance.baseData.HP, PlayerDatas.Instance.extersion.MaxHP);
#endif
            }
        }
@@ -632,11 +632,11 @@
                    _OpponentBuffSortList.Add(buffIds[i]);
                }
            }
        }
    }
}
        }
    }
}
System/CrossServerOneVsOneClient/ClientCrossServerOneVsOne.cs
@@ -304,7 +304,7 @@
        ClientDungeonStageUtility.SetClientDungeon(false, 0);
        PlayerDatas.Instance.extersion.pkState = 0;
        ModelCenter.Instance.GetModel<DungeonModel>().ResetBufData();
        PersonalEnemy.ReleaseAll();
        PlayerDatas.Instance.baseData.MapID = PlayerDatas.Instance.baseData.mainServerMapIdRecord;
        StageLoad.Instance.PushSceneLoadCommand(new StageLoad.StageLoadCommand()
        {
System/CrossServerOneVsOneClient/ClientCrossServerOneVsOneStage.cs
@@ -66,12 +66,28 @@
        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);
        // opponentPlayer = GAMgr.Instance.ReqClntPlayer<GA_PVPClientPlayer>(playerInfo, E_ActorGroup.Enemy);
        PersonalEnemy.Create(30000, ClientCrossServerOneVsOne.myPlace == 1 ? rightBornPoint : leftBornPoint, playerInfo);
        PersonalEnemy.OnPlayerAppear += OnPlayerAppear;
        SnxxzGame.Instance.StartCoroutine(WaitForPlayerCreate());
        opponentPlayer.Pos = ClientCrossServerOneVsOne.myPlace == 1 ? rightBornPoint : leftBornPoint;
        PlayerDatas.Instance.hero.Pos = ClientCrossServerOneVsOne.myPlace == 1 ? leftBornPoint : rightBornPoint;
        CameraController.Instance.Apply();
    }
    private void OnPlayerAppear(GA_PVPClientPlayer player)
    {
        opponentPlayer = player;
    }
    private IEnumerator WaitForPlayerCreate()
    {
        while (opponentPlayer == null)
        {
            yield return null;
        }
        opponentPlayer.Pos = ClientCrossServerOneVsOne.myPlace == 1 ? rightBornPoint : leftBornPoint;
        currentStage = new WaitStartStage();
        currentStage.Begin();
    }
@@ -148,10 +164,10 @@
            pkStageType = PKStageType.WaitStart;
            duration = 3f;
            Debug.LogFormat("进入阶段:{0}", pkStageType);
            opponentPlayer.ActorInfo.ResetHp((int)playerInfo.maxHp, -1, (int)playerInfo.maxHp, -1);
            // opponentPlayer.ActorInfo.ResetHp((int)playerInfo.maxHp, -1, (int)playerInfo.maxHp, -1);
            opponentPlayer.ActorInfo.serverDie = false;
            opponentPlayer.IdleImmediate();
            opponentPlayer.SkillMgr.ResetAllCD();
            // opponentPlayer.SkillMgr.ResetAllCD();
            GA_PVPClientPlayer.AutoAI(false);
            PlayerDatas.Instance.baseData.HP = (uint)PlayerDatas.Instance.extersion.MaxHP;
@@ -178,7 +194,7 @@
        public override void Update()
        {
            timer += Time.deltaTime;
            completed = timer >= duration;
            completed = timer >= duration && opponentPlayer != null;
        }
    }
@@ -196,13 +212,13 @@
            figthCompleted = false;
            restTimeTimer = 0f;
            opponentPlayer.Pos = ClientCrossServerOneVsOne.myPlace == 1 ? rightBornPoint : leftBornPoint;
            PlayerDatas.Instance.hero.Behaviour.StartHandupAI();
            GA_PVPClientPlayer.AutoAI(true);
            opponentPlayer.SelectTarget = PlayerDatas.Instance.hero;
            PlayerDatas.Instance.hero.SelectTarget = opponentPlayer;
#if UNITY_EDITOR
            Debug.LogFormat("进入阶段:{0}", pkStageType);
#endif
        }
        public override void End()
@@ -225,6 +241,7 @@
            if (fightInfo.isOver)
            {
                PersonalEnemy.ReleasePlayer(opponentPlayer);
                opponentPlayer.Destroy();
            }
            else
@@ -282,22 +299,33 @@
        public override void Begin()
        {
            pkStageType = PKStageType.RoundPrepare;
            GA_PVPClientPlayer.AutoAI(false);
            duration = 3f;
            Debug.LogFormat("进入阶段:{0}", pkStageType);
            if (fightInfo.roundWinnerIds[fightInfo.roundWinnerIds.Count - 1] == PlayerDatas.Instance.baseData.PlayerID)
            {
                PlayerDatas.Instance.hero.SelectTarget = opponentPlayer;
                opponentPlayer.ActorInfo.ResetHp((int)playerInfo.maxHp, -1, (int)playerInfo.maxHp, -1);
                opponentPlayer.ActorInfo.serverDie = false;
                opponentPlayer.IdleImmediate();
                opponentPlayer.SkillMgr.ResetAllCD();
                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);
                PersonalEnemy.Create(30000, ClientCrossServerOneVsOne.myPlace == 1 ? rightBornPoint : leftBornPoint, playerInfo);
                PersonalEnemy.OnPlayerAppear += OnPlayerAppear;
                SnxxzGame.Instance.StartCoroutine(WaitForPlayerCreate());
                // PlayerDatas.Instance.hero.SelectTarget = opponentPlayer;
                // opponentPlayer.ActorInfo.ResetHp((int)playerInfo.maxHp, -1, (int)playerInfo.maxHp, -1);
                // opponentPlayer.ActorInfo.serverDie = false;
                // opponentPlayer.IdleImmediate();
                // opponentPlayer.SkillMgr.ResetAllCD();
                if (PlayerDatas.Instance.hero.ActorInfo.RealHp <= 0)
                {
                    PlayerDatas.Instance.baseData.HP = 1;
                    var maxHp = PlayerDatas.Instance.extersion.MaxHP;
                    PlayerDatas.Instance.hero.ActorInfo.ResetHp(1, -1, maxHp, -1);
                    PlayerDatas.Instance.hero.ActorInfo.ResetHp(1, -1, PlayerDatas.Instance.extersion.MaxHP, -1);
                    PlayerDatas.Instance.FightRefreshPlayerHp(1);
                    PlayerDatas.Instance.hero.IdleImmediate();
                }
@@ -313,14 +341,34 @@
                if (opponentPlayer.ActorInfo.RealHp <= 0)
                {
                    opponentPlayer.ActorInfo.ResetHp(1, -1, (int)playerInfo.maxHp, -1);
                    opponentPlayer.ActorInfo.serverDie = false;
                    opponentPlayer.IdleImmediate();
                    opponentPlayer = null;
                    // opponentPlayer.ActorInfo.ResetHp(1, -1, (int)playerInfo.maxHp, -1);
                    // opponentPlayer.ActorInfo.serverDie = false;
                    // opponentPlayer.IdleImmediate();
                    playerInfo.hp = 1;
                    PersonalEnemy.Create(30000, ClientCrossServerOneVsOne.myPlace == 1 ? rightBornPoint : leftBornPoint, playerInfo);
                    PersonalEnemy.OnPlayerAppear += OnPlayerAppear;
                    SnxxzGame.Instance.StartCoroutine(WaitForPlayerCreate());
                }
            }
            PlayerDatas.Instance.hero.Pos = ClientCrossServerOneVsOne.myPlace == 1 ? leftBornPoint : rightBornPoint;
        }
        private void OnPlayerAppear(GA_PVPClientPlayer player)
        {
            opponentPlayer = player;
        }
        private IEnumerator WaitForPlayerCreate()
        {
            while (opponentPlayer == null)
            {
                yield return null;
            }
            opponentPlayer.Pos = ClientCrossServerOneVsOne.myPlace == 1 ? rightBornPoint : leftBornPoint;
            opponentPlayer.ActorInfo.ResetHp((int)playerInfo.maxHp, -1, (int)playerInfo.maxHp, -1);
        }
        public override void End()
@@ -332,7 +380,7 @@
        public override void Update()
        {
            timer += Time.deltaTime;
            completed = timer >= duration;
            completed = timer >= duration && opponentPlayer != null;
        }
    }