全站通知:
模块:Quest/GenerateNameMap
刷
历
编
< 模块:Quest
跳到导航
跳到搜索
-- Module:Quests/GenerateNameMap (临时调试用)
local p = {}
function p.generateMap(frame)
local questData = mw.loadData("Module:Quests/data")
-- 存储名称出现次数
local nameCount = {}
-- 存储结果
local result = {}
-- 第一遍:统计重名
for id, info in pairs(questData) do
local parts = {}
for match in (info.."/"):gmatch("(.-)/") do
table.insert(parts, match)
end
local name = parts[2] or ""
if name and name ~= "" then
nameCount[name] = (nameCount[name] or 0) + 1
end
end
-- 存储每个名称的当前序号
local currentCount = {}
-- 第二遍:生成映射(按ID排序)
local sortedIds = {}
for id in pairs(questData) do
table.insert(sortedIds, id)
end
table.sort(sortedIds, function(a, b) return tonumber(a) < tonumber(b) end)
for _, id in ipairs(sortedIds) do
local info = questData[id]
local parts = {}
for match in (info.."/"):gmatch("(.-)/") do
table.insert(parts, match)
end
local name = parts[2] or ""
if name and name ~= "" then
local finalName = name
-- 如果有重名,添加序号
if nameCount[name] > 1 then
currentCount[name] = (currentCount[name] or 0) + 1
finalName = name .. currentCount[name]
end
table.insert(result, string.format(' ["%s"] = "%s",',
finalName:gsub('"', '\\"'), id))
end
end
return '<pre>local questNameToId = {\n' .. table.concat(result, '\n') .. '\n}</pre>'
end
--[[
["神秘的齐1"] = "2", -- 彩虹贝壳
["神秘的齐2"] = "3", -- 甜菜
["神秘的齐3"] = "4", -- 太阳精华
["神秘的齐4"] = "5", -- 木材堆
["入门1"] = "15", -- 击杀史莱姆
["入门2"] = "16", -- 进入探险家公会
["考古发现1"] = "23", -- 去博物馆
["考古发现2"] = "24", -- 捐赠古物
["……1"] = "128", -- 阿比盖尔项链
["……2"] = "129", -- 卡洛琳项链
--]]
return p

沪公网安备 31011002002714 号