utilfunctions:upgradebuilding
Inhaltsverzeichnis
UpgradeBuilding
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.
Beispiel
Angenommen es gibt einen Aussichtsturm von Spieler 3 mit dem Scriptnamen „TurmVonSpieler3“. Um ihn auszubauen schreibt man Folgendes:
UpgradeBuilding("TurmVonSpieler3")
Anmerkungen
- Diese Funktion kann nicht direkt in einer Callback-Funktion eines Tributes stehen (es wird einfach kein Gebäude ausgebaut). Der Grund dafür ist unbekannt und liegt irgendwo in den Interna des Spieles. Lösung des Problems: Einfach im Callback eine DelayFunc oder einen Countdown starten und dort dann die Gebäude ausbauen, dann klappt es wieder.
Code
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
utilfunctions/upgradebuilding.txt · Zuletzt geändert: 2021/09/18 19:16 von 127.0.0.1