少年修仙传客户端代码仓库
client_linchunjie
2019-01-21 6ef7c231d1f3183fbad322e9c8be03d57546867c
JadeDynastyBoss
4个文件已添加
6个文件已修改
335 ■■■■ 已修改文件
Core/GameEngine/DataToCtl/PackageRegedit.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HA0_Sys/DTCA007_tagGCFBLinePlayerCnt.cs 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HB2_ActionMap/DTCB212_tagMCZhuXianBossCnt.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HB2_ActionMap/DTCB212_tagMCZhuXianBossCnt.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HA0_Sys/HA007_tagGCFBLinePlayerCnt.cs 71 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HB2_ActionMap/HB212_tagMCZhuXianBossCnt.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HB2_ActionMap/HB212_tagMCZhuXianBossCnt.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyBoss/JadeDynastyBossBehaviour.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyBoss/JadeDynastyBossModel.cs 86 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyBoss/JadeDynastyBossWin.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/DataToCtl/PackageRegedit.cs
@@ -25,6 +25,7 @@
    public static void Init()
    {
        // 登记相应的数据体及对应的数据转逻辑类
        Register(typeof(HB212_tagMCZhuXianBossCnt), typeof(DTCB212_tagMCZhuXianBossCnt));
        Register(typeof(H0208_tagTalkCountry), typeof(DTC0208_tagTalkCountry));
        Register(typeof(HB102_tagMCClothesCoatSkinState), typeof(DTCB102_tagMCClothesCoatSkinState));
        Register(typeof(HA112_tagMCDBPlayer), typeof(DTCA112_tagMCDBPlayer));
Core/NetworkPackage/DTCFile/ServerPack/HA0_Sys/DTCA007_tagGCFBLinePlayerCnt.cs
@@ -1,25 +1,26 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Monday, January 08, 2018
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using Snxxz.UI;
public class DTCA007_tagGCFBLinePlayerCnt : DtcBasic {
    public override void Done(GameNetPackBasic vNetPack)
    {
        base.Done(vNetPack);
        var package = vNetPack as HA007_tagGCFBLinePlayerCnt;
        ModelCenter.Instance.GetModel<MapModel>().UpdateDungeonMapLines(package);
    }
}
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Monday, January 08, 2018
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using Snxxz.UI;
public class DTCA007_tagGCFBLinePlayerCnt : DtcBasic {
    public override void Done(GameNetPackBasic vNetPack)
    {
        base.Done(vNetPack);
        var package = vNetPack as HA007_tagGCFBLinePlayerCnt;
        ModelCenter.Instance.GetModel<MapModel>().UpdateDungeonMapLines(package);
        ModelCenter.Instance.GetModel<JadeDynastyBossModel>().OnReceivePackage(package);
    }
}
Core/NetworkPackage/DTCFile/ServerPack/HB2_ActionMap/DTCB212_tagMCZhuXianBossCnt.cs
New file
@@ -0,0 +1,25 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Monday, January 21, 2019
//--------------------------------------------------------
using Snxxz.UI;
using System;
using System.Collections;
using System.Collections.Generic;
public class DTCB212_tagMCZhuXianBossCnt : DtcBasic
{
    public override void Done(GameNetPackBasic vNetPack)
    {
        base.Done(vNetPack);
        var package = vNetPack as HB212_tagMCZhuXianBossCnt;
        ModelCenter.Instance.GetModel<JadeDynastyBossModel>().OnReceivePackage(package);
    }
}
Core/NetworkPackage/DTCFile/ServerPack/HB2_ActionMap/DTCB212_tagMCZhuXianBossCnt.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 387e6e44272f55646a66a4613419d3a6
timeCreated: 1548040998
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/ServerPack/HA0_Sys/HA007_tagGCFBLinePlayerCnt.cs
@@ -1,36 +1,35 @@
using UnityEngine;
using System.Collections;
// A0 07 副本地图功能线路人数 #tagGCFBLinePlayerCnt
public class HA007_tagGCFBLinePlayerCnt : GameNetPackBasic
{
    public uint MapID;    // 地图ID
    public byte Count;
    public tagGCFBLineInfo[] FBLineInfoList = null;
    public HA007_tagGCFBLinePlayerCnt()
    {
        _cmd = (ushort)0xA007;
    }
    public override void ReadFromBytes(byte[] vBytes)
    {
        TransBytes(out MapID, vBytes, NetDataType.DWORD);
        TransBytes(out Count, vBytes, NetDataType.BYTE);
        FBLineInfoList = new tagGCFBLineInfo[Count];
        for (int i = 0; i < Count; i++)
        {
            FBLineInfoList[i] = new tagGCFBLineInfo();
            TransBytes(out FBLineInfoList[i].FBLineID, vBytes, NetDataType.BYTE);
            TransBytes(out FBLineInfoList[i].PlayerCnt, vBytes, NetDataType.WORD);
        }
    }
    public struct tagGCFBLineInfo
    {
        public byte FBLineID;        // 功能线路ID
        public ushort PlayerCnt;        // 线路当前玩家数
    }
}
using UnityEngine;
using System.Collections;
// A0 07 副本地图功能线路人数 #tagGCFBLinePlayerCnt
public class HA007_tagGCFBLinePlayerCnt : GameNetPackBasic {
    public uint MapID;    // 地图ID
    public byte Count;
    public  tagGCFBLineInfo[] FBLineInfoList;
    public HA007_tagGCFBLinePlayerCnt () {
        _cmd = (ushort)0xA007;
    }
    public override void ReadFromBytes (byte[] vBytes) {
        TransBytes (out MapID, vBytes, NetDataType.DWORD);
        TransBytes (out Count, vBytes, NetDataType.BYTE);
        FBLineInfoList = new tagGCFBLineInfo[Count];
        for (int i = 0; i < Count; i ++) {
            FBLineInfoList[i] = new tagGCFBLineInfo();
            TransBytes (out FBLineInfoList[i].FBLineID, vBytes, NetDataType.BYTE);
            TransBytes (out FBLineInfoList[i].PlayerCnt, vBytes, NetDataType.WORD);
            TransBytes (out FBLineInfoList[i].ExtraStrLen, vBytes, NetDataType.WORD);
            TransBytes (out FBLineInfoList[i].ExtraStr, vBytes, NetDataType.Chars, FBLineInfoList[i].ExtraStrLen);
        }
    }
    public struct tagGCFBLineInfo {
        public byte FBLineID;        // 功能线路ID
        public ushort PlayerCnt;        // 线路当前玩家数
        public ushort ExtraStrLen;        // 长度
        public string ExtraStr;        // 额外信息
    }
}
Core/NetworkPackage/ServerPack/HB2_ActionMap/HB212_tagMCZhuXianBossCnt.cs
New file
@@ -0,0 +1,17 @@
using UnityEngine;
using System.Collections;
// B2 12 诛仙BOSS协助次数 #tagMCZhuXianBossCnt
public class HB212_tagMCZhuXianBossCnt : GameNetPackBasic {
    public byte Cnt;    // 剩余可协助次数
    public HB212_tagMCZhuXianBossCnt () {
        _cmd = (ushort)0xB212;
    }
    public override void ReadFromBytes (byte[] vBytes) {
        TransBytes (out Cnt, vBytes, NetDataType.BYTE);
    }
}
Core/NetworkPackage/ServerPack/HB2_ActionMap/HB212_tagMCZhuXianBossCnt.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: f511f09c68c0ae345a0208282471b83e
timeCreated: 1548040944
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/JadeDynastyBoss/JadeDynastyBossBehaviour.cs
@@ -81,18 +81,21 @@
            DisplayCondition();
            DisplaySubscrib();
            model.participantRefresh -= DisplayParticipant;
            model.participantRefresh += DisplayParticipant;
            model.bossLineRefresh -= DisplayParticipant;
            model.bossLineRefresh += DisplayParticipant;
            model.selectBossRefresh -= SelectBossRefresh;
            model.selectBossRefresh += SelectBossRefresh;
            model.bossLineRefresh -= BossLineRefresh;
            model.bossLineRefresh += BossLineRefresh;
        }
        public override void Dispose()
        {
            base.Dispose();
            model.participantRefresh -= DisplayParticipant;
            model.bossLineRefresh -= DisplayParticipant;
            model.selectBossRefresh -= SelectBossRefresh;
            model.bossLineRefresh -= BossLineRefresh;
        }
        protected override void OnSubscribe(int _bossId)
