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

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