Jump to content

Need Help With Scripting a Mod I'm Making


Omny

Recommended Posts

Well, it's been a couple of years, but I finally am getting back to work on this little mod of mine. Been putting it off for too long.

 

I was working on a new version of it before, but after going back to it, it was just way too much of a mess to deal with so I scrapped the whole thing and decided to just start again on an updated version using the mod I currently have uploaded to the Nexus. I deleted all my currently installed mods, got a fresh and clean install of New Vegas, and re-downloaded just a few essential mods for this endeavor (namely NVSE as well as the JohnnyGuitar and JIP LN extender plugins), just to start with a nice blank slate.

 

I've managed to remake a couple of my original goals, namely fixing the "Bloody Mess" problem as well as the "disappearing weapons" problem, but now I've hit another roadblock. Because of course I f***ing have.

 

So, the mod goes like this... it starts with this script here:

ScriptName OMNYSkellyQuestScript

Begin GameMode

    If GetGameLoaded
        SetJohnnyOnDyingEventHandler 1 OMNYLaserSkeletonizerScript 0
        Print "Welcome to the Bone Zone!"
    endif

end

Which then goes to this script here:

scn OMNYLaserSkeletonizerScript

Float Timer
ref rActor
ref rWeapon

Begin Function {rActor}

    set rWeapon to rActor.GetHitWeapon
    print "Skeleton Time!"

    if rWeapon.IsInList OMNYListOfLasers
        if rActor.GetIsCreature == 0
            rActor.AddItemAlt OMNYLaserSkellySuit 1
            rActor.CIOS OMNYLaserSkellyFXSpell
        print "Laser!"
        EndIf

    Elseif rWeapon.IsInList OMNYListOfPlasma
            if rActor.GetIsCreature == 0
                rActor.AddItemAlt OMNYPlasmaSkellySuit 1
                rActor.CIOS OMNYPlasmaSkellyFXSpell
        print "Plasma!"
            EndIf

    Elseif rWeapon.IsInList OMNYListOfShocks
            if rActor.GetIsCreature == 0
                rActor.AddItemAlt OMNYShockSkellySuit 1
                rActor.CIOS OMNYShockSkellyFXSpell
        print "Shock!"
            EndIf

    Elseif rWeapon.IsInList OMNYListOfFlames
            if rActor.GetIsCreature == 0
                rActor.AddItemAlt OMNYCharredSkellySuit 1
                rActor.CIOS OMNYCharredSkellyFXSpell
        print "Fire!"
            EndIf
    Endif

end

Each of those "OMNYListOf____" lists are Form Lists that contain all the various energy weapons that I want to have affected by the different colored effects.

 

The snag I've hit is that for some reason the game refuses to execute any of this last script past the "print Skeleton Time" bit, not adding the skelly suits or activating the FX spells no matter what I do.

 

Of course, this script was edited from the original version. It originally looked like this:

scn OMNYLaserSkeletonizerScript

Float Timer
ref rActor
ref rKiller

Begin Function {rActor}

	set rKiller to rActor.GetKiller

	if rKiller.IsWeaponInList OMNYListOfLasers
			if rActor.GetIsCreature == 0
				rActor.CIOS OMNYLaserSkellyFXSpell
			EndIf

	Elseif rKiller.IsWeaponInList OMNYListOfPlasma
			if rActor.GetIsCreature == 0
				rActor.CIOS OMNYPlasmaSkellyFXSpell
			EndIf

	Elseif rKiller.IsWeaponInList OMNYListOfShocks
			if rActor.GetIsCreature == 0
				rActor.CIOS OMNYShockSkellyFXSpell
			EndIf

	Elseif rKiller.IsWeaponInList OMNYListOfFlames
			if rActor.GetIsCreature == 0
				rActor.CIOS OMNYCharredSkellyFXSpell
			EndIf
	endif	
end

I changed it because using "rKiller.IsWeaponInList" caused a minor but annoying bug where the effect is decided on by whatever weapon the player is currently holding at the time rather than whatever weapon was used to kill the target (so if you threw a plasma grenade and switched back to a 10mm pistol, the plasma skeletonizing effect wouldn't happen).

 

This is particularly annoying because that edit is more or less how it looked when I first attempted to make an updated version, but it doesn't seem to be working now. What the hell am I missing? I tried a few things, mostly changing the "Begin Function" to "Begin OnDeath" but that just made the following error appear in the console:

Error in script 0B00137A (OMNYLaserSkeletonizerScript) in mod OMNYSkeletonizer02.esp
Begin Function block not found in compiled script data
Error in script 0B00137A (OMNYLaserSkeletonizerScript) in mod OMNYSkeletonizer02.esp
Failed to extract parameter 0. Please verify the number of parameters in function script match those required for event.

I tried looking up these errors but I couldn't find a single thing about any of them. Which is probably the most frustrating thing about this endeavor.

Edited by Omny
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...