Mein Vampierscript? Da:
Code:
Scriptname VampireScript


short hasdisease
short currentday
short daycount
short vampday
short vampupdate
short randomdream
short doonce

float vamphour
float fQuestDelayTime

begin gamemode

if ( doonce == 0 )
	set randomdream to -1
	set fQuestDelayTime to 0.5
	set doonce to 1
endif

if ( PCVampire == -1 )
	return
endif


;SCRIPTING FOR ACQUIRING VAMPIRISM
;---------------------------------------------------------------------------------------------------------------------

If ( hasdisease == 0 )
	if ( Player.IsSpellTarget VampDisease == 1 )
		set hasdisease to 1
	endif
endif

;If player has been cured of disease, reset 'hasdisease' var

if ( hasdisease == 1 )
	if ( Player.IsSpellTarget VampDisease == 0 )
		set hasdisease to 0
	endif
endif

if ( hasdisease == 1 )
	if ( currentday == 0 )
		set currentday to GameDay
	else
		if currentday != gameday
			set daycount to ( daycount + 1 )
			set currentday to GameDay
		endif
	endif
endif
;If hasdisease still == 1, this is the first time the player has been in this state
;give him introductory messagebox (TEMP) and reset hasdisease var

if ( PCVampire == 1 )
	if ( hasdisease == 1 )
		if ( GetPCIsSex Male == 1 )
			Messagebox "Ihr träumt von jemandem, der friedlich in seinem Bett schläft, als ein hagerer Schatten lautlos ins Zimmer gleitet. Er nähert sich dem Bett, beugt sich über den Schlafenden und versenkt seine Reißzähne in dessen Hals. Nach einer Weile erhebt sich die blasse Figur, das Kinn tropfend von Blut. Als die Farbe in das Gesicht des Vampirs zurückkehrt und seine Züge sich wieder herausbilden, erkennt Ihr Euer eigenes Gesicht. Schreiend wacht Ihr auf."
		else
			Messagebox "Ihr träumt von jemandem, der friedlich in seinem Bett schläft, als ein hagerer Schatten lautlos ins Zimmer gleitet. Er nähert sich dem Bett, beugt sich über den Schlafenden und versenkt seine Reißzähne in dessen Hals. Nach einer Weile erhebt sich die blasse Figur, das Kinn tropfend von Blut. Als die Farbe in das Gesicht des Vampirs zurückkehrt und seine Züge sich wieder herausbilden, erkennt Ihr Euer eigenes Gesicht. Schreiend wacht Ihr auf."
		endif
		set hasdisease to -1
		player.addspell Vampirism25
		Player.addspell Vampirism25Att
		Player.addspell Vampirism25Skills
		Player.addspell VampireHuntersSight
		player.removespell VampDisease
		player.setfactionrank playervampirefaction 0
		addtopic CureforVampirism
		StartQuest MS40
		set vampday to GameDay
		set vamphour to GameHour
	endif
endif

;SCRIPTING FOR STATE CHANGES AS A VAMPIRE
;--------------------------------------------------------------------------------------------------------------------

;First things first. If player has fed, reset Vampirism level to 25 and start the counters over again

If ( PCVampire >= 1 )
	if ( Player.HasVampireFed == 1 )
		Set PCVampire to 1

;remove any spell from higher states

		Player.removespell Vampirism50
		Player.removespell Vampirism50Att
		Player.removespell Vampirism50Skills
		Player.removespell VampireSeduction
		Player.removespell Vampirism75
		Player.removespell Vampirism75Att
		Player.removespell Vampirism75Skills
		Player.removespell VampireReignofTerror
		Player.removespell Vampirism100
		Player.removespell Vampirism100Att
		Player.removespell Vampirism100Skills
		Player.removespell VampireEmbraceofShadows

;re-add state 1 spells

		Player.addspell Vampirism25
		Player.addspell Vampirism25Att
		Player.addspell Vampirism25Skills
		set vampday to GameDay
		set vamphour to GameHour
		MessageBox "Euer Hunger auf Blut ist gestillt... für den Augenblick."
	endif
endif

;Run a timer, checking for 24 hour intervals. If 24 hours have passed, increment vampupdate and reset hour/day vars

