Benutzer-Werkzeuge

Webseiten-Werkzeuge


demoscript

Auf dieser Seite befindet sich zu Testzwecken das RequireVersion Script. Dieses wurde unten auch zu Testzwecken als Datei angehängt.

-- Wenn die eigene Version "1.05.0216 Extra1" ist (wirds rechts unten im Hauptmenü angezeigt)...
-- ..dann kommt in die FirstMapAction folgender Aufruf vor den eigenen Code: RequireVersion( 1, 05, 0216, 1 );
-- Ist die Version des Spielers zu alt, wird eine Warnung angezeigt aber das Spiel läuft normal weiter.
-- Alternativ kann sich die Karte auch beenden, wenn die Version zu alt ist:
-- RequireVersion( 1, 05, 0216, 1, true );
function RequireVersion( _major, _minor, _build, _addon, _forcequit )
    assert( type( _major ) == "number" )
    assert( type( _minor ) == "number" )
    assert( type( _build ) == "number" )
    assert( type( _addon ) == "number" )
 
    local restext;
    local action;
 
    local dummy, dummy, nMajor, nMinor, nBuild, nAddon = string.find( Framework.GetProgramVersion(), "^(%d+)%.(%d+)%.(%d+) Extra(%d+)$" );
    if dummy then
        nMajor = tonumber( nMajor );
        nMinor = tonumber( nMinor );
        nBuild = tonumber( nBuild );
        nAddon = tonumber( nAddon );
 
        local tooOld = false;
        if _addon > nAddon or _major > nMajor then
            tooOld = true;
        elseif _major == nMajor then
            if _minor > nMinor then
                tooOld = true;
            elseif _minor == nMinor then
                if _build > nBuild then
                    tooOld = true;
                end
            end
        end
 
        if tooOld then
            restext = "Ihre Spielversion ist zu alt! @cr Die Karte benoetigt: " .. _major .. "." .. _minor .. "." .. _build .. " Extra" .. _addon .. " @cr Sie haben: " .. nMajor .. "." .. nMinor .. "." .. nBuild .. " Extra" .. nAddon .. " @cr Bitte installieren sie das aktuelle Update von www.siedler.de";
            action = _forcequit and Framework.CloseGame;
        end
 
    else
        restext = "Die Spielversion konnte nicht ermittelt werden. Die Karte wird eventuell nicht normal spielbar sein! @cr Die Karte benoetigt: " .. _major .. "." .. _minor .. "." .. _build .. " Extra" .. _addon;
    end
 
    if restext then
        restext = restext .. string.rep( " ", 200 );
        StartBriefing{ finished = action, { title = "@color:255,0,0 ACHTUNG!", text = restext } };
    end
end

Wie man sehen kann, ist es vernünftig formatiert, und auch automatisch in Farbe dargestellt.
In welcher Farbe/Formatierung welche Zeichen/Wörter angezeigt werden sollen, kann man natürlich einstellen.

Hier das Script als Datei: requireversion.rar

demoscript.txt · Zuletzt geändert: 2021/09/18 19:15 (Externe Bearbeitung)