Modul:X: Unterschied zwischen den Versionen

Aus How to be a Hero
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
local p = {} --local p = {} -- p steht für Paket (engl. package)


require( "Module:Xfunc" )
function split (inputstr, sep)
function p.cutblock ( frame )
 
text = frame.args[3]-- "Die Schmiede"
    if sep == nil then
width = tonumber(frame.args[2]) -- 4
        sep = "%s"
height = tonumber(frame.args[1]) -- 12
    end
block = ""
    local t={}
textlen = string.len(text) -- 12
    for str in string.gmatch(string.gsub(inputstr,sep, "\0"),"%Z+") do
tempsplit = {}
        table.insert(t, str)
    end
    return t
end
 
function copy(obj, seen)
  if type(obj) ~= 'table' then return obj end
  if seen and seen[obj] then return seen[obj] end
  local s = seen or {}
  local res = setmetatable({}, getmetatable(obj))
  s[obj] = res
  for k, v in pairs(obj) do res[copy(k, s)] = copy(v, s) end
  return res
end
function tabContains(tableasd, keaaay)
solution = nil --"key: "..keaaay.."\n\n"
    for numgasbr,crreasdnt in pairs(tableasd) do
if (tableasd[numgasbr] == keaaay) then
solution = numgasbr
end
--solution = solution..numgasbr..": "..crreasdnt[numgasbr].."\n\n"
end
return solution
end
while (height>0 and textlen>=width) do -- 12>0 and 12>=4|11>0 and 11>=4
function tablelength(T)
tempsplit = split(cut(width, text), "%%%@%%") -- ("Die", "Schmiede")| (
  local count = 0
block = block..tempsplit[1].." " -- "Die "
  if (T==nil or T[1]==nil) then
text = tempsplit[2] -- "Schmiede"
return 0
height = height-1 -- 11
  end
if (text==nil) then
  for _ in pairs(T) do count = count + 1 end
text = ""
  return count
end
 
function tabcontainstab(tableoneooop, tabletwoooop)
seanwsrer = true
if (tabletwoooop[1]~=nil) then
for numberindexthingiu, currenttableslothi in pairs(tabletwoooop) do
if (tabContains(tableoneooop,currenttableslothi) == nil) then
seanwsrer = false
end
end
end
textlen = string.len(text) -- 8
end
end
if (height>0) then
return seanwsrer
block = block.." "..text
end
text = ""
 
function displaytablevert(taable)
endresutl=""
if (taable==nil or taable[1]==nil) then
return endresutl
end
for nnnn,entri in pairs(taable) do
endresutl=endresutl..entri.."\n"
end
return endresutl
end
 
function displaytablehor(taaable)
endresutal=""
if (taaable==nil or taaable[1]==nil) then
return endresutal
end
end
for nn,entria in pairs(taaable) do
endresutal=endresutal..entria.." - "
end
return endresutal
end
function displaytabletwo(taaaable)
endresutaal=""
if (taaaable==nil or taaaable[1]==nil) then
return endresutaal
end
for nnn,entriaa in pairs(taaaable) do
endresutaal=endresutaal..displaytablehor(entriaa).."\n\n"
end
return endresutaal
end
function gmatchtable(text, pattern)
ztable={}
result = block.."%@%"..text
for word in string.gmatch(text, pattern) do
result = string.gsub(result, "%§", " ")
table.insert(ztable,word)  
return result
end
return ztable
end
 


function getindexformat()
title = mw.title.new( "Indexformat", "Yggdrasil" )
content = title:getContent()
content = string.gsub(content, "</pre>.-<pre>" , "!!!")
content = string.gsub(content, "</pre>.*" , "")
content = string.gsub(content, ".*<pre>" , "")
content = string.gsub(content, "|" , "\n|")
content = split(content,"!!!")
return content


end
end


function p.cut( frame )
 
function getheader( title, namespace )
title = mw.title.new( title, namespace )
content = title:getContent()
content = string.gsub(content, "%=%=+", "§§§")
content = split("hallo"..content, "§§§")
iiii = 2
iiiii = 1
length = tablelength(content)
finaltext={}
while (iiii<=length) do
finaltext[iiiii] = content[iiii]
iiii = iiii + 2
iiiii = iiiii + 1
end
return finaltext
end
 
function getheaderlimit( title, namespace )
limiit = tonumber(string.sub(title, string.len(title)))
title = string.sub(title, 1, string.len(title)-2)
title = mw.title.new( title, namespace )
content = title:getContent()
curhead=""
while (0<=limiit) do
curhead = curhead.."%="
limiit = limiit-1
end
curhead = curhead.."+"
content = string.gsub(content, curhead, "no")
content = string.gsub(content, "%=%=+", "§§§")
content = split("hallo"..content, "§§§")
iiii = 2
iiiii = 1
length = tablelength(content)
endtext={}
while (iiii<=length) do
endtext[iiiii] = content[iiii]
iiii = iiii + 2
iiiii = iiiii + 1
end
return endtext
end
 
 
 
 
 
function cut( limit, realtext )
testtext = ""
testtext = ""
realtext = frame.args[2] --Die Schmiede
realtext = removespaceinlink(realtext) --Die Schmiede
realtext = removespaceinlink(realtext) --Die Schmiede
srealtext = split(realtext, " ") --Die|Schmiede(list)
srealtext = split(realtext, " ") --Die|Schmiede(list)
i = 2; --2
i = 2; --2
testtext = testtext.."<br \>"..i..": "
testtext = testtext.."<br \>"..i..": "
limit = tonumber(frame.args[1]) --4
text = display(removespaceinlink(realtext)) --Die Schmiede
text = display(removespaceinlink(realtext)) --Die Schmiede
stext = split(text, " ") --Die|Schmiede(list)
stext = split(text, " ") --Die|Schmiede(list)
Zeile 112: Zeile 238:
end
end


function p.display ( frame )
function headertotablelimit(title, namespace)
text = frame.args[1]
limiiiit = tonumber(string.sub(title, string.len(title)))-1
title = string.sub(title, 1, string.len(title)-2)
title = mw.title.new( title, namespace )
content = title.getContent(title)
original = headertotable(content)
neworiginal = {}
for nnnnn,entriii in ipairs(original) do
if (tablelength(entriii)<=limiiiit) then
neworiginal[nnnnn] = entriii
end
end
return neworiginal
end
 
function display ( text )
text = text:gsub("'", "")
text = text:gsub("'", "")
lend = string.len(text)
lend = string.len(text)
i=1
ii=1
auf = {}
auf = {}
zu = {}
zu = {}
currentauf = string.find(text, "%[%[")
currentauf = string.find(text, "%[%[")
while (currentauf ~= nil) do
while (currentauf ~= nil) do
auf[i] = currentauf;
auf[ii] = currentauf;
if (string.find(string.sub(text,currentauf+2), "%[%[")~=nil)then
if (string.find(string.sub(text,currentauf+2), "%[%[")~=nil)then
currentauf = currentauf+1+string.find(string.sub(text,currentauf+2), "%[%[")
currentauf = currentauf+1+string.find(string.sub(text,currentauf+2), "%[%[")
Zeile 128: Zeile 268:
end
end
i=i+1
ii=ii+1
end
end
i=1
ii=1
currentzu = string.find(text, "%|")
currentzu = string.find(text, "%|")
while (currentzu ~= nil) do
while (currentzu ~= nil) do
zu[i] = currentzu;
zu[ii] = currentzu;
if (string.find(string.sub(text,currentzu+2), "%|")~=nil)then
if (string.find(string.sub(text,currentzu+2), "%|")~=nil)then
currentzu = currentzu+1+string.find(string.sub(text,currentzu+2), "%|")
currentzu = currentzu+1+string.find(string.sub(text,currentzu+2), "%|")
Zeile 140: Zeile 280:
currentzu = nil
currentzu = nil
end
end
i=i+1
ii=ii+1
end
end
Zeile 147: Zeile 287:
if(table.getn(auf) == table.getn(zu))then
if(table.getn(auf) == table.getn(zu))then
i=1
ii=1
while (table.getn(auf)>=i) do
while (table.getn(auf)>=ii) do
anfang = auf[i]
anfang = auf[ii]
ende = zu[i]
ende = zu[ii]
tt, uu = string.find(string.sub(text, 1, anfang-offset+1), "%[%[(.+)%|")
tt, uu = string.find(string.sub(text, 1, anfang-offset+1), "%[%[(.+)%|")
text = string.gsub(string.sub(text, 1, anfang-offset+1), "%[%[(.+)%|", "")..string.sub(text,anfang-offset+2,string.len(text))
text = string.gsub(string.sub(text, 1, anfang-offset+1), "%[%[(.+)%|", "")..string.sub(text,anfang-offset+2,string.len(text))
Zeile 157: Zeile 297:
offset = offset+uu-tt
offset = offset+uu-tt
end
end
i=i+1
ii=ii+1
end
end
text = string.gsub(text, "%[%[(.+)%|", "")
text = string.gsub(text, "%[%[(.+)%|", "")
Zeile 170: Zeile 310:
end
end


 
function removespaceinlink(text)
 
iii=1
function p.split ( frame )
spl = split(frame.args[1],frame.args[2])
i=1
t=""
while(i<=tablelength(spl)) do
t = t..spl[i].."\n\n"
i=i+1
end
 
    return t
end
 
function p.removespaceinlink(frame)
text = frame.args[1]
i=1
auf = {}
auf = {}
zu = {}
zu = {}
currentauf = string.find(text, "%[%[")
currentauf = string.find(text, "%[%[")
while (currentauf ~= nil) do
while (currentauf ~= nil) do
auf[i] = currentauf;
auf[iii] = currentauf;
if (string.find(string.sub(text,currentauf+2), "%[%[")~=nil)then
if (string.find(string.sub(text,currentauf+2), "%[%[")~=nil)then
currentauf = currentauf+1+string.find(string.sub(text,currentauf+2), "%[%[")
currentauf = currentauf+1+string.find(string.sub(text,currentauf+2), "%[%[")
Zeile 198: Zeile 323:
end
end
i=i+1
iii=iii+1
end
end
i=1
iii=1
currentzu = string.find(text, "%]%]")
currentzu = string.find(text, "%]%]")
while (currentzu ~= nil) do
while (currentzu ~= nil) do
zu[i] = currentzu;
zu[iii] = currentzu;
if (string.find(string.sub(text,currentzu+2), "%]%]")~=nil)then
if (string.find(string.sub(text,currentzu+2), "%]%]")~=nil)then
currentzu = currentzu+1+string.find(string.sub(text,currentzu+2), "%]%]")
currentzu = currentzu+1+string.find(string.sub(text,currentzu+2), "%]%]")
Zeile 210: Zeile 335:
currentzu = nil
currentzu = nil
end
end
i=i+1
iii=iii+1
end
end
if(table.getn(auf) == table.getn(zu))then
if(table.getn(auf) == table.getn(zu))then
i=1
iii=1
while (table.getn(auf)>=i) do
while (table.getn(auf)>=iii) do
anfang = auf[i]
anfang = auf[iii]
ende = zu[i]
ende = zu[iii]
text = string.sub(text,1,anfang-1)..string.gsub(string.sub(text,anfang,ende)," ","§")..string.sub(text,ende+1,string.len(text))
text = string.sub(text,1,anfang-1)..string.gsub(string.sub(text,anfang,ende)," ","§")..string.sub(text,ende+1,string.len(text))


i=i+1
iii=iii+1
end
end
end
end
Zeile 226: Zeile 351:
end
end


 
function gethighest( tabhle )
 
highest = tabhle[1]
 
for numgbr,crregnt in ipairs(tabhle) do
 
if (highest<tabhle[numgbr]) then
 
highest=tabhle[numgbr]
function p.size ( frame )
end
text = frame.args[1]
end
return textSize(text)
return highest
end
end


 
function duptable( tabhdhle )
 
dupe = {}
 
nothertab = {}
 
for nuamgbr,craregnt in pairs(tabhdhle) do
function p.size ( frame )
reallycontains  = tabContains(nothertab,craregnt)
text = frame.args[1]
if (reallycontains==nil) then
return textSize(text)
nothertab[nuamgbr] = craregnt
end
else
 
tempdupetable = {reallycontains,nuamgbr}
function p.findg( frame )
table.insert(dupe,tempdupetable)
text = frame.args[1]
d,s,r = string.find(text, "g")
return d,s,r
 
end
 
function p.indexold
( frame )
text = frame.args[1]
stext = split (text, "§§§")
currentpage = ""
currentheaders= nil
finish = ""
i = 1
inde = 1
while (i<=tablelength(stext)) do
currentpage = stext[i]
currentheaders = getheaderlimit(currentpage, "Yggdrasil")
currentpage = string.sub(currentpage, 1, string.len(currentpage)-2)
headlen = tablelength(currentheaders)
inde = 1
while (inde<=headlen) do
finish = finish.."|[[Yggdrasil:"..currentpage.."#"..currentheaders[inde].."|"..currentheaders[inde].."]]\n|[[Yggdrasil:"..currentpage.."|"..currentpage.."]]\n|-\n"
inde=inde+1
end
end
i=i+1
end
end
return dupe
--text = frame.args[1]
--stext = split (text, "\n")
--ending = ""
--for i = 1,tablelength(stext),1 do
-- currentsplit = split (stext[i], "%>")
-- leng = tablelength(currentsplit)
-- ending = ending.."|[[Yggdrasil:"..currentsplit[2].."#"..currentsplit[1].."|"..currentsplit[1].."]]\n|[[Yggdrasil:"..currentsplit[2].."|"..currentsplit[2].."]]\n|-\n"
--end
return finish
end
end


 
function schlagwortliste()
function p.yggrassen( frame )
tiasdtasdfle = mw.title.new( "Schlagwortliste", "Yggdrasil" )
text = frame.args[1]
contegfgdfndasdat = tiasdtasdfle:getContent()
stext = split (text, "\n")
schlagworttable = {}
haupttext = split (text, "'''Nebenrassen'''")[1]
for thingis in string.gmatch(contegfgdfndasdat, "%{%{o%|.-%|") do
nebentext = split (text, "'''Nebenrassen'''")[2]
iuadiuh = string.sub(thingis,5,string.len(thingis)-1)
shaupttext = split (haupttext, "\n")
if (iuadiuh~="Name") then
snebentext = split (nebentext, "\n")
table.insert(schlagworttable,iuadiuh)
ending = "!<big>Hauptrassen</big>\n|-\n"
for i = 2,tablelength(stext),1 do
if (stext[i]=="'''Nebenrassen'''") then
ending = ending.."!<big>Nebenrassen</big>\n|-\n"
else
ending = ending.."|<big>'''[[#"..stext[i].."|"..stext[i].."]]'''</big>\n|-\n"
end
end
end
end


return ending
return schlagworttable


end
end


 
function gegvorapi()
 
listxy = {}
function p.yggtab( frame )
gegtitle = mw.title.new( "Gegenstände", "Yggdrasil" )
text = frame.args[1]
gegcontent = gegtitle:getContent()
img = frame.args[2]
tabbbb = headertotable(gegcontent)
stext = split (text, "§§§")
headerewnds = {}
exist = true
tempzwweites = {}
imgtext = ''
tempzudreites = 0
if (img~=nil and img~='' and img~='{{{img}}}') then
tempzudreitasdafsaes = 0
imgtext='<div id="yggimg">[[Datei:'..img..']]</div>\n'
for eiwnes,zwwweites in pairs(tabbbb) do
if (tablelength(zwwweites) == 3) then
end
tempzwweites = copy(zwwweites)
i=1
x,tempzudreites = string.find(gegcontent,"===="..tempzwweites[3].."====")
rettext='{|class="wikitable" style="width: 32%; float:right; margin-top: 0; margin-bottom: 0px;"\n|-\n'
tempzudreitasdafsaes,x = string.find(gegcontent,"\n=", tempzudreites)
while (stext[i+1]~=nil) do
if (tempzudreitasdafsaes==nil) then
rettext=rettext..'!style="width:32%; padding: 10px;" |'..string.sub(stext[i],2,string.len(stext[i]))..'\n'
tempzudreitasdafsaes = string.len(gegcontent)
i=i+1
if (stext[i+1]~=nil and stext[i]~='-') then
rettext=rettext..'|style="width:68%; padding: 10px;" |'
end
while (stext[i+1]~=nil and stext[i]~='-') do
if(string.sub(stext[i],1,1)=='/') then
rettext=rettext..string.sub(stext[i],2)
elseif(string.find(stext[i],'#')~=nil) then
found=string.find(stext[i],'#')
rettext=rettext..'[[Yggdrasil:'..string.sub(stext[i],1,found-1)..'#'..string.sub(stext[i],found+1,string.len(stext[i]))..'|'..string.sub(stext[i],found+1,string.len(stext[i]))..']]'
else
rettext=rettext..'[[#'..stext[i]..'|'..stext[i]..']]'
end
end
rettext=rettext..'\n\n'
tempzwweites[4] = string.gsub(string.sub(gegcontent,tempzudreites+1,tempzudreitasdafsaes-1),"<.->","")
i=i+1
table.insert(listxy,tempzwweites)
end
end
 
rettext=rettext..'|-\n'
i=i+1
end
end
rettext=rettext..'|}'..stext[i-1]..'\n|style="width:20%; padding: 0; vertical-align:top;"|'..imgtext
return '{|style="width:100%;"\n|style="width:80%; padding: 0; vertical-align:top;"|\n'..rettext..'\n|}'
return listxy -- 1:Category 2: Subcategory 3: Name 4:content
end
end


function p.getpage( frame )
function zeros(intedhfgjdgkztger)
title = mw.title.new( frame.args[1], frame.args[2] )
    resdgsgst = ""
content = title:getContent()
    while (intedhfgjdgkztger>0) do
return content
        resdgsgst=resdgsgst.."0"
        intedhfgjdgkztger=intedhfgjdgkztger-1
end
    return resdgsgst
end
end


function p.getheader( frame )
function ones(intedhfgjdfasgkztger)
title = mw.title.new( frame.args[1], frame.args[2] )
    resdgsasdgst = ""
content = title:getContent()
    while (intedhfgjdfasgkztger>0) do
--content = string.gsub(content, "([$$$]+)", "DIESER CHARACTER WIRD NICHT UNTERSTÜTZT")
        resdgsasdgst=resdgsasdgst.."1"
content = string.gsub(content, "%=%=+", "§§§")
        intedhfgjdfasgkztger=intedhfgjdfasgkztger-1
content = split("hallo"..content, "§§§")
i = 2
length = tablelength(content)
finaltext=""
while (i<=length) do
if (string.match(content[i], "[^[(%s)(%d)(%a)]]")==nil) then
finaltext = finaltext..content[i].."\n\n"
end
i = i + 2
end
end
return finaltext
    return resdgsasdgst
end
end


 
function gegapi()
 
catlist = {}
function p.index( frame )
nosortlist = {}
--content = displaytablevert(getindexformat())
unforlist = gegvorapi()
text = frame.args[1]
temptable = {}
stext = split (text, "§§§")
temprest = ""
currentpage = ""
tempsplittable = {}
currentheaders= nil
nothertempsplittable = {}
finish = ""
tempimg = nil
tempfinish =""
for numd, keyd in pairs(unforlist) do
i = 1
temptable = {}
inde = 1
if (catlist[keyd[1]] == nil) then  
while (i<=tablelength(stext)) do
catlist[keyd[1]] = {}
currentpage = stext[i]
end
currentheaders = headertotablelimit(currentpage, "Yggdrasil")
if (catlist[keyd[1]][keyd[2]] == nil) then  
currentpage = string.sub(currentpage, 1, string.len(currentpage)-2)
catlist[keyd[1]][keyd[2]] = {}
headlen = tablelength(currentheaders)
end
inde = 1
if (catlist[keyd[1]][keyd[2]][numd] == nil) then
while (inde<=headlen) do
catlist[keyd[1]][keyd[2]][numd] = {}
if (tablelength(currentheaders[inde])==1) then
end
tempfinish = getindexformat()[1]
temptable["Category"] = keyd[1]
tempfinish = string.gsub(tempfinish, "{{{h1}}}", currentheaders[inde][1])
temptable["Subcategory"] = keyd[2]
temptable["Name"] = keyd[3]
tempfinish = string.gsub(tempfinish, "{{{h1 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][1].."|"..currentheaders[inde][1].."]]")
catlist[keyd[1]][keyd[2]][numd]["Name"] = keyd[3]
temptable["Text"] = string.gsub(string.gsub(split(keyd[4], "\n%|\n")[2],"%}%}",""),"\n\n","")
elseif(tablelength(currentheaders[inde])==2) then
catlist[keyd[1]][keyd[2]][numd]["Text"] = temptable["Text"]
tempfinish = getindexformat()[2]
temprest = split(keyd[4], "\n%|\n")[1]
tempfinish = string.gsub(tempfinish, "{{{h1}}}", currentheaders[inde][1])
tempimg = string.match(temprest,"img=.-\n")
tempfinish = string.gsub(tempfinish, "{{{h2}}}", currentheaders[inde][2])
anothertemp = ""
if (tempimg~= nil) then
tempfinish = string.gsub(tempfinish, "{{{h1 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][1].."|"..currentheaders[inde][1].."]]")
temptable["Img"] = string.sub(tempimg,5)
tempfinish = string.gsub(tempfinish, "{{{h2 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][2].."|"..currentheaders[inde][2].."]]")
catlist[keyd[1]][keyd[2]][numd]["Img"] = temptable["Img"]
end
elseif(tablelength(currentheaders[inde])==3) then
temprest = string.gsub(string.gsub(temprest,"\n",""), "{{YggTab.-|!", "")
tempfinish = getindexformat()[3]
temprest = string.gsub(temprest, "{{YggTab|!", "|-|!")
tempfinish = string.gsub(tempfinish, "{{{h1}}}", currentheaders[inde][1])
temprest = split(temprest,"|%-|!")
tempfinish = string.gsub(tempfinish, "{{{h2}}}", currentheaders[inde][2])
for tri,asdf in pairs(temprest) do
tempfinish = string.gsub(tempfinish, "{{{h3}}}", currentheaders[inde][3])
tempsplittable = split(asdf,"|")
intindex = 2
tempfinish = string.gsub(tempfinish, "{{{h1 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][1].."|"..currentheaders[inde][1].."]]")
nothertempsplittable = {}
tempfinish = string.gsub(tempfinish, "{{{h2 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][2].."|"..currentheaders[inde][2].."]]")
while (intindex<=tablelength(tempsplittable)) do
tempfinish = string.gsub(tempfinish, "{{{h3 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][3].."|"..currentheaders[inde][3].."]]")
anothertemp = tempsplittable[intindex]
if (string.find(anothertemp,"/")==1) then
elseif(tablelength(currentheaders[inde])==4) then
anothertemp = string.sub(anothertemp,2)
tempfinish = getindexformat()[4]
elseif (string.find(anothertemp,":")~=nil) then
tempfinish = string.gsub(tempfinish, "{{{h1}}}", currentheaders[inde][1])
anothertemp = "[[Yggdrasil:"..split(anothertemp,":")[1].."|"..split(anothertemp,":")[2].."]]"
tempfinish = string.gsub(tempfinish, "{{{h2}}}", currentheaders[inde][2])
end
tempfinish = string.gsub(tempfinish, "{{{h3}}}", currentheaders[inde][3])
table.insert(nothertempsplittable,anothertemp)
tempfinish = string.gsub(tempfinish, "{{{h4}}}", currentheaders[inde][4])
intindex = intindex + 1
tempfinish = string.gsub(tempfinish, "{{{h1 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][1].."|"..currentheaders[inde][1].."]]")
tempfinish = string.gsub(tempfinish, "{{{h2 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][2].."|"..currentheaders[inde][2].."]]")
tempfinish = string.gsub(tempfinish, "{{{h3 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][3].."|"..currentheaders[inde][3].."]]")
tempfinish = string.gsub(tempfinish, "{{{h4 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][4].."|"..currentheaders[inde][4].."]]")
elseif(tablelength(currentheaders[inde])==5) then
tempfinish = getindexformat()[5]
tempfinish = string.gsub(tempfinish, "{{{h1}}}", currentheaders[inde][1])
tempfinish = string.gsub(tempfinish, "{{{h2}}}", currentheaders[inde][2])
tempfinish = string.gsub(tempfinish, "{{{h3}}}", currentheaders[inde][3])
tempfinish = string.gsub(tempfinish, "{{{h4}}}", currentheaders[inde][4])
tempfinish = string.gsub(tempfinish, "{{{h5}}}", currentheaders[inde][5])
tempfinish = string.gsub(tempfinish, "{{{h1 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][1].."|"..currentheaders[inde][1].."]]")
tempfinish = string.gsub(tempfinish, "{{{h2 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][2].."|"..currentheaders[inde][2].."]]")
tempfinish = string.gsub(tempfinish, "{{{h3 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][3].."|"..currentheaders[inde][3].."]]")
tempfinish = string.gsub(tempfinish, "{{{h4 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][4].."|"..currentheaders[inde][4].."]]")
tempfinish = string.gsub(tempfinish, "{{{h5 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][5].."|"..currentheaders[inde][5].."]]")
elseif(tablelength(currentheaders[inde])==6) then
tempfinish = getindexformat()[6]
tempfinish = string.gsub(tempfinish, "{{{h1}}}", currentheaders[inde][1])
tempfinish = string.gsub(tempfinish, "{{{h2}}}", currentheaders[inde][2])
tempfinish = string.gsub(tempfinish, "{{{h3}}}", currentheaders[inde][3])
tempfinish = string.gsub(tempfinish, "{{{h4}}}", currentheaders[inde][4])
tempfinish = string.gsub(tempfinish, "{{{h5}}}", currentheaders[inde][5])
tempfinish = string.gsub(tempfinish, "{{{h6}}}", currentheaders[inde][6])
tempfinish = string.gsub(tempfinish, "{{{h1 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][1].."|"..currentheaders[inde][1].."]]")
tempfinish = string.gsub(tempfinish, "{{{h2 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][2].."|"..currentheaders[inde][2].."]]")
tempfinish = string.gsub(tempfinish, "{{{h3 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][3].."|"..currentheaders[inde][3].."]]")
tempfinish = string.gsub(tempfinish, "{{{h4 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][4].."|"..currentheaders[inde][4].."]]")
tempfinish = string.gsub(tempfinish, "{{{h5 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][5].."|"..currentheaders[inde][5].."]]")
tempfinish = string.gsub(tempfinish, "{{{h6 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][6].."|"..currentheaders[inde][6].."]]")
end
end
if(tablelength(currentheaders[inde])~=0) then
temptable[tempsplittable[1]] = copy(nothertempsplittable)
if (currentpage=="Religion") then
catlist[keyd[1]][keyd[2]][numd][tempsplittable[1]] = temptable[tempsplittable[1]]
currentpagedis = "Religion/Äscher"
if (tempsplittable[1]=="Schlagwörter") then
elseif(currentpage=="Religion2") then
temptable[tempsplittable[1]] = split(temptable[tempsplittable[1]][1],", ")
currentpagedis = "Religion/Lacerta"
catlist[keyd[1]][keyd[2]][numd][tempsplittable[1]] = temptable[tempsplittable[1]]
elseif(currentpage=="Religion2") then
currentpagedis = "Religion/Lichtalben"
elseif(currentpage=="Religion2") then
currentpagedis = "Religion/Dunkelalben"
elseif(currentpage=="Religion2") then
currentpagedis = "Religion/Dweorgo"
elseif(currentpage=="Religion2") then
currentpagedis = "Religion/Andere"
else
currentpagedis = currentpage
end
tempfinish = "|"..string.gsub(string.gsub(tempfinish, "{{{page}}}", currentpagedis),"\n", "",1)
tempfinish = string.gsub(tempfinish, "{{{page link}}}", "[[Yggdrasil:"..currentpage.."|"..currentpagedis.."]]")
finish = finish..tempfinish.."\n|-\n"
end
end
inde=inde+1
end
end
table.insert(nosortlist,temptable)
i=i+1
end
end
return nosortlist, catlist
return finish
end
 
