Modding Union
Modderecke => Coding => Thema gestartet von: Bombadil, Tom am 18. Sep 2009, 19:47
-
Hallo auch, ich hab mal eben eine Frage wegen Theodens Gloreichem Ansturm: Wo finde ich in den Codes, das der Effekt davon nur auf Kavalarie wirkt, und wie kann ich das Ganze so umbasteln, dass er stattdessen auf alle Einheiten (also auch Infanterie), von Verbündeten und Feinden gleichermaßen, wirkt?
Danke schonmal für die Antwort ;)!
Grüße
Bombadil, Tom
-
Hi Bombadil.
guck ma in der Teoden.ini nach dieser Zeile:
Behavior = SpecialPowerModule ModuleTag_TheodenGloriou sChargeUpdate
SpecialPowerTemplate = SpecialAbilityTheodenGlo riousCharge
UpdateModuleStartsAttack = Yes
StartsPaused = Yes
AttributeModifier = TheodenGloriousCharge
AttributeModifierRange = 200
AttributeModifierAffects Self = Yes
AttributeModifierAffects = ANY +CAVALRY
AttributeModifierFX = FX_TheodenGloriousCharge FX
End
Einfach hinter das +Cavalry noch die Definitionen der einheiten deiner wahl einfügen zB.
(+INFANTRY etc.)
Ich meine zumindest das so geht. :)
-
Und als kleinen Zusatz sage ich noch, dass man mithilfe dieser Zeile
AttributeModifier = TheodenGloriousCharge
den Effekt (Also Angriff Minus, Verteidigung wird verdoppelt oder so) verändern kann. Dazu musst du in der attributemodifer.ini (Bzw. bei Edain-Daten in der entsprechenden Include-Datei suchen, die sind in einem Extra-Ordner (Wenn man die Big entpackt) und heißen genau gleich wie die normalen Inis) den Modifier TheodenGloriousCharge raussuchen und entsprechend verändern. Am Anfang der originalen Ini ist eine Liste mit den möglichen Bearbeitungsmöglichkeite n und eine Erklärung dazu.
Du kannst natürlich auch einen neuen Modifier machen und dann diesen Eintrag ändern.
-
Ah, Danke, damit ist mir schon geholfen! :)
Eine Frage habe ich noch, zu dem was Aklas gesagt hat: Steht da jetzt schon das, was dafür sorgt, das die Fähigkeit auch auf Feinde wirkt, oder was muss ich dafür genau hinschreiben?
Und dann noch eine Allgemeine: Was hat es mit diesen "Enum" Zeilen auf sich?
-
Ne das steht nicht in der Theoden.ini
Dafür musst du glaub ich in die Atributemodifier von Throden mcm hat sie bereits genannt.
Da musst du dann einfach mal gucken XD
MfG
-
Nein, die Attributmodifier.ini sagt darüber nichts aus. Der entsprechende Eintrag (Des Grundspiels) ist:
ModifierList TheodenGloriousCharge
Category = SPELL
Modifier = ARMOR 99% // Additive, high value has same effect as invulnerability
Modifier = DAMAGE_MULT 200%
Modifier = CRUSH_DECELERATE 0% // Multiplicitive. Zero would be no deceleration.
Duration = 20000 // if you mess with this value, you must also change the times in FX_TheodenGloriousChargeFX
End
Was sagt da was drüber aus, ob es auch Feinde betrifft? :D
Aus Eas Tutorial, dass auch etwas über dein Problem aussagt (Du findest es hier (http://www.modding-union.com/?path=ems&file=codingtuts#kopf) (Es ist das unterste Tutorial) habe ich folgenden Eintrag rausgesucht:
TargetEnemy = Yes
Der sollte eigentlich, wenn du ihn in den Behavior der entsprechenden Fähigkeit einträgst, bewirken, dass deine Führerschaft deine Feinde betrifft. Ich glaube aber, dass sie dann deine Verbündeten nicht mehr betrifft.
Hier würd ich dir empfehlen, entweder auf Ea zu warten oder dir einen Referenzfall aus zB. Edain zu schnappen und das entsprechende System anzugucken. Mir fällt nichts konkretes ein, aber irgendwas wird es da bestimmt geben.
Ich würde mal blind raten, dass es diesen Eintrag auch für Verbündete (TargetAllies) und für Eigene Einheiten (Keine Ahnung, wie das heßen würde, ich bin mir auch nicht so sicher, ob es das überhaupt gibt) gibt. Wenn du bei allen drei Einträgen (Ev. sind auch Verbündete und eigene Einheiten zusammengefasst, dann Sinds nur 2) Yes stehen hast, sollte es auf alle wirken.
Zu den Enums kann ich Alien aus ICQ zitieren, ich weis nicht, in wie fern das richtig ist, aber ich glaube, er hat genug Erfahrung im Coden, um das zu wissen:
Enum sind festgelegete Begriffe
Die kannst du nicht finden bzw ändern
Da musste einfach immer das von der ähnlichsten Fähigkeit verwenden
-
So, danke nochmal für die Hilfe, jetzt müsste es eigentlich klappen^^ Ich werd auber dennoch nochmal auf einen eventuellen Komentar von Ea warten ;)
Edit: Könnte man dass mit den Feinden nicht über einen ObjektFilter-Eintrag (also da sowas wie "ALLIES" oder "ENEMIES" hinschreiben) machen, oder geht das nicht?
-
Wie du die Fähigkeit auf andere Verbündete Units bekommst wurde bereits oben gut erklärt. Es stand jetzt noch die Frage im Raum diese Fähigkeit auch/oder Feinde betreffend zu gestalten?! Definiere das doch bitte genauer, dann kann ich dir helfen.
Edit: ich habe gerade nochmal deinen Post gelesen. Wenn ich also richtig verstehe, möchtest du die Fähigkeit gleichermaßen auf Feinde und auf Verbündete wirken lassen. Zuerst aber zu dem "ENUM". Ein ENUM wird in der Specialpower einer Fähigkeit angegeben und sagt an sich nicht viel über die Fähigkeit aus. Es beschreibt nochmals bestimmte Eigenschaften davon, z.b. kann etwas im verborgenen Nebel gespawnt werden, wird etwas auf klick aktiviert etc etc. Hierbei immer bestehende ENUMs von Fähigkeiten verwenden, neue lassen sich nicht errichten.
Zu der oberen Frage: Direkt kannst du das meines wissens nicht auf Feinde auslösbar machen. Ausprobiert habe ich es noch nicht, aber du könntest es mit diesem Code versuchen:
Behavior = SpecialPowerModule ModuleTag_TheodenGloriou sChargeUpdate
SpecialPowerTemplate = SpecialAbilityTheodenGlo riousCharge
UpdateModuleStartsAttack = Yes
StartsPaused = Yes
AttributeModifier = TheodenGloriousCharge
AttributeModifierRange = 200
AttributeModifierAffects Self = Yes
AttributeModifierAffects = ANY +CAVALRY ALLIES ENEMIES
AttributeModifierFX = FX_TheodenGloriousCharge FX
End
Ich bin mir nicht sicher, ob es funktioniert, weil kein allierten-Kindof zu Beginn angegeben ist, deshalb könntes es sein, dass es nur auf Verbündete wirken kann und der obrige Code nicht akzeptiert wird.
Zweite Variante wäre das hier einzufügen:
Behavior = SpecialPowerModule ModuleTag_TheodenGloriou sChargeUpdate
SpecialPowerTemplate = SpecialAbilityTheodenGlo riousCharge
UpdateModuleStartsAttack = Yes
StartsPaused = Yes
AttributeModifier = TheodenGloriousCharge
TargetEnemy = Yes
AttributeModifierRange = 200
AttributeModifierAffects Self = Yes
AttributeModifierAffects = ANY +CAVALRY ALLIES ENEMIES
AttributeModifierFX = FX_TheodenGloriousCharge FX
End
Hierbei wäre es möglich, dass der Parameter TargetEnemy nicht akzeptiert wird und es crasht. Wie gesagt sind das alles nur Mutmaßungen weil ich dies selbst noch nicht ausprobiert habe.
Die dritte Variante, die ich persönlch sofort genutzt hätte, weil sie garantiert funktioniert:
Du spawnst ein OCl per One-Klick an deiner Position, welches ein Object spawnt, welches die Eigenschaften eines Eggs besitzt (sprich sofort stirbt und nur eine Weapon + FX auslöst), in dessen Weapon ein Attributemodifier angegeben ist (Bei RadiusDamageAffects ALLIES und ENEMIES angeben), welcher die besagten Auswirkungen hat. dafür musst du ein WEAPONSET_HERO_MODE ENUM nehmen und die Fähigkeit nach einem normalen Truppenspawn umfunktionieren (auch hierbei gibt es verschiedene Lösungswege).
Wenn du Probleme mit diesem Fachchinesich hast, kann ich mich gerne auch breitschlagen lassen ein Tutorial dafür zu verfassen.
Eine Fähigkeit von mir von Galadriel besitzt derartige Systeme, der Ring Nenya. Zurückverfolge diese Einträge und schaue dir alles genau an.
Greez
-
Ok, also ich wollte es so machen, das der AttributModifier von Theodens Gloreichem Angriff sich auf Verbündete UND Feinde auswirkt, und zwar auf alle Typen von Einheiten (Kavalerier, Infanterie, Heros).
-
Hab oben editiert. Damit deine Fähigkeit die besagten KindOfs betrifft musst du nur das hier angeben:
AttributeModifierAffects = ANY +CAVALRY +INFANTRY +HERO +SHIP +MACHINE +DOZER +MONSTER
-
Danke für die schnelle Antwort^^ Ok, die ersten zwei Lösungswege versteh ich ohne Probleme, das dritte ist wiklich Fachchinesisch :D! Ich werde das ganze nacher mal in der von dir genannten Reihenfolge (also erst 1, dann 2, und dann versuche ich durch 3 durchzusteigen ;) )
PS: Gegenüber einem Tut dazu wäre ich auch nicht abgeneigt :P^^
-
Hallo nochmal, ich habe nochmal eine Frage: Ich habe den ganzen Code jetzt erstmal testweise so geschrieben und auf die Einheit übertragen, bei der ich ihn brauche; ich also einen neuen CommandButton angelegt und ihn im entsprechenden Commandset hinzugefügt; das Spiel geht, der Button ist im Spiel jetzt auch da, er ist sogar anklickbar, nur passiert nichts, wenn ich ihn anklicke... Ich wäre jedem dankbar, der mir einige mögliche Fehlerquellen sagen könnte; ist es eventuell so, das ich noch mehr Behaviors von Theoden zum Helden übernehmen muss? Oder muss ich in der ersten Zeile noch was ändern (siehe unten); ich habe die bisher nicht verändert...
PS: Das Ganze steht bei mir im Moment so, die neue FX und der neue Attributmodifier sind korrekt vorhanden:
Behavior = SpecialPowerModule ModuleTag_TheodenGloriou sChargeUpdate
SpecialPowerTemplate = SpecialAbilityTest
UpdateModuleStartsAttack = Yes
StartsPaused = No
AttributeModifier = TestBuff
AttributeModifierRange = 200
AttributeModifierAffects Self = No
AttributeModifierAffects = ANY +CAVALRY +HERO +INFANTRY
AttributeModifierFX = FX_TestFX
End
-
Ich seh hier bei "Glorious" ein Leerzeichen.. Ist das nur beim Schreiben ins Forum passiert oder evtl. auch in deinen Codes so?
-
Das lag nur an dieser komischen Textart, die ich gewählt habe... jetzt dürftes richtig stehen; in der ini ist da auch kein Leerzeichen.
-
Hast du denn in der ini das "End" das oben fehlt?^^
-
Oh Gott, ich dacht schon...! Nein das End ist auch da, das hab ich wohl beim rüberkopieren übersehen, weils so weit am Rand stand; sorry^^
-
Das liegt an der Specialpower. ;) Entweder hast du vergessen eine in der specialpower.ini zu definieren, oder im Commandbutton-Eintrag nicht bzw. falsch angegeben.
-
Also, ich finde da grade irgendwie keine Macken drin...
Hier ist mein Specialpower-Eintrag
SpecialPower SpecialAbilityTest
Enum = SPECIAL_GLORIOUS_CHARGE
ReloadTime = 20 ; in milliseconds
RadiusCursorRadius = 150.0
InitiateAtLocationSound = GondorSoldierCelebrating Large
;PalantirMovie = PalantirAlert_RohanReinf orcements
End
... und hier der für den CommandButton:
CommandButton Command_SpecialAbilityTe st
Command = SPECIAL_POWER
SpecialPower = SpecialAbilityTest
TextLabel = CONTROLBAR:Test
ButtonImage = SBEvil_WarChant
ButtonBorderType = ACTION
DescriptLabel = CONTROLBAR:TooltipTest
InPalantir = Yes
End
Meines Wissens müsste das alles stimmen...