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.
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.
|
|
} |