Jump to content

[Need Help] Stealth speed Multiplier


Recommended Posts

Nice :)

 

So, I found 3 movers objects:

 

Default Mover

Default NPC Mover

Default Party Member Mover

 

All set to: "AnimationRunSpeed":4,"AnimationWalkSpeed":2,"RunSpeed":4,"WalkSpeed":2

 

I tried to change "Default Party Member Mover" to:

"AnimationRunSpeed":4,"AnimationWalkSpeed":4,"RunSpeed":4,"WalkSpeed":4

but it didn't have any effect.

 

I tried two other and it seems that only "Default Mover" does make any difference on my char and party members.

I set it up to "AnimationRunSpeed":4,"AnimationWalkSpeed":4,"RunSpeed":4,"WalkSpeed":4, but is seems that if Walkspeed = RunSpeed, the walking animation take precedense.

I guess I don't have to mention that walking animation with running speed looked wonky :)

 

I lowered it to: "AnimationRunSpeed":4,"AnimationWalkSpeed":3,"RunSpeed":4,"WalkSpeed":3 and it seems even better now for my taste to buff up Assassins a bit.

I am not sure what else does "Default mover" affects, so I will have to test it some more.

 

Ideally, I would like to change Assasing/Rogues only with stealthed speed buff, but I guess somebody with more experience would have to do it :)

 

Anyway, thanks again for the tip BMac.

Link to comment
Share on other sites

You could perhaps add a passive StatusEffect to the Class that adds 2 to movement speed (could also have the value scale with the stealth skill which would make movement multipler a better choice).  I think if you put this in the Prereqs for the statuseffect it should only take place when the character is in stealth.

"ApplicationPrerequisites": {
  "Conditional": {
    "Operator": 0,
    "Components": [{
        "$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
         "Data": {
             "FullName": "Boolean IsCharacterStealthed(Guid)",
             "Parameters": ["011111e9-0000-0000-0000-000000000000"],
             "UnrealCall": "",
             "FunctionHash": 0,
             "ParameterHash": 0
         },
         "Not": false,
          "Operator": 0
        }]
   }
}

You could, instead, apply the same logic to the ability that represents the passive in order to Activate and Deactivate the StatusEffect if you wanted to do something visual (or otherwise) for the class when the effect occurs.  I'm not sure which is the cleaner or preferred method if they both work.

Edited by ferzal
  • Like 2
Link to comment
Share on other sites

You could perhaps add a passive StatusEffect to the Class that adds 2 to movement speed (could also have the value scale with the stealth skill which would make movement multipler a better choice).  I think if you put this in the Prereqs for the statuseffect it should only take place when the character is in stealth.

"ApplicationPrerequisites": {
  "Conditional": {
    "Operator": 0,
    "Components": [{
        "$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
         "Data": {
             "FullName": "Boolean IsCharacterStealthed(Guid)",
             "Parameters": ["011111e9-0000-0000-0000-000000000000"],
             "UnrealCall": "",
             "FunctionHash": 0,
             "ParameterHash": 0
         },
         "Not": false,
          "Operator": 0
        }]
   }
}

You could, instead, apply the same logic to the ability that represents the passive in order to Activate and Deactivate the StatusEffect if you wanted to do something visual (or otherwise) for the class when the effect occurs.  I'm not sure which is the cleaner or preferred method if they both work.

 

Thnks but which is the parameter to change?

 

I've been able only to change stride, also in gamedata docs i can't found what i need to change the speed.

Edited by kilay
Link to comment
Share on other sites

like that

