EN6_PRC8/_module/nss/cm_treat_include.nss
Jaysyn904 a6f6db7303 Initial commit
Initial commit.  Updated release archive.
2024-06-13 15:08:33 -04:00

800 lines
25 KiB
Plaintext

// Check to see if afflicted
void CreatePotion(string ResRef, object oUser, int iStack)
{
CreateItemOnObject(ResRef, oUser, iStack);
}
void CalcNegEff(object oUser)
{
int eCount=0;
effect eBad = GetFirstEffect(oUser);//Search for negative effects
SetLocalInt(oUser, "badeffects", 0);
while(GetIsEffectValid(eBad))
{
if (GetEffectType(eBad) == EFFECT_TYPE_ABILITY_DECREASE ||
GetEffectType(eBad) == EFFECT_TYPE_AC_DECREASE ||
GetEffectType(eBad) == EFFECT_TYPE_ATTACK_DECREASE ||
GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_DECREASE ||
GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_IMMUNITY_DECREASE ||
GetEffectType(eBad) == EFFECT_TYPE_SAVING_THROW_DECREASE ||
GetEffectType(eBad) == EFFECT_TYPE_SPELL_RESISTANCE_DECREASE ||
GetEffectType(eBad) == EFFECT_TYPE_SKILL_DECREASE ||
GetEffectType(eBad) == EFFECT_TYPE_BLINDNESS ||
GetEffectType(eBad) == EFFECT_TYPE_DEAF ||
GetEffectType(eBad) == EFFECT_TYPE_PARALYZE ||
GetEffectType(eBad) == EFFECT_TYPE_DISEASE ||
GetEffectType(eBad) == EFFECT_TYPE_POISON ||
GetEffectType(eBad) == EFFECT_TYPE_NEGATIVELEVEL ||
GetEffectType(eBad) == EFFECT_TYPE_SLOW )
{
eCount=(eCount+1);
}
eBad = GetNextEffect(oUser);
}
SetLocalInt(oUser, "badeffects", eCount);
return;
}
// if need restoration
void Restoration(object oUser)
{
int iStack;
object oPot = GetItemPossessedBy(oUser, "NW_IT_MPOTION011");
object oScroll = GetItemPossessedBy(oUser, "NW_IT_SPDVSCR201");
object oScroll1 = GetItemPossessedBy(oUser, "NW_IT_SPDVSCR401");
object oScroll2 = GetItemPossessedBy(oUser, "NW_IT_SPDVSCR701");
if (oPot!= OBJECT_INVALID)
{
iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_mpotion0011", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_LESSER_RESTORATION,
oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
if (oScroll!= OBJECT_INVALID)
{
iStack = GetNumStackedItems(oScroll);
iStack--;
DestroyObject(oScroll, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_spdvscr201", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_READ);
AssignCommand(oUser, ActionCastSpellAtObject(SPELL_LESSER_RESTORATION, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
return;
}
else
if (oScroll1!= OBJECT_INVALID)
{
iStack = GetNumStackedItems(oScroll1);
iStack--;
DestroyObject(oScroll, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_spdvscr401", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_READ);
AssignCommand(oUser, ActionCastSpellAtObject(SPELL_RESTORATION, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
return;
}
else
if (oScroll2!= OBJECT_INVALID)
{
iStack = GetNumStackedItems(oScroll2);
iStack--;
DestroyObject(oScroll, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_spdvscr701", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_READ);
AssignCommand(oUser, ActionCastSpellAtObject(SPELL_GREATER_RESTORATION, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
return;
}
else
{
ClearAllActions();
ActionSpeakString("I need any Restoration potion or scroll.");
}
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
}
void Speedup(object oUser)
{
object oPot = GetItemPossessedBy(oUser, "NW_IT_MPOTION004");
object oScroll = GetItemPossessedBy(oUser, "NW_IT_SPDVSCR701");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oPot!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_mpotion004", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_HASTE, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
if (oScroll!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oScroll);
iStack--;
DestroyObject(oScroll, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_spdvscr701", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_READ);
AssignCommand(oUser, ActionCastSpellAtObject(SPELL_GREATER_RESTORATION, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
return;
}
else
{
ClearAllActions();
ActionSpeakString("I need a Speed potion or a Greater Restoration scroll.");
}
}
void Antidote(object oUser)
{
object oPot = GetItemPossessedBy(oUser, "NW_IT_MPOTION006");
object oScroll = GetItemPossessedBy(oUser, "NW_IT_SPDVSCR701");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oPot!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_mpotion006", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_NEUTRALIZE_POISON, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
if (oScroll!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oScroll);
iStack--;
DestroyObject(oScroll, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_spdvscr701", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_READ);
AssignCommand(oUser, ActionCastSpellAtObject(SPELL_GREATER_RESTORATION, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
return;
}
else
{
ClearAllActions();
ActionSpeakString("I need an Antedote potion.");
}
}
void GreaterRestoration(object oUser)
{
object oScroll = GetItemPossessedBy(oUser, "NW_IT_SPDVSCR701");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oScroll!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oScroll);
iStack--;
DestroyObject(oScroll, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_spdvscr701", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_READ);
AssignCommand(oUser, ActionCastSpellAtObject(SPELL_GREATER_RESTORATION, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
return;
}
else
{
ClearAllActions();
ActionSpeakString("I need a Greater Restoration Scroll .");
}
}
void Invisibility(object oUser)
{
object oPot = GetItemPossessedBy(oUser, "NW_IT_MPOTION008");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oPot!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_mpotion008", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_INVISIBILITY, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
{
ClearAllActions();
ActionSpeakString("I don't have any Invisibility potions.");
ActionPlayAnimation(ANIMATION_LOOPING_TALK_PLEADING, 1.0f, 2.0f);
}
}
void Clarity(object oUser)
{
object oPot = GetItemPossessedBy(oUser, "NW_IT_MPOTION007");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oPot!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_mpotion007", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_CLARITY, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
{
ClearAllActions();
ActionSpeakString("I don't have any Clarity potions.");
ActionPlayAnimation(ANIMATION_LOOPING_TALK_PLEADING, 1.0f, 2.0f);
}
}
void LesserRest(object oUser)
{
object oPot = GetItemPossessedBy(oUser, "NW_IT_MPOTION011");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oPot!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_mpotion011", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_LESSER_RESTORATION, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
{
ClearAllActions();
ActionSpeakString("I don't have any Lesser Restoration potions.");
ActionPlayAnimation(ANIMATION_LOOPING_TALK_PLEADING, 1.0f, 2.0f);
}
}
void Anti(object oUser)
{
object oPot = GetItemPossessedBy(oUser, "NW_IT_MPOTION006");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oPot!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_mpotion006", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_NEUTRALIZE_POISON, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
{
ClearAllActions();
ActionSpeakString("I don't have any Antidote potions.");
ActionPlayAnimation(ANIMATION_LOOPING_TALK_PLEADING, 1.0f, 2.0f);
}
}
void Haste(object oUser)
{
object oPot = GetItemPossessedBy(oUser, "NW_IT_MPOTION004");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oPot!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_mpotion004", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_HASTE, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
{
ClearAllActions();
ActionSpeakString("I don't have any Speed potions.");
ActionPlayAnimation(ANIMATION_LOOPING_TALK_PLEADING, 1.0f, 2.0f);
}
}
void Bullstrength(object oUser)
{
object oPot = GetItemPossessedBy(oUser, "NW_IT_MPOTION015");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oPot!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_mpotion015", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_BULLS_STRENGTH, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
{
ClearAllActions();
ActionSpeakString("I don't have any Bull's Strength potions.");
ActionPlayAnimation(ANIMATION_LOOPING_TALK_PLEADING, 1.0f, 2.0f);
}
}
void Aid(object oUser)
{
object oPot = GetItemPossessedBy(oUser, "NW_IT_MPOTION016");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oPot!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_mpotion016", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_AID, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
{
ClearAllActions();
ActionSpeakString("I don't have any Aid potions.");
ActionPlayAnimation(ANIMATION_LOOPING_TALK_PLEADING, 1.0f, 2.0f);
}
}
void Barkskin(object oUser)
{
object oPot = GetItemPossessedBy(oUser, "NW_IT_MPOTION005");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oPot!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_mpotion005", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_BARKSKIN, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
{
ClearAllActions();
ActionSpeakString("I don't have any Barkskin potions.");
ActionPlayAnimation(ANIMATION_LOOPING_TALK_PLEADING, 1.0f, 2.0f);
}
}
void Bless (object oUser)
{
object oPot = GetItemPossessedBy(oUser, "NW_IT_MPOTION009");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oPot!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_mpotion009", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_BLESS, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
{
ClearAllActions();
ActionSpeakString("I don't have any Bless potions.");
ActionPlayAnimation(ANIMATION_LOOPING_TALK_PLEADING, 1.0f, 2.0f);
}
}
void Heal(object oUser)
{
object oPot = GetItemPossessedBy(oUser, "NW_IT_MPOTION012");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oPot!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_mpotion012", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_HEAL, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
{
ClearAllActions();
ActionSpeakString("I don't have any Full Heal potions.");
ActionPlayAnimation(ANIMATION_LOOPING_TALK_PLEADING, 1.0f, 2.0f);
}
}
void DeathArmour (object oUser)
{
object oPot = GetItemPossessedBy(oUser, "X2_IT_MPOTION002");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oPot!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("x2_it_mpotion002", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_DEATH_ARMOR, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
{
ClearAllActions();
ActionSpeakString("I don't have any Death Armour potions.");
ActionPlayAnimation(ANIMATION_LOOPING_TALK_PLEADING, 1.0f, 2.0f);
}
}
void IronGuts(object oUser)
{
object oPot = GetItemPossessedBy(oUser, "X2_IT_MPOTION001");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oPot!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("x2_it_mpotion001", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_IRONGUTS, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
{
ClearAllActions();
ActionSpeakString("I don't have any Ironguts potions.");
ActionPlayAnimation(ANIMATION_LOOPING_TALK_PLEADING, 1.0f, 2.0f);
}
}
void Dex(object oUser)
{
object oPot = GetItemPossessedBy(oUser, "NW_IT_MPOTION014");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oPot!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_mpotion014", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_CATS_GRACE, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
{
ClearAllActions();
ActionSpeakString("I don't have any Cat's Grace potions.");
ActionPlayAnimation(ANIMATION_LOOPING_TALK_PLEADING, 1.0f, 2.0f);
}
}
void Char(object oUser)
{
object oPot = GetItemPossessedBy(oUser, "NW_IT_MPOTION010");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oPot!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_mpotion010", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_EAGLE_SPLEDOR, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
{
ClearAllActions();
ActionSpeakString("I don't have any Eagle's Splendour potions.");
ActionPlayAnimation(ANIMATION_LOOPING_TALK_PLEADING, 1.0f, 2.0f);
}
}
void Int(object oUser)
{
object oPot = GetItemPossessedBy(oUser, "NW_IT_MPOTION017");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oPot!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_mpotion017", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_FOXS_CUNNING, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
{
ClearAllActions();
ActionSpeakString("I don't have any Fox's Cunning potions.");
ActionPlayAnimation(ANIMATION_LOOPING_TALK_PLEADING, 1.0f, 2.0f);
}
}
void Wis(object oUser)
{
object oPot = GetItemPossessedBy(oUser, "NW_IT_MPOTION018");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oPot!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_mpotion018", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_OWLS_WISDOM, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
{
ClearAllActions();
ActionSpeakString("I don't have any Owl's Wisdom potions.");
ActionPlayAnimation(ANIMATION_LOOPING_TALK_PLEADING, 1.0f, 2.0f);
}
}
void Con(object oUser)
{
object oPot = GetItemPossessedBy(oUser, "NW_IT_MPOTION018");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oPot!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_mpotion018", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_ENDURANCE, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
{
ClearAllActions();
ActionSpeakString("I don't have any Endurance potions.");
ActionPlayAnimation(ANIMATION_LOOPING_TALK_PLEADING, 1.0f, 2.0f);
}
}
void CureLig(object oUser)
{
object oPot = GetItemPossessedBy(oUser, "NW_IT_MPOTION001");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oPot!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_mpotion001", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_CURE_LIGHT_WOUNDS, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
{
ClearAllActions();
ActionSpeakString("I don't have any Cure Light Wounds potions.");
ActionPlayAnimation(ANIMATION_LOOPING_TALK_PLEADING, 1.0f, 2.0f);
}
}
void CureMod(object oUser)
{
object oPot = GetItemPossessedBy(oUser, "NW_IT_MPOTION020");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oPot!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_mpotion020", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_CURE_MODERATE_WOUNDS, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
{
ClearAllActions();
ActionSpeakString("I don't have any Cure Moderate Wounds potions.");
ActionPlayAnimation(ANIMATION_LOOPING_TALK_PLEADING, 1.0f, 2.0f);
}
}
void CureSer(object oUser)
{
object oPot = GetItemPossessedBy(oUser, "NW_IT_MPOTION002");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oPot!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_mpotion002", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_CURE_SERIOUS_WOUNDS, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
{
ClearAllActions();
ActionSpeakString("I don't have any Cure Serious Wounds potions.");
ActionPlayAnimation(ANIMATION_LOOPING_TALK_PLEADING, 1.0f, 2.0f);
}
}
void CureCrit(object oUser)
{
object oPot = GetItemPossessedBy(oUser, "NW_IT_MPOTION003");
SetLocalInt(oUser, "buffing", 1);
DelayCommand(3.0, SetLocalInt(oUser, "buffing", 0));
if (oPot!= OBJECT_INVALID)
{
int iStack = GetNumStackedItems(oPot);
iStack--;
DestroyObject(oPot, 0.0);
if (iStack>0){DelayCommand(0.3, CreatePotion("nw_it_mpotion003", oUser, iStack));}
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
ActionCastSpellAtObject(SPELL_CURE_CRITICAL_WOUNDS, oUser, METAMAGIC_ANY, TRUE, 10, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
return;
}
else
{
ClearAllActions();
ActionSpeakString("I don't have any Cure Critical Wounds potions.");
ActionPlayAnimation(ANIMATION_LOOPING_TALK_PLEADING, 1.0f, 2.0f);
}
}
void TreatSelf(object oStar)
{
effect eBad=GetFirstEffect(oStar);
while(GetIsEffectValid(eBad))
{
if (GetEffectType(eBad) == EFFECT_TYPE_POISON ||
GetEffectType(eBad) == EFFECT_TYPE_DISEASE)
{
Antidote(oStar);
return;
}
eBad = GetNextEffect(oStar);
}
eBad=GetFirstEffect(oStar);
while(GetIsEffectValid(eBad))
{
if (GetEffectType(eBad) == EFFECT_TYPE_ABILITY_DECREASE ||
GetEffectType(eBad) == EFFECT_TYPE_AC_DECREASE ||
GetEffectType(eBad) == EFFECT_TYPE_ATTACK_DECREASE ||
GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_DECREASE ||
GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_IMMUNITY_DECREASE ||
GetEffectType(eBad) == EFFECT_TYPE_SAVING_THROW_DECREASE ||
GetEffectType(eBad) == EFFECT_TYPE_SPELL_RESISTANCE_DECREASE ||
GetEffectType(eBad) == EFFECT_TYPE_SKILL_DECREASE)
{
Restoration(oStar);
return;
}
eBad = GetNextEffect(oStar);
}
eBad=GetFirstEffect(oStar);
while(GetIsEffectValid(eBad))
{
if (GetEffectType(eBad) == EFFECT_TYPE_SLOW &&
GetEffectType(eBad) != EFFECT_TYPE_HASTE)
{
Speedup(oStar);
return;
}
else
{
ClearAllActions();
ActionSpeakString("There's nothing wrong with me right now...");
ActionPlayAnimation(ANIMATION_LOOPING_TALK_LAUGHING, 1.0f, 2.0f);
return;
}
eBad = GetNextEffect(oStar);
}
eBad=GetFirstEffect(oStar);
while(GetIsEffectValid(eBad))
{
if (GetEffectType(eBad) == EFFECT_TYPE_BLINDNESS ||
GetEffectType(eBad) == EFFECT_TYPE_DEAF ||
GetEffectType(eBad) == EFFECT_TYPE_PARALYZE ||
GetEffectType(eBad) == EFFECT_TYPE_NEGATIVELEVEL)
{
GreaterRestoration(oStar);
return;
}
eBad = GetNextEffect(oStar);
}
}
//void main() {}