Modding Union

Modderecke => Coding => Thema gestartet von: Natsu am 16. Jun 2012, 21:43

Titel: Natsu's Fragen-Thread
Beitrag von: Natsu am 16. Jun 2012, 21:43
Guten Abend

Ich hatte einmal eine Mod gespielt bei der man bei jedem Volk in der Festung ein Upgrade kaufen konnte welches den Untergrund verändert, natürlich passend zum jeweiligen Volk(Elben:Wiese, Mordor:Verbrannter Boden Gondor:Pflaster usw.), mir gefällt diese Idee sehr gut weil dann die Siedlung deutlich "stimmiger" aussieht.

Frage 1:
Wie kann ich diese "Untergrundveränderung" coden ?

Frage 2:
Wie kann ich diese "Untergrundveränderung" dazu bringen das meine Truppen darauf mehr Rüstung haben ?
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 23. Jun 2012, 16:01
Sorry für den Doppelpost  8-|

Allerdings bahnen sich neue Fragen an und wenn ich die oben reineditiere wird es zu unübersichtlich:

Frage 1:
Da Haldir der Heerführer der Galahadrim war liegt es nahe das er für ihre Ausbildung zuständig war. Wie kann ich also coden, das die Galahadrim nur in der Elbenkaserne ausgebildet werden können wenn er auf dem Spielfeld ist.

Frage 2:
Wie kann ich coden das ein Mallornbaum nur Nahrung generiert während ein anderes Gebäude, die Kommandeurspunkte generiert ?
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Radagast der Musikalische am 23. Jun 2012, 16:15
1) Das macht man mithilfe eines Upgrades, das man erhält, wenn Haldir auf dem Schlachtfeld ist.

Dazu kommt dieses Behavior (möglicherweise mit anderem Upgrade) in die ini von Haldir:
    Behavior = GrantUpgradeCreate ModuleTag_ActLikeAnOldUpgrade
        UpgradeToGrant          = Upgrade_TrebuchetTurret
        GiveOnBuildComplete     = Yes
    End

Bei dem Baubutton der Galadhrim muss nun nur noch dieses Upgrade als NeededUpgrade definiert werden und fertig. ;)

2) Lösche dazu einfach diesen Eintrag aus der Mallonr-Baum ini und füge ihn bei dem Gebäude deiner Wahl ein.
    CommandPointBonus    = GENERIC_ECONOMY_COMMAND_POINT_BONUS
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 23. Jun 2012, 16:25
Wow vielen Dank, 
Das mit dem Mallornbaum da hätt ich auch drauf kommen können  8-|,

weisst du eventuell auch eine Antwort zur ersten Frage ?
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Heiler am 23. Jun 2012, 16:36
1) Das macht man mithilfe eines Upgrades, das man erhält, wenn Haldir auf dem Schlachtfeld ist.
Hat er doch ;)
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Sanalf 2 am 23. Jun 2012, 16:44
@Heiler: Ich glaub eher, dass Natsu die Fragen aus seinem ersten Post gemeint hab. Bin mir aber nicht ganz sicher.

@Natsu: Radagasts Vorschlag wird funktionieren, zweifellos. Aber dann kannst du die Galadhrim immer bauen, sofern Haldir einmal rekrutiert worden ist. Stirbt er dann, können die Galadhrim noch immer rekrutiert werden. Wenn du deren Baumöglichkeit also wirklich an das Vorhandensein von Haldir auf dem Feld binden willst, dann wird das ein bisschen komplexer.

mfg
sanalf 2
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 23. Jun 2012, 17:21
@Heiler und Sanalf 2
Ich meine tatsächlich meinen ersten Thread, also die volksspezifische Untergrundveränderung als Festungsupgrade
@Sanalf 2
Bin mit dem System von Radagast soweit zufrieden da ich noch Modding anfänger bin und alles andere zurzeit noch zu schwierig für mich ist
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Radagast der Musikalische am 23. Jun 2012, 18:16
Zu der Untergrundveränderung:

1) Ich weiß nicht, ob das jetzt die beste Lösung dafür ist, aber ich würde es so machen wie mit den anderen Festungsupgrades. Ich mache mal ein Beispiel für die Elbenfestung.

Ich hätte das jetzt über einen neuen Eintrag in den Art-Parametern gemacht, der könnte dann ungefähr so aussehen.
Draw = W3DScriptedModelDraw ModuleTag_DrawUntergrund
OkToChangeModelColor = Yes
StaticModelLODMode = Yes ;// Will append M or L to the skin name depending on GameLOD

DefaultModelConditionState
Model           = None
End

                ModelConditionState = FORTRESS_IMPROVEMENT_4
Model           = GBCastfloor
End
End
Erklärung:
Wichtig sind hier nur die DefaultModelCondition- und die ModelConditionState. Die DefaultModelConditionSta te gibt an welches Model direkt angezeigt werden soll. In diesem Fall ist es keines, da es ja erst nach dem Upgrade erscheinen soll. Hinter dem "=" bei ModelConditionState steht der Verweis zu dem Upgrade. Dazu im unteren Teil mehr. Du siehst, dass hier nun ein Model angegeben ist (GBCastfloor ist nur ein Beispielmodel).

Damit das Model nach dem Upgrade erscheint ist dieser Eintrag in den Engineering Parametern nötig:
Behavior = ModelConditionUpgrade ModuleTag_UntergrundUp
TriggeredBy = Upgrade_ElvenFortressUntergrund
AddConditionFlags         = FORTRESS_IMPROVEMENT_4
Permanent = Yes
End
   
Erklärung:
Ich denke man erkennt hier direkt, dass nach dem Erhalt des Upgrades Upgrade_ElvenFortressUnt ergrund nun FORTRESS_IMPROVEMENT_4 als neue Condition hinzugefügt wird und unser Model nun angezeigt wird.

2) Das mit dem Rüstungsbonus ist durch einen einfachen Eintrag zu lösen. Mit dem Radius , in dem der Bonus gilt muss man ein bisschen rumprobieren.
Behavior = PassiveAreaEffectBehavior ModuleTag_UntergrundModifier
UpgradeRequired = Upgrade_ElvenFortressUntergrund
EffectRadius = 200
PingDelay = 2000
ModifierName = EFUntergrundLeadership
AllowFilter = GENERIC_BUFF_RECIPIENT_OBJECT_FILTER
End
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 23. Jun 2012, 18:18
Vielen Dank für die Antwort  :)

In welcher Ini müsste ich denn diese Einträge machen ?
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Radagast der Musikalische am 23. Jun 2012, 18:21
In der elvenfortress.ini bei dem Object ElvenCitadel. Und dann für die Untergrundveränderung bei den anderen Festungen in deren inis! ;)
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 23. Jun 2012, 19:56
Vielen dank Radagast,

ich komme gleich zu meiner nächsten frage:
Ich wollte das Tutorial umsetzten das einen Helden in einem bestimmten Gebäude ausbildbar macht, allerdings kommt immer ein Gamecrash.

