Aller au contenu

Photo

How to change the Paladin Horse Speed?


  • Veuillez vous connecter pour répondre
40 réponses à ce sujet

#26
WhiteTiger

WhiteTiger
  • Members
  • 479 messages

Try a 2 second delay (or queued action) on SetLocalInt. I don't have access to the horse scripts right now, but typically they involve actions / delays which might undo your setting.

The speed increase applies to the Paladin, after mounting.

 

done

if (GetStringLength(sSummonScript)<1)
        { // no summon paladin mount override
            oMount=HorseSummonPaladinMount(bPHBDuration);
            DelayCommand(2.0, SetLocalInt(oMount, "X3_HORSE_MOUNT_SPEED", -40));
        }

compiled and no changes in the horse speed =/



#27
WhiteTiger

WhiteTiger
  • Members
  • 479 messages

Could you post your creaturespeed.2da contents.  I am specifically looking for the line labeled "FAST".

 

Oh, we have not creaturespeed.2da custom. I'd like to say that the horse continues with the default speed (50) when I said "My horse is faster than ever"  ;)



#28
WhiteTiger

WhiteTiger
  • Members
  • 479 messages

Okay, I've looked more in depth at this. Without editing includes and recompiling, the paladin script has no way of assigning the variable before it is used to give the horse the speed increase.  Looking at your work on the .utc file, it appears you were trying to set a nameless string on the horse with the value "X3_HORSE_MOUNT_SPEED" and then successfully managed to set a float with the name "X3_HORSE_MOUNT_SPEED" and the value -150.0.  To have this on the horse creature you will need to set it as an integer with the name "X3_HORSE_MOUNT_SPEED" (probably drop the quotes) and the value of something like -50 (this gets the horse moving at half base speed).

 

EDIT: actually if you inserted the variable setting between lines 64 and 65 like so:

 

        if (GetStringLength(sSummonScript)<1)
        { // no summon paladin mount override
            oMount=HorseSummonPaladinMount(bPHBDuration);

            SetLocalInt(oMount, "X3_HORSE_MOUNT_SPEED", -50);
        } // no summon paladin mount override

 

this should work.

 

Wait a minute, that was Shadooow's suggestion.  Well if the script isn't working try the blueprint fix.

 

yes, it was Shadooow's suggestion. thank you for correcting me.  I changed it to float because it's saying on the lexicon that X3_HORSE_MOUNT_SPEED variable is float.

 

//DelayCommand(2.0, SetLocalInt(oMount, "X3_HORSE_MOUNT_SPEED", -40)); //disabled for blueprinting solution

 

 Well if the script isn't working try the blueprint fix.

 

 

Edit6.png

 

does not work

 

//////////////////////////////////////////////////////////////////////////////

//Edited

//////////////////////////////////////////////////////////////////////////////

Also with the value -50 we got the same

 

Edit7.png

 

Note: Surely dropped in the override folder and PC is "4 < PalLevel < 8".

 

//////////////////////////////////////////////////////////////////////////////


Modifié par WhiteTiger, 07 mai 2014 - 05:20 .


#29
WhiteTiger

WhiteTiger
  • Members
  • 479 messages

Has someone changed the horse speed or only am I unable to do?



#30
FunkySwerve

FunkySwerve
  • Members
  • 1 308 messages

Is the paladin doing the summoning already hasted? I haven't looked at the relevant code, but if it uses the function I think it does, there's probably a stacking issue with haste.

 

Funky


  • WhiteTiger aime ceci

#31
WhiZard

WhiZard
  • Members
  • 1 204 messages

Shouldn't be.  Haste does not have stacking issues beyond reaching the cap.  If White Tiger saw -40 (60% movement speed) being as fast as +50 (150% movement speed) then having haste on before or after the adjustment will still produce 90% movement speed (for the -40) and 150% (for the +50).  Enough of a difference to be noticeable.


  • WhiteTiger aime ceci

#32
WhiZard

WhiZard
  • Members
  • 1 204 messages

My last two thoughts on what could be triggering the problem:

 

1) An include file was changed and the script was recompiled.  The relevant script for this is x3_s3_horse as this handles the mounting (which is when the variable on the horse is transferred as a speed increase to the rider).  First look at the include (x3_inc_horse) to make sure no unintended changes are left in it, and then recompile x3_s3_horse.

 

