Changeset 14 for trunk/src/bindings/scripts
- Timestamp:
- 11/19/08 13:23:07 (17 years ago)
- Location:
- trunk/src/bindings/scripts
- Files:
-
- 2 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bindings/scripts/include/sc_creature.h
r13 r14 72 72 //Bool for if we are in combat or not 73 73 bool InCombat; 74 75 //For fleeing 76 bool IsFleeing; 74 77 75 78 //************* -
trunk/src/bindings/scripts/scripts/creature/mob_event_ai.cpp
r6 r14 80 80 uint32 AttackDistance; //Distance to attack from 81 81 float AttackAngle; //Angle of attack 82 uint32 TimetoFleeLeft; //For fleeing 82 83 83 84 void AttackTarget(Unit* pTarget, bool Follow) … … 775 776 case ACTION_T_FLEE: 776 777 { 777 //TODO: Replace with Flee movement generator 778 m_creature->CastSpell(m_creature, SPELL_RUN_AWAY, true); 778 TimetoFleeLeft = 8000; 779 m_creature->DoFleeToGetAssistance(); 780 IsFleeing = true; 779 781 } 780 782 break; … … 955 957 { 956 958 InCombat = false; 959 IsFleeing = false; 957 960 Reset(); 958 961 … … 1015 1018 1016 1019 InCombat = false; 1020 IsFleeing = false; 1017 1021 Reset(); 1018 1022 … … 1035 1039 { 1036 1040 InCombat = false; 1041 IsFleeing = false; 1037 1042 Reset(); 1038 1043 … … 1132 1137 return; 1133 1138 1134 if (who->isTargetableForAttack() )1139 if (who->isTargetableForAttack() && !IsFleeing) 1135 1140 { 1136 1141 //Begin melee attack if we are within range … … 1224 1229 //Must return if creature isn't alive. Normally select hostil target and get victim prevent this 1225 1230 if (!m_creature->isAlive()) 1231 return; 1232 1233 if ((TimetoFleeLeft < diff || (m_creature->GetMotionMaster()->GetCurrentMovementGeneratorType() != POINT_MOTION_TYPE && m_creature->GetMotionMaster()->GetCurrentMovementGeneratorType() != FLEEING_MOTION_TYPE)) && IsFleeing) 1234 { 1235 m_creature->GetMotionMaster()->Clear(false); 1236 m_creature->SetNoCallAssistence(false); 1237 m_creature->CallAssistence(); 1238 m_creature->GetMotionMaster()->MoveChase(m_creature->getVictim()); 1239 IsFleeing = false; 1240 } 1241 else 1242 TimetoFleeLeft -= diff; 1243 1244 if(IsFleeing) 1226 1245 return; 1227 1246