commandbutton.ini

CommandButton Command_FakeReviveSlot1
Command = REVIVE
Options = NEED_UPGRADE HIDE_WHILE_DISABLED CANCELABLE ;Hides button while disabled.
TextLabel = CONTROLBAR:GenericReviveHero
NeededUpgrade = Upgrade_FakeReviveSlotMarker
;ButtonImage = ***Filled in automatically! No need to specify a button image.
ButtonBorderType = BUILD
DescriptLabel = CONTROLBAR:ToolTipGenericReviveHero
InPalantir = No
Radial = Yes
End


CommandButton Command_FakeReviveSlot2
Command = REVIVE
Options = NEED_UPGRADE HIDE_WHILE_DISABLED CANCELABLE ;Hides button while disabled.
TextLabel = CONTROLBAR:GenericReviveHero
NeededUpgrade = Upgrade_FakeReviveSlotMarker
;ButtonImage = ***Filled in automatically! No need to specify a button image.
ButtonBorderType = BUILD
DescriptLabel = CONTROLBAR:ToolTipGenericReviveHero
InPalantir = No
Radial = Yes
End


CommandButton Command_FakeReviveSlot3
Command = REVIVE
Options = NEED_UPGRADE HIDE_WHILE_DISABLED CANCELABLE ;Hides button while disabled.
TextLabel = CONTROLBAR:GenericReviveHero
NeededUpgrade = Upgrade_FakeReviveSlotMarker
;ButtonImage = ***Filled in automatically! No need to specify a button image.
ButtonBorderType = BUILD
DescriptLabel = CONTROLBAR:ToolTipGenericReviveHero
InPalantir = No
Radial = Yes
End


CommandButton Command_FakeReviveSlot4
Command = REVIVE
Options = NEED_UPGRADE HIDE_WHILE_DISABLED CANCELABLE ;Hides button while disabled.
TextLabel = CONTROLBAR:GenericReviveHero
NeededUpgrade = Upgrade_FakeReviveSlotMarker
;ButtonImage = ***Filled in automatically! No need to specify a button image.
ButtonBorderType = BUILD
DescriptLabel = CONTROLBAR:ToolTipGenericReviveHero
InPalantir = No
Radial = Yes
End


CommandButton Command_FakeReviveSlot5
Command = REVIVE
Options = NEED_UPGRADE HIDE_WHILE_DISABLED CANCELABLE ;Hides button while disabled.
TextLabel = CONTROLBAR:GenericReviveHero
NeededUpgrade = Upgrade_FakeReviveSlotMarker
;ButtonImage = ***Filled in automatically! No need to specify a button image.
ButtonBorderType = BUILD
DescriptLabel = CONTROLBAR:ToolTipGenericReviveHero
InPalantir = No
Radial = Yes
End


CommandButton Command_FakeReviveSlot6
Command = REVIVE
Options = NEED_UPGRADE HIDE_WHILE_DISABLED CANCELABLE ;Hides button while disabled.
TextLabel = CONTROLBAR:GenericReviveHero
NeededUpgrade = Upgrade_FakeReviveSlotMarker
;ButtonImage = ***Filled in automatically! No need to specify a button image.
ButtonBorderType = BUILD
DescriptLabel = CONTROLBAR:ToolTipGenericReviveHero
InPalantir = No
Radial = Yes
End


CommandButton Command_FakeReviveSlot7
Command = REVIVE
Options = NEED_UPGRADE HIDE_WHILE_DISABLED CANCELABLE ;Hides button while disabled.
TextLabel = CONTROLBAR:GenericReviveHero
NeededUpgrade = Upgrade_FakeReviveSlotMarker
;ButtonImage = ***Filled in automatically! No need to specify a button image.
ButtonBorderType = BUILD
DescriptLabel = CONTROLBAR:ToolTipGenericReviveHero
InPalantir = No
Radial = Yes
End


CommandButton Command_FakeReviveSlot8
Command = REVIVE
Options = NEED_UPGRADE HIDE_WHILE_DISABLED CANCELABLE ;Hides button while disabled.
TextLabel = CONTROLBAR:GenericReviveHero
NeededUpgrade = Upgrade_FakeReviveSlotMarker
;ButtonImage = ***Filled in automatically! No need to specify a button image.
ButtonBorderType = BUILD
DescriptLabel = CONTROLBAR:ToolTipGenericReviveHero
InPalantir = No
Radial = Yes
End


CommandButton Command_FakeReviveSlot9
Command = REVIVE
Options = NEED_UPGRADE HIDE_WHILE_DISABLED CANCELABLE ;Hides button while disabled.
TextLabel = CONTROLBAR:GenericReviveHero
NeededUpgrade = Upgrade_FakeReviveSlotMarker
;ButtonImage = ***Filled in automatically! No need to specify a button image.
ButtonBorderType = BUILD
DescriptLabel = CONTROLBAR:ToolTipGenericReviveHero
InPalantir = No
Radial = Yes
End


CommandButton Command_FakeReviveSlot10
Command = REVIVE
Options = NEED_UPGRADE HIDE_WHILE_DISABLED CANCELABLE ;Hides button while disabled.
TextLabel = CONTROLBAR:GenericReviveHero
NeededUpgrade = Upgrade_FakeReviveSlotMarker
;ButtonImage = ***Filled in automatically! No need to specify a button image.
ButtonBorderType = BUILD
DescriptLabel = CONTROLBAR:ToolTipGenericReviveHero
InPalantir = No
Radial = Yes
End


CommandButton Command_FakeReviveSlot11
Command = REVIVE
Options = NEED_UPGRADE HIDE_WHILE_DISABLED CANCELABLE ;Hides button while disabled.
TextLabel = CONTROLBAR:GenericReviveHero
NeededUpgrade = Upgrade_FakeReviveSlotMarker
;ButtonImage = ***Filled in automatically! No need to specify a button image.
ButtonBorderType = BUILD
DescriptLabel = CONTROLBAR:ToolTipGenericReviveHero
InPalantir = No
Radial = Yes
End


CommandButton Command_FakeReviveSlot12
Command = REVIVE
Options = NEED_UPGRADE HIDE_WHILE_DISABLED CANCELABLE ;Hides button while disabled.
TextLabel = CONTROLBAR:GenericReviveHero
NeededUpgrade = Upgrade_FakeReviveSlotMarker
;ButtonImage = ***Filled in automatically! No need to specify a button image.
ButtonBorderType = BUILD
DescriptLabel = CONTROLBAR:ToolTipGenericReviveHero
InPalantir = No
Radial = Yes
End


CommandButton Command_FakeReviveSlot13
Command = REVIVE
Options = NEED_UPGRADE HIDE_WHILE_DISABLED CANCELABLE ;Hides button while disabled.
TextLabel = CONTROLBAR:GenericReviveHero
NeededUpgrade = Upgrade_FakeReviveSlotMarker
;ButtonImage = ***Filled in automatically! No need to specify a button image.
ButtonBorderType = BUILD
DescriptLabel = CONTROLBAR:ToolTipGenericReviveHero
InPalantir = No
Radial = Yes
End