@@ -114,6 +117,11 @@
            m_Participant.gameObject.SetActive(unLocked && findPreciousModel.IsBossAlive(bossId));
        }
        private void BossLineRefresh()
        {
            DisplayParticipant();
        }
        public void DisplayBase()
        {
            var config = Config.Instance.Get<NPCConfig>(bossNpcId);
System/JadeDynastyBoss/JadeDynastyBossModel.cs
@@ -9,7 +9,7 @@
    public class JadeDynastyBossModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IAfterPlayerDataInitialize
    {
        List<JadeDynastyBossData> jadeDynastyBosses = new List<JadeDynastyBossData>();
        Dictionary<int, int> jadeDynastyBossParticipantDict = new Dictionary<int, int>();
        Dictionary<int, JadeDynastyBossLine> jadeDynastyBossLineDict = new Dictionary<int, JadeDynastyBossLine>();
        Dictionary<int, List<Item>> dropItemDict = new Dictionary<int, List<Item>>();
        public const int JADEDYNASTY_MAP = 31380;
@@ -17,7 +17,8 @@
        public const int JADEDYNASTY_REDPOINTID = 77003;
        public event Action<int> selectBossRefresh;
        public event Action participantRefresh;
        public event Action bossLineRefresh;
        public event Action assistTimeRefresh;
        public int jadeDynastyScore { get; private set; }
        public int challengeLimitCount { get; private set; }
@@ -59,15 +60,13 @@
        public void OnBeforePlayerDataInitialize()
        {
            jadeDynastyScore = 100000000;
            jadeDynastyBossParticipantDict.Clear();
            jadeDynastyBossLineDict.Clear();
            challengeTimes = 0;
            assistTimes = 0;
            mapModel.mapLinesUpdateEvent -= MapLinesUpdateEvent;
        }
        public void OnAfterPlayerDataInitialize()
        {
            mapModel.mapLinesUpdateEvent += MapLinesUpdateEvent;
        }
        public void OnPlayerLoginOk()
@@ -176,9 +175,18 @@
        public int GetParticipantCount(int bossId)
        {
            if (jadeDynastyBossParticipantDict.ContainsKey(bossId))
            var index = jadeDynastyBosses.FindIndex((x) =>
              {
                  return x.bossNpcId == bossId;
              });
            var lineId = -1;
            if (index != -1)
            {
                return jadeDynastyBossParticipantDict[bossId];
                lineId = jadeDynastyBosses[index].lineId;
            }
            if (jadeDynastyBossLineDict.ContainsKey(lineId))
            {
                return jadeDynastyBossLineDict[lineId].playerCount;
            }
            return 0;
        }
@@ -221,6 +229,20 @@
                condition = jadeDynastyBosses[index].challengeCondition;
            }
            return index != -1;
        }
        public bool TryGetBossLine(int bossId, out JadeDynastyBossLine mapLineState)
        {
            var index = jadeDynastyBosses.FindIndex((x) =>
            {
                return x.bossNpcId == bossId;
            });
            var lineId = -1;
            if (index != -1)
            {
                lineId = jadeDynastyBosses[index].lineId;
            }
            return jadeDynastyBossLineDict.TryGetValue(lineId, out mapLineState);
        }
        public bool TryEnterDungeon(int bossId,out int error)