--<h2>


function changebin(binaasdasfgggary, integeeer)
binaaasdfhry = binaasdasfgggary
tochange = string.sub(binaaasdfhry, integeeer, integeeer)
if(tochange == "1") then
        binaaasdfhry = string.sub(binaaasdfhry,1,integeeer-1).."0"..string.sub(binaaasdfhry,integeeer+1)
    elseif(tochange == "0") then
        binaaasdfhry = string.sub(binaaasdfhry,1,integeeer-1).."1"..string.sub(binaaasdfhry,integeeer+1)
end
return binaaasdfhry
end
end


function p.religion( frame )
function multchangebin(binaaghdfghsdgggary, integeeerstart, integeeerend)  
ull = ""
while (integeeerstart<=integeeerend) do
if (frame.args[1]=="1") then
binaaghdfghsdgggary = changebin(binaaghdfghsdgggary,integeeerstart)
ull = '{{YggRegister|!Religion:Äscher|Religion2:Lacerta|Religion3:Lichtalben|Religion4:Dubkelalben|Religion5:Dweorgo|Religion6:Andere}}'
integeeerstart = integeeerstart+1
elseif (frame.args[1]=="2") then
ull = '{{YggRegister|Religion:Äscher|!Religion2:Lacerta|Religion3:Lichtalben|Religion4:Dubkelalben|Religion5:Dweorgo|Religion6:Andere}}'
elseif (frame.args[1]=="3") then
ull = '{{YggRegister|Religion:Äscher|Religion2:Lacerta|!Religion3:Lichtalben|Religion4:Dubkelalben|Religion5:Dweorgo|Religion6:Andere}}'
elseif (frame.args[1]=="4") then
ull = '{{YggRegister|Religion:Äscher|Religion2:Lacerta|Religion3:Lichtalben|!Religion4:Dubkelalben|Religion5:Dweorgo|Religion6:Andere}}'
elseif (frame.args[1]=="5") then
ull = '{{YggRegister|Religion:Äscher|Religion2:Lacerta|Religion3:Lichtalben|Religion4:Dubkelalben|!Religion5:Dweorgo|Religion6:Andere}}'
elseif (frame.args[1]=="6") then
ull = '{{YggRegister|Religion:Äscher|Religion2:Lacerta|Religion3:Lichtalben|Religion4:Dubkelalben|Religion5:Dweorgo|!Religion6:Andere}}'
end
end
return ull
return binaaghdfghsdgggary
end
end


 
function multset(binaafgdhjhsdgggary, numbertoset, integerstart, integerend)  
function p.test( frame )
if (numbertoset == "1") then
dieter, dieter2 = gegapi()
binaafgdhjhsdgggary = string.sub(binaafgdhjhsdgggary, 0, integerstart-1)..ones(integerend-integerstart+1)..string.sub(binaafgdhjhsdgggary, integerend+1)
dieter2 = dieter2["Kampfutensilien"]["Nahkampfwaffen"][1]
elseif(numbertoset == "0") then
leresti = "Dinge:\n"
binaafgdhjhsdgggary = string.sub(binaafgdhjhsdgggary, 0, integerstart-1)..zeros(integerend-integerstart+1)..string.sub(binaafgdhjhsdgggary, integerend+1)
    for zahl,dingsi in  pairs(dieter2) do
        leresti = leresti.."*"..zahl..":"