CommandButton Command_FakeRingHeroReviveSlot
Command = REVIVE
Options = HIDE_WHILE_DISABLED CANCELABLE NEED_UPGRADE ;Hides button while disabled.
NeededUpgrade = Upgrade_RingHero Upgrade_FortressRingHero
  Upgrade_FakeReviveSlotMarker
TextLabel = CONTROLBAR:GenericReviveHero
;ButtonImage = ***Filled in automatically! No need to specify a button image.
ButtonBorderType = BUILD
DescriptLabel = CONTROLBAR:ToolTipGenericReviveHero
InPalantir = No
Radial = Yes
End

CommandButton Command_FakeCreateAHeroReviveSlot
Command = REVIVE
Options = HIDE_WHILE_DISABLED CANCELABLE NEED_UPGRADE ;Hides button while disabled.
NeededUpgrade = Upgrade_AllowBuildCreateAHero
  Upgrade_FakeReviveSlotMarker
TextLabel = CONTROLBAR:GenericReviveHero
;ButtonImage = ***Filled in automatically! No need to specify a button image.
ButtonBorderType = BUILD
DescriptLabel = CONTROLBAR:ToolTipGenericReviveHero
InPalantir = No
Radial = Yes
End

upgrade.ini

Upgrade Upgrade_FakeReviveSlotMarker
  Type               = OBJECT
End
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Sanalf 2 am 23. Jun 2012, 20:13
Das hättest du nicht unbedingt in zwei verschiedenen Threads posten müssen, zumal dir im anderen schon geantwortet worden ist^^

Es wär' wirklich hilfreich, wenn du uns den Inhalt der Fehlermeldung nach dem GameCrash posten könntest. Das ist oft äußerst aufschlussreich.

mfg
sanalf 2
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 24. Jun 2012, 11:16
Eine weitere Frage:

Wenn ich eine Mod erstelle muss ich schlussendlich ja mehrere Big Dateien verändern.
Wie kann ich also alle Big Dateien über eine Verknüpfung(mit dem -mod comand) laden ?
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Souls of Black am 24. Jun 2012, 11:18
Mit -mod Command lädst du ja einen neuen Ordner, einfach in diesen alle Bigs reinschieben.
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 24. Jun 2012, 12:24
Meine Verknüpfung verweist allerdings immer auf eine big:

"D:\Games\Aufstieg des Hexenkönigs\lotrbfme2ep1.exe" -mod "D:\Games\Aufstieg des Hexenkönigs\Mod\_a999.big"
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Souls of Black am 24. Jun 2012, 12:34
"D:\Games\Aufstieg des Hexenkönigs\lotrbfme2ep1.exe" -mod "D:\Games\Aufstieg des Hexenkönigs\Mod"So sollte es eigentlich auch gehen
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 24. Jun 2012, 15:19
Wie und vorallem wo kann ich den ingame Text, beispielsweise den Namen einer Heldenfähigkeit anpassen ?
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Ealendril der Dunkle am 25. Jun 2012, 10:26
In der lotr.str Datei
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 27. Jun 2012, 18:49

Noch mal zur allerersten Frage in diesem Thread:

Zitat
Ich hatte einmal eine Mod gespielt bei der man bei jedem Volk in der Festung ein Upgrade kaufen konnte welches den Untergrund verändert, natürlich passend zum jeweiligen Volk(Elben:Wiese, Mordor:Verbrannter Boden Gondor:Pflaster usw.), mir gefällt diese Idee sehr gut weil dann die Siedlung deutlich "stimmiger" aussieht.

Frage 1:
Wie kann ich diese "Untergrundveränderung" coden ?

Frage 2:
Wie kann ich diese "Untergrundveränderung" dazu bringen das meine Truppen darauf mehr Rüstung haben ?

Für diese "Untergrundveränderung" müsste ich ja wie Radagast sagte ein Model machen, wie kann ich ein solches Model erstellen ?
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Radagast der Musikalische am 27. Jun 2012, 18:57
Ein neues Model ist nicht zwingend notwendig. Man kann auch eine der bereits vorhandenen Untergrundmodelle nehmen und eine RandomTexture angeben., also eine Textur, die statt der eigentlichen Textur benutzt wird. Sagen wir du nimmst zum Beispiel GBCampFloor, dann kannst du den Eintrag
   RandomTexture = mbmordorboden.tga 0 gbcampfloor.tga
hinzufügen und ingame hat es dann die Textur, die vor der 0 steht und nicht mehr die eigentliche Textur hinter der 0. Texturen und Model sind willkürlich gewählt, du musst also nochmal nachschauen welche Texturen und Models sich anbieten.

Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 10. Jul 2012, 19:05
Guten Abend,

Ich habe wieder mal ein Problem

Ich will Haldir in der Elbenkaserne ausbildbar machen.

Allerdings gibt es immer einen gamecrash, bei dem mein upgrade (Upgrade_FakeReviveSlotMa rker) nicht gefunden wird.

Anbei die Files:

upgrade.ini:
http://www.megafileupload.com/en/file/357461/upgrade-ini.html

commandbutton.ini:
http://www.megafileupload.com/en/file/357462/commandbutton-ini.html
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Radagast der Musikalische am 11. Jul 2012, 12:28
Kannst du mal die entsprechenden Einträge einzeln hier posten? Ich kann die Files nicht runterladen, da mein Virenschutz die Dateien immer blockiert.
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Ealendril der Dunkle am 11. Jul 2012, 13:10
Lade die Einträge doch einfach hier hoch, dann können wir dir weiterhelfen:
http://nopaste.info/
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 11. Jul 2012, 18:21
Hier die Files auf nopaste.info

Upgrade.ini
http://nopaste.info/d42331b243.html (http://nopaste.info/d42331b243.html)

Commandset.ini
http://nopaste.info/5763094098.html (http://nopaste.info/5763094098.html)

Commandbutton.ini
http://nopaste.info/0ec4b2b7ae.html (http://nopaste.info/0ec4b2b7ae.html)

LG
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Radagast der Musikalische am 11. Jul 2012, 19:04
Beim ersten Durchschauen ist mir nur aufgefallen, dass die Buttons im CommandSet andere sind als die in der CommanButton.ini.
Dort hast du die Fake-Buttons "FakeReviveSlot" genannt und im CommandSet "FakeHeroReviveSlot". Den Fehler mit dem fehlenden Upgrade kann ich bisher noch nachvollziehen.
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 11. Jul 2012, 20:21
Erstmal Vielen Dank Radagast,

durch das beheben des Fehlers den du gefunden hast( vielen Dank nochmal), und der Erkentniss das der Absatz beim NeededUpgrade zu einem Fehler geführt hat, bekomme ich nun keine Fehlermeldung mehr.

