so, bin im freien netz auf was gestoßen. es gibt eine lösung für das problem, sie ist zwar nicht besonders elegant, aber sie funktioniert.
ich werd das jetzt mal an einem beispiel zeigen:
zuerst mal eine anmerkung zu den revive buttons, denn wie es scheint werden bei spielstart jedem button ein held zu gewiesen, der bis zum ende des spiels gleich bleibt. d.h. jeder held kann quasi durch einen index identifiziert werden, jenachdem an welcher position er in der playertemplate.ini aufgeführt ist.
ich wollte glorfindel einfach zum test in der kaserne ausbilden. dazu braucht man
code aus der playertemplate.ini
BuildableHeroesMP = CreateAHero ElvenHaldir ElvenGlorfindel ElvenArwen ElvenLegolas ElvenThranduil ElvenElrond
und noch
upgrade.ini
commandbutton.ini
commandset.ini
wir legen uns zuerst ein upgrade an.
Upgrade Upgrade_WirdNichtGebraucht_MussAberDaSein (Optional auch einfach Upgrade_FakeHeroMarker)
Type = OBJECT
End
als nächstes suchen wir uns aus der commandbutton.ini einen der GenericReviveSlot und kopieren diesen. dabei fügen wir eine NEED_UPGRADE option und ein NeededUpgrade = Upgrade_WasAuchImmerIhrA lsNamenGewähltHabt hinzu und ändern den namen des buttons. in meinem fall sieht das dann so aus
CommandButton Command_FakeHeroReviveSlot1
Command = REVIVE
Options = NEED_UPGRADE CANCELABLE HIDE_WHILE_DISABLED ;Hides button while disabled.
NeededUpgrade = Upgrade_FakeHeroMarker
TextLabel = CONTROLBAR:GenericReviveHero
;ButtonImage = ***Filled in automatically! No need to specify a button image.
ButtonBorderType = BUILD
DescriptLabel = CONTROLBAR:ToolTipGenericReviveHero
InPalantir = No
Radial = Yes
End
ihr braucht soviele 'fake' wie richtige buttons und auch ein fake für den ringhero und den cah (falls noch vorhanden ^^)
wie gesagt wollte ich glorfindel (als 3. held genannt, allerdings ist der erste der cah, also ist glorfindel der 2. held der generic revives) in der kaserne ausbildbar machen. unsere fakebuttons würden dasselbe tun, wie die echten buttons, allerdings sind die unsichtbar, da das benötigte upgrade ja nicht verteilt ist.
jetzt kann ich in das commandset der kaserne alle fakebuttons eincoden, ohne dass man einen unterschied sieht, wenn ich aber den passenden revive slot für glorfindel als echten button eincode, erscheint nur er und ist so wie in der festung ausbildbar. man muss allerdings die buttons für ALLE helden, selbst die, die nach ihm in der aufzählung stehen eincoden, sonst kann man ihn nicht wiederbeleben
CommandSet ERElvenBarracksCommandSet
1 = Command_ConstructElvenLorienWarriorHorde
2 = Command_ConstructElvenLorienArcherHorde
3 = Command_ConstructElvenMithlondSentryHorde
4 = Command_ConstructElvenMirkwoodArcherHorde
5 = Command_ConstructNoldorWarriorHorde
7 = Command_PurchaseUpgradeElvenBarracksLevel2
6 = Command_Sell
10 = Command_FakeRingHeroReviveSlot
11 = Command_FakeCreateAHeroReviveSlot
12 = Command_FakeHeroReviveSlot1
13 = Command_GenericReviveSlot2
14 = Command_FakeHeroReviveSlot3
15 = Command_FakeHeroReviveSlot4
16 = Command_FakeHeroReviveSlot5
17 = Command_FakeHeroReviveSlot6
18 = Command_FakeHeroReviveSlot7
End
die idee hinter dem ganzen ist einfach die, dass auf diese weiße in jedem beliebigen gebäude die knopfe eine genaue zuweisung erhalten, man aber nur den/die gewünschten anzeigen lässt.