if (dingsi[1]~=nil) then
for zahfgsal,didfsdhngsi in  pairs(dingsi) do
leresti = leresti.." - "..didfsdhngsi
end
else
leresti = leresti.." "..dingsi
end
leresti = leresti.."\n"
end
end
return binaafgdhjhsdgggary
return leresti
 
end
end


function p.options( frame )
function multchangebinall(binaasdgggary, integerstart, integerend)
stext = split (frame.args[1], "§§§")
izgovouv = string.sub(binaasdgggary, integerstart, integerend)
lengthi = tablelength(stext)
if (izgovouv~=ones(integerend-integerstart+1)) then
finalthing = ""
binaasdgggary = multset(binaasdgggary, "1",integerstart, integerend)
tempeins = stext[1]
tempzwei = stext[2]
tempdrei = stext[3]
tempvier = stext[4]
tempfunf = stext[5]
tempsech = stext[6]
tempsieb = stext[7]
tempacht = stext[8]
tempneun = stext[9]
if (lengthi==2) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
finalthing = "*"..tempeins.." (Bei 1-50)\n*"..tempzwei.." (Bei 51-100)"
elseif(lengthi==3) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
finalthing = "*"..tempeins.." (Bei 1-33)\n*"..tempzwei.." (Bei 34-66)\n*"..tempdrei.." (Bei 67-99)\n*Bei 100: Reroll"
elseif(lengthi==4) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
finalthing = "*"..tempeins.." (Bei 1-25)\n*"..tempzwei.." (Bei 26-50)\n*"..tempdrei.." (Bei 51-75)\n*"..tempvier.." (Bei 76-100)"
elseif(lengthi==5) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
if (string.sub(stext[5],1,1)~="/") then
tempfunf = "[[#"..tempfunf.."|"..tempfunf.."]]"
else
tempfunf = string.sub(tempfunf,2)
end
finalthing = "*"..tempeins.." (Bei 1-20)\n*"..tempzwei.." (Bei 21-40)\n*"..tempdrei.." (Bei 41-60)\n*"..tempvier.." (Bei 61-80)\n*"..tempfunf.." (Bei 81-100)"
elseif(lengthi==6) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
if (string.sub(stext[5],1,1)~="/") then
tempfunf = "[[#"..tempfunf.."|"..tempfunf.."]]"
else
tempfunf = string.sub(tempfunf,2)
end
if (string.sub(stext[6],1,1)~="/") then
tempsech = "[[#"..tempsech.."|"..tempsech.."]]"
else
tempsech = string.sub(tempsech,2)
end
finalthing = "*"..tempeins.." (Bei 1-16)\n*"..tempzwei.." (Bei 17-32)\n*"..tempdrei.." (Bei 33-48)\n*"..tempvier.." (Bei 49-64)\n*"..tempfunf.." (Bei 65-80)\n*"..tempsech.." (Bei 81-96)\n*Bei 97-100: Reroll"
elseif(lengthi==7) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
if (string.sub(stext[5],1,1)~="/") then
tempfunf = "[[#"..tempfunf.."|"..tempfunf.."]]"
else
tempfunf = string.sub(tempfunf,2)
end
if (string.sub(stext[6],1,1)~="/") then
tempsech = "[[#"..tempsech.."|"..tempsech.."]]"
else
tempsech = string.sub(tempsech,2)
end
if (string.sub(stext[7],1,1)~="/") then
tempsieb = "[[#"..tempsieb.."|"..tempsieb.."]]"
else
tempsieb = string.sub(tempsieb,2)
end
finalthing = "*"..tempeins.." (Bei 1-14)\n*"..tempzwei.." (Bei 15-28)\n*"..tempdrei.." (Bei 29-42)\n*"..tempvier.." (Bei 43-56)\n*"..tempfunf.." (Bei 57-70)\n*"..tempsech.." (Bei 71-84)\n*"..tempsieb.." (Bei 85-98)\n*Bei 99-100: Reroll"
elseif(lengthi==8) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
if (string.sub(stext[5],1,1)~="/") then
tempfunf = "[[#"..tempfunf.."|"..tempfunf.."]]"
else
tempfunf = string.sub(tempfunf,2)
end
if (string.sub(stext[6],1,1)~="/") then
tempsech = "[[#"..tempsech.."|"..tempsech.."]]"
else
tempsech = string.sub(tempsech,2)
end
if (string.sub(stext[7],1,1)~="/") then
tempsieb = "[[#"..tempsieb.."|"..tempsieb.."]]"
else
tempsieb = string.sub(tempsieb,2)
end
if (string.sub(stext[8],1,1)~="/") then
tempacht = "[[#"..tempacht.."|"..tempacht.."]]"
else
tempacht = string.sub(tempacht,2)
end
finalthing = "*"..tempeins.." (Bei 1-12)\n*"..tempzwei.." (Bei 13-24)\n*"..tempdrei.." (Bei 25-36)\n*"..tempvier.." (Bei 37-48)\n*"..tempfunf.." (Bei 49-60)\n*"..tempsech.." (Bei 61-72)\n*"..tempsieb.." (Bei 73-84)\n*"..tempacht.." (Bei 85-96)\n*Bei 97-100: Reroll"
elseif(lengthi==9) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
if (string.sub(stext[5],1,1)~="/") then
tempfunf = "[[#"..tempfunf.."|"..tempfunf.."]]"
else
tempfunf = string.sub(tempfunf,2)
end
if (string.sub(stext[6],1,1)~="/") then
tempsech = "[[#"..tempsech.."|"..tempsech.."]]"
else
tempsech = string.sub(tempsech,2)
end
if (string.sub(stext[7],1,1)~="/") then
tempsieb = "[[#"..tempsieb.."|"..tempsieb.."]]"
else
tempsieb = string.sub(tempsieb,2)
end
if (string.sub(stext[8],1,1)~="/") then
tempacht = "[[#"..tempacht.."|"..tempacht.."]]"
else
tempacht = string.sub(tempacht,2)
end
if (string.sub(stext[9],1,1)~="/") then
tempneun = "[[#"..tempneun.."|"..tempneun.."]]"
else
tempneun = string.sub(tempneun,2)
end
finalthing = "*"..tempeins.." (Bei 1-11)\n*"..tempzwei.." (Bei 12-22)\n*"..tempdrei.." (Bei 23-33)\n*"..tempvier.." (Bei 34-44)\n*"..tempfunf.." (Bei 45-55)\n*"..tempsech.." (Bei 56-66)\n*"..tempsieb.." (Bei 67-77)\n*"..tempacht.." (Bei 78-88)\n*"..tempneun.." (Bei 89-99)\n*Bei 100: Reroll"
else
else
finalthing = "Die Anzahl an ausgewählten Optionen wird nicht unterstützt. Erkundige dich, dass du alles richtig geschrieben hast. Falls dir das Maximum von 9 Optionen nicht reicht wende dich bitte an [[Benutzerin:Murmelgrumpf]]"
binaasdgggary = multset(binaasdgggary, "0",integerstart, integerend)
end
end
return finalthing
return binaasdgggary
end
end
function p.optionsnodice( frame )
 