@@ -291,33 +313,43 @@
            }
        }
        private void MapLinesUpdateEvent(int mapId)
        public void RequestMapLineState()
        {
            if (mapId != JADEDYNASTY_MAP)
            var pak = new CA003_tagPyGetLineState();
            pak.MapID = (uint)JADEDYNASTY_MAP;
            GameNetSystem.Instance.SendInfo(pak);
        }
        public void OnReceivePackage(HA007_tagGCFBLinePlayerCnt package)
        {
            if (package.MapID != JADEDYNASTY_MAP)
            {
                return;
            }
            var lines = mapModel.GetMapLines(JADEDYNASTY_MAP);
            foreach (var boss in jadeDynastyBosses)
            jadeDynastyBossLineDict.Clear();
            for (int i = 0; i < package.Count; i++)
            {
                var index = lines.FindIndex((x) =>
                var mapState = package.FBLineInfoList[i];
                jadeDynastyBossLineDict[mapState.FBLineID] = new JadeDynastyBossLine()
                {
                    return x.lineIndex == boss.lineId;
                });
                if (index != -1)
                {
                    jadeDynastyBossParticipantDict[boss.bossNpcId] = lines[index].playerCount;
                }
                else
                {
                    jadeDynastyBossParticipantDict[boss.bossNpcId] = 0;
                }
                    playerCount = mapState.PlayerCnt,
                    belongToPlayerName = mapState.ExtraStr,
                };
            }
            if (participantRefresh != null)
            if (bossLineRefresh != null)
            {
                participantRefresh();
                bossLineRefresh();
            }
        }
        public void OnReceivePackage(HB212_tagMCZhuXianBossCnt package)
        {
            assistTimes = package.Cnt;
            if (assistTimeRefresh != null)
            {
                assistTimeRefresh();
            }
        }
