Construction Set Skriptthread zum Construction Set

Beim abspeichern des Scripts für den Teleport weigert sich das CS da es den Befehl nicht kennt und einen syntax-error auswirft. Muss ich noch etwas machen ausser OBSE 18 beta installiert zu haben damit das CS es erkennt oder muss ich die Scripts mit einem externen Programm erstellen?

Ich hab mich mit OBSE leider noch nicht viel bis garnicht beschäftigt.

Schönen Gruß Terry
 
Hallo, ich habe versucht einen Script für neuen Vampirismus zu schreiben. Er soll beim Bluttrinken den Vampirismus wieder auf 25 setzen, aber alle 2 Stunden um 5 erhöhen, sodass man relativ schnell wieder bei 100 angekommen ist.

Code:
Scriptname VampireScript

;Krankheit
short doonce
short hasdisease
short diseaseday
short diseasedaycount

;Variablen für Vampirstufe
short vampstatusupdate
float vampstatushour
float vampstatusday
float vampstatusdaycount

;Variablen für Vampirstatus
short vampmax
short vampnow
float vamphour
float vamphourcount

;Traum
short randomdream

float fQuestDelayTime


begin gamemode

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

;bereits geheilter Vampir
if ( PCVampire == -1 )
	return
endif

;VAMPIRISMUS BEKOMMEN
;---------------------------------------------------------------------------------------------------------------------

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

;vor Ablaufen der 3 Tage geheilt
if ( hasdisease == 1 )
	if ( Player.IsSpellTarget VampDisease == 0 )
		set hasdisease to 0
	endif
endif

if ( hasdisease == 1 )
	if ( diseaseday == 0 )
		set diseaseday to GameDay
	else
		if ( diseaseday != gameday )
			set diseasedaycount to ( diseasedaycount + 1 )
			set diseaseday to GameDay
		endif
	endif
endif
;If hasdisease still == 1, this is the first time the player has been in this state
;Nachricht, Stufe 25 Fähigkeiten, 'hasdisease' zurücksetzen

