Modderecke > Coding

Waffenwechsel für Waldläufer und andere Dinge

(1/1)

Noldorin Cuthalion:
Hallöchen!
Ich hätte ein paar Fragen zum Coden via map.ini.
Erst einmal:
Gibt es eine Möglichkeit via map.ini ein Ithilien Waldläufer Bataillon so zu verändern, dass man umschalten kann, zwischen dem Fernangriff und dem Nahangriff (also wie bei den "Orkjägern").
Ich hab bis jetzt folgendes in meiner map.ini stehen (funktioniert nicht):

--- Code: ---Object GondorRangerHorde
 WeaponSet
        Conditions        = None
        Weapon            = PRIMARY    GondorRangerBowEdain
        AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
    End

    WeaponSet
        Conditions        = WEAPONSET_TOGGLE_1               
        Weapon            = PRIMARY    GondorRangerSword
        AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
    End
End

Object GondorRangerHorde
  AnimationState                    = SELECTED WEAPONSET_TOGGLE_1
            StateName                    = STATE_Selected_Sword
           
            Animation                    = ATNE
                AnimationName            = GUFaramir_SKL.GUFaramir_ATNE
                AnimationMode            = LOOP
                AnimationBlendTime        = 15
            End
            Flags                        = RESTART_ANIM_WHEN_COMPLETE
            BeginScript
                CurDrawableHideSubObject("arrow")
                Prev = CurDrawablePrevAnimationState()
                if Prev == "STATE_Selected_Bow" then CurDrawableSetTransitionAnimState("TRANS_BowToSword") end
                if Prev == "STATE_Idle_Sword" then CurDrawableSetTransitionAnimState("TRANS_BoredToSelectedSword") return end
            EndScript
        End
 End
End

CommandSet GondorRangerHorde_CS_NEW
    1     = Command_ToggleStance
    2     = Command_SpecialAbilityÜberraschendeSalve
    3     = Command_PurchaseUpgradeGondorFireArrows
    4     = Command_ToggleGraueScharWeapon
    5     = Command_PurchaseUpgradeGondorBasicTraining
    6     = Command_PurchaseUpgradeGondorKompositbogen
    12    = Command_CaptureBuilding
    13    = Command_AttackMove
    14    = Command_Stop
    16    = Command_SetStanceBattle
    17    = Command_SetStanceAggressive
    18    = Command_SetStanceHoldGround
End

Object GondorRangerHorde
 CommandSet = GondorRangerHorde_CS_NEW
End
--- Ende Code ---

Vielen Dank im voraus und viele Grüße,
Noldorin

FG15:
Da die Gondorwaldläufer eine Schwertkampf Animation haben, sollte das theoretisch funktionieren. Grundlegend ist das was du gemacht hast auch schon richtig.

Ein paar Anmerkungen zu deinem Code:
Du darfst nicht nur die Horde verändern, sondern auch die Einheiten die in der Horde enthalten sind.
Animationen müssen in der Einheit geändert werden, da die Horde nur ein unsichtbarer Container ist.
Du kannst die Animationseinträge nicht einfach so ändern, sondern musst das komplette Module außenrum verändern, was hier das "Draw = W3DHordeModelDraw ModuleTag_01", welches du mithilfe von ReplaceModule ändern musst.
Außerdem ist es nicht notwendig jedes Mal einen neuen Object-Block aufzumachen für mehrere Änderungen im selben Object.

Noldorin Cuthalion:
Während 4.3 runterlädt, kanns hier ja weiter gehen. :)
Also, erst einmal vielen Dank für deine Hilfe. Ich hab jetzt folgendes stehen:

--- Code: ---Object GondorRanger
 WeaponSet
        Conditions        = None
        Weapon            = PRIMARY    GondorRangerBowEdain
        AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
    End

    WeaponSet
        Conditions        = WEAPONSET_TOGGLE_1               
        Weapon            = PRIMARY    GondorRangerSword
        AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
    End
End

Object GondorRanger

  ReplaceModule Draw = W3DHordeModelDraw ModuleTag_01
        AnimationState                    = SELECTED WEAPONSET_TOGGLE_1
            StateName                    = STATE_Selected_Sword
           
            Animation                    = ATNE
                AnimationName            = GUFaramir_SKL.GUFaramir_ATNE
                AnimationMode            = LOOP
                AnimationBlendTime        = 15
            End
            Flags                        = RESTART_ANIM_WHEN_COMPLETE
            BeginScript
                CurDrawableHideSubObject("arrow")
                Prev = CurDrawablePrevAnimationState()
                if Prev == "STATE_Selected_Bow" then CurDrawableSetTransitionAnimState("TRANS_BowToSword") end
                if Prev == "STATE_Idle_Sword" then CurDrawableSetTransitionAnimState("TRANS_BoredToSelectedSword") return end
            EndScript
        End

 End

End

CommandSet GondorRangerHorde_CS_NEW
    1     = Command_ToggleStance
    2     = Command_SpecialAbilityÜberraschendeSalve
    3     = Command_PurchaseUpgradeGondorFireArrows
    4     = Command_ToggleGraueScharWeapon
    5     = Command_PurchaseUpgradeGondorBasicTraining
    6     = Command_PurchaseUpgradeGondorKompositbogen
    12    = Command_CaptureBuilding
    13    = Command_AttackMove
    14    = Command_Stop
    16    = Command_SetStanceBattle
    17    = Command_SetStanceAggressive
    18    = Command_SetStanceHoldGround
End

Object GondorRangerHorde
 CommandSet = GondorRangerHorde_CS_NEW
End
--- Ende Code ---

Klappt leider immernoch nicht. Irgendwo beim ReplaceModule muss der Fehler/die Fehler liegen, ich kenn mich leider damit noch nicht so gut aus.
Weiß jemand wie ich das fixen kann? Ich kann auch gerne die Fehlermeldung schreiben, wenn das jemanden helfen würde.
Das mit dem Object-Block mache ich bewusst. So ist das für mich etwas übersichtlicher. :D
Viele Grüße,
Noldorin

FG15:
ReplaceModule funktioniert folgendermaßen:

ReplaceModule AlterModuleName
  Modulanfang NeuerModuleName
    Inhalt des Blocks
  End
End

Das wäre in deinem Fall
  ReplaceModule  ModuleTag_01
       Draw = W3DHordeModelDraw ModuleTag_01_New
        ...
      End
  End


Danach solte es zumindestens nicht mehr fehlschalgen.

Nächstes Problem ist man kann nicht einzelne Dinge in Modulen ändern, sondern nur das gesamte Module auf einmal. So würdest du im Moment eine Einheit ohne sichtbares Modell bekommen, mit nur den beiden Animationen.

Du musst also den kompletten Block kopieren und nur das was du ändern möchtest ändern, während der Rest gleich bleibt.

Noldorin Cuthalion:
Hallo zusammen,
Ich hab mein Waldläuferprojekt ein bisschen zur Seite gestellt und beschäftige mich inzwischen mit folgendem Problem: Ich möchte die Reichweite und den Schaden von den Galadhrim im Bogen-Modus verändern. Für die Reichweite einfach die AttackRange überschreiben, nehme ich an? Für den Angriff hab ich keine Ahnung.
Und als letztes würde ich gerne hinzufügen, dass sie bei jedem Schuss den Gegner etwas zurückwerfen, wie bei folgendem Video bei Minute 21:13 zu sehen ist:https://www.youtube.com/watch?app=desktop&persist_app=1&v=s-UFI2eWje4
Also ohne den blauen Effekt aber mit diesem zurückwerfen eben.
Vielen Dank für die Hilfe
Noldorin

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln