×
Einen neuen Artikel erstellen
Schreibe den Seitennamen hierhin:
Wir haben derzeit 9.333 Artikel auf VAULTPEDIA. Gib deinen Artikelnamen oberhalb von oder klicke auf einen der unten stehenden Titel und beginne zu schreiben! ein



    VAULTPEDIA
    9.333Artikel

    VAULTPEDIA.DE ist seit dem 02.02.2026 öffentlich zugänglich.

    Da es sich um ein frisch migriertes Wiki handelt, können vereinzelt noch Datenbank-, Seiten- oder Designfehler auftreten.

    Tritt unserem Discord bei, um Fehler zu melden oder direkt mit dem Team in Kontakt zu treten.

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

    --<nowiki>
    
    local p = {}
    
    local games = {
        ["AR"] = "All Roads",
        ["D20"] = "Fallout Pen & Paper d20",
        ["FB"] = "Fallout Bible",
        ["FBG"] = "Fallout: The Board Game",
        ["FBGNC"] = "Fallout: New California",
        ["FILM"] = "Fallout (Film)",
        ["FNV"] = "Fallout: New Vegas",
        ["FNVGRA"] = "Gun Runners' Arsenal",
        ["FNVDM"] = "Dead Money",
        ["FNVHH"] = "Honest Hearts",
        ["FNVOWB"] = "Old World Blues (Add-On)",
        ["FNVLR"] = "Lonesome Road (Add-On)",
        ["FO1"] = "Fallout",
        ["FO2"] = "Fallout 2",
        ["FO3"] = "Fallout 3",
        ["FO3OA"] = "Operation: Anchorage (Add-On)",
        ["FO3TP"] = "The Pitt (Add-On)",
        ["FO3BS"] = "Broken Steel",
        ["FO3PL"] = "Point Lookout (Add-On)",
        ["FO3MZ"] = "Mothership Zeta (Add-On)",
        ["FO4"] = "Fallout 4",
        ["FO4AUT"] = "Automatron (Add-On)",
        ["FO4WW"] = "Wasteland Workshop",
        ["FO4FH"] = "Far Harbor (Add-On)",
        ["FO4CW"] = "Contraptions Workshop",
        ["FO4VW"] = "Vault-Tec Workshop",
        ["FO4NW"] = "Nuka-World (Add-On)",
        ["FO4VR"] = "Fallout 4 VR",
        ["FO4CC"] = "Creation Club",
        ["FO76"] = "Fallout 76",
        ["FO76WA"] = "Wild Appalachia",
        ["FO76NW"] = "Nuclear Winter",
        ["FO76WL"] = "Wastelanders",
        ["FO76LR"] = "Das legendäre Rennen (Update)",
        ["FO76OW"] = "Ein Ödland für alle",
        ["FO76FS"] = "Stählerne Dämmerung",
        ["FO76SD"] = "Stählerne Dämmerung",
        ["FO76LL"] = "Geladen und entsichert",
        ["FO76SR"] = "Stählerne Herrschaft",
        ["FO76FW"] = "Fallout Worlds (Update)",
        ["FO76IB"] = "Angreifer aus dem All (Update)",
        ["FO76NM"] = "Nacht der Motte",
        ["FO76TM"] = "Härteprüfung (Update)",
        ["FO76TP"] = "Expeditionen: The Pitt",
        ["FO76NT"] = "Nuka-World on Tour (Update)",
        ["FO76NWOT"] = "Nuka-World on Tour (Update)",
        ["FO76MI"] = "Mutations-Invasion",
        ["FO76OB"] = "Wenn die Sterne günstig stehen",
        ["FO76AC"] = "Expeditionen: Atlantic City",
        ["FO76BP"] = "AC Boardwalk Paradise",
        ["FO76AP"] = "AC America's Playground",
        ["FO76SV"] = "Skyline Valley (Update)",
        ["FO76MZ"] = "Meilenstein Null (Update)",
        ["FO76GD"] = "Strahlende Tiefen (Update)",
        ["FO76GW"] = "Der innere Ghul",
        ["FO76GF"] = "Gone Fission (Update)",
        ["FO76CR"] = "C.A.M.P.-Sanierung",
        ["FO76BS"] = "Burning Springs (Update)",
        ["FOBOS"] = "Fallout: Brotherhood of Steel",
        ["FOBOS2"] = "Fallout: Brotherhood of Steel 2",
        ["FORPG"] = "Fallout: Das Rollenspiel",
        ["2D20"] = "Fallout: Das Rollenspiel",
        ["FORPGWOA"] = "Winter des Atoms",
        ["FOS"] = "Fallout Shelter",
        ["FOSO"] = "Fallout Shelter Online",
        ["FOT"] = "Fallout Tactics",
        ["FOT2"] = "Fallout Tactics 2",
        ["FOTV"] = "Fallout (Fernsehserie)",
        ["FTV"] = "Fallout (Fernsehserie)",
        ["FOW"] = "Fallout: Warfare",
        ["FOX"] = "Fallout Extreme",
        ["FWW"] = "Fallout: Wasteland Warfare",
        ["FOWW"] = "Fallout: Wasteland Warfare",
        ["FOF"] = "Fallout: Factions",
        ["JES"] = "J.E. Sawyer's Fallout RPG",
        ["LH"] = "Lionheart",
        ["PA"] = "One Man, and a Crate of Puppets",
        ["PV13"] = "Project V13",
        ["TAR"] = "Project V13",
        ["VB"] = "Van Buren",
    }
    
    -- look up short title without disambig
    function stitle(game)
        local result = games[game] or game
        if game == "FILM" or game == "FNVOWB" or game == "FNVLR" or game == "FO3OA" or game == "FO3TP" or game == "FO3PL" or game == "FO3MZ" or game == "FO4AUT" or game == "FO4FH" or game == "FO4NW" or game == "FO76LR" or game == "FO76FW" or game == "FO76IB" or game == "FO76NT" or game == "FO76TM" or game == "FO76NWOT" or game == "FO76SV" or game == "FO76MZ" or game == "FO76GD" or game == "FO76GW" or game == "FO76GF" or game == "FO76CR" or game == "FO76BS" then
            result = result:gsub('%s%(.*', '')
        end
    	
        if game == "FOTV" or game == "FTV" then
    	
        	result = result:gsub(".*%((.*)%)", "%1")
        end
        return result
    end
    
    -- ====================
    -- Diese Funktion, links, ist für gewöhnliche Links innerhalb des 
    -- Inhalts einer Infobox gedacht. Wenn du nur [[Fallout 4]] 
    -- zurückgeben möchtest, dann verwende die Syntax:
    --        {{#invoke:Games|links|{{{games|}}}}}
    -- Die Angabe eines zweiten Arguments gibt den Text kursiv zurück:
    --        {{#invoke:Games|links|{{{games|}}}|1}}
    -- ====================
    
    function p.links(frame)
        local result = ''
     
        local game_list = mw.text.split(frame.args[1], "%s*,%s*") 
        for n, game in ipairs(game_list) do
            if game == "" or game == "-" or game:lower() == "none" or game:lower() == "kein" then
                result = ''
            else
                result = result .. '[[' .. games[game] .. '|' .. stitle(game) .. ']]'
                if n ~= #game_list then
                    result = result .. '<br/>'
                end
            end
        end
     
        if (frame.args[2] and result ~= '') then
            return "''" .. result .. "''"
        else
          return result
        end
    end
    
    -- ====================
    -- Diese Funktion, title, generiert generisch Links für den Supertitel.
    -- Entweder nur zur Spielseite selbst oder zu einer spezifischeren Seite.
    --
    -- {{#invoke:Games|title|FO4}} gibt einfach [[Fallout 4|Fallout 4]]
    -- {{#invoke:Games|title|FO4|Waffen}} ergibt [[Waffen (Fallout 4)|Fallout 4]]
    -- {{#invoke:Games|title|FO4|Waffen|Waffe}} ergibt [[Waffen (Fallout 4)|Fallout 4: Waffe]]
    -- ====================
    
    function p.title(frame)
        local result = ''
     
        local game_list = mw.text.split(frame.args[1], "%s*,%s*") 
        for n, game in ipairs(game_list) do
            if game == "-" or game:lower() == "none" or game:lower() == "kein" then
                result = 'erwähnt' 
                if frame.args[3] then 
                    result = frame.args[3] .. ' (' .. result .. ')'
                end
            else
                local link
                if frame.args[2] then
                    link = frame.args[2] .. ' (' .. stitle(game)  .. ')'
                else
                    link = games[game]
                end
                local text = stitle(game)
                if frame.args[3] and n == #game_list then
                    text = text .. ': ' .. frame.args[3]
                end 
                result = result .. '[[' .. link .. '|' .. text .. ']]'
                if n ~= #game_list then
                    result = result .. ' / '
                end
            end
        end
     
        return result
    end
    
    -- ====================
    -- Kategorie: Gibt den Kategorie-Wikicode zurück, außer er befindet sich auf der Seite, die ihn aufgerufen hat.
    -- ====================
    function p.kategorie(frame)
        local kategorie = frame.args[2]
        if not kategorie or kategorie == "" then
            return ''
        end
        
        local game = frame.args[1] or ""
        
        -- Wenn kein game gesetzt ist → nur Hauptkategorie
        if mw.text.trim(game) == "" then
            return '[[Kategorie:' .. kategorie .. ']]'
        end
    
        local result = ''
        local game_list = mw.text.split(game, "%s*,%s*")
    
        local currTitle = mw.title.getCurrentTitle()
        local parentFrame = frame:getParent()
        local parentTitle = parentFrame and mw.title.new(parentFrame:getTitle())
    
        -- Vorlage kategorisiert sich selbst
        if parentTitle and parentTitle.prefixedText == currTitle.prefixedText then
            return "[[Kategorie:Vorlagen mit Autokategorisierung]]"
        end
    
        -- Keine Kategorisierung auf Unterseiten der Vorlage
        if parentTitle and currTitle:isSubpageOf(parentTitle) then
            return ''
        end
    
        -- Wörter/Werte, bei denen KEINE Kategorie erzeugt werden soll
        local ignore = {
            none = true,
            nein = true,
            kein = true,
            ["-"] = true,
            ["–"] = true,
            ["—"] = true,
        }
    
        for _, game in ipairs(game_list) do
            local game = mw.text.trim(game)
            local g = game:lower()
            
        	if not ignore[g] then
                if not games[game] then
                    error("Spiel '" .. game .. "' befindet sich nicht in der Spieleliste.")
                end
                
                result = result .. '[[Kategorie:'
                    .. stitle(game)
                    .. ': '
                    .. category
                    .. ']]'
                end
        	end
    	
        return result
    end
    
    return p
    
    --</nowiki>