//:://///////////////////////////////////////////// //:: Werewolf Actions //:: WW_ACTIONS //::////////////////////////////////////////////// /* Makes the beast act crazy, wander, attack return to where they were infected. */ //::////////////////////////////////////////////// //:: Created By: 69_Jeremy_69 //:: Created On: April 27, 2003 //::////////////////////////////////////////////// ////////////////////// //:: Werewolf Sounds ////////////////////// //:: Howl //:: c_werewolf_bat2 //:: Growl //:: c_werewolf_slct //:: Bark //:: c_werewolf_dead //:: Bark, Howl //:: c_werewolf_bat1 //:: Attack Barks //:: c_werewolf_atk1 //:: c_werewolf_atk2 //:: c_werewolf_atk3 /////////////////////// void main() { // Get variables to store string sID = GetName(OBJECT_SELF) + GetPCPublicCDKey(OBJECT_SELF); // Check for werewolf effects effect eWolf = GetFirstEffect(OBJECT_SELF); effect eBug; int nWolf = 0; while(GetIsEffectValid(eWolf)) { if(GetEffectType(eWolf) == EFFECT_TYPE_POLYMORPH || GetEffectType(eWolf) == EFFECT_TYPE_SILENCE) { nWolf++; } //if(GetEffectType(eWolf) == EFFECT_TYPE_DAMAGE_REDUCTION) eBug = eWolf; eWolf = GetNextEffect(OBJECT_SELF); } //Make sure the creature is commandable for the round SetCommandable(TRUE); eWolf = EffectPolymorph(POLYMORPH_TYPE_WEREWOLF); eWolf = EffectLinkEffects(eWolf, EffectSilence()); eWolf = SupernaturalEffect(eWolf); // Do they still have the 2 effects? if not if(nWolf != 2) { ApplyEffectToObject(DURATION_TYPE_PERMANENT, eWolf, OBJECT_SELF); } // See who is in Command, if player is stop after this int nCtrl = GetLocalInt(GetModule(), "WERE_CONTROL"+sID); if(nCtrl) return; //Clear all previous actions. ClearAllActions(); int nRandom = d10(); //Roll a random int to determine this rounds effects if(nRandom == 1 || nRandom == 10) { // Return to where they were bit location loc = GetLocalLocation(OBJECT_SELF, "WEREWOLF"); ActionMoveToLocation(loc,TRUE); PlaySound("c_werewolf_bat1"); }else if(nRandom >= 2 && nRandom <= 5){ ActionRandomWalk(); //PlaySound("c_werewolf_dead"); }else if(nRandom >= 6 && nRandom <= 9){ PlaySound("c_werewolf_slct"); ActionAttack(GetNearestObject(OBJECT_TYPE_CREATURE)); } SetCommandable(FALSE); }