SoulLimit Posted July 31, 2012 Share Posted July 31, 2012 (edited) Hi, I am trying to make it so that when the player feeds, the victim looses a percentage of their health (depending on the vampire rank the player is at), but it just does not seem to work.. I'm not sure where i am going wrong, so i have posted my code here in the hope someone can see what i have done wrong. Below is the vampire feed script The part enlarged and bold is the part that try's to harm the target Function VampireFeed(Actor akTarget)float tempPercentageDamage ;Effects for hiding the change ;VampireChangeFX.play(game.getPlayer()) VampireTransformDecreaseISMD.applyCrossFade(2.0) utility.wait(2.0) imageSpaceModifier.removeCrossFade() ;VampireChangeFX.stop(game.getPlayer()) Game.IncrementStat( "Necks Bitten" ) VampireFeedMessage.Show() VampireFeedReady.SetValue(0) ; What is the targets current health and damage amount? Float TargetsHealth = akTarget.GetBaseActorValue("Health") as Float If VampireStatus == 1 tempPercentageDamage = 25 ElseIf VampireStatus == 2 tempPercentageDamage = 40 ElseIf VampireStatus == 3 tempPercentageDamage = 55 ElseIf VampireStatus == 4 tempPercentageDamage = 70 EndIf ;Calculate Damage to do to the target float TargetDamage = TargetsHealth * (tempPercentageDamage/100) ;Damage target by calculated amount akTarget.DamageActorValue("Health",TargetDamage) ;Game.GetPlayer().DamageActorValue("Health", TargetDamage) ;Heal the player by the same amount of health Game.GetPlayer().RestoreActorValue("Health",TargetDamage) ;Game.ForceThirdPerson() ;Game.GetPlayer().PlayIdle(VampireFeedingBedRight) ;Player has fed, regress to Stage 1 Vampirisim ;Remove Stage 2, 3, and 4 buffs and spells LastFeedTime = GameDaysPassed.Value VampireStatus = 1 VampireProgression(Game.GetPlayer(), 1) ;Player is no longer hated Game.GetPlayer().RemoveFromFaction(VampirePCFaction) Game.GetPlayer().SetAttackActorOnSight(False) int cfIndex = 0 while (cfIndex < CrimeFactions.GetSize()); Debug.Trace("VAMPIRE: Removing enemy flag from " + CrimeFactions.GetAt(cfIndex)) (CrimeFactions.GetAt(cfIndex) as Faction).SetPlayerEnemy(false) cfIndex += 1 endwhile ;Start checking GameTime again if we weren't already UnregisterforUpdateGameTime() RegisterForUpdateGameTime(12) EndFunction Thanks in advance Edited July 31, 2012 by SoulLimit Link to comment Share on other sites More sharing options...
SoulLimit Posted August 1, 2012 Author Share Posted August 1, 2012 Don't worry, have figured it out now! Link to comment Share on other sites More sharing options...
Recommended Posts