# Conflicts: # scripts/_00e_questfunctions.pex # source/scripts/_00e_questfunctions.pscenglish-generic-dialogue
parent
0eae024fce
commit
bd6ebd82b7
77 changed files with 813 additions and 479 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,47 +1,16 @@ |
||||
Scriptname _00E_FS_Theriantrophist_AllowTempTSC extends ObjectReference |
||||
|
||||
Event OnTriggerEnter(ObjectReference akActionRef) |
||||
|
||||
if akActionRef == PlayerREF |
||||
|
||||
If akActionRef == PlayerREF |
||||
_00E_FS_Theriantrophist_AllowTemporaryTransform.SetValueInt(1) |
||||
|
||||
if bCrampyDungeon |
||||
fOriginalScale = PlayerREF.GetScale() |
||||
PlayerREF.SetScale(0.92) |
||||
endif |
||||
|
||||
endif |
||||
|
||||
|
||||
|
||||
EndIf |
||||
EndEvent |
||||
|
||||
Event OnTriggerLeave(ObjectReference akActionRef) |
||||
|
||||
if akActionRef == PlayerREF |
||||
|
||||
If akActionRef == PlayerREF |
||||
_00E_FS_Theriantrophist_AllowTemporaryTransform.SetValueInt(0) |
||||
|
||||
if bCrampyDungeon |
||||
|
||||
if fOriginalScale > 0 |
||||
PlayerREF.SetScale(fOriginalScale) |
||||
else |
||||
PlayerREF.SetScale(1.0) |
||||
endif |
||||
|
||||
endif |
||||
|
||||
endif |
||||
|
||||
|
||||
EndIf |
||||
EndEvent |
||||
|
||||
float fOriginalScale = 1.0 |
||||
|
||||
bool Property bCrampyDungeon = False Auto |
||||
; This makes the werewolf a bit smaller |
||||
|
||||
Actor Property PlayerREF Auto |
||||
GlobalVariable Property _00E_FS_Theriantrophist_AllowTemporaryTransform Auto |
@ -1,21 +1,127 @@ |
||||
Scriptname _00E_MQ13a_GrammophoneSC extends ObjectReference |
||||
|
||||
Event OnUpdate() |
||||
Actor Property PlayerREF Auto |
||||
Sound Property _00E_MUS_Special_DrachenflugM Auto |
||||
Message Property _00E_PlayerhousingKoppophonVolume Auto |
||||
|
||||
Int iSoundID = -1 |
||||
Float fVolume = 0.5 |
||||
Bool bMusicLocked = False |
||||
|
||||
Float Property MUSIC_LENGTH = 243.0 AutoReadOnly |
||||
|
||||
|
||||
;===================================================================================== |
||||
; FUNCTIONS |
||||
;===================================================================================== |
||||
|
||||
Function PlayMusic(Sound musicSound, Float fMusicLength) |
||||
If fVolume <= 0.0 || fVolume > 1.0 |
||||
fVolume = 0.5 |
||||
EndIf |
||||
RegisterForModEvent("BardsLoadGame", "OnBardsLoadGame") |
||||
iSoundID = musicSound.Play(Self) |
||||
Sound.SetInstanceVolume(iSoundID, fVolume) |
||||
RegisterForSingleUpdate(_00E_QuestFunctions.AdjustTimePeriodByEngineTimerError(fMusicLength)) |
||||
GoToState("") |
||||
_00E_PlayerhousingKoppophonVolume.Show(fVolume * 100.0) |
||||
EndFunction |
||||
|
||||
Function ChangeMusicVolume() |
||||
If fVolume >= 0.0 && fVolume < 1.0 |
||||
fVolume += 0.25 |
||||
Else ; fVolume >= 1.0 or something is wrong with fVolume |
||||
fVolume = 0.0 |
||||
EndIf |
||||
Sound.SetInstanceVolume(iSoundID, fVolume) |
||||
_00E_PlayerhousingKoppophonVolume.Show(fVolume * 100.0) |
||||
EndFunction |
||||
|
||||
Function StopMusic() |
||||
bMusicLocked = True |
||||
|
||||
GoToState("DoneCleanup") |
||||
UnregisterForModEvent("BardsLoadGame") |
||||
UnregisterForUpdate() |
||||
|
||||
If iSoundID != -1 |
||||
Sound.StopInstance(iSoundID) |
||||
iSoundID = -1 |
||||
EndIf |
||||
|
||||
bMusicLocked = False |
||||
EndFunction |
||||
|
||||
Function TryStopMusic() |
||||
If bMusicLocked == False |
||||
StopMusic() |
||||
Else |
||||
RegisterForSingleUpdate(0.5) |
||||
EndIf |
||||
EndFunction |
||||
|
||||
|
||||
bIsPlaying = False |
||||
;===================================================================================== |
||||
; EVENTS |
||||
;===================================================================================== |
||||
|
||||
Event OnInit() |
||||
GoToState("DoneCleanup") |
||||
EndEvent |
||||
|
||||
Event OnActivate(ObjectReference akActionRef) |
||||
If akActionRef == PlayerREF && bMusicLocked == False |
||||
bMusicLocked = True |
||||
|
||||
If !bIsPlaying |
||||
bIsPlaying = True |
||||
_00E_MUS_Special_DrachenflugM.Play(Self) |
||||
RegisterForSingleUpdate(160) |
||||
If iSoundID == -1 |
||||
PlayMusic(_00E_MUS_Special_DrachenflugM, MUSIC_LENGTH) |
||||
Else |
||||
ChangeMusicVolume() |
||||
EndIf |
||||
|
||||
bMusicLocked = False |
||||
EndIf |
||||
|
||||
EndEvent |
||||
|
||||
bool bIsPlaying |
||||
Event OnUpdate() |
||||
TryStopMusic() |
||||
EndEvent |
||||
|
||||
Event OnBardsLoadGame(string eventName, string strArg, float numArg, Form sender) |
||||
; Player just loaded a save with the gramophone playing. The sound is dead by now. |
||||
TryStopMusic() |
||||
EndEvent |
||||
|
||||
Event OnCellAttach() |
||||
TryStopMusic() |
||||
EndEvent |
||||
|
||||
Event OnLoad() |
||||
TryStopMusic() |
||||
EndEvent |
||||
|
||||
Event OnCellDetach() |
||||
TryStopMusic() |
||||
EndEvent |
||||
|
||||
Event OnUnload() |
||||
TryStopMusic() |
||||
EndEvent |
||||
|
||||
State DoneCleanup |
||||
Event OnCellAttach() |
||||
; Do nothing |
||||
EndEvent |
||||
|
||||
Event OnLoad() |
||||
; Do nothing |
||||
EndEvent |
||||
|
||||
Event OnCellDetach() |
||||
; Do nothing |
||||
EndEvent |
||||
|
||||
Sound Property _00E_MUS_Special_DrachenflugM Auto |
||||
Event OnUnload() |
||||
; Do nothing |
||||
EndEvent |
||||
EndState |
||||
|
@ -0,0 +1,5 @@ |
||||
Scriptname _00E_PerkBlutrauschFFAimedScript extends activemagiceffect |
||||
|
||||
Event OnEffectStart(Actor akTarget, Actor akCaster) |
||||
Debug.Trace("Bloodlust: OnEffectStart") |
||||
EndEvent |
@ -1,10 +1,14 @@ |
||||
Scriptname _00E_SmokingPipeScript extends ObjectReference |
||||
Scriptname _00E_SmokingPipeScript extends ObjectReference |
||||
|
||||
_00E_PeaceweedControlScript Property PeaceweedControl Auto |
||||
Actor Property PlayerRef Auto |
||||
|
||||
Event OnEquipped(Actor akActor) |
||||
If akActor == PlayerRef |
||||
PeaceweedControl.StartSmoking() |
||||
; The check of base object is needed because this script somehow gets attached to the quest ref of _00E_FS_NQ07_Rezept (and to various containers) |
||||
Form baseObj = GetBaseObject() |
||||
If baseObj == None || (baseObj as MiscObject) != None |
||||
PeaceweedControl.StartSmoking() |
||||
EndIf |
||||
EndIf |
||||
EndEvent |
@ -1,27 +1,30 @@ |
||||
Scriptname _00E_Theriantrophist_BlockCraftingSC extends ObjectReference |
||||
|
||||
Event OnInit() |
||||
Actor Property PlayerREF Auto |
||||
Message Property _00E_Theriantrophist_CantCraftMSG Auto |
||||
Race Property _00E_Theriantrophist_PlayerWerewolfRace Auto |
||||
|
||||
Bool bActivationBlocked = False |
||||
|
||||
BlockActivation(True) |
||||
|
||||
Event OnInit() |
||||
BlockActivation(True) |
||||
EndEvent |
||||
|
||||
Event OnActivate(ObjectReference akActionRef) |
||||
If akActionRef == PlayerREF |
||||
If _00E_PlayerhousingMaster.ReferenceCanBeActivated(Self) && bActivationBlocked == False |
||||
bActivationBlocked = True |
||||
|
||||
if akActionRef == PlayerREF |
||||
|
||||
if PlayerREF.GetRace() == _00E_Theriantrophist_PlayerWerewolfRace |
||||
_00E_Theriantrophist_CantCraftMSG.Show() |
||||
elseif !((self as ObjectReference) as _00E_Playerhousing_Furniture) |
||||
Activate(akActionRef, true) |
||||
endif |
||||
|
||||
else |
||||
Activate(akActionRef, true) |
||||
endif |
||||
If PlayerREF.GetRace() == _00E_Theriantrophist_PlayerWerewolfRace |
||||
_00E_Theriantrophist_CantCraftMSG.Show() |
||||
Else |
||||
Activate(akActionRef, true) |
||||
EndIf |
||||
|
||||
bActivationBlocked = False |
||||
EndIf |
||||
Else |
||||
Activate(akActionRef, true) |
||||
EndIf |
||||
EndEvent |
||||
|
||||
Actor Property PlayerREF Auto |
||||
Message Property _00E_Theriantrophist_CantCraftMSG Auto |
||||
Race Property _00E_Theriantrophist_PlayerWerewolfRace Auto |
@ -1,43 +1,37 @@ |
||||
Scriptname FrostSlowFix extends activemagiceffect |
||||
{Behebt den Fehler, dass die Verlangsamung von Frostzaubern nicht funktioniert, indem das SpeedMult-Attribut durch kurzzeitige Änderung des InventoryWeight geupdatet wird.} |
||||
|
||||
Keyword Property MagicSlowDownTarget Auto |
||||
|
||||
MagicEffect Property FrostSlowFFAimed Auto |
||||
MagicEffect Property FrostSlowConcAimed Auto |
||||
MagicEffect Property FrostSlowFFContact Auto |
||||
MagicEffect Property FrostSlowFFSelfArea100 Auto |
||||
float speed |
||||
float basespeed |
||||
float slowspeed |
||||
|
||||
Event OnEffectStart(Actor akTarget, Actor akCaster) |
||||
|
||||
If akTarget.GetBaseActorValue("Speedmult") > akTarget.GetBaseActorValue("Fame") ;ensures that the speedmult gets only halved once |
||||
basespeed=akTarget.GetBaseActorValue("Speedmult") |
||||
akTarget.SetActorValue("Fame", basespeed) |
||||
slowspeed=akTarget.GetBaseActorValue("Speedmult")/2 |
||||
akTarget.SetActorValue("Speedmult", slowspeed) |
||||
EndIf |
||||
|
||||
akTarget.ModActorValue("InventoryWeight", -0.1) |
||||
Utility.Wait(0.01) |
||||
akTarget.ModActorValue("InventoryWeight", 0.1) |
||||
Actor Target |
||||
|
||||
Endevent |
||||
Event OnEffectStart(Actor akTarget, Actor akCaster) |
||||
Target = akTarget |
||||
|
||||
Float fBaseSpeed = Target.GetBaseActorValue("Speedmult") |
||||
If fBaseSpeed > Target.GetBaseActorValue("Fame") ; ensures that the speedmult gets only halved once |
||||
Target.SetActorValue("Fame", fBaseSpeed) |
||||
Target.SetActorValue("Speedmult", fBaseSpeed * 0.5) |
||||
|
||||
ForceSpeedMultUpdate() |
||||
EndIf |
||||
EndEvent |
||||
|
||||
Event OnEffectFinish(Actor akTarget, Actor akCaster) |
||||
|
||||
If (akTarget.HasMagicEffect(FrostSlowFFAimed)||akTarget.HasMagicEffect(FrostSlowConcAimed)||akTarget.HasMagicEffect(FrostSlowFFContact)||akTarget.HasMagicEffect(FrostSlowFFSelfArea100))==0 |
||||
basespeed=akTarget.GetBaseActorValue("Fame") |
||||
akTarget.SetActorValue("Speedmult", basespeed) |
||||
akTarget.SetActorValue("Fame", 0) |
||||
If Target == None ; version update |
||||
Target = akTarget |
||||
EndIf |
||||
|
||||
akTarget.ModActorValue("InventoryWeight", -0.1) |
||||
Utility.Wait(0.01) |
||||
akTarget.ModActorValue("InventoryWeight", 0.1) |
||||
|
||||
Endevent |
||||
If Target.HasMagicEffectWithKeyword(MagicSlowDownTarget) == False |
||||
Target.SetActorValue("Speedmult", Target.GetBaseActorValue("Fame")) |
||||
Target.SetActorValue("Fame", 0) |
||||
|
||||
ForceSpeedMultUpdate() |
||||
EndIf |
||||
EndEvent |
||||
|
||||
Function ForceSpeedMultUpdate() |
||||
Target.ModActorValue("InventoryWeight", -0.1) |
||||
Utility.Wait(0.01) |
||||
Target.ModActorValue("InventoryWeight", 0.1) |
||||
EndFunction |
||||
|
@ -0,0 +1,52 @@ |
||||
Scriptname FXWitchlightAttachSCRIPT extends ActiveMagicEffect conditional |
||||
{Attaches and manages witchlights's fx} |
||||
|
||||
VisualEffect Property WitchlightFXAttachEffect Auto |
||||
Spell Property WispDrainAttack Auto |
||||
Sound Property NPCWitchlightAttackM Auto |
||||
Actor Property PlayerREF Auto |
||||
|
||||
ObjectReference selfRef |
||||
|
||||
Event OnEffectStart(Actor Target, Actor Caster) |
||||
selfRef = caster |
||||
|
||||
; Small version update. |
||||
; The new script properties do not get auto-filled if the NPC ref has been already inited |
||||
If PlayerREF == None |
||||
PlayerREF = Game.GetPlayer() |
||||
EndIf |
||||
If WispDrainAttack == None |
||||
WispDrainAttack = Game.GetFormFromFile(0x00091F78, "Skyrim.esm") as Spell |
||||
EndIf |
||||
If NPCWitchlightAttackM == None |
||||
NPCWitchlightAttackM = Game.GetFormFromFile(0x00036E7E, "GavrantFixes_210510.esp") as Sound |
||||
EndIf |
||||
|
||||
;USKP 2.0.1 - Stop this from attaching to the player. |
||||
If selfRef == PlayerREF |
||||
Dispel() |
||||
Return |
||||
EndIf |
||||
|
||||
; only attack FX once the 3D is loaded |
||||
Int iLoadCountdown = 50 |
||||
While selfRef.Is3DLoaded() == False && iLoadCountdown > 0 |
||||
iLoadCountdown -= 1 |
||||
EndWhile |
||||
;USKP 2.0.2 - So despite ALL THAT above, we still need to check this. Stupid. |
||||
If selfRef.Is3DLoaded() |
||||
WitchlightFXAttachEffect.Play(selfRef, -1) |
||||
EndIf |
||||
EndEvent |
||||
|
||||
Event OnSpellCast(Form akSpell) |
||||
If akSpell == WispDrainAttack |
||||
NPCWitchlightAttackM.Play(selfRef) |
||||
EndIf |
||||
EndEvent |
||||
|
||||
Event OnEffectFinish(Actor Target, Actor Caster) |
||||
WitchlightFXAttachEffect.Stop(selfRef) |
||||
EndEvent |
||||
|
Loading…
Reference in new issue