What could be causing Vampire Feed not to work?

Post » Tue May 22, 2012 9:36 pm

My mod replaces the PlayerVampireQuest script with my own edited script of the original.

I always test my scripts and they all compile correctly. I use Notepad++ to do most editing. I'm not good enough with Papyrus yet to write from scratch.

On my system, when I start a new game, new character, infect with vampirism my mod plays out perfectly (also tested on my high level characters as well). My vampire is able to feed and his powers and adjustments are all exactly as I have modded them to be.

Rather than edit every vanilla script and overwrite it I coped most of them, edited them, and renamed the copies to go along with my naming convention for the mod. My mod only affects Vamprism scripts, objects and races atm.

I can't say that it isn't working for everyone using my mod but some users have said they did the same as I and can not use the Feed option. They click on Feed and nothing happens. They have no other vampire mods running and started a new character or used a clean one.


What steps or suggestions would a more experienced modder suggest I now take for trying to solve the problem?
User avatar
jessica Villacis
 
Posts: 3385
Joined: Tue Jan 23, 2007 2:03 pm

Post » Tue May 22, 2012 9:08 pm

I will only bump this once.

My script is designed for only two stages of vampirism while Vanilla has four.

Somewhere between my script and the original is a problem and I can't seem to figure it out. Any help would be very appreciated.



EDIT:

Was this:
-----------------------------------
Event OnUpdateGameTime()

;Feed timer
FeedTimer = GameDaysPassed.Value - LastFeedTime
; debug.trace(self + "Feed Timer is:" + FeedTimer + "days")


;Vampire progression should not happen if player is in combat or controls are locked or the player can't fast travel
If Game.IsMovementControlsEnabled() && Game.IsFightingControlsEnabled() && Game.GetPlayer().GetCombatState() == 0
;If player hasn't fed, progress Vampirism
If (FeedTimer >= 3) && (VampireStatus == 3)
;add Stage 4 Vampire buffs and spells
VampireFeedReady.SetValue(3)
;VampireStageProgressionMessage.Show()
VampireStage4Message.Show()
VampireStatus = 4
VampireProgression(Game.GetPlayer(), 4)
;All NPCs hate the evil Vampire
Game.GetPlayer().AddtoFaction(VampirePCFaction)
Game.GetPlayer().SetAttackActorOnSight()

int cfIndex = 0
while (cfIndex < CrimeFactions.GetSize())
; Debug.Trace("VAMPIRE: Setting enemy flag on " + CrimeFactions.GetAt(cfIndex))
(CrimeFactions.GetAt(cfIndex) as Faction).SetPlayerEnemy()
cfIndex += 1
endwhile

;stop checking GameTime until the player feeds again
UnregisterforUpdateGameTime()
ElseIf FeedTimer >= 2 && (VampireStatus == 2)
;add Stage 3 Vampire buffs and spells
VampireFeedReady.SetValue(2)
VampireStageProgressionMessage.Show()
VampireStatus = 3
VampireProgression(Game.GetPlayer(), 3)
ElseIf FeedTimer >= 1 && (VampireStatus == 1)
;add Stage 2 Vampire buffs and spells
VampireFeedReady.SetValue(1)
VampireStageProgressionMessage.Show()
VampireStatus = 2
VampireProgression(Game.GetPlayer(), 2)
EndIf
Endif

EndEvent


I changed to this:
------------------------------------
Event OnUpdateGameTime()

;Feed timer
FeedTimer = GameDaysPassed.Value - LastFeedTime
; debug.trace(self + "Feed Timer is:" + FeedTimer + "days")


;Vampire progression should not happen if player is in combat or controls are locked or the player can't fast travel
If Game.IsMovementControlsEnabled() && Game.IsFightingControlsEnabled() && Game.GetPlayer().GetCombatState() == 0
;If player hasn't fed, progress Vampirism
If (FeedTimer >= 3) && (VampireStatus == 1)
;add Stage 2 Vampire buffs and spells
VampireFeedReady.SetValue(2)
;VampireStageProgressionMessage.Show()
VampireStage4Message.Show()
VampireStatus = 2
VampireProgression(Game.GetPlayer(), 2)

Game.GetPlayer().AddtoFaction(VampirePCFaction)

;stop checking GameTime until the player feeds again
UnregisterforUpdateGameTime()
ElseIf FeedTimer >= 2 && (VampireStatus == 2)
;add Stage 1 Vampire buffs and spells
VampireFeedReady.SetValue(1)
VampireStageProgressionMessage.Show()
VampireStatus = 1
VampireProgression(Game.GetPlayer(), 1)
ElseIf FeedTimer >= 1 && (VampireStatus == 1)
;add Stage 1 Vampire buffs and spells
VampireFeedReady.SetValue(1)
VampireStageProgressionMessage.Show()
VampireStatus = 1
VampireProgression(Game.GetPlayer(), 1)



EndIf
Endif

