=====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 [[ scripting:tutorials:level1:enemy_ai|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.
[[ scripting:tutorials:level1:diplomacy | Voriges Kapitel: Diplomatie ]] \\
[[ scripting:tutorials:level1:technologies | Nächstes Kapitel: Technologien ]] \\
[[ scripting:tutorials:level1:resources | Zurück nach oben ]]