Syntia13 Posted June 28, 2014 Share Posted June 28, 2014 Hello everyone. I have a question to people with average and above experience in modding Skyrim. I love Better Vampires, but there's one thing I'd like to tweak, and can't figure out how, or more precisely, where to do that. The author discontinued the mod and I can't even send a PM to him, so I figured the general modding community are the people to ask. I'd like to change the 'Combat Bite' (option that allows you to bite a staggered opponent in combat). The way it works now is that my health must be greater than the target's for the bite to happen. The problem I have is that I play as mage-vampire with sky-high magicka, but very low health and stamina, and by now everyone and his brother has more health than me. I have a basic knowledge of the Creation Kit, so I figured I could just remove the condition concerning health level required for combat bite. However I can't find the element where I could make that change. Filtering for 'combat bite' only gave me a 'vampirecombatbite' variable, which is set to 'float', (whatever that means).I tried using function Data-> Mod -> Details and read through the list of elements BV added/altered until my eyes bled, but couldn't find anything that seemed even remotely related. So, help? Please? tl;dr version: I want to use Creation Kit to change conditions required for 'combat bite'. Where can I do that? Thanks for any suggestions.Syntia Link to comment Share on other sites More sharing options...
Ceruulean Posted June 30, 2014 Share Posted June 30, 2014 It might be a perk? Link to comment Share on other sites More sharing options...
Dudeman325 Posted June 30, 2014 Share Posted June 30, 2014 I don't know the mod myself, but it sounds like there might be a script controlling that part of the function. Is there a script attached to the Combat Bite power? If so, that would be the next place I would go. Admittedly, I know almost nothing about scripting because I haven't bothered to learn, but there are plenty of resources out there that could help you along. Good luck! Link to comment Share on other sites More sharing options...
Syntia13 Posted October 11, 2014 Author Share Posted October 11, 2014 Sorry, I got cut off from the computer shortly after posting this, and then my attention wandered.@Ceruulean @Dudeman325 - turned out you were both right. It is part of a perk, and is controlled by script. I need further help with this. :( There's a perk called 'Thirst for Blood' (ID 'vampirefeed') and in it, in 'perk entries' section, 'bite' is the first entry. In tab 'advanced', it says it's ruled by Fragment 16 of script PRKF_VampireFeedBeds_000CF02D. Fragment in question reads: Reveal hidden contents ;BEGIN FRAGMENT Fragment_16Function Fragment_16(ObjectReference akTargetRef, Actor akActor);BEGIN CODEPlayerVampireQuest.VampireBite(aktargetRef as actor);END CODEEndFunction;END FRAGMENT Ok. I found the PlayerVampireQuest, which as far as I can tell only contains script PlayerVampireQuestScript and QF_PlayerVampireQuest_000EAFD5. The latter is very short and I think unrelated; the former is very long and contained a section that I thought would provide a solution for me.Here's the section: Reveal hidden contents ============================================================================================== Function VampireBite(Actor akBiteTarget) ;----------------------------------------------------; COMBAT BITING WILL ATTACK AND DRAIN A VICTIM OF HEALTH - IF THEY HAVE LESS HEALTH THAN YOU DO If Game.GetPlayer().GetAV("Health") > akBiteTarget.GetAV("Health") ;----------------------------------------------------; YOU NEED AT LEAST 50 STAMINA TO ATTEMPT A COMBAT BITE If Game.GetPlayer().GetAV("Stamina") >= 50 If VampireDawnguardInstalled.GetValue() == 10000Game.GetPlayer().PlayIdleWithTarget(IdleVampireStandingFront, akBiteTarget)Game.GetPlayer().DamageActorValue("Stamina", 50)akBiteTarget.EnableAI(false)akBiteTarget.EnableAI()Utility.Wait(1.0)Int instanceID1 = NPCDragonAttackBite.Play(akBiteTarget)Sound.SetInstanceVolume(instanceID1, 0.5)akBiteTarget.SendAssaultAlarm()Utility.Wait(2.0)ElseIf VampireDawnguardInstalled.GetValue() == 0Game.GetPlayer().MoveTo(akBiteTarget, 70.0 * Math.Sin(akBiteTarget.GetAngleZ()), 70.0 * Math.Cos(akBiteTarget.GetAngleZ()), 0, abMatchRotation = false)Game.GetPlayer().DamageActorValue("Stamina", 50)Int instanceID1 = NPCDragonAttackBite.Play(akBiteTarget)Sound.SetInstanceVolume(instanceID1, 0.5)Utility.Wait(1.0)akBiteTarget.SendAssaultAlarm()EndIf akBiteTarget.EvaluatePackage()akBiteTarget.EvaluatePackage() ;----------------------------------------------------; DRAIN VICTIM OF HEALTH Int RandomHealthBonus = Utility.RandomInt(10,20)Int HealthDamage = (Game.GetPlayer().GetLevel() + RandomHealthBonus); DOUBLE DAMAGE IF USING ML VERSIONIf BetterVampiresML.GetValue() == 10000RandomHealthBonus = Utility.RandomInt(20,40)HealthDamage = (Game.GetPlayer().GetLevel()*2 + RandomHealthBonus)EndIf akBiteTarget.EnableAI(false)akBiteTarget.EnableAI()akBiteTarget.EvaluatePackage()akBiteTarget.EvaluatePackage() akBiteTarget.StartDeferredKill() Debug.Notification(("Victim has "+(akBiteTarget.GetActorValue("Health") as Int)+" Health. Bite Does "+HealthDamage+" damage."))If (akBiteTarget.GetActorValue("Health")as Int) <= HealthDamageDebug.Notification("Trying to kill ...")akBiteTarget.DamageActorValue("Health", 1000000)ElseIf (akBiteTarget.GetActorValue("Health")as Int) > HealthDamageDebug.Notification("Doing Normal Damage ...")akBiteTarget.DamageActorValue("Health", HealthDamage)EndIf Game.GetPlayer().RestoreActorValue("Health", HealthDamage)akBiteTarget.EndDeferredKill() ;----------------------------------------------------; RE-DRAW YOUR WEAPON IF IT WAS PUT AWAY FOR THE ANIMATION Utility.Wait(0.2)Game.EnablePlayerControls()Utility.Wait(0.2)Game.SetPlayerAIDriven(False)Utility.Wait(0.2)Game.GetPlayer().DrawWeapon()Utility.Wait(0.2)Game.GetPlayer().DrawWeapon()Utility.Wait(0.2)Game.GetPlayer().DrawWeapon() akBiteTarget.StartCombat(Game.GetPlayer()) ElseIf Game.GetPlayer().GetAV("Stamina") < 50 If VampireStatusMessages.GetValue() == 0Debug.Notification("You lack the stamina to attempt a combat bite.")EndIf EndIf Else If VampireStatusMessages.GetValue() == 0Debug.Notification("Your target is still too strong for you to attempt a combat bite.")EndIf EndIf EndFunction ;======================================= I used 'edit source' to delete a few lines at the beginning and the end, so now it looks like this: Reveal hidden contents ============================================================================================== Function VampireBite(Actor akBiteTarget) ;---------------------------------------------------- ;----------------------------------------------------; YOU NEED AT LEAST 50 STAMINA TO ATTEMPT A COMBAT BITE If Game.GetPlayer().GetAV("Stamina") >= 50 If VampireDawnguardInstalled.GetValue() == 10000Game.GetPlayer().PlayIdleWithTarget(IdleVampireStandingFront, akBiteTarget)Game.GetPlayer().DamageActorValue("Stamina", 50) akBiteTarget.EnableAI(false)akBiteTarget.EnableAI() Utility.Wait(1.0)Int instanceID1 = NPCDragonAttackBite.Play(akBiteTarget)Sound.SetInstanceVolume(instanceID1, 0.5)akBiteTarget.SendAssaultAlarm()Utility.Wait(2.0)ElseIf VampireDawnguardInstalled.GetValue() == 0Game.GetPlayer().MoveTo(akBiteTarget, 70.0 * Math.Sin(akBiteTarget.GetAngleZ()), 70.0 * Math.Cos(akBiteTarget.GetAngleZ()), 0, abMatchRotation = false) Game.GetPlayer().DamageActorValue("Stamina", 50)Int instanceID1 = NPCDragonAttackBite.Play(akBiteTarget)Sound.SetInstanceVolume(instanceID1, 0.5)Utility.Wait(1.0)akBiteTarget.SendAssaultAlarm()EndIf akBiteTarget.EvaluatePackage()akBiteTarget.EvaluatePackage() ;----------------------------------------------------; DRAIN VICTIM OF HEALTH Int RandomHealthBonus = Utility.RandomInt(10,20)Int HealthDamage = (Game.GetPlayer().GetLevel() + RandomHealthBonus); DOUBLE DAMAGE IF USING ML VERSIONIf BetterVampiresML.GetValue() == 10000RandomHealthBonus = Utility.RandomInt(20,40)HealthDamage = (Game.GetPlayer().GetLevel()*2 + RandomHealthBonus)EndIf akBiteTarget.EnableAI(false)akBiteTarget.EnableAI()akBiteTarget.EvaluatePackage()akBiteTarget.EvaluatePackage() akBiteTarget.StartDeferredKill() Debug.Notification(("Victim has "+(akBiteTarget.GetActorValue("Health") as Int)+" Health. Bite Does "+HealthDamage+" damage."))If (akBiteTarget.GetActorValue("Health")as Int) <= HealthDamageDebug.Notification("Trying to kill ...")akBiteTarget.DamageActorValue("Health", 1000000)ElseIf (akBiteTarget.GetActorValue("Health")as Int) > HealthDamageDebug.Notification("Doing Normal Damage ...")akBiteTarget.DamageActorValue("Health", HealthDamage)EndIf Game.GetPlayer().RestoreActorValue("Health", HealthDamage) akBiteTarget.EndDeferredKill() ;----------------------------------------------------; RE-DRAW YOUR WEAPON IF IT WAS PUT AWAY FOR THE ANIMATION Utility.Wait(0.2)Game.EnablePlayerControls() Utility.Wait(0.2)Game.SetPlayerAIDriven(False) Utility.Wait(0.2)Game.GetPlayer().DrawWeapon()Utility.Wait(0.2)Game.GetPlayer().DrawWeapon()Utility.Wait(0.2)Game.GetPlayer().DrawWeapon() akBiteTarget.StartCombat(Game.GetPlayer()) ElseIf Game.GetPlayer().GetAV("Stamina") < 50 If VampireStatusMessages.GetValue() == 0Debug.Notification("You lack the stamina to attempt a combat bite.") EndIf EndIf EndFunction ;=============================== I saved all changes and tried it out on a save in which was made well before I first installed Better Vampires, so there are no 'leftovers' in it. I feed once in conventional way, to get the mod running properly, and then tried the combat bite - it works... but it works the original way, that is, I can bite staggered people who have less health than me, but if they have more heath than me, I get the "Your target is still too strong for you to attempt a combat bite" debug notification. Well. Since I deleted this line from the script, there's obviously some other place where it remained. However I have no idea where, and how to look for it. Help please? Link to comment Share on other sites More sharing options...
Recommended Posts