Ich habe nun auch den SelectHeroBuildMenu button eigecodet, allerdings sehe ich in meiner Elbenkaserne kein Heldenbutton

Anbei die neuen Files

Commandbutton.ini
http://nopaste.info/1d52e2faf4.html (http://nopaste.info/1d52e2faf4.html)

Commandset.ini
http://nopaste.info/6d9ddc19a2.html (http://nopaste.info/6d9ddc19a2.html)

An der upgrade.ini hat sich nichts geändert

LG
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Ealendril der Dunkle am 12. Jul 2012, 00:43
CommandButton Command_SelectHeroBuildMenu
    Command                = PUSH_VISIBLE_COMMAND_RANGE
    TextLabel            = CONTROLBAR:SelectRevivablesElvenFortress
    ButtonImage            = UCCommon_GoodHeroes
End
Das ist so falsch, richtig müsste es so aussehen:

CommandButton Command_SelectHeroBuildMenu
    Command                 = PUSH_VISIBLE_COMMAND_RANGE
    TextLabel               = CONTROLBAR:SelectRevivablesMenFortress
    ButtonImage             = UCCommon_GoodHeroes
    ButtonBorderType        = SYSTEM
    DescriptLabel           = CONTROLBAR:ToolTipCommandSelectRevivablesMenFortress
    Radial                  = Yes
    CommandRangeStart       = 7 ;bei 7 starten
    CommandRangeCount       = 11 ;11 Nachfolgestellen
End
Dein Button hatte überhaupt keinen Inhalt.

CommandSet ERElvenBarracksCommandSet
InitialVisible = 7
 
  1 = Command_SelectHeroBuildMenu
  2 = Command_ConstructElvenLorienWarriorHorde
  3 = Command_ConstructElvenLorienArcherHorde
  4 = Command_ConstructElvenMithlondSentryHorde
  5 = Command_ConstructElvenMirkwoodArcherHorde
  6 = Command_PurchaseUpgradeElvenBarracksLevel2
  7 = Command_Sell
 
     10    = Command_FakeRingHeroReviveSlot
    11    = Command_FakeCreateAHeroReviveSlot
    12    = Command_GenericReviveSlot1
    13    = Command_FakeHeroReviveSlot2
    14    = Command_FakeHeroReviveSlot3
    15    = Command_FakeHeroReviveSlot4
    16    = Command_FakeHeroReviveSlot5
    17    = Command_FakeHeroReviveSlot6
    18    = Command_FakeHeroReviveSlot7
    19    = Command_FakeHeroReviveSlot8
    29    = Command_RadialBack
 
End

Das ist auch falsch, richtig müsste es so aussehen:

CommandSet ERElvenBarracksCommandSet
InitialVisible = 7
 
  1 = Command_SelectHeroBuildMenu
  2 = Command_ConstructElvenLorienWarriorHorde
  3 = Command_ConstructElvenLorienArcherHorde
  4 = Command_ConstructElvenMithlondSentryHorde
  5 = Command_ConstructElvenMirkwoodArcherHorde
  6 = Command_PurchaseUpgradeElvenBarracksLevel2
  7 = Command_Sell
 
     8    = Command_FakeRingHeroReviveSlot
     9    = Command_FakeCreateAHeroReviveSlot
    10    = Command_GenericReviveSlot1
    11    = Command_FakeHeroReviveSlot2
    12    = Command_FakeHeroReviveSlot3
    13    = Command_FakeHeroReviveSlot4
    14    = Command_FakeHeroReviveSlot5
    15    = Command_FakeHeroReviveSlot6
    16    = Command_FakeHeroReviveSlot7
    17    = Command_FakeHeroReviveSlot8
    18    = Command_RadialBack
 
End


Dazu gibt es übrigens Tutorials auf der Startseite unter Modding (http://modding-union.com/?path=codingtuts#kopf)



Ea
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 13. Jul 2012, 13:34
Vielen Dank Radagast und Ealendril nun funktioniert alles.  :)

EDIT:

Leider klappt es doch noch nicht, wenn ich die Kaserne auf level 2 upgrade werden mir keine Buttons mehr angezeigt.

Hier die aktuellen codes:

commandset.ini
http://nopaste.info/4a3dc15d2e.html (http://nopaste.info/4a3dc15d2e.html)
commandbutton.ini
http://nopaste.info/3a9a2e21df.html (http://nopaste.info/3a9a2e21df.html)

lg
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Sanalf 2 am 13. Jul 2012, 13:53
Nur mal so eine kleine Frage am Rande: Warum postest du deine Codes nicht einfach so wie Ealendril in seinem Post oben? Also über die CODE-Funktion hier im Forum. Wär wesentlich übersichtlicher.

Aber gut. Tritt dein Problem wirklich mit Level 2 auf? Oder erst auf Level 3? Deine Level 2-Codes schauen nämlich eigentlich relativ korrekt aus. Auf Level 3 beginnst du aber dein CommandSet mit "2 =..."
Ich bin mir nicht sicher, ob das so gehen wird. Du solltest schon bei "1 =..." anfangen. Dafür codest du dann ganz einfach einen zweiten "SelectHeroBuildMenu"-Button, der nur für diese Gebäude auf Level 3 gemacht ist und bei dem du "CommandRangeStart" und "CommandRangeCount" entsprechend anpasst.

mfg
sanalf 2
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Ealendril der Dunkle am 13. Jul 2012, 13:54
Ein bisschen Nachdenken, dann klappt das schon. ;)

Vorweg ist zu sagen, das aus deinen Codes nicht hervorgeht, warum auf Stufe 2 nichts mehr angezeigt wird. Hierbei kommt die Vermutung auf, dass du in der ini der Kaserne bei Stufe 2 ein falsches Commandset angegeben hast.
Dann hierzu:

CommandSet ERElvenBarracksCommandSetLevel3
InitialVisible = 7
 
  2 = Command_SelectHeroBuildMenu
  3 = Command_ConstructElvenLorienWarriorHorde
  4 = Command_ConstructElvenLorienArcherHorde
  5 = Command_ConstructElvenMithlondSentryHorde
  6 = Command_ConstructElvenMirkwoodArcherHorde
  7 = Command_Sell
 
    8    = Command_FakeRingHeroReviveSlot
    9    = Command_FakeCreateAHeroReviveSlot
    10    = Command_GenericReviveSlot1
    11    = Command_FakeHeroReviveSlot2
    12    = Command_FakeHeroReviveSlot3
    13    = Command_FakeHeroReviveSlot4
    14    = Command_FakeHeroReviveSlot5
    15    = Command_FakeHeroReviveSlot6
    16    = Command_FakeHeroReviveSlot7
    17    = Command_FakeHeroReviveSlot8
    18    = Command_RadialBack
 
End

Was kommt vor der 2? So soll es aussehen:

