Jump to content

Proof that a player can fly in Skyrim well may be more like swimming


hex_ratt

Recommended Posts

Well, to be honest, I am only looking for a playable Dragon mod. Mounts don't appeal to me. But I can definitely understand if it does for you. Are you still trying to finish your playable Dragon mod? Or are you only focusing on a Dragon mount?

 

Thanks for the quick reply, though.

Link to comment
Share on other sites

  • Replies 304
  • Created
  • Last Reply

Top Posters In This Topic

I never intended for a playable dragon mod, you can actually do that with console commands, besides while using the current behavior graph of the dragon, you will most certainly suffer random ctds, so the idea is create a new behavior graph, based on the horse's behavior and using the dragon's animation, untill somebody does that, either playing as a dragon or mounting one will be tricky, there are so many things that could go wrong, you need to be in a landing point in order to take off else it might crash (or it might not), point is in order to get a proper flying dragon the behavior needs to be redesigned.
Link to comment
Share on other sites

So far, as I said before, Hayk has gotten a very solid playable Dragon mod already working without the need of opening the console even once. Still has to use the trick of going into first person to start/stop flying but apart from that, it works perfectly, I suffered from little to no crashes and you can take-off and land anywhere you please using that method. It's very easy to use.

 

Well then, good luck on your Dragon mount mod, but I'll go to Hayk's Weredragon comments section for updates on his progress from here on.

Hope you make a break-through in future.

Link to comment
Share on other sites

Yea and using the current dragon behavior that is what you can do, ActionJump and ActionSneak, tried all the other, none works, thats when I figured that there is no way to do this without creating a new behavior graph, it doesnt matter where you go to get comments from, im telling you a fact, but hey if somebody proves me wrong ill be very happy because it means there is an easier way to do what im trying to do.
Link to comment
Share on other sites

The actions and animations aren't a problem for the Weredragon mod, the main focus is making it possible to change height, which Hayk has just completed and will hopefully upload the new version in the next few days. Once that's done, the mod will pretty much be complete and you'll be able to do everything an NPC Dragon can do! That's all I'm looking for.
Link to comment
Share on other sites

Well guys you two are right actually.lol.It was around a month or two ago that I found out the need of the new behaviors.But for creating them Havok Behavior tool is needed which is not free. Though one of the earliest version of that tool was given free. I tried it, however it do not supports skyrim. And I began to find other ways and I've found this thread.And learned that it can be done through scripting.And so as far as I have done with scripting I got a lot success.

So I think that making a playable flying mod is possible with scripting but it could be much more easier with Havok Behavior Tool.

And anyway it would be nice of Havok team or Beth to release a free tool for editing behaviors (at least only skyrim ones) cause if they not it will mean that TES modding is partially destroyed cause it is impossible to create an all new creature\actor from 0 without behavior tool.

Link to comment
Share on other sites

Hey Porone. Thanks for posting your script. I added it to the Bat Form script I'm working on and modified it to work as such. Although, that's the problem it isn't working :P

 

The following script compiles but the only effects that take place are those of which were already part of my mod. Any tips? Thanks man. Great job.

 

Scriptname DV_BatFormTraits extends ActiveMagicEffect  

import Game
import Sound
import Form
import Debug
import Utility
import GlobalVariable
import Actor
Actor Property Player Auto
Spell Property DVampireBatForm Auto
Spell Property DVampireBatFormToggle Auto
Idle Property SwimStart Auto
Idle Property swimStop Auto
Idle Property JumpFall Auto
bool Property bIsOn Auto
bool Property bVal Auto
EffectShader Property DVCelerityShadow Auto
float bearing
float elevation
float speed
float posx
float posy
float posz
float move
float dtime



Event OnEffectStart(Actor Target, Actor Caster)

ObjectReference PCVamp = GetPlayer()

if !Caster.HasSpell(DVampireBatFormToggle)	
           Caster.AddSpell(DVampireBatFormToggle)
		Caster.SetAlpha(1)
		Utility.SetIniFloat("fInAirFallingCharGravityMult:Havok",0)
           DVCelerityShadow.Play(Caster)			
		Game.GetPlayer().SetAllowFlying()
           Game.ForceThirdPerson()
		Utility.Wait(1.0)
		SendAnimationEvent(PCVamp ,"JumpFall")
    while !Caster.HasSpell(DVampireBatFormToggle)
               Fly()
       endWhile
		;bVal = True
elseif Caster.HasSpell(DVampireBatFormToggle)
           Caster.RemoveSpell(DVampireBatFormToggle)
		Utility.SetIniFloat("fInAirFallingCharGravityMult:Havok",1.35)
		Caster.SetAlpha(1)
		DVCelerityShadow.Stop(Caster)
		Game.GetPlayer().SetAllowFlying()
		Utility.Wait(1.0)
		SendAnimationEvent(PCVamp ,"JumpFall")
		;bVal = False
endif

;Toggle()

EndEvent

Event OnUpdate()              
       if Player.IsRunning() && move == 1   
               debug.notification("am i running")
               Fly()
       endIf
endEvent
Event OnTranslationComplete()
       move = 0
       Fly()
endEvent

function Fly()
       if Player.IsRunning()
               posx = Player.GetPositionX()
               posy = Player.GetPositionY()
               posz = Player.GetPositionZ()
               bearing = Player.GetAngleZ()
               elevation = Player.GetAngleX()

               speed = 1000

               if bearing < 90 
                       posx += (bearing)*speed
                       posy += (90 - bearing)*speed
               elseif bearing > 90 && bearing < 180
                       posx +=(180 - bearing)*speed
                       posy +=(90 - bearing)*speed

               elseif bearing > 180 && bearing < 270
                       posx += (180 - bearing)*speed
                       posy += (bearing - 270)*speed
                       
               elseif bearing > 270
                       posx += (bearing - 360)*speed
                       posy += (bearing - 270)*speed
                       
               endif
               posz = Player.GetPositionZ() - (elevation*speed)
               Player.PlayIdle(JumpFall)
               Player.TranslateTo(posx,posy,posz,Player.GetAngleX(),Player.GetAngleY(),Player.GetAngleZ(),speed,1)
               RegisterForSingleUpdate(0.2)
               if Player.IsSprinting()
                       move = 0
               endIf
               else
                       Player.StopTranslation()
       endIf
endFunction

Function Toggle()

if (bVal == True)
	bIsOn = True
elseif (bVal == False)
	bIsOn = False
endif

EndFunction

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...