少年修仙传客户端代码仓库
client_linchunjie
2019-04-22 4ff111f0bea461823f6b5dd2d254533422f1049d
3335 查询副本人数封包修改
6个文件已修改
232 ■■■■ 已修改文件
Core/NetworkPackage/ClientPack/ClientToGameServer/CA0_Sys/CA007_tagGCFBLinePlayerCnt.cs 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/SnxxzUIMapModelWrap.cs 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionIncidentBehaviour.cs 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionIncidentPanel.cs 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionModel.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WorldMap/MapModel.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ClientPack/ClientToGameServer/CA0_Sys/CA007_tagGCFBLinePlayerCnt.cs
@@ -1,25 +1,41 @@
using UnityEngine;
using System.Collections;
// A0 04 查询副本功能线路人数 #tagCGGetFBLinePlayerCnt
public class CA004_tagCGGetFBLinePlayerCnt : GameNetPackBasic
{
    public uint MapID;
    public byte FBLineID;
    public byte IsAllLine;
    public CA004_tagCGGetFBLinePlayerCnt()
    {
        combineCmd = (ushort)0x1801;
        _cmd = (ushort)0xA004;
    }
    public override void WriteToBytes()
    {
        WriteBytes(MapID, NetDataType.DWORD);
        WriteBytes(FBLineID, NetDataType.BYTE);
        WriteBytes(IsAllLine, NetDataType.BYTE);
    }
using UnityEngine;
using System.Collections;
// A0 04 查询副本功能线路人数 #tagCGGetFBLinePlayerCnt
public class CA004_tagCGGetFBLinePlayerCnt : GameNetPackBasic
{
    public uint MapID;
    public byte LineCount;
    public byte[] LineIDList;    //个数为0时代表全部
    public CA004_tagCGGetFBLinePlayerCnt()
    {
        combineCmd = (ushort)0x1801;
        _cmd = (ushort)0xA004;
    }
    public override void WriteToBytes()
    {
        WriteBytes(MapID, NetDataType.DWORD);
        WriteBytes(LineCount, NetDataType.BYTE);
        WriteBytes(LineIDList, NetDataType.BYTE, LineCount);
    }
}
Lua/Gen/SnxxzUIMapModelWrap.cs
@@ -31,7 +31,6 @@
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "OnMapInitOk", _m_OnMapInitOk);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "RequestMapTransport", _m_RequestMapTransport);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "RequestSelectedLine", _m_RequestSelectedLine);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "RequestQueryMapLineState", _m_RequestQueryMapLineState);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetMapLines", _m_GetMapLines);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "UpdateMapLines", _m_UpdateMapLines);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "UpdateDungeonMapLines", _m_UpdateDungeonMapLines);
@@ -331,61 +330,6 @@
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_RequestQueryMapLineState(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                Snxxz.UI.MapModel gen_to_be_invoked = (Snxxz.UI.MapModel)translator.FastGetCSObj(L, 1);
                int gen_param_count = LuaAPI.lua_gettop(L);
                if(gen_param_count == 4&& LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 2)&& LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 3)&& LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 4))
                {
                    int __mapId = LuaAPI.xlua_tointeger(L, 2);
                    int __lineId = LuaAPI.xlua_tointeger(L, 3);
                    bool __isAllLine = LuaAPI.lua_toboolean(L, 4);
                    gen_to_be_invoked.RequestQueryMapLineState( __mapId, __lineId, __isAllLine );
                    return 0;
                }
                if(gen_param_count == 3&& LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 2)&& LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 3))
                {
                    int __mapId = LuaAPI.xlua_tointeger(L, 2);
                    int __lineId = LuaAPI.xlua_tointeger(L, 3);
                    gen_to_be_invoked.RequestQueryMapLineState( __mapId, __lineId );
                    return 0;
                }
                if(gen_param_count == 2&& LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 2))
                {
                    int __mapId = LuaAPI.xlua_tointeger(L, 2);
                    gen_to_be_invoked.RequestQueryMapLineState( __mapId );
                    return 0;
                }
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
            return LuaAPI.luaL_error(L, "invalid arguments to Snxxz.UI.MapModel.RequestQueryMapLineState!");
            
        }
        
System/HazyRegion/HazyRegionIncidentBehaviour.cs
@@ -52,13 +52,16 @@
                {
                    m_BossAlive = value;
                    DisplayBossState();
                    if (m_BossAlive)
                    {
                        model.incidentDirty = true;
                    }
                }
            }
        }
        float timer = 0f;
        DateTime requestPlayerCountTime = DateTime.Now;
        HazyRegionIncidentType incidentType = HazyRegionIncidentType.Adventure;
@@ -167,7 +170,6 @@
                    }
                    else
                    {
                        SendRequestPlayerCount();
                        DisplayPlayerCount();
                    }
                }
@@ -217,14 +219,6 @@
                    var config = HazyRegionConfig.Get(incidentId);
                    bossAlive = findPreciousModel.IsBossAlive(config.npcId);
                    if (bossAlive)
                    {
                        if ((DateTime.Now - requestPlayerCountTime).TotalSeconds > 5)
                        {
                            SendRequestPlayerCount();
                        }
                    }
                }
            }
        }