stext = split (frame.args[1], "§§§")
function tran(integedasfr)
lengthi = tablelength(stext)
    integerotut = integedasfr
finalthing = ""
    if (integedasfr=="1") then
tempeins = stext[1]
        integerotut = "tagselected"
tempzwei = stext[2]
    elseif (integedasfr=="0") then  
tempdrei = stext[3]
        integerotut = "tagunselected"
tempvier = stext[4]
tempfunf = stext[5]
tempsech = stext[6]
tempsieb = stext[7]
tempacht = stext[8]
tempneun = stext[9]
if (lengthi==2) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
finalthing = "*"..tempeins.."\n*"..tempzwei
elseif(lengthi==3) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
finalthing = "*"..tempeins.."\n*"..tempzwei.."\n*"..tempdrei
elseif(lengthi==4) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
finalthing = "*"..tempeins.."\n*"..tempzwei.."\n*"..tempdrei.."\n*"..tempvier
elseif(lengthi==5) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
if (string.sub(stext[5],1,1)~="/") then
tempfunf = "[[#"..tempfunf.."|"..tempfunf.."]]"
else
tempfunf = string.sub(tempfunf,2)
end
finalthing = "*"..tempeins.."\n*"..tempzwei.."\n*"..tempdrei.."\n*"..tempvier.."\n*"..tempfunf
elseif(lengthi==6) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
if (string.sub(stext[5],1,1)~="/") then
tempfunf = "[[#"..tempfunf.."|"..tempfunf.."]]"
else
tempfunf = string.sub(tempfunf,2)
end
if (string.sub(stext[6],1,1)~="/") then
tempsech = "[[#"..tempsech.."|"..tempsech.."]]"
else
tempsech = string.sub(tempsech,2)
end
finalthing = "*"..tempeins.."\n*"..tempzwei.."\n*"..tempdrei.."\n*"..tempvier.."\n*"..tempfunf.."\n*"..tempsech
elseif(lengthi==7) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
if (string.sub(stext[5],1,1)~="/") then
tempfunf = "[[#"..tempfunf.."|"..tempfunf.."]]"
else
tempfunf = string.sub(tempfunf,2)
end
if (string.sub(stext[6],1,1)~="/") then
tempsech = "[[#"..tempsech.."|"..tempsech.."]]"
else
tempsech = string.sub(tempsech,2)
end
if (string.sub(stext[7],1,1)~="/") then
tempsieb = "[[#"..tempsieb.."|"..tempsieb.."]]"
else
tempsieb = string.sub(tempsieb,2)
end
finalthing = "*"..tempeins.."\n*"..tempzwei.."\n*"..tempdrei.."\n*"..tempvier.."\n*"..tempfunf.."\n*"..tempsech.."\n*"..tempsieb
elseif(lengthi==8) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
if (string.sub(stext[5],1,1)~="/") then
tempfunf = "[[#"..tempfunf.."|"..tempfunf.."]]"
else
tempfunf = string.sub(tempfunf,2)
end
if (string.sub(stext[6],1,1)~="/") then
tempsech = "[[#"..tempsech.."|"..tempsech.."]]"
else
tempsech = string.sub(tempsech,2)
end
if (string.sub(stext[7],1,1)~="/") then
tempsieb = "[[#"..tempsieb.."|"..tempsieb.."]]"
else
tempsieb = string.sub(tempsieb,2)
end
if (string.sub(stext[8],1,1)~="/") then
tempacht = "[[#"..tempacht.."|"..tempacht.."]]"
else
tempacht = string.sub(tempacht,2)
end
finalthing = "*"..tempeins.."\n*"..tempzwei.."\n*"..tempdrei.."\n*"..tempvier.."\n*"..tempfunf.."\n*"..tempsech.."\n*"..tempsieb.."\n*"..tempacht
elseif(lengthi==9) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
if (string.sub(stext[5],1,1)~="/") then
tempfunf = "[[#"..tempfunf.."|"..tempfunf.."]]"
else
tempfunf = string.sub(tempfunf,2)
end
if (string.sub(stext[6],1,1)~="/") then
tempsech = "[[#"..tempsech.."|"..tempsech.."]]"
else
tempsech = string.sub(tempsech,2)
end
if (string.sub(stext[7],1,1)~="/") then
tempsieb = "[[#"..tempsieb.."|"..tempsieb.."]]"
else
tempsieb = string.sub(tempsieb,2)
end
if (string.sub(stext[8],1,1)~="/") then
tempacht = "[[#"..tempacht.."|"..tempacht.."]]"
else
tempacht = string.sub(tempacht,2)
end
if (string.sub(stext[9],1,1)~="/") then
tempneun = "[[#"..tempneun.."|"..tempneun.."]]"
else
tempneun = string.sub(tempneun,2)
end
finalthing = "*"..tempeins.."\n*"..tempzwei.."\n*"..tempdrei.."\n*"..tempvier.."\n*"..tempfunf.."\n*"..tempsech.."\n*"..tempsieb.."\n*"..tempacht.."\n*"..tempneun
else
finalthing = "Die Anzahl an ausgewählten Optionen wird nicht unterstützt. Erkundige dich, dass du alles richtig geschrieben hast. Falls dir das Maximum von 9 Optionen nicht reicht wende dich bitte an [[Benutzerin:Murmelgrumpf]]"
end
end
return finalthing
    return integerotut
end
end
function p.kampf( frame )
 
     stext = split (frame.args[1], "§§§")
function trancat(integdfghedasfr)
lengthi = tablelength(stext)
     integerdfghotut = integdfghedasfr
curthing = ""
    if (integdfghedasfr=="1") then
eendrest = ""
        integerdfghotut = "catselected"
for nudmbr,crdrent in ipairs(stext) do
    elseif (integdfghedasfr=="0") then
curthing = split (stext[nudmbr], ">")
        integerdfghotut = "catunselected"
eendrest = eendrest.."|"..curthing[1].."\n|"..curthing[2].."\n|"..curthing[3].."\n|-\n"
end
end
return eendrest
    return integerdfghotut
end
end


function p.dia( frame )
function tranlinkopen(integasdedasfr)
     stext = split (frame.args[1], "§§§")
     integerasdotut = integasdedasfr
lengthi = tablelength(stext)
    if (integasdedasfr=="1") then
curthing = ""
        integerasdotut = '<span class="linkwhite">'
eendrest = ""
    elseif (integasdedasfr=="0") then
for nudmbr,crdrent in ipairs(stext) do
        integerasdotut = '<span class="linkred">'
curthing = split (stext[nudmbr], ":")
eendrest = eendrest.."\n'''"..curthing[1]..":'''\n\n„"..curthing[2].."“\n"
end
end
eendrest = string.gsub(eendrest, "(\n[\n%s]*)", "''%1''")
    return integerasdotut
return eendrest
end
end
function p.image( frame )
 
imaage = "[[Datei:"..frame.args[1]
function multtran(intedfgsdggedasfr)
if (frame.args[2]~=nil) then
    integerodfghdfghtut = intedfgsdggedasfr
imaage = imaage.."|"..frame.args[2]
    if (intedfgsdggedasfr==ones(string.len(intedfgsdggedasfr))) then
        integerodfghdfghtut = "tagselected"
    else
        integerodfghdfghtut = "tagunselected"
end
end
if (frame.args[3]~=nil) then
    return integerodfghdfghtut
imaage = imaage.."|"..frame.args[3]
end
 
function multtranlinkopen(intedsdfgsdfgfgsdggedasfr)
    asdfintegerodfghdfghtut = intedsdfgsdfgfgsdggedasfr
    if (intedsdfgsdfgfgsdggedasfr==ones(string.len(intedsdfgsdfgfgsdggedasfr))) then
        asdfintegerodfghdfghtut = '<span class="linkwhite">'
    else
        asdfintegerodfghdfghtut = '<span class="linkred">'
end
end
if (frame.args[4]~=nil) then
    return asdfintegerodfghdfghtut
imaage = imaage.."|"..frame.args[4]
end
end
 
if (frame.args[5]~=nil) then
function getint(binnnarry, ineetger)
imaage = imaage.."|"..frame.args[5]
return string.sub(binnnarry,ineetger,ineetger)
end
end
if (frame.args[6]~=nil) then
 
imaage = imaage.."|"..frame.args[6]
function getmultint(binnnarry, ineetgerstarti, inteegerendi)
end
return string.sub(binnnarry,ineetgerstarti,inteegerendi)
imaage = imaage.."]]"
end
return imaage
 
function numtran(binsnnafsffarry, ineeggsdgtger)
return tran(getint(binsnnafsffarry, ineeggsdgtger))
end
end


function numtrancat(binsnsdfnafsffarry, ineegfdfggsdgtger)
return trancat(getint(binsnsdfnafsffarry, ineegfdfggsdgtger))
end


