ZeroCore Posted June 28, 2014 Share Posted June 28, 2014 I have a question that I can't seem to find the answer to by poking around the CK wiki or the forum; is it possible to use a script to slow a character's fall to the point where they appear to be gliding, or at least falling very slowly? I had an idea for what is essentially a hang glider mod, or the magic equivalent of it, where the player falls very slowly, and then either uses a specialized teleport spell, or natural wind currents over mountains and such (as in actual real-world gliding) to glide around Skyrim. I know in Oblivion there was a scripting function that let you reset the player's fall damage, which also nullified their velocity, and if repeated, allowed for a gliding/parachute effect. I was wondering if there's some similar function that can be called in skyrim in order to achieve the same effect. Link to comment Share on other sites More sharing options...
Mattiewagg Posted June 28, 2014 Share Posted June 28, 2014 There is a script function to slow the fall speed. Utility.SetIniFloat("fInAirFallingCharGravityMult:Havok", 0) Utility.SetIniFloat("fInAirFallingCharGravityMult:Havok", 1.35) ;<----- This is default value I borrowed that script from Ceruulean on the Grimoire page. You should note that it won't reapply the slow-falling if the player closes to desktop and restarts while flying. Ceruulean's example was: While Game.GetPlayer().HasEffect(ThisEffect) Utility.SetIniFloat("fInAirFallingCharGravityMult:Havok", 0.6) ;Just an example, I don't know how slow this would be EndWhile You would need to set a property for ThisEffect, pointing to an effect, so when the player has an effect/spell (you'll need to create this) then they'll fall very slowly. I hope that helps. You should refer to the Grimoire page 5 for more info. Link to comment Share on other sites More sharing options...
ZeroCore Posted June 28, 2014 Author Share Posted June 28, 2014 There is a script function to slow the fall speed. Utility.SetIniFloat("fInAirFallingCharGravityMult:Havok", 0) Utility.SetIniFloat("fInAirFallingCharGravityMult:Havok", 1.35) ;<----- This is default value I borrowed that script from Ceruulean on the Grimoire page. You should note that it won't reapply the slow-falling if the player closes to desktop and restarts while flying. Ceruulean's example was: While Game.GetPlayer().HasEffect(ThisEffect) Utility.SetIniFloat("fInAirFallingCharGravityMult:Havok", 0.6) ;Just an example, I don't know how slow this would be EndWhile You would need to set a property for ThisEffect, pointing to an effect, so when the player has an effect/spell (you'll need to create this) then they'll fall very slowly. I hope that helps. You should refer to the Grimoire page 5 for more info. Much appreciated. ^_^ I'm wondering something; can the havok gravity value be set to a negative to enable "upward falling", or would I have to use my original idea of a teleport spell that moves the player a certain distance upward? Link to comment Share on other sites More sharing options...
Mattiewagg Posted June 28, 2014 Share Posted June 28, 2014 There is a script function to slow the fall speed. Utility.SetIniFloat("fInAirFallingCharGravityMult:Havok", 0) Utility.SetIniFloat("fInAirFallingCharGravityMult:Havok", 1.35) ;<----- This is default value I borrowed that script from Ceruulean on the Grimoire page. You should note that it won't reapply the slow-falling if the player closes to desktop and restarts while flying. Ceruulean's example was: While Game.GetPlayer().HasEffect(ThisEffect) Utility.SetIniFloat("fInAirFallingCharGravityMult:Havok", 0.6) ;Just an example, I don't know how slow this would be EndWhile You would need to set a property for ThisEffect, pointing to an effect, so when the player has an effect/spell (you'll need to create this) then they'll fall very slowly. I hope that helps. You should refer to the Grimoire page 5 for more info. Much appreciated. ^_^ I'm wondering something; can the havok gravity value be set to a negative to enable "upward falling", or would I have to use my original idea of a teleport spell that moves the player a certain distance upward? Test it out yourself. :thumbsup: I imagine it could, but if it doesn't then you'll want to teleport the player upwards. If you want to give them more of a gliding look, then you might want to try this script. Link to comment Share on other sites More sharing options...
ZeroCore Posted June 28, 2014 Author Share Posted June 28, 2014 There is a script function to slow the fall speed. Utility.SetIniFloat("fInAirFallingCharGravityMult:Havok", 0) Utility.SetIniFloat("fInAirFallingCharGravityMult:Havok", 1.35) ;<----- This is default value I borrowed that script from Ceruulean on the Grimoire page. You should note that it won't reapply the slow-falling if the player closes to desktop and restarts while flying. Ceruulean's example was: While Game.GetPlayer().HasEffect(ThisEffect) Utility.SetIniFloat("fInAirFallingCharGravityMult:Havok", 0.6) ;Just an example, I don't know how slow this would be EndWhile You would need to set a property for ThisEffect, pointing to an effect, so when the player has an effect/spell (you'll need to create this) then they'll fall very slowly. I hope that helps. You should refer to the Grimoire page 5 for more info. Much appreciated. ^_^ I'm wondering something; can the havok gravity value be set to a negative to enable "upward falling", or would I have to use my original idea of a teleport spell that moves the player a certain distance upward? Test it out yourself. :thumbsup: I imagine it could, but if it doesn't then you'll want to teleport the player upwards. If you want to give them more of a gliding look, then you might want to try this script. That script seems like it'd work best for some sort of grappling hook moreso than anythign else. It'd be interesting to try; fire an arrow with a magic effect and then suddently teleport to where it lands. Link to comment Share on other sites More sharing options...
Mattiewagg Posted June 28, 2014 Share Posted June 28, 2014 That script seems like it'd work best for some sort of grappling hook moreso than anythign else. It'd be interesting to try; fire an arrow with a magic effect and then suddently teleport to where it lands. Maybe so. I think to do what you would want, you'd need to create a script to attach to the arrow. It would have to track where the arrow is, check when it lands, and then teleport the player to the reference. I'm not entirely sure how to do that, but somebody else might know how. Link to comment Share on other sites More sharing options...
ZeroCore Posted June 29, 2014 Author Share Posted June 29, 2014 (edited) That script seems like it'd work best for some sort of grappling hook moreso than anythign else. It'd be interesting to try; fire an arrow with a magic effect and then suddently teleport to where it lands. Maybe so. I think to do what you would want, you'd need to create a script to attach to the arrow. It would have to track where the arrow is, check when it lands, and then teleport the player to the reference. I'm not entirely sure how to do that, but somebody else might know how. I actually might be able to reverse-engineer some script for that; Auriel's Bow, in Dawnguard, has a sunlight explosion effect whenever its arrows hit ANYTHING, regardless of what it is. I could use a similar thing to make an effect-less explosion, get the coordinates of said explosion, and then call that script in order to have the caster (in this case, the player that fired the arrow) move to said location. Edited June 29, 2014 by ZeroCore Link to comment Share on other sites More sharing options...
Recommended Posts