Modderecke > Coding

Melkors Modding Fragen

(1/19) > >>

Melkor Bauglir:
Hallo.
Ich habe vor kurzem angefangen, auch ein wenig zu modden und bin entsprechend unerfahren. Ergo versage ich gerade an folgendem Problem:
Ich versuche eine Fähigkeit für eine Einheit zu erstellen, die bei Aktivierung diese Einheit tötet und eine OCL auslöst. Da ich eigentlich keine Ahnung habe, wie so etwas funktioniert, habe ich mir einfach eine bestehende Fähigkeit genommen (Glorfindels Sternenlicht) und diese versucht zu ändern.


--- Code: ---CommandSet MordorAufseherCommandSet_neu
    1    = Command_ToggleStance    
    4    = Command_SpecialAbilityAufseherArmeeverwaltung ;hier ist das Problem
    7    = Command_SpecialAbilityGlorfindelRingSwitch
    12    = Command_CaptureBuilding
    13    = Command_AttackMove
    14    = Command_Stop
    16      = Command_SetStanceBattle
    17      = Command_SetStanceAggressive
    18      = Command_SetStanceHoldGround
End
--- Ende Code ---

--- Code: ---CommandButton Command_SpecialAbilityAufseherArmeeverwaltung
  Command               = SPECIAL_POWER
  SpecialPower          = SpecialAbilityGlorfindelStarlight
  TextLabel             = CONTROLBAR:SpecialAbilityArmeeverwaltung
  ButtonImage           = HSErestorMilitärStudien
  ButtonBorderType      = ACTION
  DescriptLabel         = CONTROLBAR:ToolTipSpecialAbilityArmeeverwaltung
  AutoAbility           = Yes
  InPalantir            = Yes
End
--- Ende Code ---

--- Code: ---SpecialPower SpecialAbilityAufseherArmeeverwaltung
    Enum                        = SPECIAL_GENERAL_TARGETLESS_THREE
    ReloadTime                    = 120000
End
--- Ende Code ---

--- Code: ---    Behavior = UnpauseSpecialPowerUpgrade ModuleTag_GlorfindelStarlightEnabler
        SpecialPowerTemplate        = SpecialAbilityGlorfindelStarlight
        TriggeredBy                 = Upgrade_Level_1
        ObeyRechageOnTrigger        = Yes
    End

    Behavior = OCLSpecialPower ModuleTag_GlorfindelStarlight
        StartsPaused                = Yes
        SpecialPowerTemplate        = SpecialAbilityGlorfindelStarlight
        OCL                         = OCL_AufseherArmeeverwaltungEgg
        CreateLocation              = CREATE_AT_LOCATION
        SetModelCondition           = ModelConditionState:USER_2
        SetModelConditionTime       = 2.333
    End

    ; special AutoAbilityBehavior for starlight, as we need to target a bunch of allies.
    Behavior = AutoAbilityBehavior ModuleTag_StarlightAutoAbilityBehavior
        SpecialAbility              = SpecialAbilityGlorfindelStarlight
        MaxScanRange                = GLORFINDEL_STARLIGHT_RADIUS
        Query                       = 2 ANY ALLIES +HORDE                        ; 2 friendly hordes or an enemy
        Query                       = 1 ALL ENEMIES
    End
--- Ende Code ---

Das sind hintereinander die Einträge in der commandset.ini, commandbutton.ini, specialpower.ini und der .ini der Aufseher.
Problem ist, dass die Fähigkeit im Spiel zwar korrekt angezeigt wird (inkl. Bild und allem), sich allerdings überhaupt nichts tut, wenn man sie anklickt. (Die Objects, die erscheinen sollen, sind alle fertig, ebenso die Weapon die den Aufseher tötet -die wird durch die OCL ausgelöst.) Die Aufladezeit ist übrigens drin, weil ich testen wollte, wo der Fehler liegt. Und da sie nie ausgelöst wird, scheint sich die Fähigkeit wirklich nie zu aktivieren.

Sieht jemand den Fehler?

Vielen Dank im Voraus
Melkor Bauglir