if ( PCVampire >= 1 )
	if ( vampday != GameDay )
		if ( ( vamphour + 1 ) < GameHour )
			set vampupdate to 1
			set vampday to GameDay
			set vamphour to GameHour
		elseif ( vamphour >= 22 )
			if ( vampday + 1 < Gameday )
				set vampupdate to 1
				set vampday to Gameday
				set vamphour to GameHour
			endif
		endif
	endif
endif



;When VampireState doesn't match Vampirism Effect, update effects

if ( PCVampire == 2 )
	if ( Player.getav vampirism == 25 )
		Player.removespell Vampirism25
		Player.removespell Vampirism25Att
		Player.removespell Vampirism25Skills
		Player.addspell Vampirism50
		Player.addspell Vampirism50Att
		Player.addspell Vampirism50Skills
		Player.addspell VampireSeduction
		set randomdream to GetRandomPercent
	endif
elseif ( PCVampire == 3 )
	if ( Player.getav vampirism == 50 )
		Player.removespell Vampirism50
		Player.removespell Vampirism50Att
		Player.removespell Vampirism50Skills
		Player.addspell Vampirism75
		Player.addspell Vampirism75Att
		Player.addspell Vampirism75Skills
		Player.addspell VampireReignofTerror
		set randomdream to GetRandomPercent
	endif
elseif ( PCVampire == 4 )
	if ( Player.getav Vampirism == 75 )
		Player.removespell Vampirism75
		Player.removespell Vampirism75Att
		Player.removespell Vampirism75Skills
		Player.Addspell Vampirism100
		Player.addspell Vampirism100Att
		Player.addspell Vampirism100Skills
		Player.addspell VampireEmbraceofShadows
		set randomdream to GetRandomPercent
	endif
endif


;Pick dream text based on randomdream var

if ( randomdream >= 0 )
	if ( randomdream <= 9 )
		MessageBox "Ihr träumt von langen Tagen, an denen Ihr im Sonnenlicht Eures Heimatlandes badet. Ihr fühlt die Wärme und die Hitze und spürt, wie Euer Körper erfrischt wird. Dann wacht Ihr auf und erkennt, es war nur ein Traum."
		set randomdream to -1
	elseif ( randomdream <= 19 )
		MessageBox "In Eurem Traum seht Ihr eine schöne junge Frau, die ein Kind an ihre Brust drückt. Erst als Ihr näherkommt, wird Euch klar, dass die Frau eine verdorrte Leiche ist und dass das Kind violett und aufgedunsen ist und an der Pest stirbt. Als Mutter und Kind zu Staub zerfallen, wacht Ihr auf. "
		set randomdream to -1
	elseif ( randomdream <= 29 )
		MessageBox "In Eurem Traum behandelt eine alte Hexe die Verbrennungen an Euren Händen. Als sie eine Salbe auf Eure Haut aufträgt, fühlt Ihr das Prickeln der Magie, als der Schmerz nachzulassen beginnt. Doch während Ihr zuschaut, beginnt das Fleisch Eurer Hände Blasen zu werfen, rissig zu werden und aufzureißen und in Fetzen auf den Boden ihrer Hütte zu fallen. Mit dem Lächeln der Hexe vor Augen wacht Ihr auf."
		set randomdream to -1
	elseif ( randomdream <= 39 )
		MessageBox "In einem Traum über Eure Kindheit erinnert Ihr Euch an Versteckspiele, mit denen Ihr und Eure Freunde Euch an einem warmen Sommernachmittag die Zeit vertriebt. Ihr versteckt Euch in der elterlichen Scheune in der sicheren Annahme, dort nicht gefunden zu werden. Bald schon wird der süße Heugeruch von einem düsteren, ekligen Hauch überdeckt."
		set randomdream to -1
	elseif ( randomdream <= 49 )
		MessageBox "Ihr träumt von einem üppigen Bankett, das vor Euch ausgebreitet ist. Ihr tut Euch gütlich an einer besonders feinen Portion Fleisch, und der Duft lässt Euch das Wasser im Mund zusammenlaufen. Erst als Ihr in das letzte Stück schneidet, seht Ihr die Maden, die sich darin winden. Ihr hustet Blut aus, während die Maden beginnen, sich durch Euren Magen nach draußen zu fressen."
		set randomdream to -1
	elseif ( randomdream <= 59 )
		MessageBox "Ihr liegt auf dem Rücken, und ein seliges Gefühl des Friedens erfüllt Euren Verstand. "
		set randomdream to -1
	elseif ( randomdream <= 69 )
		MessageBox "Eine warme, sanfte Brise kitzelt Euer Antlitz, doch als Ihr versucht, über Euer Gesicht zu wischen, stellt Ihr fest, dass Ihr Eure Arme nicht bewegen könnt. Als Ihr auf Eure Haut schaut, seht Ihr, dass sie sich in kaltes, grünes Glas verwandelt hat. Ihr steht stocksteif, nehmt rasche, flache Atemzüge, da Ihr wisst, dass eine Bewegung Eure Haut in Tausende von Stücken bersten lässt. Euer Gesicht juckt noch schlimmer, und Ihr wisst, Ihr werdet niesen."
		set randomdream to -1
	elseif ( randomdream <= 79 )
		MessageBox "In Eurem Traum öffnet Ihr Eure Augen und schaut in einen wundervollen blauen Himmel. Die Sonne scheint, doch Ihr fühlt Euch kalt, sogar ein wenig feucht. Ihr nehmt einen Atemzug, doch beginnt zu husten, als Ihr Blut und Erde aushustet, die Ihr in Eure Lunge gezogen habt. "
		set randomdream to -1
	elseif ( randomdream <= 89 )
		MessageBox "In Eurem Traum nähert Ihr Euch einem uralten Vampir. Da Ihr soeben einen gefährlichen Auftrag für ihn ausgeführt habt, seid Ihr stolzgeschwellt und sicher, dass er Euch nun noch größere Macht verleihen wird. Die Augen des gesamten Clans ruhen auf Euch. Während Ihr zum Podium schreitet, auf dem er wartet, wird Euch klar, dass der Auftrag in Wirklichkeit noch nicht abgeschlossen ist und dass Euch all Eure Vampirkräfte verlassen haben. "
		set randomdream to -1
	elseif ( randomdream <= 99 )
		MessageBox "In Eurem Traum wandert Ihr durch die kühle Nachtluft. Euer Körper schreit nach Blut, da Ihr seit Tagen nicht mehr gespeist habt. Schwach stolpert Ihr zu einem kleinen Teich. Als Ihr Euch hinabneigt, seht Ihr, dass in diesem Teich kein Wasser ist, sondern warmes, frisches Blut, von dem Dampf aufsteigt. Ihr senkt Euren Kopf, um zu trinken, doch könnt Euren Mund nicht öffnen."
		set randomdream to -1
	endif
endif




End


Begin MenuMode

;If player is resting after 3 days with disease, increment PCVampire and wake 'im up

if ( hasdisease == 1 )
	if ( currentday == 0 )
		set currentday to GameDay
	else
		if currentday != gameday
			set daycount to ( daycount + 1 )
			set currentday to GameDay
		endif
	endif
endif


if ( hasdisease == 1 )
	if ( daycount >= 3 )
		if ( IsPCSleeping == 1 )
			WakeUpPC	
			set PCVampire to 1
		endif
	endif
endif

;If player is ready for state change, check for time passing and increment PCVampire

if ( PCVampire >= 1 )
	if ( PCVampire < 4 )
		if ( vampupdate == 1 )
			if ( IsTimePassing == 1 )
				set PCVampire to ( PCVampire + 1 )
				set vampupdate to 0
				set vampday to GameDay
				set vamphour to GameHour			
			endif
		endif
	endif
endif

End

Allerdings hatt ich beim Test afaik auch Better Vampieres aktiv, dass auch Reverse Vampires beinhaltet. Das verändert das Skript wie folgt:

Code:
Scriptname VampireScript


short hasdisease
short currentday
short daycount
short vampday
short vampupdate
short randomdream
short doonce

float vamphour
float fQuestDelayTime

begin gamemode

if ( doonce == 0 )
	set randomdream to -1
	set fQuestDelayTime to 0.5
	set doonce to 1
endif

if ( PCVampire == -1 )
	return
endif


;SCRIPTING FOR ACQUIRING VAMPIRISM
;---------------------------------------------------------------------------------------------------------------------

