Modul:PLaden: Unterschied zwischen den Versionen

Aus SchnuppTrupp
Wechseln zu: Navigation, Suche
 
(19 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 38: Zeile 38:
 
local werttotal = 0
 
local werttotal = 0
 
local i = 1
 
local i = 1
while (fargs[i] ~= nil and i<=2) -- Maximal 50 Einträge in einer Ladenliste
+
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
 
do
  local inhalt = split(fargs[i], ";") -- Problem hohlt sich variable i und nicht Variable 1 oder 2...
 
 
   local mhpreis = frame:callParserFunction{ name= '#mh', args= { inhalt[1] } }  -- Gegenstand Name oder ID in inhalt[1]
 
   local mhpreis = frame:callParserFunction{ name= '#mh', args= { inhalt[1] } }  -- Gegenstand Name oder ID in inhalt[1]
 
   lagertotal = lagertotal + tonumber(inhalt[2]) -- Lager
 
   lagertotal = lagertotal + tonumber(inhalt[2]) -- Lager
   local vkpreis = tonumber(inhalt[3]) -- Laden VK Preis
+
 
  werttotal = werttotal + ((mhpreis-vkpreis)*tonumber(inhalt[2]))
+
   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
 
   i = i+1
 +
  if fargs[i] ~= nil then
 +
  inhalt = split(fargs[i], ";")
 +
  else
 +
  inhalt [1] = nil
 +
  inhalt [2] = nil
 +
  inhalt [3] = nil
 +
  end
 
end
 
end
 
lagertotalpl = frame:callParserFunction{ name= '#pl', args= { lagertotal } }
 
lagertotalpl = frame:callParserFunction{ name= '#pl', args= { lagertotal } }
 
werttotalpl = frame:callParserFunction{ name= '#pl', args= { werttotal } }
 
werttotalpl = frame:callParserFunction{ name= '#pl', args= { werttotal } }
return 'class="sortbottom"\n! !!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|-'
+
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
 
end
  

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