蒙纳多研究本部
菜单
导航
首页
最近更改
随机页面
翻译查询
乐园数据管理室
送行者的收集手册
搜索
链入页面
相关更改
特殊页面
页面信息
最近更改
帮助
登录
模块
查看“︁Quest”︁的源代码
←
模块:Quest
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您必须确认您的电子邮件地址才能编辑页面。请通过
参数设置
设置并确认您的电子邮件地址。
您可以查看和复制此页面的源代码。
local p = {} local post = require("Module:RequestHelper").post local html = require("Module:Html") local compress = html.compress local addlink = html.addlink -- local getArgs = require("Module:Arguments").getArgs local function itemName(data) local name = data.itemID.name if data.rankType > 0 then name = name .. data.rankType end return name end function p.template(frame, data) -- local args = getArgs(frame) local questInfo = "" do -- 任务内容 local infoReport = #data.menu.info_report > 0 and [[<div class="light-box">]] .. data.menu.info_report .. [[</div>]] or "" local succ = {} for _, v in ipairs({"A1", "A2", "A3", "A4", "B1", "B2", "B3", "B4"}) do succ[v] = "" if data["type_succ_" .. v] == "KillEnemy" then succ[v] = mw.ustring.format( [[<div style="text-align: right;">%s 0/%s</div>]], addlink(data["cnd_succ_" .. v].name, "敌人"), data["num_succ_" .. v] ) elseif data["type_succ_" .. v] == "GetItem" then succ[v] = mw.ustring.format( [[<div style="text-align: right;">%s 0/%s</div>]], addlink(itemName(data["cnd_succ_" .. v]), "物品"), data["num_succ_" .. v] ) elseif data["type_succ_" .. v] == "TalkNpc" then succ[v] = data["cnd_succ_" .. v] and mw.ustring.format( [[<div style="text-align: right;">与 %s 对话</div>]], addlink(data["cnd_succ_" .. v].name, "NPC") ) or "" end end local questProg = {A = "", B = ""} for k, _ in pairs(questProg) do for i = 1, 3 do if #data.menu["info_succ_" .. k .. i] > 0 then questProg[k] = questProg[k] .. '<div class="light-box">' .. data.menu["info_succ_" .. k .. i] .. succ[k .. (i + 1)] .. "</div>" end end end if #data.menu.info_end_B > 0 then questInfo = mw.ustring.format( [[<ul class="tabs" data-tab> <li class="tab-title active">
A
</li> <li class="tab-title">
B
</li> </ul> <div class="tabs-content"> <div class="content active" id="prog-a"> <div class="light-box">%s</div> %s %s <div class="light-box">%s</div> </div> <div class="content" id="prog-b"> <div class="light-box">%s</div> %s %s <div class="light-box">%s</div> </div> </div>]], data.menu.info_prog .. succ.A1, questProg.A, infoReport, data.menu.info_end_A, data.menu.info_prog .. succ.B1, questProg.B, infoReport, data.menu.info_end_B ) else questInfo = mw.ustring.format( [[<div> <div class="light-box">%s</div> %s %s <div class="light-box">%s</div> </div>]], data.menu.info_prog .. succ.A1, questProg.A, infoReport, data.menu.info_end_A ) end end local reward_A_header = data.reward_B1 and mw.ustring.format([[<div style="text-align: center">A</div><hr />]]) or "" local reward_B = data.reward_B1 and mw.ustring.format( [[<div class="medium-6 columns"> <div class="light-box"> <div style="text-align: center">B</div> <hr /> <div style="padding: 0 8px">%s</div> <hr /> <div style="padding: 0 8px">%s</div> <hr /> <div style="padding: 0 8px">%s</div> </div> </div>]], data.reward_B1 and addlink(itemName(data.reward_B1), "物品") or "------", data.reward_B2 and addlink(itemName(data.reward_B2), "物品") or " ", data.reward_B3 and addlink(itemName(data.reward_B3), "物品") or " " ) or "" local otherCondition = "" if data.cnd_famous > 0 then otherCondition = otherCondition .. mw.ustring.format([[ <hr /><div style="text-align: center;">评价值 %s 以上</div> ]], data.cnd_famous) end if data.npcmeetID1 then otherCondition = otherCondition .. mw.ustring.format( [[ <hr /><div style="text-align: center;">牵绊图已登记 %s</div> ]], addlink(data.npcmeetID1.name, "NPC") ) end if data.npcmeetID2 then otherCondition = otherCondition .. mw.ustring.format( [[ <hr /><div style="text-align: center;">牵绊图已登记: %s</div> ]], addlink(data.npcmeetID2.name, "NPC") ) end if data.cnd_questID then otherCondition = otherCondition .. mw.ustring.format( [[ <hr /><div style="text-align: center;">前置任务: %s</div> ]], addlink( data.cnd_questID.title, "任务", data.cnd_questID.npc_id.rlt_lnd.mapID.name .. "/" .. data.cnd_questID.title ) ) end if data.flg_s > 0 then otherCondition = otherCondition .. mw.ustring.format([[<hr /><div style="text-align: center;">主线进度: %s</div>]], data.flg_s) end local npcName = "" if #data.npc_id.mob_name > 0 then npcName = data.npc_id.mob_name else npcName = addlink(data.npc_id.name, "NPC") end if data.npc_id.range_s ~= data.npc_id.range_e and npcName ~= "剧情任务" then npcName = npcName .. " " .. data.npc_id.range_s .. ":00 - " .. data.npc_id.range_e .. ":00" end local timeLimitQuest = "" if data.qst_genre == "限时任务" then timeLimitQuest = [[<div style="text-align: center;">限时任务</div><hr />]] end local wikitext = mw.ustring.format( [[ <div class="row"> <div class="large-6 columns"> <div class="quest-box"> <div class="dark-box"> %s <div class="content" > %s <div style="text-align: center;">%s</div> <hr /> <div style="text-align: center;">%s %s</div> <hr /> <div>%s</div> %s </div> </div> </div> <div class="quest-box"> <div class="dark-box"> %s <div class="content"> <div class="row"> <div class="medium-6 columns"> <div class="light-box">MONEY<div style="float:right">%s</div></div> <div class="light-box">EXP<div style="float:right">%s</div></div> <div class="light-box">评价<div style="float:right">%s</div></div> </div> <div class="medium-6 columns"> <div class="light-box"> %s <div style="padding: 0 8px">%s</div> <hr /> <div style="padding: 0 8px">%s</div> <hr /> <div style="padding: 0 8px">%s</div> </div> </div> %s </div> </div> </div> </div> </div> <div class="large-6 columns"> <div class="quest-box"> <div class="dark-box"> %s <div class="content"> %s </div> </div> </div> </div> </div> ]], frame:expandTemplate {title = "QuestBox/title", args = {"委托条件"}}, timeLimitQuest, npcName, addlink(data.npc_id.rlt_lnd.mapID.name, "任务"), data.npc_id.rlt_lnd.name, data.menu.purpose, otherCondition, frame:expandTemplate {title = "QuestBox/title", args = {"任务报酬"}}, data.reward_money * 10 or "", data.reward_exp * 10 or "", data.up_famous_A or "", reward_A_header, data.reward_A1 and addlink(itemName(data.reward_A1), "物品") or "------", data.reward_A2 and addlink(itemName(data.reward_A2), "物品") or " ", data.reward_A3 and addlink(itemName(data.reward_A3), "物品") or " ", reward_B, frame:expandTemplate {title = "QuestBox/title", args = {"任务内容"}}, questInfo ) return compress(wikitext) end function p.setSmw(data) mw.smw.set( { id = data.row_id, npc = #data.npc_id.mob_name == 0 and data.npc_id.name or data.npc_id.mob_name, money = data.reward_money * 10, exp = data.reward_exp * 10, famous = data.up_famous_A, genre = data.qst_genre } ) for _, v in ipairs({"A1", "A2", "A3", "B1", "B2", "B3"}) do mw.smw.set({reward = data["reward_" .. v] and itemName(data["reward_" .. v])}) end for _, v in ipairs({"A1", "A2", "A3", "A4", "B1", "B2", "B3", "B4"}) do if data["type_succ_" .. v] == "KillEnemy" then mw.smw.set({questEnemy = data["cnd_succ_" .. v].name}) elseif data["type_succ_" .. v] == "GetItem" then mw.smw.set({questItem = itemName(data["cnd_succ_" .. v])}) elseif data["type_succ_" .. v] == "TalkNpc" then mw.smw.set({questNpc = data["cnd_succ_" .. v] and data["cnd_succ_" .. v].name}) end end end function p.fetchDataById(id) return post("bdat_common.JNL_quest", id) end function p.main(frame) local quest_id = frame.args[1] local data = p.fetchDataById(quest_id) p.setSmw(data) -- mw.log(mw.text.jsonEncode(data, mw.text.JSON_PRETTY)) return p.template(frame, data) end return p
该页面使用的模板:
模块:Quest/doc
(
查看源代码
)
返回
模块:Quest
。