From Dark and Darker Wiki
m (debug) |
m (old create_loot_table() removed) |
||
(13 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
local monster_grades = {"Common", "Elite", "Nightmare"} --array used just for ordering them | local monster_grades = {"Common", "Elite", "Nightmare"} --array used just for ordering them | ||
function p. | function p.load_data_id_page(id) | ||
local data_page_name = "Data:" .. id .. ".json" | |||
return mw.loadJsonData(data_page_name) | |||
local | |||
end | end | ||
Line 78: | Line 20: | ||
for i, monster_grade_key in ipairs(monster_grades) do --mgk of --Elite | for i, monster_grade_key in ipairs(monster_grades) do --mgk of --Elite | ||
-- Get the monster | -- Get the monster | ||
monster_grade_id = my_monster_ids[monster_grade_key] --Id_Monster_GhostKing_Elite | |||
monster_grade_id = | |||
if monster_grade_id ~= nil then | if monster_grade_id ~= nil then | ||
spawner_ids = monster_ids[monster_grade_id]["spawner_ids"] | |||
spawner_ids = monster_ids[monster_grade_id]["spawner_ids"] | outputted_string = outputted_string .. create_monster_grade_loot_tables(monster_grade_id, spawner_ids) | ||
end | end | ||
end | end | ||
return outputted_string | |||
end | |||
function create_monster_grade_loot_tables(monster_grade_id, spawner_ids) | |||
if type(monster_grade_id) == "table" and monster_grade_id.args then -- if called via wikitext instead of lua | |||
local frame = monster_grade_id | |||
monster_grade_id = frame.args[1] -- Id_Monster_GhostKing_Elite | |||
spawner_ids = frame.args[2] -- {"Id_Spawner_New_Monster_GhostKing": true} | |||
end | |||
local outputted_string = "" | |||
for spawner_id, b in pairs(spawner_ids) do | |||
outputted_string = outputted_string .. create_spawner_loot_tables(spawner_id) | |||
end | |||
return outputted_string | return outputted_string | ||
end | end | ||
Line 98: | Line 50: | ||
end | end | ||
return " | local spawner_data = p.load_data_id_page(spawner_id) | ||
if spawner_data == nil then return "Spawner data page for id '" .. spawner_id "' not found." end | |||
return "cool a spawner!" .. spawner_id .. "<br>" | |||
end | end | ||
return p | return p |
Latest revision as of 23:26, 25 May 2025
Lua error in ...ribunto/includes/engines/LuaCommon/lualib/mwInit.lua at line 17: bad argument #1 to 'old_pairs' (table expected, got nil).
local utils = require("Module:Utilities")
local p = {}
local monsters_data = mw.loadJsonData("Data:Monster.json")
local monster_localized_names = monsters_data["monster_localized_names"] --nickname
local monster_ids = monsters_data["monster_ids"] --nickname
local monster_grades = {"Common", "Elite", "Nightmare"} --array used just for ordering them
function p.load_data_id_page(id)
local data_page_name = "Data:" .. id .. ".json"
return mw.loadJsonData(data_page_name)
end
function p.create_monster_loot_tables(frame)
local monster_localized_name = frame.args[1] -- Ghost King
local my_monster_ids = monster_localized_names[monster_localized_name] -- {Common: id of Common monster, }
if my_monster_ids == nil then return "Monster '" .. monster_localized_name .. "' was not found in monsters_data." end
local outputted_string = ""
for i, monster_grade_key in ipairs(monster_grades) do --mgk of --Elite
-- Get the monster
monster_grade_id = my_monster_ids[monster_grade_key] --Id_Monster_GhostKing_Elite
if monster_grade_id ~= nil then
spawner_ids = monster_ids[monster_grade_id]["spawner_ids"]
outputted_string = outputted_string .. create_monster_grade_loot_tables(monster_grade_id, spawner_ids)
end
end
return outputted_string
end
function create_monster_grade_loot_tables(monster_grade_id, spawner_ids)
if type(monster_grade_id) == "table" and monster_grade_id.args then -- if called via wikitext instead of lua
local frame = monster_grade_id
monster_grade_id = frame.args[1] -- Id_Monster_GhostKing_Elite
spawner_ids = frame.args[2] -- {"Id_Spawner_New_Monster_GhostKing": true}
end
local outputted_string = ""
for spawner_id, b in pairs(spawner_ids) do
outputted_string = outputted_string .. create_spawner_loot_tables(spawner_id)
end
return outputted_string
end
function create_spawner_loot_tables(spawner_id)
if type(spawner_id) == "table" and spawner_id.args then -- if called via wikitext instead of lua
local frame = spawner_id
spawner_id = frame.args[1]
end
local spawner_data = p.load_data_id_page(spawner_id)
if spawner_data == nil then return "Spawner data page for id '" .. spawner_id "' not found." end
return "cool a spawner!" .. spawner_id .. "<br>"
end
return p