123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using CommonAI.RTS.Manhattan;
- using CommonAI.Zone;
- using CommonAI.Zone.Helper;
- using CommonAI.Zone.ZoneEditor;
- using CommonAI.ZoneClient;
- using XmdsBattleClient.Battle;
- using XmdsCommon.Plugin;
- using XmdsCommon.ZoneClient;
- using CommonLang;
- using CommonLang.IO;
- using System.IO;
- namespace XmdsBattleClientBot
- {
- public static class BotClientManager
- {
- public static void Init(BotConfig cfg)
- {
- XmdsBattleManager.Init(cfg.DataRoot, new XmdsZoneFactoryBot());
- LoadTaskLua(cfg.LuaRoot);
- LoadItemLua(cfg.LuaRoot);
- LoadItemQualityLua(cfg.LuaRoot);
- //LoadDataLua(cfg.LuaRoot+ "\\data\\Section.lua");
- XmdsZoneFactoryBot.SaveMemory = cfg.SaveMemory;
- }
- //---------------------------------------------------------------------------------------------------------
- public static void LoadLuaTable<K>(HashMap<K, Dictionary<string, object>> dst, string file)
- {
- try
- {
- var text = Resource.LoadAllText(file);
- LuaInterface.Lua lua = new LuaInterface.Lua();
- LuaInterface.LuaTable src = lua.DoString(text)[0] as LuaInterface.LuaTable;
- LuaInterface.LuaTable keys = src["_key_"] as LuaInterface.LuaTable;
- foreach (var k in src.Keys)
- {
- K id;
- if (!k.ToString().Equals("_key_") && Parser.StringToObject<K>(k.ToString(), out id))
- {
- LuaInterface.LuaTable line = src[k] as LuaInterface.LuaTable;
- Dictionary<string, object> fields = new Dictionary<string, object>();
- foreach (var i in keys.Keys)
- {
- fields[keys[i].ToString()] = line[i].ToString();
- }
- dst[id] = fields;
- }
- }
- }
- catch (Exception err)
- {
- throw new Exception("Load Lua Error : " + file + "\r\n" + err.Message, err);
- }
- }
- //---------------------------------------------------------------------------------------------------------
- #region Task
- private static HashMap<int, Dictionary<string, object>> s_AllTasksTemplate;
- private static void LoadTaskLua(string lua_root)
- {
- if (s_AllTasksTemplate == null)
- {
- s_AllTasksTemplate = new HashMap<int, Dictionary<string, object>>();
- foreach (var file in Resource.ListFiles(lua_root + @"/Data/Tasks/"))
- {
- Console.WriteLine(lua_root + @"/Data/Tasks/" + file);
- BotClientManager.LoadLuaTable(s_AllTasksTemplate, lua_root + @"/Data/Tasks/" + file);
- }
- // BotClientManager.LoadLuaTable(s_AllTasksTemplate, lua_root + @"/Data/Tasks/BranchLine.lua");
- // BotClientManager.LoadLuaTable(s_AllTasksTemplate, lua_root + @"/Data/Tasks/Daily.lua");
- // BotClientManager.LoadLuaTable(s_AllTasksTemplate, lua_root + @"/Data/Tasks/MainLine.lua");
- }
- }
- public static Dictionary<string, object> GetTaskTemplate(int tid)
- {
- return s_AllTasksTemplate.Get(tid);
- }
- #endregion
- #region Item
- private static HashMap<string, Dictionary<string, object>> s_AllItemTemplate;
- private static void LoadItemLua(string lua_root)
- {
- if (s_AllItemTemplate == null)
- {
- s_AllItemTemplate = new HashMap<string, Dictionary<string, object>>();
- foreach (var file in Resource.ListFiles(lua_root + @"/Data/Items/"))
- {
- Console.WriteLine(lua_root + @"/Data/Items/" + file);
- BotClientManager.LoadLuaTable(s_AllItemTemplate, lua_root + @"/Data/Items/" + file);
- }
- // BotClientManager.LoadLuaTable(s_AllItemTemplate, lua_root + @"/Data/Items/BlueEquip.lua");
- // BotClientManager.LoadLuaTable(s_AllItemTemplate, lua_root + @"/Data/Items/BlueEquipU.lua");
- // BotClientManager.LoadLuaTable(s_AllItemTemplate, lua_root + @"/Data/Items/Book.lua");
- // BotClientManager.LoadLuaTable(s_AllItemTemplate, lua_root + @"/Data/Items/Chest.lua");
- // BotClientManager.LoadLuaTable(s_AllItemTemplate, lua_root + @"/Data/Items/GreenEquip.lua");
- // BotClientManager.LoadLuaTable(s_AllItemTemplate, lua_root + @"/Data/Items/GreenEquipU.lua");
- // BotClientManager.LoadLuaTable(s_AllItemTemplate, lua_root + @"/Data/Items/Jewel.lua");
- // BotClientManager.LoadLuaTable(s_AllItemTemplate, lua_root + @"/Data/Items/LegendEquip.lua");
- // BotClientManager.LoadLuaTable(s_AllItemTemplate, lua_root + @"/Data/Items/LegendEquipU.lua");
- // BotClientManager.LoadLuaTable(s_AllItemTemplate, lua_root + @"/Data/Items/Mate.lua");
- // BotClientManager.LoadLuaTable(s_AllItemTemplate, lua_root + @"/Data/Items/Misc.lua");
- // BotClientManager.LoadLuaTable(s_AllItemTemplate, lua_root + @"/Data/Items/Paper.lua");
- // BotClientManager.LoadLuaTable(s_AllItemTemplate, lua_root + @"/Data/Items/PetBook.lua");
- // BotClientManager.LoadLuaTable(s_AllItemTemplate, lua_root + @"/Data/Items/PetItem.lua");
- // BotClientManager.LoadLuaTable(s_AllItemTemplate, lua_root + @"/Data/Items/Potion.lua");
- // BotClientManager.LoadLuaTable(s_AllItemTemplate, lua_root + @"/Data/Items/PurpleEquip.lua");
- // BotClientManager.LoadLuaTable(s_AllItemTemplate, lua_root + @"/Data/Items/PurpleEquipU.lua");
- // BotClientManager.LoadLuaTable(s_AllItemTemplate, lua_root + @"/Data/Items/Rank.lua");
- // BotClientManager.LoadLuaTable(s_AllItemTemplate, lua_root + @"/Data/Items/Ride.lua");
- // BotClientManager.LoadLuaTable(s_AllItemTemplate, lua_root + @"/Data/Items/Task.lua");
- // BotClientManager.LoadLuaTable(s_AllItemTemplate, lua_root + @"/Data/Items/VipItem.lua");
- }
- }
- public static Dictionary<string, object> GetItemTemplate(string code)
- {
- return s_AllItemTemplate.Get(code);
- }
- #endregion
- #region ItemQualityConfig
- private static HashMap<int, Dictionary<string, object>> s_AllItemQualityTemplate;
- private static void LoadItemQualityLua(string lua_root)
- {
- if (s_AllItemQualityTemplate == null)
- {
- s_AllItemQualityTemplate = new HashMap<int, Dictionary<string, object>>();
- Console.WriteLine(lua_root + @"/Data/ItemQualityConfig.lua");
- BotClientManager.LoadLuaTable(s_AllItemQualityTemplate, lua_root + @"/Data/ItemQualityConfig.lua");
- }
- }
- public static Dictionary<string, object> GetItemQuality(int tid)
- {
- return s_AllItemQualityTemplate.Get(tid);
- }
- #endregion
- //---------------------------------------------------------------------------------------------------------
- #region AllLuaConfig
-
- private static HashMap<string,HashMap<int, Dictionary<string, object>>> s_AllLuaConfig;
- private static void LoadDataLua(string lua_root)
- {
- if (s_AllLuaConfig == null)
- {
- s_AllLuaConfig = new HashMap<string, HashMap<int, Dictionary<string, object>>>();
- if (lua_root.EndsWith(".lua"))
- {
- HashMap<int, Dictionary<string, object>> fileData = new HashMap<int, Dictionary<string, object>>();
- Console.WriteLine("load luadata file name ---->>{0}", lua_root);
- BotClientManager.LoadLuaTable(fileData, lua_root);
- s_AllLuaConfig[lua_root.Substring(lua_root.LastIndexOf('\\') + 1)] = fileData;
- }
- else
- {
- foreach (var file in Resource.ListFiles(lua_root))
- {
- HashMap<int, Dictionary<string, object>> fileData = new HashMap<int, Dictionary<string, object>>();
- string fileName = file.ToString().Substring(1);
- Console.WriteLine("load luadata file name ---->>{0}", fileName);
- BotClientManager.LoadLuaTable(fileData, lua_root + file);
- s_AllLuaConfig[fileName] = fileData;
- }
- }
- }
- }
- public static HashMap<int, Dictionary<string, object>> GetLuaData(string fileName)
- {
- return s_AllLuaConfig.Get(fileName);
- }
- public static Dictionary<string, object> GetLuaData(string fileName,int tid)
- {
- HashMap<int, Dictionary<string, object>> fileData = GetLuaData(fileName);
- if (fileData != null) {
- return fileData.Get(tid);
- }
- return null;
- }
- #endregion
- }
- }
|