Jump to content

Omny87

Members
  • Content Count

    24
  • Joined

  • Last visited

About Omny87

  • Rank
    Member
  • Birthday 08/04/1989

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. So I should probably have a separate script for the actual "spell" and have this script be the one applying the spell on death?
  2. So I tried adding in a timer like this: scn OMNYLaserSkeletonizerScript Float Timer ref rActor ref rKiller begin Function {rActor} Print "The event fired" set rKiller to rActor.GetKiller if Timer < 4 Set Timer to Timer + GetSecondsPassed else set Timer to 0 Endif if rKiller.IsWeaponInList OMNYListOfLasers Print "the killer's weapon is eligible" if (rActor.GetIsCreature == 0) && (rActor != PlayerRef) Print "the victim is eligible" rActor.PMS LaserCritGlowFXShader rActor.PMS OMNYLaserSkellyEffect rActor.additem OMNYLaserSkellySuit 1 if (GetSecondsPassed <= 2.0) && (rActor.GetDead == 1) rActor.equipitem OMNYLaserSkellySuit 1 rActor.SMS LaserCritGlowFXShader rActor.SMS OMNYLaserSkellyEffect Endif EndIf endif Print "welcome to the bone zone" end But it still doesn't change anything. My goal is to make it so that once they get killed via an energy weapon they: 1- get covered with the glowing/sparking disintegration effect 2- turn into a skeleton about 1 second later while still glowing 3- have the glowing fade away to reveal the skeleton. Right now they turn into skeletons instantly upon death. I'm trying to use the timer to delay the skeleton effect, to make the disintegration look a bit more "realistic". But thus far all my attempts are fruitless. Here's a video recording I made of what I got so far. Here's what my custom Effect Shader looks like in GECK:
  3. Well, after taking a few days to step back I'm back to working on this, and I've looked into your advice- I'm not entirely sure how to implement them though? Like, I made my own Actor/Base effects (OMNYLaserSkellyFXSpell, and OMNYLaserSkellyBaseEffect respectively) and I've connected the two together like the vanilla laser effects, but I can't seem to get them to play with my script? Here's what I got: Actor effect: OMNYLaserSkellyFXSpell (exactly like the LaserDisintegrationFXSpell, but with my custom base effect below) Base Effect: OMNYLaserSkellyBaseEffect (exactly like the LaserDisintegrationEffect, but attached to my laser skeletonizer script) And here's my latest script: scn OMNYLaserSkeletonizerScript Float Timer ref rActor ref rKiller begin Function {rActor} Print "The event fired" set rKiller to rActor.GetKiller if rKiller.IsWeaponInList OMNYListOfLasers Print "the killer's weapon is eligible" if (rActor.GetIsCreature == 0) && (rActor != PlayerRef) Print "the victim is eligible" rActor.PMS LaserCritGlowFXShader rActor.CIOS OMNYLaserSkellyFXSpell rActor.additem OMNYLaserSkellySuit 1 Set Timer to 1.8 If Timer <= 0.5 rActor.equipitem OMNYLaserSkellySuit 1 Endif EndIf endif Print "welcome to the bone zone" end But in-game, all that happens is the laser crit glow and the sizzling noise (which is new and exactly what I wanted, granted), but no disintegration effects, no sparks, and no skeletons! I am so goddamn frustrated by all this I'm on the verge of just giving up.
  4. I actually did go ahead and tried to design my own effect shader to replace the vanilla disintegration effect I was using before. I was messing around with settings all afternoon and I almost got what I wanted, but I can't seem to replicate it again. Should have written it down or something I'll try your advice as well; thanks!
  5. Sheesh; can't believe I forgot that. Thanks! So I disabled all but "the event fired" line with semicolons. When I killed someone and looked at the console, "the event fired" was indeed listed four times. Still not sure why. I tried it with different weapons too; still the same effect. Really? I thought the laser glow/disintegration effects last just shy of 2 seconds. At least it seems that way according to the effect shader windows, as well as the vanilla disintegration script. Guess I'm reading it wrong? EDIT: Found the culprit for the multiple event fired line: it was the quest script that I have the skeletonizer scripts attached to. This is how I wrote it: ScriptName OMNYSkellyQuestScript Begin GameMode If GetGameLoaded SetJohnnyOnDyingEventHandler 1 OMNYLaserSkeletonizerScript 0 SetJohnnyOnDyingEventHandler 1 OMNYPlasmaSkeletonizerScript 0 SetJohnnyOnDyingEventHandler 1 OMNYCharredSkeletonizerScript 0 SetJohnnyOnDyingEventHandler 1 OMNYShockSkeletonizerScript 0 endif end I disabled all but the laser script with semicolons, and sure enough, the "the event fired" only showed up once. I'd rather not have all four scripts happen at once; I feel like that might cause problems.
  6. UPDATE: Well, after a bit of fussing about in Nifskope I finally managed to get the dang dismemberment working, as well as fix a couple weird mesh issues with missing bones: It just needs a bit more polish regarding the effect shaders. What I'd prefer is that when an NPC dies, their body goes all glowy and disintegrated, and then gets replaced by a skeleton, to make it look like there's an actual transition between being fleshy and not-fleshy. Whether that's possible is another bridge to cross later- right now I'm just trying to fix this one annoying little visual bug: Right after the effect shaders do their thing and the skeleton ragdolls on the ground, the body suddenly becomes transparent like this for about 1 second, and then snaps back to being opaque. I think it has something to do with the timer function in the scripts; I'm trying to figure it out myself. I also noticed that, for some reason, the first line of my debug text shows up three times in the console: Not sure what the deal is there. Mayhaps this and the previous bug are related? I'll try to figure this out on my end. Here's what I got so far with the laser skeletonizer script if anyone wants to give it a look-over: scn OMNYLaserSkeletonizerScript Float Timer Short DoOnce ref rActor ref rKiller begin Function {rActor} Print "The event fired" set rKiller to rActor.GetKiller if rKiller.IsWeaponInList OMNYListOfLasers Print "the killer's weapon is eligible" if (rActor.GetIsCreature == 0) && (rActor != PlayerRef) Print "the victim is eligible" rActor.PMS LaserCritGlowFXShader 1.8 rActor.PMS effectLaserDisintegration 1 rActor.additem OMNYLaserSkellySuit 1 rActor.equipitem OMNYLaserSkellySuit 1 Set Timer to 1.8 Set DoOnce to 0 endif Print "welcome to the bone zone" If Timer <= 0.5 rActor.SMS LaserCritGlowFXShader rActor.SMS effectLaserDisintegration Set DoOnce to 1 EndIf endif end
  7. Yeah, I noticed a few errors there in your suggested script, but I managed to fix them. Don't worry about it- if anything, I feel slightly more confident about scripting than I did before fixing them. Well the skeleton suits have four parts each- the armor (the body with no head or hands) and an attached form list of three armor addons (the head and left/right hand). As for where I got it, I took the models from the Skully the Skeleton Companion Mod and added my own textures to them. Though I think I may have to remake the skeletons, as I recently noticed there's some weird mesh distortion caused by a couple missing bones (specifically the left forearm-twist bone and hand bone). I'll see if I can fix them. I've also found that if you select "No Dismemberment/explode" on the weapons themselves, they won't cause any dismemberment. Of course, that would involve editing all the energy weapons and possibly causing conflicts with other mods. I'll see if there's a way to apply that anti-dismemberment across the board via scripts, or at least to skeletons. Maybe there's a way to make corpses immune to dismemberment if they're wearing certain outfits?
  8. UPDATE: Been tooling around with the disintegration glow effects; only trouble I'm having is keeping the glowing texture effects from persisting after death, resulting in skeletons/accessories still translucent and glowing. Another unforeseen snag I've found is with the skeletons themselves: Its seems that the skeletons don't play well with dismemberment. That big ball of bones on the left there is supposed to be that guy's head, having popped off after I shot him with a Tri-Beam Laser Rifle. Definitely going to have to fix that somehow. limbs will also burst into bloody bits of gore like in the vanilla game if struck with blunt force. I wonder if there's a way to just disable dismemberment effects for skeletons only.
  9. Well I tested it out (had to change the IsWeaponInList to point to OMNYListOfLasers though); saves just fine. In-game I tested it out- I killed an NPC with all the weapons in my laser list (laser pistol/rifle/RCW, gatling laser, etc) and though the text "the event fired" appeared, "the victim is eligible" did not. It also appeared when I killed a Bighorner, so it doesn't seem like it's registering the part where it detects if they're a human. Gonna have to retool those lines I think. On a side note, I just want to thank you a bunch, A.J. I've been tearing my hair out over this all week and you're one of the few people who's offered some solid advice and assistance. EDIT: IT WORKS! Alright, so here's what I did: scn OMNYLaserSkeletonizerScript ref rActor ref rKiller ref rWeap begin Function {rActor} Print "The event fired" set rKiller to rActor.GetKiller set rWeap to rKiller.GetEquippedObject 5 if rKiller.IsWeaponInList OMNYListOfLasers Print "the killer's weapon is eligible" if (rActor.GetIsCreature == 0) && (rActor != PlayerRef) Print "the victim is eligible" rActor.additem OMNYLaserSkellySuit 1 rActor.equipitem OMNYLaserSkellySuit 1 endif endif end I changed the line "if rWeap.IsWeaponInList OMNYLaserSkellySuit" to "if rKiller.IsWeaponInList OMNYListOfLasers" so that it registers the killer and what weapon they're holding, rather than the weapon itself. Now I just need to figure out how to apply the disintegration effect on top of that. Holy shit I'm so excited
  10. Ooooooh, I'm so close I can almost TASTE it! So I took your advice and made a second quest script, along with a quest to attach it to, "OMNYSkellyQuest". The Quest script is thus: ScriptName OMNYSkellyQuestScript Begin GameMode If GetGameLoaded SetJohnnyOnDyingEventHandler 1 OMNYLaserSkeletonizerScript 0 endif end Then, after looking at the Fatigue Damage script for the Boxing Gloves, I took a page from that and worked it into the main script: ScriptName OMNYLaserSkeletonizerScript ;Turns human enemies into red skeletons when hit by lasers. Begin OnHit ref rActor Set rActor to GetOwnerLastTarget If PlayerREF.IsWeaponInList OMNYListOfLasers If (rActor != PlayerRef) && (rActor.GetIsCreature == 0) If rActor.IsKiller Player additem OMNYLaserSkellySuit 1 equipitem OMNYLaserSkellySuit 1 EndIf EndIf EndIf end Both of them saved just fine in the GECK, but in-game is where things got interesting. There was no effect when I killed someone with a laser pistol, but this time, when I opened up the console, there was an error message this time! So yeah, this was another flop, but at least this time the game is actually acknowledging it! I think it just needs a bit more retooling and it might actually work!
  11. Oh sure: https://forums.nexusmods.com/index.php?/topic/9279788-need-help-with-scripting-a-mod-im-making/
  12. I've been trying. Beyond the very basic stuff I'm failing to grasp the more complex aspects of scripting. Still, I want to do this myself so I'll press on. Yeah, I've spoken with a couple people over on the Nexus forums and they pointed out the same problem. Like this? scn OMNYSkellyQuestScript Begin GameMode If GetGameLoaded SetJohnnyOnDyingEventHandler 1 OnDyingOMNYLaserSkeletonizerScript 0 endif end That was a typo- it was supposed to be "OnHitWith". Doesn't work either way.
  13. Okay, after a bit of re-reading and cracking open other, similar mods, I changed it to this: ScriptName OMNYLaserSkeletonizerScript ref rActor Begin OnHit Set rActor to Player.GetOwnerLastTarget If rActor.GetIsCreature == 0 additem OMNYLaserSkellySuit 1 equipitem OMNYLaserSkellySuit 1 EndIf end And I attached this script to the laser pistol itself (it's not ideal nor is it what I'm going for, I just want some goddamn results). Still nothing happens in game. sigh... This has gone from frustrating to depressing. I know exactly what I want this script to do, but nothing I do works. I don't want to just give up or beg someone else to write the script for me. I just can't seem to wrap my head around more than the bare-bones basics of scripting.
×
×
  • Create New...