Settlers United Wiki
Settler IV Lua API DE
Search
K
Links
Comment on page

Siegbedingungen anpassen

Ihr könnt für eure Karten selbst definierte Siegbedingungen schreiben. Das Spiel hat hierfür extra ein spezielles Event, welches ähnlich wie Events.FIVE_TICKS alle Fünf Ticks aufgerufen wird. Standartmäßig ist dieses Event jedoch von einer eigenen Funktion von Siedler belegt, welche ihr durch setzen dieses Events überschreibt.
Dies ist das normale Verhalten von Siedler im Bezug auf die Überprüfung ob wer gewonnen hat:
function new_game()
request_event(VictoryConditionCheck, Events.VICTORY_CONDITION_CHECK)
end
function register_functions()
reg_func(VictoryConditionCheck)
end
function VictoryConditionCheck()
Game.DefaultPlayersLostCheck()
Game.DefaultGameEndCheck()
end
Wenn ihr dort anstelle der VictoryConditionCheck nun einfach folgendes schreibt, dann führt dies dazu das selbst ein Spieler, der seinen letzten Turm abreißt, nicht verloren hat. Aber auch kein anderer Spieler somit gewinnen kann.
function VictoryConditionCheck()
-- ja hier muss nichts stehen für das beschriebe Beispiel!
end
Ihr könnt somit aber auch die Sieg & Niederlagebedingungen umschreiben. Als Beispiel könnt ihr überprüfen, ob bereits ein anderen Spieler verloren hat, und wenn ja verliert automatisch sein Teammate mit (Beispiel bei einem 2vs2):
function VictoryConditionCheck()
Game.DefaultPlayersLostCheck()
if Game.HasPlayerLost(1) == 1 then
Game.PlayerLost(2)
elseif Game.HasPlayerLost(2) == 1 then
Game.PlayerLost(1)
elseif Game.HasPlayerLost(3) == 1 then
Game.PlayerLost(4)
elseif Game.HasPlayerLost(4) == 1 then
Game.PlayerLost(3)
end
Game.DefaultGameEndCheck()
end