EndEvent
User avatar
Baby K(:
 
Posts: 3395
Joined: Thu Nov 09, 2006 9:07 pm

Post » Tue May 22, 2012 10:50 am

I'm 90% sure VampireFeed is on the player from the esm.
Can you use [code] blocks please? Papyrus is horrible on the eyes
User avatar
joseluis perez
 
Posts: 3507
Joined: Thu Nov 22, 2007 7:51 am

Post » Tue May 22, 2012 1:46 pm

Forgive my ignorance I don't know how. I will find out how.
User avatar
Travis
 
Posts: 3456
Joined: Wed Oct 24, 2007 1:57 am

Post » Tue May 22, 2012 10:41 pm

Perhaps this is the problem. Found this compile error in the VampireFeed perk

Starting 1 compile threads for 1 files...
Compiling "PRKF_VampireFeedBeds_000CF02C"...
f:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\PRKF_VampireFeedBeds_000CF02C.psc(9,9): VampireFeed is not a function or does not exist
No output generated for PRKF_VampireFeedBeds_000CF02C, compilation failed.

Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on PRKF_VampireFeedBeds_000CF02C





Strangely, VampireFeed IS a function in my quest script.
User avatar
phillip crookes
 
Posts: 3420
Joined: Wed Jun 27, 2007 1:39 pm

Post » Tue May 22, 2012 5:34 pm

That should be PlayerVampireQuest.VampireFeed()

And to use the code block wrap a section of text with [ code ] and at the end [ /code ] like html
User avatar
Lucky Girl
 
Posts: 3486
Joined: Wed Jun 06, 2007 4:14 pm

Post » Tue May 22, 2012 4:38 pm

Forgive my ignorance I don't know how. I will find out how.

[ code] Your text here [ /code]

Without the spaces, of course....
User avatar
Mr. Ray
 
Posts: 3459
Joined: Sun Jul 29, 2007 8:08 am

Post » Tue May 22, 2012 1:30 pm

Do you still have the VampireFeed function in the quest script?

Ninja'd by a minute.

Draeka, you said some users aren't having the problem. Is your mod public, or did you only share it with a few people?
User avatar
Joe Alvarado
 
Posts: 3467
Joined: Sat Nov 24, 2007 11:13 pm

Post » Tue May 22, 2012 11:43 am

Do you still have the VampireFeed function in the quest script?

Ninja'd by a minute.

Draeka, you said some users aren't having the problem. Is your mod public, or did you only share it with a few people?

Actually I just found out 30 minutes ago that everyone is having the problem.

And it's true, by default the vampire quest is PlayerVampireQuest. However, I made duplicates of almost everything vampire so that I could edit freely and without worry to messing up what is vanilla. Even if that is irrelevant it still taught me a lot. My mod works except for this one problem. And Im happy to say its users enjoy it. So I'm trying hard to fix the Feed issue.

Here is my quest script:

Script name: DraekicVampire.psc
Quest name: DVampire


Scriptname DraekicVampire extends Quest  Conditional;Variable to track if the player is a vampire;0 = Not a Vampire;1 = Vampire;2 = Vampire Stage 2;3 = Vampire Stage 3;4 = Vampire Stage 4Int Property VampireStatus Auto ConditionalMessage Property VampireFeedMessage AutoMessage Property VampireStageProgressionMessage AutoRace Property ArgonianRace  Auto  Race Property ArgonianRaceVampire  Auto  Race Property BretonRace  Auto  Race Property BretonRaceVampire  Auto  Race Property DarkElfRace  Auto  Race Property DarkElfRaceVampire  Auto  Race Property HighElfRace  Auto  Race Property HighElfRaceVampire  Auto  Race Property ImperialRace  Auto  Race Property ImperialRaceVampire  Auto  Race Property KhajiitRace  Auto  Race Property KhajiitRaceVampire  Auto  Race Property NordRace  Auto  Race Property NordRaceVampire  Auto  Race Property OrcRace  Auto  Race Property OrcRaceVampire  Auto  Race Property RedguardRace  Auto  Race Property RedguardRaceVampire  Auto  Race Property WoodElfRace  Auto  Race Property WoodElfRaceVampire  Auto  Race Property CureRace AutoStatic Property XMarker AutoFaction Property VampirePCFaction  Auto  Float Property LastFeedTime AutoFloat Property FeedTimer AutoGlobalVariable Property GameDaysPassed AutoIdle Property VampireFeedingBedRight AutoIdle Property VampireFeedingBedrollRight AutoGlobalVariable Property VampireFeedReady AutoimageSpaceModifier Property VampireTransformIncreaseISMD  AutoimageSpaceModifier Property VampireTransformDecreaseISMD  AutoeffectShader property VampireChangeFX autoEvent OnUpdateGameTime()	;Feed timer	FeedTimer = GameDaysPassed.Value - LastFeedTime;	 debug.trace(self + "Feed Timer is:" + FeedTimer + "days")			;Vampire progression should not happen if player is in combat or controls are locked or the player can't fast travel	If  Game.IsMovementControlsEnabled() && Game.IsFightingControlsEnabled() && Game.GetPlayer().GetCombatState() == 0		;If player hasn't fed, progress Vampirism		If (FeedTimer >= 3) && (VampireStatus == 1)			;add Stage 2 Vampire buffs and spells			VampireFeedReady.SetValue(2)			;VampireStageProgressionMessage.Show()			VampireStage4Message.Show()			VampireStatus = 2			VampireProgression(Game.GetPlayer(), 2)						Game.GetPlayer().AddtoFaction(VampirePCFaction)						;stop checking GameTime until the player feeds again			UnregisterforUpdateGameTime()		ElseIf FeedTimer >= 2 && (VampireStatus == 2)			;add Stage 1 Vampire buffs and spells			VampireFeedReady.SetValue(1)			VampireStageProgressionMessage.Show()			VampireStatus = 1			VampireProgression(Game.GetPlayer(), 1)			ElseIf FeedTimer >= 1 && (VampireStatus == 1)			;add Stage 1 Vampire buffs and spells			VampireFeedReady.SetValue(1)			VampireStageProgressionMessage.Show()			VampireStatus = 1			VampireProgression(Game.GetPlayer(), 1)											EndIf	Endif	EndEventFunction VampireFeedBed()	Game.GetPlayer().PlayIdle(VampireFeedingBedRight)EndFunctionFunction VampireFeedBedRoll()	Game.GetPlayer().PlayIdle(VampireFeedingBedrollRight)EndFunctionFunction VampireChange(Actor Target)	;Effects for hiding the change	Game.DisablePlayerControls()	VampireChangeFX.play(Target)	VampireTransformIncreaseISMD.applyCrossFade(2.0)	ObjectReference myXmarker = Target.PlaceAtMe(Xmarker)	MAGVampireTransform01.Play(myXmarker)	myXmarker.Disable()	utility.wait(2.0)	imageSpaceModifier.removeCrossFade()	VampireChangeFX.stop(Target)	;Change player's race, defaults to Nord Vampire	if (Target.GetActorBase().GetRace() == ArgonianRace)		CureRace = ArgonianRace		Target.SetRace(ArgonianRaceVampire)	elseif (Target.GetActorBase().GetRace() == BretonRace)		CureRace = BretonRace		Target.SetRace(BretonRaceVampire)	elseif (Target.GetActorBase().GetRace() == DarkElfRace)		CureRace = DarkElfRace		Target.SetRace(DarkElfRaceVampire)	elseif (Target.GetActorBase().GetRace() == HighELfRace)		CureRace = HighELfRace		Target.SetRace(HighELfRaceVampire)	elseif (Target.GetActorBase().GetRace() == ImperialRace)		CureRace = ImperialRace		Target.SetRace(ImperialRaceVampire)	elseif (Target.GetActorBase().GetRace() == KhajiitRace)		CureRace = KhajiitRace		Target.SetRace(KhajiitRaceVampire)	elseif (Target.GetActorBase().GetRace() == NordRace)		CureRace = NordRace		Target.SetRace(NordRaceVampire)	elseif (Target.GetActorBase().GetRace() == OrcRace)		CureRace = OrcRace		Target.SetRace(OrcRaceVampire)	elseif (Target.GetActorBase().GetRace() == RedguardRace)		CureRace = RedguardRace		Target.SetRace(RedguardRaceVampire)	elseif (Target.GetActorBase().GetRace() == WoodElfRace)		CureRace = WoodElfRace		Target.SetRace(WoodElfRaceVampire)	endif	;Clear player's diseases	;VampireCureDisease.Cast(Target)	Target.RemoveSpell(DiseaseBoneBreakFever)	Target.RemoveSpell(DiseaseBrainRot )	Target.RemoveSpell(DiseaseRattles )	Target.RemoveSpell(DiseaseRockjoint )	Target.RemoveSpell(DiseaseWitbane )	Target.RemoveSpell(DiseasePorphyricHemophelia)	;Make player Vampire Stage 1	VampireStatus = 1	VampireProgression(Game.GetPlayer(), 1)		;Setup the Feed Timers	RegisterForUpdateGameTime(12)	LastFeedTime =  GameDaysPassed.Value	;Set the Global for stat tracking	PlayerIsVampire.SetValue(1)		Utility.Wait(1)	Game.EnablePlayerControls()		;If the player has been cured before, restart the cure quest	If VC01.GetStageDone(200) == 1		VC01.SetStage(25)	EndIf	EndFunctionFunction VampireFeed()	;Effects for hiding the change	;VampireChangeFX.play(game.getPlayer())	VampireTransformDecreaseISMD.applyCrossFade(2.0)	utility.wait(2.0)	imageSpaceModifier.removeCrossFade()	;VampireChangeFX.stop(game.getPlayer())		Game.IncrementStat( "Necks Bitten" )	VampireFeedMessage.Show()	VampireFeedReady.SetValue(0)	;Game.ForceThirdPerson()	;Game.GetPlayer().PlayIdle(VampireFeedingBedRight)	;Player has fed, regress to Stage 1 Vampirisim	;Remove Stage 2 buffs and spells	LastFeedTime =  GameDaysPassed.Value	VampireStatus = 1	VampireProgression(Game.GetPlayer(), 1)	;Player is no longer hated		;Start checking GameTime again if we weren't already	UnregisterforUpdateGameTime()	RegisterForUpdateGameTime(12)		EndFunctionFunction VampireProgression(Actor Player, int VampireStage)	;Swap out abilities depending on stage of Vampirism											If VampireStage == 2		VampireTransformIncreaseISMD.applyCrossFade(2.0)		utility.wait(2.0)		imageSpaceModifier.removeCrossFade()		Player.RemoveSpell(AbVampire01)				Player.RemoveSpell(AbVampire01b)				Player.AddSpell(AbVampire04, abVerbose = False)		Player.AddSpell(AbVampire04b, abVerbose = False)		Player.RemoveSpell(DVampireGreaterMinionPower)				Player.AddSpell(DVampireLesserMinionPower, abVerbose = False)		Player.RemoveSpell(VampireStrength01)				Player.AddSpell(VampireStrength04, abVerbose = False)		Player.RemoveSpell(DVampireSunDamage01)				Player.AddSpell(DVampireSunDamage02, abVerbose = False)				Player.AddSpell(VampireInvisibilityPC)		EndIf				If VampireStage == 1		Player.AddSpell(ABVampireSkills, abVerbose = False)		Player.AddSpell(ABVampireSkills02, abVerbose = False)		Player.RemoveSpell(AbVampire04)		Player.RemoveSpell(AbVampire04b)				Player.AddSpell(AbVampire01, abVerbose = False)		Player.AddSpell(AbVampire01b, abVerbose = False)				Player.AddSpell(VampireDrain01, abVerbose = False)				Player.RemoveSpell(DVampireLesserMinionPower)				Player.AddSpell(DVampireGreaterMinionPower, abVerbose = False)		Player.RemoveSpell(VampireStrength04)				Player.AddSpell(VampireStrength01, abVerbose = False)		Player.RemoveSpell(DVampireSunDamage02)				Player.AddSpell(DVampireSunDamage01, abVerbose = False)				Player.RemoveSpell(VampireCharm)		Player.RemoveSpell(VampireCloak)		Player.RemoveSpell(VampireInvisibilityPC)		EndIfEndFunctionFunction VampireCure(Actor Player)		Game.IncrementStat( "Vampirism Cures" )	;Stop tracking the Feed Timer	UnregisterforUpdateGameTime()	VampireStatus = 0	;Player is no longer hated	Player.RemoveFromFaction(VampirePCFaction)	Player.SetAttackActorOnSight(False)		;Remove all abilities	Player.RemoveSpell(ABVampireSkills)	Player.RemoveSpell(ABVampireSkills02)		Player.RemoveSpell(AbVampire01)		Player.RemoveSpell(AbVampire04)	Player.RemoveSpell(AbVampire01b)		Player.RemoveSpell(AbVampire04b)		Player.RemoveSpell(DVampireLesserMinionPower)	;Player.RemoveSpell(VampireStrength01)		;Player.RemoveSpell(VampireStrength04)	Player.RemoveSpell(DVampireSunDamage01)		Player.RemoveSpell(DVampireSunDamage02)		Player.RemoveSpell(VampireCharm)	;Player.RemoveSpell(VampireCloak)	Player.RemoveSpell(VampireInvisibilityPC)			;Change player's race, defaults to Nord	if (Player.GetRace() == ArgonianRaceVampire)		Player.SetRace(ArgonianRace)	elseif (Player.GetRace() == BretonRaceVampire)		Player.SetRace(BretonRace)	elseif (Player.GetRace() == DarkElfRaceVampire)		Player.SetRace(DarkElfRace)	elseif (Player.GetRace() == HighELfRaceVampire)		Player.SetRace(HighElfRace)	elseif (Player.GetRace() == ImperialRaceVampire)		Player.SetRace(ImperialRace)	elseif (Player.GetRace() == KhajiitRaceVampire)		Player.SetRace(KhajiitRace)	elseif (Player.GetRace() == NordRaceVampire)		Player.SetRace(NordRace)	elseif (Player.GetRace() == OrcRaceVampire)		Player.SetRace(OrcRace)	elseif (Player.GetRace() == RedguardRaceVampire)		Player.SetRace(RedguardRace)	elseif (Player.GetRace() == WoodElfRaceVampire)		Player.SetRace(WoodElfRace)	endif	;Set the Global for stat tracking	PlayerIsVampire.SetValue(0)		;make sure Hunter's Sight is gone	Player.RemoveSpell(VampireHuntersSight)	EndFunctionSpell Property AbVampire01 AutoSpell Property AbVampire04 AutoSpell Property AbVampire01b AutoSpell Property AbVampire04b AutoSpell Property VampireDrain01 AutoSpell Property VampireStrength01 AutoSpell Property VampireStrength04 AutoSpell Property DVampireSunDamage01 AutoSpell Property DVampireSunDamage02 AutoSpell Property VampireHuntersSight AutoSpell Property VampireCharm AutoSpell Property VampireCloak AutoSpell Property VampireInvisibilityPC AutoSpell Property VampireCureDisease AutoSpell Property ABVampireSkills AutoSpell Property ABVampireSkills02 AutoSpell Property DiseasePorphyricHemophelia AutoGlobalVariable Property PlayerIsVampire  Auto  Sound  Property MagVampireTransform01  Auto  Spell Property DiseaseAtaxia autoSpell Property DiseaseBoneBreakFever AutoSpell Property DiseaseBrainRot AutoSpell Property DiseaseRattles AutoSpell Property DiseaseRockjoint autoSpell Property DiseaseWitbane AutoMessage Property VampireStage4Message AutoQuest Property VC01 AutoFormList Property CrimeFactions  Auto  SPELL Property DVampireGreaterMinionPower  Auto  SPELL Property DVampireLesserMinionPower  Auto  Perk Property VampireFeed  Auto  
User avatar
Benito Martinez
 
Posts: 3470
Joined: Thu Aug 30, 2007 6:33 am

Post » Tue May 22, 2012 9:39 am

Looks like you commented out the line where it plays the feeding idle.

Here


;Game.GetPlayer().PlayIdle(VampireFeedingBedRight)

Unfortunately, that won't solve your compile error. But if the script does compile, you'll see the feed animation again.
User avatar
Jack Bryan
 
Posts: 3449
Joined: Wed May 16, 2007 2:31 am

Post » Tue May 22, 2012 11:58 pm

Draeka even if you change the name of your script you could strill be lazy and refer to it as PlayerVampireQuest in all the fragments and such. As long as its similar enough to the orig script of course. Anyways the less scripts you edit the better IMO
User avatar
Kelli Wolfe
 
Posts: 3440
Joined: Thu Aug 23, 2007 7:09 am

Post » Tue May 22, 2012 10:41 am

Looks like you commented out the line where it plays the feeding idle.

Here


;Game.GetPlayer().PlayIdle(VampireFeedingBedRight)

Unfortunately, that won't solve your compile error. But if the script does compile, you'll see the feed animation again.


Ah yes I see that. Thank you so much. I am teaching myself to mod and script so this is like gold to me. Here is the origina PlayerVampireQuestScript.


ScriptName PlayerVampireQuestScript extends Quest Conditional;Variable to track if the player is a vampire;0 = Not a Vampire;1 = Vampire;2 = Vampire Stage 2;3 = Vampire Stage 3;4 = Vampire Stage 4Int Property VampireStatus Auto ConditionalMessage Property VampireFeedMessage AutoMessage Property VampireStageProgressionMessage AutoRace Property ArgonianRace  Auto  Race Property ArgonianRaceVampire  Auto  Race Property BretonRace  Auto  Race Property BretonRaceVampire  Auto  Race Property DarkElfRace  Auto  Race Property DarkElfRaceVampire  Auto  Race Property HighElfRace  Auto  Race Property HighElfRaceVampire  Auto  Race Property ImperialRace  Auto  Race Property ImperialRaceVampire  Auto  Race Property KhajiitRace  Auto  Race Property KhajiitRaceVampire  Auto  Race Property NordRace  Auto  Race Property NordRaceVampire  Auto  Race Property OrcRace  Auto  Race Property OrcRaceVampire  Auto  Race Property RedguardRace  Auto  Race Property RedguardRaceVampire  Auto  Race Property WoodElfRace  Auto  Race Property WoodElfRaceVampire  Auto  Race Property CureRace AutoStatic Property XMarker AutoFaction Property VampirePCFaction  Auto  Float Property LastFeedTime AutoFloat Property FeedTimer AutoGlobalVariable Property GameDaysPassed AutoIdle Property VampireFeedingBedRight AutoIdle Property VampireFeedingBedrollRight AutoGlobalVariable Property VampireFeedReady AutoimageSpaceModifier Property VampireTransformIncreaseISMD  AutoimageSpaceModifier Property VampireTransformDecreaseISMD  AutoeffectShader property VampireChangeFX autoEvent OnUpdateGameTime()    ;Feed timer    FeedTimer = GameDaysPassed.Value - LastFeedTime;     debug.trace(self + "Feed Timer is:" + FeedTimer + "days")            ;Vampire progression should not happen if player is in combat or controls are locked or the player can't fast travel    If  Game.IsMovementControlsEnabled() && Game.IsFightingControlsEnabled() && Game.GetPlayer().GetCombatState() == 0        ;If player hasn't fed, progress Vampirism        If (FeedTimer >= 3) && (VampireStatus == 3)            ;add Stage 4 Vampire buffs and spells            VampireFeedReady.SetValue(3)            ;VampireStageProgressionMessage.Show()            VampireStage4Message.Show()            VampireStatus = 4            VampireProgression(Game.GetPlayer(), 4)            ;All NPCs  hate the evil Vampire            Game.GetPlayer().AddtoFaction(VampirePCFaction)            Game.GetPlayer().SetAttackActorOnSight()            int cfIndex = 0               while (cfIndex < CrimeFactions.GetSize());	                 Debug.Trace("VAMPIRE: Setting enemy flag on " + CrimeFactions.GetAt(cfIndex))	                (CrimeFactions.GetAt(cfIndex) as Faction).SetPlayerEnemy()	                cfIndex += 1                endwhile            ;stop checking GameTime until the player feeds again            UnregisterforUpdateGameTime()        ElseIf FeedTimer >= 2 && (VampireStatus == 2)            ;add Stage 3 Vampire buffs and spells            VampireFeedReady.SetValue(2)            VampireStageProgressionMessage.Show()            VampireStatus = 3            VampireProgression(Game.GetPlayer(), 3)            ElseIf FeedTimer >= 1 && (VampireStatus == 1)            ;add Stage 2 Vampire buffs and spells            VampireFeedReady.SetValue(1)            VampireStageProgressionMessage.Show()            VampireStatus = 2            VampireProgression(Game.GetPlayer(), 2)            EndIf    Endif    EndEventFunction VampireFeedBed()    Game.GetPlayer().PlayIdle(VampireFeedingBedRight)EndFunctionFunction VampireFeedBedRoll()    Game.GetPlayer().PlayIdle(VampireFeedingBedrollRight)EndFunctionFunction VampireChange(Actor Target)    ;Effects for hiding the change    Game.DisablePlayerControls()    VampireChangeFX.play(Target)    VampireTransformIncreaseISMD.applyCrossFade(2.0)    ObjectReference myXmarker = Target.PlaceAtMe(Xmarker)    MAGVampireTransform01.Play(myXmarker)    myXmarker.Disable()    utility.wait(2.0)    imageSpaceModifier.removeCrossFade()    VampireChangeFX.stop(Target)    ;Change player's race, defaults to Nord Vampire    if (Target.GetActorBase().GetRace() == ArgonianRace)        CureRace = ArgonianRace        Target.SetRace(ArgonianRaceVampire)    elseif (Target.GetActorBase().GetRace() == BretonRace)        CureRace = BretonRace        Target.SetRace(BretonRaceVampire)    elseif (Target.GetActorBase().GetRace() == DarkElfRace)        CureRace = DarkElfRace        Target.SetRace(DarkElfRaceVampire)    elseif (Target.GetActorBase().GetRace() == HighELfRace)        CureRace = HighELfRace        Target.SetRace(HighELfRaceVampire)    elseif (Target.GetActorBase().GetRace() == ImperialRace)        CureRace = ImperialRace        Target.SetRace(ImperialRaceVampire)    elseif (Target.GetActorBase().GetRace() == KhajiitRace)        CureRace = KhajiitRace        Target.SetRace(KhajiitRaceVampire)    elseif (Target.GetActorBase().GetRace() == NordRace)        CureRace = NordRace        Target.SetRace(NordRaceVampire)    elseif (Target.GetActorBase().GetRace() == OrcRace)        CureRace = OrcRace        Target.SetRace(OrcRaceVampire)    elseif (Target.GetActorBase().GetRace() == RedguardRace)        CureRace = RedguardRace        Target.SetRace(RedguardRaceVampire)    elseif (Target.GetActorBase().GetRace() == WoodElfRace)        CureRace = WoodElfRace        Target.SetRace(WoodElfRaceVampire)    endif    ;Clear player's diseases    ;VampireCureDisease.Cast(Target)    Target.RemoveSpell(DiseaseBoneBreakFever)    Target.RemoveSpell(DiseaseBrainRot )    Target.RemoveSpell(DiseaseRattles )    Target.RemoveSpell(DiseaseRockjoint )    Target.RemoveSpell(DiseaseWitbane )    Target.RemoveSpell(DiseasePorphyricHemophelia)    ;Make player Vampire Stage 1    VampireStatus = 1    VampireProgression(Game.GetPlayer(), 1)        ;Setup the Feed Timers    RegisterForUpdateGameTime(12)    LastFeedTime =  GameDaysPassed.Value    ;Set the Global for stat tracking    PlayerIsVampire.SetValue(1)        Utility.Wait(1)    Game.EnablePlayerControls()        ;If the player has been cured before, restart the cure quest    If VC01.GetStageDone(200) == 1        VC01.SetStage(25)    EndIf    EndFunctionFunction VampireFeed()    ;Effects for hiding the change    ;VampireChangeFX.play(game.getPlayer())    VampireTransformDecreaseISMD.applyCrossFade(2.0)    utility.wait(2.0)    imageSpaceModifier.removeCrossFade()    ;VampireChangeFX.stop(game.getPlayer())        Game.IncrementStat( "Necks Bitten" )    VampireFeedMessage.Show()    VampireFeedReady.SetValue(0)    ;Game.ForceThirdPerson()    ;Game.GetPlayer().PlayIdle(VampireFeedingBedRight)    ;Player has fed, regress to Stage 1 Vampirisim    ;Remove Stage 2, 3, and 4 buffs and spells    LastFeedTime =  GameDaysPassed.Value    VampireStatus = 1    VampireProgression(Game.GetPlayer(), 1)    ;Player is no longer hated    Game.GetPlayer().RemoveFromFaction(VampirePCFaction)    Game.GetPlayer().SetAttackActorOnSight(False)    int cfIndex = 0    while (cfIndex < CrimeFactions.GetSize());         Debug.Trace("VAMPIRE: Removing enemy flag from " + CrimeFactions.GetAt(cfIndex))        (CrimeFactions.GetAt(cfIndex) as Faction).SetPlayerEnemy(false)        cfIndex += 1    endwhile    ;Start checking GameTime again if we weren't already    UnregisterforUpdateGameTime()    RegisterForUpdateGameTime(12)        EndFunctionFunction VampireProgression(Actor Player, int VampireStage)    ;Swap out abilities depending on stage of Vampirism        If VampireStage == 2        VampireTransformIncreaseISMD.applyCrossFade(2.0)        utility.wait(2.0)        imageSpaceModifier.removeCrossFade()                Player.RemoveSpell(AbVampire01)        Player.RemoveSpell(AbVampire01b)        Player.AddSpell(AbVampire02b, abVerbose = False)        Player.AddSpell(AbVampire02, abVerbose = False)        ;Player.RemoveSpell(VampireStrength01)        ;Player.AddSpell(VampireStrength02, abVerbose = False)        Player.RemoveSpell(VampireSunDamage01)        Player.AddSpell(VampireSunDamage02, abVerbose = False)                        Player.AddSpell(VampireDrain02, abVerbose = False)        ;check to see if player has power equipped and switch them out        If Player.GetEquippedSpell(0) == VampireDrain01            Player.EquipSpell(VampireDrain02, 0)                    EndIf                If Player.GetEquippedSpell(1) == VampireDrain01            Player.EquipSpell(VampireDrain02, 1)        EndIf        Player.RemoveSpell(VampireDrain01)                Player.AddSpell(VampireRaiseThrall02, abVerbose = False)        Player.RemoveSpell(VampireRaiseThrall01)                Player.AddSpell(VampireCharm)    ElseIf VampireStage == 3        VampireTransformIncreaseISMD.applyCrossFade(2.0)        utility.wait(2.0)        imageSpaceModifier.removeCrossFade()        Player.RemoveSpell(AbVampire01)        Player.RemoveSpell(AbVampire02)        Player.RemoveSpell(AbVampire01b)        Player.RemoveSpell(AbVampire02b)        Player.AddSpell(AbVampire03b, abVerbose = False)        Player.AddSpell(AbVampire03, abVerbose = False)        Player.AddSpell(VampireDrain03, abVerbose = False)        ;check to see if player has power equipped and switch them out        If Player.GetEquippedSpell(0) == VampireDrain02 || Player.GetEquippedSpell(0) == VampireDrain01            Player.EquipSpell(VampireDrain03, 0)                    EndIf                If Player.GetEquippedSpell(1) == VampireDrain02 || Player.GetEquippedSpell(1) == VampireDrain01            Player.EquipSpell(VampireDrain03, 1)        EndIf        Player.RemoveSpell(VampireDrain01)        Player.RemoveSpell(VampireDrain02)                Player.RemoveSpell(VampireRaiseThrall01)        Player.RemoveSpell(VampireRaiseThrall02)        Player.AddSpell(VampireRaiseThrall03, abVerbose = False)        ;Player.RemoveSpell(VampireStrength01)        ;Player.RemoveSpell(VampireStrength02)        ;Player.AddSpell(VampireStrength03, abVerbose = False)        Player.RemoveSpell(VampireSunDamage01)        Player.RemoveSpell(VampireSunDamage02)        Player.AddSpell(VampireSunDamage03, abVerbose = False)                ;Player.AddSpell(VampireHuntersSight)        ;Player.AddSpell(VampireCloak)    ElseIf VampireStage == 4        VampireTransformIncreaseISMD.applyCrossFade(2.0)        utility.wait(2.0)        imageSpaceModifier.removeCrossFade()        Player.RemoveSpell(AbVampire01)        Player.RemoveSpell(AbVampire02)        Player.RemoveSpell(AbVampire03)        Player.RemoveSpell(AbVampire01b)        Player.RemoveSpell(AbVampire02b)        Player.RemoveSpell(AbVampire03b)        Player.AddSpell(AbVampire04, abVerbose = False)        Player.AddSpell(AbVampire04b, abVerbose = False)        Player.AddSpell(VampireDrain04, abVerbose = False)                ;check to see if player has power equipped and switch them out        If Player.GetEquippedSpell(0) == VampireDrain03 || Player.GetEquippedSpell(0) == VampireDrain02 || Player.GetEquippedSpell(0) == VampireDrain01            Player.EquipSpell(VampireDrain04, 0)                    EndIf                If Player.GetEquippedSpell(1) == VampireDrain03 || Player.GetEquippedSpell(1) == VampireDrain02 || Player.GetEquippedSpell(1) == VampireDrain01            Player.EquipSpell(VampireDrain04, 1)        EndIf        Player.RemoveSpell(VampireDrain01)        Player.RemoveSpell(VampireDrain02)        Player.RemoveSpell(VampireDrain03)                        Player.RemoveSpell(VampireRaiseThrall01)        Player.RemoveSpell(VampireRaiseThrall02)        Player.RemoveSpell(VampireRaiseThrall03)        Player.AddSpell(VampireRaiseThrall04, abVerbose = False)        ;Player.RemoveSpell(VampireStrength01)        ;Player.RemoveSpell(VampireStrength02)        ;Player.RemoveSpell(VampireStrength03)        ;Player.AddSpell(VampireStrength04, abVerbose = False)        Player.RemoveSpell(VampireSunDamage01)        Player.RemoveSpell(VampireSunDamage02)        Player.RemoveSpell(VampireSunDamage03)        Player.AddSpell(VampireSunDamage04, abVerbose = False)                Player.AddSpell(VampireInvisibilityPC)                ElseIf VampireStage == 1        Player.AddSpell(ABVampireSkills, abVerbose = False)        Player.AddSpell(ABVampireSkills02, abVerbose = False)        Player.RemoveSpell(AbVampire04)        Player.RemoveSpell(AbVampire02)        Player.RemoveSpell(AbVampire03)        Player.RemoveSpell(AbVampire04b)        Player.RemoveSpell(AbVampire02b)        Player.RemoveSpell(AbVampire03b)        Player.AddSpell(AbVampire01, abVerbose = False)        Player.AddSpell(AbVampire01b, abVerbose = False)                Player.AddSpell(VampireDrain01, abVerbose = False)        ;check to see if player has power equipped and switch them out        If Player.GetEquippedSpell(0) == VampireDrain03 || Player.GetEquippedSpell(0) == VampireDrain04 || Player.GetEquippedSpell(0) == VampireDrain02            Player.EquipSpell(VampireDrain01, 0)                    EndIf                If Player.GetEquippedSpell(1) == VampireDrain03 || Player.GetEquippedSpell(1) == VampireDrain04 || Player.GetEquippedSpell(1) == VampireDrain02            Player.EquipSpell(VampireDrain01, 1)        EndIf        Player.RemoveSpell(VampireDrain04)        Player.RemoveSpell(VampireDrain02)        Player.RemoveSpell(VampireDrain03)                Player.RemoveSpell(VampireRaiseThrall04)        Player.RemoveSpell(VampireRaiseThrall02)        Player.RemoveSpell(VampireRaiseThrall03)        Player.AddSpell(VampireRaiseThrall01, abVerbose = False)        ;Player.RemoveSpell(VampireStrength04)        ;Player.RemoveSpell(VampireStrength02)        ;Player.RemoveSpell(VampireStrength03)        ;Player.AddSpell(VampireStrength01, abVerbose = False)        Player.RemoveSpell(VampireSunDamage04)        Player.RemoveSpell(VampireSunDamage02)        Player.RemoveSpell(VampireSunDamage03)        Player.AddSpell(VampireSunDamage01, abVerbose = False)                Player.RemoveSpell(VampireCharm)        ;Player.RemoveSpell(VampireCloak)        Player.RemoveSpell(VampireInvisibilityPC)        EndIfEndFunctionFunction VampireCure(Actor Player)        Game.IncrementStat( "Vampirism Cures" )    ;Stop tracking the Feed Timer    UnregisterforUpdateGameTime()    VampireStatus = 0    ;Player is no longer hated    Player.RemoveFromFaction(VampirePCFaction)    Player.SetAttackActorOnSight(False)        ;Remove all abilities    Player.RemoveSpell(ABVampireSkills)    Player.RemoveSpell(ABVampireSkills02)        Player.RemoveSpell(AbVampire01)    Player.RemoveSpell(AbVampire02)    Player.RemoveSpell(AbVampire03)    Player.RemoveSpell(AbVampire04)    Player.RemoveSpell(AbVampire01b)    Player.RemoveSpell(AbVampire02b)    Player.RemoveSpell(AbVampire03b)    Player.RemoveSpell(AbVampire04b)    Player.RemoveSpell(VampireDrain01)    Player.RemoveSpell(VampireDrain02)    Player.RemoveSpell(VampireDrain03)    Player.RemoveSpell(VampireDrain04)    Player.RemoveSpell(VampireRaiseThrall01)    Player.RemoveSpell(VampireRaiseThrall02)    Player.RemoveSpell(VampireRaiseThrall03)    Player.RemoveSpell(VampireRaiseThrall04)    ;Player.RemoveSpell(VampireStrength01)    ;Player.RemoveSpell(VampireStrength02)    ;Player.RemoveSpell(VampireStrength03)    ;Player.RemoveSpell(VampireStrength04)    Player.RemoveSpell(VampireSunDamage01)    Player.RemoveSpell(VampireSunDamage02)    Player.RemoveSpell(VampireSunDamage03)    Player.RemoveSpell(VampireSunDamage04)        Player.RemoveSpell(VampireCharm)    ;Player.RemoveSpell(VampireCloak)    Player.RemoveSpell(VampireInvisibilityPC)            ;Change player's race, defaults to Nord    if (Player.GetRace() == ArgonianRaceVampire)        Player.SetRace(ArgonianRace)    elseif (Player.GetRace() == BretonRaceVampire)        Player.SetRace(BretonRace)    elseif (Player.GetRace() == DarkElfRaceVampire)        Player.SetRace(DarkElfRace)    elseif (Player.GetRace() == HighELfRaceVampire)        Player.SetRace(HighElfRace)    elseif (Player.GetRace() == ImperialRaceVampire)        Player.SetRace(ImperialRace)    elseif (Player.GetRace() == KhajiitRaceVampire)        Player.SetRace(KhajiitRace)    elseif (Player.GetRace() == NordRaceVampire)        Player.SetRace(NordRace)    elseif (Player.GetRace() == OrcRaceVampire)        Player.SetRace(OrcRace)    elseif (Player.GetRace() == RedguardRaceVampire)        Player.SetRace(RedguardRace)    elseif (Player.GetRace() == WoodElfRaceVampire)        Player.SetRace(WoodElfRace)    endif    ;Set the Global for stat tracking    PlayerIsVampire.SetValue(0)        ;make sure Hunter's Sight is gone    Player.RemoveSpell(VampireHuntersSight)    EndFunctionSpell Property AbVampire01 AutoSpell Property AbVampire02 AutoSpell Property AbVampire03 AutoSpell Property AbVampire04 AutoSpell Property AbVampire01b AutoSpell Property AbVampire02b AutoSpell Property AbVampire03b AutoSpell Property AbVampire04b AutoSpell Property VampireDrain01 AutoSpell Property VampireDrain02 AutoSpell Property VampireDrain03 AutoSpell Property VampireDrain04 AutoSpell Property VampireRaiseThrall01 AutoSpell Property VampireRaiseThrall02 AutoSpell Property VampireRaiseThrall03 AutoSpell Property VampireRaiseThrall04 AutoSpell Property VampireStrength01 AutoSpell Property VampireStrength02 AutoSpell Property VampireStrength03 AutoSpell Property VampireStrength04 AutoSpell Property VampireSunDamage01 AutoSpell Property VampireSunDamage02 AutoSpell Property VampireSunDamage03 AutoSpell Property VampireSunDamage04 AutoSpell Property VampireHuntersSight AutoSpell Property VampireCharm AutoSpell Property VampireCloak AutoSpell Property VampireInvisibilityPC AutoSpell Property VampireCureDisease AutoSpell Property ABVampireSkills AutoSpell Property ABVampireSkills02 AutoSpell Property DiseasePorphyricHemophelia AutoGlobalVariable Property PlayerIsVampire  Auto  Sound  Property MagVampireTransform01  Auto  Spell Property DiseaseAtaxia autoSpell Property DiseaseBoneBreakFever AutoSpell Property DiseaseBrainRot AutoSpell Property DiseaseRattles AutoSpell Property DiseaseRockjoint autoSpell Property DiseaseWitbane AutoMessage Property VampireStage4Message AutoQuest Property VC01 AutoFormList Property CrimeFactions  Auto  
User avatar
sexy zara
 
Posts: 3268
Joined: Wed Nov 01, 2006 7:53 am

Post » Tue May 22, 2012 9:20 am

Draeka even if you change the name of your script you could strill be lazy and refer to it as PlayerVampireQuest in all the fragments and such. As long as its similar enough to the orig script of course. Anyways the less scripts you edit the better IMO

I misunderstood. My English is not perfect. Please forgive.
User avatar
Samantha Pattison
 
Posts: 3407
Joined: Sat Oct 28, 2006 8:19 pm

Post » Tue May 22, 2012 7:24 am

Wait a minute... that same line is commented out in the original script. You know what? You should leave it commented out.

When I look at the vampire set up in my own game, it looks like the Perk is handling the feeding animation. It's got a Papyrus fragment attached to it... and the name of that fragment is the same one that was throwing your compiler error. That fragment is trying to call PlayerVampireQuest.VampireFeed().

Try changing that to point to your own quest instead of PlayerVampireQuest...

DVampire.VampireFeed()

edit: now that I look over one of your posts above, I see you actually already pointed out that the perk was the offender here. Sorry I didn't notice that before :(
User avatar
J.P loves
 
Posts: 3487
Joined: Thu Jun 21, 2007 9:03 am

Post » Tue May 22, 2012 7:15 pm

Wait a minute... that same line is commented out in the original script. You know what? You should leave it commented out.

When I look at the vampire set up in my own game, it looks like the Perk is handling the feeding animation. It's got a Papyrus fragment attached to it... and the name of that fragment is the same one that was throwing your compiler error. That fragment is trying to call PlayerVampireQuest.VampireFeed().

Try changing that to point to your own quest instead of PlayerVampireQuest...
The original Vampire script is also horribly inefficient. How many function calls to Target.GetActorBase().GetRace() do you need to figure out what CureRace should be? One.
User avatar
LADONA
 
Posts: 3290
Joined: Wed Aug 15, 2007 3:52 am

Post » Tue May 22, 2012 7:13 pm

This is wracking my mind. No matter what I do the script fragment in the VampireFeed perk does not find the Function 'VampireFeed' inside my vampire quest script even though it is there. I can't figure it. It's delaying my update and driving me crazy.
User avatar
Kate Schofield
 
Posts: 3556
Joined: Mon Sep 18, 2006 11:58 am


Return to V - Skyrim