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.
69 lines
2.3 KiB
Plaintext
69 lines
2.3 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Clean Off Poison spellscript
|
|
//:: poison_cleanitem
|
|
//::///////////////////////////////////////////////
|
|
/*
|
|
Removes contact poison, all relevant locals
|
|
and this spell from the item casting this spell.
|
|
This spell is attached to any items that are
|
|
poisoned.
|
|
|
|
Any character other than the original poisoner
|
|
using this will have to roll Disable Traps
|
|
versus a DC stored on the item. On failure,
|
|
they get poisoned.
|
|
Either way, the removal happens.
|
|
|
|
Locals removed, integers:
|
|
pois_itm_idx
|
|
pois_itm_uses
|
|
pois_itm_trap_dc
|
|
pois_itm_safecount
|
|
|
|
Locals removed, objects:
|
|
pois_itm_poisoner
|
|
pois_itm_safe_X , where X is from 1 to pois_itm_safecount
|
|
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Ornedan
|
|
//:: Created On: 10.01.2005
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "prc_alterations"
|
|
#include "inc_poison"
|
|
#include "prc_inc_spells"
|
|
|
|
|
|
void main()
|
|
{
|
|
object oItem = GetSpellCastItem();
|
|
object oPC = OBJECT_SELF;
|
|
|
|
if(!(oPC == GetLocalObject(oItem, "pois_itm_poisoner")))
|
|
{
|
|
int nDC = GetLocalInt(oItem, "pois_itm_trap_dc");
|
|
|
|
if(!GetIsSkillSuccessful(oPC, SKILL_DISABLE_TRAP, nDC))
|
|
{
|
|
// Apply the poison to the cleaner
|
|
int nPoisonIdx = GetLocalInt(oItem, "pois_itm_idx");
|
|
effect ePoison = EffectPoison(nPoisonIdx);
|
|
SPApplyEffectToObject(DURATION_TYPE_PERMANENT, ePoison, oPC, 0.0f, FALSE);
|
|
|
|
// Inform the cleaner of the fact
|
|
SendMessageToPC(oPC,
|
|
GetStringByStrRef(STRREF_CLEAN_ITEM_FAIL_1) + " " +
|
|
GetName(oItem) + " " +
|
|
GetStringByStrRef(STRREF_CLEAN_ITEM_FAIL_2)
|
|
); // You slip while cleaning xxxx and touch the poison.
|
|
}// end if - Disable Trap check failed
|
|
}// end if - Handle cleaner != poisoner
|
|
|
|
// Remove the poison and inform player
|
|
DoPoisonRemovalFromItem(oItem);
|
|
SendMessageToPC(oPC,
|
|
GetStringByStrRef(STRREF_CLEAN_ITEM_SUCCESS) + " " +
|
|
GetName(oItem) + "."
|
|
); // You remove all traces of poison off of xxxx.
|
|
} |