Diferencia entre revisiones de «Módulo:Tcartprice»

De Stardew Valley Wiki
Ir a la navegación Ir a la búsqueda
(Página creada con «local p = {} function p.tprice(frame) local price = frame.args["price"] local separator = frame.args["separator"] local gold = frame.args["gold"] local space = string.…»)
 
 
(No se muestran 12 ediciones intermedias del mismo usuario)
Línea 23: Línea 23:
 
end
 
end
 
else
 
else
if ((tonumber(price) * 3) <= 100) then
+
local lowprice = tonumber(price) * 3
formattedprice = formattedprice .. "100"
+
local highprice = tonumber(price) * 5
 +
local fmlowprice = tostring(mw.language.getContentLanguage():formatNum(lowprice))
 +
local fmhighprice = tostring(mw.language.getContentLanguage():formatNum(highprice))
 +
 +
if (lowprice <= 100) then
 +
formattedprice = formattedprice .. "100"
 +
elseif (ulang ~= "ES") then
 +
formattedprice = formattedprice .. fmlowprice
 
else
 
else
if (((tonumber(price) * 3) < 1000) or (ulang ~= "ES")) then
+
--Spanish
formattedprice = formattedprice .. mw.language.getContentLanguage():formatNum(tostring(tonumber(price) * 3))
+
if (lowprice < 1000) then
else
+
formattedprice = formattedprice .. fmlowprice
local temp = tonumber(price) * 3
+
elseif (lowprice < 10000) then
if (temp < 10000) then
+
local length = #(fmlowprice)
length = #(tostring(temp))
+
local temp = string.sub(fmlowprice, -3)
temp2 = string.sub(tostring(temp), -3)
+
formattedprice = formattedprice .. string.sub(fmlowprice, 1, (length-3)) .. "." .. temp
formattedprice = formattedprice .. string.sub(tostring(temp), 1, (length-3)) .. "." .. temp2
+
else
else
+
local temp = {mw.ustring.gsub(tostring(fmlowprice), "%s" , ".")}
temp = {mw.ustring.gsub(tostring(temp), "%s" , ".")}
+
formattedprice = formattedprice .. temp[1]
formattedprice = formattedprice .. temp[1]
 
end
 
 
end
 
end
 
end
 
end
 
+
 
 
if space == "true" then formattedprice = formattedprice .. " " .. separator .. " "
 
if space == "true" then formattedprice = formattedprice .. " " .. separator .. " "
 
else formattedprice = formattedprice .. separator
 
else formattedprice = formattedprice .. separator
 
end
 
end
+
if ((tonumber(price) * 5) <= 1000) then
+
if (highprice <= 1000) then
formattedprice = formattedprice .. tostring(mw.language.getContentLanguage():formatNum(1000))
+
if (ulang ~= "ES") then
 +
formattedprice = formattedprice .. tostring(mw.language.getContentLanguage():formatNum(1000))
 +
else formattedprice = formattedprice .. "1.000"
 +
end
 +
elseif (ulang ~= "ES") then
 +
formattedprice = formattedprice .. fmhighprice
 
else
 
else
local temp = tonumber(price) * 5
+
--Spanish and highprice > 1000
if (temp < 10000) then
+
if (highprice < 10000) then
length = #(tostring(temp))
+
local length = #(fmhighprice)
temp2 = string.sub(tostring(temp), -3)
+
local temp = string.sub(fmhighprice, -3)
formattedprice = formattedprice .. string.sub(tostring(temp), 1, (length-3)) .. "." .. temp2
+
formattedprice = formattedprice .. string.sub(fmhighprice, 1, (length-3)) .. "." .. temp
else
+
else
temp = {mw.ustring.gsub(tostring(temp), "%s" , ".")}
+
local temp = {mw.ustring.gsub(tostring(fmhighprice), "%s" , ".")}
formattedprice = formattedprice .. temp[1]
+
formattedprice = formattedprice .. temp[1]
end
+
end
 
end
 
end
 
end
 
end
 
 
formattedprice = formattedprice .. gold
+
return formattedprice .. gold
 
 
return formattedprice
 
 
end
 
end
  
 
return p
 
return p

Revisión actual del 06:02 31 may 2023

Description

This module calculates the price range for an item sold at the Carro Ambulante.

Note: This module performs special handling of Spanish numbers, inserting a "." instead of a space as a separator for numbers over 1000, in accordance with (most instances of) numbers in the Spanish translation of the game. This differs from the mediawiki standard for displaying numbers in Spanish, which is based on recommendations of the Real Academia Española.

This module can be copy/pasted into all languages without alteration.

Please report any problems or issues with the module on the discussion page for Template:Tprice.


local p = {}

function p.tprice(frame)
	local price = frame.args["price"]
	local separator = frame.args["separator"]
	local gold = frame.args["gold"]
	local space = string.lower(frame.args["spacearoundseparator"])
	local ulang = string.upper(mw.language.getContentLanguage():getCode())

	local formattedprice = "[[File:Gold.png|18px|link=]]"

	if (string.lower(price) == "furniture") then
		formattedprice = formattedprice .. "250"
		
		if space == "true" then formattedprice = formattedprice .. " " .. separator .. " "
		else formattedprice = formattedprice .. separator
		end

		if (ulang ~= "ES") then
			formattedprice = formattedprice .. tostring(mw.language.getContentLanguage():formatNum(2500))
		else
			formattedprice = formattedprice .. "2.500"
		end
	else
		local lowprice = tonumber(price) * 3
		local highprice = tonumber(price) * 5
		local fmlowprice = tostring(mw.language.getContentLanguage():formatNum(lowprice))
		local fmhighprice = tostring(mw.language.getContentLanguage():formatNum(highprice))
		
		if (lowprice <= 100) then
			formattedprice = formattedprice .. "100"		
		elseif (ulang ~= "ES") then 	
			formattedprice = formattedprice .. fmlowprice
		else
			--Spanish
			if (lowprice < 1000) then
				formattedprice = formattedprice .. fmlowprice			
			elseif (lowprice < 10000) then
				local length = #(fmlowprice)
				local temp = string.sub(fmlowprice, -3)
				formattedprice = formattedprice .. string.sub(fmlowprice, 1, (length-3)) .. "." .. temp
			else				
				local temp = {mw.ustring.gsub(tostring(fmlowprice), "%s" , ".")}
				formattedprice = formattedprice .. temp[1]
			end
		end
			
		if space == "true" then formattedprice = formattedprice .. " " .. separator .. " "
		else formattedprice = formattedprice .. separator
		end
		
		if (highprice <= 1000) then
			if (ulang ~= "ES") then 
				formattedprice = formattedprice .. tostring(mw.language.getContentLanguage():formatNum(1000))
			else formattedprice = formattedprice .. "1.000"
			end		
		elseif (ulang ~= "ES") then 	
			formattedprice = formattedprice .. fmhighprice
		else
			--Spanish and highprice > 1000			
			if (highprice < 10000) then
				local length = #(fmhighprice)
				local temp = string.sub(fmhighprice, -3)
				formattedprice = formattedprice .. string.sub(fmhighprice, 1, (length-3)) .. "." .. temp
			else				
				local temp = {mw.ustring.gsub(tostring(fmhighprice), "%s" , ".")}
				formattedprice = formattedprice .. temp[1]
			end
		end
	end
	
	return formattedprice .. gold
end

return p