====== Comfort: Tribute_Comforts ======
===== Beschreibung =====
Mit diesem Code lassen sich vereinfacht Tribute setzen. \\
Ausserdem aktiviert der Code die Tribute für den Multiplayer Modus. \\
===== Anwendung =====
Zur Aktivierung muss in der FirstMapAction() vor Anwendung der Code eingelesen werden:
Tribute_Comforts()
Jetzt können folgende Funktionen verwendet werden
==== Countdown ====
StartCountdown (_Limit, _Callback, _Show)
_Limit: Ablauf des Countdowns in Sekunden
_Callback: Funktion (ohne " ", also einfach der Name!)
_Show: True, falls der Countdown gezeigt werden soll. Achtung! Es kann nur ein Countdown auf einmal angezeigt werden!
==== Tribut erstellen ====
_TributeId = CreateATribute (_pId, _text, _cost, _callback)
_TributeId: Speichert die ID des Tributs für spätere Verwendung
_pId: Spieler ID (1 im Singleplayer!)
_text: Text als String
_cost: Kosten als Table z.B. { Gold = 1000}
_callback: Funktion die bei Bezahlen aufgerufen wird.
==== Verknüpfte Funktionen ====
=== Bezahlen erzwingen ===
[[reference:gui:paytribute|GUI.PayTribute( _playerId, _tributId)]]
=== Löschen von Tributen ===
[[reference:logic:removetribute|Logic.RemoveTribute( _playerId, _tributId)]]
===== Code =====
function Tribute_Comforts()
AddTribute = function( _tribute )
assert( type( _tribute ) == "table", "Tribut muß ein Table sein" );
assert( type( _tribute.text ) == "string", "Tribut.text muß ein String sein" );
assert( type( _tribute.cost ) == "table", "Tribut.cost muß ein Table sein" );
assert( type( _tribute.pId ) == "number", "Tribut.pId muß eine Nummer sein" );
assert( not _tribute.Tribute , "Tribut.Tribute darf nicht vorbelegt sein");
uniqueTributeCounter = uniqueTributeCounter or 1;
_tribute.Tribute = uniqueTributeCounter;
uniqueTributeCounter = uniqueTributeCounter + 1;
local tResCost = {};
for k, v in pairs( _tribute.cost ) do
assert( ResourceType[k] );
assert( type( v ) == "number" );
table.insert( tResCost, ResourceType[k] );
table.insert( tResCost, v );
end
Logic.AddTribute( _tribute.pId, _tribute.Tribute, 0, 0, _tribute.text, unpack( tResCost ) );
SetupTributePaid( _tribute );
return _tribute.Tribute;
end
CreateATribute = function(_pId, _text, _cost, _callback)
local tribute = {};
tribute.pId = _pId;
tribute.text = _text;
tribute.cost = _cost;
tribute.Callback = _callback;
return tribute
end
GameCallback_FulfillTribute = function()
return 1
end
end
===== Anmerkungen =====
Der Autor der Funktionen ist mir unbekannt.