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.
106 lines
3.5 KiB
Plaintext
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;
|
|
}
|
|
}
|