if ( PCVampire == 1 )
	if ( hasdisease == 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."
		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 vampstatusday to GameDay
		set vampstatushour to GameHour
	endif
endif

;VAMPIRISMUS STUFEN
;--------------------------------------------------------------------------------------------------------------------

;Blut trinken

if ( PCVampire >= 1 )
	if ( Player.HasVampireFed == 1 )
		set vampnow to 25
		;Variablen für Timer aktualisieren
		set vamphour to GameHour
		MessageBox "Euer Hunger auf Blut ist gestillt... für den Augenblick."
	endif
endif

;Vampirstufe alle 3 Tage aktualisieren
;'PCVampire' == 4 bzw. 'vampmax' == 100 ist maximaler Wert, daher ab 4 bzw. 100 nicht mehr aktualisieren
if (( PCVampire >= 1 ) && ( vampstatusupdate != 1 ))
	if (( PCVampire < 4 ) && ( vampmax < 100 ))
		;Tag vorbei
		if ( vampstatusday != GameDay )
			set vampstatusday to 0
			set vampstatusdaycount to ( vampstatusdaycount + 1 )
			if ( vampstatusdaycount >= 3 )
				set vampstatusdaycount to 0
				set vampstatusupdate to 1
			endif
		endif
	endif
endif

;Vampirstatus alle 2 Stunden aktualisieren
;Solange noch nicht maximaler Status erreicht ist
if ( vampnow < vampmax )
	if ( PCVampire >= 1 )
		;Stunde vorbei
		if ( vamphour != GameHour )
			set vamphourcount to ( vamphourcount + 1)
			if ( vamphourcount >= 2 )
				set vamphourcount to 0
				set vampnow to ( vampnow + 5)
			endif
			;aktualisieren
			set vamphour to GameHour
		endif
	endif
endif

;Vampirfähigkeiten aktualisieren

if (( vampnow < 50 ) && ( vampnow >= 25))
	if ( vampmax >= 25 )
		;Vampir Stufe 2-4 Fähigkeiten entfernen
		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

		;Vampir Stufe 1 Fähigkeiten hinzufügen
		Player.addspell Vampirism25
		Player.addspell Vampirism25Att
		Player.addspell Vampirism25Skills
		set PCVampire to 1
	endif
elseif (( vampnow < 75 ) && ( vampnow >= 50))
	if ( vampmax >= 50 )
		set PCVampire to 2
		Player.removespell Vampirism25
		Player.removespell Vampirism25Att
		Player.removespell Vampirism25Skills
		Player.addspell Vampirism50
		Player.addspell Vampirism50Att
		Player.addspell Vampirism50Skills
		Player.addspell VampireSeduction
	endif
elseif (( vampnow < 100 ) && ( vampnow >= 75))
	if ( vampmax >= 75 )
		set PCVampire to 3
		Player.removespell Vampirism50
		Player.removespell Vampirism50Att
		Player.removespell Vampirism50Skills
		Player.addspell Vampirism75
		Player.addspell Vampirism75Att
		Player.addspell Vampirism75Skills
		Player.addspell VampireReignofTerror
	endif
elseif ( vampnow == 100)
	if ( vampmax == 100 )
		set PCVampire to 4
		Player.removespell Vampirism75
		Player.removespell Vampirism75Att
		Player.removespell Vampirism75Skills
		Player.Addspell Vampirism100
		Player.addspell Vampirism100Att
		Player.addspell Vampirism100Skills
		Player.addspell VampireEmbraceofShadows
	endif
endif

;Traumtext auswählen (Zufall)

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

;3 Tage lang infiziert und schlafen => Vampirismusstufe 1

if ( hasdisease == 1 )
	if ( diseaseday == 0 )
		set diseaseday to GameDay
	else
		if diseaseday != gameday
			set diseasedaycount to ( diseasedaycount + 1 )
			set diseaseday to GameDay
		endif
	endif
endif

if ( hasdisease == 1 )
	if ( diseasedaycount >= 3 )
		if ( IsPCSleeping == 1 )
			WakeUpPC	
			set PCVampire to 1
			set vampmax to 25
		endif
	endif
endif

;Vampirstufenwechsel wenn 'vampirstatusupdate' == 1

if ( PCVampire >= 1 )
	if ( vampstatusupdate == 1 )
		if ( IsPCSleeping == 1 )
			set PCVampire to ( PCVampire + 1 )
			set vampmax to ( vampmax + 25 )
			;Variablen für Vampstufe Timer aktualisieren
			set vampstatusupdate to 0
			set vampstatusdaycount to 0
			set vampstatusday to GameDay
			set vampstatushour to GameHour
			;Traum
			set randomdream to GetRandomPercent
			set vampnow to vampmax
		endif
	endif
endif

End

Leider passiert durch das Bluttrinken gar nichts!

Ich hoffe, ihr könnt mir helfen!

mfg
Tach810i
 
Beim abspeichern des Scripts für den Teleport weigert sich das CS da es den Befehl nicht kennt und einen syntax-error auswirft. Muss ich noch etwas machen ausser OBSE 18 beta installiert zu haben damit das CS es erkennt oder muss ich die Scripts mit einem externen Programm erstellen?

Ich hab mich mit OBSE leider noch nicht viel bis garnicht beschäftigt.

Schönen Gruß Terry

Ja, du erstellst eine Verknüpfung zum OBSE-Loader mit dem Zusatz -editor im Eigenschaften/Ziel Feld.

Code:
Scriptname VampireScript

;Krankheit
short doonce
short hasdisease
short diseaseday
short diseasedaycount

;Variablen für Vampirstufe
short vampstatusupdate
float vampstatushour
float vampstatusday
float vampstatusdaycount

;Variablen für Vampirstatus
short vampmax
short vampnow
float vamphour
float vamphourcount

;Traum
short randomdream

float fQuestDelayTime


begin gamemode

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

;bereits geheilter Vampir
if ( PCVampire == -1 )
	return
endif

;VAMPIRISMUS BEKOMMEN
;---------------------------------------------------------------------------------------------------------------------

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

;vor Ablaufen der 3 Tage geheilt
if ( hasdisease == 1 )
	if ( Player.IsSpellTarget VampDisease == 0 )
		set hasdisease to 0
	endif
endif

if ( hasdisease == 1 )
	if ( diseaseday == 0 )
		set diseaseday to GameDay
	else
		if ( diseaseday != gameday )
			set diseasedaycount to ( diseasedaycount + 1 )
			set diseaseday to GameDay
		endif
	endif
endif
;If hasdisease still == 1, this is the first time the player has been in this state
;Nachricht, Stufe 25 Fähigkeiten, 'hasdisease' zurücksetzen

if ( PCVampire == 1 )
	if ( hasdisease == 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."
		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 vampstatusday to GameDay
		set vampstatushour to GameHour
	endif
endif

;VAMPIRISMUS STUFEN
;--------------------------------------------------------------------------------------------------------------------

;Blut trinken

if ( PCVampire >= 1 )
	if ( Player.HasVampireFed == 1 )
		set vampnow to 25
		;Variablen für Timer aktualisieren
		set vamphour to GameHour
		MessageBox "Euer Hunger auf Blut ist gestillt... für den Augenblick."
	endif
endif

;Vampirstufe alle 3 Tage aktualisieren
;'PCVampire' == 4 bzw. 'vampmax' == 100 ist maximaler Wert, daher ab 4 bzw. 100 nicht mehr aktualisieren
if (( PCVampire >= 1 ) && ( vampstatusupdate != 1 ))
	if (( PCVampire < 4 ) && ( vampmax < 100 ))
		;Tag vorbei
		if ( vampstatusday != GameDay )
			set vampstatusday to 0
			set vampstatusdaycount to ( vampstatusdaycount + 1 )
			if ( vampstatusdaycount >= 3 )
				set vampstatusdaycount to 0
				set vampstatusupdate to 1
			endif
		endif
	endif
endif

;Vampirstatus alle 2 Stunden aktualisieren
;Solange noch nicht maximaler Status erreicht ist
[COLOR="Red"]if ( vampnow < vampmax )
	if ( PCVampire >= 1 )
		;Stunde vorbei
		if ( vamphour != GameHour )
			set vamphourcount to ( vamphourcount + 1)
			if ( vamphourcount >= 2 )
				set vamphourcount to 0
				set vampnow to ( vampnow + 5)
			endif
			;aktualisieren
			set vamphour to GameHour
		endif
	endif
endif

;Vampirfähigkeiten aktualisieren

if (( vampnow < 50 ) && ( vampnow >= 25))
	if ( vampmax >= 25 ) && vampmax < 50
		;Vampir Stufe 2-4 Fähigkeiten entfernen
		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

		;Vampir Stufe 1 Fähigkeiten hinzufügen
		Player.addspell Vampirism25
		Player.addspell Vampirism25Att
		Player.addspell Vampirism25Skills
		set PCVampire to 1
	endif
elseif (( vampnow < 75 ) && ( vampnow >= 50))
	if ( vampmax >= 50 ) && vampmax < 75
		set PCVampire to 2
		Player.removespell Vampirism25
		Player.removespell Vampirism25Att
		Player.removespell Vampirism25Skills
		Player.addspell Vampirism50
		Player.addspell Vampirism50Att
		Player.addspell Vampirism50Skills
		Player.addspell VampireSeduction
	endif
elseif (( vampnow < 100 ) && ( vampnow >= 75))
	if ( vampmax >= 75 ) && vampmax < 100
		set PCVampire to 3
		Player.removespell Vampirism50
		Player.removespell Vampirism50Att
		Player.removespell Vampirism50Skills
		Player.addspell Vampirism75
		Player.addspell Vampirism75Att
		Player.addspell Vampirism75Skills
		Player.addspell VampireReignofTerror
	endif
elseif ( vampnow == 100)
	if ( vampmax == 100 )
		set PCVampire to 4
		Player.removespell Vampirism75
		Player.removespell Vampirism75Att
		Player.removespell Vampirism75Skills
		Player.Addspell Vampirism100
		Player.addspell Vampirism100Att
		Player.addspell Vampirism100Skills
		Player.addspell VampireEmbraceofShadows
	endif
endif
[/COLOR]
;Traumtext auswählen (Zufall)

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

;3 Tage lang infiziert und schlafen => Vampirismusstufe 1

if ( hasdisease == 1 )
	if ( diseaseday == 0 )
		set diseaseday to GameDay
	else
		if diseaseday != gameday
			set diseasedaycount to ( diseasedaycount + 1 )
			set diseaseday to GameDay
		endif
	endif
endif

if ( hasdisease == 1 )
	if ( diseasedaycount >= 3 )
		if ( IsPCSleeping == 1 )
			WakeUpPC	
			set PCVampire to 1
			set vampmax to 25
		endif
	endif
endif

;Vampirstufenwechsel wenn 'vampirstatusupdate' == 1

if ( PCVampire >= 1 )
	if ( vampstatusupdate == 1 )
		if ( IsPCSleeping == 1 )
			set PCVampire to ( PCVampire + 1 )
			set vampmax to ( vampmax + 25 )
			;Variablen für Vampstufe Timer aktualisieren
			set vampstatusupdate to 0
			set vampstatusdaycount to 0
			set vampstatusday to GameDay
			set vampstatushour to GameHour
			;Traum
			set randomdream to GetRandomPercent
			set vampnow to vampmax
		endif
	endif
endif

End

Es könnte daran liegen, das der Vampmax Wer nicht richtig abgefragt wird.
Hast du vielleicht nicht lang genug gewartet?
 
Zuletzt bearbeitet:
>Es könnte daran liegen, das der Vampmax Wer nicht richtig abgefragt wird.
Hast du vielleicht nicht lang genug gewartet?

Wie meinst du das?
 
Er meint das du eventuell die Abfrage falsch gesetzt hast oder du Ingame nicht lang genug gewartet hast.
Ein Script läuft zwar ziemlich schnell ingame (Halt bei deinem Script 0,5 Frames für das Script) aber manchmal kann es halt auch dauern. Manchmal ist es auch besser es einmal durchlaufen zu lassen und dann die Abfragen zu starten.
 
Genau, außerdem meine ich damit, das Oblivion bei der VampMax >= 25 abfrage ein Problem bekommen dürfe, weil immer nur das das erste eintreten kann, da alle darauf folgenden Werte über 25 liegen, Oblivion aber immer den >= 25 als erstes abarbeitet. Schau dir den Script in der Post oben an, da ist es schon geändert.
 
Mh, habe nun zum testen erstmal eine Tür geändert und das Script drauf gelegt. Wenn ich den Ring benutz kommt die Messagebox bereits im Inventar wie bekomm ich es hin das sie sich erst nach dem Schließen des Inventars öffnet?
Wenn ich nun die Tür aktiviere passiert überhaupt nichts.
Kann es sein das sich das Script immer wieder wiederholt da es ja bei aktivieren startet und die selbe Tür wieder aktiviert.
Ich könnt die SetDoorTeleport-Befehle ja auch in das Script vom Ring legen.

Ring-Script:
Das Script hab ich abgeändert aus dem Ei-der-Zeit-Wiki, muss ich villeicht noch mehr ändern, da das Script für einen Activator gedacht war und nicht für ein Item
Code:
scn aaHentaiManiaActivatorScript

short HentaiMania
short Button
short RealiseSelection

Begin OnEquip Player
	If ( RealiseSelection == 0 )
		MessageBox "Wollt ihr die Hentai Mania Dungeons aktivieren?", "Ja", "Nein"   
		Set RealiseSelection to 1
	ElseIf ( RealiseSelection > 0 )
		Activate
	EndIf
End


Begin GameMode

	If ( RealiseSelection == 1 )
		Set button to GetButtonPressed
		If ( button == -1 )
			Return
		elseif  Button ==  0
			Set aaHentaiMania to 1
			Set RealiseSelection to 0
		elseif  button ==  1
			Set HentaiMania to 0
			Set RealiseSelection to 0
		endif
	endif
End
 
Mh, habe nun zum testen erstmal eine Tür geändert und das Script drauf gelegt. Wenn ich den Ring benutz kommt die Messagebox bereits im Inventar wie bekomm ich es hin das sie sich erst nach dem Schließen des Inventars öffnet?
Wenn ich nun die Tür aktiviere passiert überhaupt nichts.
Kann es sein das sich das Script immer wieder wiederholt da es ja bei aktivieren startet und die selbe Tür wieder aktiviert.
Ich könnt die SetDoorTeleport-Befehle ja auch in das Script vom Ring legen.

Ring-Script:
Das Script hab ich abgeändert aus dem Ei-der-Zeit-Wiki, muss ich villeicht noch mehr ändern, da das Script für einen Activator gedacht war und nicht für ein Item
Code:
scn aaHentaiManiaActivatorScript

short HentaiMania
short Button
short RealiseSelection

Begin OnEquip Player
		MessageBox "Wollt ihr die Hentai Mania Dungeons aktivieren?", "Ja", "Nein"
Set RealiseSelection to 1
End


Begin GameMode

	If ( RealiseSelection == 1 )
		Set button to GetButtonPressed
		If ( button == -1 )
			Return
		elseif  Button ==  0
			Set aaHentaiMania to 1
			Set RealiseSelection to 0
		elseif  button ==  1
			Set HentaiMania to 0
			Set RealiseSelection to 0
		endif
	endif
End

Du solltest das Script Objekt nicht als richtig Anziehbares Objekt erstellen, erstell es als Misc-Item, also als so eines, dass dann beim Anziehen sagt "Kann nicht equipped werden".
Würde 2 Probleme beheben:
1. Die Sache mit dem Wiederholen, im Moment wird alles wiederholt solange der Spieler den Ring an hat.
2. Die Sache mit der zu früh erscheinenden Messagebox.
 
Zuletzt bearbeitet:
Hallo!
Auch ich hab mal wieder eine Frage, zum Thema reapieren von Waffen und Rüstungen per Zauber. Gibt es also eine Möglichkeit dies per Zauber zu machen. Natürlich mit bestimmten Voraussetzungen, diese wären z.b. einmal täglich oder nur für bestimmte Waffen.
Könnte mir also einer helfen?
 
Sry, ich habe die letzten Seiten nachgeguckt und habe nichts gefunden. Könntest du bitte eine seitenzahl oder einen Link posten.
 
Tut mir leid, ich finde es grade auch nicht.

Sollte aber gehen mit:
Code:
reference.ModEquippedCurrentHealth modifyBy:float slot:short
Klick

oder mit
Code:
SetEquippedCurrentHealth
Klick

Wenn du mir die genauen Parameter sagst, helf ich dir auch gerne noch bei dem Rest.
 
  • Like
Reaktionen: Jama
Ich hab das Script jetzt etwas verändern und es funktioniert super, bis auf die Zeitregelung: Statt alle 2 (ingame) Stunden vampnow um 5 zu erhöhen wird es schon nach 10 (reellen) Sekunden um 25 erhöht! Woran liegt das?

Code:
Scriptname VampireScript

;Krankheit
short doonce
short hasdisease
short diseaseday
short diseasedaycount

;Variablen für Vampirstufe
short vampstatusupdate
float vampstatushour
float vampstatusday
float vampstatusdaycount

;Variablen für Vampirstatus
short vampmax
short vampnow
float vamphour
float vamphourcount

;Traum
short randomdream

float fQuestDelayTime


begin gamemode

if ( doonce == 0 )
	set randomdream to -1
	set fQuestDelayTime to 0.5
	set doonce to 1
	;Falls bereits Vampir, anpassen
	if (PCVampire == 1)
		set vampmax to 25
	elseif (PCVampire == 2)
		set vampmax to 50
	elseif (PCVampire == 3)
		set vampmax to 75
	elseif (PCVampire == 4)
		set vampmax to 100
	endif
endif

;bereits geheilter Vampir
if ( PCVampire == -1 )
	return
endif

;VAMPIRISMUS BEKOMMEN
;---------------------------------------------------------------------------------------------------------------------

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

;vor Ablaufen der 3 Tage geheilt
if ( hasdisease == 1 )
	if ( Player.IsSpellTarget VampDisease == 0 )
		set hasdisease to 0
	endif
endif

if ( hasdisease == 1 )
	if ( diseaseday == 0 )
		set diseaseday to GameDay
	else
		if ( diseaseday != gameday )
			set diseasedaycount to ( diseasedaycount + 1 )
			set diseaseday to GameDay
		endif
	endif
endif
;If hasdisease still == 1, this is the first time the player has been in this state
;Nachricht, Stufe 25 Fähigkeiten, 'hasdisease' zurücksetzen

if ( PCVampire == 1 )
	if ( hasdisease == 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."
		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 vampstatusday to GameDay
		set vampstatushour to GameHour
	endif
endif

;VAMPIRISMUS STUFEN
;--------------------------------------------------------------------------------------------------------------------

;Blut trinken

if ( PCVampire >= 1 )
	if ( Player.HasVampireFed == 1 )
		set vampnow to 25
		;Variablen für Timer aktualisieren
		set vamphour to GameHour
		MessageBox "Euer Hunger auf Blut ist gestillt... für den Augenblick."
	endif
endif

;Vampirstufe alle 3 Tage aktualisieren
;'PCVampire' == 4 bzw. 'vampmax' == 100 ist maximaler Wert, daher ab 4 bzw. 100 nicht mehr aktualisieren
if (( PCVampire >= 1 ) && ( vampstatusupdate != 1 ))
	if (( PCVampire < 4 ) && ( vampmax < 100 ))
		;Tag vorbei
		if ( vampstatusday != GameDay )
			set vampstatusday to 0
			set vampstatusdaycount to ( vampstatusdaycount + 1 )
			if ( vampstatusdaycount >= 3 )
				set vampstatusdaycount to 0
				set vampstatusupdate to 1
			endif
		endif
	endif
endif

;Vampirstatus alle 2 Stunden aktualisieren
;Solange noch nicht maximaler Status erreicht ist
if ( vampnow < vampmax )
	if ( PCVampire >= 1 )
		;Stunde vorbei
		if ( vamphour != GameHour )
			set vamphourcount to ( vamphourcount + 1)
			if ( vamphourcount >= 2 )
				set vamphourcount to 0
				set vampnow to ( vampnow + 5)
			endif
			;aktualisieren
			set vamphour to GameHour
		endif
	endif
endif

;Vampirfähigkeiten aktualisieren

if (( vampnow < 50 ) && ( vampnow >= 25))
		;Vampir Stufe 2-4 Fähigkeiten entfernen
		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

		;Vampir Stufe 1 Fähigkeiten hinzufügen
		Player.addspell Vampirism25
		Player.addspell Vampirism25Att
		Player.addspell Vampirism25Skills
		set PCVampire to 1
elseif (( vampnow < 75 ) && ( vampnow >= 50))
		set PCVampire to 2
		Player.removespell Vampirism25
		Player.removespell Vampirism25Att
		Player.removespell Vampirism25Skills
		Player.addspell Vampirism50
		Player.addspell Vampirism50Att
		Player.addspell Vampirism50Skills
		Player.addspell VampireSeduction
elseif (( vampnow < 100 ) && ( vampnow >= 75))
		set PCVampire to 3
		Player.removespell Vampirism50
		Player.removespell Vampirism50Att
		Player.removespell Vampirism50Skills
		Player.addspell Vampirism75
		Player.addspell Vampirism75Att
		Player.addspell Vampirism75Skills
		Player.addspell VampireReignofTerror
elseif ( vampnow == 100)
		set PCVampire to 4
		Player.removespell Vampirism75
		Player.removespell Vampirism75Att
		Player.removespell Vampirism75Skills
		Player.Addspell Vampirism100
		Player.addspell Vampirism100Att
		Player.addspell Vampirism100Skills
		Player.addspell VampireEmbraceofShadows
endif

;Traumtext auswählen (Zufall)

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

;3 Tage lang infiziert und schlafen => Vampirismusstufe 1

if ( hasdisease == 1 )
	if ( diseaseday == 0 )
		set diseaseday to GameDay
	else
		if diseaseday != gameday
			set diseasedaycount to ( diseasedaycount + 1 )
			set diseaseday to GameDay
		endif
	endif
endif

if ( hasdisease == 1 )
	if ( diseasedaycount >= 3 )
		if ( IsPCSleeping == 1 )
			WakeUpPC	
			set PCVampire to 1
			set vampmax to 25
		endif
	endif
endif

;Vampirstufenwechsel wenn 'vampirstatusupdate' == 1

if ( PCVampire >= 1 )
	if ( vampstatusupdate == 1 )
		if ( IsPCSleeping == 1 )
			set PCVampire to ( PCVampire + 1 )
			set vampmax to ( vampmax + 25 )
			;Variablen für Vampstufe Timer aktualisieren
			set vampstatusupdate to 0
			set vampstatusdaycount to 0
			set vampstatusday to GameDay
			set vampstatushour to GameHour
			;Traum
			set randomdream to GetRandomPercent
			set vampnow to vampmax
		endif
	endif
endif

End
 
Du solltest den ganzen Absatz ersetzen, durch die Sache mit dem Aktualisieren, wird das alles immer direkt wieder auf die selbe Zeit gesetzt.
GameHour gibt die, trotz des Namens, die ganze Uhrzeit an also z.B. 2:30 pm als 2.50. Daher ist das immer sobald es nur eine Minute weitergeht ungleich VampHour.

Code:
If Vampnow < Vampmax
           If PcVampire == 1 && [COLOR="Red"]Timer[/COLOR] == 0
              Set VampHour To GameHour + 2.00
              Set Timer to 1
           elseif PcVampire == 1 && Timer == 1
              If GameHour >=  VampHour
                 Dein Code kommt hierhin
                 .....
                 Set timer to 0
               endif
             endif
endif
 
Wolltest du mir nicht auch noch helfen?
Oder irgent jemand anders?

Keine Angst, nicht hetzen^^

Also

Da das ganze ein Zauber ist, wird es etwas schwerer. Du brauchst eine Global, nenn wir sie RepairDay.

Code:
scn Wasauchimmer

short confirmed

Begin ScriptEffectStart
If GameDay != RepairDay
   set confirmed to 1
else
   Set confirmed to 0
endif
end

Begin ScriptEffectUpdate
If confirmed == 1
   player.SetEquippedCurrentHealth HealthWert SlotNummer ;Beliebig Oft, jenachdem was du alles Reparieren willst.
Set RepairDay to GameDay
endif
end

Begin ScriptEffectFinish
End

Jetzt ist das Reparieren jeden angefangenen Tag um verfügbar, egal wann man es am Vortag benutzt hat. Man könnte es auch machen, dass es nur alle 24h geht, ist aber schwieriger.
 
Und diesen Script soll ich jetzt als Zauber neuanlegen?

Edit: Es gibt immer einen Fehler wen ich den Script als Magic-Effekt einbinde?
 
Zuletzt bearbeitet:
Deine Version funktioniert nicht, und meine mit Wert 150 statt Wert 2 auch nicht. Die Stufe bleibt einfach 25.