少年修仙传客户端代码仓库
client_Hale
2019-04-08 f46aa42023bfffad6209e7015d45ec334369e2a0
382 地图编辑器json存储逻辑
6个文件已修改
300 ■■■■ 已修改文件
Core/MapEditor/Behavior/Bhv_Evt_RefreshMonster.cs 73 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/MapEditor/Behavior/Bhv_MapData.cs 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/MapEditor/Behavior/Bhv_TransferPoint.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/MapEditor/Behavior/Bhv_Trasfer.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/MapEditor/Editor/MapEditor.cs 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/RuntimeLogUtility.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/MapEditor/Behavior/Bhv_Evt_RefreshMonster.cs
@@ -49,11 +49,6 @@
        public override void SaveJson(StringBuilder stringBuilder)
        {
            // bw.Write((byte)type);
            // bw.Write(id);
            // bw.Write((float)System.Math.Round(transform.position.x, 2));
            // bw.Write((float)System.Math.Round(transform.position.y, 2));
            // bw.Write((float)System.Math.Round(transform.position.z, 2));
            stringBuilder.Append("{");
            stringBuilder.Append("\"type\":").Append((byte)type).Append(",");
            stringBuilder.Append("\"id\":").Append((byte)type).Append(",");
@@ -81,20 +76,47 @@
        public override void LoadJson(JsonData json)
        {
        }
        public override void Export(BinaryWriter bw)
        {
            base.Export(bw);
            bw.Write((byte)overCondition);
            bw.Write((byte)refreshType);
            bw.Write(conditionParam);
            bw.Write(overParam);
            bw.Write(nextEventID);
            bw.Write(monsterList.Count);
            foreach (var _monster in monsterList)
            type = (Evt.E_EventType)(byte)json["type"];
            id = (int)json["id"];
            float _pX = (float)json["px"];
            float _pY = (float)json["py"];
            float _pZ = (float)json["pz"];
            transform.position = new Vector3(_pX, _pY, _pZ);
            overCondition = (Evt_RefreshMonster.E_OverCondition)(byte)json["overCondition"];
            refreshType = (Evt_RefreshMonster.E_RefreshType)(byte)json["refreshType"];
            conditionParam = (int)json["conditionParam"];
            overParam = (int)json["overParam"];
            nextEventID = (int)json["nextEventID"];
            var _monsterList = json["monsterList"];
            for (int i = 0; i < _monsterList.Count; ++i)
            {
                _monster.Export(bw);
                var _resName = _monsterList[i]["resName"].ToString();
                GameObject _go = null;
                if (!string.IsNullOrEmpty(_resName.Trim()))
                {
                    string _path = "Assets/ResourcesOut/Mob/Prefab_Race_" + _resName + ".prefab";
                    _go = AssetDatabase.LoadAssetAtPath<GameObject>(_path);
                    if (_go)
                    {
                        _go = Instantiate(_go);
                    }
                }
                else
                {
                    _go = GameObject.CreatePrimitive(PrimitiveType.Capsule);
                }
                _go.transform.SetParent(transform);
                _go.transform.localPosition = Vector3.zero;
                _go.transform.eulerAngles = Vector3.zero;
                _go.transform.localScale = Vector3.one;
                var _monsterData = _go.AddComponent<Bhv_MonsterData>();
                _monsterData.resName = _resName;
                monsterList.Add(_monsterData);
                _monsterData.LoadJson(_monsterList[i]);
            }
        }
@@ -139,6 +161,21 @@
            }
        }
        public override void Export(BinaryWriter bw)
        {
            base.Export(bw);
            bw.Write((byte)overCondition);
            bw.Write((byte)refreshType);
            bw.Write(conditionParam);
            bw.Write(overParam);
            bw.Write(nextEventID);
            bw.Write(monsterList.Count);
            foreach (var _monster in monsterList)
            {
                _monster.Export(bw);
            }
        }
        public override bool DrawUI(GUISkin guiSkin)
        {
            bool _result = false;
Core/MapEditor/Behavior/Bhv_MapData.cs
@@ -90,8 +90,7 @@
                    triggerList[i].SaveJson(_stringBuilder);
                }
            }
            _stringBuilder.Append("]");
            _stringBuilder.Append("},");
            _stringBuilder.Append("],");
            _stringBuilder.Append("\"eventList\": [");
            if (eventList.Count > 0)
            {
@@ -100,6 +99,17 @@
                {
                    _stringBuilder.Append(",");
                    eventList[i].SaveJson(_stringBuilder);
                }
            }
            _stringBuilder.Append("],");
            _stringBuilder.Append("\"transferList\": [");
            if (transferList.Count > 0)
            {
                transferList[0].SaveJson(_stringBuilder);
                for (int i = 1; i < transferList.Count; ++i)
                {
                    _stringBuilder.Append(",");
                    transferList[i].SaveJson(_stringBuilder);
                }
            }
            _stringBuilder.Append("]");
