Um ein Gebäude auszubauen, kann man es einfach über ReplaceEntity() mit der nächsten Ausbaustufe ersetzen. In einigen Situationen kann es aber schöner sein, es tatsächlich mit der entsprechenden Upgrade Animation/Wartezeit auszubauen. Dafür kann man diese Funktion benutzen. Der Upgrade-Vorgang funktioniert dabei immer, unabhängig von den vorhandenen Ressourcen.
Angenommen es gibt einen Aussichtsturm von Spieler 3 mit dem Scriptnamen „TurmVonSpieler3“. Um ihn auszubauen schreibt man Folgendes:
UpgradeBuilding("TurmVonSpieler3")
function UpgradeBuilding(_EntityName) -- Get entity's ID local EntityID = GetEntityId(_EntityName) -- Still existing? if IsValid(EntityID) then -- Get entity type and player local EntityType = Logic.GetEntityType(EntityID) local PlayerID = GetPlayer(EntityID) -- Get upgrade costs local Costs = {} Logic.FillBuildingUpgradeCostsTable(EntityType, Costs) -- Add needed resources for Resource, Amount in Costs do Logic.AddToPlayersGlobalResource(PlayerID, Resource, Amount) end -- Start upgrade GUI.UpgradeSingleBuilding(EntityID) end end
zurück zu: Nützliche Funktionen