CommandSet ERElvenBarracksCommandSetLevel3
InitialVisible = 6
 
  1 = Command_SelectHeroBuildMenu_Level3
  2 = Command_ConstructElvenLorienWarriorHorde
  3 = Command_ConstructElvenLorienArcherHorde
  4 = Command_ConstructElvenMithlondSentryHorde
  5 = Command_ConstructElvenMirkwoodArcherHorde
  6 = Command_Sell
 
    7    = Command_FakeRingHeroReviveSlot
    8    = Command_FakeCreateAHeroReviveSlot
    9    = Command_GenericReviveSlot1
    10    = Command_FakeHeroReviveSlot2
    11    = Command_FakeHeroReviveSlot3
    12    = Command_FakeHeroReviveSlot4
    13    = Command_FakeHeroReviveSlot5
    14    = Command_FakeHeroReviveSlot6
    15    = Command_FakeHeroReviveSlot7
    16    = Command_FakeHeroReviveSlot8
    17    = Command_RadialBack
 
End

Neuer Button:

CommandButton Command_SelectHeroBuildMenu_Level3
    Command                 = PUSH_VISIBLE_COMMAND_RANGE
    TextLabel               = CONTROLBAR:SelectRevivablesMenFortress
    ButtonImage             = UCCommon_GoodHeroes
    ButtonBorderType        = SYSTEM
    DescriptLabel           = CONTROLBAR:ToolTipCommandSelectRevivablesMenFortress
    Radial                  = Yes
    CommandRangeStart       = 6 ;bei 6 starten
    CommandRangeCount       = 11 ;11 Nachfolgestellen
End


Desweiteren würde ich dir raten "Sell" immer auf die 6 zu setzen, ansonsten ist der Abreißbutton nicht da. Dadurch sollten die Commandsets so aussehen:




CommandSet ERElvenBarracksCommandSet
InitialVisible = 7
 
  1 = Command_SelectHeroBuildMenu
  2 = Command_ConstructElvenLorienWarriorHorde
  3 = Command_ConstructElvenLorienArcherHorde
  4 = Command_ConstructElvenMithlondSentryHorde
  5 = Command_ConstructElvenMirkwoodArcherHorde
  6 = Command_Sell
  7 = Command_PurchaseUpgradeElvenBarracksLevel2
 
     8    = Command_FakeRingHeroReviveSlot
     9    = Command_FakeCreateAHeroReviveSlot
    10    = Command_GenericReviveSlot1
    11    = Command_FakeHeroReviveSlot2
    12    = Command_FakeHeroReviveSlot3
    13    = Command_FakeHeroReviveSlot4
    14    = Command_FakeHeroReviveSlot5
    15    = Command_FakeHeroReviveSlot6
    16    = Command_FakeHeroReviveSlot7
    17    = Command_FakeHeroReviveSlot8
    18    = Command_RadialBack
 
End

CommandSet ERElvenBarracksCommandSetLevel2
InitialVisible = 7
 
  1 = Command_SelectHeroBuildMenu
  2 = Command_ConstructElvenLorienWarriorHorde
  3 = Command_ConstructElvenLorienArcherHorde
  4 = Command_ConstructElvenMithlondSentryHorde
  5 = Command_ConstructElvenMirkwoodArcherHorde
  6 = Command_Sell
  7 = Command_PurchaseUpgradeElvenBarracksLevel3
 
     8    = Command_FakeRingHeroReviveSlot
     9    = Command_FakeCreateAHeroReviveSlot
    10    = Command_GenericReviveSlot1
    11    = Command_FakeHeroReviveSlot2
    12    = Command_FakeHeroReviveSlot3
    13    = Command_FakeHeroReviveSlot4
    14    = Command_FakeHeroReviveSlot5
    15    = Command_FakeHeroReviveSlot6
    16    = Command_FakeHeroReviveSlot7
    17    = Command_FakeHeroReviveSlot8
    18    = Command_RadialBack
 
End

CommandSet ERElvenBarracksCommandSetLevel3
InitialVisible = 6
 
  1 = Command_SelectHeroBuildMenu_Level3
  2 = Command_ConstructElvenLorienWarriorHorde
  3 = Command_ConstructElvenLorienArcherHorde
  4 = Command_ConstructElvenMithlondSentryHorde
  5 = Command_ConstructElvenMirkwoodArcherHorde
  6 = Command_Sell
 
    7    = Command_FakeRingHeroReviveSlot
    8    = Command_FakeCreateAHeroReviveSlot
    9    = Command_GenericReviveSlot1
    10    = Command_FakeHeroReviveSlot2
    11    = Command_FakeHeroReviveSlot3
    12    = Command_FakeHeroReviveSlot4
    13    = Command_FakeHeroReviveSlot5
    14    = Command_FakeHeroReviveSlot6
    15    = Command_FakeHeroReviveSlot7
    16    = Command_FakeHeroReviveSlot8
    17    = Command_RadialBack
 
End
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 14. Jul 2012, 19:20
Vielen Dank Radagast, Ealendril und Sanalf,
das mit der Heldenfunktion habe ich nun endlich hinbekommen

Allerdings verstehe ich noch nicht ganz was ich machen muss, das gewisse Einheiten nur dann ausgebildet werden können wen der entsprechende Held auf dem Feld ist.

Beispiel: Düsterwaldbogenschützen, Thranduil

Lg Natsu
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Radagast der Musikalische am 14. Jul 2012, 19:59
Dazu muss der Spieler durch die Ankunft des entsprechenden Heldes ein Upgrade erhalten. Dieses Upgrade gibt man dann als NeededUpgrade beim BuildButton der Düsterwaldbogenschützen an.

In die ini des Helden, in diesem Fall Thranduil muss dieses Behavior eingefügt werden.
thranduil.ini
    Behavior = GrantUpgradeCreate ModuleTag_EnableUpgradeSchwan
        UpgradeToGrant      = Upgrade_Thranduil
        GiveOnBuildComplete = Yes
    End

Suche in der Commandbutton.ini folgenden Button und füge in der Zeile NeededUpgrade Upgrade_Thranduil hinzu, wie ich es hier getan habe.
commandbutton.ini
CommandButton Command_ConstructElvenMirkwoodArcherHorde
    Command                = UNIT_BUILD
    Object                = ElvenMirkwoodArcherHorde
    TextLabel            = CONTROLBAR:ConstructElvenMirkwoodArcherHorde
    ButtonImage            = BEElvenBarracks_MirkwoodArcher
    ButtonBorderType        = BUILD
    DescriptLabel            = CONTROLBAR:ToolTipBuildElvenMirkwoodArcherHorde
    Radial                = Yes
    InPalantir               = Yes
    IsClickable            = Yes
    Options                = NEED_UPGRADE CANCELABLE
    NeededUpgrade            = Upgrade_Thranduil Upgrade_ElvenBarracksLevel2
    ShowProductionCount        = Yes   
End

Da das Upgrade noch nicht existiert musst du dieses noch in der Upgrade.ini erstellen.
upgrade.ini
Upgrade Upgrade_Thranduil
  Type = PLAYER
