少年修仙传客户端代码仓库
client_Zxw
2018-12-01 553d71d0bf968cc43d432ad21ab41003e39f06fe
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
3个文件已添加
8个文件已修改
422 ■■■■■ 已修改文件
Fight/GameActor/GA_NpcCollect.cs 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_NpcFunc.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GActorNpcNoFight.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/Resources.meta 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonFightWin.cs 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonRuneTowerVictoryWin.cs 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/RuneTower/RuneTowerModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/RuneTower/RuneTowerWin.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Tip/ConfirmCancel.cs 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Tip/RuneTowerConfirmWin.cs 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Tip/RuneTowerConfirmWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_NpcCollect.cs
@@ -17,41 +17,24 @@
    private FairyCampType belongType = FairyCampType.None;
    protected override void OnMainModelLoaded()
    protected override void OnPrefabLoadFinished(bool result, Object prefab)
    {
        base.OnMainModelLoaded();
        InitPerformance(this.ClientInstID, this.NpcConfig.NPCID);
        AdjustPos((ushort)ActorInfo.serverBornPos.x, (ushort)ActorInfo.serverBornPos.y);
        if(m_ReplaceNpcID != -1)
        {
            var _npcConfig = Config.Instance.Get<NPCConfig>(m_ReplaceNpcID);
            if(prefab)
            {
                if(!prefab.name.Contains(_npcConfig.MODE))
                {
                    return;
                }
            }
        }
        base.OnPrefabLoadFinished(result, prefab);
    }
    public sealed override void InitPerformance(uint clientInstID, int npcID)
    protected sealed override void HandleNpcConfig(int npcID)
    {
        if (m_Model)
        {
            if (m_LoadDefaultRes)
            {
                GameObjectPoolManager.Instance.ReleaseDefaultFuncNPC(m_Model);
            }
            else
            {
                if (m_ReplaceNpcID != -1)
                {
                    GameObject _toDestroy = InstanceResourcesLoader.LoadNpc(m_ReplaceNpcID);
                    if (_toDestroy)
                    {
                        GameObjectPoolManager.Instance.ReleaseGameObject(_toDestroy, m_Model);
                    }
                }
                else
                {
                    Object.Destroy(m_Model);
                }
            }
            m_Model = null;
            m_Animator = null;
        }
        if (npcID == 10404100)
        {
            if (PlayerDatas.Instance.baseData.Job == 2)
@@ -83,70 +66,7 @@
            }
        }
        GameObject _prefab = InstanceResourcesLoader.LoadNpcPrefab(npcID);
        if (_prefab == null)
        {
            _prefab = InstanceResourcesLoader.LoadDefaultFuncNPC();
            if (_prefab)
            {
                m_LoadDefaultRes = true;
            }
        }
        if (_prefab != null)
        {
            if (!_prefab.name.Contains("Cb01"))
            {
                GAMgr.Instance.AddNeedDestroyPrefab(_prefab);
            }
            if (m_LoadDefaultRes)
            {
                m_Model = GameObjectPoolManager.Instance.RequestDefaultFuncNpc();
            }
            else
            {
                m_Model = GameObjectPoolManager.Instance.RequestNpcGameObject(npcID);
            }
            if (m_Model)
            {
                m_Animator = m_Model.GetComponent<Animator>();
                if (m_Animator)
                {
                    RuntimeAnimatorController _controller = null;
                    if (m_LoadDefaultRes)
                    {
                        _controller = InstanceResourcesLoader.LoadDefaultMobAnimatorController_Func();
                    }
                    else
                    {
                        _controller = AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerSuffix, NpcConfig.MODE);
                    }
                    if (_controller)
                    {
                        m_Animator.runtimeAnimatorController = _controller;
                    }
                    m_Animator.enabled = true;
                    m_Animator.SetInteger(GAStaticDefine.Param_ActorInstID, (int)clientInstID);
                }
                SetupBindNode(m_Model.transform);
                if (m_Root)
                {
                    m_Model.transform.SetParent(m_Root.transform);
                    m_Model.transform.localPosition = Vector3.zero;
                    m_Model.transform.localRotation = Quaternion.identity;
                }
            }
            RequestName();
        }
        NpcConfig = Config.Instance.Get<NPCConfig>(npcID);
    }
    public sealed override void RequestName()