If ( hasdisease == 0 )
	if ( Player.IsSpellTarget VampDisease == 1 )
		set hasdisease to 1
	endif
endif

;If player has been cured of disease, reset 'hasdisease' var

if ( hasdisease == 1 )
	if ( Player.IsSpellTarget VampDisease == 0 )
		set hasdisease to 0
	endif
endif

if ( hasdisease == 1 )
	if ( currentday == 0 )
		set currentday to GameDay
	else
		if currentday != gameday
			set daycount to ( daycount + 1 )
			set currentday to GameDay
		endif
	endif
endif
;If hasdisease still == 1, this is the first time the player has been in this state
;give him introductory messagebox (TEMP) and reset hasdisease var

if ( PCVampire == 1 )
	if ( hasdisease == 1 )
		if ( GetPCIsSex Male == 1 )
			Messagebox "Ihr träumt von jemandem, der friedlich in seinem Bett schläft, als ein hagerer Schatten lautlos ins Zimmer gleitet. Er nähert sich dem Bett, beugt sich über den Schlafenden und versenkt seine Reißzähne in dessen Hals. Nach einer Weile erhebt sich die blasse Figur, das Kinn tropfend von Blut. Als die Farbe in das Gesicht des Vampirs zurückkehrt und seine Züge sich wieder herausbilden, erkennt Ihr Euer eigenes Gesicht. Schreiend wacht Ihr auf."
		else
			Messagebox "Ihr träumt von jemandem, der friedlich in seinem Bett schläft, als ein hagerer Schatten lautlos ins Zimmer gleitet. Sie nähert sich dem Bett, beugt sich über den Schlafenden und versenkt ihre Reißzähne in dessen Hals. Nach einer Weile erhebt sich die blasse Figur, das Kinn tropfend von Blut. Als die Farbe in das Gesicht des Vampirs zurückkehrt und ihre Züge sich wieder herausbilden, erkennt Ihr Euer eigenes Gesicht. Schreiend wacht Ihr auf."
		endif
		set hasdisease to -1
		player.addspell Vampirism25
		Player.addspell Vampirism25Att
		Player.addspell Vampirism25Skills
		Player.addspell VampireHuntersSight
		Player.addspell VampireSeduction
		Player.addspell VampireReignofTerror
		Player.addspell VampireEmbraceofShadows
		Player.addspell Daywalk
		Player.addspell SleepyVoices
		player.removespell VampDisease
		player.setfactionrank playervampirefaction 0
		addtopic CureforVampirism
		StartQuest MS40
		set vampday to GameDay
		set vamphour to GameHour
	endif
endif

;SCRIPTING FOR STATE CHANGES AS A VAMPIRE
;--------------------------------------------------------------------------------------------------------------------

;First things first. If player has fed, reset Vampirism level to 25 and start the counters over again

If ( PCVampire >= 1 )
	if ( Player.HasVampireFed == 1 )
		Set PCVampire to 1

;remove any spell from higher states
		Player.removespell Vampirism50
		Player.removespell Vampirism50Att
		Player.removespell Vampirism50Skills
		Player.removespell Vampirism75
		Player.removespell Vampirism75Att
		Player.removespell Vampirism75Skills
		Player.removespell Vampirism100
		Player.removespell Vampirism100Att
		Player.removespell Vampirism100Skills
		Player.removespell vBloodrage
		Player.removespell Bloodrage
		player.removespell daywalk
		Player.removespell vDaywalk
		player.removespell vWeakness
		Player.removespell VampireHuntersSight
		Player.removespell VampireSeduction
		Player.removespell VampireReignofTerror
		Player.removespell VampireEmbraceofShadows
		Player.removespell SleepyVoices
;re-add state 1 spells

		Player.addspell Vampirism25
		Player.addspell Vampirism25Att
		Player.addspell Vampirism25Skills
		Player.addspell VampireHuntersSight
		Player.addspell VampireSeduction
		Player.addspell VampireReignofTerror
		Player.addspell VampireEmbraceofShadows
		player.addspell SleepyVoices
		Player.addspell Daywalk
		set vampday to GameDay
		set vamphour to GameHour
		MessageBox "Euer Hunger auf Blut ist gestillt... für den Augenblick."
	endif
