Clear out experimental .35 files
Clear out experimental .35 files
This commit is contained in:
@@ -1,183 +0,0 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Associate: Heartbeat
|
||||
//:: NW_CH_AC1.nss
|
||||
//:: Copyright (c) 2001 Bioware Corp.
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
Move towards master or wait for him
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Preston Watamaniuk
|
||||
//:: Created On: Nov 21, 2001
|
||||
//:: Updated On: Jul 25, 2003 - Georg Zoeller
|
||||
//:://////////////////////////////////////////////
|
||||
#include "prc_alterations"
|
||||
#include "X0_INC_HENAI"
|
||||
#include "X2_INC_SUMMSCALE"
|
||||
|
||||
#include "X2_INC_SPELLHOOK"
|
||||
void main()
|
||||
{
|
||||
// checks NPC ammo and refills if they are empty.
|
||||
object oItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, OBJECT_SELF);
|
||||
if( GetBaseItemType(oItem) == BASE_ITEM_THROWINGAXE )
|
||||
{
|
||||
if( GetItemStackSize(oItem) < 50)
|
||||
{
|
||||
SetItemStackSize(oItem, 50);
|
||||
//FloatingTextStringOnCreature("Stack Size set to 50", OBJECT_SELF, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
//SpawnScriptDebugger();
|
||||
|
||||
// GZ: Fallback for timing issue sometimes preventing epic summoned creatures from leveling up to their master's level.
|
||||
// There is a timing issue with the GetMaster() function not returning the fof a creature
|
||||
// immediately after spawn. Some code which might appear to make no sense has been added
|
||||
// to the nw_ch_ac1 and x2_inc_summon files to work around this
|
||||
// This code is only run at the first hearbeat
|
||||
int nLevel =SSMGetSummonFailedLevelUp(OBJECT_SELF);
|
||||
if (nLevel != 0)
|
||||
{
|
||||
int nRet;
|
||||
if (nLevel == -1) // special shadowlord treatment
|
||||
{
|
||||
SSMScaleEpicShadowLord(OBJECT_SELF);
|
||||
}
|
||||
else if (nLevel == -2)
|
||||
{
|
||||
SSMScaleEpicFiendishServant(OBJECT_SELF);
|
||||
}
|
||||
else
|
||||
{
|
||||
nRet = SSMLevelUpCreature(OBJECT_SELF, nLevel, CLASS_TYPE_INVALID);
|
||||
if (nRet == FALSE)
|
||||
{
|
||||
WriteTimestampedLogEntry("WARNING - nw_ch_ac1:: could not level up " + GetTag(OBJECT_SELF) + "!");
|
||||
}
|
||||
}
|
||||
|
||||
// regardless if the actual levelup worked, we give up here, because we do not
|
||||
// want to run through this script more than once.
|
||||
SSMSetSummonLevelUpOK(OBJECT_SELF);
|
||||
}
|
||||
|
||||
// Check if concentration is required to maintain this creature
|
||||
X2DoBreakConcentrationCheck();
|
||||
|
||||
object oMaster = GetMaster();
|
||||
if(!GetAssociateState(NW_ASC_IS_BUSY))
|
||||
{
|
||||
|
||||
//Seek out and disable undisabled traps
|
||||
object oTrap = GetNearestTrapToObject();
|
||||
if (bkAttemptToDisarmTrap(oTrap) == TRUE) return ; // succesful trap found and disarmed
|
||||
|
||||
if(GetIsObjectValid(oMaster) &&
|
||||
GetCurrentAction(OBJECT_SELF) != ACTION_FOLLOW &&
|
||||
GetCurrentAction(OBJECT_SELF) != ACTION_DISABLETRAP &&
|
||||
GetCurrentAction(OBJECT_SELF) != ACTION_OPENLOCK &&
|
||||
GetCurrentAction(OBJECT_SELF) != ACTION_REST &&
|
||||
GetCurrentAction(OBJECT_SELF) != ACTION_ATTACKOBJECT)
|
||||
{
|
||||
if(
|
||||
!GetIsObjectValid(GetAttackTarget()) &&
|
||||
!GetIsObjectValid(GetAttemptedSpellTarget()) &&
|
||||
!GetIsObjectValid(GetAttemptedAttackTarget()) &&
|
||||
!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN))
|
||||
)
|
||||
{
|
||||
if (GetIsObjectValid(oMaster) == TRUE)
|
||||
{
|
||||
if(GetDistanceToObject(oMaster) > 6.0)
|
||||
{
|
||||
if(GetAssociateState(NW_ASC_HAVE_MASTER))
|
||||
{
|
||||
if(!PRCGetIsFighting())
|
||||
{
|
||||
if(!GetAssociateState(NW_ASC_MODE_STAND_GROUND))
|
||||
{
|
||||
if(GetDistanceToObject(GetMaster()) > GetFollowDistance())
|
||||
{
|
||||
ClearActions(CLEAR_NW_CH_AC1_49);
|
||||
if(GetAssociateState(NW_ASC_AGGRESSIVE_STEALTH) || GetAssociateState(NW_ASC_AGGRESSIVE_SEARCH))
|
||||
{
|
||||
if(GetAssociateState(NW_ASC_AGGRESSIVE_STEALTH))
|
||||
{
|
||||
//ActionUseSkill(SKILL_HIDE, OBJECT_SELF);
|
||||
//ActionUseSkill(SKILL_MOVE_SILENTLY,OBJECT_SELF);
|
||||
}
|
||||
if(GetAssociateState(NW_ASC_AGGRESSIVE_SEARCH))
|
||||
{
|
||||
ActionUseSkill(SKILL_SEARCH, OBJECT_SELF);
|
||||
}
|
||||
MyPrintString("GENERIC SCRIPT DEBUG STRING ********** " + "Assigning Force Follow Command with Search and/or Stealth");
|
||||
ActionForceFollowObject(oMaster, GetFollowDistance());
|
||||
}
|
||||
else
|
||||
{
|
||||
MyPrintString("GENERIC SCRIPT DEBUG STRING ********** " + "Assigning Force Follow Normal");
|
||||
ActionForceFollowObject(oMaster, GetFollowDistance());
|
||||
//ActionForceMoveToObject(GetMaster(), TRUE, GetFollowDistance(), 5.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(!GetAssociateState(NW_ASC_MODE_STAND_GROUND))
|
||||
{
|
||||
if(GetIsObjectValid(oMaster))
|
||||
{
|
||||
if(GetCurrentAction(oMaster) != ACTION_REST)
|
||||
{
|
||||
ClearActions(CLEAR_NW_CH_AC1_81);
|
||||
if(GetAssociateState(NW_ASC_AGGRESSIVE_STEALTH) || GetAssociateState(NW_ASC_AGGRESSIVE_SEARCH))
|
||||
{
|
||||
if(GetAssociateState(NW_ASC_AGGRESSIVE_STEALTH))
|
||||
{
|
||||
//ActionUseSkill(SKILL_HIDE, OBJECT_SELF);
|
||||
//ActionUseSkill(SKILL_MOVE_SILENTLY,OBJECT_SELF);
|
||||
}
|
||||
if(GetAssociateState(NW_ASC_AGGRESSIVE_SEARCH))
|
||||
{
|
||||
ActionUseSkill(SKILL_SEARCH, OBJECT_SELF);
|
||||
}
|
||||
MyPrintString("GENERIC SCRIPT DEBUG STRING ********** " + "Assigning Force Follow Command with Search and/or Stealth");
|
||||
ActionForceFollowObject(oMaster, GetFollowDistance());
|
||||
}
|
||||
else
|
||||
{
|
||||
MyPrintString("GENERIC SCRIPT DEBUG STRING ********** " + "Assigning Force Follow Normal");
|
||||
ActionForceFollowObject(oMaster, GetFollowDistance());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(!GetIsObjectValid(GetAttackTarget()) &&
|
||||
!GetIsObjectValid(GetAttemptedSpellTarget()) &&
|
||||
!GetIsObjectValid(GetAttemptedAttackTarget()) &&
|
||||
!GetAssociateState(NW_ASC_MODE_STAND_GROUND))
|
||||
{
|
||||
//DetermineCombatRound();
|
||||
}
|
||||
|
||||
}
|
||||
// * if I am dominated, ask for some help
|
||||
if (PRCGetHasEffect(EFFECT_TYPE_DOMINATED, OBJECT_SELF) == TRUE && GetIsEncounterCreature(OBJECT_SELF) == FALSE)
|
||||
{
|
||||
SendForHelp();
|
||||
}
|
||||
|
||||
if(GetSpawnInCondition(NW_FLAG_HEARTBEAT_EVENT))
|
||||
{
|
||||
SignalEvent(OBJECT_SELF, EventUserDefined(1001));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user