Difference between revisions of "Modul:X"
Murmelgrumpf (talk | contribs) |
Murmelgrumpf (talk | contribs) |
||
Line 1,290: | Line 1,290: | ||
− | return frame[1] | + | return frame.args[1] |
end | end | ||
return p | return p |
Revision as of 22:21, 23 May 2020
Die Dokumentation für dieses Modul kann unter Modul:X/Doku erstellt werden
local p = {} --local p = {} -- p steht für Paket (engl. package) 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 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 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 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 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 p.cutblock ( frame ) text = frame.args[3]-- "Die Schmiede" width = tonumber(frame.args[2]) -- 4 height = tonumber(frame.args[1]) -- 12 block = "" textlen = string.len(text) -- 12 tempsplit = {} while (height>0 and textlen>=width) do -- 12>0 and 12>=4|11>0 and 11>=4 tempsplit = split(cut(width, text), "%%%@%%") -- ("Die", "Schmiede")| ( block = block..tempsplit[1].." " -- "Die " text = tempsplit[2] -- "Schmiede" height = height-1 -- 11 if (text==nil) then text = "" end textlen = string.len(text) -- 8 end if (height>0) then block = block.." "..text text = "" end result = block.."%@%"..text result = string.gsub(result, "%§", " ") return result end function p.cut( frame ) testtext = "" realtext = frame.args[2] --Die Schmiede realtext = removespaceinlink(realtext) --Die Schmiede srealtext = split(realtext, " ") --Die|Schmiede(list) i = 2; --2 testtext = testtext.."<br \>"..i..": " limit = tonumber(frame.args[1]) --4 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 p.display ( frame ) text = frame.args[1] text = text:gsub("'", "") lend = string.len(text) i=1 auf = {} zu = {} currentauf = string.find(text, "%[%[") while (currentauf ~= nil) do auf[i] = 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 i=i+1 end i=1 currentzu = string.find(text, "%|") while (currentzu ~= nil) do zu[i] = 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 i=i+1 end offset = 0 if(table.getn(auf) == table.getn(zu))then i=1 while (table.getn(auf)>=i) do anfang = auf[i] ende = zu[i] 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 i=i+1 end text = string.gsub(text, "%[%[(.+)%|", "") end -- text = text:gsub("%[", "") -- text = text:gsub("%|", "") text = text:gsub("%]", "") return text end 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 = {} zu = {} currentauf = string.find(text, "%[%[") while (currentauf ~= nil) do auf[i] = 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 i=i+1 end i=1 currentzu = string.find(text, "%]%]") while (currentzu ~= nil) do zu[i] = 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 i=i+1 end if(table.getn(auf) == table.getn(zu))then i=1 while (table.getn(auf)>=i) do anfang = auf[i] ende = zu[i] 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 end end return text end function p.size ( frame ) text = frame.args[1] return textSize(text) end function p.size ( frame ) text = frame.args[1] return textSize(text) end function p.findg( frame ) 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 i=i+1 end --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 function p.yggrassen( frame ) text = frame.args[1] stext = split (text, "\n") haupttext = split (text, "'''Nebenrassen'''")[1] nebentext = split (text, "'''Nebenrassen'''")[2] shaupttext = split (haupttext, "\n") snebentext = split (nebentext, "\n") 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 return ending end function p.yggtab( frame ) text = frame.args[1] img = frame.args[2] stext = split (text, "§§§") exist = true imgtext = '' if (img~=nil and img~='' and img~='{{{img}}}') then imgtext='<div id="yggimg">[[Datei:'..img..']]</div>\n' end i=1 rettext='{|class="wikitable" style="width: 32%; float:right; margin-top: 0; margin-bottom: 0px;"\n|-\n' while (stext[i+1]~=nil) do rettext=rettext..'!style="width:32%; padding: 10px;" |'..string.sub(stext[i],2,string.len(stext[i]))..'\n' 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 rettext=rettext..'\n\n' i=i+1 end rettext=rettext..'|-\n' i=i+1 end rettext=rettext..'|}'..stext[i-1]..'\n|style="width:20%; padding: 0; vertical-align:top;"|'..imgtext return rettext end function p.getpage( frame ) title = mw.title.new( frame.args[1], frame.args[2] ) content = title:getContent() return content end function p.getheader( frame ) title = mw.title.new( frame.args[1], frame.args[2] ) content = title:getContent() --content = string.gsub(content, "([$$$]+)", "DIESER CHARACTER WIRD NICHT UNTERSTÜTZT") content = string.gsub(content, "%=%=+", "§§§") 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 return finaltext 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 p.index( frame ) --content = displaytablevert(getindexformat()) text = frame.args[1] stext = split (text, "§§§") currentpage = "" currentheaders= nil finish = "" tempfinish ="" i = 1 inde = 1 while (i<=tablelength(stext)) do currentpage = stext[i] currentheaders = headertotablelimit(currentpage, "Yggdrasil") currentpage = string.sub(currentpage, 1, string.len(currentpage)-2) headlen = tablelength(currentheaders) inde = 1 while (inde<=headlen) do if (tablelength(currentheaders[inde])==1) then tempfinish = getindexformat()[1] tempfinish = string.gsub(tempfinish, "{{{h1}}}", currentheaders[inde][1]) tempfinish = string.gsub(tempfinish, "{{{h1 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][1].."|"..currentheaders[inde][1].."]]") elseif(tablelength(currentheaders[inde])==2) then tempfinish = getindexformat()[2] tempfinish = string.gsub(tempfinish, "{{{h1}}}", currentheaders[inde][1]) tempfinish = string.gsub(tempfinish, "{{{h2}}}", currentheaders[inde][2]) 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].."]]") elseif(tablelength(currentheaders[inde])==3) then tempfinish = getindexformat()[3] 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, "{{{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].."]]") elseif(tablelength(currentheaders[inde])==4) then tempfinish = getindexformat()[4] 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, "{{{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 if(tablelength(currentheaders[inde])~=0) then if (currentpage=="Religion") then currentpagedis = "Religion/Äscher" elseif(currentpage=="Religion2") then currentpagedis = "Religion/Lacerta" 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 inde=inde+1 end i=i+1 end return finish --<h2> end function p.religion( frame ) ull = "" if (frame.args[1]=="1") then ull = '{{YggRegister|!Religion:Äscher|Religion2:Lacerta|Religion3:Lichtalben|Religion4:Dubkelalben|Religion5:Dweorgo|Religion6:Andere}}' 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 return ull end function p.test( frame ) dieter, dieter2 = gegapi() dieter2 = dieter2["Kampfutensilien"]["Nahkampfwaffen"][1] leresti = "Dinge:\n" 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 return leresti end function p.options( frame ) stext = split (frame.args[1], "§§§") lengthi = tablelength(stext) finalthing = "" if (lengthi==2) then finalthing = "*[[#"..stext[1].."|"..stext[1].."]] (Bei 1-50)\n*[[#"..stext[2].."|"..stext[2].."]] (Bei 51-100)" elseif(lengthi==3) then finalthing = "*[[#"..stext[1].."|"..stext[1].."]] (Bei 1-33)\n*[[#"..stext[2].."|"..stext[2].."]] (Bei 34-66)\n*[[#"..stext[3] .."|"..stext[3].."]] (Bei 67-99)\n*Bei 100 Reroll" elseif(lengthi==4) then finalthing = "*[[#"..stext[1].."|"..stext[1].."]] (Bei 1-25)\n*[[#"..stext[2].."|"..stext[2].."]] (Bei 26-50)\n*[[#"..stext[3] .."|"..stext[3].."]] (Bei 51-75)\n*[[#"..stext[4].."|"..stext[4].."]] (Bei 76-100)" elseif(lengthi==5) then finalthing = "*[[#"..stext[1].."|"..stext[1].."]] (Bei 1-20)\n*[[#"..stext[2].."|"..stext[2].."]] (Bei 21-40)\n*[[#"..stext[3] .."|"..stext[3].."]] (Bei 41-60)\n*[[#"..stext[4].."|"..stext[4].."]] (Bei 61-80)\n*[[#"..stext[5].."|"..stext[5].."]] (Bei 81-100)" 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 5 Optionen nicht reicht wende dich bitte an [[Benutzerin:Murmelgrumpf]]" end return finalthing end function p.kampf( frame ) stext = split (frame.args[1], "§§§") lengthi = tablelength(stext) curthing = "" eendrest = "" for nudmbr,crdrent in ipairs(stext) do curthing = split (stext[nudmbr], ">") eendrest = eendrest.."|"..curthing[1].."\n|"..curthing[2].."\n|"..curthing[3].."\n|-\n" end return eendrest end function p.dia( frame ) stext = split (frame.args[1], "§§§") lengthi = tablelength(stext) curthing = "" eendrest = "" for nudmbr,crdrent in ipairs(stext) do curthing = split (stext[nudmbr], ":") eendrest = eendrest.."\n'''"..curthing[1]..":'''\n\n„''"..curthing[2].."''“\n" end return eendrest end function p.image( frame ) imaage = "[[Datei:"..frame.args[1] if (frame.args[2]~=nil) then imaage = imaage.."|"..frame.args[2] end if (frame.args[3]~=nil) then imaage = imaage.."|"..frame.args[3] end if (frame.args[4]~=nil) then imaage = imaage.."|"..frame.args[4] end if (frame.args[5]~=nil) then imaage = imaage.."|"..frame.args[5] end if (frame.args[6]~=nil) then imaage = imaage.."|"..frame.args[6] end imaage = imaage.."]]" return imaage end function p.vid( frame ) stext = split (frame.args[2], "§§§") 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 function p.talents( frame ) handeln = split (frame.args[1], "\n") 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 function p.description( frame ) stext = split (frame.args[1], "§§§") eerndrest="" if(tabContains(stext,"Szene")) then eerndrest = eerndrest.."'''<span style='color:#BB0011;'>Szenen und Interaktionen:</span>'''\n\nSzenen geben Handlung vor, welche die Spieler meist passiv miterleben. Interaktionen sind aktive Szenen, die eine Interaktion mit den Spielern erfordern.\n\n\n" end if(tabContains(stext,"Orte")) then eerndrest = eerndrest.."'''Raum- und Ortsbeschreibungen:'''\n\nCharakterisieren Lokalitäten, die von den Helden betreten werden können.\n\n\n" end if(tabContains(stext,"Box")) then eerndrest = eerndrest.."<div class='box'>'''Boxen:'''</div>\n\nBoxen stehen für Spielleiterhinweise und beinhalten meist Hintergrundinformationen, welche die Spieler nicht haben können.\n\n\n" end if(tabContains(stext,"Cursiv")) then eerndrest = eerndrest.."''Cursive Texte:''\n\nCursive Texte können wörtlich vorgetragen werden und beinhalten meist direkte Rede oder Beschreibungen.\n\n\n" end if(tabContains(stext,"Probe")) then eerndrest = eerndrest.."'''<span style='color:#31B404;'>Proben:</span>'''\n\nSteht für mögliche Talentwürfe, welche die Spieler ablegen müssen.\n\n\n" end if(tabContains(stext,"Moral")) then eerndrest = eerndrest.."'''<span style='color:#00b8ff;'>Moral:</span>'''\n\nBeinhaltet Situationen, an denen die Spieler moralische Fragen beantworten müssen, die sich auf den Verlauf des Abenteuers auswirken können.\n\n\n" end if(tabContains(stext,"Module")) then eerndrest = eerndrest.."'''<span style='color:#4B088A;'>Module:</span>'''\n\nBeinhalten Regeln, die zusätzlich zum Grundregelwerk in diesem Abenteuer verwendet werden.\n\n\n" end return eerndrest end function p.ygggegerror ( frame ) displayedtext = "\n\n----\n\n" listeeins, listezwei = gegapi() headerends = {} schlagworte = schlagwortliste() for eines,zweites in pairs(listeeins) do table.insert(headerends,listeeins[eines]["Name"]) for qfsdf,zweihgfhgtes in pairs(listeeins[eines]["Schlagwörter"]) do 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 dupeeeetab = duptable(headerends) 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 return displayedtext end function p.testzwei ( frame ) return frame.args[1] end return p