Scriptname LycantropheTransformSC extends activemagiceffect bool isOnInfluanceOfPotion = false bool nateSeesUs bool sneakAttack Actor targetRef Event OnCrosshairRefChange(ObjectReference ref) If ref as Actor ;Used to determine if it's none or not. nateSeesUs = Game.GetPlayer().IsDetectedBy(ref as Actor) if !nateSeesUs && isSneaking Game.GetPlayer().SetAV("UnarmedDamage", 1000.1) sneakAttack=true elseif isSneaking Game.GetPlayer().SetAV("UnarmedDamage", 10.1) sneakAttack=false endif EndIf EndEvent Event OnUpdate() if Game.GetPlayer().isInCombat() detectionImage.Remove() else detectionImage.PopTo(detectionImage, 0.25) endif if isSneaking RegisterForSingleUpdate(1) endif endEvent bool isSneaking Event OnKeyUp(int keyCode, float holdTime) if keyCode == sneakWerewolfKey if Game.GetPlayer().GetActorValue("Sneak")!=200 detectionImage.PopTo(detectionImage, 0.25) RegisterForSingleUpdate(1) isSneaking=true ;Game.GetPlayer().ForceAV ("SpeedMult", 50 ) Game.GetPlayer().ForceAV("CarryWeight", 10000) Game.GetPlayer().ForceActorValue("SneakMod", 200) Game.GetPlayer().ForceActorValue("Sneak", 200) ;Game.GetPlayer().AddPerk(InvisibilityMe ) Game.GetPlayer().StartSneaking() _00E_EspionageFXS.Play(Game.GetPlayer()) int instanceID = sneakSound.play(Game.GetPlayer()) ; play mySFX sound from my self Sound.SetInstanceVolume(instanceID, 1) Game.GetPlayer().AddPerk(_00E_A1_InvisibilityPerk) Game.GetPlayer().AddSpell(DetectLifeWerewolfVision, false) Game.GetPlayer().ForceActorValue("Magicka", 20000) DetectLifeWerewolfVision2.SetBaseCost(0) DetectLifeWerewolfVision.cast(Game.GetPlayer()) else detectionImage.Remove() UnregisterForUpdate() isSneaking=false Game.GetPlayer().SetAV("UnarmedDamage", 10.1) Game.GetPlayer().ForceAV ("SpeedMult", 100 ) Game.GetPlayer().ForceAV("CarryWeight", 10001) sneakAttack=false _00E_EspionageFXS.Stop(Game.GetPlayer()) Game.GetPlayer().RemovePerk(_00E_A1_InvisibilityPerk) Game.GetPlayer().RemoveSpell(DetectLifeWerewolfVision) Game.GetPlayer().DispelSpell(DetectLifeWerewolfVision) Game.GetPlayer().ForceActorValue("Magicka", 0) Game.GetPlayer().ForceActorValue("MagickaRate", 0) endif endif if keyCode == 38 ;Debug.Messagebox("Strength : 100\nStamina : 100\nResist : 100") String hasEffectPanacea1 = "None" String hasEffectPanacea2 = "None" if (Game.GetPlayer().hasMagicEffect(panacea1Effect)) panacea1EffectOn.Show() endif if (Game.GetPlayer().hasMagicEffect(panacea2Effect)) panacea2EffectOn.Show() endif if (Game.GetPlayer().hasMagicEffect(panacea3Effect)) panacea3EffectOn.Show() endif if (Game.GetPlayer().hasMagicEffect(panacea4Effect)) panacea4EffectOn.Show() endif ;_00E_statisticMessage.Show(Game.GetPlayer().GetActorValue("Health"), Game.GetPlayer().GetActorValue("Stamina"), Game.GetPlayer().GetActorValue("UnarmedDamage"), Game.GetPlayer().GetActorValue("DamageResist")) ;else ; Debug.Messagebox(keyCode ) endif EndEvent Event OnActorAction(int actionType, Actor akActor, Form source, int slot) ;only for keep up activate life detection if actionType==0 && akActor==Game.GetPlayer() && sneakAttack Utility.Wait(0.1) Game.GetPlayer().SetAV("UnarmedDamage", 10.1) sneakAttack=false DetectLifeWerewolfVision.cast(Game.GetPlayer()) endif endEvent Event OnHit(ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack, bool abHitBlocked) If trasformedAlready==0 && akAggressor float ZAngle = akAggressor.GetAngleZ()-Game.GetPlayer().GetAngleZ() ;calculating difference between enemy and player camera angle if ZAngle < 0 ZAngle = ZAngle * -1 endif if ZAngle < 50 int rawDamage = ((akSource as Weapon).GetBaseDamage() * 0.5) as Int Game.GetPlayer().DamageActorValue("Health", rawDamage * 1000 ) ;giving additional dmg for player if difference of angle is < 50 Endif Endif EndEvent int num = 1 Int trasformedAlready Int sneakWerewolfKey = 46 Int waitForTransformS=4 int waitTimeToEndTransform=2; Event OnEffectStart(Actor akTarget, Actor akCaster) ;Debug.MessageBox(Game.GetPlayer().GetActorValue("Sneak")+" vs "+Game.GetPlayer().GetActorValue("Magicka")+" vs "+Game.GetPlayer().GetActorValue("MagickaRate")+" vs "+Game.GetPlayer().GetActorValue("Health")+" vs "+Game.GetPlayer().GetActorValue("Stamina")+" vs "+Game.GetPlayer().GetActorValue("UnarmedDamage")+" vs "+Game.GetPlayer().GetActorValue("DamageResist")) Game.ForceThirdPerson() isOnInfluanceOfPotion =Game.GetPlayer().HasMagicEffect(bloodPotionInfluance) ActorBase pActorBase = Game.GetPlayer().GetActorBase() trasformedAlready=isTransformed.GetValue() as Int ;Game.GetPlayer().AddItem(SuperSecretPotionReference, 200) Int doesHavePotion = Game.GetPlayer().GetItemCount(SuperSecretPotionReference) if isOnInfluanceOfPotion || doesHavePotion > 0 if !isOnInfluanceOfPotion && trasformedAlready==0 Game.GetPlayer().RemoveItem(SuperSecretPotionReference, 1) if !Game.GetPlayer().IsInCombat() Form EquippedItemRight = Game.GetPlayer().GetEquippedObject(1) Game.GetPlayer().UnequipItem(EquippedItemRight, false, true) Game.DisablePlayerControls(true, true, true, false, true, true, true) Game.GetPlayer().PlayIdle(DrinkPotionForPlayerIdle ) Utility.Wait(2) Game.GetPlayer().EquipItemEx(EquippedItemRight, 1) endif endif if trasformedAlready==0 Debug.Notification("Transforming to werewolf") isTransformed.SetValue(1) AbWerewolf.Cast(akCaster, akCaster) WerewolfChange.Cast(akCaster, akCaster) ;akCaster.GetActorBase().SetEssential(False) if( Game.GetPlayer().GetAV("InventoryWeight")<=akTarget.GetAV("CarryWeight")) akTarget.ForceAV("CarryWeight", 1000) endif (playerTransformStorageQuest as playerTransformStorage).checkForEquipedItems() Game.DisablePlayerControls(true, true, true, false, true, true, true) int BaseWeaponDmg =Game.GetPlayer().GetEquippedWeapon().GetBaseDamage() int AR = (Game.GetPlayer().GetWornForm(0x00000004) as Armor).GetArmorRating() float armorNow=10 Utility.Wait(waitTimeToEndTransform) akCaster.SetRace(WerewolfBeastRace) akCaster.UnequipAll() akCaster.KnockAreaEffect(1, 1024) akTarget.ModAV("DamageResist", 10) ;akTarget.SetAV("DamageResist", 10) akTarget.SetAV("UnarmedDamage", 10.1) bTransformed = True akCaster.AddShout(_00E_A1_Lycantrophe_Transform) akCaster.EquipShout(_00E_A1_Lycantrophe_Transform) Game.EnablePlayerControls(abMovement = true, abFighting = true, abCamSwitch = false, abLooking = true, abSneaking = true, abMenu = true, abActivate = true, abJournalTabs = true) RegisterForCrosshairRef() RegisterForActorAction(0) sneakWerewolfKey = Input.GetMappedKey("Toggle Always Run") RegisterForKey(sneakWerewolfKey) RegisterForKey(38) akCaster.PlaceAtMe(PowerRacialWoodElfCommandAnimalExplosion01) else goingBackToHumanShader.Play(Game.GetPlayer()) Game.DisablePlayerControls(true, true, true, false, true, true, true) akTarget.ModAV("DamageResist", -10) (playerTransformStorageQuest as playerTransformStorage).equipeItems() akCaster.PlaceAtMe(PowerRacialWoodElfCommandAnimalExplosion01) RegisterForAnimationEvent(Game.GetPlayer(), "TransformToHuman") Game.GetPlayer().PlayIdle(WerewolfTransformBack) Game.SetInCharGen(true, true, false) UnRegisterForAnimationEvent(Game.GetPlayer(), "TransformToHuman") Game.EnablePlayerControls(true, true, true, true, true, true, true) Race orig_race = (playerTransformStorageQuest as playerTransformStorage).originalRace Game.GetPlayer().SetRace(orig_race) Game.GetPlayer().SetAttackActorOnSight(false) Game.GetPlayer().RemoveFromFaction(PlayerWerewolfFaction) Game.SetPlayerReportCrime(true) ; alert anyone nearby that they should now know the player is a werewolf ; Game.SendWereWolfTransformation() Game.SetBeastForm(False) isTransformed.SetValue(0) UnregisterforActorAction(0) UnregisterforCrosshairRef() UnregisterForAllKeys() UnregisterForUpdate() isSneaking=false goingBackToHumanShader.Stop(Game.GetPlayer()) endif else Debug.Notification("You don't have Lycant potion") endif ;Debug.MessageBox(Game.GetPlayer().GetActorValue("Sneak")+" vs "+Game.GetPlayer().GetActorValue("Magicka")+" vs "+Game.GetPlayer().GetActorValue("MagickaRate")+" vs "+Game.GetPlayer().GetActorValue("Health")+" vs "+Game.GetPlayer().GetActorValue("Stamina")+" vs "+Game.GetPlayer().GetActorValue("UnarmedDamage")+" vs "+Game.GetPlayer().GetActorValue("DamageResist")) EndEvent SPELL Property AbWerewolf Auto SPELL Property WerewolfChange Auto Explosion Property PowerRacialWoodElfCommandAnimalExplosion01 Auto Race Property WerewolfBeastRace Auto Faction Property PlayerWerewolfFaction Auto bool bTransformed Race baseRasePlayer Int tTran=1 Idle Property WerewolfTransformBack Auto Shout Property _00E_A1_Lycantrophe_Transform Auto GlobalVariable Property isTransformed Auto Quest Property playerTransformStorageQuest Auto Potion Property SuperSecretPotionReference Auto Idle Property Idle_1stPersonWoozyGetUpFromBed Auto ;Perk Property InvisibilityMe Auto ;Idle Property lycantTransformAnim Auto EffectShader Property _00E_EspionageFXS Auto Spell Property PerkShadowWarriorInvisibility Auto SPELL Property _00E_A2_GhostwalkCloakSP Auto PERK Property _00E_A1_InvisibilityPerk Auto SPELL Property DetectLifeWerewolfVision Auto MagicEffect Property DetectLifeWerewolfVision2 Auto SPELL Property DetectLife Auto Idle Property DrinkPotionForPlayerIdle Auto Sound Property sneakSound Auto ;SPELL Property knockBack Auto ;SPELL Property werewolfAbility Auto ;MagicEffect Property knockBackEffect Auto ;Perk Property perkKnock Auto EffectShader Property goingBackToHumanShader Auto ;Idle Property werewolfChangeAnimation Auto MagicEffect Property bloodPotionInfluance Auto Message Property _00E_statisticMessage Auto ImageSpaceModifier Property detectionImage Auto MagicEffect Property panacea1Effect Auto MagicEffect Property panacea2Effect Auto MagicEffect Property panacea3Effect Auto MagicEffect Property panacea4Effect Auto Message Property panacea1EffectOn Auto Message Property panacea2EffectOn Auto Message Property panacea3EffectOn Auto Message Property panacea4EffectOn Auto Message Property panacea5EffectOn Auto MagicEffect Property panacea5Effect Auto