Modul:PLaden: Unterschied zwischen den Versionen
Aus SchnuppTrupp
Zeile 47: | Zeile 47: | ||
i = i+1 | i = i+1 | ||
if fargs[i] ~= nil then | if fargs[i] ~= nil then | ||
− | + | inhalt = split(fargs[i], ";") | |
else | else | ||
inhalt [1] = nil | inhalt [1] = nil |
Version vom 24. November 2020, 18:34 Uhr
Die Dokumentation für dieses Modul kann unter Modul:PLaden/Doku erstellt werden
local v = {} function v.laden(frame) local fargs = frame.args local id = fargs.id or '' local lager = tonumber(fargs.lager or '1') local vkpreis = fargs.vkpreis or nil local MHI = require( "Module:MHI" ) -- Läd Modul MHI um die Funktionen zu nutzen local mhp = frame:callParserFunction{ name= '#mh', args= { id } } -- Speichert den MHPreis local bild = mh:bild(frame,id,'') local name = frame:callParserFunction{ name= '#mh', args= { id,'n' } } name = frame:callParserFunction{ name= '#ifexist', args= { name,'[['..name..']]',name } } local lagerpl = frame:callParserFunction{ name= '#pl', args= { lager } } if vkpreis=='null' then vkpreis = mh:value(frame,id) else vkpreis = tonumber(vkpreis) end local vkpreispl = frame:callParserFunction{ name= '#pl', args= { vkpreis } } local mhpreis = mh:mhpreis(frame,id) local wertlagerpl = (mhp-vkpreis) * lager wertlagerpl = frame:callParserFunction{ name= '#pl', args= { wertlagerpl } } vkpreis=tonumber(vkpreis) local gewinninv local ItemMitglied = frame:callParserFunction{ name= '#mh', args= { id, 'm' } } local mitglied = '|'..frame:callParserFunction{ name= '#ifeq', args= { ItemMitglied,'Ja','[[Datei:Mitglied.png|Mitgliedsgegenstand]]','[[Datei:Nichtmitglied.png|Nicht Mitgliedsgegenstand]]' } } return '|'..bild..'||align="left" width="280px"|'..name..'||'..lagerpl..'||'..vkpreispl..'||'..mhpreis..'||'..wertlagerpl..'||'..mitglied..'\n|-' end function v.gesamt(frame) local fargs = frame.args local MHI = require( "Module:MHI" ) -- Läd Modul MHI um die Funktionen zu nutzen local lagertotal = 0 local werttotal = 0 local i = 1 local inhalt = split(fargs[i], ";") while (inhalt[2] ~= nil and fargs[i] ~= '' and i<=40) -- Maximal 40 Einträge in einer Ladenliste do local mhpreis = frame:callParserFunction{ name= '#mh', args= { inhalt[1] } } -- Gegenstand Name oder ID in inhalt[1] lagertotal = lagertotal + tonumber(inhalt[2]) -- Lager local vkpreis = tonumber(inhalt[3]) -- Laden VK Preis werttotal = werttotal + ((mhpreis-vkpreis)*tonumber(inhalt[2])) i = i+1 if fargs[i] ~= nil then inhalt = split(fargs[i], ";") else inhalt [1] = nil inhalt [2] = nil inhalt [3] = nil end end lagertotalpl = frame:callParserFunction{ name= '#pl', args= { lagertotal } } werttotalpl = frame:callParserFunction{ name= '#pl', args= { werttotal } } return '! !!align="left" colspan="1" |<b><span title="Gesamter Verkaufswert wenn alle Gegenstände eingekauft werden">Gesamt Wert:</span></b>||<b>'..lagertotalpl..'</b>|| || ||<b>'..werttotalpl..'</b>\n|-' end function split(s, delimiter) result = {}; for match in (s..delimiter):gmatch("(.-)"..delimiter) do table.insert(result, match); end return result; end return v