Prinz von Dol Amroth:
Deine gezeigten Codes sehen alle richtig aus.
Zeige am besten mal den OCL, das Object und wenn du gerade dabei bist auch die Weapon.
Übrigens verstehe ich nicht ganz, wieso du eine neue SpecialPower gemacht hast, wenn du noch die von Glorfindel verwendest ;)

Melkor Bauglir:

--- Code: ---ObjectCreationList OCL_AufseherArmeeverwaltungEgg
        CreateObject
                ObjectNames     = AufseherKawuschObject
                Count           = 1
                Disposition     = LIKE_EXISTING
       End
End

ObjectCreationList OCL_ArmeeverwaltungKommandopunkteEgg
        CreateObject
                ObjectNames     = AufseherKommandopunkteObject
                Count           = 1
                Disposition     = LIKE_EXISTING
       End
End
--- Ende Code ---

--- Code: ---Object AufseherKawuschObject
    Draw = W3DScriptedModelDraw ModuleTag_Draw
        DefaultModelConditionState
            Model = None
        End
    End
    KindOf = INERT IMMOBILE UNATTACKABLE
   
    Body = ActiveBody ModuleTag_MakesKillWork
        MaxHealth = 1
    End
    Behavior = LifetimeUpdate ModuleTag_HatchTrigger
        MinLifetime = 0.0
        MaxLifetime = 0.0
    End
    Behavior = SlowDeathBehavior ModuleTag_HatchProcess
        DestructionDelay    = 10
        Weapon              = FINAL ArmeeverwaltungKawuschRadiusWeapon
    End
End
--- Ende Code ---

--- Code: ---Weapon ArmeeverwaltungKawuschRadiusWeapon
    IdleAfterFiringDelay  = 0
    AttackRange           = 50
    WeaponSpeed           = 401
    RadiusDamageAffects   = ALLIES
    PreAttackDelay        = 2600
    PreAttackType         = PER_ATTACK
    FiringDuration        = 1400
  DamageNugget                        ; A basic Nugget that just does damage
    Damage        = 99999999999999999
    Radius        = 20.0
    DelayTime     = 0
    DamageType    = HERO
    DamageFXType  = SWORD_SLASH
    DeathType     = FADED
    DamageScalar  = 0% ALL -MordorAufseher ALLIES
  End
  WeaponOCLNugget
    WeaponOCLName = OCL_ArmeeverwaltungKommandopunkteEgg
  End
End
--- Ende Code ---

Wobei es mich wundern würde, wenn der Fehler da liegt. Die Fähigkeit hat ja eine Aufladezeit und die wird nie ausgelöst.

Gruß
Melkor

PS:
--- Zitat ---Übrigens verstehe ich nicht ganz, wieso du eine neue SpecialPower gemacht hast, wenn du noch die von Glorfindel verwendest
--- Ende Zitat ---
Wie ich so drüber nachdenke, frage ich mich das auch gerade...  xD

Prinz von Dol Amroth:
Der OCL, Object und die Weapon scheinen Inordnung.

Der Fehler müsste sein, dass der Mordoraufseher nie das Upgrade Upgrade_Level_1 bekommt. Stattdessen bekommt er auf Stufe 1 das Upgrade Upgrade_ObjectLevel1, falls du das nicht in der experience.ini/inc geändert hast.

Melkor Bauglir:
Da habe ich in der Tat nichts dran geändert.
Ich habe in dieser Zeile
--- Code: ---TriggeredBy   = Upgrade_Level_1
--- Ende Code ---
jetzt anstelle von Upgrade_Level_1 Upgrade_ObjectLevel_1 eingetragen. Leider hat sich dadurch nichts geändert.

Gruß
Melkor Bauglir


Edit:
So, in einem Versuch, den Fehler etwas einzugrenzen, habe ich einfach mal sämtliche Einträge in der .ini der Aufseher zu dieser Fähigkeit gelöscht; die Fähigkeit wäre damit überhaupt nicht mehr definiert, wenn ich das richtig sehe.
Nun ja, es hat sich absolut nichts geändert. :P Der Eintrag im CommandSet scheint also niemals überhaupt die Fähigkeit angesteuert zu haben -so erkläre ich mir das zumindest.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln