Site Tools


Hotfix release available: 2018-04-22b "Greebo". upgrade now! [50.2] (what's this?)
demoscript

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

demoscript [2018/11/12 23:23] (current)
Line 1: Line 1:
 +Auf dieser Seite befindet sich zu Testzwecken das [[http://​www.siedler-portal.de/​vb3/​showthread.php?​t=3380|RequireVersion]] Script.
 +Dieses wurde unten auch zu Testzwecken als Datei angehängt.
  
 +<code lua>
 +-- 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
 +</​code>​
 +
 +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.lua}}
demoscript.txt · Last modified: 2018/11/12 23:23 (external edit)