AD商业广告自由选择
AD商业广告自由选择

传奇Lua使用说明 副本模块

正文概述 开源人   2024-11-01 10:15:25  
说明:

    副本模块依托ExternLua对镜像地图的一系列功能进行了整合、简化,可以快速构建副本,简化繁杂的老式TXT脚本。Dsq1234FCOM专注游戏工具及源码例子分享

副本模块说明:

        副本模块实现了副本功能的简化:简化副本创建、简化任务定义、人物存储在LUA脚本中的相关数据存储与读取。Dsq1234FCOM专注游戏工具及源码例子分享
        提供了如下指令:Dsq1234FCOM专注游戏工具及源码例子分享
             · CREATE_INSTANCE_ZONEDsq1234FCOM专注游戏工具及源码例子分享
             · LOAD_INSTANCE_ZONE_DATADsq1234FCOM专注游戏工具及源码例子分享
             · RUN_INSTANCE_TASKDsq1234FCOM专注游戏工具及源码例子分享
             · RESET_INSTANCE_ZONE_TIMEDsq1234FCOM专注游戏工具及源码例子分享
             · APPEND_INSTANCE_ZONE_TIMEDsq1234FCOM专注游戏工具及源码例子分享
             分别实现了【创建副本】、【读取人物存储的副本地图名】、【处理副本任务】、【重置副本有效时长】、【副本有效时长追加指定秒数】功能。Dsq1234FCOM专注游戏工具及源码例子分享
        提供了如下外部方法(可供其它模块进行调用):Dsq1234FCOM专注游戏工具及源码例子分享
            · regModMapData(副本模块, 调用此函数的模块, 副本标识名, 副本数据表) 用于注册一个外部副本数据Dsq1234FCOM专注游戏工具及源码例子分享
            · getPlayerMapName(副本模块, 调用者模块, 调用函数所附带的参数表, 副本标识符) 
Dsq1234FCOM专注游戏工具及源码例子分享

创建副本:

            CREATE_INSTANCE_ZONE 副本标识符Dsq1234FCOM专注游戏工具及源码例子分享
            副本数据定义在modules\副本\data.lua中Dsq1234FCOM专注游戏工具及源码例子分享
Dsq1234FCOM专注游戏工具及源码例子分享
            示例:CREATE_INSTANCE_ZONE FB_D717A
Dsq1234FCOM专注游戏工具及源码例子分享

副本数据定义:

                在modules\副本\副本数据\副本标识符 .lua中编写副本数据Dsq1234FCOM专注游戏工具及源码例子分享
                需要注意:副本标识符要唯一,如例子中的FB_D717A
副本标识符允许使用中文,但不建议Dsq1234FCOM专注游戏工具及源码例子分享
                其余内容参考下面的例子即可,如果删除Task的部分则是不使用任务功能Dsq1234FCOM专注游戏工具及源码例子分享
Dsq1234FCOM专注游戏工具及源码例子分享
                示例:文件FB_D717A.lua
Dsq1234FCOM专注游戏工具及源码例子分享

return {
    --原始地图
    MapName = "d717",
    --镜像图在客户端显示的地图名
    MapDesc = "石墓副本",
    --玩家存储地图名时的键,可以与副本标识符不同
    Marker = "FB_D717A",
    --地图过期后返回到哪个图
    HomeMap = "0",
    --删除后触发QF
    DelRecall = "",
    --删除后地图内所有玩家触发QF
    DelRecallAll = "",
    --进入副本后当前NPC执行
    DoReCall = "@石墓回调",
    --创建副本后进入地图时当前NPC执行,通常用于刷怪、分配任务
    DoReCallFirst = "@石墓回调1",
    --非创建副本后每次进入副本时NPC执行,没想到能怎么用,但还是给了个接口
    DoReCallAfter = "@石墓回调2",
    --地图有效期(秒)
    Time = 60,
    --当此项为true时,地图主人在地图中时,如果地图即将过期则自动续期一个有效时长,可以用来做一些长期性地图

   AutoAppendTime= false ,
    --任务
    Task = {
        {
            --CHECK [7000]
            Flag = 7000,
            --标志有效时的值
            ValidValue = 1,
            --标志无效时的值
            InValidValue = 0,
            --杀怪检测
            MonName = "白野猪",
            --物品检测
            ItemName = "*",
            --任务NPC文件名
            QuestName = "FB_D717A_0",
            --组队任务
            GroupTask = false,
            --N$石墓杀怪
            KillTaskExtN = "石墓杀怪",
            --N$石墓拾取
            PickTaskExtN = "石墓拾取",

            --杀怪数量
            KillCount = 10,
            --拾取数量
            PickCount = 0,
            --杀怪提示
            KillHint = "你已消灭%s:%d/%d",
            --拾取提示
            PickHint = "你已收集%s:%d/%d",
            --杀怪任务提示
            TaskKillHint = "任务:消灭%s%d只",
            --拾取任务提示
            TaskPickHint = "任务:收集%s%d个",
            --杀怪完成后任务NPC触发
            TaskKillFinished = "@杀怪任务完成",
            --拾取完成后任务NPC触发
            TaskPickFinished = "@拾取任务完成",
            --触发概率X/100
            TriggerValue = 30,
        },
        {
            Flag = 7001,
            ValidValue = 1,
            InValidValue = 0,
            MonName = "红野猪",
            ItemName = "*",
            QuestName = "FB_D717A_1",
            GroupTask = false,
            KillTaskExtN = "石墓杀怪",
            PickTaskExtN = "石墓拾取",
            KillCount = 15,
            PickCount = 0,
            KillHint = "你已消灭%s:%d/%d",
            PickHint = "你已收集%s:%d/%d",
            TaskKillHint = "任务:消灭%s%d只",
            TaskPickHint = "任务:收集%s%d个",
            TaskKillFinished = "@杀怪任务完成",
            TaskPickFinished = "@拾取任务完成",
            TriggerValue = 50,
        },
        {
            Flag = 7002,
            ValidValue = 1,
            InValidValue = 0,
            MonName = "黑野猪",
            ItemName = "*",
            QuestName = "FB_D717A_2",
            GroupTask = false,
            KillTaskExtN = "石墓杀怪",
            PickTaskExtN = "石墓拾取",
            KillCount = 15,
            PickCount = 0,
            KillHint = "你已消灭%s:%d/%d",
            PickHint = "你已收集%s:%d/%d",
            TaskKillHint = "任务:消灭%s%d只",
            TaskPickHint = "任务:收集%s%d个",
            TaskKillFinished = "@杀怪任务完成",
            TaskPickFinished = "@拾取任务完成",
            TriggerValue = 50,
        },
    },
}
副本数据引入:

                在modules\副本\副本数据\副本标识符 .lua中定义好数据之后,打开modules\副本\data.luaDsq1234FCOM专注游戏工具及源码例子分享
                在data.lua的InstanceList中添加副本的文件名 ,即副本标识符即可,Dsq1234FCOM专注游戏工具及源码例子分享
