Im Grunde wurde von TheOnlyTrueWitchking schon alles gesagt.^^ Ich antwort nur nochmal, weil ich hier auch genannt wurde.
Wenn du es per map.ini machen willst ein paar allgemeine Sachen noch:
Wenn du einen Spell normalerweise neu einfügen willst, musst du es in zwei CommandSets einfügen, einmal das Spellbook, wo man ihn kauft und einmal die Liste am Rand, wo man ihn einsetzt.
Wenn du es aber durch Scripts machst, reicht glaube ich das zweite. (ich hab bisher immer beide gemacht, daher hier keine 100% Sicherheit)
Hierbei musst du beachten:
Es gibt die Playertemplate für jedes Volk, die sieht ungefähr so aus:
PlayerTemplate FactionMen
Side = Men
PlayableSide = Yes
Evil = No
StartMoney = 0
MaxLevelMP = #DIVIDE( PLAYER_MAX_PURCHASE_POINTS_DEFAULT PLAYER_PURCHASE_POINTS_GRANTED )
MaxLevelSP = #DIVIDE( PLAYER_MAX_PURCHASE_POINTS_GOOD PLAYER_PURCHASE_POINTS_GRANTED )
PreferredColor = R:43 G:150 B:179
StartingBuilding = MenFortress
;------------- NO STARTING UNITS FOR YOU -------
;StartingUnit0 = GondorFighterHorde
;StartingUnitOffset0 = X:-60 Y:185 Z:0
StartingUnit1 = MenPorter
StartingUnitOffset1 = X:30 Y:200 Z:0
StartingUnit0 = MenPorter
StartingUnitOffset0 = X:1 Y:130 Z:0
StartingUnitTacticalWOTR = MenPorter ;// This unit is placed in tactical mode when playing WOTR. Add multiple lines for multiple units.
StartingUnitTacticalWOTR = MenPorter
IntrinsicSciences = SCIENCE_GOOD
IntrinsicSciencesMP = SCIENCE_MEN
SpellBook = GoodSpellBook
SpellBookMp = MenSpellBook
PurchaseScienceCommandSet = GoodSpellStoreCommandSet
PurchaseScienceCommandSetMP = MenSpellStoreCommandSet
DisplayName = INI:FactionMen
DefaultPlayerAIType = MenSkirmishAI
BeaconName = MultiplayerBeacon
LightPointsUpSound = GondorLightPointsUp
ObjectiveAddedSound = Gui_MissionObjectiveNew
ObjectiveCompletedSound = Gui_MissionObjectiveCompleted
InitialUpgrades = Upgrade_MenFaction ; Any upgrades this player template is born with.
// NOTE: It is very important that the create-a-hero be the first buildable hero, to ensure that the create-a-hero and the ring hero are always
// attached to the first two buttons in the command set.
BuildableHeroesMP = CreateAHero RohanEowyn RohanEomer GondorBoromir RohanTheoden GondorFaramir GondorAragornMP GondorGandalf
BuildableRingHeroesMP = ElvenGaladriel_RingHero
SpellStoreCurrentPowerLabel = APT:SpellStoreCurrentEvenstarPower
SpellStoreMaximumPowerLabel = APT:SpellStoreMaximumEvenstarPower
ResourceModifierObjectFilter = RESOURCE_MODIFIER_OBJECT_FILTER
ResourceModifierValues = 100 100 100 100 90 85 80 75 71 68 66
MultiSelectionPortrait = UPGondor_Army
LoadScreenMusic = Shell2MusicForLoadScreen
End
Wichtig für dich sind folgende Einträge:
SpellBook = GoodSpellBook
SpellBookMp = MenSpellBook
PurchaseScienceCommandSetMP = MenSpellStoreCommandSet
Die ersten zwei sind Objekte - in diesen Objekten ist definiert welche Fähigkeiten du verwenden kannst. (das zweite ist ein ChildObject vom ersten)
In diesem Objekt sollte auch die CommandSet sein, wo definiert ist, welche Buttons alle am Rand sein können.
Das andere ist das CommandSet, wo alle Spells drinnen sind, die man im Spellbook "kaufen" kann.
Ab hier kann man dann sich durchwühlen und immer sehen, was man als nächstes braucht, damit eine Fähigkeit drinnen ist.
Über das Object kommt man zu den SpecialPowers, die definieren was welcher Button macht - in denen ist dann die SCIENCE vermerkt (also das, was den Spell freischaltet - quasi was man im Spellbook kauft).
Wichtig ist hier nur:
Wenn die Karte MP tauglich sein soll, dann darfst du über map.inis keine neuen SCIENCES definieren. Du musst welche von anderen Spellbooks verwenden, die also schon definiert sind, aber nicht in deinem Spellbook verwendet werden. Diese kannst du dann verändern. Ebenso kannst du keine neuen CommandButtons erstellen oder das Bild von vorhandenen verändern. (außer über einige Umwege, die hier zu weit führen würden)
Wenn die Truppen vom Rand in die Karte reinlaufen wollen musst du das noch extra über Scripts machen.
Der Befehl ist dann sowas nach dem Motto:
"If Player used ability xyz
then
spawn troups at waypoint aaa
let troups walk at waypointspath bbb"
ganz grob sollte das so aussehen.^^
Was sehr viel einfacher geht wäre dem Gebäude direkt den Spell zu geben (dann hätte aber jedes Gebäude diesen Spell, unabhängig voneinander), quasi wie Fähigkeiten bei Helden. Da kann man einige Schritte überspringen.^^