模块:Collection
来自乐园数据管理室
此模块的文档可以在模块:Collection/doc创建
local p = {} local getArgs = require("Module:Arguments").getArgs local loadJson = require("Module:JSON").loadJson function p.craftMaterials(frame) local args = getArgs(frame) local items = {} local i = 1 while (args[i] and args[i + 1]) do table.insert(items, {name = args[i], amount = args[i + 1]}) i = i + 2 end local itemNamespace = "物品" local currentTitle = mw.title.getCurrentTitle() if "黄金之国" == mw.ustring.sub(tostring(currentTitle), 1, 4) then itemNamespace = "黄金之国物品" end local wikitext = "" for i, v in ipairs(items) do local div = mw.html.create("div") local itemTitle = mw.title.new(v["name"], itemNamespace) itemTitle = "[[" .. tostring(itemTitle) .. "|" .. v["name"] .. "]]" div:wikitext(itemTitle .. " ×" .. v["amount"]) wikitext = wikitext .. tostring(div) end return wikitext end function p.popList() local namespace = "采集点" local currentTitle = mw.title.getCurrentTitle() if "黄金之国" == mw.ustring.sub(tostring(currentTitle), 1, 4) then namespace = "黄金之国采集点" end local result = mw.smw.ask { "[[" .. namespace .. ":+]][[地域::" .. tostring(currentTitle.text) .. "]]", "?单次采集数量", "?采集道具1", "?采集概率1", "?采集道具2", "?采集概率2", "?采集道具3", "?采集概率3", "?采集道具4", "?采集概率4", "limit=200", "sort=CollectionTableId" } local body = "" for i, v in ipairs(result) do local page = mw.ustring.gsub(v[1], "|.+/", "|") body = body .. mw.ustring.format( [[|- | %s || %s || %s || %s || %s || %s || %s || %s || %s || %s ]], page, v["单次采集数量"], v["采集道具1"] or "", v["采集概率1"] or "", v["采集道具2"] or "", v["采集概率2"] or "", v["采集道具3"] or "", v["采集概率3"] or "", v["采集道具4"] or "", v["采集概率4"] or "" ) end local backLink = '<div><small><span style="color:#666"><</span> [[' .. namespace .. "]]</small></div>" return mw.ustring.format( [[%s {| class="wikitable sortable" |- ! 采集点类型 !! 数量 !! 道具 !! 概率 !! 道具 !! 概率 !! 道具 !! 概率 !! 道具 !! 概率 %s |}]], backLink, body ) end function p.setGmkData(frame) local args = getArgs(frame) local gmk_collection = loadJson("Gmk/collection") local gmkId = args["CollectionPointId"] mw.smw.set {["CollectionPointId"] = gmkId} local match = 0 for i, v in ipairs(gmk_collection) do if gmkId == v["Name"] then match = match + 1 mw.smw.subobject( { ["PosX"] = {v["PosX"]}, ["PosY"] = {v["PosY"]}, ["PosZ"] = {v["PosZ"]}, ["areas"] = v["areas"] }, gmkId ) end end if match ~= 1 then error("No valid collection gmk Id: " .. gmkId) end end return p