Naja, so einfach is das leider mit der Heldenrekrutierung nicht. Es gibt dazu zwei Möglichkeiten.
1. Helden wie normale Einheiten baubar machen (Vorteil: einfach und schnell; Nachteil: kein Respawn)
Bei dieser Variante codest du einfach einen ganz normalen Button, wie du ihn auch zur Rekrutierung von Horden und Einheiten erstellst. Als zu bauende Einheit gibst du einfach deinen Helden an und schon sollte es gehen. Wie ich oben geschrieben habe, geht das ja recht schnell und einfach. Der große Nachteil is aber, dass dein Held dann wie eine normale Einheit behandelt wird, was den Respawn angeht. Er wird also immer auf Level 1 ohne jegliche Erfahrung neu zu rekrutieren sein. Wenn dich das stört, dann solltest du Variante zwei probieren...
2. Helden wie im Original (Vorteil: Respawn möglich und System wie im Originalspiel; Nachteil: aufwändig zu coden und für nachträglich eingefügte Helden muss einiges beachtet werden)
Diese Variante is etwas verzwickter, liefert dafür aber ein herrliches Ergebnis. Wichtig hierbei sind folgende Einträge aus CommandSet.ini und Playertemplate.ini:
CommandSet.ini
16 = Command_GenericReviveSlot1
17 = Command_GenericReviveSlot2
18 = Command_GenericReviveSlot3
19 = Command_GenericReviveSlot4
20 = Command_GenericReviveSlot5
21 = Command_GenericReviveSlot6
22 = Command_GenericReviveSlot7
Playertemplate.ini
BuildableHeroesMP = IsengardLurtz IsengardSharku IsengardWormTongue IsengardSaruman
Wie du siehst, kann Isengard vier Helden in der Festung bauen. Die Festung selbst hat sieben Buttons für Helden, davon werden die ersten vier genutzt und NUR diese. Soll heißen, wenn du sagen wir Sharku rekrutierst, dann verschwindet Button Nummer zwei aus der Liste. Die Position des Helden in der "BuildableHeroesMP"-Zeile gibt an, welcher dieser Buttons für ihn zuständig ist. Wichtig hierbei ist, dass du die Anzahl der Helden, die du für ein bestimmtes Volk rekrutieren können möchtest, im Hinterkopf behältst. Sagen wir also, du möchtest nun insgesamt vier Helden für ein Volk haben. Du brauchst daher vier solcher Buttons, die du in das CommandSet deines Gebäudes schreibst. Damit würdest du nun aber alle vier Helden in diesem Gebäude baubar machen, das willst du ja nicht. Lange Zeit hat dieses Problem als unlösbar gegolten, doch die neueren Codingerkenntnisse haben eine Lösung dafür gefunden. Du musst einfach für jeden Button, der nicht der deines Helden ist (also für das Beispiel von Sharku für die Buttons 1, 3 und 4) einen selbsterstellten Button einfügen, der NICHTS bewirkt. Dieser könnte zum Beispiel so aussehen:
CommandButton Command_FakeReviveSlot1
Command = REVIVE
Options = HIDE_WHILE_DISABLED CANCELABLE NEED_UPGRADE
TextLabel = CONTROLBAR:GenericReviveHero
ButtonBorderType = BUILD
DescriptLabel = CONTROLBAR:ToolTipGenericReviveHero
InPalantir = No
Radial = Yes
NeededUpgrade = Upgrade_FakeReviveSlot
End
Der Button sieht fast genau so aus, wie ein normaler "GenericHeroReviveSlot", mit dem Unterschied, dass er ein Upgrade benötigt, nämlich "Upgrade_FakeReviveSlot". Dieses Upgrade wird das Gebäude allerdings NIEMALS erhalten, ergo wird der Button nie aktiv. Und genau diesen Button schreibst du nun für alle Heldenbuttons, die das Gebäude nicht verwenden soll, in das Commandset. Das würde dann so aussehen:
1 = Command_FakeReviveSlot1
2 = Command_GenericReviveSlot2
3 = Command_FakeReviveSlot3
4 = Command_FakeReviveSlot4
Das Gebäude hat nun drei solcher Buttons, die nie aktiv werden und den einen, der Sharku rekrutiert. Damit kann es nun genau diesen Helden bauen und wiederbeleben. Das kannst du nun entsprechend deines Helden abwandeln, du musst allerdings das System der Fake-Buttons in jedem Gebäude anwenden, das fortan Helden rekrutieren können soll, ansonsten könntest du nämlich einen Helden in zwei oder mehr Gebäude bauen. Die Fake-Buttons verhindern das.
Ich hoffe, dass damit alles klappt und wünsch viel Spaß beim Ausprobieren!
mfg
sanalf 2