Jaysyn904 04165202c0 Initial upload
Initial upload
2024-11-25 19:36:07 -05:00

55 lines
1.7 KiB
Plaintext

// 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);
}