Modderecke > Coding

Natsu's Fragen-Thread

<< < (8/15) > >>

Sanalf 2:
Naja, das ist dann ganz einfach. Zunächst einmal schreibst du beim AttributeModfier bei "StartsActive" ein "No" hin. Dann fügst du, am besten gleich darunter, noch die Zeile ein "TriggeredBy =..." Hier müsstest du jetzt dem Spiel sagen, dass Thranduil auf Level 5 ein Upgrade erhalten soll, das auch diese Fähigkeit hier aktiviert. Schreib dazu hier einfach mal "Upgrade_ObjectLevel5" hin.
Dann fügst du über dem Modifier-Block noch folgendes ein:

--- Code: --- Behavior = UnpauseSpecialPowerUpgrade ModuleTag_XYZLeadership
SpecialPowerTemplate = SpecialAbilityFakeLeadership
TriggeredBy = Upgrade_ObjectLevel5
End

        Behavior = SpecialPowerModule ModuleTag_XYZLeadershipUpdate 
SpecialPowerTemplate      = SpecialAbilityFakeLeadership
UpdateModuleStartsAttack  = No
StartsPaused = Yes
End
--- Ende Code ---
Das dient dann dazu, dass die Fähigkeit auch im CommandSet erst auf Level 5 verfügbar ist. Du könntest das auch einfacher coden, aber das hier ist die Variante, die im Spiel am häufigsten eingesetzt wird.

Als nächstes öffnest du die experiencelevels.ini und suchst dort nach "Thranduil". Dort suchst du dann den Block für Level 5 und fügst dort noch folgende Zeile ein:

--- Code: ---Upgrades = Upgrade_ObjectLevel5
--- Ende Code ---
Thranduil erhält damit das Upgrade, das er braucht, um seine Fähigkeit zu aktivieren.

Jetzt codest du noch den Button dafür, gibst bei der "SpecialPower" die "SpecialAbilityFakeLeader ship" an und änderst alles so ab, wie du es brauchst. Dann fügst du den Button noch in sein CommandSet ein und die Sache sollte klappen.

mfg
sanalf 2

Natsu:
Und schon ist der Sonntag gerettet,
Vielen Dank Sanalf  :)

Ich komme gleich zur nächsten Frage:

Wie kann ich Tranduil die Fähigkeit geben ab level 8 dauerhaft eine Bat Düsterwaldbogenschützen zu beschwören ?

LG Natsu

Sanalf 2:

--- Zitat ---Und schon ist der Sonntag gerettet,
Vielen Dank Sanalf
--- Ende Zitat ---

Kein Problem...obwohl du das alles und auch deine nächste Frage mit dem Beschwören der Bogis auch in Eigeninitiative rausfinden hättest können...und glaub mir, das macht wesentlich mehr Spaß und gibt ein rieeeeeeeeesiges Erfolgserlebnis.

Für so eine Beschwör-Fähigkeit brauchst du sogenannte OCLs, also "ObjectCreationLists". Die Fähigkeist so aufgebaut:

--- Code: --- Behavior = UnpauseSpecialPowerUpgrade ModuleTag_OCL
SpecialPowerTemplate = ...
TriggeredBy              = ...
End

Behavior = OCLSpecialPower ModuleTag_OCLSpecialPower
SpecialPowerTemplate = ...
OCL                  = ...
CreateLocation          = CREATE_AT_LOCATION
StartsPaused            = Yes
End
--- Ende Code ---
Ich habe jetzt bewusst bei "SpecialPowerTemplate" mal nix reingeschrieben, weil ich dir da auch gleich erkläre, wie du die Fähigkeit gleich individualisierst. Wie du weißt, ist das "SpecialPowerTemplate" der Name der eigentlichen Fähigkeit. Ich verwende weitestgehend deutsche Bezeichnungen, also würde ich hier etwa "SpecialAbilityThranduilB eschwörung" oder sowas angeben. Bei "TriggeredBy" musst du wieder das Upgrade angeben, das Thranduil auf Level 8 erhält. Verfahr dazu einfach wieder so, wie ichs dir vorhin mit dem Level 5 erklärt hab.
Dann kommen die wichtigen Einträge der "OCLSpecialPower". Als erstes ist wieder der Name der Fähigkeit gefragt. Dann will das Spiel deine "OCL" also deine "ObjectCreationList" wissen, also die Liste aller Einheiten, die beschworen werden sollen. Dafür gibts eine eigene Ini, daher schreibst du hier einfach sowas hin wie "OCL_ThranduilBeschwörung". Die nächsten beiden Zeilen sind wohl selbsterklärend.

Jetzt öffnest du die objectcreationlist.ini und fügst einen neuen Eintrag ein, etwa so:

--- Code: ---ObjectCreationList OCL_ThranduilBeschwörung
  CreateObject
    ObjectNames = ...
    Count = 1
    FadeIn = Yes
    FadeTime = 1000
    IgnoreCommandPointLimit = Yes
  End