Dsq1234FCOM专注游戏工具及源码例子分享
                如下所示:
Dsq1234FCOM专注游戏工具及源码例子分享

--[[Dsq1234FCOM专注游戏工具及源码例子分享
    这是修改过的Data文件,将你的副本配置数据单独命名为:副本标识符.lua放到副本配置文件夹Dsq1234FCOM专注游戏工具及源码例子分享
    并在下面的table内写上你的副本标识符,这样你的副本就可以被模块加载了Dsq1234FCOM专注游戏工具及源码例子分享
--]]Dsq1234FCOM专注游戏工具及源码例子分享
local InstanceList = {Dsq1234FCOM专注游戏工具及源码例子分享
    "FB_D717A",Dsq1234FCOM专注游戏工具及源码例子分享
}Dsq1234FCOM专注游戏工具及源码例子分享
return InstanceList
读取人物数据:

            LOAD_INSTANCE_ZONT_DATA 文件名Dsq1234FCOM专注游戏工具及源码例子分享
            示例:LOAD_INSTANCE_ZONT_DATA .\Envir\QuestDiary\V2网络\副本数据\<$USERNAME>.json
Dsq1234FCOM专注游戏工具及源码例子分享

处理数据:

            RUN_INSTANCE_TASK 副本标识符 任务编号(即在Task表中的顺序)Dsq1234FCOM专注游戏工具及源码例子分享
Dsq1234FCOM专注游戏工具及源码例子分享
            示例:【MapQuest_Def\FB_D717A_0.txt】Dsq1234FCOM专注游戏工具及源码例子分享
Dsq1234FCOM专注游戏工具及源码例子分享
            [@main]Dsq1234FCOM专注游戏工具及源码例子分享
            #ACTDsq1234FCOM专注游戏工具及源码例子分享
            RUN_INSTANCE_TASK FB_D717A 1Dsq1234FCOM专注游戏工具及源码例子分享
Dsq1234FCOM专注游戏工具及源码例子分享
            
[@杀怪任务完成]Dsq1234FCOM专注游戏工具及源码例子分享
            #ACTDsq1234FCOM专注游戏工具及源码例子分享
            ChangeExp + 100000Dsq1234FCOM专注游戏工具及源码例子分享
            SENDMSG 6 你已完成任务,获得经验:100000!
Dsq1234FCOM专注游戏工具及源码例子分享

重置副本时长:

            RESET_INSTANCE_ZONE_TIME 副本标识符Dsq1234FCOM专注游戏工具及源码例子分享
            示例:RESET_INSTANCE_ZONE_TIME FB_D717A
Dsq1234FCOM专注游戏工具及源码例子分享

追加副本有效时长:

            APPEND_INSTANCE_ZONE_TIME 副本标识符 时长(秒)Dsq1234FCOM专注游戏工具及源码例子分享
            示例:APPEND_INSTANCE_ZONE_TIME FB_D717A 120
Dsq1234FCOM专注游戏工具及源码例子分享



声明:本文系互联网搜索而收集整理,不以盈利性为目的,文字、图文资料源于互联网且共享于互联网。
如有侵权,请联系 yao4fvip#qq.com (#改@) 删除。