Inhaltsverzeichnis

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

GUI.PayTribute( _playerId, _tributId)

Löschen von Tributen

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.