PRC8/nwn/nwnprc/trunk/include/prgt_inc.nss
Jaysyn904 6ec137a24e Updated AMS marker feats
Updated AMS marker feats.  Removed arcane & divine marker feats.  Updated Dread Necromancer for epic progression. Updated weapon baseitem models.  Updated new weapons for crafting & npc equip.
 Updated prefix.  Updated release archive.
2024-02-11 14:01:05 -05:00

106 lines
3.5 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Name Primogenitors Respawning Ground Trap include
//:: FileName prgt_inc
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
This was orignally designed to allow respawning ground traps
However, as of NWN 1.67 this is no longer needed.
The secondary purpose of this is now most useful and that
is to provide a system where a wide variety of traps
can be set and used.
This particular file provides interface functions
*/
//:://////////////////////////////////////////////
//:: Created By: Primogenitor
//:: Created On: Quite some time ago
//:://////////////////////////////////////////////
/*
int DAMAGE_TYPE_BLUDGEONING = 1;
int DAMAGE_TYPE_PIERCING = 2;
int DAMAGE_TYPE_SLASHING = 4;
int DAMAGE_TYPE_MAGICAL = 8;
int DAMAGE_TYPE_ACID = 16;
int DAMAGE_TYPE_COLD = 32;
int DAMAGE_TYPE_DIVINE = 64;
int DAMAGE_TYPE_ELECTRICAL = 128;
int DAMAGE_TYPE_FIRE = 256;
int DAMAGE_TYPE_NEGATIVE = 512;
int DAMAGE_TYPE_POSITIVE = 1024;
int DAMAGE_TYPE_SONIC = 2048;
*/
#include "prgt_inc_trap"
#include "inc_utility"
#include "prc_misc_const"
const int TRAP_EVENT_TRIGGERED = 1;
const int TRAP_EVENT_DISARMED = 2;
const int TRAP_EVENT_RECOVERED = 3; //this is in addition to being disarmed
object PRGT_CreateTrapAtLocation(location lLoc, struct trap tTrap)
{
object oTrap;
oTrap = CreateTrapAtLocation(TRAP_BASE_TYPE_PRGT,
lLoc,
tTrap.fSize,
"",//tag
STANDARD_FACTION_HOSTILE,
tTrap.sDisarmScript,
tTrap.sTriggerScript);
SetLocalTrap(oTrap, "TrapSettings", tTrap);
SetTrapOneShot(oTrap, FALSE);
SetTrapRecoverable(oTrap, FALSE);
return oTrap;
}
void PRGT_CreateTrapOnObject(object oTrap, struct trap tTrap)
{
CreateTrapOnObject(TRAP_BASE_TYPE_PRGT,
oTrap,
STANDARD_FACTION_HOSTILE,
tTrap.sDisarmScript,
tTrap.sTriggerScript);
SetLocalTrap(oTrap, "TrapSettings", tTrap);
SetTrapOneShot(oTrap, FALSE);
SetTrapRecoverable(oTrap, FALSE);
}
void PRGT_VoidCreateTrapAtLocation(location lLoc, struct trap tTrap)
{
PRGT_CreateTrapAtLocation(lLoc, tTrap);
}
void DoTrapXP(object oTrap, object oTarget, int nEvent)
{
switch(nEvent)
{
case TRAP_EVENT_TRIGGERED:
if(GetLocalString(GetModule(), PRC_PRGT_XP_SCRIPT_TRIGGERED) != "")
ExecuteScript(PRC_PRGT_XP_SCRIPT_TRIGGERED, oTarget);
else if(GetPRCSwitch(PRC_PRGT_XP_AWARD_FOR_TRIGGERED))
GiveXPRewardToParty(oTarget, OBJECT_INVALID, GetLocalTrap(oTrap, "TrapSettings").nCR);
break;
case TRAP_EVENT_DISARMED:
if(GetLocalString(GetModule(), PRC_PRGT_XP_SCRIPT_DISARMED) != "")
ExecuteScript(PRC_PRGT_XP_SCRIPT_TRIGGERED, oTarget);
else if(GetPRCSwitch(PRC_PRGT_XP_AWARD_FOR_DISARMED))
GiveXPRewardToParty(oTarget, OBJECT_INVALID, GetLocalTrap(oTrap, "TrapSettings").nCR);
break;
case TRAP_EVENT_RECOVERED:
if(GetLocalString(GetModule(), PRC_PRGT_XP_SCRIPT_RECOVERED) != "")
ExecuteScript(PRC_PRGT_XP_SCRIPT_TRIGGERED, oTarget);
else if(GetPRCSwitch(PRC_PRGT_XP_AWARD_FOR_RECOVERED))
GiveXPRewardToParty(oTarget, OBJECT_INVALID, GetLocalTrap(oTrap, "TrapSettings").nCR);
break;
}
}