@@ -176,10 +96,7 @@
    {
        base.OnInit(package);
        if (m_ReplaceNpcID != -1)
        {
            RequestName();
        }
        NpcConfig = Config.Instance.Get<NPCConfig>((int)m_H0406.NPCID);
        if (PlayerDatas.Instance.baseData.MapID == 31230)
        {
@@ -194,6 +111,17 @@
        WindowCenter.Instance.windowAfterOpenEvent += CheckOpenCollectIcon;
        WindowCenter.Instance.windowAfterCloseEvent += AfterCloseMainWin;
        // 执行挖洞逻辑
        if (NpcConfig.Dig == 1)
        {
            m_Dig = SoMap.CreateImpasse.GeneralCircle(Pos, NpcConfig.ModelRadius);
        }
        if (GeneralDefine.NpcPosOffset.ContainsKey(NpcConfig.NPCID))
        {
            Pos = GeneralDefine.NpcPosOffset[NpcConfig.NPCID];
            //Debug.Log("矫正位置: " + Pos);
        }
    }
    private void AfterCloseMainWin(Window obj)
@@ -425,21 +353,53 @@
    {
        // 获取归属
        FairyCampType _type = (FairyCampType)ModelCenter.Instance.GetModel<FairyLeagueModel>().fairyLeagueHelp.GetCrystalBelongCamp(NpcConfig.NPCID);
        int _offset = 0;
        if (belongType != _type)
        {
            if (_type == FairyCampType.Blue)
            {
                SFXPlayUtility.Instance.PlayBattleEffect(3029, this);
                _offset = 8;
            }
            else if (_type == FairyCampType.Red)
            {
                SFXPlayUtility.Instance.PlayBattleEffect(3030, this);
                _offset = 13;
            }
            InitPerformance(ClientInstID, NpcConfig.NPCID);
            var _npcID = m_ReplaceNpcID = NpcConfig.NPCID + _offset;
            var _npcConfig = Config.Instance.Get<NPCConfig>(_npcID);
            if (_npcConfig != null)
            {
                if (m_Model)
                {
                    if (m_LoadDefaultRes)
                    {
                        GameObjectPoolManager.Instance.ReleaseDefaultFuncNPC(m_Model);
                    }
                    else
                    {
                        if (m_ReplaceNpcID != -1)
                        {
                            GameObject _toDestroy = InstanceResourcesLoader.LoadNpc(m_ReplaceNpcID);
                            if (_toDestroy)
                            {
                                GameObjectPoolManager.Instance.ReleaseGameObject(_toDestroy, m_Model);
                            }
                        }
                        else
                        {
                            Object.Destroy(m_Model);
                        }
                    }
            RequestName();
                    m_Model = null;
                    m_Animator = null;
                }
                InstanceResourcesLoader.AsyncLoadNpc(_npcConfig.NPCID, OnPrefabLoadFinished);
            }
            belongType = _type;
        }
Fight/GameActor/GA_NpcFunc.cs
@@ -9,7 +9,7 @@
    protected HeadUpName m_HeadUpName;
    // 用于触发点击的组件
    protected NPCInteractProcessor m_NPCInteractProcessor;
    private H0406_tagNPCAppear m_H0406;
    protected H0406_tagNPCAppear m_H0406;
    private HeadUpQuestSign m_MissionSign;
    private int m_WeaponID;
Fight/GameActor/GActorNpcNoFight.cs
@@ -5,7 +5,7 @@
{
    protected GameObject m_Model;
    protected Animator m_Animator;
    private UnityEngine.AI.NavMeshObstacle m_Dig;
    protected UnityEngine.AI.NavMeshObstacle m_Dig;
    private SFXController m_Shadow;
    public NPCConfig NpcConfig { get; protected set; }
@@ -68,12 +68,6 @@
        }
        RequestShadow();
        // 执行挖洞逻辑
        if (NpcConfig.Dig == 1)
        {
            m_Dig = SoMap.CreateImpasse.GeneralCircle(Pos, NpcConfig.ModelRadius);
        }
        if (NpcConfig.NPCEffect != 0)
        {
Lua/Gen/Resources.meta
New file
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: a545fb3dcf719304fa74180c10219375
folderAsset: yes
timeCreated: 1542357825
licenseType: Pro
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
System/Dungeon/DungeonFightWin.cs
@@ -153,7 +153,7 @@
        }
        protected override void OnAfterClose()
        {
        {
            m_DungenWHYJ.Unit();
            var iceCrystalVeinModel = ModelCenter.Instance.GetModel<IceCrystalVeinModel>();
            if (iceCrystalVeinModel.IsIceCrystalVein_Copy)
@@ -161,7 +161,7 @@
                iceCrystalVeinModel.IsIceCrystalVein_Copy = false;
                iceCrystalVeinModel.IsIceCrystalVeinCopy = true;
            }
        }
        protected override void LateUpdate()
@@ -234,7 +234,7 @@
                (bool _ok) =>
                {
                    if (_ok)
                    {
                    {
                        model.ExitCurrentDungeon();
                    }
                }
@@ -296,27 +296,55 @@
            switch (dataMapId)
            {
                case RuneTowerModel.RUNETOWER_MAPID:
                    if (!runeTowerModel.allTowerCompleted)
                    if (!runeTowerModel.waitNextConfirm)
                    {
                        var config = Config.Instance.Get<RuneTowerFloorConfig>(runeTowerModel.currentFloor);
                        var lastFloor = (int)ModelCenter.Instance.GetModel<RuneModel>().RuneTowerOpenLV;
                        var lastFloorConfig = Config.Instance.Get<RuneTowerFloorConfig>(lastFloor);
                        if (model.dungeonResult.isPass == 1 && config.TowerId == lastFloorConfig.TowerId && lastFloorConfig.AutoExit == 0)
                        if (!runeTowerModel.allTowerCompleted)
                        {
                            var runeTowerStage = StageManager.Instance.CurrentStage as RuneTowerDungeonStage;
                            runeTowerStage.PerformChallengeNextLevel();
                            model.UpdateCoolDown(DungeonCoolDownType.LeaveMap, 0);
                            model.UpdateCoolDown(DungeonCoolDownType.TowerTake, 0);
                            WindowCenter.Instance.Close<DungeonRuneTowerVictoryWin>();
                            var config = Config.Instance.Get<RuneTowerFloorConfig>(runeTowerModel.currentFloor);
                            var lastFloor = (int)ModelCenter.Instance.GetModel<RuneModel>().RuneTowerOpenLV;
                            var lastFloorConfig = Config.Instance.Get<RuneTowerFloorConfig>(lastFloor);
                            if (model.dungeonResult.isPass == 1 && config.TowerId == lastFloorConfig.TowerId && lastFloorConfig.AutoExit == 0)
                            {
                                if (PlayerDatas.Instance.baseData.FightPoint >= config.Fightpower)
                                {
                                    var runeTowerStage = StageManager.Instance.CurrentStage as RuneTowerDungeonStage;
                                    runeTowerStage.PerformChallengeNextLevel();
                                    model.UpdateCoolDown(DungeonCoolDownType.LeaveMap, 0);
                                    model.UpdateCoolDown(DungeonCoolDownType.TowerTake, 0);
                                    WindowCenter.Instance.Close<DungeonRuneTowerVictoryWin>();
                                }
                                else
                                {
                                    ConfirmCancel.ShowRuneTowerPopConfirm(
                                        Language.Get("Mail101"),
                                        Language.Get("RuneTower25", config.Fightpower),
                                        (bool ok) =>
                                        {
                                            if (ok)
                                            {
                                                var runeTowerStage = StageManager.Instance.CurrentStage as RuneTowerDungeonStage;
                                                runeTowerStage.PerformChallengeNextLevel();
                                                model.UpdateCoolDown(DungeonCoolDownType.LeaveMap, 0);
                                                model.UpdateCoolDown(DungeonCoolDownType.TowerTake, 0);
                                                WindowCenter.Instance.Close<DungeonRuneTowerVictoryWin>();
                                            }
                                            else
                                            {
                                                model.ExitCurrentDungeon();
                                            }
                                        }
                                        );
                                }
                            }
                            else
                            {
                                model.ExitCurrentDungeon();
                            }
                        }
                        else
                        {
                            model.ExitCurrentDungeon();
                        }
                    }
                    else
                    {
                        model.ExitCurrentDungeon();
                    }
                    break;
                case 41110:
System/Dungeon/DungeonRuneTowerVictoryWin.cs
@@ -62,11 +62,37 @@
        private void ChallengeNextRuneTower()
        {
            var runeTowerStage = StageManager.Instance.CurrentStage as RuneTowerDungeonStage;
            runeTowerStage.PerformChallengeNextLevel();
            dungeonModel.UpdateCoolDown(DungeonCoolDownType.LeaveMap, 0);
            dungeonModel.UpdateCoolDown(DungeonCoolDownType.TowerTake, 0);
            CloseClick();
            var config = Config.Instance.Get<RuneTowerFloorConfig>(runeTowerModel.currentFloor);
            if (PlayerDatas.Instance.baseData.FightPoint >= config.Fightpower)
            {
                var runeTowerStage = StageManager.Instance.CurrentStage as RuneTowerDungeonStage;
                runeTowerStage.PerformChallengeNextLevel();
                dungeonModel.UpdateCoolDown(DungeonCoolDownType.LeaveMap, 0);
                dungeonModel.UpdateCoolDown(DungeonCoolDownType.TowerTake, 0);
                CloseClick();
            }
            else
            {
                ConfirmCancel.ShowRuneTowerPopConfirm(
                    Language.Get("Mail101"),
                    Language.Get("RuneTower25", config.Fightpower),
                    (bool ok) =>
                    {
                        if (ok)
                        {
                            var runeTowerStage = StageManager.Instance.CurrentStage as RuneTowerDungeonStage;
                            runeTowerStage.PerformChallengeNextLevel();
                            dungeonModel.UpdateCoolDown(DungeonCoolDownType.LeaveMap, 0);
                            dungeonModel.UpdateCoolDown(DungeonCoolDownType.TowerTake, 0);
                            CloseClick();
                        }
                        else
                        {
                            dungeonModel.ExitCurrentDungeon();
                        }
                    }
                    );
            }
        }
        private void DisplayRunesUnLock(int _floor)
System/RuneTower/RuneTowerModel.cs
@@ -95,9 +95,10 @@
                    }
                }
            }
        }
        public bool waitNextConfirm = false;
        public event Action<int> selectedFloorEvent;
        public event Action<int> sweepBoughtTimesChangeEvent;
