Modul:PLaden: Unterschied zwischen den Versionen
Aus SchnuppTrupp
(45 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 20: | Zeile 20: | ||
local vkpreispl = frame:callParserFunction{ name= '#pl', args= { vkpreis } } | local vkpreispl = frame:callParserFunction{ name= '#pl', args= { vkpreis } } | ||
local mhpreis = mh:mhpreis(frame,id) | local mhpreis = mh:mhpreis(frame,id) | ||
− | local wertlagerpl = mhp * lager | + | local wertlagerpl = (mhp-vkpreis) * lager |
wertlagerpl = frame:callParserFunction{ name= '#pl', args= { wertlagerpl } } | wertlagerpl = frame:callParserFunction{ name= '#pl', args= { wertlagerpl } } | ||
vkpreis=tonumber(vkpreis) | vkpreis=tonumber(vkpreis) | ||
local gewinninv | 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|-' | |
− | local | + | |
− | return '|'..bild..'||align="left" width="280px"|'..name..'||'..lagerpl..'||'..vkpreispl..'||'..mhpreis..'||'..wertlagerpl..'||'.. | + | |
+ | 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], ";") | ||
+ | local c1 = fargs.c1 | ||
+ | local c2 = fargs.c2 | ||
+ | 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 | ||
+ | |||
+ | if inhalt[3]== nil or inhalt[3]== '' or inhalt[3]== 'null' then -- wenn der Verkaufspreis nicht angegeben wurde dann automatisch value verwenden | ||
+ | vkpreis = mh:value(frame,inhalt[1]) | ||
+ | else | ||
+ | vkpreis = tonumber(inhalt[3]) | ||
+ | end | ||
+ | |||
+ | if (mhpreis-vkpreis) >0 then -- nur wenn der der Kauf keinen Verlust gibt | ||
+ | werttotal = werttotal + ((mhpreis-vkpreis)*tonumber(inhalt[2])) | ||
+ | end | ||
+ | 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="2" |<rskarte c1="'..c1..'" c2="'..c2..'" xsize="250" ysize="150" zoom="1" map="Runescape"/>||<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 | end | ||
return v | return v |
Aktuelle Version vom 27. Januar 2021, 16:57 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], ";") local c1 = fargs.c1 local c2 = fargs.c2 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 if inhalt[3]== nil or inhalt[3]== '' or inhalt[3]== 'null' then -- wenn der Verkaufspreis nicht angegeben wurde dann automatisch value verwenden vkpreis = mh:value(frame,inhalt[1]) else vkpreis = tonumber(inhalt[3]) end if (mhpreis-vkpreis) >0 then -- nur wenn der der Kauf keinen Verlust gibt werttotal = werttotal + ((mhpreis-vkpreis)*tonumber(inhalt[2])) end 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="2" |<rskarte c1="'..c1..'" c2="'..c2..'" xsize="250" ysize="150" zoom="1" map="Runescape"/>||<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