End
--- Ende Code ---
So sieht eine ObjectCreationList aus. Für jedes neue Objekt, also Einheiten, Horden, Helden, etc. musst du einen neuen "CreateObject"-Block einfügen. In deinem Fall reicht einer, da du ja nur eine Horde beschwörst. Und deren Namen gibst du bei "ObjectNames" an. "Count" ist die Anzahl an Horden, die beschworen werden soll. Du willst eine, also reicht auch der 1er. Die nächsten Zeilen geben nur an, dass die Horde "erscheint", also aus unsichtbarer Luft geschaffen wird und nicht einfach plötzlich da aufpoppt. Und die letzte Zeile ist optional. Sie sagt, dass dein Kommandopunktelimit ignoriert wird, die Horde also auch dann beschworen werden kann, wenn deine Kommandeurspunkte schon voll sind. Ich geh davon aus, dass du das so willst.

Jetzt öffnest du die specialpower.ini und fügst dort einen Block ein:

--- Code: ---SpecialPower SpecialAbilityThranduilBeschwörung
Enum             = SPECIAL_SPAWN_OATHBREAKERS
ReloadTime             = 300000
RadiusCursorRadius           = 60.0 
Flags = LIMIT_DISTANCE NO_FORBIDDEN_OBJECTS
MaxCastRange = 200
ForbiddenObjectFilter = NO_SUMMON_NEAR_OBJECT_FILTER
ForbiddenObjectRange = 60.0
End
--- Ende Code ---

Ich weiß ja nicht, ob du schon mal eine Fähigkeit selbst erstellt hast. Das "Enum" kannst du NIEMALS selbst erfinden. Du musst dir dazu immer einen geeigneten Eintrag aus einer ähnlichen Fähigkeit suchen, da Enums vom Spiel vorgegeben sind. Dieses Enum hier dürfte passen. Die "ReloadTime" gibt dir in Millisekunden die Aufladezeit für die Fähigkeit an. Hier dauert das ganze also fünf Minuten. "RadiusCursorRadius" gibt an, wie groß der Radius sein soll, den dann der Cursor ingame hat, mit dem du die Fähigkeit auf dem Boden platzierst. Die "Flags" musst du dir auch immer zusammensuchen, bzw. übernehmen. Die beiden hier geben an, dass die Fähigkeit nicht endlos weit über die Karte gewirkt werden kann und dass sie nicht in der Nähe gewisser Objekte angewendet werden kann. Die letzten drei Zeilen definieren das noch einmal genauer.

Als letztes kopierst du dir in der CommandButton.ini am besten noch den Button "Command_SpawnOathbreaker s". Dann änderst du wieder alles deinen Wünschen entsprechend ab und verfährst wie immer.

mfg
sanalf 2

Sanalf 2:
So, ich muss mich für den Doppelpost entschuldigen, aber falls das hier einmal auch von anderen gelesen werden sollte, dann sollte wenn möglich kein Fehler in meiner Anleitung drinstehen. Das tut er aber momentan so wie es aussieht und ich würde das gern richtigstellen.

Ich habe weiter oben in meinem Post geschrieben (und mittlerweile gelöscht), dass es nötig sei, beim Attributemodifier ein "ALLIES" hinten anzufügen. Das dürfte aber Blödsinn sein, denn dann würden auch alle Verbündeten vom Modifier profitieren. Ist das gewünscht, muss das "ALLIES" natürlich stehen bleiben, will man allerdings den Modifier ausschließlich für sich selbst nutzen, dann darf da wohl kein "ALLIES" stehen.

Ich danke an der Stelle noch einmal dem User, der mich darauf aufmerksam gemacht hat, bin mir aber nicht sicher, ob er namentlich genannt werden will und tu dies daher lieber nicht.

mfg
sanalf 2

Natsu:
Ich habe wieder mal eine neue Frage:

Ich wollte Thranduil einen Palantirswitch geben und habe mir gedacht, das ich dort das selbe System des "Helden in Kaserne"-Button verwenden könnte. Allerdings stürtzt mir das Spiel wenn ich auf Thranduil klicke immer ab.

Hier meine Codes

Commandset

--- Code: ---CommandSet ElvenThranduilCommandSet
InitialVisible = 6
1 = Command_ToggleStance
2 = Command_PalantirSwitchThranduil
3  = Command_SpecialAbilityMoveUnseen
4  = Command_SpecialAbilityElfCloakThranduil
    5  = Command_SpecialAbilityDeadEye
    6  = Command_SpecialAbilityThornofVengeance
    7  = Command_ThranduilWildWalkButton
8 = Command_AnführerderDüsterwaldbogenschützenThranduil
12 = Command_CaptureBuilding
13 = Command_AttackMove
14 = Command_Stop
16  = Command_SetStanceBattle
17  = Command_SetStanceAggressive
18  = Command_SetStanceHoldGround
End
--- Ende Code ---

Commandbutton

--- Code: ---CommandButton Command_PalantirSwitchThranduil
Command                 = PUSH_VISIBLE_COMMAND_RANGE
    TextLabel               = CONTROLBAR:PalantirSwitchThranduil
    ButtonImage             = HSFaramirLeadership
    ButtonBorderType        = ACTION
    DescriptLabel           = CONTROLBAR:ToolTipPalantirSwitchThranduil
    Radial                  = Yes
    CommandRangeStart       = 6 ;bei 6 starten
    CommandRangeCount       = 1 ;1 Nachfolgestellen
  InPalantir = Yes
End

--- Ende Code ---

LG Natsu

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln