Scripting in Reznod's mannequins

Post » Wed Dec 09, 2009 7:55 am

I'm trying to do a revision of this mod, one that will offer most or all the races as mannequins, rather than just marble or wooden textures. Right now, I'm stuck on a script.

Let me backtrack a bit. I created a new base object, ReznodMannequinRedguardM, and two reference objects for it in the Reznod Holder Cell. Now, when I go to save a copy of ReznodMannequinRedguardMScript which I've created, I get the message:

"Invalid inventory object "ReznodMannequinRedguardM" for parameter ObjectID. Compiled script not saved!"

Any idea what's going on? Because, logically, I have created the base object, ReznodMannequinRedguardM, already. This also matches up to the way Reznod did his objects and scripts. (Not deviating from that, because I know zip about scripting in Oblivion.) I'm not a natural to this, but I'd like to give something back to the modding community besides the NPC dialog I've contributed to a few mods over the years, and this seems to me to fill a real void at the moment, since both Morrowind and Fallout 3 offer flesh-toned mannequins in all race flavors.

I'm including a copy of Reznod's script. I take no credit for any of it. All I've done is slotted in one or two differences:

ScriptName ReznodMannequinRedguardMScriptRef MySelfShort MessageStatusShort MessageAnswerShort CurrentStateShort MyAlertShort EditShort PoseShort SneakShort AlertShort UpdatePoseFloat TimerShort DummyCountFloat MyXFloat MyYFloat MyZFloat MyRotBegin OnLoadif ( MyX == 0 )if ( MyY == 0 )if ( MyZ == 0 )if ( MyRot == 0 )	set MyX to Player.GetPos X	set MyY to Player.GetPos Y	set MyZ to Player.GetPos Z	set MyRot to Player.GetAngle Z	set Pose to 0	set Sneak to 0	set Alert to 0endifendifendifendifSetForceSneak Sneakif ( Pose == 0 )	PlayGroup Idle 1elseif ( Pose == 1 )	PlayGroup BlockIdle 1elseif ( Pose == 2 )	PlayGroup CastSelf 1			; leftelseif ( Pose == 3 )	PlayGroup CastSelfAlt 1		; rightelseif ( Pose == 4 )	PlayGroup CastTarget 1		; leftelseif ( Pose == 5 )	PlayGroup CastTargetAlt 1	; rightelseif ( Pose == 6 )	PlayGroup CastTouch 1		; two handedelseif ( Pose == 7 )	PlayGroup CastTouchAlt 1	; right	endifset Timer to 0SetGhost 1EndBegin OnActivateset MessageStatus to 1set MyX to GetPos Xset MyY to GetPos Yset MyZ to GetPos Zset MyRot to GetAngle ZEndBegin GameModeif ( Edit == 0 )if ( UpdatePose == 1 )	set MySelf to GetSelf	if ( CurrentState == 0 )		set CurrentState to 1	endifelseif ( UpdatePose == 2 )	set UpdatePose to 0	set ReznodMannequinPoseActiveRef.MyRef to MySelf	ReznodMannequinPoseActiveRef.MoveTo MySelf	MoveTo ReznodMannequinContainerObjectendifendifif ( Timer < 0.8 )	set Timer to ( Timer + GetSecondsPassed )else	SetUnconscious 0	SkipAnimendifif ( GetItemCount ReznodMannequinDummyWeapon > 1 )	set DummyCount to ( GetItemCount ReznodMannequinDummyWeapon - 1 )	RemoveItem ReznodMannequinDummyWeapon DummyCountelseif ( GetItemCount ReznodMannequinDummyWeapon == 0 )	AddItem ReznodMannequinDummyWeapon 1endifif ( CurrentState > 0 )	if ( CurrentState == 1 )		RemoveAllItems ReznodMannequinContainerObject		set CurrentState to 2		Return	elseif ( CurrentState == 2 )		SetUnconscious 0		ReznodMannequinContainerObject.RemoveAllItems MySelf		SetAV Luck 0		set CurrentState to 3		Return	elseif ( CurrentState == 3 )		EvaluatePackage ReznodMannequinActorAIWearable		set CurrentState to 4		Return	elseif ( CurrentState == 4 )		SetAV Luck 1		set CurrentState to 5		Return	elseif ( CurrentState == 5 )		EvaluatePackage ReznodMannequinActorAIArmor		SetAlert Alert		set CurrentState to 6		Return	elseif ( CurrentState < 10 )		set CurrentState to ( CurrentState + 1 )		Return	else		SetUnconscious 1		set UpdatePose to 2		set CurrentState to 0	endifelse	SetPos X MyX	SetPos Y MyY	SetPos Z MyZ	SetAngle Z MyRotendifif ( MessageStatus == 0 )	Returnelseif ( MessageStatus == 1 )	MessageBox "What would you like to do?" "Return" "Modify Inventory" "Pick Up" "Pose"	set Edit to 1	set MessageStatus to 2elseif ( MessageStatus == 2 )	set MessageAnswer to GetButtonPressed	if ( MessageAnswer == -1 )		Return	elseif ( MessageAnswer == 0 )		set Edit to 0		set MessageStatus to 0		Return	elseif ( MessageAnswer == 1 )		RemoveItem ReznodMannequinDummyWeapon 1		RemoveAllItems ReznodMannequinContainerObject		ReznodMannequinContainerObject.Activate Player 1		set UpdatePose to 1		set MessageStatus to 1		Return	elseif ( MessageAnswer == 2 )		RemoveItem ReznodMannequinDummyWeapon 1		RemoveAllItems Player		Player.AddItem ReznodMannequinRedguardMObject 1		set MyX to 0		set MyY to 0		set MyZ to 0		set MyRot to 0		MoveTo ReznodMannequinContainerObject		Return	elseif ( MessageAnswer == 3 )		set MessageStatus to 3		Return	endifelseif ( MessageStatus == 3 )	if ( Sneak == 1 )		if ( Alert == 1 )			if ( Pose == 1 )				MessageBox "What pose would you like?" "Return" "Face" "* Toggle Sneak" "* Toggle Weapon Drawn" "* Toggle Sheild Raised" "Casting Options"			elseif ( Pose == 0 )				MessageBox "What pose would you like?" "Return" "Face" "* Toggle Sneak" "* Toggle Weapon Drawn" "Toggle Sheild Raised" "Casting Options"			else				MessageBox "What pose would you like?" "Return" "Face" "* Toggle Sneak" "* Toggle Weapon Drawn" "Toggle Sheild Raised" "* Casting Options"			endif		else			if ( Pose == 1 )				MessageBox "What pose would you like?" "Return" "Face" "* Toggle Sneak" "Toggle Weapon Drawn" "* Toggle Sheild Raised" "Casting Options"			elseif ( Pose == 0 )				MessageBox "What pose would you like?" "Return" "Face" "* Toggle Sneak" "Toggle Weapon Drawn" "Toggle Sheild Raised" "Casting Options"			else				MessageBox "What pose would you like?" "Return" "Face" "* Toggle Sneak" "Toggle Weapon Drawn" "Toggle Sheild Raised" "* Casting Options"			endif		endif	else		if ( Alert == 1 )			if ( Pose == 1 )				MessageBox "What pose would you like?" "Return" "Face" "Toggle Sneak" "* Toggle Weapon Drawn" "* Toggle Sheild Raised" "Casting Options"			elseif ( Pose == 0 )				MessageBox "What pose would you like?" "Return" "Face" "Toggle Sneak" "* Toggle Weapon Drawn" "Toggle Sheild Raised" "Casting Options"			else				MessageBox "What pose would you like?" "Return" "Face" "Toggle Sneak" "* Toggle Weapon Drawn" "Toggle Sheild Raised" "* Casting Options"			endif		else			if ( Pose == 1 )				MessageBox "What pose would you like?" "Return" "Face" "Toggle Sneak" "Toggle Weapon Drawn" "* Toggle Sheild Raised" "Casting Options"			elseif ( Pose == 0 )				MessageBox "What pose would you like?" "Return" "Face" "Toggle Sneak" "Toggle Weapon Drawn" "Toggle Sheild Raised" "Casting Options"			else				MessageBox "What pose would you like?" "Return" "Face" "Toggle Sneak" "Toggle Weapon Drawn" "Toggle Sheild Raised" "* Casting Options"			endif		endif	endif	set MessageStatus to 4elseif ( MessageStatus == 4 )	set MessageAnswer to GetButtonPressed	if ( MessageAnswer == -1 )		Return	elseif ( MessageAnswer == 0 )		set MessageStatus to 1		Return	elseif ( MessageAnswer == 1 )		set MyRot to ( Player.GetAngle Z - 180 )		set UpdatePose to 1		set MessageStatus to 3		Return	elseif ( MessageAnswer == 2 )		if ( Sneak == 0 )			set Sneak to 1		else			set Sneak to 0		endif		set UpdatePose to 1		set MessageStatus to 3		Return	elseif ( MessageAnswer == 3 )		if ( Alert == 0 )			set Alert to 1		else			set Alert to 0		endif		set UpdatePose to 1		set MessageStatus to 3		Return	elseif ( MessageAnswer == 4 )		if ( Pose == 1 )			set Pose to 0		else			set Pose to 1		endif		set UpdatePose to 1		set MessageStatus to 3		Return	elseif ( MessageAnswer == 5 )		set MessageStatus to 5		Return	endifelseif ( MessageStatus == 5 )	if ( Pose == 2 || Pose == 3 )		MessageBox "What type of casting would you like to pose?" "Return" "* Self" "Target" "Touch"	elseif ( Pose == 4 || Pose == 5 )		MessageBox "What type of casting would you like to pose?" "Return" "Self" "* Target" "Touch"	elseif ( Pose == 6 || Pose == 7 )		MessageBox "What type of casting would you like to pose?" "Return" "Self" "Target" "* Touch"	else		MessageBox "What type of casting would you like to pose?" "Return" "Self" "Target" "Touch"	endif	set MessageStatus to 6elseif ( MessageStatus == 6 )	set MessageAnswer to GetButtonPressed	if ( MessageAnswer == -1 )		Return	elseif ( MessageAnswer == 0 )		set MessageStatus to 3		Return	elseif ( MessageAnswer == 1 )		set MessageStatus to 7		Return	elseif ( MessageAnswer == 2 )		set MessageStatus to 9		Return	elseif ( MessageAnswer == 3 )		set MessageStatus to 11		Return	endifelseif ( MessageStatus == 7 )	if ( Pose == 2 )		MessageBox "What variation of cast on self would you like to pose?" "Return" "* Left Handed" "Right Handed"	elseif ( Pose == 3 )		MessageBox "What variation of cast on self would you like to pose?" "Return" "Left Handed" "* Right Handed"	else		MessageBox "What variation of cast on self would you like to pose?" "Return" "Left Handed" "Right Handed"	endif	set MessageStatus to 8elseif ( MessageStatus == 8 )	set MessageAnswer to GetButtonPressed	if ( MessageAnswer == -1 )		Return	elseif ( MessageAnswer == 0 )		set MessageStatus to 5		Return	elseif ( MessageAnswer == 1 )		set Pose to 2		set UpdatePose to 1		set MessageStatus to 7		Return	elseif ( MessageAnswer == 2 )		set Pose to 3		set UpdatePose to 1		set MessageStatus to 7		Return	endifelseif ( MessageStatus == 9 )	if ( Pose == 4 )		MessageBox "What variation of cast on target would you like to pose?" "Return" "* Left Handed" "Right Handed"	elseif ( Pose == 5 )		MessageBox "What variation of cast on target would you like to pose?" "Return" "Left Handed" "* Right Handed"	else		MessageBox "What variation of cast on target would you like to pose?" "Return" "Left Handed" "Right Handed"	endif	set MessageStatus to 10elseif ( MessageStatus == 10 )	set MessageAnswer to GetButtonPressed	if ( MessageAnswer == -1 )		Return	elseif ( MessageAnswer == 0 )		set MessageStatus to 5		Return	elseif ( MessageAnswer == 1 )		set Pose to 4		set UpdatePose to 1		set MessageStatus to 9		Return	elseif ( MessageAnswer == 2 )		set Pose to 5		set UpdatePose to 1		set MessageStatus to 9		Return	endifelseif ( MessageStatus == 11 )	if ( Pose == 6 )		MessageBox "What variation of cast on touch would you like to pose?" "Return" "* Two Handed" "Right Handed"	elseif ( Pose == 7 )		MessageBox "What variation of cast on touch would you like to pose?" "Return" "Two Handed" "* Right Handed"	else		MessageBox "What variation of cast on touch would you like to pose?" "Return" "Two Handed" "Right Handed"	endif	set MessageStatus to 12elseif ( MessageStatus == 12 )	set MessageAnswer to GetButtonPressed	if ( MessageAnswer == -1 )		Return	elseif ( MessageAnswer == 0 )		set MessageStatus to 5		Return	elseif ( MessageAnswer == 1 )		set Pose to 6		set UpdatePose to 1		set MessageStatus to 11		Return	elseif ( MessageAnswer == 2 )		set Pose to 7		set UpdatePose to 1		set MessageStatus to 11		Return	endifendifEnd 

