Modul:ZauberNachGrad: Unterschied zwischen den Versionen

Aus Splitterwiki
Zur Navigation springen Zur Suche springen
 
(22 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
--[[
 
--[[
Diese funktion nimmt eine komma separierte Liste von Zaubern (arg1)
+
Sortiert Zauber einer Magieschule nach ihren Grad
und sortiert sie nach ihren Grad in einer Magieschule (arg2)
+
Todo: Ausgabe in Tabellenform
 +
Test ob wirklich Fertigkeitentyp=Magieschule um lua fehler zu vermeiden
 
--]]
 
--]]
  
Zeile 8: Zeile 9:
  
 
function p.createList( frame )
 
function p.createList( frame )
    local ZauberListe = frame.args['ZauberListe']
 
 
     local Schule = frame.args['Schule']
 
     local Schule = frame.args['Schule']
     if ZauberListe == nil or Schule == nil-- Wenn Argument1 oder 2 Leer, endet der script hier
+
     if Schule == nil
     then return nil
+
     then return nil -- Schule leer hier beenden
 
     end
 
     end
--Liste ist nicht leer, für jeden Zauber Grad und Kurzbeschreibung in Erfahrung bringen
+
local ReturnString = "<h2> Zauber der " .. Schule .."</h2>" -- String für die rückgabe
local ReturnString = "" -- String für die rückgabe
+
local grad = 0
local ZauberSplit = mw.text.split(ZauberListe, ",")  -- Zauber bei , trennen
+
while grad <= 5 do -- Für jeden Zaubergrad 0,1,2,3,4,5 folgendes durchführen
for key,value in pairs(ZauberSplit) -- Über die Zauber table gehen ...
+
-- Konstruiere eine Überschrift für Abschnitt
do
+
ReturnString = ReturnString .. '<h3>Zaubergrad ' .. grad ..'</h3>'
--[[
+
-- Finde alle Zauber mit den entsprechenden Grad in der Zauberschule
SemanticWiki API query wobei value der name des Zaubers ist
+
local queryResult =  mw.smw.ask('[[Category::Zauber]][[' .. Schule ..'::' .. grad ..'|?Seitentitel=1|?Kurzbeschreibung=2|mainlabel=-')  
Nummerierung der Ergebnisse spätere weiter Verwendung
+
local i = 1
1 Kurzbeschreibung
+
while i <= table.getn(queryResult) -- gehe durch die einzelnen Zauber eines Grades
    2 Grad in Magieschule
+
do
    ]]--
+
ReturnString = ReturnString .. '[['..queryResult[i][1] .. ']]<small> (' .. queryResult[i][2]  -- nutze i um den Zauber in der Tabelle abzufragen, 1 ist die Titel, 2 Beschrebinung
local queryResult =  mw.smw.ask('[['.. value ..']]|?Kurzbeschreibung=1|mainlabel=-')  
+
ReturnString = ReturnString ..')</small><br>' -- Einige Formatierungen
ReturnString = ReturnString .. value .. ' (' .. queryResult[1][1] .. ') '
+
i = i + 1
end
+
end
 +
grad = grad + 1
 +
end
 
return ReturnString
 
return ReturnString
 
end
 
end
  
 
return p
 
return p

Aktuelle Version vom 21. November 2020, 21:51 Uhr

Die Dokumentation für dieses Modul kann unter Modul:ZauberNachGrad/Doku erstellt werden

--[[
Sortiert Zauber einer Magieschule nach ihren Grad
Todo: Ausgabe in Tabellenform
	Test ob wirklich Fertigkeitentyp=Magieschule um lua fehler zu vermeiden
--]]


local p = {} --local p = {} -- p steht für Paket (engl. package)

function p.createList( frame )
    local Schule = frame.args['Schule']
    if Schule == nil
    	then return nil -- Schule leer hier beenden
    end
	local ReturnString = "<h2> Zauber der " .. Schule .."</h2>" -- String für die rückgabe
	local grad = 0
	while grad <= 5 do 	-- Für jeden Zaubergrad 0,1,2,3,4,5 folgendes durchführen
		-- Konstruiere eine Überschrift für Abschnitt
		ReturnString = ReturnString .. '<h3>Zaubergrad ' .. grad ..'</h3>'
		-- Finde alle Zauber mit den entsprechenden Grad in der Zauberschule
		local queryResult =  mw.smw.ask('[[Category::Zauber]][[' .. Schule ..'::' .. grad ..'|?Seitentitel=1|?Kurzbeschreibung=2|mainlabel=-') 
		local i = 1
		while i <= table.getn(queryResult) -- gehe durch die einzelnen Zauber eines Grades
			do
			ReturnString = ReturnString .. '[['..queryResult[i][1] .. ']]<small> (' .. queryResult[i][2]  -- nutze i um den Zauber in der Tabelle abzufragen, 1 ist die Titel, 2 Beschrebinung
			ReturnString = ReturnString ..')</small><br>' -- Einige Formatierungen
			i = i + 1
			end
		grad = grad + 1
	end
	return ReturnString
end

return p