Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
    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);
    }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
    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);
    }
Esempio n. 5
0
        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!"));
        }
Esempio n. 6
0
        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);
        }