function p.vid( frame )
function numtranlinkopen(binhfghsnnarry, ineegdfsdhgtger)
stext = split (frame.args[2], "§§§")
return tranlinkopen(getint(binhfghsnnarry, ineegdfsdhgtger))
seend = "Hier kannst du das Abenteuer von ["..frame.args[1].."] noch ein mal nachschauen! Viel Spaß! :)\n"..'{|class="wikitable"\n|-\n'
    for nuudmbr,curdrent in ipairs(stext) do
seend = seend.."!Teil "..tostring(nuudmbr).."\n"
end
seend = seend.."|-\n"
    for nuudmbr,curdrent in ipairs(stext) do
seend = seend.."|"..curdrent.."\n"
end
seend = seend.."|-\n|}\n"
return seend
end
end


function p.talents( frame )
function nummulttran(binsnwrtzeghnarry, ineegsgdfsdhftgereins, ineegsgdfsdhftgerzwei)
handeln = split (frame.args[1], "\n")
return multtran(getmultint(binsnwrtzeghnarry, ineegsgdfsdhftgereins, ineegsgdfsdhftgerzwei))
wissen = split (frame.args[2], "\n")
soziales = split (frame.args[3], "\n")
    lenlist = {}
lenlist[1] = tablelength(handeln)
lenlist[2] = tablelength(wissen)
lenlist[3] = tablelength(soziales)
highesst = gethighest(lenlist)
intex = 1
selast = ""
while (intex<=highesst) do
selast = selast.."|"
if (handeln[intex]~=nil) then
selast = selast..handeln[intex]
end
selast = selast.."\n|"
if (wissen[intex]~=nil) then
selast = selast..wissen[intex]
end
selast = selast.."\n|"
if (soziales[intex]~=nil) then
selast = selast..soziales[intex]
end
selast = selast.."\n|-\n"
intex = intex+1
end
return selast
end
end


function p.description( frame )
function nummulttranlinkopen(binsnnarry, ineegtgereins, ineegtgerzwei)
    stext = split (frame.args[1], "§§§")
return multtranlinkopen(getmultint(binsnnarry, ineegtgereins, ineegtgerzwei))
eerndrest=""
if(tabContains(stext,"Szene")) then
eerndrest = eerndrest.."'''Szenen:'''\nSzenen geben Handlung und Orte vor, die die Spieler meist passiv miterleben.\n\n"
end
if(tabContains(stext,"Inter")) then
eerndrest = eerndrest.."'''<span style='color:#BB0011;'>Interaktionen:</span>'''\nInteraktionen sind aktive Szenen, die eine Interaktion mit den Spielern erfordern.\n\n"
end
if(tabContains(stext,"Kursiv")) then
eerndrest = eerndrest.."''Kursive Texte:''\nKursive Texte können wörtlich vorgetragen werden und beinhalten meist direkte Rede oder Beschreibungen.\n\n"
end
if(tabContains(stext,"Probe")) then
eerndrest = eerndrest.."'''<span style='color:#31B404;'>Proben:</span>'''\nSteht für mögliche Talentwürfe, welche die Spieler ablegen müssen.\n\n"
end
if(tabContains(stext,"Moral")) then
eerndrest = eerndrest.."'''<span style='color:#00b8ff;'>Moral:</span>'''\nBeinhaltet Situationen, an denen die Spieler moralische Fragen beantworten müssen, die sich auf den Verlauf des Abenteuers auswirken können.\n\n"
end
if(tabContains(stext,"Module")) then
eerndrest = eerndrest.."'''<span style='color:#4B088A;'>Module:</span>'''\nBeinhalten Regeln, die zusätzlich zum Grundregelwerk in diesem Abenteuer verwendet werden.\n\n"
end
if(tabContains(stext,"Box")) then
eerndrest = eerndrest.."<div class='box'>'''Boxen:''' Boxen stehen für Spielleiterhinweise und beinhalten meist Hintergrundinformationen, welche die Spieler nicht haben können.</div>\n\n"
end
return string.sub(eerndrest,0,string.len(eerndrest)-2)
end
end


function p.ygggegerror ( frame )
function categorylist()
displayedtext = "\n\n----\n\n"
gegasdtitle = mw.title.new( "Gegenstände", "Yggdrasil" )
listeeins, listezwei = gegapi()
gegconfsatent = gegasdtitle:getContent()
headerends = {}
tabbfghbb = headertotable(gegconfsatent)
schlagworte = schlagwortliste()
lastlist = {}
for eines,zweites in pairs(listeeins) do
for eiwnes,zwwweites in pairs(tabbfghbb) do
table.insert(headerends,listeeins[eines]["Name"])
if (tablelength(zwwweites) == 1) then
for qfsdf,zweihgfhgtes in pairs(listeeins[eines]["Schlagwörter"]) do
lastlist[zwwweites[1]] = {}
if (tabContains(schlagworte,zweihgfhgtes)==nil) then
displayedtext = displayedtext..'<span style="color:red;"><big><big><big> Falsches Schlagwort gefunden: "'..zweihgfhgtes..'"'..", unter: '''("..listeeins[eines]["Category"].." - "..listeeins[eines]["Subcategory"].." - "..listeeins[eines]["Name"]..")'''!Bitte Ändern!</big></big></big>"..'</span>\n\n----\n\n'
end
end
end
end
if (tablelength(zwwweites) == 2) then
dupeeeetab = duptable(headerends)
table.insert(lastlist[zwwweites[1]],zwwweites[2])
for zup,dupeeee in pairs(dupeeeetab) do
if (dupeeee~=nil) then
displayedtext = displayedtext..'<span style="color:red;"><big><big><big>Duplikat gefunden: "'..listeeins[dupeeee[1]]["Name"]..'"'..", unter: '''("..listeeins[dupeeee[1]]["Category"]..' - '..listeeins[dupeeee[1]]["Subcategory"]..")''' und unter: '''("..listeeins[dupeeee[2]]["Category"]..' - '..listeeins[dupeeee[2]]["Subcategory"]..")''' !Bitte Ändern!</big></big></big>"..'</span>\n\n----\n\n'
end
end
end
end
return lastlist --Kategorie-->stringlist:subcategories
return displayedtext
 
end
end


function p.testzwei ( frame )
function doubletablelength(taaabaaabaal)
seendlength = 0
for iaubgs,aousbd in pairs(taaabaaabaal) do
seendlength = seendlength+tablelength(aousbd)
end


return seendlength
return frame.args["test"]
end
end


function p.cur ( frame )
 
thingtext = frame.args[1]
function markheaders(content)
thingtext = string.gsub(thingtext, "(\n+)", "''%1''")
content = content.."\npuffercontent\n"
return thingtext
content = string.gsub(content, "=\n", "=\npuffercontent\n")
content = string.gsub(content, "\n=%s*([^%=]+)%s*=\n", "\n")
content = string.gsub(content, "\n==%s*([^%=]+)%s*==\n", "\n!Anfang2!%1!2Ende!\n")
content = string.gsub(content, "\n===%s*([^%=]+)%s*===\n", "\n!Anfang3!%1!3Ende!\n")
content = string.gsub(content, "\n====%s*([^%=]+)%s*====\n", "\n!Anfang4!%1!4Ende!\n")
content = string.gsub(content, "\n=====%s*([^%=]+)%s*=====\n", "\n!Anfang5!%1!5Ende!\n")
content = string.gsub(content, "\n======%s*([^%=]+)%s*======\n", "\n!Anfang6!%1!6Ende!\n")
return content
end
end


function p.probe ( frame )
function onllyheaders(content)
return "'''<span style='color:#31B404;'>"..string.gsub(frame.args[1], "(\n+)" , "</span>'''%1'''<span style='color:#31B404;'>").."</span>'''"
content = markheaders(content)
content = string.gsub(content,"!.Ende!\n.-\n!Anfang", "\n\n")
content = string.gsub(content,".*!Anfang", "")
content = string.gsub(content,"!.Ende!.*", "")
return content
end
end


