Module:Test: Difference between revisions

From Heroes 3 wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 3: Line 3:
function p.test(frame)
function p.test(frame)
local items = loadData("Creatures")
local items = loadData("Creatures")
return getKeys(items) .. "\n" .. getValues(items)
return getKeys(items) .. "br" .. getValues(items)
end
end


function getValues(items)
function getKeys(items)
local result = ""
local result = ""
for k, v in pairs(items) do
for k, v in pairs(items) do
result = result .. v["name"] .. "'s attack is " .. v["attack"] .. ", "
result = result .. k .. ", "
end
end
result = result:sub(1, -3)
result = result:sub(1, -3)
Line 15: Line 15:
end
end


function getKeys(items)
function getValues(items)
local result = ""
local result = ""
for k, v in pairs(items) do
for k, v in pairs(items) do
result = result .. k .. ", "
result = result .. v["name"] .. "'s attack is " .. v["attack"] .. ", "
end
end
result = result:sub(1, -3)
result = result:sub(1, -3)

Revision as of 20:26, 28 March 2025

{{#invoke:test|test}}

Lua error at line 20: attempt to concatenate field 'name' (a nil value).


local p = {}

function p.test(frame)
	local items = loadData("Creatures")
	return getKeys(items) .. "br" .. getValues(items)
end

function getKeys(items)
	local result = ""
	for k, v in pairs(items) do
		result = result .. k .. ", "
	end
	result = result:sub(1, -3)
	return result
end

function getValues(items)
	local result = ""
	for k, v in pairs(items) do
		result = result .. v["name"] .. "'s attack is " .. v["attack"] .. ", "
	end
	result = result:sub(1, -3)
	return result
end

function loadData(name)
	if mw.title.new(name, 828).exists then
		return mw.loadData("Module:" .. name)
	end
	return nil
end

return p