@@ -131,6 +141,69 @@
            }
        }
        public void LoadJson(LitJson.JsonData json)
        {
            id = (int)json["id"];
            var _triggerList = json["triggerList"];
            GameObject _go = null;
            if (_triggerList.Count > 0)
            {
                for (int i = 0; i < _triggerList.Count; ++i)
                {
                    _go = new GameObject(NodeName_Trigger + i);
                    _go.transform.position = Vector3.zero;
                    _go.transform.eulerAngles = Vector3.zero;
                    _go.transform.localScale = Vector3.one;
                    var _triggerBhv = _go.AddComponent<Bhv_MapTrigger>();
                    _triggerBhv.boxCollider = _go.AddComponent<BoxCollider>();
                    _triggerBhv.transform.SetParent(transform.Find(NodeName_TriggerList));
                    triggerList.Add(_triggerBhv);
                    _triggerBhv.LoadJson(_triggerList[i]);
                }
            }
            var _eventList = json["eventList"];
            if (_eventList.Count > 0)
            {
                for (int i = 0; i < _eventList.Count; ++i)
                {
                    _go = new GameObject(NodeName_Event + i);
                    _go.transform.position = Vector3.zero;
                    _go.transform.eulerAngles = Vector3.zero;
                    _go.transform.localScale = Vector3.one;
                    var _type = (Evt.E_EventType)(byte)_eventList[i]["type"];//br.ReadByte();
                    if (_type == Evt.E_EventType.Enemy)
                    {
                        var _eventBhv = _go.AddComponent<Bhv_Evt_RefreshMonster>();
                        _eventBhv.type = _type;
                        _eventBhv.transform.SetParent(transform.Find(NodeName_EventList));
                        eventList.Add(_eventBhv);
                        _eventBhv.LoadJson(_eventList[i]);
                    }
                    else if (_type == Evt.E_EventType.SceneObject)
                    {
                        var _eventBhv = _go.AddComponent<Bhv_Evt_RefreshSceneObject>();
                        _eventBhv.type = _type;
                        _eventBhv.transform.SetParent(transform.Find(NodeName_EventList));
                        eventList.Add(_eventBhv);
                        _eventBhv.LoadJson(_eventList[i]);
                    }
                }
            }
            var _transferList = json["transferList"];
            for (int i = 0; i < _transferList.Count; ++i)
            {
                _go = new GameObject(NodeName_Transfer + i);
                _go.transform.position = Vector3.zero;
                _go.transform.eulerAngles = Vector3.zero;
                _go.transform.localScale = Vector3.one;
                var _transferBhv = _go.AddComponent<Bhv_Trasfer>();
                _transferBhv.transform.SetParent(transform.Find(NodeName_TransferList));
                transferList.Add(_transferBhv);
                _transferBhv.LoadJson(_transferList[i]);
            }
        }
        public void Load(BinaryReader br)
        {
            id = br.ReadInt32();
Core/MapEditor/Behavior/Bhv_TransferPoint.cs
@@ -32,6 +32,45 @@
            bw.Write((float)System.Math.Round(capsuleCollider.radius, 2));
        }
        public void SaveJson(System.Text.StringBuilder stringBuilder)
        {
            stringBuilder.Append("{");
            stringBuilder.Append("\"effectID\":").Append(effectID).Append(",");
            stringBuilder.Append("\"stateNameFront\":\"").Append(stateNameFront).Append("\",");
            stringBuilder.Append("\"flyTimeFront\":").Append(flyTimeFront).Append(",");
            stringBuilder.Append("\"stateNameBack\":\"").Append(stateNameBack).Append("\",");
            stringBuilder.Append("\"flyTimeBack\":").Append(flyTimeBack).Append(",");
            stringBuilder.Append("\"px\":").Append((float)System.Math.Round(transform.position.x, 2)).Append(",");
            stringBuilder.Append("\"py\":").Append((float)System.Math.Round(transform.position.y, 2)).Append(",");
            stringBuilder.Append("\"pz\":").Append((float)System.Math.Round(transform.position.z, 2)).Append(",");
            stringBuilder.Append("\"r\":").Append((float)System.Math.Round(capsuleCollider.radius, 2));
            stringBuilder.Append("}");
        }
        public void LoadJson(LitJson.JsonData json)
        {
            effectID = (int)json["effectID"];
            stateNameFront = json["stateNameFront"].ToString();
            flyTimeFront = (int)json["flyTimeFront"];
            stateNameBack = json["stateNameBack"].ToString();
            flyTimeBack = (int)json["flyTimeBack"];
            float _pX = (float)json["px"];
            float _pY = (float)json["py"];
            float _pZ = (float)json["pz"];
            transform.position = new Vector3(_pX, _pY, _pZ);
            float _r = (float)json["r"];
            capsuleCollider.radius = _r;
            if (EffectConfig.Has(effectID))
            {
                var _prefab = InstanceResourcesLoader.LoadEffect(effectID);
                Effect = Instantiate(_prefab);
                Effect.transform.SetParent(transform);
                Effect.transform.localPosition = Vector3.zero;
                Effect.transform.localScale = Vector3.one;
                Effect.transform.rotation = Quaternion.identity;
            }
        }
        public void Load(BinaryReader br)
        {
            effectID = br.ReadInt32();
Core/MapEditor/Behavior/Bhv_Trasfer.cs
@@ -34,6 +34,45 @@
            }
        }
        public void SaveJson(System.Text.StringBuilder stringBuilder)
        {
            stringBuilder.Append("{");
            stringBuilder.Append("\"transferType\":").Append((byte)transferType).Append(",");
            stringBuilder.Append("\"param\":").Append(param).Append(",");
            stringBuilder.Append("\"pointList\":[");
            if (pointList.Count > 0)
            {
                pointList[0].SaveJson(stringBuilder);
                for (int i = 1; i < pointList.Count; ++i)
                {
                    stringBuilder.Append(",");
                    pointList[i].SaveJson(stringBuilder);
                }
            }
            stringBuilder.Append("]");
            stringBuilder.Append("}");
        }
        public void LoadJson(LitJson.JsonData json)
        {
            transferType = (MapTrasfer.E_TransferType)(byte)json["transferType"];
            param = (int)json["param"];
            var _pointList = json["pointList"];
            for (int i = 0; i < _pointList.Count; ++i)
            {
                var _go = new GameObject(pointList.Count + "_TransferPoint");
                _go.transform.SetParent(transform);
                _go.transform.localPosition = Vector3.zero;
                _go.transform.eulerAngles = Vector3.zero;
                _go.transform.localScale = Vector3.one;
                var _transferPoint = _go.AddComponent<Bhv_TransferPoint>();
                _transferPoint.capsuleCollider = _go.AddComponent<CapsuleCollider>();
                pointList.Add(_transferPoint);
                _transferPoint.LoadJson(_pointList[i]);
            }
        }
        public void Export(BinaryWriter bw)
        {
            bw.Write((byte)transferType);
Core/MapEditor/Editor/MapEditor.cs
@@ -328,47 +328,18 @@
        private void SaveJson()
        {
            var _mapData = target as Bhv_MapData;
            // string _defaultPath = EditorPrefs.GetString(LS_KEY_SAVEPATH, System.Environment.CurrentDirectory);
            // string _path = EditorUtility.SaveFilePanel("保存数据", _defaultPath, "map_" + _mapData.id, "ed");
            // if (string.IsNullOrEmpty(_path))
            // {
            //     return;
            // }
            // LitJson.JsonMapper.RegisterExporter<System.Type>((v, w) =>
            // {
            //     w.Write(v.FullName);
            // });
            // LitJson.JsonMapper.RegisterImporter<string, System.Type>((s) =>
            // {
            //     return System.Type.GetType(s);
            // });
            // System.Action<Vector3, LitJson.JsonWriter> writeVector3 = (v, w) =>
            // {
            //     w.WriteObjectStart();
            //     w.WritePropertyName("x");
            //     w.Write((float)v.x);
            //     w.WritePropertyName("y");
            //     w.Write((float)v.y);
            //     w.WritePropertyName("z");
            //     w.Write((float)v.z);
            //     w.WriteObjectEnd();
            // };
            // LitJson.JsonMapper.RegisterExporter<Vector3>((v, w) =>
            // {
            //     writeVector3(v, w);
            // });
            // LitJson.UnityTypeBindings.Register();
            // var _json = LitJson.JsonMapper.ToJson(_mapData);
            Debug.Log(_mapData.SaveJson());
            string _defaultPath = EditorPrefs.GetString(LS_KEY_SAVEPATH, System.Environment.CurrentDirectory);
            string _path = EditorUtility.SaveFilePanel("保存数据", _defaultPath, "map_" + _mapData.id, "json");
            if (string.IsNullOrEmpty(_path))
            {
                return;
            }
            File.WriteAllText(_path, _mapData.SaveJson());
        }
        private class _JsonWritter : LitJson.JsonWriter
        private void LoadJson()
        {
            var _mapData = target as Bhv_MapData;
        }
Utility/RuntimeLogUtility.cs
@@ -187,8 +187,9 @@
    private int _param2;
    private Vector2 _start;
    private Vector2 _end;
    private int _triggerID;
    private Vector3 _start3;
    private Vector3 _end3;
    private int _triggerID = 8;
    public override void OnInspectorGUI()
    {
@@ -198,16 +199,17 @@
        _triggerID = EditorGUILayout.IntField("触发器ID", _triggerID);
        if (GUILayout.Button("触发客户端触发器"))
        {
            // ClientSceneManager.Instance.TriggerTest(_triggerID);
            GA_NpcFunc.SetNpcFuncVisible(10104003, true);
        }
        EditorGUILayout.EndHorizontal();
        if (GUILayout.Button("清空任务"))
        _start3 = EditorGUILayout.Vector3Field("起点: ", _start3);
        _end3 = EditorGUILayout.Vector3Field("终点: ", _end3);
        if (GUILayout.Button("测试寻路"))
        {
            CA225_tagCMClientTaskCount _a225 = new CA225_tagCMClientTaskCount
            {
                CountID = 10000
            };
            GameNetSystem.Instance.SendInfo(_a225);
            Debug.Log(PathFinder.WalkAble(_start3, _end3));
        }
        EditorGUILayout.LabelField("Log存储路径", RuntimeLogUtility.s_LogPath);
@@ -237,9 +239,12 @@
        if (GUILayout.Button("创建PVP敌方"))
        {
            var _npc = GAMgr.Instance.ReqClntFightNpc<GA_NpcClientFightNorm>(10101003, E_ActorGroup.Enemy);
            // var _npc = GAMgr.Instance.ReqClntFightNpc<GA_NpcClientFightNorm>(10101003, E_ActorGroup.Enemy);
            // _npc.BornPos = _npc.Pos = PlayerDatas.Instance.hero.Pos;
            // _npc.ActorInfo.ResetHp(9999999, -1, 9999999);
            var _npc = GAMgr.Instance.ReqClntFightNpc<GA_NpcClientFightBoss>(10103001, E_ActorGroup.Enemy);
            _npc.BornPos = _npc.Pos = PlayerDatas.Instance.hero.Pos;
            _npc.ActorInfo.ResetHp(9999999, -1, 9999999);
            // GActorPlayerBase.PlayerInfo _playerInfo = new GActorPlayerBase.PlayerInfo();
            // _playerInfo.maxHp = (uint)PlayerDatas.Instance.extersion.MaxMP;