Files
PRC8/nwn/nwnprc/trunk/scripts/prc_souleater.nss
Jaysyn904 df731f3bd4 2026/04/27 Evening Update
Added PRC Option to change player model to appearances in racialappear.2da
Added class heartbeat script and updated Soul Eater's onHit to work with NPCs and cohorts.
2026-04-27 20:49:54 -04:00

47 lines
1.7 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Name: prc_souleater
//:: FileName: prc_souleater.nss
//:://////////////////////////////////////////////
/*
Soul Eater class heartbeat script
Ensures onHit energy drain is applied to unarmed attacks
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 2026-04-27 12:35:59
//:://////////////////////////////////////////////
#include "prc_inc_combat"
#include "prc_inc_onhit"
void main()
{
object oPC = OBJECT_SELF;
// Only proceed if character is a Soul Eater
if(GetLevelByClass(CLASS_TYPE_SOUL_EATER, oPC) == 0)
return;
// Only proceed if unarmed (no melee weapon equipped)
if(!GetIsUnarmed(oPC))
return;
// Get the unarmed weapon (creature weapon or gloves)
object oUnarmedWeapon = GetUnarmedWeapon(oPC);
// Apply onHit property if weapon is valid
if(GetIsObjectValid(oUnarmedWeapon))
{
// Remove any existing temporary properties first
RemoveSpecificProperty(oUnarmedWeapon, ITEM_PROPERTY_ONHITCASTSPELL,
IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 0, 1, "", -1, DURATION_TYPE_TEMPORARY);
// Set up the signature for event routing
SetLocalInt(oUnarmedWeapon, PRC_CUSTOM_ONHIT_SIGNATURE + "prc_uni_shift", TRUE);
// Add temporary onHit property
IPSafeAddItemProperty(oUnarmedWeapon,
ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1),
9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
}
}