endif

;Run a timer, checking for 24 hour intervals. If 24 hours have passed, increment vampupdate and reset hour/day vars

if ( PCVampire >= 1 )
	if ( vampday != GameDay )
		if ( ( vamphour + 1 ) < GameHour )
			set vampupdate to 1
			set vampday to GameDay
			set vamphour to GameHour
		elseif ( vamphour >= 24 )
			if ( vampday + 1 < Gameday )
				set vampupdate to 1
				set vampday to Gameday
				set vamphour to GameHour
			endif
		endif
	endif
endif



;When VampireState doesn't match Vampirism Effect, update effects

if ( PCVampire == 2 )
	if ( Player.getav vampirism == 25 )
		Player.removespell Vampirism25
		Player.removespell Vampirism25Att
		Player.removespell Vampirism25Skills
		Player.removespell vDaywalk
		Player.removespell VampireReignofTerror
		Player.removespell Daywalk
		Player.addspell Vampirism50
		Player.addspell Vampirism50Att
		Player.addspell Vampirism50Skills
		set randomdream to GetRandomPercent
	endif
elseif ( PCVampire == 3 )
	if ( Player.getav vampirism == 50 )
		Player.removespell Vampirism50
		Player.removespell Vampirism50Att
		Player.removespell Vampirism50Skills
		Player.removespell VampireEmbraceofShadows
		player.removespell sleepyvoices
		Player.addspell Vampirism75
		Player.addspell Vampirism75Att
		Player.addspell Vampirism75Skills
		set randomdream to GetRandomPercent
	endif
elseif ( PCVampire == 4 )
	if ( Player.getav Vampirism == 75 )
		Player.removespell Vampirism75
		Player.removespell Vampirism75Att
		Player.removespell Vampirism75Skills
		Player.removespell VampireSeduction
		Player.addSpell Bloodrage
		Player.Addspell Vampirism100
		Player.addspell Vampirism100Att
		Player.addspell Vampirism100Skills
		set randomdream to GetRandomPercent
	endif
endif


;Pick dream text based on randomdream var