@@ -388,5 +420,11 @@
        public int realmLevel;
        public int score;
    }
    public struct JadeDynastyBossLine
    {
        public int playerCount;
        public string belongToPlayerName;
    }
}
System/JadeDynastyBoss/JadeDynastyBossWin.cs
@@ -36,9 +36,9 @@
        JadeDynastyBossModel model { get { return ModelCenter.Instance.GetModel<JadeDynastyBossModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
        MapModel mapModel { get { return ModelCenter.Instance.GetModel<MapModel>(); } }
        float refreshBossStateTime = 0f;
        DateTime lastRequestMapStateTime = DateTime.Now;
        #region Built-in
        protected override void BindController()
        {
@@ -67,7 +67,8 @@
                }
            }
            mapModel.RequestQueryMapLineState(JadeDynastyBossModel.JADEDYNASTY_MAP);
            lastRequestMapStateTime = DateTime.Now;
            model.RequestMapLineState();
            model.assginSelectBossId = 0;
        }
@@ -85,6 +86,8 @@
            dungeonModel.dungeonRecordChangeEvent += ChallengeTimesRefresh;
            findPreciousModel.bossSubscribeChangeEvent += DisplaySubscribe;
            findPreciousModel.bossInfoUpdateEvent += BossInfoUpdateEvent;
            model.bossLineRefresh += BossLineRefresh;
            model.assistTimeRefresh += AssistTimeRefresh;
        }
        protected override void OnPreClose()
@@ -94,6 +97,8 @@
            dungeonModel.dungeonRecordChangeEvent -= ChallengeTimesRefresh;
            findPreciousModel.bossSubscribeChangeEvent -= DisplaySubscribe;
            findPreciousModel.bossInfoUpdateEvent -= BossInfoUpdateEvent;
            model.bossLineRefresh -= BossLineRefresh;
            model.assistTimeRefresh -= AssistTimeRefresh;
            refreshBossStateTime = -1f;
        }
@@ -113,6 +118,12 @@
                    DisplayBelongTo();
                    refreshBossStateTime = -1f;
                }
            }
            if ((DateTime.Now - lastRequestMapStateTime).TotalSeconds >= 5f)
            {
                lastRequestMapStateTime = DateTime.Now;
                model.RequestMapLineState();
            }
        }
        #endregion
@@ -188,8 +199,13 @@
            }
            var npcDropConfig = Config.Instance.Get<NPCDropItemConfig>(model.selectBossId);
            m_SurpassLevel.gameObject.SetActive(npcDropConfig.MaxLV != 0
                && PlayerDatas.Instance.baseData.LV > npcDropConfig.MaxLV);
            var dropMaxLevel = 0;
            if (npcDropConfig != null)
            {
                dropMaxLevel = npcDropConfig.MaxLV;
            }
            m_SurpassLevel.gameObject.SetActive(dropMaxLevel != 0
                   && PlayerDatas.Instance.baseData.LV > dropMaxLevel);
        }
        private void DisplaySubscribe(int _bossId)
@@ -231,8 +247,20 @@
            if (alive)
            {
                var belongToPlayer = false;
                JadeDynastyBossLine jadeDynastyBossLine;
                if (model.TryGetBossLine(model.selectBossId, out jadeDynastyBossLine))
                {
                    if (!string.IsNullOrEmpty(jadeDynastyBossLine.belongToPlayerName))
                    {
                        belongToPlayer = true;
                    }
                }
                m_BelongToNonePlayer.gameObject.SetActive(!belongToPlayer);
                m_BelongToPlayerName.gameObject.SetActive(belongToPlayer);
                if (belongToPlayer)
                {
                    m_BelongToPlayerName.text = jadeDynastyBossLine.belongToPlayerName;
                }
            }
        }
@@ -259,6 +287,16 @@
            }
        }
        private void BossLineRefresh()
        {
            DisplayBelongTo();
        }
        private void AssistTimeRefresh()
        {
            DisplayAssistTimes();
        }
        private void ChallengeTimesRefresh()
        {
            DisplayChallengeTimes();