Index: /trunk/src/bindings/scripts/scripts/creature/mob_event_ai.cpp
===================================================================
--- /trunk/src/bindings/scripts/scripts/creature/mob_event_ai.cpp (revision 260)
+++ /trunk/src/bindings/scripts/scripts/creature/mob_event_ai.cpp (revision 269)
@@ -7,10 +7,10 @@
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
@@ -965,4 +965,15 @@
                 DoZoneInCombat();
             }
+            break;
+
+        // TRINITY ONLY
+        case ACTION_T_SET_ACTIVE:
+            m_creature->setActive(param1 ? true : false);
+            break;
+        case ACTION_T_SET_AGGRESSIVE:
+            m_creature->SetAggressive(param1 ? true : false);
+            break;
+        case ACTION_T_ATTACK_START_PULSE:
+            AttackStart(m_creature->SelectNearestTarget((float)param1));
             break;
         }
@@ -1193,22 +1204,10 @@
         }
 
-        if (m_creature->isCivilian() && m_creature->IsNeutralToAll())
-            return;
-
-        if (m_creature->canAttack(who) && who->isInAccessiblePlaceFor(m_creature) && m_creature->IsHostileTo(who))
-        {
-            if (!m_creature->canFly() && m_creature->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
-                return;
-
-            float attackRadius = m_creature->GetAttackDistance(who);
-            if (m_creature->IsWithinDistInMap(who, attackRadius) && m_creature->IsWithinLOSInMap(who))
-            {
-                //if(who->HasStealthAura())
-                //    who->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH);
-
-                //Begin melee attack if we are within range
-                AttackStart(who);
-            }
-        }
+        // do we need this?
+        //if (m_creature->isCivilian() && m_creature->IsNeutralToAll())
+        //    return;
+
+        if(m_creature->canStartAttack(who))
+            AttackStart(who);
     }
 
@@ -1293,4 +1292,5 @@
                         if (!((*i).Event.event_inverse_phase_mask & (1 << Phase)))
                             (*i).Time -= EventDiff;
+
                         //Skip processing of events that have time remaining
                         continue;
@@ -1329,4 +1329,5 @@
         if (Combat && MeleeEnabled)
             DoMeleeAttackIfReady();
+
     }
 };
Index: /trunk/src/bindings/scripts/scripts/creature/mob_event_ai.h
===================================================================
--- /trunk/src/bindings/scripts/scripts/creature/mob_event_ai.h (revision 206)
+++ /trunk/src/bindings/scripts/scripts/creature/mob_event_ai.h (revision 269)
@@ -1,5 +1,5 @@
 /* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
-* This program is free software licensed under GPL version 2
-* Please see the included DOCS/LICENSE.TXT for more information */
+ * This program is free software licensed under GPL version 2
+ * Please see the included DOCS/LICENSE.TXT for more information */
 
 #ifndef SC_EVENTAI_H
@@ -77,4 +77,8 @@
     ACTION_T_ZONE_COMBAT_PULSE      = 38,   //No Params
 
+    ACTION_T_SET_ACTIVE             = 101,  //Apply
+    ACTION_T_SET_AGGRESSIVE         = 102,  //Apply
+    ACTION_T_ATTACK_START_PULSE     = 103,  //Distance
+
     ACTION_T_END,
 };
