Jump to content

porroone

Members
  • Posts

    237
  • Joined

  • Last visited

Everything posted by porroone

  1. The Cast() function doesnt return the spell cost, I am also having this issue with my flying mod, right now what I do is consume a % of the player's health and stamina until SKSE brings some function to do the trick. Also we need function to get enchanments, check for perks and all that.
  2. Well that could actually work, but you would probably have to script the whole thing. You can also create an array with all the objects you want your dragon to avoid, and make it constantly itinerate checking the distance of each element, that might do the trick.
  3. They clip because they use the translateTo function to move, happens the same with my flying mod, and no, it cannot be fixed.
  4. Yes unfortunetly I did, even some that you havent listed there like MoveDirZ ( this one did sound promising ) but nothing really works, its funny since the translate function should actually work, if you take a look at how dragons works, they basically move using that, thats why sometimes they clip through things (better than the alternative, which would be to bounce around like a rubber ball lol). Also I have no idea on why the pitch works but the yaw stays locked, seems like an intended bug from bethesda. As I am sure you know this, before 1.6 you weren't able to get the pitch or X-Plane while ridding a horse, so wouldnt be so strange they hardcoded something into the behavior to prevent people from actually making a rideable dragon, maybe im just being a bit paranoid here but I found a lot of strange limitations surrounding this project.
  5. You can actually play the events on the graph without CTD by using a var bool, the best thing I got is the dragon taking off and flying away, problem is it doesnt let you translate it when its in the bAnimationDriven state, which is the only way to get the flying animations working without CTD. I got kind of stuck there, but I see you are taking the same approach, maybe you can think of a better way. In order to play flyStartCruise or takeOff without CTD you need to SetAnimationVariableBool("bAnimationDriven",true), you can actually control the pitch while its flying but the yaw seems locked and there is no propper way to stop the dragon lol
  6. Yea I also have a dragon mount that can fly but doesnt play animations.. its not an easy task. Basically my idea is to add new idle animations to the dragon's behavior, but that isnt an easy task either, since the dragon isnt an actor meant to play. I managed to add new slot animations to a custom dragon behavior, but the animation start its quite hardcoded into the behavior, so the only possible solution is to create a whole new behavior with our custom animations. Fore said he would help me do this once he has his mod in a stable version (he has a mod that actually allows you to add new custom animations to actors, so I have to put my faith on him). Another way would be to directly create an skse module that handles that. I know for sure there are native functions to call animations like moveStart or flyStart, those arent defined in the behavior, so it needs to be somewhere in the engine. I know its possible but its not an easy task, I hope skse will put it easier in the future.
  7. Hey its good to see you here. One thing I dont get about the platform method is how do u get collisions, you can actually SetPosition inside things, so if im understanding this correctly, its constantly setting position to the platform while the horse moves along, what am I missing ? What attaches the horse to the platform? Does the platform moves first, then the horse, so if the platform gets inside something, it gets before the horse and thats why it collides?
  8. I think I already stated why it does has collisions, already took a look at the scripts, basically the player isnt moving, so its physics work as it was there, its the broom moving, thats why the player has collisions.
  9. There arent any behavior files in the BSA, just nifs and script.
  10. I dont know, its not about the animations also, setting position on a player has weird effects, and you wouldnt solve the collision issue.
  11. Yea, he is using the old plattaform method, if I do that in my script, all hell breaks loose.
  12. Hello again folks, with the tools I have now I am getting to some crazy s***, I could say im scripting my own behavior now, so as always I like to make my work public and get some input, I will leave my latest script here: Scriptname __PlyFly extends activeMagicEffect Armor property RingFF auto Armor property IceRingFF auto Armor property FireRingFF auto Armor property ShockRingFF auto Actor property Player auto import utility import form import game import debug import ObjectReference import Math import input import CombatStyle import spell import ActorBase imagespacemodifier property WarpDrive auto int property Forward = 0x11 auto int property Back = 0x1F auto int property Left = 0x1E auto int property Right = 0x20 auto int property Up = 0x39 auto int property Down = 0x1D auto int property slow = 0x2A auto int property fast = 0x38 auto int property keepit = 0x2E auto int property attackswitch = 0x13 auto int property attackleft = 0x100 auto int property attackright = 0x101 auto int property combatstart = 0x2C auto int property keepmoving = 0x2E auto spell righthand spell lefthand spell property explodePlayer auto int isfwdanim int sprintanimc int backanimc int leftanimc int rightanimc int keepgoing int attackaniml int attackanimr int attackanimd int attackmode int flyfwdup int flyfwddw float castingtime float ringmagicka float ringhealth float ringstamina float damage float anglez perk property NoFallDmg auto float bearing float elevation float speed float posx float posy float posz float imagetime bool flyup bool flydown bool idleplay bool combatplay bool removeperknow bool checkbearing float inctest float realtime Event OnEffectStart(Actor Player, Actor Caster) Player = GetPlayer() Player.AddPerk(NoFallDmg) Notification(Player.GetActorBase().GetCombatStyle()) SetIniFloat("fInAirFallingCharGravityMult:Havok",0) EnablePlayerControls() ringmagicka = Player.GetAV("Magicka") ringhealth = Player.GetAv("health") if Player.IsEquipped(RingFF) || Player.IsEquipped(FireRingFF) || Player.IsEquipped(IceRingFF) || Player.IsEquipped(ShockRingFF) RegisterForSingleUpdate(0.1) endIf endEvent Event OnUpdate() if IsKeyPressed(Keepit) Keepgoing += 1 if Keepgoing > 1 Keepgoing = 0 ReleaseKey(keepgoing) endIf endIF if Player.IsDead() DestroyRing() endIF if IsKeyPressed(Forward) || IsKeyPressed(Fast) || IsKeyPressed(Back) || IsKeyPressed(Left) || IsKeyPressed(Right) || IsKeyPressed(Up) || IsKeyPressed(Down) || IsKeyPressed(KeepIt) || keepGoing == 1 Player.SetAnimationVariableFloat("PitchManualOverride", Elevation) ToggleAnimAndMove() else Player.StopTranslation() ReleaseKey(keepgoing) endIf if (IsKeyPressed(attackleft) || IsKeyPressed(attackright)) && attackmode == 1 Combat() else attackaniml = 0 attackanimd = 0 attackanimr = 0 castingtime = 0 Player.InterruptCast() endIf if !IsKeyPressed(Right) && !IsKeyPressed(Forward) && !IsKeyPressed(Left) && !IsKeyPressed(Back) && !IsKeyPressed(Up) && !IsKeyPressed(Down) && !Keepgoing && !IsKeyPressed(attackleft) && !IsKeyPressed(attackright) if IsKeyPressed(attackswitch) attackmode += 1 if attackmode > 1 attackmode = 0 endIf endIf if attackmode == 1 holdKey(combatstart) if combatplay == false sendAnimationEvent(Player, "eFlyingCombatIdle") idleplay = false combatplay = true endif endif if attackmode == 0 if idleplay == false releaseKey(combatstart) sendAnimationEvent(Player, "eFlyingIdle") combatplay = false idleplay = true endif endif isfwdanim = 0 sprintanimc = 0 backanimc = 0 leftanimc = 0 rightanimc = 0 attackaniml = 0 attackanimd = 0 attackanimr = 0 flyup = false flydown = false Player.StopTranslation() Speed = 0 else idleplay = false combatplay = false endIf RegisterForSingleUpdate(0.1) endEvent function Combat() if IsKeyPressed(attackleft) && !IsKeyPressed(attackright) && attackmode == 1 && Player.GetAV("Magicka") > 10 && Player.GetEquippedSpell(0) righthand = Player.GetEquippedSpell(0) if attackaniml == 0 sendAnimationEvent(Player,"eFlyingAttackRight") attackaniml = 1 endIf if castingtime == 0 castingtime = GetCurrentRealTime() + righthand.GetCastTime() endIf if castingtime < GetCurrentRealTime() righthand.Cast(Player) Player.DamageActorValue("Magicka",ringmagicka/75) castingtime = 0 endIf endIf if !IsKeyPressed(attackleft) && IsKeyPressed(attackright) && attackmode == 1 && Player.GetAV("Magicka") > 10 && Player.GetEquippedSpell(1) lefthand = Player.GetEquippedSpell(1) if attackanimr == 0 sendAnimationEvent(Player,"eFlyingAttackLeft") attackanimr = 1 endIf if castingtime == 0 castingtime = GetCurrentRealTime() + lefthand.GetCastTime() endIf if castingtime < GetCurrentRealTime() lefthand.Cast(Player) Player.DamageActorValue("Magicka",ringmagicka/75) castingtime = 0 endIf endIf if IsKeyPressed(attackright) && IsKeyPressed(attackleft) && attackmode == 1 && Player.GetEquippedSpell(0) && Player.GetEquippedSpell(1) && Player.GetAv("Magicka") > 10 righthand = Player.GetEquippedSpell(1) lefthand = Player.GetEquippedSpell(0) if castingtime == 0 if righthand.GetCastTime() == lefthand.GetCastTime() castingtime = GetCurrentRealTime() + righthand.GetCastTime() else castingtime = GetCurrentRealTime() + ((righthand.GetCastTime()+ lefthand.GetCastTime())/2) endIf endIf if castingtime < GetCurrentRealTime() righthand.Cast(Player) lefthand.Cast(Player) Player.DamageActorValue("Magicka",ringmagicka/45) castingtime = 0 endIf if attackanimd == 0 sendAnimationEvent(Player,"eFlyingAttackDual") attackanimd = 1 attackaniml = 0 endIf else attackanimd = 0 attackanimr = 0 attackaniml = 0 endIf if Player.GetAV("Magicka") < 10 DestroyRing() endIf endFunction Function ToggleAnimAndMove() posx = Player.GetPositionX() posy = Player.GetPositionY() bearing = floor(Player.GetAngleZ()) elevation = Player.GetAngleX() posz = Player.GetPositionZ() if IsKeyPressed(Forward) || Keepgoing == 1 if Keepgoing == 1 HoldKey(keepmoving) endIF If IsKeyPressed(slow) speed = 400 elseif isfwdanim == 0 && checkbearing == true && flyfwdup == 0 && flyfwddw == 0 && !IsKeyPressed(attackright) && !IsKeyPressed(attackleft) && !IsKeyPressed(Fast) && !IsKeyPressed(Back) && !IsKeyPressed(Left) && !IsKeyPressed(Right) && !IsKeyPressed(Up) && !IsKeyPressed(Down) sendAnimationEvent(Player,"eFlyingForward") speed = 1000 sprintanimc = 0 isfwdanim = 1 elseif sprintanimc == 0 && !IsKeyPressed(attackright) && !IsKeyPressed(attackleft) && IsKeyPressed(Fast) && !IsKeyPressed(Back) && !IsKeyPressed(Left) && !IsKeyPressed(Right) && !IsKeyPressed(Up) && !IsKeyPressed(Down) sendAnimationEvent(Player,"eFlyingSprint") speed = 2000 isfwdanim = 0 sprintanimc = 1 elseif IsKeyPressed(attackright) || IsKeyPressed(attackleft) speed = 1000 endif if Elevation > 10 || Elevation < -10 if Elevation > 10 && flyfwdup == 0 sendAnimationEvent(Player,"eFlyingForwardUp") flyfwdup = 1 flyfwddw = 0 isfwdanim = 0 EndIf if Elevation < -10 && flyfwddw == 0 sendAnimationEvent(Player,"eFlyingForwardDown") flyfwddw = 0 flyfwdup = 1 isfwdanim = 0 EndIf Else flyfwdup = 0 flyfwddw = 0 EndIf if checkbearing == false anglez = floor(Player.GetAngleZ()) checkbearing = true endIf if checkbearing == true && flyfwdup == 0 && flyfwddw == 0 if anglez > bearing + 20 sendAnimationEvent(Player,"eFlyingForwardLeft") checkbearing = false isfwdanim = 0 endif if anglez < bearing - 20 sendAnimationEvent(Player,"eFlyingForwardRight") checkbearing = false isfwdanim = 0 endIf endIf posx += sin(bearing)*(speed*5) posy += cos(bearing)*(speed*5) posz -= sin(elevation)*(speed*5) else isfwdanim = 0 sprintanimc = 0 imagetime = 0 checkbearing = false endif if IsKeyPressed(Back) If IsKeyPressed(slow) speed = 200 elseif backanimc == 0 && !IsKeyPressed(attackright) && !IsKeyPressed(attackleft) && !IsKeyPressed(Forward) && !IsKeyPressed(Left) && !IsKeyPressed(Right) && !IsKeyPressed(Up) && !IsKeyPressed(Down) sendAnimationEvent(Player,"eFlyingBack") speed = 600 backanimc = 1 elseif IsKeyPressed(attackright) || IsKeyPressed(attackleft) speed = 600 endif posx -= sin(bearing)*(speed*5) posy -= cos(bearing)*(speed*5) posz += sin(elevation)*(speed*5) else backanimc = 0 endif if IsKeyPressed(Left) If IsKeyPressed(slow) speed = 200 elseif leftanimc == 0 && !IsKeyPressed(attackright) && !IsKeyPressed(attackleft) && !IsKeyPressed(Forward) && !IsKeyPressed(Back) && !IsKeyPressed(Right) && !IsKeyPressed(Up) && !IsKeyPressed(Down) sendAnimationEvent(Player,"eFlyingLeft") leftanimc = 1 speed = 600 elseif IsKeyPressed(attackright) || IsKeyPressed(attackleft) speed = 600 endif posx += sin(bearing - 90)*(speed*5) posy += cos(bearing - 90)*(speed*5) posz -= sin(elevation)*(speed*5) else leftanimc = 0 endif if IsKeyPressed(Right) If IsKeyPressed(slow) speed = 200 elseif rightanimc == 0 && !IsKeyPressed(attackright) && !IsKeyPressed(attackleft) && !IsKeyPressed(Forward) && !IsKeyPressed(Left) && !IsKeyPressed(Back) && !IsKeyPressed(Up) && !IsKeyPressed(Down) sendAnimationEvent(Player,"eFlyingRight") rightanimc = 1 speed = 600 elseif IsKeyPressed(attackright) || IsKeyPressed(attackleft) speed = 600 endif posx += sin(bearing + 90)*(speed*5) posy += cos(bearing + 90)*(speed*5) posz -= sin(elevation)*(speed*5) else rightanimc = 0 endif if IsKeyPressed(Up) if flyup == false && !IsKeyPressed(attackright) && !IsKeyPressed(attackleft) && !IsKeyPressed(Right) && !IsKeyPressed(Forward) && !IsKeyPressed(Left) && !IsKeyPressed(Back) && !IsKeyPressed(Down) sendAnimationEvent(Player,"eFlyingUp") flyup = true endIf If IsKeyPressed(slow) speed = 600 else speed = 1000 endif posz += speed*5 else flyup = false endif if IsKeyPressed(Down) if flydown == false && !IsKeyPressed(attackright) && !IsKeyPressed(attackleft) && !IsKeyPressed(Up) && !IsKeyPressed(Right) && !IsKeyPressed(Forward) && !IsKeyPressed(Left) && !IsKeyPressed(Back) sendAnimationEvent(Player,"eFlyingDown") flydown = true endIf If IsKeyPressed(slow) speed = 600 else speed = 1000 endif posz -= speed*5 else flydown = false endif Player.TranslateTo(posx,posy,posz,bearing,0,elevation,speed,1) endFunction Function DestroyRing() Debug.Notification("The ring explodes consumed by flames.") Player.DamageActorValue("Health",ringhealth/2) removePerkNow = true ReleaseKey(combatstart) explodePlayer.Cast(Player) Player.StopTranslation() if Player.IsEquipped(RingFF) Player.RemoveItem(RingFF) EndIf if Player.IsEquipped(FireRingFF) Player.RemoveItem(FireRingFF) EndIf if Player.IsEquipped(IceRingFF) Player.RemoveItem(IceRingFF) EndIf if Player.IsEquipped(ShockRingFF) Player.RemoveItem(ShockRingFF) endIf endFunction Event OnEffectFinish(Actor Player, Actor Caster) Player.StopTranslation() UnregisterForUpdate() SetIniFloat("fInAirFallingCharGravityMult:Havok",1.35) ReleaseKey(CombatStart) sendAnimationEvent(Player,"moveStop") if removeperknow == false RemoveFallPerk() Else Player.RemovePerk(NoFallDmg) endIf endEvent Function RemoveFallPerk() Debug.Notification("You have 5 seconds of no falling damage.") Wait(5) Player.RemovePerk(NoFallDmg) endFunction I am looking for somebody to join me get this better, with the knowledge I have now, the only thing I lack is time to implement it.
  13. Well then you seem to know more about theru's work than I do hehe, I just gave hope too soon since in any case it didnt serve my purpose very much. In any case I didnt say HBT was worthless, in terms of exporting hkx, its pretty useful stuff, but in any case I recommend you to use HKXCMD, its based on those tools but more adapted to skyrim.
  14. Well you did everything right till the point when you start using Havok behavior tool. Theru method just doesnt work, free hbt just doesnt work with skyrim, it was kind of useful actually since its what "The Hologram" used to create hkxcmd, but you cannot create a new compatible behavior with the tool. Maybe you could sort something out, then export it to XML and tweak it a bit so it works with skyrim, but I dont know. In terms of behavior editing, the best I can do is add IDLE animations and since there is already a mod that does that (FNIS), I use that instead.
  15. Hello there, I have studied the behavior files in XML, which is the only way to edit them, and well, havent u wonder why nobody has done this before ? hehe The first problem you will encounter is understanding the code, once you transformed the behavior to xml, you get like 40k lines of code (depending on the behavior) but its usually on the 5 number figure. Then there are events like moveStart, which triggers the running animation on player, that dont seem to be defined on the behavior, the event is there but the path to the animation isnt, so my guess is that kind of animation is called from somewhere else. Then if you want to use a completly new skeleton... its not the NIF, its the havok skeleton you have to worry about, I have no idea on how to even edit it, to make for example a player with animated wings or something. You are getting yourself into some hard stuff, but dont loose hope, a lot have been achieved regarding behavior and animations this past few months so I still have my hopes on somebody who will figure out more stuff.
  16. Ok there are events on the graph that no matter how much u try to call them, they will either not work or crash your game, that is because those events are called from other events inside the behavior, and I really dont know a way around it ( I am trying something similar aswell with my dragon mount project ). With my script I do set the direction but if you check closely the character doesnt rotate itself, it stays always on the same angle, its the position that changes depending on the camera angle, so If I look up the character will move up at the same time it moves forward.
  17. Ok, neither the translation rotation or the SetAngle function will rotate your character, so forget about that, not happening. Then attackstart is an event that leads to other events which probably carries no animation, you need to try something like AttackStartLeftHand. You can find all the animation events defined on the CK's animation tab, go to character and under each action there are events defined, like ActionMoveStart ->anim-> moveStart. This last one is the one you need to call on the sendAnimationEvent.
  18. Yes it could definetly be of use. I havent downloaded the latest beta but I am pretty sure to allow mounted combat they had to unlock the x-axis of mounts. Still there is the issue of playing the animations you want without the game crashing.
  19. Hello folks, long time no see. I thought I would share my latest script with you, its working with idle events now and skse, I even added combat: Scriptname __PlyFly extends activeMagicEffect Armor property RingFF auto Armor property IceRingFF auto Armor property FireRingFF auto Armor property ShockRingFF auto Actor property Player auto import utility import form import game import debug import ObjectReference import Math import input import CombatStyle import spell int property Forward = 0x11 auto int property Back = 0x1F auto int property Left = 0x1E auto int property Right = 0x20 auto int property Up = 0x39 auto int property Down = 0x1D auto int property slow = 0x2A auto int property fast = 0x38 auto int property keepit = 0x2E auto int property attackswitch = 0x13 auto int property attackleft = 0x100 auto int property attackright = 0x101 auto int property combatstart = 0x2C auto int property keepmoving = 0x2E auto spell righthand spell lefthand spell property explodePlayer auto int isfwdanim int sprintanimc int backanimc int leftanimc int rightanimc int keepgoing int attackaniml int attackanimr int attackmode float ringmagicka float ringhealth float ringstamina float damage perk property NoFallDmg auto float bearing float elevation float speed float posx float posy float posz bool flyup bool flydown bool idleplay bool combatplay bool removeperknow Event OnEffectStart(Actor Player, Actor Caster) Player = GetPlayer() Player.AddPerk(NoFallDmg) SetIniFloat("fInAirFallingCharGravityMult:Havok",0) EnablePlayerControls() ringmagicka = Player.GetAV("Magicka") ringhealth = Player.GetAv("health") if Player.IsEquipped(RingFF) || Player.IsEquipped(FireRingFF) || Player.IsEquipped(IceRingFF) || Player.IsEquipped(ShockRingFF) while Player.IsEquipped(RingFF) || Player.IsEquipped(FireRingFF) || Player.IsEquipped(IceRingFF) || Player.IsEquipped(ShockRingFF) Fly() endWhile endIf endEvent function Fly() if IsKeyPressed(Keepit) Keepgoing += 1 if Keepgoing > 1 Keepgoing = 0 ReleaseKey(keepgoing) endIf endIF if IsKeyPressed(Forward) || IsKeyPressed(Fast) || IsKeyPressed(Back) || IsKeyPressed(Left) || IsKeyPressed(Right) || IsKeyPressed(Up) || IsKeyPressed(Down) || IsKeyPressed(KeepIt) || keepGoing == 1 ToggleAnimAndMove() else Player.StopTranslation() ReleaseKey(keepgoing) endIf if IsKeyPressed(attackleft) || IsKeyPressed(attackright) && attackmode == 1 Combat() else attackaniml = 0 attackanimr = 0 Player.InterruptCast() endIf if !IsKeyPressed(Right) && !IsKeyPressed(Forward) && !IsKeyPressed(Left) && !IsKeyPressed(Back) && !IsKeyPressed(Up) && !IsKeyPressed(Down) && !Keepgoing && !IsKeyPressed(attackleft) && !IsKeyPressed(attackright) if IsKeyPressed(attackswitch) attackmode += 1 if attackmode > 1 attackmode = 0 endIf endIf if attackmode == 1 holdKey(combatstart) if combatplay == false sendAnimationEvent(Player, "zFNISc100") idleplay = false combatplay = true endif endif if attackmode == 0 if idleplay == false releaseKey(combatstart) sendAnimationEvent(Player, "zFNISc090") combatplay = false idleplay = true endif endif isfwdanim = 0 sprintanimc = 0 backanimc = 0 leftanimc = 0 rightanimc = 0 flyup = false flydown = false Player.StopTranslation() Speed = 0 else idleplay = false combatplay = false endIf endFunction function Combat() if IsKeyPressed(attackleft) && attackmode == 1 && Player.GetAV("Magicka") > 10 lefthand = Player.GetEquippedSpell(0) lefthand.Cast(Player) Notification(lefthand.GetCostliestEffectIndex()) Player.DamageActorValue("Magicka",ringmagicka/75) if attackaniml == 0 sendAnimationEvent(Player,"zFNISc098") attackaniml = 1 endIf endIf if IsKeyPressed(attackright) && attackmode == 1 && Player.GetEquippedSpell(0) && Player.GetEquippedSpell(1) && Player.GetAv("Magicka") > 10 righthand = Player.GetEquippedSpell(1) righthand.Cast(Player) lefthand = Player.GetEquippedSpell(0) lefthand.Cast(Player) Player.DamageActorValue("Magicka",ringmagicka/45) if attackanimr == 0 sendAnimationEvent(Player,"zFNISc099") attackanimr = 1 attackaniml = 0 endIf endIf if Player.GetAV("Magicka") < 10 DestroyRing() endIf endFunction Function ToggleAnimAndMove() posx = Player.GetPositionX() posy = Player.GetPositionY() bearing = Player.GetAngleZ() elevation = Player.GetAngleX() posz = Player.GetPositionZ() if IsKeyPressed(Forward) || Keepgoing == 1 if Keepgoing == 1 HoldKey(keepmoving) endIF If IsKeyPressed(slow) speed = 400 elseif isfwdanim == 0 && !IsKeyPressed(attackright) && !IsKeyPressed(attackleft) && !IsKeyPressed(Fast) && !IsKeyPressed(Back) && !IsKeyPressed(Left) && !IsKeyPressed(Right) && !IsKeyPressed(Up) && !IsKeyPressed(Down) sendAnimationEvent(Player,"zFNISc092") speed = 1000 sprintanimc = 0 isfwdanim = 1 elseif sprintanimc == 0 && !IsKeyPressed(attackright) && !IsKeyPressed(attackleft) && IsKeyPressed(Fast) && !IsKeyPressed(Back) && !IsKeyPressed(Left) && !IsKeyPressed(Right) && !IsKeyPressed(Up) && !IsKeyPressed(Down) sendAnimationEvent(Player,"zFNISc095") speed = 2000 isfwdanim = 0 sprintanimc = 1 elseif IsKeyPressed(attackright) || IsKeyPressed(attackleft) speed = 1000 endif posx += sin(bearing)*speed posy += cos(bearing)*speed posz -= sin(elevation)*speed else isfwdanim = 0 sprintanimc = 0 endif if IsKeyPressed(Back) If IsKeyPressed(slow) speed = 200 elseif backanimc == 0 && !IsKeyPressed(attackright) && !IsKeyPressed(attackleft) && !IsKeyPressed(Forward) && !IsKeyPressed(Left) && !IsKeyPressed(Right) && !IsKeyPressed(Up) && !IsKeyPressed(Down) sendAnimationEvent(Player,"zFNISc091") speed = 600 backanimc = 1 elseif IsKeyPressed(attackright) || IsKeyPressed(attackleft) speed = 600 endif posx -= sin(bearing)*speed posy -= cos(bearing)*speed posz += sin(elevation)*speed else backanimc = 0 endif if IsKeyPressed(Left) If IsKeyPressed(slow) speed = 200 elseif leftanimc == 0 && !IsKeyPressed(attackright) && !IsKeyPressed(attackleft) && !IsKeyPressed(Forward) && !IsKeyPressed(Back) && !IsKeyPressed(Right) && !IsKeyPressed(Up) && !IsKeyPressed(Down) sendAnimationEvent(Player,"zFNISc093") leftanimc = 1 speed = 600 elseif IsKeyPressed(attackright) || IsKeyPressed(attackleft) speed = 600 endif posx += sin(bearing - 90)*speed posy += cos(bearing - 90)*speed posz -= sin(elevation)*speed else leftanimc = 0 endif if IsKeyPressed(Right) If IsKeyPressed(slow) speed = 200 elseif rightanimc == 0 && !IsKeyPressed(attackright) && !IsKeyPressed(attackleft) && !IsKeyPressed(Forward) && !IsKeyPressed(Left) && !IsKeyPressed(Back) && !IsKeyPressed(Up) && !IsKeyPressed(Down) sendAnimationEvent(Player,"zFNISc094") rightanimc = 1 speed = 600 elseif IsKeyPressed(attackright) || IsKeyPressed(attackleft) speed = 600 endif posx += sin(bearing + 90)*speed posy += cos(bearing + 90)*speed posz -= sin(elevation)*speed else rightanimc = 0 endif if IsKeyPressed(Up) if flyup == false && !IsKeyPressed(attackright) && !IsKeyPressed(attackleft) && !IsKeyPressed(Right) && !IsKeyPressed(Forward) && !IsKeyPressed(Left) && !IsKeyPressed(Back) && !IsKeyPressed(Down) sendAnimationEvent(Player,"zFNISc096") flyup = true endIf If IsKeyPressed(slow) speed = 600 else speed = 1000 endif posz += speed else flyup = false endif if IsKeyPressed(Down) if flydown == false && !IsKeyPressed(attackright) && !IsKeyPressed(attackleft) && !IsKeyPressed(Up) && !IsKeyPressed(Right) && !IsKeyPressed(Forward) && !IsKeyPressed(Left) && !IsKeyPressed(Back) sendAnimationEvent(Player,"zFNISc097") flydown = true endIf If IsKeyPressed(slow) speed = 600 else speed = 1000 endif posz -= speed else flydown = false endif Player.TranslateTo(posx,posy,posz,bearing,0,elevation,speed,1) endFunction Function DestroyRing() Debug.Notification("The ring explodes consumed by flames.") Player.DamageActorValue("Health",ringhealth/2) removePerkNow = true ReleaseKey(combatstart) explodePlayer.Cast(Player) Player.StopTranslation() if Player.IsEquipped(RingFF) Player.RemoveItem(RingFF) EndIf if Player.IsEquipped(FireRingFF) Player.RemoveItem(FireRingFF) EndIf if Player.IsEquipped(IceRingFF) Player.RemoveItem(IceRingFF) EndIf if Player.IsEquipped(ShockRingFF) Player.RemoveItem(ShockRingFF) endIf endFunction Event OnEffectFinish(Actor Player, Actor Caster) Player.StopTranslation() SetIniFloat("fInAirFallingCharGravityMult:Havok",1.35) ReleaseKey(CombatStart) sendAnimationEvent(Player,"moveStop") if removeperknow == false RemoveFallPerk() Else Player.RemovePerk(NoFallDmg) endIf endEvent Function RemoveFallPerk() Debug.Notification("You have 5 seconds of no falling damage.") Wait(5) Player.RemovePerk(NoFallDmg) endFunction And here is a video of what all this bunch of code does lol: http://www.youtube.com/watch?v=qGnu8vs9v-s
  20. Thanks a lot for your continuous support from day 1 hehe, about making the game calculate bigger distances... it is possible to do raising the uGridsToLoad to 7,9 or if you have a hell of a computer to 11, buf I found out that raising the ugrids increase the chance of the T animations, render issues I really dont understand.
  21. Well if it follows this path, I dont see much future. Its kind of sad that you put a lot of work on creating a dungeon or new landscape, or scripting, or even creating new animations, to see they may only last a day on the top list, when 5 month's old texture mods are still on top. It doesnt make much sense to me.
  22. So you spend your whole playtime in skyrim trying to make your char/game look better? whats the point?
  23. You sir, have the answer to all our problems. I will be really happy with that setup.
  24. Well for me its easier to code than to mesh world and dungeons, its something I have been doing for a long time.
  25. Actually I already checked your work and I think its the kind of stuff people should be doing, since at least for me, its what keeps me playing (new landscapes, dungeons, quests..), so keep up the good work, and if you need any help with scripted events I am here to assist :)
×
×
  • Create New...