End
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 14. Jul 2012, 20:47
Vielen Dank Radagast,

allerdings kann ich die Düsterwaldbogenschützen immer rekrutieren wenn ich einmal Tranduil rekrutiert habe, selbst wenn er tot ist.

Ich möchte allerdings das ich die Düsterwaldbogenschützen nur dann rekrutieren kann wenn Tranduil auf dem Feld ist

Lg Natsu
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Sanalf 2 am 15. Jul 2012, 16:01
Ich will mich ja jetzt nicht aufspielen, aber genau das habe ich dir hier vor einigen Posts schon gesagt. Mit Radagasts Methode kannst du die immer rekrutieren, da das Upgrade nur einmal vergeben wird und dann dauerhaft da ist...du hast gemeint, dass das schon passe...

Aber gut. Damit das hier nicht in Spam ausartet, sag ich dir mal meine Methode, die ich für diesen Fall immer anwende:
Du gibst am besten Thranduil einen AttributeModifier-Block, so wie den hier:
Behavior = AttributeModifierAuraUpdate ModuleTag_XYZ
StartsActive = ...
BonusName = ...
RefreshDelay = 2000
Range = ...
ObjectFilter = ...
End
Bei "StartsActive" schreibst du "Yes" hin, damit der Modifier von Anfang an wirkt, sobald du Thranduil auf dem Feld hast. Bei "BonusName" gibst du nun einen frei gewählten Namen für deinen späteren Modifier an, zum Beispiel "ThranduilBogis" oder was auch immer. Das "RefreshDelay" kannst du so belassen. Die "Range" setzt du so hoch wie möglich an. Ich meine, dass hier ein Wert von 999999 reichen sollte. Damit geht der Modifier über die ganze Karte, egal, wo Thranduil grade steht. Und bei "ObjectFilter" schreibst du hin "NONE +" und nach dem Pluszeichen den Namen des Gebäudes, also etwa "NONE +ElvenBarracks".

Jetzt erstellst du in der attributemodifier.ini einen neuen Modifier, der etwa so aussehen könnte:
ModifierList ThranduilBogis
Category = SPELL
Duration = 3000
ModelCondition = USER_6
End

Der Name des Modifiers ist der, den du bei "BonusName" angegeben hast. Ob die Werte für "Category" und "Duration" wirklich entscheidend sind, weiß ich momentan nicht. Bei mir hats mit solchen Einstellungen eigentlich immer recht gut funktioniert. Wichtig ist dann die Zeile "ModelCondition = USER_6". Die vergiebt nun eine ModelCondition an das vom Modifier betroffene Gebäude.

Jetzt suchst du den CommandButton der Bogis. Dort fügst du dann noch die Zeile ein:
EnableOnModelCondition = USER_6Die sagt dem Spiel, dass der Button solange aktiv sein soll, wie das Gebäude eben den Status "USER_6" hat und der verschwindet, wenn Thranduil stirbt.

Ich hoffe, dass es damit geht.

mfg
sanalf 2
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 15. Jul 2012, 16:14
Vielen Dank Sanalf,

Ich wusste das Radagast's System dauerhaft ist und auch wenn er tot ist noch wirkt, allerdings bin ich halt noch Modding-Anfänger und wusste deshalb nicht wie ich das andere System coden könnte.

Nun gleich zur nächsten Frage,

Wie kann ich das ganze nun an eine Fähigkeit anbinden die Tranduil erst ab level 5 bekommt ?
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Sanalf 2 am 15. Jul 2012, 16:29
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:
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_XYZLeadership
SpecialPowerTemplate = SpecialAbilityFakeLeadership
TriggeredBy = Upgrade_ObjectLevel5
End

        Behavior = SpecialPowerModule ModuleTag_XYZLeadershipUpdate 
SpecialPowerTemplate      = SpecialAbilityFakeLeadership
UpdateModuleStartsAttack  = No
StartsPaused = Yes
End
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:
Upgrades = Upgrade_ObjectLevel5Thranduil 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
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 15. Jul 2012, 16:33
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
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Sanalf 2 am 15. Jul 2012, 17:00
Zitat
Und schon ist der Sonntag gerettet,
Vielen Dank Sanalf

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:
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_OCL
SpecialPowerTemplate = ...
TriggeredBy              = ...
End

Behavior = OCLSpecialPower ModuleTag_OCLSpecialPower
SpecialPowerTemplate = ...
OCL                  = ...
CreateLocation          = CREATE_AT_LOCATION
StartsPaused            = Yes
End
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:
ObjectCreationList OCL_ThranduilBeschwörung
  CreateObject
    ObjectNames = ...
    Count = 1
    FadeIn = Yes
    FadeTime = 1000
    IgnoreCommandPointLimit = Yes
  End
End
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:
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

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
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Sanalf 2 am 16. Jul 2012, 14:43
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
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 16. Jul 2012, 21:59
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
CommandSet ElvenThranduilCommandSet
InitialVisible = 6
1 = Command_ToggleStance
2 = Command_PalantirSwitchThranduil
= Command_SpecialAbilityMoveUnseen
= 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

Commandbutton
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

