Initial upload. PRC8 has been added. Module compiles, PRC's default AI & treasure scripts have been integrated. Started work on top hak for SLA / Ability / Scripting modifications.
89 lines
2.0 KiB
Plaintext
89 lines
2.0 KiB
Plaintext
/*
|
|
|
|
/////Usage: This is the combat scheduler script that also handles death for the clone. If you change the name make sure you change it in the Execute script both in this script and in the trigger script. Otherwise it should be named clone_hb
|
|
*/
|
|
#include "NW_I0_GENERIC"
|
|
#include "jw_privates_inc"
|
|
|
|
void main()
|
|
{
|
|
|
|
|
|
// Check if the copy is dead yet
|
|
if(GetIsDead(OBJECT_SELF))
|
|
{
|
|
object oItem;
|
|
int nSlot;
|
|
//Copy is dead so clean it out. and run the death script.
|
|
AssignCommand(OBJECT_SELF, SetIsDestroyable(TRUE));
|
|
for(nSlot=0; nSlot<=17; nSlot++)
|
|
{
|
|
oItem=GetItemInSlot(nSlot, OBJECT_SELF);
|
|
if (GetIsObjectValid(oItem))
|
|
{
|
|
SetPlotFlag(oItem,FALSE);
|
|
DestroyObject(oItem);
|
|
}
|
|
}
|
|
|
|
// Get rid of items in inventory
|
|
oItem=GetFirstItemInInventory(OBJECT_SELF);
|
|
object oStrip;
|
|
while (GetIsObjectValid(oItem))
|
|
|
|
{
|
|
oStrip=oItem;
|
|
SetPlotFlag(oStrip,FALSE);
|
|
DestroyObject(oStrip);
|
|
oItem=GetNextItemInInventory(OBJECT_SELF);
|
|
}
|
|
|
|
ExecuteScript("nw_c2_default7", OBJECT_SELF);
|
|
DestroyObject(OBJECT_SELF, 0.1);
|
|
}
|
|
else
|
|
{
|
|
|
|
object oEnemy=GetNearestSeenOrHeardEnemy();
|
|
object oTarget=GetTarget();
|
|
if ((GetIsDead(oTarget))||(GetArea(oTarget)!=GetArea(OBJECT_SELF))||(!GetIsEnemy(oTarget)))
|
|
{
|
|
SetTarget(OBJECT_INVALID);
|
|
oTarget=OBJECT_INVALID;
|
|
}
|
|
|
|
|
|
if (!GetIsObjectValid(oTarget))
|
|
{
|
|
oTarget=oEnemy;
|
|
if (GetIsObjectValid(oTarget))
|
|
{
|
|
SetTarget(oTarget);
|
|
}
|
|
}
|
|
|
|
if (GetIsObjectValid(oEnemy)&&(GetObjectSeen(oEnemy)))
|
|
{
|
|
|
|
|
|
if (!GetIsFighting(OBJECT_SELF))
|
|
{
|
|
|
|
DetermineCombatRound();
|
|
}
|
|
}
|
|
else if (GetIsObjectValid(oTarget))
|
|
{
|
|
|
|
ActionMoveToObject(oTarget);
|
|
}
|
|
|
|
// combat rounds are 6 seconds long
|
|
|
|
DelayCommand(6.0, ExecuteScript("jw_clone_ai", OBJECT_SELF));
|
|
}
|
|
}
|
|
|
|
|
|
|