Modul:PLaden: Unterschied zwischen den Versionen

Aus SchnuppTrupp
Wechseln zu: Navigation, Suche
 
(38 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)
Zeile 33: Zeile 33:
 
function v.gesamt(frame)
 
function v.gesamt(frame)
 
local fargs = frame.args
 
local fargs = frame.args
local wert = fargs.wert or '0'
+
local MHI = require( "Module:MHI" ) -- Läd Modul MHI um die Funktionen zu nutzen
wert = tonumber(wert)  
+
local wert = frame:callParserFunction{ name= '#pl', args= { wert } }
+
local lagertotal = 0
return '|align="left" |Gesamt||'..wert..'\n|-'
+
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