forked from Jaysyn/PRC8
Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
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;
|
|
}
|
|
}
|