=====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 ]]