Clear out experimental .35 files
Clear out experimental .35 files
This commit is contained in:
@@ -1,110 +0,0 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Poisoned Item OnAcquire Event script
|
||||
//:: poison_onaquire
|
||||
//::///////////////////////////////////////////////
|
||||
/** @file
|
||||
This script will determine if the acquired item
|
||||
was poisoned with a contact poison.
|
||||
|
||||
If so, the acquirer must do a Spot check versus
|
||||
a DC stored on the item.
|
||||
On success, they notice the poison and pick the
|
||||
item up safely. They also get added to a list of
|
||||
people on the item who can safely handle it.
|
||||
On failure, they get affected by the poison.
|
||||
|
||||
|
||||
Locals set by this:
|
||||
pois_itm_safecount - Integer.
|
||||
Number of people, other
|
||||
than the poisoner, that
|
||||
can handle the item
|
||||
safely.
|
||||
|
||||
pois_itm_uses - Integer.
|
||||
Number of times this item
|
||||
can poison people before
|
||||
the poison wears off.
|
||||
|
||||
pois_itm_safe_X - Object.
|
||||
If user succeeded on their
|
||||
Spot check, they get added
|
||||
to a list on the item.
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Ornedan
|
||||
//:: Created On: 10.01.2005
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
#include "prc_alterations"
|
||||
#include "inc_poison"
|
||||
#include "prc_inc_spells"
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
object oItem = GetModuleItemAcquired();
|
||||
object oTarget = GetModuleItemAcquiredBy();
|
||||
int nUses = GetLocalInt(oItem, "pois_itm_uses");
|
||||
|
||||
// Check to see if the item is poisoned. Any non-zero nUses means it is
|
||||
if(!nUses) return;
|
||||
|
||||
// Some checks to see if the acquirer can safely handle the item
|
||||
// They can, if they are the poisoner or have succeeded on a Spot check regarding this item
|
||||
int bSafeToHandle = FALSE;
|
||||
int nSafeCount = GetLocalInt(oItem, "pois_itm_safecount");
|
||||
|
||||
if(oTarget == GetLocalObject(oItem, "pois_itm_poisoner"))
|
||||
bSafeToHandle = TRUE;
|
||||
else
|
||||
{
|
||||
if(nSafeCount > 0)
|
||||
{
|
||||
int i;
|
||||
object oCheck;
|
||||
for(i = 1; i <= nSafeCount; i++){
|
||||
oCheck = GetLocalObject(oItem, "pois_itm_safe_" + IntToString(i));
|
||||
if(oTarget == oCheck){
|
||||
bSafeToHandle = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}// end if - the list has elements
|
||||
}// end else - look through the safe users list to see if current user is in there
|
||||
|
||||
// Handle the acquirer not being aware of the poison
|
||||
if(!bSafeToHandle)
|
||||
{
|
||||
int nDC = GetLocalInt(oItem, "pois_itm_trap_dc");
|
||||
|
||||
if(GetIsSkillSuccessful(oTarget, SKILL_SPOT, nDC))
|
||||
{
|
||||
// Inform them of the poison on the item
|
||||
SendMessageToPC(oTarget,
|
||||
GetStringByStrRef(STRREF_ACQUIRE_SPOT_SUCCESS1) + " " +
|
||||
GetName(oItem) + " " +
|
||||
GetStringByStrRef(STRREF_ACQUIRE_SPOT_SUCCESS2)
|
||||
); // You notice xxxx is covered with poison and pick it up very carefully.
|
||||
}// end if - Spot check succeeded
|
||||
else
|
||||
{
|
||||
// Apply the poison to acquirer
|
||||
int nPoisonIdx = GetLocalInt(oItem, "pois_itm_idx");
|
||||
effect ePoison = EffectPoison(nPoisonIdx);
|
||||
SPApplyEffectToObject(DURATION_TYPE_PERMANENT, ePoison, oTarget, 0.0f, FALSE);
|
||||
|
||||
//Decrement uses remaining and handle poison wearing off
|
||||
nUses--;
|
||||
if(nUses <= 0)
|
||||
DoPoisonRemovalFromItem(oItem);
|
||||
else
|
||||
SetLocalInt(oItem, "pois_itm_uses", nUses);
|
||||
}// end else - Spot check failed
|
||||
|
||||
// Either way, mark that the acquirer now knows about the poison and can safely handle the item
|
||||
nSafeCount++;
|
||||
SetLocalInt(oItem, "pois_itm_safecount", nSafeCount);
|
||||
SetLocalObject(oItem, "pois_itm_safe_" + IntToString(nSafeCount), oTarget);
|
||||
}// end if - user doesn't know about the poison
|
||||
}
|
Reference in New Issue
Block a user