diff --git a/.gitignore b/.gitignore index 9e057ca5d07..3d7a6915d92 100644 --- a/.gitignore +++ b/.gitignore @@ -85,4 +85,5 @@ ProjectNLD/Assets/HotUpdateDlls/MetaDataDll #Addressables ProjectNLD/ServerData/ -*.tgz \ No newline at end of file +*.tgz +/Tool/Luban/Datas diff --git a/Tool/Luban/.cache.meta b/Tool/Luban/.cache.meta new file mode 100644 index 00000000000..800554ccabe --- /dev/null +++ b/Tool/Luban/.cache.meta @@ -0,0 +1,32 @@ +C:/Users/82158/Perforce/liutao_LT-Work_ProjectNLD_main_1/ProjectNLD/Assets/Code/Scripts/Gameplay/DataTable/ActorCfg/ItemType.cs,89B22DA9CBF1836DA2C775D6AA3942D,855,1690371134295 +C:/Users/82158/Perforce/liutao_LT-Work_ProjectNLD_main_1/ProjectNLD/Assets/Code/Scripts/Gameplay/DataTable/ActorCfg/ValueItemType.cs,4CC6654B5ED543CCFD0F81E3456927,730,1690371134303 +C:/Users/82158/Perforce/liutao_LT-Work_ProjectNLD_main_1/ProjectNLD/Assets/Code/Scripts/Gameplay/DataTable/AreaCfg/EAreaType.cs,7BA183481291A52E615C148A5F59AE7B,523,1690371134302 +C:/Users/82158/Perforce/liutao_LT-Work_ProjectNLD_main_1/ProjectNLD/Assets/Code/Scripts/Gameplay/DataTable/BuffCfg/EBuffType.cs,D665732DBAA1A0E2BC589CD674FB69E0,911,1690371134306 +C:/Users/82158/Perforce/liutao_LT-Work_ProjectNLD_main_1/ProjectNLD/Assets/Code/Scripts/Gameplay/DataTable/BuffCfg/EExistType.cs,2D091A34ACE816A289ABCF8212581,700,1690371134296 +C:/Users/82158/Perforce/liutao_LT-Work_ProjectNLD_main_1/ProjectNLD/Assets/Code/Scripts/Gameplay/DataTable/BuffCfg/ETriggerType.cs,AE71FC673AF158F6BBE916E5218D2C3,709,1690371134301 +C:/Users/82158/Perforce/liutao_LT-Work_ProjectNLD_main_1/ProjectNLD/Assets/Code/Scripts/Gameplay/DataTable/BulletCfg/EBulletTargetType.cs,4E8F4DF21357EDCDA093461EF15EAB2,711,1690371134305 +C:/Users/82158/Perforce/liutao_LT-Work_ProjectNLD_main_1/ProjectNLD/Assets/Code/Scripts/Gameplay/DataTable/CharacterCfg/Army.cs,C14FA7B4FDE16A5D12D47AB11A23C2C,783,1690371134308 +C:/Users/82158/Perforce/liutao_LT-Work_ProjectNLD_main_1/ProjectNLD/Assets/Code/Scripts/Gameplay/DataTable/CharacterCfg/Efaction.cs,1FAE991E399A9242B66F24C3197C1FA,799,1690371134306 +C:/Users/82158/Perforce/liutao_LT-Work_ProjectNLD_main_1/ProjectNLD/Assets/Code/Scripts/Gameplay/DataTable/CharacterCfg/Ejob.cs,BAE7E98626D96F07F85434146F551,921,1690371134297 +C:/Users/82158/Perforce/liutao_LT-Work_ProjectNLD_main_1/ProjectNLD/Assets/Code/Scripts/Gameplay/DataTable/CharacterCfg/EShootMode.cs,3F9F486255E7B3DA5FA43813A333D,615,1690371134304 +C:/Users/82158/Perforce/liutao_LT-Work_ProjectNLD_main_1/ProjectNLD/Assets/Code/Scripts/Gameplay/DataTable/CharacterCfg/EWeapon.cs,6AB4655FCACE8281837A4DC6ED13B847,770,1690371134296 +C:/Users/82158/Perforce/liutao_LT-Work_ProjectNLD_main_1/ProjectNLD/Assets/Code/Scripts/Gameplay/DataTable/SkillCfg/ESkillType.cs,753DE12FC43FCE71D488FAD3157BBE4C,608,1690371134298 +C:/Users/82158/Perforce/liutao_LT-Work_ProjectNLD_main_1/ProjectNLD/Assets/Code/Scripts/Gameplay/DataTable/SkillCfg/ETargetType.cs,A046FF6CE3DC31638E2BE1EB82DE6C1C,898,1690371134295 +C:/Users/82158/Perforce/liutao_LT-Work_ProjectNLD_main_1/ProjectNLD/Assets/Config/Data/charactercfg_characterattri.json,C84BCFF556AAC941B8DF9A2CAB05AC8,25187,1690440666100 +C:/Users/82158/Perforce/MiscNLD/config/Datas/__beans__.xlsx,1FB5D353478A118E335F234A4FE2B5C,10303,1690435392313 +C:/Users/82158/Perforce/MiscNLD/config/Datas/__enums__.xlsx,2AF124B9C6BACAC1E18BABC4F7F7E758,13514,1690444887326 +C:/Users/82158/Perforce/MiscNLD/config/Datas/__tables__.xlsx,2EAD6952E642CDF507D75A5B7F3DEF,12723,1690444887097 +C:/Users/82158/Perforce/MiscNLD/config/Datas/ActorBorn.xlsx,6E1C769C2DFE16DBFFF698480424A5F,10653,1690444887212 +C:/Users/82158/Perforce/MiscNLD/config/Datas/BuffConfig.xlsx,6C91CE2946B4C9556C99B3053B8D787,23771,1690444887302 +C:/Users/82158/Perforce/MiscNLD/config/Datas/BulletConfig.xlsx,4530153340EB7B7814BB0B9AD9D93C1,24741,1690444887338 +C:/Users/82158/Perforce/MiscNLD/config/Datas/CharacterBreak.xlsx,A33DF20950B67479C83B543CBD134,17741,1690444887512 +C:/Users/82158/Perforce/MiscNLD/config/Datas/CharacterDefault.xlsx,9A62C3B318490D1EB7EB98A4C1698A,29737,1690444887312 +C:/Users/82158/Perforce/MiscNLD/config/Datas/CharacterLevelExp.xlsx,80E74EB2AFA7F1B334A8D489FED41C13,11558,1690444887328 +C:/Users/82158/Perforce/MiscNLD/config/Datas/EffectConfig.xlsx,BFF6C17CE3BE091FE84A7391B54AF2,25355,1690444887379 +C:/Users/82158/Perforce/MiscNLD/config/Datas/GlobalConfig.xlsx,ED264F6CDA5A0FB84820738B6F39C6,14495,1690444887352 +C:/Users/82158/Perforce/MiscNLD/config/Datas/InfluenceAreaConfig.xlsx,CDAB22883A7D8E44D0378423D2D9833,22615,1690444887690 +C:/Users/82158/Perforce/MiscNLD/config/Datas/Item.xlsx,1D4962FAE48A5615659593AFD69350,17800,1690444887363 +C:/Users/82158/Perforce/MiscNLD/config/Datas/ModelSpeed.xlsx,F8D9C729F1B8525FA6C0E2841A259CB1,9541,1690435379416 +C:/Users/82158/Perforce/MiscNLD/config/Datas/SkillConfig.xlsx,AEABCC7B3C82616DA3B6A1A4CFE17288,26018,1690444887167 +C:/Users/82158/Perforce/MiscNLD/config/Datas/StringConfig.xlsx,83B75145F2724B31CCC786CF63EBC67,16576,1690444887222 +C:/Users/82158/Perforce/MiscNLD/config/Datas/SummonConfig.xlsx,C89E4F350F3E7ECB34463BBC44EE23,23513,1690444887240 diff --git a/Tool/Luban/Datas/AConfigList.xlsx b/Tool/Luban/Datas/AConfigList.xlsx deleted file mode 100644 index e9d42fba241..00000000000 Binary files a/Tool/Luban/Datas/AConfigList.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/ActorBorn.xlsx b/Tool/Luban/Datas/ActorBorn.xlsx deleted file mode 100644 index 425e44c5ed7..00000000000 Binary files a/Tool/Luban/Datas/ActorBorn.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/BuffConfig.xlsx b/Tool/Luban/Datas/BuffConfig.xlsx deleted file mode 100644 index 0fb82511a08..00000000000 Binary files a/Tool/Luban/Datas/BuffConfig.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/BulletConfig.xlsx b/Tool/Luban/Datas/BulletConfig.xlsx deleted file mode 100644 index 697155ebefe..00000000000 Binary files a/Tool/Luban/Datas/BulletConfig.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/CharacterAwaking.xlsx b/Tool/Luban/Datas/CharacterAwaking.xlsx deleted file mode 100644 index 2963ef86e73..00000000000 Binary files a/Tool/Luban/Datas/CharacterAwaking.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/CharacterBreak.xlsx b/Tool/Luban/Datas/CharacterBreak.xlsx deleted file mode 100644 index 7a779d0c190..00000000000 Binary files a/Tool/Luban/Datas/CharacterBreak.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/CharacterDefault.xlsx b/Tool/Luban/Datas/CharacterDefault.xlsx deleted file mode 100644 index 4a82a9b6262..00000000000 Binary files a/Tool/Luban/Datas/CharacterDefault.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/CharacterLevelExp.xlsx b/Tool/Luban/Datas/CharacterLevelExp.xlsx deleted file mode 100644 index 2edff9e94e9..00000000000 Binary files a/Tool/Luban/Datas/CharacterLevelExp.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/CharacterLevelUp.xlsx b/Tool/Luban/Datas/CharacterLevelUp.xlsx deleted file mode 100644 index 814866dc595..00000000000 Binary files a/Tool/Luban/Datas/CharacterLevelUp.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/CharacterLikability.xlsx b/Tool/Luban/Datas/CharacterLikability.xlsx deleted file mode 100644 index 135d937ca6d..00000000000 Binary files a/Tool/Luban/Datas/CharacterLikability.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/CharacterSkillLevel.xlsx b/Tool/Luban/Datas/CharacterSkillLevel.xlsx deleted file mode 100644 index cb15ca4c26e..00000000000 Binary files a/Tool/Luban/Datas/CharacterSkillLevel.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/CrossFadeConfig.xlsx b/Tool/Luban/Datas/CrossFadeConfig.xlsx deleted file mode 100644 index 09139a6e92f..00000000000 Binary files a/Tool/Luban/Datas/CrossFadeConfig.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/EffectConfig.xlsx b/Tool/Luban/Datas/EffectConfig.xlsx deleted file mode 100644 index eea15d921ad..00000000000 Binary files a/Tool/Luban/Datas/EffectConfig.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/GlobalConfig.xlsx b/Tool/Luban/Datas/GlobalConfig.xlsx deleted file mode 100644 index c8d60c42b27..00000000000 Binary files a/Tool/Luban/Datas/GlobalConfig.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/InfluenceAreaConfig.xlsx b/Tool/Luban/Datas/InfluenceAreaConfig.xlsx deleted file mode 100644 index a6b1e951f8c..00000000000 Binary files a/Tool/Luban/Datas/InfluenceAreaConfig.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/Item.xlsx b/Tool/Luban/Datas/Item.xlsx deleted file mode 100644 index c3ae672d1b8..00000000000 Binary files a/Tool/Luban/Datas/Item.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/Monster.xlsx b/Tool/Luban/Datas/Monster.xlsx deleted file mode 100644 index 1ecca68726b..00000000000 Binary files a/Tool/Luban/Datas/Monster.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/MonsterClass.xlsx b/Tool/Luban/Datas/MonsterClass.xlsx deleted file mode 100644 index 0c1c4010fa7..00000000000 Binary files a/Tool/Luban/Datas/MonsterClass.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/MonsterLevelUp.xlsx b/Tool/Luban/Datas/MonsterLevelUp.xlsx deleted file mode 100644 index 246c64ca4c7..00000000000 Binary files a/Tool/Luban/Datas/MonsterLevelUp.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/SkillConfig.xlsx b/Tool/Luban/Datas/SkillConfig.xlsx deleted file mode 100644 index 76c4a58d6db..00000000000 Binary files a/Tool/Luban/Datas/SkillConfig.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/StringConfig.xlsx b/Tool/Luban/Datas/StringConfig.xlsx deleted file mode 100644 index b6e8e6c4e28..00000000000 Binary files a/Tool/Luban/Datas/StringConfig.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/SummonConfig.xlsx b/Tool/Luban/Datas/SummonConfig.xlsx deleted file mode 100644 index 5ea779997fb..00000000000 Binary files a/Tool/Luban/Datas/SummonConfig.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/WeaponConfig.xlsx b/Tool/Luban/Datas/WeaponConfig.xlsx deleted file mode 100644 index 46624a4d488..00000000000 Binary files a/Tool/Luban/Datas/WeaponConfig.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/__beans__.xlsx b/Tool/Luban/Datas/__beans__.xlsx deleted file mode 100644 index 776c7cc1e5f..00000000000 Binary files a/Tool/Luban/Datas/__beans__.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/__enums__.xlsx b/Tool/Luban/Datas/__enums__.xlsx deleted file mode 100644 index 2722d4e3ab3..00000000000 Binary files a/Tool/Luban/Datas/__enums__.xlsx and /dev/null differ diff --git a/Tool/Luban/Datas/__tables__.xlsx b/Tool/Luban/Datas/__tables__.xlsx deleted file mode 100644 index ebf5475a16e..00000000000 Binary files a/Tool/Luban/Datas/__tables__.xlsx and /dev/null differ diff --git a/Tool/Luban/Luban.ClientServer/Templates/config/cs_unity_json/table.tpl b/Tool/Luban/Luban.ClientServer/Templates/config/cs_unity_json/table.tpl index 1d3c887d53e..b4cc9da272d 100644 --- a/Tool/Luban/Luban.ClientServer/Templates/config/cs_unity_json/table.tpl +++ b/Tool/Luban/Luban.ClientServer/Templates/config/cs_unity_json/table.tpl @@ -1,7 +1,6 @@ using Bright.Serialization; using System.Collections.Generic; using SimpleJSON; -using Framework; {{ name = x.name @@ -18,17 +17,24 @@ using Framework; /// {{x.escape_comment}} /// {{~end~}} -public sealed partial class {{name}}:IDataImportFun +public sealed partial class {{name}} { {{~if x.is_map_table ~}} - private Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}> _dataMap; - private List<{{cs_define_type value_type}}> _dataList; + private readonly Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}> _dataMap; + private readonly List<{{cs_define_type value_type}}> _dataList; - public {{name}}() + public {{name}}(JSONNode _json) { _dataMap = new Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}>(); _dataList = new List<{{cs_define_type value_type}}>(); - + + foreach(JSONNode _row in _json.Children) + { + var _v = {{cs_define_type value_type}}.Deserialize{{value_type.bean.name}}(_row); + _dataList.Add(_v); + _dataMap.Add(_v.{{x.index_field.convention_name}}, _v); + } + PostInit(); } public Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}> DataMap => _dataMap; @@ -39,7 +45,14 @@ public sealed partial class {{name}}:IDataImportFun public T GetAs({{cs_define_type key_type}} key) where T : {{cs_define_type value_type}} => (T)_dataMap[key]; {{~end~}} public {{cs_define_type value_type}} GetOrDefault({{cs_define_type key_type}} key) => _dataMap.TryGetValue(key, out var v) ? v : null; - public {{cs_define_type value_type}} Get({{cs_define_type key_type}} key) => _dataMap[key]; + public {{cs_define_type value_type}} Get({{cs_define_type key_type}} key) { + if (_dataMap.TryGetValue(key, out var v)) { + return v; + } else { + UnityEngine.Debug.LogError($"table {{name}} key not found: {key}"); + return null; + } + } public {{cs_define_type value_type}} this[{{cs_define_type key_type}} key] => _dataMap[key]; public void Resolve(Dictionary _tables) @@ -70,19 +83,31 @@ public sealed partial class {{name}}:IDataImportFun {{~end~}} {{~end~}} - public {{name}}() + public {{name}}(JSONNode _json) { _dataList = new List<{{cs_define_type value_type}}>(); - + foreach(JSONNode _row in _json.Children) + { + var _v = {{cs_define_type value_type}}.Deserialize{{value_type.bean.name}}(_row); + _dataList.Add(_v); + } {{~if x.is_union_index~}} _dataMapUnion = new {{cs_table_union_map_type_name x}}(); - + foreach(var _v in _dataList) + { + _dataMapUnion.Add(({{cs_table_key_list x "_v"}}), _v); + } {{~else if !x.index_list.empty?~}} {{~for idx in x.index_list~}} _dataMap_{{idx.index_field.name}} = new Dictionary<{{cs_define_type idx.type}}, {{cs_define_type value_type}}>(); {{~end~}} - + foreach(var _v in _dataList) + { + {{~for idx in x.index_list~}} + _dataMap_{{idx.index_field.name}}.Add(_v.{{idx.index_field.convention_name}}, _v); + {{~end~}} + } {{~end~}} PostInit(); } @@ -150,32 +175,6 @@ public sealed partial class {{name}}:IDataImportFun } {{~end~}} - public void _LoadData(string data) - { - JSONNode _json=JSON.Parse(data); - foreach(JSONNode _row in _json.Children) - { - var _v ={{cs_define_type value_type}}.Deserialize{{value_type.bean.name}}(_row); - _dataList.Add(_v); - } -{{~if x.is_list_table~}} - foreach(var _v in _dataList) - { - _dataMapUnion.Add(({{cs_table_key_list x "_v"}}), _v); - } - {{~else if !x.index_list.empty?~}} - {{~for idx in x.index_list~}} - _dataMap = new Dictionary<{{cs_define_type idx.type}}, {{cs_define_type value_type}}>(); - {{~end~}} - foreach(var _v in _dataList) - { - {{~for idx in x.index_list~}} - _dataMap.Add(_v.{{idx.index_field.convention_name}}, _v); - {{~end~}} - } - {{~end~}} - PostInit(); - } partial void PostInit(); partial void PostResolve(); diff --git a/Tool/Luban/Luban.ClientServer/Templates/config/cs_unity_json/tables.tpl b/Tool/Luban/Luban.ClientServer/Templates/config/cs_unity_json/tables.tpl index b7831f48c56..e306a9f5921 100644 --- a/Tool/Luban/Luban.ClientServer/Templates/config/cs_unity_json/tables.tpl +++ b/Tool/Luban/Luban.ClientServer/Templates/config/cs_unity_json/tables.tpl @@ -1,5 +1,7 @@ using Bright.Serialization; using SimpleJSON; +using Framework; +using System; {{ name = x.name namespace = x.namespace @@ -7,11 +9,7 @@ using SimpleJSON; }} {{cs_start_name_space_grace x.namespace}} - //所有生成类继承:IDataImportFun接口 - public interface IDataImportFun - { - void _LoadData(string data); - } + public sealed partial class {{name}} { {{~for table in tables ~}} @@ -23,9 +21,31 @@ public sealed partial class {{name}} public {{table.full_name}} {{table.name}} {get; } {{~end~}} - public {{name}}() + public {{name}}(System.Func loader) { - + var tables = new System.Collections.Generic.Dictionary(); + {{~for table in tables ~}} + {{table.name}} = new {{table.full_name}}(loader("{{table.output_data_file}}")); + tables.Add("{{table.full_name}}", {{table.name}}); + {{~end~}} + PostInit(); + + {{~for table in tables ~}} + {{table.name}}.Resolve(tables); + {{~end~}} + PostResolve(); + } + + public static void PostPreload(Action loader) { + {{~for table in tables ~}} + loader("{{table.output_data_file}}"); + {{~end~}} + } + + public static void AfterLoaded(Action loader) { + {{~for table in tables ~}} + loader("{{table.output_data_file}}"); + {{~end~}} } public void TranslateText(System.Func translator) diff --git a/Tool/Luban/auto.py b/Tool/Luban/auto.py new file mode 100644 index 00000000000..5019421decb --- /dev/null +++ b/Tool/Luban/auto.py @@ -0,0 +1,29 @@ +import download_util +import openpyxl +import os +import sys + +if not download_util.download_single_file("AConfigList.xlsx", "e3_AQIA8QbmAKEFwoGRFPhT9uizRsOaA"): + download_util.write_file("./result", "error") + sys.exit() + +if os.path.exists("./Datas/AConfigList.xlsx"): + wb = openpyxl.load_workbook("./Datas/AConfigList.xlsx") + sheet = wb.active + + config_list = "" + for row in sheet.iter_rows(): + if row[0].value is None: + break + + if not download_util.download_single_file(row[0].value, row[1].value): + download_util.write_file("./result", "error") + break +else: + download_util.write_file("./result", "error") + print("./Datas/AConfigList.xlsx 不存在,未拉取线上最新配置") + +download_util.write_file("./result", "ok") + +print("任务执行完毕") + diff --git a/Tool/Luban/config_list.txt b/Tool/Luban/config_list.txt new file mode 100644 index 00000000000..628888ba671 --- /dev/null +++ b/Tool/Luban/config_list.txt @@ -0,0 +1,17 @@ +SummonConfig.xlsx,e3_Ab4A8gbmAKEhojQR19gSHuN2xrgbB +BuffConfig.xlsx,e3_Ab4A8gbmAKEU8P0gf5SRxS4ufFVy8 +ActorBorn.xlsx,e3_AQIA8QbmAKEdUmKdWxCR1GkGQ7pav +BulletConfig.xlsx,e3_Ab4A8gbmAKETJ3rd182ThytsQoget +CharacterAwaking.xlsx,e3_Ad4AtwZxAO8ISkgF3V8Q5m3tKvc70 +CharacterBreak.xlsx,e3_Ad4AtwZxAO81fMbgcBwRWuELc0Ja6 +CharacterDefault.xlsx,e3_Ad4AtwZxAO86gHYV0fAT1y6Elp79v +CharacterLevelExp.xlsx,e3_AR0ArwbsAIgoc33GPX0TKuG1SNYXc +CharacterLikability.xlsx,e3_Ad4AtwZxAO8jZdWusZ0T6ussPfef3 +EffectConfig.xlsx,e3_Ab4A8gbmAKEl1RfmdFzSfmOV2a0HN +InfluenceAreaConfig.xlsx,e3_Ab4A8gbmAKEtLmYUUxiTPSkj4KrcN +Item.xlsx,e3_Ad4AtwZxAO8hWc3Z5KnSDeW0SZf8r +SkillConfig.xlsx,e3_Ab4A8gbmAKE0TfRBXjNTNiqroKNvv +__enums__.xlsx,e3_AZMADAYCAEwl7C1hE6XTjmfq0bqVJ +__tables__.xlsx,e3_Ab4A8gbmAKE51pfTRw1RWWoDOEbdV +StringConfig.xlsx,e3_AbcARwYBAI8hpxrnM1ARAWwuZ0sME +GlobalConfig.xlsx,e3_AQIA8QbmAKEYLTBo3pQQ40lq5vd15 diff --git a/Tool/Luban/download_util.py b/Tool/Luban/download_util.py new file mode 100644 index 00000000000..dd3a05350be --- /dev/null +++ b/Tool/Luban/download_util.py @@ -0,0 +1,81 @@ +import requests, json +from datetime import datetime +import time +import sys + +headers = { + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Cookie':'fingerprint=e5e66bd15b0c457ca060f8cb099a69294; loginTime=1690176693133; fingerprint=hyqtq34fqvwxo0mez56g6nmeghu2ip1alsai4ipykxtbohr39ylogud; pgv_pvid=9052429358; backup_cdn_domain=res.wx.qq.com; RK=ibWIwwqIZ3; ptcz=1a80cd4046f3e58dbd941b4a76174d4977265589177c9caef884a16bd9992b5d; low_login_enable=1; tdoc_uid=13102702970838080; wedoc_openid=wozbKqDgAAYt6fSGwDXda25jv2p5OP0w; docMessageCenterCookie=; optimal_cdn_domain=docs2.gtimg.com; wedoc_sid=1kBCdYycYVcuLGgxAMRUNAAA; wedoc_sids=13102701888889220&1oQwT4xhZXMur2NhAINNSgAA|13102702970838080&1kBCdYycYVcuLGgxAMRUNAAA; wedoc_skey=13102701888889220&ac00476fed4403712cae26060dfb39b6||13102702970838080&0c0ef927cbc73439fee11e033cf4bdde; wedoc_ticket=13102701888889220&CAESIG807y5KZMJpoC13g7JnkNY7pdaXE4n_sycBDYT9KEnH|13102702970838080&CAESIAasGW9d_rOy1Vsa38d9xBy8rZdhXF8_Dox8yDl3dYg7; TOK=86b51da63c2ba485; traceid=86b51da63c; hashkey=86b51da6; window_width=701', +} + +sid = '1kBCdYycYVcuLGgxAMRUNAAA' + +log = '' + +def request_download(operationId): + milliseconds = int(time.time() * 1000) + + url2 = f"https://doc.weixin.qq.com/v1/export/query_progress?operationId={operationId}×tamp={milliseconds}" + second = requests.get(url2, headers=headers) + return second.json() + +def download_file(name, url): + global log + reqs = requests.get(url, headers=headers) + if reqs.status_code == 200: + with open(f"./Datas/{name}", "wb") as f: + f.write(reqs.content) + log = log + f"下载完成:{name}\n" + return True + else: + log = log + f"下载失败:{name}\n" + return False + +def request_operationId(docId): + url = f"https://doc.weixin.qq.com/v1/export/export_office?sid={sid}&wedoc_xsrf=1&docId={docId}&version=2" + #print(url) + first = requests.post(url, headers=headers) + return first.json() + + +def download_single_file(name, docId): + global log + + result = True + log = log + f"开始下载文件:{name}\n" + odata = request_operationId(docId) + if odata.get("ret") == 0: + operationId = odata.get("operationId") + + while True: + rddata = request_download(operationId) + if rddata.get("ret") == 0: + if rddata.get("progress") < 100: + time.sleep(0.1) + else: + download_url = rddata.get("file_url") + #print(download_url) + if not download_file(name, download_url): + result = False + + break + else: + log = log + f"获取下载链接失败: {name}, rdddata={rddata}\n" + result = False + break + + else: + result = False + log = log + f"获取operationId失败: {name}, odata={odata}\n" + + file = open("./download.log", "a") + file.write(log) + file.close() + return result + + +def write_file(path, content): + file = open(path, "w") + file.write(content) + file.close() diff --git a/Tool/Luban/gen_code_json.bat b/Tool/Luban/gen_code_json.bat new file mode 100644 index 00000000000..a98e7cc3cc4 --- /dev/null +++ b/Tool/Luban/gen_code_json.bat @@ -0,0 +1,18 @@ +REM GEN_CLIENT等号后面填Luban.ClientServer.exe所在路径,eg:set GEN_CLIENT=D:\Luban.ClientServer\Luban.ClientServer.exe +REM CONFIG等号后面填需要生成的excel所在文件夹路径,eg:D:\Datas +REM WORKSPACE后面填工程文件夹位置,eg:D:\work\luofang_LAPTOP-E656ULVR_ProjectA_main\ProjectNLD +set GEN_CLIENT="./Luban.ClientServer/Luban.ClientServer.exe" +set CONFIG=./Datas +REM set UNITY_PRJO_NAME=liutao_LT-Work_ProjectNLD_main_1 +REM set WORKSPACE=./../../%UNITY_PRJO_NAME%/ProjectNLD +set WORKSPACE=%1 + +%GEN_CLIENT% -j cfg --^ + -d ./Defines/__root__.xml ^ + --input_data_dir %CONFIG% ^ + --output_code_dir %WORKSPACE%\Code\Scripts\Gameplay\DataTable ^ + --output_data_dir %WORKSPACE%\Config\Data ^ + --gen_types code_cs_unity_json,data_json ^ + -s client + +pause \ No newline at end of file diff --git a/Tool/Luban/git.sh b/Tool/Luban/git.sh new file mode 100644 index 00000000000..431325aa80e --- /dev/null +++ b/Tool/Luban/git.sh @@ -0,0 +1,7 @@ + +#!/bin/bash + +cd .. +git fetch origin +git checkout main +git reset --hard origin/main \ No newline at end of file diff --git a/Tool/Luban/linux_export.sh b/Tool/Luban/linux_export.sh index 1ed243fad65..9b58a3490bf 100644 --- a/Tool/Luban/linux_export.sh +++ b/Tool/Luban/linux_export.sh @@ -6,6 +6,20 @@ echo "Start export config ...\n" CUR_PATH=`pwd` echo "current work path:$CUR_PATH\n\n\n" +python3 auto.py + +file_path="./result" +text=$(cat "$file_path") +if [ "$text" = "ok" ]; then + echo "所有配置下载成功" + echo "next" > $file_path +else + echo "配置下载失败,请检查log" + cat ./download.log + echo "exit" > $file_path + exit +fi + PATH_LUBAN_DLL=$CUR_PATH/Luban.ClientServer/Luban.ClientServer.dll INPUT_DATA_DIR=$CUR_PATH/Datas PATH_DEFINE_FILE=$CUR_PATH/Defines/__root__.xml @@ -37,4 +51,4 @@ cp -rf $OUTPUT_DATA_DIR/*.json ~/ProjectNLD/bin/scp/ rm -rf $OUTPUT_CODE_DIR rm -rf $OUTPUT_DATA_DIR -echo "export done ..." \ No newline at end of file +echo "export done ..." diff --git a/Tool/Luban/mac_client_export.sh b/Tool/Luban/mac_client_export.sh new file mode 100644 index 00000000000..3e22eec0cab --- /dev/null +++ b/Tool/Luban/mac_client_export.sh @@ -0,0 +1,32 @@ + +#!/bin/bash + +echo "Start export config ...\n" + +CUR_PATH=`pwd` +echo "current work path:$CUR_PATH\n\n\n" + +OUTPUT_DIR=$1 + +PATH_LUBAN_DLL=$CUR_PATH/Luban.ClientServer/Luban.ClientServer.dll +INPUT_DATA_DIR=$CUR_PATH/Datas +PATH_DEFINE_FILE=$CUR_PATH/Defines/__root__.xml + +OUTPUT_CODE_DIR=$OUTPUT_DIR/Code/Scripts/Gameplay/DataTable +OUTPUT_DATA_DIR=$OUTPUT_DIR/Config/Data + +rm -rf $OUTPUT_CODE_DIR +rm -rf $OUTPUT_DATA_DIR + +mkdir -p $OUTPUT_CODE_DIR +mkdir -p $OUTPUT_DATA_DIR + +echo "start export .." +dotnet $PATH_LUBAN_DLL -j cfg -- \ + --input_data_dir $INPUT_DATA_DIR \ + --output_code_dir $OUTPUT_CODE_DIR \ + --output_data_dir $OUTPUT_DATA_DIR \ + --gen_types data_json,code_cs_unity_json -s client \ + --define_file $PATH_DEFINE_FILE + +echo "export done ..." \ No newline at end of file diff --git a/Tool/Luban/mac_server_export.sh b/Tool/Luban/mac_server_export.sh new file mode 100644 index 00000000000..a00df8444a3 --- /dev/null +++ b/Tool/Luban/mac_server_export.sh @@ -0,0 +1,40 @@ + +#!/bin/bash + +echo "Start export config ...\n" + +CUR_PATH=`pwd` +echo "current work path:$CUR_PATH\n\n\n" + +PATH_LUBAN_DLL=$CUR_PATH/Luban.ClientServer/Luban.ClientServer.dll +INPUT_DATA_DIR=$CUR_PATH/Datas +PATH_DEFINE_FILE=$CUR_PATH/Defines/__root__.xml + +OUTPUT_CODE_DIR=$CUR_PATH/code +OUTPUT_DATA_DIR=$CUR_PATH/data + +rm -rf $OUTPUT_CODE_DIR +rm -rf $OUTPUT_DATA_DIR + +mkdir -p $OUTPUT_CODE_DIR +mkdir -p $OUTPUT_DATA_DIR + +echo "start export .." +dotnet $PATH_LUBAN_DLL -j cfg -- \ + --input_data_dir $INPUT_DATA_DIR \ + --output_code_dir $OUTPUT_CODE_DIR \ + --output_data_dir $OUTPUT_DATA_DIR \ + --gen_types data_json,code_go_json -s server \ + --define_file $PATH_DEFINE_FILE \ + --go:bright_module_name xsf_cfg + + +find $OUTPUT_CODE_DIR -type f -exec sed -i '' 's/package cfg/package xsf_scp/g' {} + + +scp $OUTPUT_CODE_DIR/*.go root@8.137.21.7:~/ProjectNLD/schema/ +scp $OUTPUT_DATA_DIR/*.json root@8.137.21.7:~/ProjectNLD/bin/scp/ + +rm -rf $OUTPUT_CODE_DIR +rm -rf $OUTPUT_DATA_DIR + +echo "export done ..." \ No newline at end of file