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
		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 == 'nalch' or variable == 'na' then -- Niedriger Alchemie Wert
    	return mh:nalch(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 beschreibung = frame:callParserFunction{ name= '#mh', args= { id,'b' } }
    	return 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 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>'
	elseif variable == 'hohe' or variable == 'ha' then -- Spalte Hohe Alchemie
		local ItemHoheAlch = frame:callParserFunction{ name= '#mh', args= { id, 'h' } }
		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>' } }
	elseif variable == 'laden' or variable == 'la' then -- Spalte Ladenpreis
		local ItemLadenpreis = frame:callParserFunction{ name= '#mh', args= { id, 'l' } }
		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>' } }
	elseif variable == 'nalch' or variable == 'na' then -- Spalte Niedriger Alchemie Preis
		local ItemNiedrigeAlch = mh:nalch(frame, id)
		local ItemNiedrigeAlchPp = frame:callParserFunction{ name= '#pp', args= { ItemNiedrigeAlch } }
		local ItemNiedrigeAlchPl = frame:callParserFunction{ name= '#pl', args= { ItemNiedrigeAlch } }
		return '|'..'<span title="'..ItemNiedrigeAlchPl..'">'..ItemNiedrigeAlchPp..'</span>'
	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: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 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 'Bitte Value eintragen'
		end
	else
		local NalchCalc = nalch[id]
		return NalchCalc
	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

return v