Benutzer-Werkzeuge

Webseiten-Werkzeuge


scripting:tutorials:level1:resources

Startressourcen verteilen

Jedem der 8 Spieler kann zu jeder Zeit im Skript Ressourcen hinzugefügt oder abgezogen werden. Für veredelte Ressourcen gibt es dafür die Funktionen:

AddGold(_PlayerId, _Amount) -- Taler
AddClay(_PlayerId, _Amount) -- Lehm
AddWood(_PlayerId, _Amount) -- Holz
AddStone(_PlayerId, _Amount) -- Stein
AddIron(_PlayerId, _Amount) -- Eisen
AddSulfur(_PlayerId, _Amount) -- Schwefel

Die Ressourcen des Computergegners verteilen wir erst im entsprechenden Kapitel, sodass wir uns hier nur mit den Ressourcen des Spielers beschäftigen.

Ziel ist es, eine angemessene Balance zwischen Herausforderung und zügigem Spielbeginn zu finden. Am Anfang einer Partie braucht der Spieler vor allem Holz und Lehm, um schnell eine Basissiedlung aufbauen zu können. Stein, Eisen und Schwefel sollten nach Verfügbarkeit gegeben werden. Falls in der Nähe der Startposition beispielsweise keine Schwefelvorkommen verfügbar sind, ist es oft sinnvoll, dem Spieler etwas mehr Schwefel für die Forschung zu geben.

Unsere Beispielkarte stellt alle Ressourcen von Anfang an zur Verfügung. 2 Lehmgruben, 1 Steingrube und 1 Hochschule sollten auf jeden Fall sofort gebaut werden können. Die Verteilung der Startressourcen könnte demnach so aussehen:

function InitResources()
    AddGold(1, 500)
    AddClay(1, 1200)
    AddWood(1, 1500)
    AddStone(1, 800)
    AddIron(1, 400)
    AddSulfur(1, 250)
end


Unveredelte Ressourcen

Manchmal ist es sinnvoll, dem Spieler unveredelte Ressourcen zu geben. Dafür gibt es den Befehl

Logic.AddToPlayersGlobalResource(_PlayerId, _ResourceType, _Amount)

Der _ResourceType ist eine Zahl zwischen 1 und 17, wobei intern ein Table existiert, das die Ressourcentypen „lesbar“ macht. Folgende Ressourcentypen gibt es:

ResourceType.Clay
ResourceType.ClayRaw
ResourceType.Faith
ResourceType.Gold
ResourceType.GoldRaw
ResourceType.Iron
ResourceType.IronRaw
ResourceType.Knowledge
ResourceType.Silver
ResourceType.SilverRaw
ResourceType.Stone
ResourceType.StoneRaw
ResourceType.Sulfur
ResourceType.SulfurRaw
ResourceType.WeatherEnergy
ResourceType.Wood
ResourceType.WoodRaw

Wie du siehst, gibt es von jeder Ressource den Standardtyp (z.B. ResourceType.Gold) und den „rohen“, unveredelten Typ (ResourceType.GoldRaw).
500 Einheiten unveredeltes Eisen wird Spieler 1 also folgendermaßen gegeben:

Logic.AddToPlayersGlobalResource(1, ResourceType.IronRaw, 500)

In der Liste sind dir wahrscheinlich auch noch andere Ressourcentypen aufgefallen, die nicht direkt im Spiel angezeigt werden. Einige davon sind unbenutzt und haben keine Auswirkungen auf das Spiel (Silver, SilverRaw und Knowledge).
Andere haben eine Obergrenze und sollten ohnehin nicht im Skript manipuliert werden, da dadurch sonst Spielmechaniken ausgehebelt werden oder nicht mehr funktionieren (Faith und WeatherEnergy).


Ressourcen abziehen

Jedem Spieler kann mit den Add…-Befehlen auch Ressourcen abgezogen werden. Dazu muss der Parameter _Amount einfach negativ sein. Beispielsweise werden Spieler 1 so 300 Taler abgezogen:

AddGold(1, -300)

Werden, wie bei AddGold der Fall, veredelte Ressourcen abgezogen, können auch unveredelte Ressourcen schwinden, falls nicht genug veredelte vorhanden sind (genau wie beim Bau von Gebäuden oder Einheiten). Das Ressourcenkonto kann nie unter 0 fallen, sodass bei obigem Befehl beispielsweise nur 200 Taler abgezogen werden, wenn Spieler 1 200 Taler hat. Es ist in den meisten Fällen nicht sinnvoll, gezielt unveredelte Ressourcen abzuziehen, weshalb die Add…-Befehle für diesen Zweck ausreichend sind.


Im nächsten Kapitel wird gezeigt, wie einzelne Technologien verboten, erlaubt oder automatisch zur Verfügung gestellt werden können.

Voriges Kapitel: Diplomatie
Nächstes Kapitel: Technologien
Zurück nach oben

scripting/tutorials/level1/resources.txt · Zuletzt geändert: 2023/08/05 13:46 von fritz_98