HiddenTradition_PRC8/_module/nss/q6_drider_ud.nss
2024-06-20 15:47:42 -04:00

86 lines
2.1 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Custom User Defined Event
//:: FileName
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Drider assassin: jump away every few rounds
*/
//:://////////////////////////////////////////////
//:: Created By:
//:: Created On:
//:://////////////////////////////////////////////
#include "nw_i0_generic"
void Jump()
{
object oWP = GetNearestObjectByTag("q6f_wp_assassin_jump", OBJECT_SELF, 3);
effect eJump = EffectDisappearAppear(GetLocation(oWP));
// heal now more than 5 times
int nCount = GetLocalInt(OBJECT_SELF, "HEAL_COUNT");
nCount++;
SetLocalInt(OBJECT_SELF, "HEAL_COUNT", nCount);
if(nCount <= 5)
{
effect eHeal = EffectHeal(30);
DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, OBJECT_SELF));
}
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eJump, OBJECT_SELF, 4.0);
object oEnemy = GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY);
DelayCommand(4.1, DetermineCombatRound(oEnemy));
SetLocalInt(OBJECT_SELF, "JUMP_COUNT_MAX", 0);
SetLocalInt(OBJECT_SELF, "JUMP_COUNT", 0);
}
void main()
{
int nUser = GetUserDefinedEventNumber();
if(nUser == 1001) //HEARTBEAT
{
}
else if(nUser == 1002) // PERCEIVE
{
}
else if(nUser == 1003) // END OF COMBAT
{
// jumps every few rounds
int nCount = GetLocalInt(OBJECT_SELF, "JUMP_COUNT");
int nCurrentMax = GetLocalInt(OBJECT_SELF, "JUMP_COUNT_MAX");
nCount++;
SetLocalInt(OBJECT_SELF, "JUMP_COUNT", nCount);
if(nCurrentMax == 0)
{
nCurrentMax = Random(3) + 1;
SetLocalInt(OBJECT_SELF, "JUMP_COUNT_MAX", nCurrentMax);
}
if(nCount == nCurrentMax) // already have a random time
Jump();
}
else if(nUser == 1004) // ON DIALOGUE
{
}
else if(nUser == 1005) // ATTACKED
{
}
else if(nUser == 1006) // DAMAGED
{
}
else if(nUser == 1007) // DEATH
{
}
else if(nUser == 1008) // DISTURBED
{
}
}