Modul:MHI

Aus SchnuppTrupp
Wechseln zu: Navigation, Suche

Die Dokumentation für dieses Modul kann unter Modul:MHI/Doku erstellt werden

--[[
	Variablen:
	MHI:
		Limit: limit, l
		Bild: bild, b
		MHPreis: mhpreis, mh
		Halch: halch, ha
		Nalch: nalch, na
		Gewicht: gewicht, g
	MHITab:
		Bild: bild, b
		Namen: name, n
		MHPreis: mhpreis, mh
		Hohe Alchemie: hohe, ha
		Niedrige Alchemie: nalch, na
		Ladenpreis: laden, la
		Mitglied: mitglied, m
]]
local v = {}

function v.daten(frame)
	local fargs = frame.args 
    --local id = frame:getParent().args[1] -- Hohlt sich die Eingegebene Variable in userem Fall die ID und Speichert sie in die Variable ID
    local daten = fargs.daten or '' -- 
    local variable = mw.ustring.lower( daten ) -- Alle Zeichen auf Kleinbuchstaben ändern
    local id = fargs.id or ''
    local name = frame:callParserFunction{ name= '#mh', args= { id,'n' } }
    
    if variable == 'limit'  or variable == 'l' then -- Handelslimit
    	return mh:limit(frame, id)
    elseif variable == 'bild' or variable == 'b' then -- Bilder
        local zusatz = fargs.zusatz or ''
        return mh:bild(frame, id, zusatz)
    elseif variable == 'mhpreis' or variable == 'mh' then -- Markthallenpreis
    	return frame:callParserFunction{ name= '#mh', args= { id } }
    elseif variable == 'halch' or variable == 'ha' then -- Hohe Alchemie Wert
    	return mh:halch(frame, id)        
    elseif variable == 'nalch' or variable == 'na' then -- Niedriger Alchemie Wert
    	return mh:nalch(frame, id)
    elseif variable == 'laden' or variable == 'la' then -- Preis zu dem Items an einen Laden Verkauft werden können
    	return mh:laden(frame, id)
	elseif variable == 'gewicht' or variable == 'g' then -- Gewicht
		return mh:gewicht(frame, id)
		
    else
    	return 'keinen Parameter eingegeben'
    end
    return id 
	
end

function v.tabelle(frame)
	local fargs = frame.args
	local daten = fargs.daten or ''
    local variable = mw.ustring.lower( daten ) -- Alle Zeichen auf Kleinbuchstaben ändern
    local id = fargs.id or ''
    
    if variable == 'bild'  or variable == 'b' then -- Spalte Bild
    	local itemname = frame:callParserFunction{ name= '#mh', args= { id,'n' } }
    	local beschreibung = frame:callParserFunction{ name= '#mh', args= { id,'b' } }
    	return '|data-sort-value="'..itemname..'"|'..mh:bild(frame, id, beschreibung)
    elseif variable == 'name' or variable == 'n' then -- Namen Spalte
		local itemname = frame:callParserFunction{ name= '#mh', args= { id,'n' } }
		local temp = frame:callParserFunction{ name= '#ifexist', args= { itemname,'[['..itemname..']]',itemname } }
		return '|align="left" width="280px"|'..temp
	elseif variable == 'mhpreis' or variable == 'mh' then -- Spalte MH Preis
		local ItemPreis =frame:callParserFunction{ name= '#mh', args= { id } }
		local MhPreis = mh:mhpreis(frame ,id)
		return '|data-sort-value="'..ItemPreis..'"|'..MhPreis
	elseif variable == 'hohe' or variable == 'ha' then -- Spalte Hohe Alchemie
		local ItemHoheAlch = mh:halch(frame, id)
		if type(ItemHoheAlch) ~= "number" then
			return '|'..ItemHoheAlch
		else
			local ItemHoheAlchPp = frame:callParserFunction{ name= '#pp', args= { ItemHoheAlch } }
			local ItemHoheAlchPl = frame:callParserFunction{ name= '#pl', args= { ItemHoheAlch } }
			return '|'..frame:callParserFunction{ name= '#ifeq', args= { ItemHoheAlch,'0',' ','<span title="'..ItemHoheAlchPl..'">'..ItemHoheAlchPp..'</span>' } }
		end