@@ -236,21 +230,6 @@
            {
                m_ContainerCompleted.gameObject.SetActive(incident.state == HazyRegionModel.IncidentState.Complete);
                m_ContainerProcessing.gameObject.SetActive(incident.state == HazyRegionModel.IncidentState.Processing);
            }
        }
        void SendRequestPlayerCount()
        {
            var config = HazyRegionConfig.Get(incidentId);
            if (config != null && config.incidentType == (int)HazyRegionIncidentType.DemonKing
                && !model.InFakeHazyRegion)
            {
                var pak = new CA004_tagCGGetFBLinePlayerCnt();
                pak.MapID = (uint)config.dungeonId;
                pak.FBLineID = (byte)config.lineId;
                GameNetSystem.Instance.SendInfo(pak);
                requestPlayerCountTime = DateTime.Now;
            }
        }
System/HazyRegion/HazyRegionIncidentPanel.cs
@@ -20,6 +20,12 @@
        HazyRegionModel model { get { return ModelCenter.Instance.GetModel<HazyRegionModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
        FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
        DateTime requestTime = DateTime.Now;
        int requestCount = 0;
        float timer = 0f;
        Dictionary<int, List<byte>> requestLines = new Dictionary<int, List<byte>>();
        private void Awake()
        {
@@ -32,6 +38,10 @@
            DisplayPoint();
            DisplayIncidents();
            DisplayBackButton();
            requestCount = 0;
            model.incidentDirty = false;
            SendRequestPlayerCount();
        }
        void DisplayIncidents()
@@ -193,6 +203,70 @@
            }
        }
        private void LateUpdate()
        {
            timer += Time.deltaTime;
            if (timer >= 0.5f && !model.InFakeHazyRegion)
            {
                if (model.incidentDirty)
                {
                    model.incidentDirty = false;
                    requestCount = 0;
                    requestTime = DateTime.Now;
                    SendRequestPlayerCount();
                    return;
                }
                timer = 0f;
                if ((DateTime.Now - requestTime).TotalSeconds > 5
                    && requestCount < 10)
                {
                    SendRequestPlayerCount();
                }
            }
        }
        void SendRequestPlayerCount()
        {
            requestLines.Clear();
            if (model.InFakeHazyRegion)
            {
                return;
            }
            for (int i = 0; i < incidents.Count; i++)
            {
                var config = HazyRegionConfig.Get(incidents[i]);
                if (config.incidentType != (int)HazyRegionIncidentType.DemonKing)
                {
                    continue;
                }
                if (findPreciousModel.IsBossAlive(config.npcId))
                {
                    if (!requestLines.ContainsKey(config.dungeonId))
                    {
                        requestLines.Add(config.dungeonId, new List<byte>());
                    }
                    if (!requestLines[config.dungeonId].Contains((byte)config.lineId))
                    {
                        requestLines[config.dungeonId].Add((byte)config.lineId);
                    }
                }
            }
            if (requestLines.Count > 0)
            {
                foreach (var mapId in requestLines.Keys)
                {
                    var pak = new CA004_tagCGGetFBLinePlayerCnt();
                    pak.MapID = (uint)mapId;
                    pak.LineCount = (byte)requestLines[mapId].Count;
                    pak.LineIDList = requestLines[mapId].ToArray();
                    GameNetSystem.Instance.SendInfo(pak);
                }
                requestCount++;
                requestTime = DateTime.Now;
            }
        }
        public void Dispose()
        {
            m_CyclicScroll.Dispose();
System/HazyRegion/HazyRegionModel.cs
@@ -20,6 +20,7 @@
        public int fakeOpenTimes { get; private set; }
        public bool isServerPrepare { get; private set; }
        public bool requireIncidentAnimation { get; set; }
        public bool incidentDirty { get; set; }
        int m_SelectIncident;
        public int selectIncident
System/WorldMap/MapModel.cs
@@ -147,7 +147,7 @@
            }
        }
        public void RequestQueryMapLineState(int _mapId, int _lineId = 0, bool _isAllLine = true)
        public void RequestQueryMapLineState(int _mapId, byte[] _lineIds = null, bool _isAllLine = true)
        {
            var config = MapConfig.Get(_mapId);
            if (config.MapFBType == (int)MapType.OpenCountry)
@@ -160,10 +160,10 @@
            {
                var lineState = new CA004_tagCGGetFBLinePlayerCnt();
                lineState.MapID = (uint)_mapId;
                lineState.IsAllLine = (byte)(_isAllLine ? 1 : 0);
                lineState.LineCount = (byte)(_isAllLine ? 0 : _lineIds.Length);
                if (_isAllLine)
                {
                    lineState.FBLineID = (byte)_lineId;
                    lineState.LineIDList = new byte[0];
                }
                GameNetSystem.Instance.SendInfo(lineState);
            }