function p.taglist ( frame )
function headertotable(content)
currenttagstate = frame.args[1]
testvar=""
currentcatstate = frame.args[2]
allsetcats = categorylist()
content = onllyheaders(content)
allsetags = schlagwortliste()
if (string.len(currenttagstate)~=tablelength(allsetags)) then
firsthead=1
currenttagstate = zeros(tablelength(allsetags))
if (string.find(content, "1!")== nil) then
end
firsthead=firsthead+1
if (string.len(currentcatstate)~=doubletablelength(allsetcats)) then
if (string.find(content, "2!")== nil) then
currentcatstate = ones(doubletablelength(allsetcats))
firsthead=firsthead+1
if (string.find(content, "3!")== nil) then
firsthead=firsthead+1
if (string.find(content, "4!")== nil) then
firsthead=firsthead+1
if (string.find(content, "5!")== nil) then
firsthead=firsthead+1
end
end
end
end
end
end
iiiiii={1,2,2,2,2,1}
content="puffer\n"..content.."\n\n2!Puffer"
iall=0
headersplit={}
headersplit[1] = split(content,tostring(firsthead).."!")
currentsite = "Tagtest"
currenthead={}
sefinalendtext = '{|class="tagholder"\n|style="width:40%"|\n'
finaltable={}
tagstatelength = string.len(currenttagstate)
catstatelength = string.len(currentcatstate)
countcat = 1
for curcatname,cursubcats in pairs(allsetcats) do
while (iiiiii[1]<tablelength(headersplit[1])-1) do--tablelength(headersplit[1])
cursublength = tablelength(cursubcats)
iall=iall+1
catstdif = catstatelength-cursublength+1
currenthead[1] = string.gsub(gmatchtable(headersplit[1][iiiiii[1]+1], ".-\n")[1],"\n","")
finaltable[iall]={currenthead[1]..testvar}
sefinalendtext = sefinalendtext..'{|class="'..nummulttran(currentcatstate,catstdif,catstatelength)..'"\n|'..nummulttranlinkopen(currentcatstate,catstdif,catstatelength)..'[https://howtobeahero.de/index.php?title='..currentsite..'&tagstate='..currenttagstate..'&catstate='..multchangebinall(currentcatstate, catstdif, catstatelength).." "..curcatname..":]</span>\n"
headersplit[2] = split(headersplit[1][iiiiii[1]+1],tostring(firsthead+1).."!")
nowcatstatelength = catstatelength-cursublength
while (catstatelength>nowcatstatelength) do
cursubcatname = allsetcats[curcatname][catstatelength-nowcatstatelength]
sefinalendtext = sefinalendtext..'{|class="'..numtrancat(currentcatstate,catstatelength)..'"\n|'..numtranlinkopen(currentcatstate,catstatelength)..'[https://howtobeahero.de/index.php?title='..currentsite..'&tagstate='..currenttagstate..'&catstate='..changebin(currentcatstate,catstatelength).." "..cursubcatname.."]</span>\n|}\n"--..numtranlinkopen(
catstatelength = catstatelength-1
end
sefinalendtext = sefinalendtext.."\n|}"
if (countcat%2==0) then
sefinalendtext = sefinalendtext.."\n<div>\n\n</div>\n"
else
while (iiiiii[2]<=tablelength(headersplit[2])) do
sefinalendtext = sefinalendtext.."\n"
iall=iall+1
currenthead[2] = string.gsub(gmatchtable(headersplit[2][iiiiii[2]], ".-\n")[1],"\n","")
finaltable[iall]={currenthead[1],currenthead[2]}
headersplit[3] = split(headersplit[2][iiiiii[2]],tostring(firsthead+2).."!")
while (iiiiii[3]<=tablelength(headersplit[3])) do
iall=iall+1
currenthead[3] = string.gsub(gmatchtable(headersplit[3][iiiiii[3]], ".-\n")[1],"\n","")
finaltable[iall]={currenthead[1],currenthead[2],currenthead[3]}
headersplit[4] = split(headersplit[3][iiiiii[3]],tostring(firsthead+3).."!")
while (iiiiii[4]<=tablelength(headersplit[4])) do
iall=iall+1
currenthead[4] = string.gsub(gmatchtable(headersplit[4][iiiiii[4]], ".-\n")[1],"\n","")
finaltable[iall]={currenthead[1],currenthead[2],currenthead[3],currenthead[4]}
headersplit[5] = split(headersplit[4][iiiiii[4]],tostring(firsthead+4).."!")
while (iiiiii[5]<=tablelength(headersplit[5])) do
iall=iall+1
currenthead[5] = string.gsub(gmatchtable(headersplit[5][iiiiii[5]], ".-\n")[1],"\n","")
finaltable[iall]={currenthead[1],currenthead[2],currenthead[3],currenthead[4],currenthead[5]}
iiiiii[5]=iiiiii[5]+1
end
iiiiii[5]=2
iiiiii[4]=iiiiii[4]+1
end
iiiiii[4]=2
iiiiii[3]=iiiiii[3]+1
end
iiiiii[3]=2
iiiiii[2]=iiiiii[2]+1
end
end
countcat=countcat+1
iiiiii[2]=2
iiiiii[1]=iiiiii[1]+1
end
end
sefinalendtext = sefinalendtext..'|style="width:40%"|\n'
return finaltable
    while (tagstatelength>0) do
 
        sefinalendtext=sefinalendtext..'{|class="'..numtran(currenttagstate,tagstatelength)..'"\n|'..numtranlinkopen(currenttagstate,tagstatelength)..'[https://howtobeahero.de/index.php?title='..currentsite..'&tagstate='..changebin(currenttagstate,tagstatelength)..'&catstate='..currentcatstate.." "..allsetags[tagstatelength]..' •]</span>\n|}\n'
end
tagstatelength = tagstatelength-1
 
function turnstring (stringtoturn)
turnedstring = ""
while (string.len(stringtoturn)>0) do
turnedstring = string.sub(stringtoturn,1,1)..turnedstring
stringtoturn = string.sub(stringtoturn,2)
end
end
    sefinalendtext=sefinalendtext..'|style="width:20%"|\n'


senosort= getpartapi(currenttagstate,currentcatstate)
return turnedstring
testendtext = ""
end
for testnumb, testcurr in pairs(senosort) do
function turntable (tabletoturn)
testendtext = testendtext.."* "..testcurr["Name"].."\n\n"
turnedtable = {}
intexi = tablelength(tabletoturn)
intexinnorm = 1
while (intexi>0) do
turnedtable[intexi] = tabletoturn[intexinnorm]
intexi = intexi-1
intexinnorm = intexinnorm+1
end
return turnedtable
end
 
 
function relevanttags( tttagstate )
aaltags = schlagwortliste()
endtags = {}
iindexii = 1
realiindexii = 1
while (iindexii<=string.len(tttagstate)) do
if (string.sub(tttagstate,iindexii,iindexii)=="1") then
endtags[realiindexii] = aaltags[iindexii]
realiindexii = realiindexii+1
end
iindexii = iindexii+1
end
end
return endtags
end


sefinalendtext=sefinalendtext..'|}'
function relevantcats( cccatstate )
return sefinalendtext.."\n\n"..testendtext
-- cccatstate = turnstring(cccatstate)
aallcats = categorylist()
endcats = {}
--endcats["log"] = ""
iiindexiii = string.len(cccatstate)
for scatname, ssubcatnames in pairs(aallcats) do
--endcats["log"] = endcats["log"]..scatname..": \n\n"
for subcatindex, ssubcatname in pairs(turntable(ssubcatnames)) do
if (string.sub(cccatstate,iiindexiii,iiindexiii)=="1") then
if (endcats[scatname] == nil) then
endcats[scatname] = {}
end
table.insert(endcats[scatname], ssubcatname)
--endcats["log"] = endcats["log"]..ssubcatname.." "..string.sub(cccatstate,iiindexiii,iiindexiii).."\n\n"
end
iiindexiii = iiindexiii-1
end
cccatstate = string.sub(cccatstate,1, iiindexiii)
iiindexiii = string.len(cccatstate)
end
return endcats
end
end


function p.kampflist ( frame )
seendthingi = '{|style="display: inline-block;"\n|'..string.gsub(frame.args[1], "§§§",'\n|}\n{|style="display: inline-block;"\n|')..'\n|}'
return seendthingi
end


function getpartapi(ttagstate, ccatstate)
nosorttlist, cattlist = gegapi()
reltags = relevanttags(ttagstate)
relcats = relevantcats(ccatstate)
dieqtter = {}
dieqtter["Name"] = "Dieter"
newnosortlist = {dieqtter}
newcattlist = {}
for numbergti, curretne in pairs(nosortlist) do
--if (tabcontainstab(nosortlist[numbergti]["Schlagwörter"],reltags)==true) then
--if(relcats[nosortlist[numbergti]["Category"]]~=nil) then
--if(relcats[nosortlist[numbergti]["Category"]][nosortlist[numbergti]["Subcategory"]]~=nil) then
table.insert(newnosortlist,nosortlist[numbergti])
--end
--end
--end
end
-- relcats = relevantcats(ccatstate)
-- for catnubini, currini in pairs(relcats) do
-- for subnubiniz, curriniz in pairs(currini) do
-- for namenubbez, contcurrez in pairs(cattlist[catnubini][subnubiniz]) do
-- if (tabcontainstab(cattlist[catnubini][subnubiniz][namenubbez]["Schlagwörter"],reltags)==true) then
-- if (newcattlist[catnubini]==nil) then
-- newcattlist[catnubini] = {}
-- end
-- if (newcattlist[catnubini][subnubiniz]==nil) then
-- newcattlist[catnubini][subnubiniz] = {}
-- end
-- newcattlist[catnubini][subnubiniz][namenubbez] = contcurrez
-- end
-- end
-- end
-- end


function p.testi ( frame )
return newnosortlist--,newcattlist
return "{{YggTab}}"
end
end
return p

Version vom 18. Juni 2020, 15:48 Uhr

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

function split (inputstr, sep)

    if sep == nil then
        sep = "%s"
    end
    local t={}
    for str in string.gmatch(string.gsub(inputstr,sep, "\0"),"%Z+") do
        table.insert(t, str)
    end
    return t
end

function copy(obj, seen)
  if type(obj) ~= 'table' then return obj end
  if seen and seen[obj] then return seen[obj] end
  local s = seen or {}
  local res = setmetatable({}, getmetatable(obj))
  s[obj] = res
  for k, v in pairs(obj) do res[copy(k, s)] = copy(v, s) end
  return res
end
function tabContains(tableasd, keaaay)
	solution = nil --"key: "..keaaay.."\n\n"
    for numgasbr,crreasdnt in pairs(tableasd) do
		if (tableasd[numgasbr] == keaaay) then
			solution = numgasbr
		end
		--solution = solution..numgasbr..": "..crreasdnt[numgasbr].."\n\n"
	end
	return solution
	
end
function tablelength(T)
  local count = 0
  if (T==nil or T[1]==nil) then
	return 0
  end
  for _ in pairs(T) do count = count + 1 end
  return count
end

function tabcontainstab(tableoneooop, tabletwoooop)
	seanwsrer = true
	if (tabletwoooop[1]~=nil) then
		for numberindexthingiu, currenttableslothi in pairs(tabletwoooop) do
			if (tabContains(tableoneooop,currenttableslothi) == nil) then
				seanwsrer = false
			end
		end
	end
	return seanwsrer
end

function displaytablevert(taable)
	endresutl=""
	if (taable==nil or taable[1]==nil) then
			return endresutl
	end
	for nnnn,entri in pairs(taable) do
		endresutl=endresutl..entri.."\n"
	end
	return endresutl
end 

function displaytablehor(taaable)
	endresutal=""
	if (taaable==nil or taaable[1]==nil) then
			return endresutal
	end
	for nn,entria in pairs(taaable) do
		endresutal=endresutal..entria.." - "
	end
	return endresutal
end 

function displaytabletwo(taaaable)
	endresutaal=""
	if (taaaable==nil or taaaable[1]==nil) then
			return endresutaal
	end
	for nnn,entriaa in pairs(taaaable) do
		endresutaal=endresutaal..displaytablehor(entriaa).."\n\n"
	end
	return endresutaal
end 


function gmatchtable(text, pattern)
	ztable={}
	
	for word in string.gmatch(text, pattern) do 
		table.insert(ztable,word) 
	end
	
	return ztable
end



function getindexformat()
	title = mw.title.new( "Indexformat", "Yggdrasil" )
	content = title:getContent()
	content = string.gsub(content, "</pre>.-<pre>" , "!!!")
	content = string.gsub(content, "</pre>.*" , "")
	content = string.gsub(content, ".*<pre>" , "")
	content = string.gsub(content, "|" , "\n|")
	content = split(content,"!!!")
	return content

end


function getheader( title, namespace )
	title = mw.title.new( title, namespace )
	content = title:getContent()
	content = string.gsub(content, "%=%=+", "§§§")
	content = split("hallo"..content, "§§§")
	iiii = 2
	iiiii = 1
	length = tablelength(content)
	finaltext={}
	while (iiii<=length) do
		finaltext[iiiii] = content[iiii]
		iiii = iiii + 2
		iiiii = iiiii + 1
	end
	return finaltext
end

function getheaderlimit( title, namespace )
	limiit = tonumber(string.sub(title, string.len(title)))
	title = string.sub(title, 1, string.len(title)-2)
	title = mw.title.new( title, namespace )
	content = title:getContent()
	curhead=""
	while (0<=limiit) do
		curhead = curhead.."%="
		limiit = limiit-1
	end
	curhead = curhead.."+"
	content = string.gsub(content, curhead, "no")
	content = string.gsub(content, "%=%=+", "§§§")
	content = split("hallo"..content, "§§§")
	iiii = 2
	iiiii = 1
	length = tablelength(content)
	endtext={}
	while (iiii<=length) do
		endtext[iiiii] = content[iiii]
		iiii = iiii + 2
		iiiii = iiiii + 1
	end
	return endtext
end





function cut( limit, realtext )
	testtext = ""
	
	realtext = removespaceinlink(realtext) --Die Schmiede
	srealtext = split(realtext, " ") --Die|Schmiede(list)
	i = 2; --2
	testtext = testtext.."<br \>"..i..": "
	
	text = display(removespaceinlink(realtext)) --Die Schmiede
	stext = split(text, " ") --Die|Schmiede(list)
	
	if(table.getn(stext)==1) then
		if(string.len(stext[1])>limit) then
			return "%@%"..text
		else
			return text.."%@%"
		end
	end
	
	cuttext = stext[1] --Die
	realcuttext = srealtext[1] --Die
	
	nextwo = stext[2] --Schmiede
	realnextwo = srealtext[2] --Schmiede
	
	nextlen = string.len(nextwo)--8
	textlen = string.len(text)--12
	cuttextlen = string.len(cuttext)--3
	
	set = true;
	testtext = testtext.."<br \>"..i..": "..realcuttext
	
	if(limit>=textlen)then --4>=12
		return realtext.."%@%"
	
	elseif(cuttextlen>limit) then--3>4
		return "%@%"..realtext
	
	
	

	else
		while (cuttextlen+nextlen+1<=textlen+2) do --8+3+1<=12+2(12<=14)|14+3+1<=12+2(18<=14)
			
			if(cuttextlen+nextlen+1>limit and set) then --8+3+1>4(12>4)|
				set = false
				cuttext = cuttext.."%@%" --"Die %@%"
				realcuttext = realcuttext.."%@%" --"Die %@%"
				
			else
				cuttext = cuttext.." " --
				realcuttext = realcuttext.." " --
				
			end
			-- testtext = testtext..tostring(i)..": "..realcuttext.."<br />"
			i = i + 1 --3
			
			cuttext = cuttext..nextwo -- "Die%@%Schmiede"
			realcuttext = realcuttext..realnextwo -- "Die%@%Schmiede"
			
			nextwo = stext[i]-- nil
			realnextwo = srealtext[i]-- nil
			
			if (nextwo ~= nil) then
				nextlen = string.len(nextwo) -- 5
			end
			cuttextlen = string.len(cuttext) -- 14
			testtext = testtext.."<br \>"..i..": "..realcuttext
			
		end
		realnextwo = srealtext[i]
		if (realnextwo ~= nil) then
			realcuttext = realcuttext.." "..realnextwo
		end
	end
	testtext = testtext.."<br \>"..(i+1)..": "..realcuttext
	return realcuttext
end

function headertotablelimit(title, namespace)
	limiiiit = tonumber(string.sub(title, string.len(title)))-1
	title = string.sub(title, 1, string.len(title)-2)
	title = mw.title.new( title, namespace )
	content = title.getContent(title)
	original = headertotable(content)
	neworiginal = {}
	for nnnnn,entriii in ipairs(original) do
		if (tablelength(entriii)<=limiiiit) then
			neworiginal[nnnnn] = entriii
		end
	end
	return neworiginal
end

function display ( text )
	text = text:gsub("'", "")
	lend = string.len(text)
	ii=1
	auf = {}
	zu = {}
	currentauf = string.find(text, "%[%[")
	while (currentauf ~= nil) do
		auf[ii] = currentauf;
		if (string.find(string.sub(text,currentauf+2), "%[%[")~=nil)then
			currentauf = currentauf+1+string.find(string.sub(text,currentauf+2), "%[%[")
		else
			currentauf = nil
		end
		
		ii=ii+1
	end
	
	ii=1
	currentzu = string.find(text, "%|")
	while (currentzu ~= nil) do
		zu[ii] = currentzu;
		if (string.find(string.sub(text,currentzu+2), "%|")~=nil)then
			currentzu = currentzu+1+string.find(string.sub(text,currentzu+2), "%|")
		else
			currentzu = nil
		end
		ii=ii+1
	end
	
	offset = 0
	
	if(table.getn(auf) == table.getn(zu))then
		
		 ii=1
		 while (table.getn(auf)>=ii) do
			anfang = auf[ii]
			ende = zu[ii]
			tt, uu = string.find(string.sub(text, 1, anfang-offset+1), "%[%[(.+)%|")
			text = string.gsub(string.sub(text, 1, anfang-offset+1), "%[%[(.+)%|", "")..string.sub(text,anfang-offset+2,string.len(text))
			-- text = string.sub(text,1,anfang-offset+1)..string.sub(text,ende+1-offset,string.len(text))
			if (tt ~= nil) and (uu ~= nil) then
				offset = offset+uu-tt
			end
			ii=ii+1
		 end
		 text = string.gsub(text, "%[%[(.+)%|", "")
	end
	
	-- text = text:gsub("%[", "")
	-- text = text:gsub("%|", "")
	text = text:gsub("%]", "")


	return text
end

function removespaceinlink(text)
	iii=1
	auf = {}
	zu = {}
	currentauf = string.find(text, "%[%[")
	while (currentauf ~= nil) do
		auf[iii] = currentauf;
		if (string.find(string.sub(text,currentauf+2), "%[%[")~=nil)then
			currentauf = currentauf+1+string.find(string.sub(text,currentauf+2), "%[%[")
		else
			currentauf = nil
		end
		
		iii=iii+1
	end
	
	iii=1
	currentzu = string.find(text, "%]%]")
	while (currentzu ~= nil) do
		zu[iii] = currentzu;
		if (string.find(string.sub(text,currentzu+2), "%]%]")~=nil)then
			currentzu = currentzu+1+string.find(string.sub(text,currentzu+2), "%]%]")
		else
			currentzu = nil
		end
		iii=iii+1
	end
	if(table.getn(auf) == table.getn(zu))then
		iii=1
		while (table.getn(auf)>=iii) do
			anfang = auf[iii]
			ende = zu[iii]
			text = string.sub(text,1,anfang-1)..string.gsub(string.sub(text,anfang,ende)," ","§")..string.sub(text,ende+1,string.len(text))

			iii=iii+1
		end
	end
	
	return text
end

function gethighest( tabhle )
	highest = tabhle[1]
	for numgbr,crregnt in ipairs(tabhle) do
		if (highest<tabhle[numgbr]) then
			highest=tabhle[numgbr]
		end
	end
	return highest
end

function duptable( tabhdhle )
	dupe = {}
	nothertab = {}
	for nuamgbr,craregnt in pairs(tabhdhle) do
		reallycontains  = tabContains(nothertab,craregnt)
		if (reallycontains==nil) then
			nothertab[nuamgbr] = craregnt
		else
			tempdupetable = {reallycontains,nuamgbr}
			table.insert(dupe,tempdupetable)
		end
	end
	return dupe
end

function schlagwortliste()
	tiasdtasdfle = mw.title.new( "Schlagwortliste", "Yggdrasil" )
	contegfgdfndasdat = tiasdtasdfle:getContent()
	schlagworttable = {}
	for thingis in string.gmatch(contegfgdfndasdat, "%{%{o%|.-%|") do
		iuadiuh = string.sub(thingis,5,string.len(thingis)-1)
		if (iuadiuh~="Name") then
			table.insert(schlagworttable,iuadiuh)
		end
	end

	return schlagworttable

end

function gegvorapi()
	listxy = {}
	gegtitle = mw.title.new( "Gegenstände", "Yggdrasil" )
	gegcontent = gegtitle:getContent()
	tabbbb = headertotable(gegcontent)
	headerewnds = {}
	tempzwweites = {}
	tempzudreites = 0
	tempzudreitasdafsaes = 0
	for eiwnes,zwwweites in pairs(tabbbb) do
		if (tablelength(zwwweites) == 3) then
			tempzwweites = copy(zwwweites)
			x,tempzudreites = string.find(gegcontent,"===="..tempzwweites[3].."====")
			tempzudreitasdafsaes,x = string.find(gegcontent,"\n=", tempzudreites)
			if (tempzudreitasdafsaes==nil) then
				tempzudreitasdafsaes = string.len(gegcontent)
			end
			tempzwweites[4] = string.gsub(string.sub(gegcontent,tempzudreites+1,tempzudreitasdafsaes-1),"<.->","")
			table.insert(listxy,tempzwweites)
		end	
	end
	
	
	return listxy -- 1:Category 2: Subcategory 3: Name 4:content
end

function zeros(intedhfgjdgkztger)
    resdgsgst = ""
    while (intedhfgjdgkztger>0) do
        resdgsgst=resdgsgst.."0"
        intedhfgjdgkztger=intedhfgjdgkztger-1
	end
    return resdgsgst
end

function ones(intedhfgjdfasgkztger)
    resdgsasdgst = ""
    while (intedhfgjdfasgkztger>0) do
        resdgsasdgst=resdgsasdgst.."1"
        intedhfgjdfasgkztger=intedhfgjdfasgkztger-1
	end
    return resdgsasdgst
end

function gegapi()
	catlist = {}
	nosortlist = {}
	unforlist = gegvorapi()
	temptable = {}
	temprest = ""
	tempsplittable = {}
	nothertempsplittable = {}
	tempimg = nil
	for numd, keyd in pairs(unforlist) do
		temptable = {}
		if (catlist[keyd[1]] == nil) then 
			catlist[keyd[1]] = {}
		end
		if (catlist[keyd[1]][keyd[2]] == nil) then 
			catlist[keyd[1]][keyd[2]] = {}
		end
		if (catlist[keyd[1]][keyd[2]][numd] == nil) then 
			catlist[keyd[1]][keyd[2]][numd] = {}
		end
		temptable["Category"] = keyd[1]
		temptable["Subcategory"] = keyd[2]
		temptable["Name"] = keyd[3]
		catlist[keyd[1]][keyd[2]][numd]["Name"] = keyd[3]
		temptable["Text"] =  string.gsub(string.gsub(split(keyd[4], "\n%|\n")[2],"%}%}",""),"\n\n","")
		catlist[keyd[1]][keyd[2]][numd]["Text"] = temptable["Text"]
		temprest = split(keyd[4], "\n%|\n")[1]
		tempimg = string.match(temprest,"img=.-\n")
		anothertemp = ""
		if (tempimg~= nil) then
			temptable["Img"] = string.sub(tempimg,5)
			catlist[keyd[1]][keyd[2]][numd]["Img"] = temptable["Img"]
		end
		temprest = string.gsub(string.gsub(temprest,"\n",""), "{{YggTab.-|!", "")
		temprest = string.gsub(temprest, "{{YggTab|!", "|-|!")
		temprest = split(temprest,"|%-|!")
		for tri,asdf in pairs(temprest) do
			tempsplittable = split(asdf,"|")
			intindex = 2
			nothertempsplittable = {}
			while (intindex<=tablelength(tempsplittable)) do
				anothertemp = tempsplittable[intindex]
				if (string.find(anothertemp,"/")==1) then
					anothertemp = string.sub(anothertemp,2)
				elseif (string.find(anothertemp,":")~=nil) then
					anothertemp = "[[Yggdrasil:"..split(anothertemp,":")[1].."|"..split(anothertemp,":")[2].."]]"
				end
				table.insert(nothertempsplittable,anothertemp)
				intindex = intindex + 1
			end
			temptable[tempsplittable[1]] = copy(nothertempsplittable)
			catlist[keyd[1]][keyd[2]][numd][tempsplittable[1]] = temptable[tempsplittable[1]]
			if (tempsplittable[1]=="Schlagwörter") then
				temptable[tempsplittable[1]] = split(temptable[tempsplittable[1]][1],", ")
				catlist[keyd[1]][keyd[2]][numd][tempsplittable[1]] = temptable[tempsplittable[1]]
			end
		end
		table.insert(nosortlist,temptable)
	
	end
	return nosortlist, catlist
end

function changebin(binaasdasfgggary, integeeer)
	binaaasdfhry = binaasdasfgggary
	tochange = string.sub(binaaasdfhry, integeeer, integeeer)
	if(tochange == "1") then
        binaaasdfhry = string.sub(binaaasdfhry,1,integeeer-1).."0"..string.sub(binaaasdfhry,integeeer+1)
    elseif(tochange == "0") then
        binaaasdfhry = string.sub(binaaasdfhry,1,integeeer-1).."1"..string.sub(binaaasdfhry,integeeer+1)
	end
	return binaaasdfhry
end

function multchangebin(binaaghdfghsdgggary, integeeerstart, integeeerend) 
	while (integeeerstart<=integeeerend) do
		binaaghdfghsdgggary = changebin(binaaghdfghsdgggary,integeeerstart)
		integeeerstart = integeeerstart+1
	end
	return binaaghdfghsdgggary
end

function multset(binaafgdhjhsdgggary, numbertoset, integerstart, integerend) 
	if (numbertoset == "1") then
		binaafgdhjhsdgggary = string.sub(binaafgdhjhsdgggary, 0, integerstart-1)..ones(integerend-integerstart+1)..string.sub(binaafgdhjhsdgggary, integerend+1)
	elseif(numbertoset == "0") then
		binaafgdhjhsdgggary = string.sub(binaafgdhjhsdgggary, 0, integerstart-1)..zeros(integerend-integerstart+1)..string.sub(binaafgdhjhsdgggary, integerend+1)
	end
	return binaafgdhjhsdgggary
end

function multchangebinall(binaasdgggary, integerstart, integerend)
	izgovouv = string.sub(binaasdgggary, integerstart, integerend)
	if (izgovouv~=ones(integerend-integerstart+1)) then
		binaasdgggary = multset(binaasdgggary, "1",integerstart, integerend)
	else
		binaasdgggary = multset(binaasdgggary, "0",integerstart, integerend)
	end
	return binaasdgggary
end

function tran(integedasfr)
    integerotut = integedasfr
    if (integedasfr=="1") then
        integerotut = "tagselected"
    elseif (integedasfr=="0") then 
        integerotut = "tagunselected"
	end
    return integerotut
end

function trancat(integdfghedasfr)
    integerdfghotut = integdfghedasfr
    if (integdfghedasfr=="1") then
        integerdfghotut = "catselected"
    elseif (integdfghedasfr=="0") then 
        integerdfghotut = "catunselected"
	end
    return integerdfghotut
end

function tranlinkopen(integasdedasfr)
    integerasdotut = integasdedasfr
    if (integasdedasfr=="1") then
        integerasdotut = '<span class="linkwhite">'
    elseif (integasdedasfr=="0") then 
        integerasdotut = '<span class="linkred">'
	end
    return integerasdotut
end

function multtran(intedfgsdggedasfr)
    integerodfghdfghtut = intedfgsdggedasfr
    if (intedfgsdggedasfr==ones(string.len(intedfgsdggedasfr))) then
        integerodfghdfghtut = "tagselected"
    else
        integerodfghdfghtut = "tagunselected"
	end
    return integerodfghdfghtut
end

function multtranlinkopen(intedsdfgsdfgfgsdggedasfr)
    asdfintegerodfghdfghtut = intedsdfgsdfgfgsdggedasfr
    if (intedsdfgsdfgfgsdggedasfr==ones(string.len(intedsdfgsdfgfgsdggedasfr))) then
        asdfintegerodfghdfghtut = '<span class="linkwhite">'
    else
        asdfintegerodfghdfghtut = '<span class="linkred">'
	end
    return asdfintegerodfghdfghtut
end

function getint(binnnarry, ineetger)
	return string.sub(binnnarry,ineetger,ineetger)
end

function getmultint(binnnarry, ineetgerstarti, inteegerendi)
	return string.sub(binnnarry,ineetgerstarti,inteegerendi)
end

function numtran(binsnnafsffarry, ineeggsdgtger)
	return tran(getint(binsnnafsffarry, ineeggsdgtger))
end

function numtrancat(binsnsdfnafsffarry, ineegfdfggsdgtger)
	return trancat(getint(binsnsdfnafsffarry, ineegfdfggsdgtger))
end

function numtranlinkopen(binhfghsnnarry, ineegdfsdhgtger)
	return tranlinkopen(getint(binhfghsnnarry, ineegdfsdhgtger))
end

function nummulttran(binsnwrtzeghnarry, ineegsgdfsdhftgereins, ineegsgdfsdhftgerzwei)
	return multtran(getmultint(binsnwrtzeghnarry, ineegsgdfsdhftgereins, ineegsgdfsdhftgerzwei))
end

function nummulttranlinkopen(binsnnarry, ineegtgereins, ineegtgerzwei)
	return multtranlinkopen(getmultint(binsnnarry, ineegtgereins, ineegtgerzwei))
end

function categorylist()
	gegasdtitle = mw.title.new( "Gegenstände", "Yggdrasil" )
	gegconfsatent = gegasdtitle:getContent()
	tabbfghbb = headertotable(gegconfsatent)
	lastlist = {}
	for eiwnes,zwwweites in pairs(tabbfghbb) do
		if (tablelength(zwwweites) == 1) then
			lastlist[zwwweites[1]] = {}
		end
		if (tablelength(zwwweites) == 2) then
			table.insert(lastlist[zwwweites[1]],zwwweites[2])
		end
	end
	return lastlist --Kategorie-->stringlist:subcategories
end

function doubletablelength(taaabaaabaal)
	seendlength = 0
	for iaubgs,aousbd in pairs(taaabaaabaal) do
		seendlength = seendlength+tablelength(aousbd)
	end

	return seendlength
end


function markheaders(content)
	content = content.."\npuffercontent\n"
	content = string.gsub(content, "=\n", "=\npuffercontent\n")
	content = string.gsub(content, "\n=%s*([^%=]+)%s*=\n", "\n")
	content = string.gsub(content, "\n==%s*([^%=]+)%s*==\n", "\n!Anfang2!%1!2Ende!\n")
	content = string.gsub(content, "\n===%s*([^%=]+)%s*===\n", "\n!Anfang3!%1!3Ende!\n")
	content = string.gsub(content, "\n====%s*([^%=]+)%s*====\n", "\n!Anfang4!%1!4Ende!\n")
	content = string.gsub(content, "\n=====%s*([^%=]+)%s*=====\n", "\n!Anfang5!%1!5Ende!\n")
	content = string.gsub(content, "\n======%s*([^%=]+)%s*======\n", "\n!Anfang6!%1!6Ende!\n")
	return content
end

function onllyheaders(content)
	content = markheaders(content)
	content = string.gsub(content,"!.Ende!\n.-\n!Anfang", "\n\n")
	content = string.gsub(content,".*!Anfang", "")
	content = string.gsub(content,"!.Ende!.*", "")
	return content
	
end

function headertotable(content)
	testvar=""
	
	content = onllyheaders(content)
	
	firsthead=1
	if (string.find(content, "1!")== nil) then
		firsthead=firsthead+1
		if (string.find(content, "2!")== nil) then
			firsthead=firsthead+1
			if (string.find(content, "3!")== nil) then
				firsthead=firsthead+1
				if (string.find(content, "4!")== nil) then
					firsthead=firsthead+1
					if (string.find(content, "5!")== nil) then
						firsthead=firsthead+1
					end
				end
			end
		end
	end
	iiiiii={1,2,2,2,2,1}
	content="puffer\n"..content.."\n\n2!Puffer"
	iall=0
	headersplit={}
	headersplit[1] = split(content,tostring(firsthead).."!")
	
	
	currenthead={}
	finaltable={}
	
	while (iiiiii[1]<tablelength(headersplit[1])-1) do--tablelength(headersplit[1])
		iall=iall+1
		currenthead[1] = string.gsub(gmatchtable(headersplit[1][iiiiii[1]+1], ".-\n")[1],"\n","")
		finaltable[iall]={currenthead[1]..testvar}
		
		headersplit[2] = split(headersplit[1][iiiiii[1]+1],tostring(firsthead+1).."!")
		
		while (iiiiii[2]<=tablelength(headersplit[2])) do
			iall=iall+1
			currenthead[2] = string.gsub(gmatchtable(headersplit[2][iiiiii[2]], ".-\n")[1],"\n","")
			finaltable[iall]={currenthead[1],currenthead[2]}
			headersplit[3] = split(headersplit[2][iiiiii[2]],tostring(firsthead+2).."!")
			while (iiiiii[3]<=tablelength(headersplit[3])) do
				iall=iall+1
				currenthead[3] = string.gsub(gmatchtable(headersplit[3][iiiiii[3]], ".-\n")[1],"\n","")
				finaltable[iall]={currenthead[1],currenthead[2],currenthead[3]}
				
				headersplit[4] = split(headersplit[3][iiiiii[3]],tostring(firsthead+3).."!")
				while (iiiiii[4]<=tablelength(headersplit[4])) do
					iall=iall+1
					currenthead[4] = string.gsub(gmatchtable(headersplit[4][iiiiii[4]], ".-\n")[1],"\n","")
					finaltable[iall]={currenthead[1],currenthead[2],currenthead[3],currenthead[4]}
					
					headersplit[5] = split(headersplit[4][iiiiii[4]],tostring(firsthead+4).."!")
					while (iiiiii[5]<=tablelength(headersplit[5])) do
						iall=iall+1
						currenthead[5] = string.gsub(gmatchtable(headersplit[5][iiiiii[5]], ".-\n")[1],"\n","")
						finaltable[iall]={currenthead[1],currenthead[2],currenthead[3],currenthead[4],currenthead[5]}
						iiiiii[5]=iiiiii[5]+1
					end
					iiiiii[5]=2
					
					
					
					
					iiiiii[4]=iiiiii[4]+1
				end
				iiiiii[4]=2
				
				
				iiiiii[3]=iiiiii[3]+1
			end
			
			
			iiiiii[3]=2
			iiiiii[2]=iiiiii[2]+1
		end
		iiiiii[2]=2
		iiiiii[1]=iiiiii[1]+1
	end
	
	return finaltable

end

function turnstring (stringtoturn)
	turnedstring = ""
	while (string.len(stringtoturn)>0) do
		turnedstring = string.sub(stringtoturn,1,1)..turnedstring
		stringtoturn = string.sub(stringtoturn,2)
	end

	return turnedstring
end
function turntable (tabletoturn)
	turnedtable = {}
	intexi = tablelength(tabletoturn)
	intexinnorm = 1
	while (intexi>0) do
		turnedtable[intexi] = tabletoturn[intexinnorm]
		intexi = intexi-1
		intexinnorm = intexinnorm+1
	end
	
	return turnedtable
end


function relevanttags( tttagstate )
	aaltags = schlagwortliste()
	endtags = {}
	iindexii = 1
	realiindexii = 1
	while (iindexii<=string.len(tttagstate)) do
		if (string.sub(tttagstate,iindexii,iindexii)=="1") then
			endtags[realiindexii] = aaltags[iindexii]
			realiindexii = realiindexii+1
		end	
		iindexii = iindexii+1
	end
	return endtags
end

function relevantcats( cccatstate )
	-- cccatstate = turnstring(cccatstate)
	aallcats = categorylist()
	endcats = {}
	--endcats["log"] = ""
	iiindexiii = string.len(cccatstate)
	for scatname, ssubcatnames in pairs(aallcats) do
		--endcats["log"] = endcats["log"]..scatname..": \n\n"
		for subcatindex, ssubcatname in pairs(turntable(ssubcatnames)) do
			
			if (string.sub(cccatstate,iiindexiii,iiindexiii)=="1") then
				if (endcats[scatname] == nil) then
					endcats[scatname] = {}
				end
				table.insert(endcats[scatname], ssubcatname)
				--endcats["log"] = endcats["log"]..ssubcatname.." "..string.sub(cccatstate,iiindexiii,iiindexiii).."\n\n"
			end
			iiindexiii = iiindexiii-1
		end
		cccatstate = string.sub(cccatstate,1, iiindexiii)
		iiindexiii = string.len(cccatstate)
	end 
	return endcats
end


function getpartapi(ttagstate, ccatstate)
	nosorttlist, cattlist = gegapi()
	reltags = relevanttags(ttagstate)
	relcats = relevantcats(ccatstate)
	dieqtter = {}
	dieqtter["Name"] = "Dieter"
	newnosortlist = {dieqtter}
	newcattlist = {}
	for numbergti, curretne in pairs(nosortlist) do
		--if (tabcontainstab(nosortlist[numbergti]["Schlagwörter"],reltags)==true) then
			--if(relcats[nosortlist[numbergti]["Category"]]~=nil) then
				--if(relcats[nosortlist[numbergti]["Category"]][nosortlist[numbergti]["Subcategory"]]~=nil) then
					table.insert(newnosortlist,nosortlist[numbergti])
				--end
			--end
		--end
	end
	-- relcats = relevantcats(ccatstate)
	-- for catnubini, currini in pairs(relcats) do
		-- for subnubiniz, curriniz in pairs(currini) do
			-- for namenubbez, contcurrez in pairs(cattlist[catnubini][subnubiniz]) do
				-- if (tabcontainstab(cattlist[catnubini][subnubiniz][namenubbez]["Schlagwörter"],reltags)==true) then
					-- if (newcattlist[catnubini]==nil) then
						-- newcattlist[catnubini] = {}
					-- end
					-- if (newcattlist[catnubini][subnubiniz]==nil) then
						-- newcattlist[catnubini][subnubiniz] = {}
					-- end
					-- newcattlist[catnubini][subnubiniz][namenubbez] = contcurrez
				-- end
			-- end
		-- end
	-- end

	return newnosortlist--,newcattlist
end