LG Natsu
Titel: Re:Natsu's Fragen-Thread
Beitrag von: EvilDet am 17. Jul 2012, 11:22
Das sollte dir helfen.
http://www.the3rdage.net/item-601?addview
 (http://www.the3rdage.net/item-601?addview)
MfG
EvilDet
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 18. Jul 2012, 18:16
Vielen Dank EvilDet, damit hab ich's hinbekommen.

Jetzt hat mein Thranduil 7 Fähigkeiten   

LG Natsu

Edit

Und schon die nächste Frage  xD

Wie muss ich die Führerschaft von Thranduil verändern, damit nicht alle Infanterie-Einheiten die Führerschaft bekommen, sondern nur die Düsterwald-Bogenschützen.
Titel: Re:Natsu's Fragen-Thread
Beitrag von: EvilDet am 18. Jul 2012, 18:41
ObjectFilter = ANY +ElvenMirkwoodArcher +ElvenMirkwoodArcherHorde

Damit müsste es gehen.
MfG
EvilDet
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 18. Jul 2012, 18:59
Vielen Dank,

Frage1. Wieso muss man zweimal Mirkwoodarcher schreiben, also einmal mit Horde und einmal ohne ?


Edit


Frage2. Wie kann ich meinem Held 2 passive spells geben? Ich kann ja die SpecialAbilityFakeLeader ship nur einmal verwenden

LG Natsu
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Ealendril der Dunkle am 18. Jul 2012, 19:17
zu 1: Die Horde muss nicht integriert werden, es reicht das Object
zu 2: Schreib eben eine neue Specialpower mit den gleichen Definitionen, aber anderer Bezeichnung.
Zur Info: Passive Fähigkeiten benötigen keinen Button.
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 18. Jul 2012, 20:36
Vielen Dank Ea,

Allerdings verstehe ich das mit der neuen Special Power noch nicht so, wäre toll wenn du mir das anhand meiner Codes erklären könntest, hier meine aktuellen Codes:

Thranduil.ini
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_ThranduilLeadership
SpecialPowerTemplate     = SpecialAbilityFakeLeadership
TriggeredBy              = Upgrade_ObjectLevel5
End

Behavior = SpecialPowerModule ModuleTag_ThranduilLeadershipUpdate   
SpecialPowerTemplate     = SpecialAbilityFakeLeadership
UpdateModuleStartsAttack = No
StartsPaused             = Yes
End

commandbutton.ini
CommandButton Command_FührerschaftThranduil
  Command                 = SPECIAL_POWER
  SpecialPower            = ... (weiss nicht was ich hier angeben soll)
  Options = NONPRESSABLE
  TextLabel               = CONTROLBAR:FührerschaftThranduil
  ButtonImage             = HSFaramirLeadership 
  ButtonBorderType        = ACTION
  DescriptLabel           = CONTROLBAR:ToolTipFührerschaftThranduil
  InPalantir = Yes
End

LG Natsu
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Souls of Black am 18. Jul 2012, 20:49
Du gehst in die specialpower.ini und suchst dort den Eintrag SpecialAbilityFakeLeadership Diesen kopierst du bis zum End und fügst ihn unten drunter wieder ein. Jetzt hast du 2 mit dem selben Namen. Schreib beim Neuen beim Namen einfach noch eine 2 dahinter. Also: SpecialAbilityFakeLeadership2 Danach gehst du zu deiner Einheit und schreibst bei der 2ten Führerschaft unter SpecialPowerTemplate den neuen Namen hin. Beim Button ist es egal, da du im Grunde ja nicht mal einen brauchst.
Gruß Souls
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 22. Jul 2012, 11:30
Ist es möglich 4 25-Spells im Spellbook zu haben ?
Titel: Re:Natsu's Fragen-Thread
Beitrag von: EvilDet am 22. Jul 2012, 12:12
Vielleicht hilft dir das hier dabei:
http://www.the3rdage.net/item-700?addview (http://www.the3rdage.net/item-700?addview)
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 22. Jul 2012, 16:16
Vielen Dank EvilDet,

ich habe mal wieder eine weitere frage:

wo kann ich den Radius der Mallornbäume ändern ?

LG Natsu
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Sanalf 2 am 22. Jul 2012, 16:21
In der Ini des Mallorn-Baums...oh Wunder!  xD

Behavior = TerrainResourceBehavior ModuleTag_MoneyProduction
Radius = ELVEN_MALLORN_TREE_MONEY_RANGE
MaxIncome = ELVEN_MALLORN_TREE_MONEY_AMOUNT
IncomeInterval = ELVEN_MALLORN_TREE_MONEY_TIME
End

Die erste Zeile hier ist die, die du suchst.

mfg
sanalf 2
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 22. Jul 2012, 22:32
Vielen dank Sanalf,

Ich habe wieder eine neue frage:

Ich will Gimli und Aragorn im gasthaus wiederbelebbar machen, dies geschieht ja über den GenericReviveSlot.

Allerdings gelten diese ReviveSlots ja nur für das entsprechende Volk, in meinem Fall Elben. Wie kann ich nun dem GenericReviveSlot signalisieren das er die Helden von 2 anderen Völkern holen soll ?

MfG Natsu
Titel: Re:Natsu's Fragen-Thread
Beitrag von: EvilDet am 23. Jul 2012, 09:15
Einfach Aragorns Objectname in der Playertemplate.ini bei der Heldenliste von "Faction Elves" dazuschreiben.

MfG
EvilDet
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 23. Jul 2012, 09:30
Vielen Dank EvilDet

Schon wieder ein Problem gelöst, was wäre ich ohne diesen Thread  :)

Nun habe ich aber schon wieder die nächste Frage, ich wollte ja für die Elben eine Untergrundveränderung um die Festung herumm machen und wusste nicht wie ich das Model oder die Texture anfertigen sollte. Als Antwort schrieb Radagast der Musikalische:
Zitat
Ein neues Model ist nicht zwingend notwendig. Man kann auch eine der bereits vorhandenen Untergrundmodelle nehmen und eine RandomTexture angeben., also eine Textur, die statt der eigentlichen Textur benutzt wird. Sagen wir du nimmst zum Beispiel GBCampFloor, dann kannst du den Eintrag
Code:
   RandomTexture = mbmordorboden.tga 0 gbcampfloor.tga
hinzufügen und ingame hat es dann die Textur, die vor der 0 steht und nicht mehr die eigentliche Textur hinter der 0. Texturen und Model sind willkürlich gewählt, du musst also nochmal nachschauen welche Texturen und Models sich anbieten.

Ich habe lange gesucht, aber weder ein passendes Model noch eine passende Textur gefunden.

LG Natsu
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Sanalf 2 am 23. Jul 2012, 13:50
Naja, das ganze ist ein wenig verzwickt. Du musst dazu wissen, dass diese Bodentexturen eigentlich ein eigenes Modell sind. Das ganze ist eine Art "Plane", die hauchdünn modelliert ist und auf ihrer Oberseite die gewünschte Textur aufweist.
Das Problem, dass du mit Radagasts Methode haben könntest, wär, dass die Textur und die Bodenplane nicht aufeinander passen. Dann würde die Textur extrem verzerrt aussehen. Du kannst ja zum Beispiel auch nicht die Textur von Sauron einfach auf das Modell von Aragorn legen und erwarten, dass das alles passt.

Die wohl beste Lösung für dein Vorhaben ist die, die die Edain-Mod für die Isengard-Festung verwendet hat. Du könntest dir da ja mal die Codes anschauen oder ein Teammitglied fragen, ob sie dir da weiterhelfen können.

mfg
sanalf 2
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 23. Jul 2012, 15:09
Vielen Dank Sanalf,

Ich habe den folgenden Code gefunden:

 
Draw = W3DFloorDraw ModuleTag_01
      ModelName = mbcampfloor
      ForceToBack = Yes
  End

Das funktioniert soweit auch, es wird jetzt der "Isengart-Boden" unter meinem Mallornbaum angezeigt, wenn ich nun Radagsts Weg versuche und bei ModelName

ModelName = elvenfloor 0 mbcamploor
hin schreibe wird mir keine Textur angezeigt.

Wie bringe ich nun meine Textur ins Spiel ?

LG Natsu
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Sanalf 2 am 23. Jul 2012, 15:55
Ja, das is schon einmal der richtige Ansatz.

Du hast jetzt aber versucht, dem Spiel die Namen der Modelle anstatt der Texturen zu verkaufen^^ Das kann so natürlich nicht funktionieren.