System/RuneTower/RuneTowerWin.cs
@@ -150,7 +150,19 @@
        {
            if (!model.allTowerCompleted && model.currentFloor == model.selectedFloor)
            {
                model.RequestChallengeTower();
                var config = Config.Instance.Get<RuneTowerFloorConfig>(model.selectedFloor);
                if (PlayerDatas.Instance.baseData.FightPoint >= config.Fightpower)
                {
                    model.RequestChallengeTower();
                }
                else
                {
                    ConfirmCancel.ShowPopConfirm(
                        Language.Get("Mail101"),
                        Language.Get("RuneTower25", config.Fightpower),
                        () => { model.RequestChallengeTower(); }
                        );
                }
            }
        }
System/Tip/ConfirmCancel.cs
@@ -25,7 +25,7 @@
                WindowCenter.Instance.Open<PopConfirmWin>();
            }
        }
        public static void ShowPopConfirm(string title, string info, Action func = null)
        {
            popConfirmTitle = title;
@@ -39,7 +39,7 @@
            }
        }
        public static void ShowRealmPopConfirm(string title, string info,string okName,Action func = null)
        public static void ShowRealmPopConfirm(string title, string info, string okName, Action func = null)
        {
            popConfirmTitle = title;
            popConfirmInfo = info;
@@ -51,6 +51,16 @@
            {
                WindowCenter.Instance.Open<RealmPopConfirmWin>();
            }
        }
        public static void ShowRuneTowerPopConfirm(string title, string info, Action<bool> func)
        {
            popConfirmTitle = title;
            popConfirmInfo = info;
            OnPopConfirmClickEvent = func;
            OnPopSingleConfirmEvent = null;
            IsSingleConfirm = false;
            WindowCenter.Instance.Open<RuneTowerConfirmWin>();
        }
        #region 带toggle的确认取消
