ARK Survival Evolved Wiki

วิกินี้ไม่ใช่วิกิทางการอีกต่อไป
ประกาศเมื่อ 22 เมษายน 2022 ตามเวลาประเทศไทย

READ MORE

ARK Survival Evolved Wiki
Advertisement

เอกสารการใช้งานสำหรับมอดูลนี้อาจสร้างขึ้นที่ มอดูล:RateList/doc

local p = {}

	-- Translation
	local Strings = {
		And = "และ",
		XP = "[[Experience|XP]]",
		Harvesting = "[[การเลี้ยงสิ่งมีชีวิต#การเก็บเกี่ยวทรัพยากร|การเก็บทรัพยากร]]",
		Taming = "[[การเชื่อง]]",
		Breeding = "[[การผสมพันธุ์]] ([[การอิมพรินต์]], [[การผสมพันธุ์|การเติบโต]], [[การผสมพันธุ์|ฟักไข่/ตั้งครรภ์]])",
		MatingInterval = "[[การผสมพันธุ์#ช่วงระยะเวลาการผสมพันธุ์|ช่วงเวลาการผสมพันธุ์]]",
		Hexagon = "[[HLN-A (Genesis)|โบนัส Hexagon]]",
	}
	
	function p.main( frame )
		local tArgs = require('Dev:Arguments').getArgs(frame)
		
		local t = {
			{ setting = Strings.XP,             rate = tArgs.xp },
			{ setting = Strings.Harvesting,     rate = tArgs.harvesting },
			{ setting = Strings.Taming,         rate = tArgs.taming },
			{ setting = Strings.Breeding,       rate = tArgs.breeding },
			{ setting = Strings.MatingInterval, rate = tArgs.matingInterval },
			{ setting = Strings.Hexagon,        rate = tArgs.hexagon },
		}
		
		local rates = {}
		
		-- Connect strings with commas. Ternary operator
		for k, v in pairs(t) do
			if v.rate ~= nil then --Checking tArgs
			 rates[v.rate] = rates[v.rate] and (rates[v.rate] .. ', ' .. v.setting) or v.setting
			end
		end
		
		local out = {}
		
		-- Adding string "and" & insert to new table for sorting rate 
		for k, v in pairs(rates) do
			v = v:gsub("(.*), (.-)", "%1 " .. Strings.And .. " %2")
    		table.insert(out, {rate = k, setting = v})
    	end
    	
    	-- Sorting rates in descending order
    	table.sort(out, function(a,b) return a.rate > b.rate end)
    	
    	-- Generate HTML list items inside unordered (bulleted) lists 
		local rateslist = mw.html.create('ul')
		for i, list in ipairs(out) do
			local li = rateslist:tag('li')
				:wikitext(list.rate .. "x " .. list.setting)
		end
		return tostring(rateslist)
	end
	
return p
Advertisement