/// <summary> /// 获取第index个的跟随NPC的名字 /// </summary> /// <param name="index"></param> /// <returns></returns> public string GetFollowNpcName(int index) { if (FollowNpcs != null && FollowNpcs.Count > index) { NpcScenePosition npc = FollowNpcs[index]; uint instanceId = npc.SceneId; uint npcId = npc.NpcId; return(NpcHelper.GetNpcName(instanceId, npcId)); } return(string.Empty); }
public static NpcScenePosition Make(List <string> strings) { NpcScenePosition result = new NpcScenePosition(); uint val = 0; if (strings.Count > 0) { uint.TryParse(strings[0], out val); result.SceneId = val; } if (strings.Count > 1) { uint.TryParse(strings[1], out val); result.NpcId = val; } return(result); }
public static List <NpcScenePosition> MakeNpcScenePositions(string raw) { if (string.IsNullOrEmpty(raw) == true) { return(null); } List <NpcScenePosition> result = new List <NpcScenePosition>(); result.Clear(); List <List <string> > stringsStrings = DBTextResource.ParseArrayStringString(raw); foreach (List <string> strings in stringsStrings) { result.Add(NpcScenePosition.Make(strings)); } return(result); }
public static NpcScenePosition Make(string raw) { List <uint> ids = new List <uint>(); Utils.DataFormatHelper.DBRawStringReplaceBraceToIds(raw, ids); NpcScenePosition result = new NpcScenePosition(); for (int i = 0; i < ids.Count; i++) { if (i == 0) { result.SceneId = ids[i]; } else { result.NpcId = ids[i]; } } return(result); }
static int _m_Make_xlua_st_(RealStatePtr L) { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); int __gen_param_count = LuaAPI.lua_gettop(L); try { if (__gen_param_count == 1 && (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING)) { string raw = LuaAPI.lua_tostring(L, 1); NpcScenePosition __cl_gen_ret = NpcScenePosition.Make(raw); translator.Push(L, __cl_gen_ret); return(1); } if (__gen_param_count == 1 && translator.Assignable <System.Collections.Generic.List <string> >(L, 1)) { System.Collections.Generic.List <string> strings = (System.Collections.Generic.List <string>)translator.GetObject(L, 1, typeof(System.Collections.Generic.List <string>)); NpcScenePosition __cl_gen_ret = NpcScenePosition.Make(strings); translator.Push(L, __cl_gen_ret); return(1); } } catch (System.Exception __gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to NpcScenePosition.Make!")); }
TaskDefine ReadReader(SqliteDataReader reader) { ushort taskType = DBTextResource.ParseUS_s(GetReaderString(reader, "type"), 0); TaskDefine define = new TaskDefine(); define.Id = DBTextResource.ParseUI_s(GetReaderString(reader, "id"), 0); define.DescriptionBytes = GetReaderBytes(reader, "description"); define.NameBytes = GetReaderBytes(reader, "name"); define.Type = taskType; define.SubType = DBTextResource.ParseUI_s(GetReaderString(reader, "sub_type"), 0); define.RequestLevelMin = DBTextResource.ParseI_s(GetReaderString(reader, "lv_min"), 0); define.PreviousId = DBTextResource.ParseUI_s(GetReaderString(reader, "pre_id"), 0); define.NextId = DBTextResource.ParseUI_s(GetReaderString(reader, "next_id"), 0); define.NextId = DBTextResource.ParseUI_s(GetReaderString(reader, "next_id"), 0); string serverStepRawsString = GetReaderString(reader, "goals"); string clientStepRawsString = GetReaderString(reader, "steps"); string navigationPointsRawsString = GetReaderString(reader, "navigation_points"); define.Steps = TaskDefine.TaskStep.CreateStepsByRawString(serverStepRawsString, clientStepRawsString, navigationPointsRawsString); if (define.Steps == null || define.Steps.Count == 0) { GameDebug.LogError("Parse task " + define.Id + " error, step is empty!!!"); } define.RewardIds = DBTextResource.ParseArrayUint(GetReaderString(reader, "reward_ids"), ","); define.GetSkills = DBTextResource.ParseArrayUint(GetReaderString(reader, "get_skills"), ","); define.IsShowGetSkillProgress = DBTextResource.ParseI_s(GetReaderString(reader, "is_show_get_skill_progress"), 0) == 0 ? false : true; define.ReceiveDialogId = DBTextResource.ParseUI_s(GetReaderString(reader, "receive_dialog_id"), 0); define.SubmitDialogId = DBTextResource.ParseUI_s(GetReaderString(reader, "submit_dialog_id"), 0); define.ReceiveNpc = NpcScenePosition.Make(GetReaderString(reader, "receive_npc")); define.SubmitNpc = NpcScenePosition.Make(GetReaderString(reader, "submit_npc")); define.AutoRunType = (TaskDefine.EAutoRunType)DBTextResource.ParseBT_s(GetReaderString(reader, "auto_run"), 0); define.ShowPriority = DBManager.Instance.GetDB <DBTaskPriority>().GetTaskPriority((int)taskType); define.ShowPriority2 = DBManager.Instance.GetDB <DBTaskPriority>().GetTaskPriority2((int)taskType); string raw = GetReaderString(reader, "is_temporary_on_top"); if (string.IsNullOrEmpty(raw) == true || raw == "0") { define.IsTemporaryOnTop = false; } else { define.IsTemporaryOnTop = true; } string npcsRawString = GetReaderString(reader, "create_npcs_when_received"); define.CreateNpcsWhenReceived = TaskDefine.MakeNpcScenePositions(npcsRawString); npcsRawString = GetReaderString(reader, "delete_npcs_when_received"); define.DeleteNpcsWhenReceived = TaskDefine.MakeNpcScenePositions(npcsRawString); npcsRawString = GetReaderString(reader, "create_npcs_when_done"); define.CreateNpcsWhenDone = TaskDefine.MakeNpcScenePositions(npcsRawString); npcsRawString = GetReaderString(reader, "delete_npcs_when_done"); define.DeleteNpcsWhenDone = TaskDefine.MakeNpcScenePositions(npcsRawString); define.FollowNpcs = TaskDefine.MakeNpcScenePositions(GetReaderString(reader, "follow_npcs")); define.CanUseBoots = (DBTextResource.ParseI_s(GetReaderString(reader, "can_use_boots"), 0) > 0); define.ReceivedTimelineId = DBTextResource.ParseUI_s(GetReaderString(reader, "received_timeline_id"), 0); define.SubmitedTimelineId = DBTextResource.ParseUI_s(GetReaderString(reader, "submited_timeline_id"), 0); raw = GetReaderString(reader, "cost"); if (string.IsNullOrEmpty(raw) == false) { define.Costs = DBTextResource.ParseArrayStringString(raw); } raw = GetReaderString(reader, "show_reward_goods_id"); List <List <uint> > showRewardGoodsIdConfigs = DBTextResource.ParseArrayUintUint(raw); define.ShowRewardGoodsIds = new Dictionary <uint, uint>(); define.ShowRewardGoodsIds.Clear(); define.ShowRewardGoodsNums = new Dictionary <uint, uint>(); define.ShowRewardGoodsNums.Clear(); define.ShowRewardGoodsIsBinds = new Dictionary <uint, byte>(); define.ShowRewardGoodsIsBinds.Clear(); uint index = 1; foreach (List <uint> showRewardGoodsIdConfig in showRewardGoodsIdConfigs) { define.ShowRewardGoodsIds[index] = showRewardGoodsIdConfig[0]; define.ShowRewardGoodsNums[index] = showRewardGoodsIdConfig[1]; define.ShowRewardGoodsIsBinds[index] = (byte)showRewardGoodsIdConfig[2]; ++index; } mTasksData.Add(define.Id, define); if (mTasksDataByType.ContainsKey(define.Type) == true) { mTasksDataByType[define.Type].Add(define.Id, define); } else { Dictionary <uint, TaskDefine> taskDefines = new Dictionary <uint, TaskDefine>(); taskDefines.Clear(); taskDefines.Add(define.Id, define); mTasksDataByType.Add(define.Type, taskDefines); } return(define); }