Vampire transformation and general transformation spells

Post » Wed Jun 20, 2012 5:23 am

Hey ho, i'm making a spell that toggles the physical changes from vampirism, i.e. the eyes, the paleness and the general face changes. To accomplish this i made a really basic script spell included here:
Scriptname CRCVampireDaywalkerChange extends activemagiceffectbool isvampireEvent OnEffectStart(Actor akTarget, Actor Caster)		Actor Target=Game.GetPlayer()		Game.DisablePlayerControls()VampireTransformIncreaseISMD.applyCrossFade(2.0)ObjectReference myXmarker = Target.PlaceAtMe(Xmarker)MAGVampireTransform01.Play(myXmarker)myXmarker.Disable()			  		if (Target.GetActorBase().GetRace() == ArgonianRace)  Target.SetRace(ArgonianRaceVampire)		elseif(Target.GetActorBase().GetRace() == ArgonianRaceVampire)			  				Target.SetRace(ArgonianRace)		elseif (Target.GetActorBase().GetRace() == BretonRace)  Target.SetRace(BretonRaceVampire)		elseif (Target.GetActorBase().GetRace() == BretonRaceVampire)  Target.SetRace(BretonRace)elseif (Target.GetActorBase().GetRace() == DarkElfRace)  Target.SetRace(DarkElfRaceVampire)		elseif (Target.GetActorBase().GetRace() == DarkElfRaceVampire)					Target.SetRace(DarkElfRace)elseif (Target.GetActorBase().GetRace() == HighELfRace)  Target.SetRace(HighELfRaceVampire)	  		elseif (Target.GetActorBase().GetRace() == HighELfRaceVampire)  Target.SetRace(HighELfRace)  			elseif (Target.GetActorBase().GetRace() == ImperialRace)  Target.SetRace(ImperialRaceVampire)	  		elseif (Target.GetActorBase().GetRace() == ImperialRaceVampire)  Target.SetRace(ImperialRace)		  elseif (Target.GetActorBase().GetRace() == KhajiitRace)  Target.SetRace(KhajiitRaceVampire)	   elseif (Target.GetActorBase().GetRace() == KhajiitRaceVampire)  Target.SetRace(KhajiitRace)			elseif (Target.GetActorBase().GetRace() ==NordRace)  Target.SetRace(NordRaceVampire)		elseif (Target.GetActorBase().GetRace() == NordRaceVampire)  Target.SetRace(NordRace)			elseif (Target.GetActorBase().GetRace() == OrcRace)  Target.SetRace(OrcRaceVampire)	  		elseif (Target.GetActorBase().GetRace() == OrcRaceVampire)  Target.SetRace(OrcRace)			  elseif (Target.GetActorBase().GetRace() == RedguardRace)  Target.SetRace(RedguardRaceVampire)	  		elseif (Target.GetActorBase().GetRace() == RedguardRaceVampire)  Target.SetRace(RedguardRace)		elseif (Target.GetActorBase().GetRace() == WoodElfRace)  Target.SetRace(WoodElfRaceVampire)		elseif (Target.GetActorBase().GetRace() == WoodElfRaceVampire)  Target.SetRace(WoodElfRace)endifutility.wait(2.0)imageSpaceModifier.removeCrossFade()VampireChangeFX.stop(Target)		Utility.Wait(1)Game.EnablePlayerControls()		VampireChangeFX.stop(Target)EndEventStatic Property XMarker AutoSound  Property MagVampireTransform01  AutoimageSpaceModifier Property VampireTransformIncreaseISMD  AutoimageSpaceModifier Property VampireTransformDecreaseISMD  AutoeffectShader property VampireChangeFX autoRace Property ArgonianRace  AutoRace Property ArgonianRaceVampire  AutoRace Property BretonRace  AutoRace Property BretonRaceVampire  AutoRace Property DarkElfRace  AutoRace Property DarkElfRaceVampire  AutoRace Property HighElfRace  AutoRace Property HighElfRaceVampire  AutoRace Property ImperialRace  AutoRace Property ImperialRaceVampire  AutoRace Property KhajiitRace  AutoRace Property KhajiitRaceVampire  AutoRace Property NordRace  AutoRace Property NordRaceVampire  AutoRace Property CVONordRace AutoRace Property OrcRace  AutoRace Property OrcRaceVampire  AutoRace Property RedguardRace  AutoRace Property RedguardRaceVampire  AutoRace Property WoodElfRace  AutoRace Property WoodElfRaceVampire  Auto