elseif variable == 'laden' or variable == 'la' then -- Spalte Ladenpreis
		local ItemLadenpreis = mh:laden(frame, id)
		if type(ItemLadenpreis) ~= "number" then
			return '|'..ItemLadenpreis
		else
			local ItemLadenpreisPp = frame:callParserFunction{ name= '#pp', args= { ItemLadenpreis } }
			local ItemLadenpreisPl = frame:callParserFunction{ name= '#pl', args= { ItemLadenpreis } }
			return '|'..frame:callParserFunction{ name= '#ifeq', args= { ItemLadenpreis,'0',' ','<span title="'..ItemLadenpreisPl..'">'..ItemLadenpreisPp..'</span>' } }
		end
	elseif variable == 'nalch' or variable == 'na' then -- Spalte Niedriger Alchemie Preis
		local ItemNiedrigeAlch = mh:nalch(frame, id)
		if type(ItemNiedrigeAlch) ~= "number" then
			return '|'..ItemNiedrigeAlch
		else
			local ItemNiedrigeAlchPp = frame:callParserFunction{ name= '#pp', args= { ItemNiedrigeAlch } }
			local ItemNiedrigeAlchPl = frame:callParserFunction{ name= '#pl', args= { ItemNiedrigeAlch } }
			return '|'..'<span title="'..ItemNiedrigeAlchPl..'">'..ItemNiedrigeAlchPp..'</span>'
		end
	elseif variable == 'mitglied' or variable == 'm' then -- Spalte Mitglied
		local ItemMitglied = frame:callParserFunction{ name= '#mh', args= { id, 'm' } }
		return '|'..frame:callParserFunction{ name= '#ifeq', args= { ItemMitglied,'Ja','[[Datei:Mitglied.png|Mitgliedsgegenstand]]','[[Datei:Nichtmitglied.png|Nicht Mitgliedsgegenstand]]' } }
	else
    	return 'keinen Parameter eingegeben'
    end
    return '' 
end

mh = {balance = 0}
function mh:value (frame,id)
	local value = mw.loadData('Module:MHI/Value')
	local id = frame:callParserFunction{ name= '#mh', args= { id,'id' } }
	if value[id] ~= nil then -- Nur in If bedinung gehen wenn value von id existiert
	    return value[id]
	else 
		return 'Wert fehlt'
	end
end
function mh:halch (frame, id) -- Gibt den Niedrigen Alchemie Wert zurück.
	local halch = mw.loadData('Module:MHI/Halch')
    if halch[id] == nil then -- Wenn der Wert sonst nirgenst näher spezifiziert wurde wird er über die Value berechnet
    	local alchemierbar  = mw.loadData('Module:MHI/Alchemierbar')-- Überprüfe ob Gegenstand Alchemierbar ist
    	if alchemierbar[id] == nil then -- Wenn er nicht Alchemierbar ist wird die Wert über Value berechnet
	    	local value = mw.loadData('Module:MHI/Value')
	    	if value[id] ~= nil then -- Nur in If bedinung gehen wenn value von id existiert
		    	local NalchCalc = value[id]*0.6 -- Value *0,6 Ist der Hohe Alchemie Wert
		    	NalchCalc = math.floor(NalchCalc) -- Niedriger Alchemie Wert abrunden
				return NalchCalc
			else 
				return 'Wert fehlt'
			end
		else
			return ''
		end
	else
		local NalchCalc = nalch[id]
		return NalchCalc
	end
end