Am einfachsten ist es, wenn du folgendes machst: Öffne die Textures2.big in FinalBig. Wichtig ist, dass du die Textures2.big aus dem Ordner des Hauptspiels nimmst, also SuM II, nicht aus dem von AdH. Dann extrahierst du dir da raus die "mbcampfloor.dds" und öffnest sie anschließend in deinem Bildbearbeitungsprogramm (Gimp, etc.). Dann bearbeitest du die Textur so, wie du sie haben willst, speicherst sie unter eigenem Namen und als .tga-Datei ab und nimmst sie in deine eigene .big auf. Jetzt nutzt du Radagasts Methode: Du schreibst also unter die Zeile "ModelName = mbcampfloor" noch eine weitere rein, die so aussehen sollte: "Texture = mbcampfloor.tga XYZ. Bei "XZY" gibst du den Namen deiner neuen Textur an. Und probiers mal ohne diese Null dazwischen, ich hab die in den Codes an dieser Stelle nirgends gesehen.

mfg
sanalf 2
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 23. Jul 2012, 16:26
Vielen Dank für die Antwort Sanalf.

Ich habe deine Anweisung befolgt und nun sieht mein Codeblock so aus:

  Draw = W3DFloorDraw ModuleTag_01
      ModelName = mbcampfloor
  Texture = mbcampfloor.tga mbelvencampfloor.tga
      ForceToBack = Yes
  End

Allerdings kommt immer der Fehler "Unknow field Texture in block Object"
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Sanalf 2 am 23. Jul 2012, 16:32
Oh, okay. Dann lieber doch mit Radagasts Formulierung^^
Änder die Zeile mal so ab, dass sie so aussieht:
RandomTexture = mbcampfloor.tga 0 mbelvencampfloor.tga
mfg
sanalf 2
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 23. Jul 2012, 16:44
Wieder der selbe Fehler, jetzt erkennt er RandomTexture nicht

LG Natsu
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Ealendril der Dunkle am 23. Jul 2012, 17:10
Der Draw Floor erkennt auch keine Texturänderungen an. ;)
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 23. Jul 2012, 17:13
Was kann ich stattdessen nehmen ?

LG Natsu
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Sanalf 2 am 23. Jul 2012, 17:57
Naja, du könntest jetzt natürlich ein neues Modell erstellen.
Es gibt allerdings auch noch diesen Weg hier, auch wenn der nicht ganz so "formschön" ist:

http://www.the3rdage.net/item-328?addview (http://www.the3rdage.net/item-328?addview)

Mit dieser Methode bekommst du dann ein "neues" Modell heraus, dass du jetzt nur noch in den Codes bei "ModelName" angeben musst.

Ich hoffe, dass das alles funktioniert.

mfg
sanalf 2
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 23. Jul 2012, 18:46
Vielen Dank Sanalf, allerdings klappt das ganze immer noch nicht.

Es wird kein Model unter meinem Malornbaum angezeigt obwohl ich alles was in dem Tutorial stand befolgt habe.

MfG Natsu
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Sanalf 2 am 23. Jul 2012, 19:24
Schreib doch bitte einmal genau, was du seit meinem letzten Tipp gemacht hast und wie du das gemacht hast. Dann kann man etwaige Fehler leichter nachvollziehen.

mfg
sanalf 2

PS: Wenn du wirklich ernstere Probleme damit haben solltest, dann kannst du mich auch gern über PM anschreiben. Is dann vermutlich besser, als den Thread hier endlos auszuschlachten...aber nur, wenn du willst!
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 4. Aug 2012, 18:46
Ich habe wieder mal eine Frage:

Thranduil hat von mir die neue Fähigkeit "Vater und Sohn" verpasst bekommen, womit er dauerhaft Legolas aufs Feld rufen kann. Wenn nun der beschworene Legolas auf dem Feld ist kann ich in der Festung Legolas immer noch rekrutieren.

Wie kann ich den Legolas aus der Festung rausnehmen solange er durch Thranduils Fähigkeit auf dem Feld ist ?

LG Natsu
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Souls of Black am 6. Aug 2012, 22:40
Eventuell könnte der beschworene Legolas ein Upgrade auslösen, welches es verbietet Legolas zu bauen. Das Problem wird nur sein, wenn der beschworene Legolas stirbt, dann hat der normal gekaufte Legolas ein anderes Level. Die beiden Legolase sind nicht identisch. Ich würde dir empfehlen das beim Einsatz der Fähigkeit Legolas seine Kosten auf 0 fallen und die Einheit automatisch gebaut wird, falls das möglich ist. Man müsste gucken ob das mit einem DoCommand funktioniert oder ob es da bei dieser Buttonform Probleme gibt.
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 6. Aug 2012, 22:51
Vielen Dank für deine Hilfe Souls,

Es wäre toll wenn du den Do-Comand für mich kurz erklären könntest, da ich noch Coding-Anfänger bin.

Hier die Codes:

Commandbutton.ini

thranduil.ini

specialpower.ini

objectcreationlist.ini
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Souls of Black am 6. Aug 2012, 23:02
Deine Fähigkeit aktiviert einen Attributmodifier, welcher die Heldenkosten auf 0 senkt. Damit der Spieler das nicht ausnutzen kann, hält dieser nur sehr kurz. Jedenfalls wird auch ein Upgrade aktiviert, welches in deiner Elvenfortress einen DoCommandBehavior aktiviert. Dieser sagt der Festung sie soll Button blablabla drücken wenn Upgrade soundso erscheint. dadurch würde dann Legolas gebaut werden.

    Behavior = DoCommandUpgrade Name
        TriggeredBy = WelchesUpgrade
        GetUpgradeCommandButtonName = WelcherButton
    End
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Natsu am 18. Aug 2012, 17:29
Wie kann ich meine fx schwarz färben ?
Wenn ich R:0 G:0 B:0 schreibe ist sie einfach weiss selbiges wenn ich bspw. R:35 G:35 B:35
Titel: Re:Natsu's Fragen-Thread
Beitrag von: Shadowleake, Eis des Nordens am 25. Aug 2012, 08:33
Zitat
Du schnappst dir eine Textur mit AlphaKanal (Teile der Textur sind durchsichtig). Die Teile, die nicht durchsichtig sind, besitzen die farbe schwarz.
In der fxparticelsystem.ini kannst du für jeden FX folgenden Code anfügen:
SHADER = ALPHA
Sieh dir dafür am besten das Beispiel der DreadVisage der Nazgul an. (Nach excloudnazgul.tga suchen).
Noch auf die Codes des AlphaUpdates achten bzw. das ein solcher Abschnitt enthalten ist und die Farbwerte anpassen.


  Color = DefaultColor
    Color2 = R:193 G:0 B:0 5
    Color3 = R:0 G:0 B:0 30
  End
  Alpha = DefaultAlpha
    Alpha2 = 0.5 0.75 5
    Alpha3 = -0.2 0 30
  End

das gab mir ea der dunkle mal, als ich die selbe frage stellte als antwort^^
finde es sehr gut beschrieben :)
lg shadow