Eine Map zu erstellen hat erstmal nicht sehr viel mit Coding zu tun, das ist Mapping ;)
Man kann natürlich zusätzlich eine recht umfassende Map.ini erstellen, was dann weitestgehend Coding ist.
Das Coden von SuM hat eigentlich gar keine Ähnlichkeit mit anderen Programmiersprachen, dadurch helfen da andere Sprachen nicht so viel, bis auf den Fakt, dass man die Herangehensweise ans Programmieren kennt.
Beides ist möglich.
1. Gandalf den Weißen statt dem normalen Gandalf bei Arnor rekrutieren:
Schau dir dafür mal an, wo festgelegt wird, dass Arnor welchen Gandalf rekrutieren kann.
Außerdem schau dir an, was bei Gondor passiert, wenn Gandalf bei Gondor zum Weißen wird.
In der Map.ini wird festgelegt, welche Helden für das Volk rekrutierbar sind unter:
BuildableHeroesMP = CreateAHeroDummy ArnorAraphant ArnorAranarth GondorArvedui GondorEarnur ImladrisGlorfindel_forArnor GasthausPalando GasthausAlatar LothlorienCirdan GondorGandalf_mod ArnorCaptainStealthless_mod RohanSam_mod RohanPorter ;ArnorBandobras
Gandalf wechselt zum Weißen durch das Upgrade Upgrade_GandalfWhite und wird dann zu GondorGandalfWhite_mod.
Dadurch kannst du in der BuildableHeroesMP-Liste Gandalf durch Gandalf den Weißen ersetzten.
2. Baumeister im Gasthaus einbauen:
Schau dir mal an wo Baumeister allgemein rekrutiert werden und wie. Tipp: CommandSets und CommandButtons.
Und wo festgelegt wird, welche Einheiten im Gasthaus gebaut werden.
Alle Gebäude (und die meisten sonstigen Objekte) haben in ihrer Ini stehen "CommandSet =". Dahinter steht dann ihr Buttonset mit den Buttons die man Ingame sieht. Der Button zum Ausbilden des Baumeisters ist "Command_ConstructMenPort er".
In der Map.ini wird für Arnor geändert, dass das Gasthaus das "CommandSetInnMenFaction_ forFornost" CommandSet hat:
CommandSet CommandSetInnMenFaction_forFornost
InitialVisible = 6
1 = Command_ConstructInnHeroGoodGondor_forFornost
2 = Command_SelectUpgradesBruchtalFactionInn_forFornost
3 = Command_SelectUpgradesGraueAnfurtenFactionInn_forFornost
4 = Command_SelectUpgradesGondorFactionInn_forFornost
6 = Command_StartSelfRepair
7 = Command_ConstructImlaAmrothReiterInn
8 = Command_RadialBack
9 = Command_ConstructLindonWächterHorde_forFornost
10 = Command_RadialBack
11 = Command_ConstructGondorFighterHorde
12 = Command_ConstructGondorArcherHorde
13 = Command_ConstructGondorTowerShieldGuardHordeInn
14 = Command_RadialBack
15 = Command_FakeRingHeroReviveSlot
16 = Command_FakeCreateAHeroReviveSlot
17 = Command_FakeHeroReviveSlot1
18 = Command_FakeHeroReviveSlot2
19 = Command_FakeHeroReviveSlot3
20 = Command_GenericReviveSlot4
21 = Command_GenericReviveSlot5
22 = Command_GenericReviveSlot6
23 = Command_GenericReviveSlot7
24 = Command_GenericReviveSlot8
25 = Command_GenericReviveSlot9
26 = Command_FakeHeroReviveSlot10
27 = Command_RadialBack
End
Hier fügst du dann den Baumeister ein. Die Nummern müssen dabei alle eindeutig sein und du musst beachten, dass die Untermenüs von der größe Feststehen. Also wäre es für den Anfang am einfachsten, du ersetzt einfach einen vorhanden Button durch den fürs Baumeister rekrutieren.
Übrigens dieser Beitrag gehört wohl eher in den Mapping/Codingbereich im Modding-Corner.
Du musst noch im Nachhinein die KI der Einheiten einfügen, die wird eingefügt, wenn du auf "Add Skirmish Players" klickst, genau wie im Originalspiel - wenn die Edainmod aktiviert ist werden auch die Edain-KIs eingefügt.
Um Gandalfs Preis auf der Map zu erhöhen, musst du in der Map.ini das Gandalf-Objekt einfügen und dort die Einträge, die die Preise festlegen hinschreiben mit deinen neuen Preisen.
Achte dabei darauf, dass er sowohl einen normalen Baupreis als auch den Wiederbelebungspreis hat.
Wenn du per Map.ini Behaviors eines Objektes verändern möchtest, dann musst du das mit ReplaceModule ...(alter Modulename)
... (richtiges Behavior mit einem neuen Modulename)
End
umklammern schau dir das am besten mal an der Arnor-Map.ini an.
Object GondorGandalfWhite_mod
BuildCost = GANDALF_THE_WHITE_BUILDCOST
ReplaceModule ModuleTag_RespawnUpdate
Behavior = RespawnUpdate ModuleTag_RespawnUpdateNew
DeathAnim = DYING ;STUNNED ;Model condition to play when killed-to-respawnto-respawn
DeathAnimationTime = 5367 ;1133 ;How long DeathAnim will take.
RespawnAnim = LEVELED ;Animation to play when respawning.
RespawnAnimationTime = 2000 ;Time it takes for respawn to play.
AutoRespawnAtObjectFilter = NONE +CASTLE_KEEP ;Respawn at this location -- and at it's exit production point if possible.
ButtonImage = HIGandalfgood
;RespawnEntries determine the ruleset for how a character can be revived. Some units may automatically respawn, others
;may require a specific revive action performed on him. You can specify different values for each level... or use Level:Any
RespawnRules = AutoSpawn:No Cost:GANDALF_THE_WHITE_BUILDCOST Time:90000 Health:100% ;DEFAULT VALUES
End
End
End
Klappt leider nicht habe auch noch ein Nebenproblem irgendwie bekommen die Zwerge die Festung im Fels :o
Habe dies allerdings nirgends aktiviert
Und Gandalf ist trotzdem für 4500 rekrutierbar
Object GondorStable
CommandSet = GondorStablesCommandSet_forFornost
ReplaceModule ModueTag_StableLevel2CommandSet
Behavior = CommandSetUpgrade ModueTag_StableLevel2CommandSet_Festungsmaps
TriggeredBy = Upgrade_GondorStableLevel2
ConflictsWith = Upgrade_GondorStableLevel3
CommandSet = GondorStablesCommandSetLevel2_forFornost
End
End
ReplaceModule ModueTag_StableLevel3CommandSet
Behavior = CommandSetUpgrade ModueTag_StableLevel3CommandSet_Festungsmaps
TriggeredBy = Upgrade_GondorStableLevel3
CommandSet = GondorStablesCommandSetLevel3_forFornost
End
End
End
Object MenFortressCitadel
CommandSet = MenFortressCommandSet_forFornost
ReplaceModule ModueTag_LevelCommandSet_WithoutDenethor
Behavior = CommandSetUpgrade ModueTag_LevelCommandSet_WithoutMalbeth
TriggeredBy = Upgrade_TestBuilding_2
CommandSet = MenFortressCommandSet_forFornost_WithoutMalbeth
End
End
ReplaceModule MakeTheFreeTreb2
Behavior = ObjectCreationUpgrade MakeTheFreeTreb2_New
TriggeredBy = Upgrade_HasWallTrebuchet
Delay = 3000.0
RemoveUpgrade = Upgrade_WallTrebuchetButtonEnable
ThingToSpawn = ArnorMalbeth
Offset = X:54 Y:0 Z:51.14
FadeInTime = 500
End
End
End
Object MenFortressExpansionPadCorner
ReplaceModule DrawFloorBase
Draw = W3DFloorDraw DrawFloorBase_New
ModelName = abfoundationb
End
End
CommandSet = MenFortressExpansionPadCornerCommandSet_forFornost
ReplaceModule ModuleTag_foundationAI
Behavior = FoundationAIUpdate ModuleTag_foundationAI_New
BuildVariation = 2
End
End
End
ChildObject MenFortressExpansionPadSide MenFortressExpansionPadCorner
ReplaceModule DrawFloorBase
Draw = W3DFloorDraw DrawFloorBase_New
ModelName = abfoundationb
End
End
CommandSet = MenFortressExpansionPadSideCommandSet_forFornost
ReplaceModule ModuleTag_foundationAI
Behavior = FoundationAIUpdate ModuleTag_foundationAI_New
BuildVariation = 1
End
End
End
Object MenPorter
CommandSet = MenPorterCommandSet_forFornostwithFortress
ReplaceModule ModuleTag_CommandSetAI
Behavior = CommandSetUpgrade ModuleTag_CommandSet_New
TriggeredBy = Upgrade_EasyAISinglePlayer Upgrade_MediumAISinglePlayer Upgrade_HardAISinglePlayer Upgrade_BrutalAISinglePlayer Upgrade_EasyAIMultiPlayer Upgrade_MediumAIMultiPlayer Upgrade_HardAIMultiPlayer Upgrade_BrutalAIMultiPlayer
CommandSet = MenPorterCommandSet_forFornostwithFortress
End
End
End
PlayerTemplate FactionMen
SpellBook = GoodSpellBook
SpellBookMp = ArnorSpellBook
PurchaseScienceCommandSet = GoodSpellStoreCommandSet
PurchaseScienceCommandSetMP = ArnorSpellStoreCommandSet
IntrinsicSciences = SCIENCE_GOOD
IntrinsicSciencesMP = SCIENCE_ARNOR
DisplayName = INI:FactionArnor
MultiSelectionPortrait = UPArnor_Army
InitialUpgrades = Upgrade_MenFaction Upgrade_AllFactionUpgrade Upgrade_ArnorFaction
BuildableHeroesMP = CreateAHeroDummy ArnorAraphant ArnorAranarth GondorArvedui GondorEarnur ImladrisGlorfindel_forArnor GasthausPalando GasthausAlatar LothlorienCirdan GondorGandalfWhite_mod ArnorCaptainStealthless_mod ;ArnorBandobras
BuildableRingHeroesMP = RingHeroDummy
End
Object SignalFire
ReplaceModule ModuleTag_Faction5
Behavior = CommandSetUpgrade ModuleTag_Faction5_New
TriggeredBy = Upgrade_MenFaction
;RequiresAllTriggers = Yes
CommandSet = SignalFireMenCommandSetStartNew_forFornost
End
End
End
Object Inn
ReplaceModule ModuleTag_CommandSetMen
Behavior = CommandSetUpgrade ModuleTag_CommandSetMen_New
TriggeredBy = Upgrade_MenFaction
CommandSet = CommandSetInnMenFaction_forFornost
End
End
End
Object GondorWorkshop
CommandSet = GondorWorkshopCommandSet_forFornost
ReplaceModule ModueTag_WorkshopLevel2CommandSet
Behavior = CommandSetUpgrade ModueTag_WorkshopLevel2CommandSet_New
TriggeredBy = Upgrade_GondorWorkshopLevel2
ConflictsWith = Upgrade_GondorWorkshopLevel3
CommandSet = GondorWorkshopCommandSetLevel2_forFornost
End
End
ReplaceModule ModueTag_WorkshopLevel3CommandSet
Behavior = CommandSetUpgrade ModueTag_WorkshopLevel3CommandSet_New
TriggeredBy = Upgrade_GondorWorkshopLevel3
CommandSet = GondorWorkshopCommandSetLevel3_forFornost
End
End
End
Object GondorGandalfWhite_mod
BuildCost = 8000
ReplaceModule ModuleTag_RespawnUpdate
Behavior = RespawnUpdate ModuleTag_RespawnUpdateNew
DeathAnim = DYING ;STUNNED ;Model condition to play when killed-to-respawnto-respawn
DeathAnimationTime = 5367 ;1133 ;How long DeathAnim will take.
RespawnAnim = LEVELED ;Animation to play when respawning.
RespawnAnimationTime = 2000 ;Time it takes for respawn to play.
AutoRespawnAtObjectFilter = NONE +CASTLE_KEEP ;Respawn at this location -- and at it's exit production point if possible.
ButtonImage = HIGandalfgood
;RespawnEntries determine the ruleset for how a character can be revived. Some units may automatically respawn, others
;may require a specific revive action performed on him. You can specify different values for each level... or use Level:Any
RespawnRules = AutoSpawn:No Cost:4000 Time:90000 Health:100% ;DEFAULT VALUES
End
End
End