2) You may be using a horse or skin improvement system from the vault which may have a different way of discerning speed adjustments.  If so, find out what horse or skin fix you are using and check the documentation to see what changes have been made.


  • WhiteTiger aime ceci

#33
WhiteTiger

WhiteTiger
  • Members
  • 479 messages

Is the paladin doing the summoning already hasted? I haven't looked at the relevant code, but if it uses the function I think it does, there's probably a stacking issue with haste.

 

Funky

 

No, it isn't. The PC paladin (5) is in need of items, without one hasted.  :)


Modifié par WhiteTiger, 07 mai 2014 - 10:06 .


#34
WhiteTiger

WhiteTiger
  • Members
  • 479 messages

My last two thoughts on what could be triggering the problem:

 

2) You may be using a horse or skin improvement system from the vault which may have a different way of discerning speed adjustments.  If so, find out what horse or skin fix you are using and check the documentation to see what changes have been made.

 

I'm using the default horse skin by bioware, however, with some custom (HP, AC...) by GFF editor.



#35
WhiteTiger

WhiteTiger
  • Members
  • 479 messages

My last two thoughts on what could be triggering the problem:

 

1) An include file was changed and the script was recompiled.  The relevant script for this is x3_s3_horse as this handles the mounting (which is when the variable on the horse is transferred as a speed increase to the rider).  First look at the include (x3_inc_horse) to make sure no unintended changes are left in it, and then recompile x3_s3_horse.

 

Does the problem is that the constant HORSE_DEFAULT_SPEED_INCREASE is equivalent to 99?

 

In the #x3_inc_horse is setted "const int HORSE_DEFAULT_SPEED_INCREASE = 99".

 

If the value is 0 then it will use the HORSE_DEFAULT_SPEED_INCREASE constant value.


#36
WhiZard

WhiZard
  • Members
  • 1 204 messages

That constant is capped at +50 by the function that accesses it.  So the default speed applied is +50 if the variable is not set.


  • WhiteTiger aime ceci

#37
Proleric

Proleric
  • Members
  • 2 345 messages
To diagnose what the horse system is actually doing here, it would help to know what local variables are set on (a) the summoned horse (b) the mounted Paladin, as reported by dm_dumplocals.
  • WhiteTiger aime ceci

#38
WhiZard

WhiZard
  • Members
  • 1 204 messages

I found the problem.  The paladin horses have override scripts for their mounting and dismounting.  The mount script x3_s2_palmount (note that it is s2 not s3) doesn't pass the horse object on to the speed calculation.  Instead it passes OBJECT_INVALID.  To fix this edit x3_s2_palmount on line 29 and change it to:

 

HORSE_SupportIncreaseSpeed(oRider,GetSpellTargetObject());


  • Shadooow et WhiteTiger aiment ceci

#39
WhiteTiger

WhiteTiger
  • Members
  • 479 messages

The paladin horses have override scripts for their mounting and dismounting.  The mount script x3_s2_palmount (note that it is s2 not s3) doesn't pass the horse object on to the speed calculation.  Instead it passes OBJECT_INVALID.  To fix this edit x3_s2_palmount on line 29 and change it to:

 

HORSE_SupportIncreaseSpeed(oRider,GetSpellTargetObject());

 

Good job on the script, WhiZardThat was a great ...

 

Worked, thank you very much  :D :)  ;)  :lol: 



#40
WhiteTiger

WhiteTiger
  • Members
  • 479 messages

My notes: Caution if you set the variable to the script "x3_s3_palmount" between line 64 and 65.

SetLocalInt(oMount, "X3_HORSE_MOUNT_SPEED", X);

Because this code above will be set just one time. When you dismount, you get a new horse without the variable, however get the default speed again.

 

It works fine with blueprint edits.


  • Shadooow aime ceci

#41
WhiteTiger

WhiteTiger
  • Members
  • 479 messages

Is the paladin doing the summoning already hasted? I haven't looked at the relevant code, but if it uses the function I think it does, there's probably a stacking issue with haste.

 

Funky

 

Surely, the haste increase the horse speed (tested), but what was happening is that the variable wasn't taking effect on horse XD