Modding Union
Modderecke => Coding => Thema gestartet von: Thurindor am 6. Nov 2017, 20:58
-
Hallo Zusammen,
ich möchte auf meinen Maps Helden wie Gil Galad, Durin oder Elendil spielbar machen. Im Weltenbauer unter Objekte habe ich sie gefunden und kann sie platzieren. Wenn sie sterben ist ein Wiederbeleben nicht möglich.
Jetzt habe ich mal ini ´s von Maps durchgeschaut und diverses gefunden. Nachdem ich Anfänger auf dem Gebiet bin ist hier meine Frage ob diese Codes geeignet sind eine ini zu erstellen welche ich global auf meine Maps einsetzen kann.
Kann ich mit diesen Codes Helden beliebig hinzufügen? Wie muss der Code lauten wenn die Helden im Hauptgebäude (Lager/Festungen) rekrutiert und wiederbelebt werden soll?
Etwas anderes noch bei Men-Unit-GondorElendil => seine Skills sind im Palantir sichtbar aber nicht aktivierbar was ist hier falsch?
bei GondorAnarion sind Skills teilweise nicht sichtbar und nicht aktivierbar
Vielen Dank schon mal vorab für Eure Hilfe.
Gruss Thurindor
Anbei der Code einer Selfmade Edoras Map ini (nicht von mir editiert).
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; FACTION SETTING ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PlayerTemplate FactionRohan
BuildableHeroesMP = CreateAHero RohanMerry_mod RohanOldMan RohanGamling_mod_neu RohanEowyn_mod RohanHama RohanTheodred RohanEomer_mod RohanGrimbold RohanElfhelm RohanErkenbrand RohanAragorn_HK LothlorienLegolas DwarvenGimliMod GondorGandalf_forEdoras
;--------------------------------------------------------------------------------
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BUILDINGS SETTING ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;--------------------------------------- Rohan ---------------------------------------;
Object RohanCastleDoor
DisplayName = OBJECT:LakeTown_Gate
CommandSet = CastleGateCommandSet_Edo ras
End
CommandSet CastleGateCommandSet_Edo ras
1 = Command_ToggleGate
2 = Command_StartSelfRepair
End
;--------------------------------------------------------------------------------
Object RohanZeltlager_Outpost
CommandSet = RohanExilantenlagerComma ndSet_Edoras
ReplaceModule ModueTag_RuhmdesKönigsCo mmandSet
Behavior = CommandSetUpgrade ModueTag_RuhmdesKönigsCo mmandSetNew
TriggeredBy = Upgrade_ArnorWallPostern Gate
CommandSet = RohanKöniglichesLagerCom mandSet_Edoras
End
End
End
CommandSet RohanExilantenlagerComma ndSet_Edoras
1 = Command_ConstructRohanRo hirrimHorde_Exilant
2 = Command_SpecialAbilityRo hanAusbildungslager
3 = Command_SpecialAbilityRo hanKundschafter
4 = Command_PurchaseUpgradeR ohanKöniglichesLager
6 = Command_Sell
7 = Command_FakeRingHeroRevi veSlot
8 = Command_CreateAHeroReviv eSlot
9 = Command_FakeHeroReviveSl ot1
10 = Command_FakeHeroReviveSl ot2
11 = Command_FakeHeroReviveSl ot3
12 = Command_FakeHeroReviveSl ot4
13 = Command_FakeHeroReviveSl ot5
14 = Command_FakeHeroReviveSl ot6
15 = Command_EomerGenericRevi veSlot
14 = Command_FakeHeroReviveSl ot7
15 = Command_FakeHeroReviveSl ot8
16 = Command_FakeHeroReviveSl ot9
17 = Command_FakeHeroReviveSl ot10
18 = Command_FakeHeroReviveSl ot11
19 = Command_FakeHeroReviveSl ot12
20 = Command_FakeHeroReviveSl ot13
21 = Command_FakeHeroReviveSl ot14
22 = Command_FakeHeroReviveSl ot15
End
-
Ich glaube es würde einfacher sein, wenn du die gewünschten Helden einfach richtig per eigener ini-datei ins Spiel moddest. Die schon vorhandenen Codes müssten mit ein paar Anpassungen eigentlich ausreichen.
-
Ok und wo finde ich diese?
-
Bei den jeweiligen Objektordnern. Gil Galad z.B. hat schon eine ini datei unter: data\ini\object\goodfaction\units\lothlorien\lothloriengilgalad.ini
Jetzt kannst du diese ini mit einem normal funktionierenden helden ini vergleichen und ändern/ergänzen was noch fehlt. Dann einfach den Helden bei der playertemplate.ini hinzufügen und dann sollte er normal rekrutierbar sein.
(evtl. noch einen eintrag in die experiencelevels.inc machen, damit er leveln kann, wenn nicht schon vorhanden)
-
Also Held konnte eingefügt werden z.b. Gil Galad mit allem drum und dran (d.h. rekrutieren und wiederbeleben wie alle anderen Heroes).
Jetzt habe ich folgendes Problem:
Elrond ist nicht mehr in der Base rekrutierbar sondern im Lindon Turm
Cirdan nicht mehr im Lindon Turm sonder im Aussenposten der Dunedain
Halbarad gar nicht mehr
ich vermute das hier aufgrund von Platzmangel die Helden nach der Reihenfolge wie in der Playertemp ini eingetragen in die entsprechenden Plätze gesetzt werden.
Ich finde die Base ini nicht bzw. auch nicht in der commandset ini wo und wie ich hier einen platz erweitern kann
Wer kann mir hier weiterhelfen?
Vielen Dank schon mal
Gruss Thurindor
-
so habe mittlerweile in der commandset inc die base gefunden und auch dort eine zeile für helden erweitert z.b.
15 = CommandGenericRevi veSlot 8
habe die datei gespeichert und in die big wieder eingefügt.
Aber es tut sich nichts. Was habe ich verkehrt gemacht?
In den Commandbutton inc finde ich immer wieder bei den bases diesen anhang:
CommandRangeStart = 7
CommandRangeCount = 12
Was definieren die Zahlen?
Elendil habe ich durchgeschaut in der Commandbutton inc sind alle Skills entsprechend hinterlegt und auch in der commandset inc zugeordnet. Warum funktionieren diese trotzdem nicht?
VG Thurindor
-
Denke dran, dass wenn du bei der commandset was hinzufügst, dann musst du auch einen entprechenden eintrag in der commandbutton machen.
Hast du in der ini von elendil auch alle spells hinzugefügt?
-
Also ich mische mich hier mal ein :P
@Thurindor
1. Willst du diese Helden nur in einer Map haben??
2. Dein Problem mit den Helden die in den falschen Gebäuden rekrutierbar sind, kommt daher, dass du in der BuildableHeroesMP bestimmt den Helden Gil Galad nach vorne gesetzt hast.
Die Helden die in dieser Zeile genannt werden, kann man in dieser Reihenfolge rekrutieren. Der Code Command_GenericReviveSlot1
gibt zum Beispiel an, dass der erste Held aus der BuildableHeroesMP
Liste Rekrutierbar ist.
Cirdan hat beim Lindon Turm den Command_GenericReviveSlo t6. Wenn du aber einen neuen Helden hinzufügst, ist Cirdan ja nicht mehr auf der 6 sondern der 7. Held in der Liste.
Aus diesem Grund. NEUE HELDEN IMMER AN DEN SCHLUSS ANHÄNGEN.
3. Der Code
CommandRangeStart = 7
CommandRangeCount = 12
gibt an, dass ab dem 7 Code ein Untermenü geöffnet wird, welches bis zum 12 Code geht. Man kann so in ein CommandSet mehr Spells und Fähigkeiten einfügen.
4.Das Elendil nicht funktioniert hat sehr wahrscheinlich damit zu tun, dass die Spells in seiner .ini Datei fehlen.
5. Der Code Command_FakeHeroReviveSl ot1
gibt an, dass der erste held der BuildableHeroesMP
Liste NICHT Rekrutierbar ist. Das ist praktisch für Helden, die man auf einigen Karten nicht haben möchte, oder wenn man einen Helden in einem anderem Gebäude rekrutieren will.
So ich hoffe ich konnte dir helfen
@No1Gamer
Wie oben schon erwähnt glaube ich dass die Spells in den .ini Dateien fehlen. Dann kann auch der CommansSet und der CommandButton Eintrag richtig sein.
-
Vielen Dank für die Antwort. :)
Also grundsätzlich ging es mir darum die Helden nicht immer da zu haben, sondern eine map.ini zu besitzen, welche ich auf meinen maps einfach einfüge.
Ich habe das z.b. bei Barad Eithel von Glorfindel23 gesehen. Hier wurden z.b. Gil Galad und seine Leibwachen eingefügt. Glorfindel23 hatte genau das gleich Problem, wenn der Held stirbt ist kein Respawn möglich.
Dank der Hilfe von No1Gamer habe ich das ja zumindest schon mal gelöst.
In der Tat hatte ich die Helden bei BuildableHeroesMP vorne eingesetzt. Ich werde deine Tips befolgen und berichten.
Bei Elendil in der ini sind tatsächlich nur die Skills König der Menschen oder von Numernor und der Erorberer aufgeführt.
Vielen Dank fürs erste.
VG Thurindor
-
Das mit dem Wiederbeleben liegt daran, dass Elendil keinen Respawnbehavoir besitz.
Dieser regelt das Wiederbeleben:
Body = RespawnBody ModuleTag_RespawnBody
CheerRadius = EMOTION_CHEER_RADIUS
MaxHealth = EDAIN_HERO_HEALTH_LOW ;ARAGORN_HEALTH
PermanentlyKilledByFilter = NONE ;Who kills me permanently?
DodgePercent = HERO_DODGE_PERCENT
End
Behavior = RespawnUpdate ModuleTag_RespawnUpdate
DeathAnim = DYING ;Model condition to play when killed-to-respawn
; DeathFX = FX_AragornDieToRespawn ;FXList to play when killed-to-respawn
DeathAnimationTime = 3933 ;How long DeathAnim will take.
InitialSpawnFX = FX_AragornInitialSpawn ;FXList to play when respawning.
RespawnAnim = LEVELED ;Animation to play when respawning.
; RespawnFX = FX_ResurrectionAragorn ;FXList to play when respawning.
RespawnAnimationTime = 2000 ;Time it takes for respawn to play.
AutoRespawnAtObjectFilter = NONE +CASTLE_KEEP ;Respawn at this location -- and at it's exit production point if possible.
ButtonImage = HIAragorn
;
; ;RespawnEntries determine the ruleset for how a character can be revived. Some units may automatically respawn, others
; ;may require a specific revive action performed on him. You can specify different values for each level... or use Level:Any
RespawnRules = AutoSpawn:No Cost:ARAGORN_BUILDCOST Time:60000 Health:100% ;DEFAULT VALUES
End
Elendil benutzt ja eh alle dateien von Aragorn. Seltze diesen Code bei Elendils.ini ein und du kannst ihn wiederbeleben.
-
So habe jetzt bei Elendil die meisten Skills gangbar gemacht wie Königskraut, Gunst des Königs und die Verstärkung.
Was ich nicht hinbekomme ist "Schätze des Königreichs"
Ich habe schon araphants skill "Rüstkammern Fornosts" versucht in Commandset.inc und Elendil ini aber komme nicht vorwärts. Meist ist der Skill grau hinterlegt.
Was ist an den Codes verkehrt?
Hier der Code aus Elendils ini
;-----------------------------------------------------------
; Schätze des Königreichs
;-----------------------------------------------------------
Behavior = UnpauseSpecialPowerUpgra de ModuleTag_SchätzeEnabler
SpecialPowerTemplate = SpecialAbilitySchätzedes Königsreichs
TriggeredBy = Upgrade_Level_5
ObeyRechageOnTrigger = Yes
End
Behavior = SpecialPowerModule ModuleTag_SchätzeStarter
SpecialPowerTemplate = SpecialAbilitySchätzedes Königsreichs
UpdateModuleStartsAttack = Yes
StartsPaused = Yes
End
Behavior = WeaponFireSpecialAbility Update ModuleTag_SchätzeUpdate
SpecialPowerTemplate = SpecialAbilitySchätzedes Königsreichs
SkipContinue = Yes
UnpackTime = 1100 ; Pull out arrow
PreparationTime = 1 ; Quick shot
PersistentPrepTime = 500 ; looping the quick shot
PackTime = 500 ; back to idle
MustFinishAbility = Yes
AwardXPForTriggering = 0
StartAbilityRange = 300
SpecialWeapon = SchätzedesKönigreichsWea pon
WhichSpecialWeapon = 1
End
Hier die Commandset:
CommandSet GondorElendilCommandSet
1 = Command_ToggleStance
2 = Command_ElendilLeadershi p
3 = Command_SpecialAbilityEl endilAthelas
4 = Command_SpecialAbilitySc hätzedesKönigsreichs
5 = Command_SpecialAbilityEl endilKingsFavor
6 = Command_SpecialAbilityVe teranenArthedain
12 = Command_CaptureBuilding
13 = Command_AttackMove
14 = Command_Stop
16 = Command_SetStanceBattle
17 = Command_SetStanceAggress ive
18 = Command_SetStanceHoldGro und
End
Hier die Commandbutton:
CommandButton Command_SpecialAbilitySc hätzedesKönigreichs
Command = SPECIAL_POWER
SpecialPower = SpecialAbilitySchätzedes Königsreichs
Options = NEED_TARGET_POS CONTEXTMODE_COMMAND ;OK_FOR_MULTI_SELECT OK_FOR_MULTI_EXECUTE
TextLabel = CONTROLBAR:SchätzedesKönigreichs
ButtonImage = HSElendilGoldderKönige
RadiusCursorType = scFaramir_Ranger
CursorName = Defector ;;;Bombard
InvalidCursorName = GenericInvalid
ButtonBorderType = ACTION
DescriptLabel = CONTROLBAR:ToolTipSchätzedesKönigre ichs
InPalantir = Yes
AutoAbility = No
End
Bitt um Hilfe Vielen Dank
VG Thurindor
-
Entschuldige Thurindor dass ich mich erst jetzt melde, hatte einiges um die Ohren.
Ich kenne die Fähigkeit "Schätze des Königreichs" nicht.
Was sollte diese Fähigkeit bewirken??
Eventuell kann ich dann eine neue Fähigkeit erstellen.
Wenn ich das so lese, könnte ich mir vorstellen, dass Schatztruhen gespawnt werden sollen.
-
Kein Problem. Bei der Fähigkeit kann man ein Bataillon auswählen welches volles Waffenupgrade bekommt. Bei Araphant heisst die Fähigkeit nur Rüstkammer Fornosts und ist erst ab lvl 7 verfügbar. Ich habe schon versucht diese zu verwenden bin aber kläglich gescheitert. Vllt. hast du die Lösung. Vielen Dank schon mal vorab. Gruss Thurindor
-
also deine codes sehen alle soweit in Ordnung aus. Ich kann da keinen fehler feststellen.
Aber probiere es mal bei der Commandbutton.inc bei der Option = mit NEED_TARGET_ALLY_OBJECT
Ansonsten könntest du eine neue Fähigkeit einfügen. Ich habe es mal mit dem Tölichen Pfeil von Faramir gemacht:
;---------------------------Tödlicher Pfeil----------------------------------
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_UnpauseWounding
SpecialPowerTemplate = SpecialAbilityElendilSchätzedesKönigreiches
TriggeredBy = Upgrade_Level_7
End
Behavior = SpecialPowerModule ModuleTag_WoundArrow
SpecialPowerTemplate = SpecialAbilityElendilSchätzedesKönigreiches
UpdateModuleStartsAttack = Yes
StartsPaused = Yes
End
Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_WoundArrowUpdate
SpecialPowerTemplate = SpecialAbilityElendilSchätzedesKönigreiches
SkipContinue = Yes
UnpackTime = 2000
PreparationTime = 1
PersistentPrepTime = 1000
PackTime = 1
AwardXPForTriggering = 0
StartAbilityRange = 350.0
ApproachRequiresLOS = Yes
SpecialWeapon = SchätzedesKönigreichsWeapon
WhichSpecialWeapon = 1
End
Specialpower:
;------------------------------------------------------------------------------
SpecialPower SpecialAbilityElendilSchätzedesKönigreiches
Enum = SPECIAL_WOUND_ARROW
ReloadTime = 120000
PublicTimer = No
End
CommandButton:
CommandButton Command_SpecialAbilityElendilSchätzedesKönigreichs
Command = SPECIAL_POWER
WeaponSlot = SECONDARY
SpecialPower = SpecialAbilityElendilSchätzedesKönigreiches
Options = NEED_TARGET_ALLY_OBJECT UNMOUNTED_ONLY ;NEED_TARGET_POS
TextLabel = CONTROLBAR:SchätzedesKönigreichs
ButtonImage = HSElendilGoldderKönige
CursorName = Defector ;;;Bombard
InvalidCursorName = GenericInvalid
RadiusCursorType = scFaramir_Ranger
ButtonBorderType = ACTION
DescriptLabel = CONTROLBAR:ToolTipSchätzedesKönigreichs
InPalantir = Yes
AutoAbility = No
End
-
Danke für die Hilfe hat funktioniert.
VG Thurindor