The character i use to test this with is a nord and this script works perfect the way it is now, but the problem is if i change the NordRace entries to my custom CVONordRace entry, if i do that the details of my character gets washed out as i cast the spell, for instance the hair and eyebrows get reset to what they are set to in the raceitem instead of what my character originally had.

To make the CVONordRace i duplicated the NordRace and set the copied data to NordRace and added it to the HeadPartsAllRacesMinusBeast and tagged the overlay head parts list, still tho the details reset if i use the custom race.

Any ideas?
User avatar
Nick Jase Mason
 
Posts: 3432
Joined: Sun Jul 29, 2007 1:23 am

Post » Wed Jun 20, 2012 1:32 am

I guess i somehow have to make my customrace CVONordRace act like the stock NordRace, but im not quite sure whats different about them. Anyway the reason i made the new race was to classify the "non vampire" changes version of the player still be a vampire and i making every nord a vampire seemed a bit exessive :)
User avatar
priscillaaa
 
Posts: 3309
Joined: Sat Dec 30, 2006 8:22 pm

Post » Tue Jun 19, 2012 9:25 pm

Minor bump here, still working the issue. Pretty frustrating! Works perfectly with the stock NordRace, but as soon as i use my custom one that is as far as i can tell almost identical it breaks.
User avatar
sexy zara
 
Posts: 3268
Joined: Wed Nov 01, 2006 7:53 am

Post » Tue Jun 19, 2012 10:07 pm

The only things that wont save now is the hair and the eyebrows, the face, scars and etc work perfectly. When i morph into the more human looking form i get the default hair and eyebrows, and then when i morph into the vampire form again i am bald everywhere.

The thing that it does when i use the custom race is that it reads the parts set in the "Face Data" tab, for some reason when the stock NordRace is in the mix the stuff that i have made in character generation takes higher prioroty and sticks.
User avatar
Nathan Barker
 
Posts: 3554
Joined: Sun Jun 10, 2007 5:55 am

Post » Wed Jun 20, 2012 4:55 am

How do you copy the players' customizing options over to the new race? (You know, war paint, scars, hairstyle, face modifications like cheekbone height, etc?

I'd like to learn how that works, and maybe as a test make a spell that creates a copy of the player (Someone was working on a lich mod where he was copying the player...)
User avatar
Nicole Elocin
 
Posts: 3390
Joined: Sun Apr 15, 2007 9:12 am

Post » Tue Jun 19, 2012 3:19 pm

Okay, for anyone interested i fixed it. Or rather i sidestepped the problem.

Any time the stock NordRace was involved things worked fine, so in the end i went "well screw you too buddy" and did this:

    elseif (Target.GetActorBase().GetRace() == CVONordRace)                Target.SetRace(NordRace)   	   Target.SetRace(NordRaceVampire)	    elseif (Target.GetActorBase().GetRace() == NordRaceVampire)                Target.SetRace(NordRace)        Target.SetRace(CVONordRace)

What it does is instead of switching directly between the two races it takes a pitstop in the stock NordRace race, its impossible to notice this happening ingame, but now all the face values save. Except face tan, but thats for another day. If everyone manages to get the skin tan back, post it here.
User avatar
Dragonz Dancer
 
Posts: 3441
Joined: Sat Jun 24, 2006 11:01 am

Post » Wed Jun 20, 2012 6:38 am

have you tried making a dupe of the nordracevampire and naming it CVOnordracevampire? (changing whatever it is you changed for the original CVONordrace)

add that to your above code and it should work...

Spoiler
(Target.GetActorBase().GetRace() ==CVONordRace)             Target.SetRace(CVONordRaceVampire)                elseif (Target.GetActorBase().GetRace() ==CVONordRaceVampire)            Target.SetRace(CVONordRace)

something like that.
User avatar
Nadia Nad
 
Posts: 3391
Joined: Thu Aug 31, 2006 3:17 pm


Return to V - Skyrim