Jump to content

jarari

Premium Member
  • Posts

    2
  • Joined

  • Last visited

Nexus Mods Profile

About jarari

Profile Fields

  • Country
    Korea, South

jarari's Achievements

Newbie

Newbie (1/14)

  • First Post
  • Conversation Starter
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

0

Reputation

  1. Hey, what's up :smile: So what I've been doing lately is creating a weapon that allows you to perform the Doom Fist's moveset in Fallout 4, specifically the Rocket Punch and Rising Uppercut. I could somehow achieve this using F4SE, CommonLibF4 and some Papyrus scripts, and I kinda know that this topic quite sounds like some kiddo whining for a Overwatch mod, so here's a video demonstrating what I've got so far. Everything's working except that it has no animation yet. I've tried making one by myself, but there were some problems. Problem 1. Sound glitch Since I want this mod to be in a playable, balanced state, I've made it to consume Action Points. If you're out of action points and still try to use the Rocket Punch or the Rising Uppercut, the script will interrupt it by calling PlayIdle(RaiderForceEquipCombat). The problem is that OnAnimationEvent is slightly slower than the actual event manager, so the charge sound starts playing. I've tried adding SoundStop.WPNDoomFistRocketPunchChargeUp annotation in WPNUnEquip.hkx or WPNEquip.hkx, but it seems like RaiderForceEquipCombat is not processing any animation events. What would be a viable option to replace this mechanism? I need the timings to be precise (can't use script) since I have to sync the sound effect WPNDoomFistRocketPunchChargeUp and WPNDoomFistRocketPunchChargeLoop, which should be started playing exactly 2.767 seconds after the charge up sound. Problem 2. Converting hkx animation files to 32-bit I have all the requirements needed to make Fallout 4 animations, but I can't find a way to convert animations like WPNAfterJiggleAdd.hkx to 32-bit. Whenever I try to convert animations that are HK_UNKNOWN_ANIMATION type, my 3ds max crashes. HK_SPLINE_COMPRESSED_ANIMATION files are just fine, but I'm not sure what "Add" animations do, so I can't start working on the animations. Thanks for reading and sorry if my engrish is bad, it's just not my mother tongue.
  2. Hi all, I'm currently trying to make a follower that uses custom spells. The first solution I came up with was using a "UseMagic" procedure. It worked for some spells, but it had limitations. TargetSelector data in the package could not recognize some spells as "Spells," even if I set it as "Spells: Any." I had to directly assign the object ID for the spell as a package target to make it work. That means I would have to make packages for every single spells that I want my follower to use. Not a good idea. What I'm assuming is that if the spell has other magic effects than value modifiers, then the game can't recognize it as a spell. I'm not sure if there is any way to modify the TargetSelector or package public data on run-time. The second solution was sending animation events. AFAIK, Debug.SendAnimationEvent or PlayIdle not only makes the actor play an animtion, but also makes the actor "behave" like they're actually doing that action (Like death, swing weapon, etc..) ...but no luck. Maybe I did something wrong with my code. I've been stuck on this for like two days and any help would be appreciated. Cheers. Edit: Piece of my code Function equipCustomSpell(Spell _spell, int slot) ;Get the cost of the spell, and return if she doesn't have enough Magicka int cost = spells[currentSpellIndex].GetEffectiveMagickaCost(Self) if(cost > GetAV("Magicka")) isCasting = false return endif ;Unequip any spells just in case UnequipSpell(GetEquippedSpell(0), 0) UnequipSpell(GetEquippedSpell(1), 1) ;Remove the last spell if she still has it. if(lastSpell && HasSpell(lastSpell)) RemoveSpell(lastSpell) endif ;Add the spell, then force-equip it to her AddSpell(_spell) if(slot == 0 || slot == 2) EquipSpell(_spell, 0) endif if(slot == 1 || slot == 2) EquipSpell(_spell, 1) endif lastSpell = _spell; ;Change global value to change package BingleSlaveMagicianCombatStyle.SetValue(1) EvaluatePackage() ;Wait for package evaluation Utility.Wait(1.0) ;Send animation events if(slot == 0) ;PlayIdle(CastLeftFireForget) Debug.SendAnimationEvent(Self, "MLh_SpellAimedStart") elseif(slot == 1) ;PlayIdle(CastRightFireForget) Debug.SendAnimationEvent(Self, "MRh_SpellAimedStart") elseif(slot == 2) ;PlayIdle(CastDualMagic) Debug.SendAnimationEvent(Self, "DualMagic_SpellAimedStart") endif ;Debug.Messagebox("Sending event to " + Self.GetDisplayName()) EndFunction
×
×
  • Create New...