White Tiger,
As a noob, I don't know if this will help, but In my current build I have an area at sea where 2 pirate ships attack a merchant with the PC and crew. The first pirate ship,up close, is loaded with archers firing flame arrows. The second, at a distance is firing a cat with fireballs.
I placed 4 waypoints on the deck of the merchant. I also placed 4 water barrels on deck with about 30 waypoints.
Heartbeat Script on the Cat
void main()
{
object oPC = GetFirstPC();
object oCat = OBJECT_SELF;
object oCap = GetObjectByTag("OrcCatCapt");
object oOp = GetObjectByTag("OrcCatOp");
object oLoad = GetObjectByTag("OrcCatLoad");
object oTargeta = GetWaypointByTag("WpCatTarget01");
object oTargetb = GetWaypointByTag("WpCatTarget02");
object oTargetc = GetWaypointByTag("WpCatTarget03");
object oTargetd = GetWaypointByTag("WpCatTarget04");
int nSpell = SPELL_FIREBALL;
int nMeta = METAMAGIC_ANY;
int bCheat = TRUE;
int nDom = 20;
int nPath = PROJECTILE_PATH_TYPE_HIGH_BALLISTIC;
int bNow = TRUE;
int nShot = d4();
if(GetIsObjectValid(oCap))
{
if(GetLocalInt(oPC,"UnderSiege") > 0)
{
switch(nShot)
{
case 1:
AssignCommand(oCat,
ActionCastSpellAtObject(nSpell,oTargeta,nMeta,bCheat,nDom,nPath,bNow));
break;
case 2:
AssignCommand(oCat,
ActionCastSpellAtObject(nSpell,oTargetd,nMeta,bCheat,nDom,nPath,bNow));
break;
case 3:
AssignCommand(oCat,
ActionCastSpellAtObject(nSpell,oTargetb,nMeta,bCheat,nDom,nPath,bNow));
break;
case 4:
AssignCommand(oCat,
ActionCastSpellAtObject(nSpell,oTargetc,nMeta,bCheat,nDom,nPath,bNow));
break;
}
}
}
else
{
DestroyObject(oOp);
DestroyObject(oLoad);
}
}
The HB script on the barrels spawns fires that can only be destroyed by bashing the barrels. It also initiates a countdown that gives the PC only so much time to bash all the barrels and destroy the Cat. Sucess = Save the ship, Failure = deserted island.
As said, I don't know if this is any help, but I am trying to give back some of the help that you have all given me.
Ed