User avatar
BlackaneseB
 
Posts: 3431
Joined: Sat Sep 23, 2006 1:21 am

Post » Wed Dec 09, 2009 4:54 am

I'm trying to do a revision of this mod, one that will offer most or all the races as mannequins, rather than just marble or wooden textures. Right now, I'm stuck on a script.

Let me backtrack a bit. I created a new base object, ReznodMannequinRedguardM, and two reference objects for it in the Reznod Holder Cell. Now, when I go to save a copy of ReznodMannequinRedguardMScript which I've created, I get the message:

"Invalid inventory object "ReznodMannequinRedguardM" for parameter ObjectID. Compiled script not saved!"

Any idea what's going on? Because, logically, I have created the base object, ReznodMannequinRedguardM, already. This also matches up to the way Reznod did his objects and scripts. (Not deviating from that, because I know zip about scripting in Oblivion.) I'm not a natural to this, but I'd like to give something back to the modding community besides the NPC dialog I've contributed to a few mods over the years, and this seems to me to fill a real void at the moment, since both Morrowind and Fallout 3 offer flesh-toned mannequins in all race flavors.

I'm including a copy of Reznod's script. I take no credit for any of it. All I've done is slotted in one or two differences:


The error I believe is because you created a Race but not an inventory item for that item "Redguard" Now if you are only going to Put them into place and not sell them you can do like I did which is just create the Race and just use the static script for the New Race. There are also several mods out there that have most of the races already not all but most. DO a search on Tesnexus for reznod I think that is what you need to search for.
User avatar
Rob Davidson
 
Posts: 3422
Joined: Thu Aug 02, 2007 2:52 am


Return to IV - Oblivion