if ( randomdream >= 0 )
	if ( randomdream <= 9 )
		MessageBox "Ihr träumt von langen Tagen, an denen Ihr im Sonnenlicht Eures Heimatlandes badet. Ihr fühlt die Wärme und die Hitze und spürt, wie Euer Körper erfrischt wird. Dann wacht Ihr auf und erkennt, es war nur ein Traum."
		set randomdream to -1
	elseif ( randomdream <= 19 )
		MessageBox "In Eurem Traum seht Ihr eine schöne junge Frau, die ein Kind an ihre Brust drückt. Erst als Ihr näherkommt, wird Euch klar, dass die Frau eine verdorrte Leiche ist und dass das Kind violett und aufgedunsen ist und an der Pest stirbt. Als Mutter und Kind zu Staub zerfallen, wacht Ihr auf. "
		set randomdream to -1
	elseif ( randomdream <= 29 )
		MessageBox "In Eurem Traum behandelt eine alte Hexe die Verbrennungen an Euren Händen. Als sie eine Salbe auf Eure Haut aufträgt, fühlt Ihr das Prickeln der Magie, als der Schmerz nachzulassen beginnt. Doch während Ihr zuschaut, beginnt das Fleisch Eurer Hände Blasen zu werfen, rissig zu werden und aufzureißen und in Fetzen auf den Boden ihrer Hütte zu fallen. Mit dem Lächeln der Hexe vor Augen wacht Ihr auf."
		set randomdream to -1
	elseif ( randomdream <= 39 )
		MessageBox "In einem Traum über Eure Kindheit erinnert Ihr Euch an Versteckspiele, mit denen Ihr und Eure Freunde Euch an einem warmen Sommernachmittag die Zeit vertriebt. Ihr versteckt Euch in der elterlichen Scheune in der sicheren Annahme, dort nicht gefunden zu werden. Bald schon wird der süße Heugeruch von einem düsteren, ekligen Hauch überdeckt."
		set randomdream to -1
	elseif ( randomdream <= 49 )
		MessageBox "Ihr träumt von einem üppigen Bankett, das vor Euch ausgebreitet ist. Ihr tut Euch gütlich an einer besonders feinen Portion Fleisch, und der Duft lässt Euch das Wasser im Mund zusammenlaufen. Erst als Ihr in das letzte Stück schneidet, seht Ihr die Maden, die sich darin winden. Ihr hustet Blut aus, während die Maden beginnen, sich durch Euren Magen nach draußen zu fressen."
		set randomdream to -1
	elseif ( randomdream <= 59 )
		MessageBox "Ihr liegt auf dem Rücken, und ein seliges Gefühl des Friedens erfüllt Euren Verstand. "
		set randomdream to -1
	elseif ( randomdream <= 69 )
		MessageBox "Eine warme, sanfte Brise kitzelt Euer Antlitz, doch als Ihr versucht, über Euer Gesicht zu wischen, stellt Ihr fest, dass Ihr Eure Arme nicht bewegen könnt. Als Ihr auf Eure Haut schaut, seht Ihr, dass sie sich in kaltes, grünes Glas verwandelt hat. Ihr steht stocksteif, nehmt rasche, flache Atemzüge, da Ihr wisst, dass eine Bewegung Eure Haut in Tausende von Stücken bersten lässt. Euer Gesicht juckt noch schlimmer, und Ihr wisst, Ihr werdet niesen."
		set randomdream to -1
	elseif ( randomdream <= 79 )
		MessageBox "In Eurem Traum öffnet Ihr Eure Augen und schaut in einen wundervollen blauen Himmel. Die Sonne scheint, doch Ihr fühlt Euch kalt, sogar ein wenig feucht. Ihr nehmt einen Atemzug, doch beginnt zu husten, als Ihr Blut und Erde aushustet, die Ihr in Eure Lunge gezogen habt. "
		set randomdream to -1
	elseif ( randomdream <= 89 )
		MessageBox "In Eurem Traum nähert Ihr Euch einem uralten Vampir. Da Ihr soeben einen gefährlichen Auftrag für ihn ausgeführt habt, seid Ihr stolzgeschwellt und sicher, dass er Euch nun noch größere Macht verleihen wird. Die Augen des gesamten Clans ruhen auf Euch. Während Ihr zum Podium schreitet, auf dem er wartet, wird Euch klar, dass der Auftrag in Wirklichkeit noch nicht abgeschlossen ist und dass Euch all Eure Vampirkräfte verlassen haben. "
		set randomdream to -1
	elseif ( randomdream <= 99 )
		MessageBox "In Eurem Traum wandert Ihr durch die kühle Nachtluft. Euer Körper schreit nach Blut, da Ihr seit Tagen nicht mehr gespeist habt. Schwach stolpert Ihr zu einem kleinen Teich. Als Ihr Euch hinabneigt, seht Ihr, dass in diesem Teich kein Wasser ist, sondern warmes, frisches Blut, von dem Dampf aufsteigt. Ihr senkt Euren Kopf, um zu trinken, doch könnt Euren Mund nicht öffnen."
		set randomdream to -1
	endif
endif




End


Begin MenuMode

;If player is resting after 3 days with disease, increment PCVampire and wake 'im up

if ( hasdisease == 1 )
	if ( currentday == 0 )
		set currentday to GameDay
	else
		if currentday != gameday
			set daycount to ( daycount + 1 )
			set currentday to GameDay
		endif
	endif
endif


if ( hasdisease == 1 )
	if ( daycount >= 3 )
		if ( IsPCSleeping == 1 )
			WakeUpPC	
			set PCVampire to 1
		endif
	endif
endif

;If player is ready for state change, check for time passing and increment PCVampire

if ( PCVampire >= 1 )
	if ( PCVampire < 4 )
		if ( vampupdate == 1 )
			if ( IsTimePassing == 1 )
				set PCVampire to ( PCVampire + 1 )
				set vampupdate to 0
				set vampday to GameDay
				set vamphour to GameHour			
			endif
		endif
	endif
endif

End
Sollte allerdings keinen Unterschied machen, da ich nur dem Skript sage die eben hinzugefügte Krankheit herrscht schon seit 3 Tagen und den Teil zum aufwecken übernehme mit dem Unterschied, dass ich nicht vorraussetzte, dass der Spieler schläft.