"$type": "Game.GameData.StatusEffectGameData, Assembly-CSharp",
            "DebugName": "Ring_of_Freedom_SE_MovementSpeed",
            "ID": "0f27ac10-c10b-4545-ae7d-fdaf883570b4",
            "Components": [
                {
                    "$type": "Game.GameData.StatusEffectComponent, Assembly-CSharp",
                    "StatusEffectType": "MovementRate",
                    "OverrideDescriptionString": 123456,
                    "UseStatusEffectValueAs": "None",
                    "BaseValue": 2,
                    "DynamicValue": {
                        "Stat": "None",
                        "SkillDataID": "00000000-0000-0000-0000-000000000000",
                        "ClassID": "00000000-0000-0000-0000-000000000000",
                        "MultiplyBy": 1,
                        "Operator": "Add"
                    },
                    "KeywordsIDs": [],
                    "DurationType": "Infinite",
                    "Duration": 0,
                    "MaxStackQuantity": 0,
                    "ApplicationBehavior": "UseLongerDurationIfAlreadyApplied",
                    "ApplicationType": "ApplyOnStart",
                    "IntervalRateID": "00000000-0000-0000-0000-000000000000",
                    "StackedChildrenApplyEffects": "false",
                     "ApplicationPrerequisites": {
  "Conditional": {
    "Operator": 0,
    "Components": [{
        "$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
         "Data": {
             "FullName": "Boolean IsCharacterStealthed(Guid)",
             "Parameters": ["011111e9-0000-0000-0000-000000000000"],
             "UnrealCall": "",
             "FunctionHash": 0,
             "ParameterHash": 0
         },
         "Not": false,
          "Operator": 0
        }]
   }
},
                    "TriggerAdjustment": {
                        "TriggerOnEvent": "None",
                        "TriggerOffEvent": "None",
                        "ValidateWithAttackFilter": "false",
                        "ParamValue": 0,
                        "ValueAdjustment": 0,
                        "DurationAdjustment": 0,
                        "ResetTriggerOnEffectTimeout": "false",
                        "MaxTriggerCount": 0,
                        "IgnoreMaxTriggerCount": "false",
                        "RemoveEffectAtMax": "false",
                        "ChanceToTrigger": 1
                    },
                    "PowerLevelScaling": {
                        "UseCharacterLevel": "false",
                        "BaseLevel": 0,
                        "LevelIncrement": 1,
                        "MaxLevel": 0,
                        "ValueAdjustment": 0,
                        "DurationAdjustment": 0
                    },
                    "IsHostile": "false",
                    "ClearOnCombatEnd": "false",
                    "ClearOnRest": "false",
                    "ClearOnFoodRest": "false",
                    "ClearWhenAttacks": "false",
                    "ClearOnDeath": "false",
                    "HideFromCombatTooltip": "false",
                    "HideFromCombatLog": "false",
                    "HideFromUI": "false",
                    "VisualEffects": [],
                    "MaterialReplacementID": "00000000-0000-0000-0000-000000000000",
                    "AttackFilter": {
                        "KeywordsIDs": [],
                        "KeywordLogic": "Or",
                        "Range": "None",
                        "ClassTypeID": "00000000-0000-0000-0000-000000000000",
                        "Source": "None",
                        "DefendedBy": "None",
                        "Empowered": "false",
                        "Disengagement": "false",
                        "Stealthed": "false",
                        "UseStealthLinger": "false",
                        "PowerLevel": 0,
                        "PowerLevelOperator": "EqualTo",
                        "ChanceToApply": 1,
                        "AttackHostility": "Default"
                    },
                    "AttackTargetFilter": {
                        "KeywordsIDs": [],
                        "KeywordLogic": "Or",
                        "Race": "None",
                        "IsKith": "false",
                        "HealthPercentage": 0,
                        "HealthOperator": "EqualTo",
                        "Distance": 0,
                        "DistanceOperator": "EqualTo",
                        "HasDOT": "false",
                        "IsMarked": "false",
                        "TargetHostility": "Default"
                    },
                    "ExtraValue": 0,
                    "OverridePenetration": 0,
                    "DamageTypeValue": "All",
                    "KeywordValueID": "00000000-0000-0000-0000-000000000000",
                    "RaceValue": "None",
                    "StatusEffectTypeValue": "None",
                    "ItemValueID": "00000000-0000-0000-0000-000000000000",
                    "AfflictionTypeValueID": "00000000-0000-0000-0000-000000000000",
                    "StatusEffectsValueIDs": [],
                    "AttackValueID": "00000000-0000-0000-0000-000000000000",
                    "AttackOverrideValue": "None",
                    "EventValue": "OnApply",
                    "ClassValueID": "00000000-0000-0000-0000-000000000000",
                    "WeaponTypeValue": "None",
                    "AttackHitType": "None",
                    "SkillValueID": "00000000-0000-0000-0000-000000000000",
                    "AudioEventListID": "00000000-0000-0000-0000-000000000000",
                    "BedRestDaysMinimum": 0,
                    "BedRestDaysMaximum": 0
                }
            ]
        }

So "StatusEffectType": "MovementRate" affect the Stride , idk the one related to movement speed  (already tried MovementSpeed)

Edited by kilay
Link to comment
Share on other sites

Best that I can do atm,

 

a  ring that gives + 100 % Stride in combat, always.  So in combat on stealth  it works, but only if you are in hostile radius . Idk the reason.

Ofc out of stealth you'll have double speed and out of combat it doesn't work (how stated by BMac) so you'll have normal speed

 

I've tried to add the part suggested before but something doesn't work (feel free to try to change it)

 

Put it in override folder and you'll have it in your inventory on you next game (either new run or loaded game )

 

https://mega.nz/#!Xo4GgaBS!ptMGG9BjfsZda-LNHOI3rWEdJiMpMbPcx0I6bkPAdlM

 

from 0:24 to 0:28 you can see the MC  stealth at standard speed

 

Edited by kilay
  • Like 1
Link to comment
Share on other sites

Unfortunately it wouldn't work out of combat but I thought the boolean would work in combat.  I've seen a couple of UUIDs that seem to reference "this character".  One is the one I quoted and the other is 7d150000-0000-0000-0000-000000000000 (both of which are used for the ischaracterstealthed conditional in existing abilities).  I don't know the difference but I thought the one I used was most commonly seen.

 

Perhaps the Application Prereq's don't work quite the same for status effect.  You could create a passive ability that simply exists to apply the status effect associated with the Ring and try it that way - it will trigger the status effect on and off accordint to stealth state.  The ability "Assassin_Passive" for example shows how to do this (ignore the additional status effect condition).  I thought the prereqs would work the same for statuseffects but now that I think about it that probably doesn't make sense.  The prereq's for statuseffect likely means the status effect simply won't apply at all if the conditions aren't met.  It won't act as a switch.  Having the ring grant the passive would definitely work so that you don't get double movement speed when not stealthed.

 

For outofcombat stealth there's no reasonable solution I can see.

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...