// Create Mage Guild Assassin #include "antistuck_h" void fnEscort(object oMage) { object oMe=OBJECT_SELF; SetAILevel(oMe,AI_LEVEL_NORMAL); if (GetIsInCombat(oMe)==FALSE) { // escort if (oMage!=OBJECT_INVALID) { // mage lives if (GetArea(oMage)!=GetArea(oMe)) { // jump AssignCommand(oMe,ClearAllActions(TRUE)); AssignCommand(oMe,JumpToObject(oMage)); } // jump else if (GetDistanceBetween(oMage,oMe)>3.0) { // move AssignCommand(oMe,ASActionMoveToObject(oMage,TRUE,2.0)); } // move DelayCommand(12.0,fnEscort(oMage)); } // mage lives else { // mage is dead - go hostile ChangeToStandardFaction(oMe,STANDARD_FACTION_HOSTILE); } // mage is dead - go hostile } // escort else { // combat DelayCommand(12.0,fnEscort(oMage)); } // combat } // fnEscort() void main() { object oSpawn=GetWaypointByTag("MAGEASS_SPAWN"); object oAss; string sRes="mageass1"; int nTarget=GetLocalInt(OBJECT_SELF,"nMAGEASST"); int nFee=GetLocalInt(OBJECT_SELF,"nMAGEASSFEE"); object oEscort; if (nFee==500) sRes="mageass2"; else if (nFee==1000) sRes="mageass3"; else if (nFee==5000) sRes="mageass4"; oAss=CreateObject(OBJECT_TYPE_CREATURE,sRes,GetLocation(oSpawn)); SetLocalObject(GetPCSpeaker(),"oMGAssassin",oAss); SetLocalInt(oAss,"nSpeed",8); SetLocalInt(oAss,"nTarget",nTarget); SetAILevel(oAss,AI_LEVEL_NORMAL); oEscort=CreateObject(OBJECT_TYPE_CREATURE,"mg_guard1",GetLocation(oSpawn)); AssignCommand(oEscort,fnEscort(oAss)); oEscort=CreateObject(OBJECT_TYPE_CREATURE,"mg_guard2",GetLocation(oSpawn)); AssignCommand(oEscort,fnEscort(oAss)); ExecuteScript("mage_assassin",oAss); }