function mh:nalch (frame, id) -- Gibt den Niedrigen Alchemie Wert zurück.
	local nalch = mw.loadData('Module:MHI/Nalch')
    if nalch[id] == nil then -- Wenn der Wert sonst nirgenst näher spezifiziert wurde wird er über die Value berechnet
    	local alchemierbar  = mw.loadData('Module:MHI/Alchemierbar')-- Überprüfe ob Gegenstand Alchemierbar ist
    	if alchemierbar[id] == nil then -- Wenn er nicht Alchemierbar ist wird die Wert über Value berechnet
	    	local value = mw.loadData('Module:MHI/Value')
	    	if value[id] ~= nil then -- Nur in If bedinung gehen wenn value von id existiert
		    	local NalchCalc = value[id]*0.4 -- Value *0,4 Ist der Niedrige Alchemie Wert
		    	NalchCalc = math.floor(NalchCalc) -- Niedriger Alchemie Wert abrunden
				return NalchCalc
			else 
				return 'Wert fehlt'
			end
		else
			return ''
		end
	else
		local NalchCalc = nalch[id]
		return NalchCalc
	end
end

function mh:laden (frame, id) -- Gibt den Ladenwert Alchemie Wert zurück.
	local laden = mw.loadData('Module:MHI/Laden')
    if laden[id] == nil then -- Wenn der Wert sonst nirgenst näher spezifiziert wurde wird er über die Value berechnet
    	local handelbar  = mw.loadData('Module:MHI/Handelbar')-- Überprüfe ob Gegenstand Handelbar ist
    	if handelbar[id] == nil then -- Wenn er nicht Handelbar ist wird die Wert über Value berechnet
	    	local value = mw.loadData('Module:MHI/Value')
	    	if value[id] ~= nil then -- Nur in If bedinung gehen wenn value von id existiert
		    	local LadenCalc = value[id]*0.3 -- Value *0,3 Ist der Niedrige Alchemie Wert
		    	LadenCalc = math.floor(LadenCalc) -- Niedriger Alchemie Wert abrunden
				return LadenCalc
			else 
				return 'Wert fehlt'
			end
		else
			return ''
		end
	else
		local LadenCalc = laden[id]
		return LadenCalc
	end
end

function mh:limit (frame, id) -- Handelslimit
	local Handelslimit = mw.loadData('Module:MHI/Limit')
    return Handelslimit[id] or 'Bitte Handelslimit eintragen'
end

function mh:gewicht (frame, id) -- Gewicht
	local Gewicht = mw.loadData('Module:MHI/Gewicht')
    return Gewicht[id] or 'Bitte Gewicht eintragen'
end

function mh:bild (frame, id, zusatz) -- Bild
	local name = frame:callParserFunction{ name= '#mh', args= { id,'name' } }
	if string.len(zusatz)<=1 then zusatz = name end -- Wenn der zusatz nicht gesetzt wurde wird der Name des Items verwendet
    local Bild = mw.loadData('Module:MHI/Bild')
    if Bild[id] == nil then
    	return "[[Datei:"..name..".png|"..zusatz.."]]"
    else
    	return "[[Datei:"..Bild[id].."|"..zusatz.."]]"
    end
end

function mh:mhpreis (frame,id) -- gibt den MH Preis im Richtigen Format zurück
	local ItemPreis = frame:callParserFunction{ name= '#mh', args= { id } }
	local ItemPreisPl = frame:callParserFunction{ name= '#pl', args= { ItemPreis } }
	local ItemPreisPp = frame:callParserFunction{ name= '#pp', args= { ItemPreis } }
	local ItemPreisMax = frame:callParserFunction{ name= '#mh', args= { id,'max'}}
	local ItemPreisMittel = frame:callParserFunction{ name= '#mh', args= { id,'mittel'}}
	local ItemPreisMin = frame:callParserFunction{ name= '#mh', args= { id,'min'}}
	local ItemPreisaufzeichnung = frame:callParserFunction{ name= '#mh', args= { id,'s' } }
	return '<span title="Preis Aktuell: '..ItemPreisPl..' Gm&#013;Maximal Preis: '..ItemPreisMax..' Gm&#013;Mittel Preis: '..ItemPreisMittel..' Gm&#013;Minimal Preis: '..ItemPreisMin..' Gm&#013;Preisaufzeichnung seit: '..ItemPreisaufzeichnung..'">'..ItemPreisPp..'</span>'
end
return v