@@ -80,10 +90,10 @@
        public static int iconItemId;
        public static int iconNeedCnt;
        public static int iconHaveCnt;
        public static string iconToggleText{ get; private set; }
        public static string iconToggleText { get; private set; }
        public static Action<bool, bool> OnIconToggleConfirmAct;
        public static void IconConfirmCancel(string title,string topInfo,int id,
          int haveCnt,int needCnt,string bottomInfo,string toggleTxt, Action<bool, bool> func)
        public static void IconConfirmCancel(string title, string topInfo, int id,
          int haveCnt, int needCnt, string bottomInfo, string toggleTxt, Action<bool, bool> func)
        {
            iconTitle = title;
            iconTopInfo = topInfo;
@@ -98,7 +108,7 @@
                WindowCenter.Instance.Open<IconConfirmWin>();
            }
        }
        #endregion
        #region 仙盟联赛战场引导
System/Tip/RuneTowerConfirmWin.cs
New file
@@ -0,0 +1,92 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Monday, November 26, 2018
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class RuneTowerConfirmWin : PopConfirmWin
    {
        [SerializeField] Text m_CountDown;
        float timer = 0f;
        float overTime = 5f;
        bool executed = false;
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        RuneTowerModel model { get { return ModelCenter.Instance.GetModel<RuneTowerModel>(); } }
        #region Built-in
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
            base.AddListeners();
        }
        protected override void OnPreOpen()
        {
            base.OnPreOpen();
            timer = 0f;
            executed = false;
            model.waitNextConfirm = true;
        }
        protected override void OnAfterOpen()
        {
        }
        protected override void OnPreClose()
        {
            model.waitNextConfirm = false;
        }
        protected override void OnAfterClose()
        {
        }
        protected override void LateUpdate()
        {
            timer += Time.deltaTime;
            m_CountDown.text = Language.Get("RuneTower26", Mathf.RoundToInt(overTime - timer));
            if (timer >= overTime)
            {
                if (!executed)
                {
                    OnCountDownEnd();
                }
            }
        }
        public override void CloseClick()
        {
            WindowCenter.Instance.Close<RuneTowerConfirmWin>();
        }
        #endregion
        private void OnCountDownEnd()
        {
            dungeonModel.ExitCurrentDungeon();
            CloseClick();
        }
    }
}
System/Tip/RuneTowerConfirmWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 5a75f5fc739109642aa45fcc6536352f
timeCreated: 1543198064
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant: