Amon_PRC8/_module/nss/mod_onactivate.nss
Jaysyn904 c5cffc37af Initial Commit
Initial Commit [v1.01]
2025-04-03 19:00:46 -04:00

816 lines
32 KiB
Plaintext

#include "craft_inc"
#include "horse_include"
#include "prc_class_const"
void ApplyAdditionalHP(object oPC, int iAmount, float fDuration)
{
effect eHP;
eHP=GetFirstEffect(oPC);
while(GetIsEffectValid(eHP))
{
if(GetEffectType(eHP)==EFFECT_TYPE_TEMPORARY_HITPOINTS)
{
RemoveEffect(oPC, eHP);
SendMessageToPC(oPC, "Removing Existing HP Buff");
}
eHP=GetNextEffect(oPC);
}
eHP=EffectTemporaryHitpoints(iAmount);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eHP, oPC, fDuration);
eHP=EffectVisualEffect(VFX_IMP_HOLY_AID);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eHP, oPC, fDuration);
}
void main()
{
object oItem = GetItemActivated();
object oActivator = GetItemActivator();
object oPC = GetItemActivator();
object oTarget=GetItemActivatedTarget();
location lActivator = GetLocation(oActivator);
string sItemTag = GetTag(oItem);
string sItemTag2 = GetResRef(oTarget);
location lTarget = GetLocation(oTarget);
int iSkill = GetSkillRank(SKILL_PERFORM, oPC); //Skill Modifier for ranks in perform
int iRoll = d20(); //Skill Roll
int iTotal = iRoll + iSkill; //DC Check
string sTotal = IntToString(iTotal);
effect eSong = EffectVisualEffect(VFX_DUR_BARD_SONG);
GPA_OnActivate(oPC,oItem);
ExecuteScript(GetTag(GetItemActivated()), OBJECT_SELF);
int iBardic = GetLevelByClass(CLASS_TYPE_BARD, oPC)
+ GetLevelByClass(CLASS_TYPE_DIRGESINGER, oPC)
+ GetLevelByClass(CLASS_TYPE_DRAGONSONG_LYRIST, oPC)
+ GetLevelByClass(CLASS_TYPE_SUBLIME_CHORD, oPC)
+ GetLevelByClass(CLASS_TYPE_VIRTUOSO, oPC);
if (sItemTag == "em_bindstone")
{
ExecuteScript("em_onitmactvt", oPC);
}
if (sItemTag == "DyeKit")
{
AssignCommand(oPC, ActionStartConversation(oPC, "dye_dyekit", TRUE));
}
if (sItemTag == "ULITEM_139")
{
AssignCommand(oPC, ActionStartConversation(oPC, "dye_dyekit", TRUE));
}
if (sItemTag == "ULITEM_191")
{
GiveXPToCreature(oPC, 200);
ExecuteScript("wizlevel1", oPC);
ExecuteScript("wizlevel1", oPC);
ExecuteScript("wizlevel1", oPC);
ExecuteScript("wizlevel1", oPC);
}
if (sItemTag == "ULITEM_192")
{
GiveXPToCreature(oPC, 250);
ExecuteScript("wizlevel1", oPC);
ExecuteScript("wizlevel2", oPC);
ExecuteScript("wizlevel2", oPC);
ExecuteScript("wizlevel2", oPC);
ExecuteScript("wizlevel2", oPC);
}
if (sItemTag == "ULITEM_193")
{
GiveXPToCreature(oPC, 300);
ExecuteScript("wizlevel1", oPC);
ExecuteScript("wizlevel2", oPC);
ExecuteScript("wizlevel3", oPC);
ExecuteScript("wizlevel3", oPC);
ExecuteScript("wizlevel3", oPC);
ExecuteScript("wizlevel3", oPC);
}
if (sItemTag=="EXPBOOK")
{
GiveXPToCreature(oPC, 1000);
effect eHP;
eHP=EffectVisualEffect(VFX_IMP_DIVINE_STRIKE_HOLY);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eHP, oPC, 0.0f);
}
if ((sItemTag=="ULITEM_111")||(sItemTag=="ULITEM_112")||(sItemTag=="ULITEM_113")||(sItemTag=="ULITEM_114")||(sItemTag=="ULITEM_115")||(sItemTag=="ULITEM_116")||(sItemTag=="ULITEM_117"))
{
GiveXPToCreature(oPC, 500);
effect eHP;
eHP=EffectVisualEffect(VFX_IMP_DIVINE_STRIKE_HOLY);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eHP, oPC, 0.0f);
}
if (sItemTag=="hornofpaerun")
{
ExecuteScript("hornofpaerun", OBJECT_SELF);
}
if (sItemTag=="Gher2")
{
ExecuteScript("gherportal", OBJECT_SELF);
}
if (sItemTag=="ULITEM_127")
{
ExecuteScript("gherportal", OBJECT_SELF);
}
if (sItemTag=="ML1")
{
//get object that activated item
object oActivator = GetItemActivator();
// some speech (for debugging too)
//AssignCommand(oActivator, SpeakString("Hi! I'm the sword."));
//create TalkingSwordAvator object
//ActionJumpToLocation and JumpToLocation don't seem to work with placeable objects...
object oSwordAvatar = CreateObject(OBJECT_TYPE_PLACEABLE, "talkingbeads", GetLocation(oActivator), FALSE);
//for some reason if I swap oActvator and oSwordAvatar around it doesn't work.
AssignCommand(oActivator, ActionStartConversation(oSwordAvatar, "", FALSE));
//In the conversation script when the conversation ends, I destroy the object
}
if (sItemTag=="ML2")
{
AssignCommand(oPC, PlaySound("as_na_lavaburst1"));
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_GREATER_OWLS_WISDOM, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_CURE_LIGHT_WOUNDS, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
ApplyAdditionalHP(oPC, 30, 3600.0);
ActionStartConversation(oPC,"prayerbeads",TRUE);
}
if (sItemTag=="ML3")
{
AssignCommand(oPC, PlaySound("as_na_lavaburst1"));
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_GREATER_OWLS_WISDOM, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_CURE_MODERATE_WOUNDS, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
ApplyAdditionalHP(oPC, 40, 3600.0);
ActionStartConversation(oPC,"prayerbeads",TRUE);
}
if (sItemTag=="ML4")
{
AssignCommand(oPC, PlaySound("as_na_lavaburst1"));
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_GREATER_OWLS_WISDOM, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_CURE_SERIOUS_WOUNDS, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
ApplyAdditionalHP(oPC, 50, 3600.0);
ActionStartConversation(oPC,"prayerbeads",TRUE);
}
if (sItemTag=="ML5")
{
AssignCommand(oPC, PlaySound("as_na_lavaburst1"));
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_GREATER_OWLS_WISDOM, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_CURE_CRITICAL_WOUNDS, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
ApplyAdditionalHP(oPC, 60, 3600.0);
ActionStartConversation(oPC,"prayerbeads",TRUE);
}
if (sItemTag=="ML6")
{
AssignCommand(oPC, PlaySound("as_na_lavaburst1"));
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_GREATER_OWLS_WISDOM, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_CURE_CRITICAL_WOUNDS, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
ApplyAdditionalHP(oPC, 60, 3600.0);
ActionStartConversation(oPC,"prayerbeads",TRUE);
}
if (sItemTag=="ML7")
{
AssignCommand(oPC, PlaySound("as_na_lavaburst1"));
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_GREATER_OWLS_WISDOM, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_CURE_CRITICAL_WOUNDS, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
ApplyAdditionalHP(oPC, 80, 3600.0);
ActionStartConversation(oPC,"prayerbeads",TRUE);
}
if (sItemTag=="ML8")
{
AssignCommand(oPC, PlaySound("as_na_lavaburst1"));
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_GREATER_OWLS_WISDOM, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_HEAL, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
ApplyAdditionalHP(oPC, 100, 3600.0);
ActionStartConversation(oPC,"prayerbeads",TRUE);
}
if (sItemTag=="ML9")
{
AssignCommand(oPC, PlaySound("as_na_lavaburst1"));
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_GREATER_OWLS_WISDOM, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_MASS_HEAL, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
ApplyAdditionalHP(oPC, 200, 3600.0);
ActionStartConversation(oPC,"prayerbeads",TRUE);
}
if (sItemTag=="MLavenger")
{
AssignCommand(oPC, PlaySound("as_na_lavaburst1"));
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_GREATER_OWLS_WISDOM, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_MASS_HEAL, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
ApplyAdditionalHP(oPC, 200, 3600.0);
ActionStartConversation(oPC,"prayerbeads",TRUE);
}
if (sItemTag=="HradicTome")
{
AssignCommand(oPC, PlaySound("as_na_lavaburst2"));
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_GREATER_STONESKIN, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_HEALING_CIRCLE, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
}
if (sItemTag=="LQ6")
{
ExecuteScript("hornofpaerun", OBJECT_SELF);
}
if (sItemTag=="KelObjectHigh183")
{
ExecuteScript("gaunt_sapph", OBJECT_SELF);
}
if (sItemTag=="KelObjectHigh184")
{
ExecuteScript("gaunt_ruby", OBJECT_SELF);
}
if (sItemTag=="KelObjectHigh185")
{
ExecuteScript("gaunt_emer", OBJECT_SELF);
}
if (sItemTag=="AshenEnt1")
{
ExecuteScript("entwater", OBJECT_SELF);
}
if (sItemTag=="KryxStaff")
{
ExecuteScript("kryxstaff2", OBJECT_SELF);
}
if (sItemTag=="ExplosiveKeg")
{
CreateObject(OBJECT_TYPE_PLACEABLE, "explosivekeg", lActivator);
}
if (sItemTag=="friedgal3")
{
CreateObject(OBJECT_TYPE_CREATURE, "summonedsloven", lActivator);
CreateObject(OBJECT_TYPE_CREATURE, "summonedsloven", lActivator);
CreateObject(OBJECT_TYPE_CREATURE, "summonedsloven", lActivator);
CreateObject(OBJECT_TYPE_CREATURE, "summonedsloven", lActivator);
CreateObject(OBJECT_TYPE_CREATURE, "summonedsloven", lActivator);
}
if (sItemTag=="ssrall0012")
{
ExecuteScript("underworldstaff", OBJECT_SELF);
}
if (sItemTag=="Qetesh2")
{
ApplyAdditionalHP(oPC, 1000, 3600.0);
}
if (sItemTag=="OL1")
{
ApplyAdditionalHP(oPC, 10, 3600.0);
}
if (sItemTag=="OL2")
{
ApplyAdditionalHP(oPC, 10, 3600.0);
}
if (sItemTag=="OL3")
{
ApplyAdditionalHP(oPC, 20, 3600.0);
}
if (sItemTag=="OL4")
{
ApplyAdditionalHP(oPC, 20, 3600.0);
}
if (sItemTag=="OL5")
{
ApplyAdditionalHP(oPC, 50, 3600.0);
}
if (sItemTag=="OL6")
{
ApplyAdditionalHP(oPC, 75, 3600.0);
}
if (sItemTag=="OL7")
{
ApplyAdditionalHP(oPC, 75, 3600.0);
}
if (sItemTag=="REDEMPTION")
{
ApplyAdditionalHP(oPC, 100, 3600.0);
}
if (sItemTag=="HP_ITEM_05")
{
ApplyAdditionalHP(oPC, 5, 3600.0);
}
if (sItemTag=="HP_ITEM_10")
{
ApplyAdditionalHP(oPC, 10, 3600.0);
}
if (sItemTag=="HP_ITEM_15")
{
ApplyAdditionalHP(oPC, 15, 3600.0);
}
if (sItemTag=="HP_ITEM_20")
{
ApplyAdditionalHP(oPC, 20, 3600.0);
}
if (sItemTag=="HeijanMist")
{
ApplyAdditionalHP(oPC, 20, 3600.0);
}
if (sItemTag=="WaeyBread")
{
ApplyAdditionalHP(oPC, 20, 3600.0);
}
if (sItemTag=="MilitiaRations")
{
ApplyAdditionalHP(oPC, 20, 3600.0);
}
if (sItemTag=="Chimay")
{
ApplyAdditionalHP(oPC, 200, 3600.0);
}
if (sItemTag=="AmanbrakulHoney")
{
ApplyAdditionalHP(oPC, 30, 3600.0);
}
if (sItemTag=="OpiumSyrup")
{
ApplyAdditionalHP(oPC, 35, 3600.0);
}
if (sItemTag=="MilitiaRations2")
{
ApplyAdditionalHP(oPC, 30, 3600.0);
}
if (sItemTag=="HurWhiskey")
{
ApplyAdditionalHP(oPC, 25, 3600.0);
}
if (sItemTag=="DracheBrau")
{
ApplyAdditionalHP(oPC, 20, 3600.0);
}
if (sItemTag=="ChurchBlessing")
{
ApplyAdditionalHP(oPC, 50, 3600.0);
}
if (sItemTag=="PearlBombDet")
{
ExecuteScript("pearlbombactivat", OBJECT_SELF);
}
if (sItemTag=="PearlBombKit")
{
ExecuteScript("pearlbomb", OBJECT_SELF);
}
if (sItemTag=="Garganibil3")
{
ApplyAdditionalHP(oPC, 40, 3600.0);
}
if (sItemTag=="HP_ITEM_40")
{
ApplyAdditionalHP(oPC, 40, 3600.0);
}
if (sItemTag=="HP_ITEM_50")
{
ApplyAdditionalHP(oPC, 50, 3600.0);
}
if (sItemTag=="HP_ITEM_75")
{
ApplyAdditionalHP(oPC, 75, 3600.0);
}
if (sItemTag=="Rath3")
{
ApplyAdditionalHP(oPC, 100, 3600.0);
}
if (sItemTag=="BL1")
{
AssignCommand(oPC, PlaySound("as_an_crynight1"));
DelayCommand(3.0, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_CURE_LIGHT_WOUNDS, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(4.0, ApplyAdditionalHP(oPC, 40, 3600.0));
}
if (sItemTag=="BL2")
{
AssignCommand(oPC, PlaySound("as_an_crynight2"));
DelayCommand(3.0, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_CURE_MODERATE_WOUNDS, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(4.0, ApplyAdditionalHP(oPC, 60, 3600.0));
}
if (sItemTag=="BL3")
{
AssignCommand(oPC, PlaySound("as_an_crynight2"));
DelayCommand(3.0, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_CURE_SERIOUS_WOUNDS, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(4.0, ApplyAdditionalHP(oPC, 80, 3600.0));
}
string sHealers = GetStringRight(sItemTag, 10);
if (sHealers=="HealersEye")
{
ExecuteScript("eyerez", oTarget);
}
if (sItemTag=="BL4")
{
AssignCommand(oPC, PlaySound("as_an_crynight4"));
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_BALAGARNSIRONHORN, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
DelayCommand(3.0, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_CURE_CRITICAL_WOUNDS, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(4.0, ApplyAdditionalHP(oPC, 100, 3600.0));
}
if (sItemTag=="BL5")
{
AssignCommand(oPC, PlaySound("as_an_crynight3"));
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_BALAGARNSIRONHORN, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
DelayCommand(3.0, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_HEAL, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(4.0, ApplyAdditionalHP(oPC, 150, 3600.0));
}
if (sItemTag=="thebutcher2")
{
AssignCommand(oPC, PlaySound("as_pl_cryingf3"));
ExecuteScript("wallspike", oPC);
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, lTarget, TRUE, OBJECT_TYPE_CREATURE);
while (GetIsObjectValid(oTarget))
{
ActionWait(0.5);
ExecuteScript("suicidethentil", oTarget);
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, lTarget, TRUE, OBJECT_TYPE_CREATURE);
}
}
if (sItemTag=="Eraiduln")
{
effect eAmulet1 = EffectVisualEffect(VFX_BEAM_BLACK);
effect eAmulet2 = EffectVisualEffect(VFX_BEAM_CHAIN);
DelayCommand(1.5, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eAmulet1, lActivator));
DelayCommand(2.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eAmulet2, lActivator));
AssignCommand(oPC, PlaySound("sim_shwngevil01"));
DelayCommand(0.5, AssignCommand(oPC, PlaySound("c_shadow_bat1")));
SendMessageToPC(oPC, "Baron Eraiduln is with you.");
DelayCommand(2.0, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_HEAL, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(2.5, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_CIRCLE_OF_DEATH, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(3.0, ApplyAdditionalHP(oPC, 1000, 3600.0));
DelayCommand(5.0, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_BLESS, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(7.0, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_GREATER_BULLS_STRENGTH, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(8.5, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_GREATER_CATS_GRACE, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(10.5, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_EPIC_MAGE_ARMOR, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(15.0, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_DARKVISION, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(20.5, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_GREATER_EAGLE_SPLENDOR, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(25.5, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_GHOSTLY_VISAGE, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(35.0, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_GREATER_FOXS_CUNNING, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(40.5, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_GREATER_OWLS_WISDOM, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(43.5, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_GREATER_STONESKIN, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(47.5, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_GHOSTLY_VISAGE, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(50.0, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_SHADOW_SHIELD, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(55.5, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_ROD_OF_WONDER, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(56.5, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_ROD_OF_WONDER, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(57.5, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_ROD_OF_WONDER, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(58.5, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_ROD_OF_WONDER, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(59.5, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_ROD_OF_WONDER, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(60.0, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_HEAL, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
}
if (sItemTag=="TomeofAmon")
{
effect eAmulet = EffectVisualEffect(VFX_IMP_PULSE_HOLY);
DelayCommand(3.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eAmulet, lActivator));
AssignCommand(oPC, PlaySound("as_wt_thundercl3"));
SendMessageToPC(oPC, "Amon's grace is bestowed upon you.");
DelayCommand(3.0, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_HASTE, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(3.0, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_HEAL, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(3.0, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_HOLY_AURA, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(4.0, ApplyAdditionalHP(oPC, 800, 3600.0));
}
if (sItemTag=="IL9")
{
effect eAmulet = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
DelayCommand(3.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eAmulet, lActivator));
AssignCommand(oPC, PlaySound("as_an_wolfhowl2"));
SendMessageToPC(oPC, "The spirit of the wolf fills you.");
DelayCommand(3.0, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_HASTE, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(3.0, AssignCommand(oPC, ActionCastSpellAtObject(SPELL_HEAL, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));
DelayCommand(4.0, ApplyAdditionalHP(oPC, 500, 3600.0));
}
if (sItemTag=="LootRation1")
{
ApplyAdditionalHP(oPC, 20, 3600.0);
}
if (sItemTag=="LootRation2")
{
ApplyAdditionalHP(oPC, 30, 3600.0);
}
if (sItemTag=="LootRation3")
{
ApplyAdditionalHP(oPC, 40, 3600.0);
}
if (sItemTag=="SeaRations")
{
ApplyAdditionalHP(oPC, 40, 3600.0);
}
if (sItemTag=="ConstableSupply")
{
ApplyAdditionalHP(oPC, 40, 3600.0);
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_BLESS, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
AssignCommand(oPC, ActionCastSpellAtObject(SPELL_HASTE, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE));
}
if (sItemTag=="LootRation4")
{
ApplyAdditionalHP(oPC, 50, 3600.0);
}
if (sItemTag=="LootRation5")
{
ApplyAdditionalHP(oPC, 100, 3600.0);
}
if (sItemTag=="WytalinGeneralsSword")
{
ExecuteScript("set_wytalin", oPC);
}
if (sItemTag=="IantakGeneralsSword")
{
ExecuteScript("set_iantak", oPC);
}
if (sItemTag=="GhulumGeneralsSword")
{
ExecuteScript("set_ghulum", oPC);
}
if (sItemTag=="StaffofMithangard")
{
ExecuteScript("staffofmith", oPC);
}
//CRAFTING BOOKS
if(GetTag(oItem)=="BakingCraft")
{
int smithNumber = GetCampaignInt(GZ_AMON_CRAFT, "GZ_DB_BAKING!", oPC);
FloatingTextStringOnCreature("Your Baking Skill is " + IntToString(smithNumber),oPC);
}
if(GetTag(oItem)=="CraftBook")
{
int woodNumber = GetCampaignInt(GZ_AMON_CRAFT, "GZ_BD_WOODCRAFT!", oPC);
FloatingTextStringOnCreature("Your Wood Crafting Skill is " + IntToString(woodNumber),oPC);
}
if(GetTag(oItem)=="SmeltingCraftBook")
{
int smithNumber = GetCampaignInt(GZ_AMON_CRAFT, "GZ_DB_SMELTING!", oPC);
FloatingTextStringOnCreature("Your smelting Skill is " + IntToString(smithNumber),oPC);
}
if(GetTag(oItem)=="SmithingCraftBook")
{
int smithNumber = GetCampaignInt(GZ_AMON_CRAFT, "GZ_DB_SMITHING!", oPC);
FloatingTextStringOnCreature("Your smithing Skill is " + IntToString(smithNumber),oPC);
}
if (sItemTag=="mc_it_quickslot")
{
ExecuteScript("mc_it_quickslot", OBJECT_SELF);
}
if (GetTag(oItem)=="BardsLuteofPlay")
{
AssignCommand(oPC, ActionStartConversation(oPC, "bards_music", TRUE));
return;
}
//CRAFT ITEMS
if(GetTag(oItem)=="CraftKnife")
{
AssignCommand(oPC, ActionStartConversation(oPC, "tr_woodcraft", TRUE));
return;
}
if(GetTag(oItem)=="BriarPipe")
{
ExecuteScript("briarpipe", oPC);
}
if(GetTag(oItem)=="AmonDT01")
{
ExecuteScript("create_amonkey", oPC);
}
if(GetTag(oItem)=="AL9")
{
ExecuteScript("amonsblessing", oPC);
}
if(GetTag(oItem)=="StaffofStorms")
{
ExecuteScript("staffofstorms2", oPC);
}
if(GetTag(oItem)=="SummonStaff1")
{
ExecuteScript("staffsummon1", oPC);
}
if(GetTag(oItem)=="SummonStaff2")
{
ExecuteScript("staffsummon2", oPC);
}
if(GetTag(oItem)=="KeltriaItemDeleteWand")
{
if (GetStringLeft(sItemTag2, 9) == "kelobject")
{
DestroyObject(oTarget);
}
}
if(GetTag(oItem)== "Drum")
{
/* int iBard = GetLevelByClass(CLASS_TYPE_BARD, oPC); */
if (iBardic >0)
{
if (iTotal >= 20) //DC for using a Drum is 15
{
int i;
int done;
effect eHaste;
object oGroup;
effect eCast = EffectVisualEffect(VFX_IMP_HASTE);
FloatingTextStringOnCreature("*Bard Song Success*", oPC, TRUE);
SendMessageToPC(oPC, "Skill Roll: " + sTotal + ". Target DC 15");
eHaste = EffectHaste();
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSong, oPC, 18.0);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eCast, oPC);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eHaste, oPC, 18.0);
for (i = 0; i < 6 && !done; i++) //Apply Bardsong to up to 6 faction members (PCs) within 30 meters
{
oGroup = GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_FRIEND, oPC, i);
if ( oGroup != OBJECT_INVALID && (GetDistanceBetween(oPC, oGroup) <= 30.0) )
{
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eHaste, oGroup, 18.0);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eCast, oGroup);
}
else
{
done = TRUE;
}
}
}
else
{
FloatingTextStringOnCreature("*Bard Song Failure*", oPC, TRUE);
SendMessageToPC(oPC, "Skill Roll: " + sTotal + ". Target DC 15");
}
}
else
{
AssignCommand(oPC, ActionSpeakString("Only a bard has the experience to use this item properly."));
}
}
if(GetTag(oItem)=="Mandolin")
{
/* int iBard = GetLevelByClass(CLASS_TYPE_BARD, oPC); */
if (iBardic > 0)
{
if (iTotal >= 20) //DC for using a Mandolin is 15
{
int i;
int done;
effect eRegen;
object oGroup;
effect eCast = EffectVisualEffect(VFX_IMP_HEALING_G);
FloatingTextStringOnCreature("*Bard Song Success*", oPC, TRUE);
SendMessageToPC(oPC, "Skill Roll: " + sTotal + ". Target DC 15");
eRegen = EffectRegenerate(1, 3.0);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSong, oPC, 18.0);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eRegen, oPC, 18.0);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eCast, oPC);
for (i = 0; i < 6 && !done; i++) //Apply Bardsong to up to 6 faction members (PCs) within 30 meters
{
oGroup = GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_FRIEND, oPC, i);
if ( oGroup != OBJECT_INVALID && (GetDistanceBetween(oPC, oGroup) <= 30.0) )
{
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eRegen, oGroup, 18.0);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eCast, oGroup);
}
else
{
done = TRUE;
}
}
}
else
{
FloatingTextStringOnCreature("*Bard Song Failure*", oPC, TRUE);
SendMessageToPC(oPC, "Skill Roll: " + sTotal + ". Target DC 15");
}
}
else
{
AssignCommand(oPC, ActionSpeakString("Only a bard has the experience to use this item properly."));
}
}
if(GetTag(oItem)=="Pipes")
{
/* int iBard = GetLevelByClass(CLASS_TYPE_BARD, oPC); */
if (iBardic > 0)
{
if (iTotal >=20) //DC for using Pipes is 18
{
int i;
int done;
effect eInvis;
object oGroup;
FloatingTextStringOnCreature("*Bard Song Success*", oPC, TRUE);
SendMessageToPC(oPC, "Skill Roll: " + sTotal + ". Target DC 18");
eInvis = EffectInvisibility(INVISIBILITY_TYPE_NORMAL);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSong, oPC, 18.0);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eInvis, oPC, 18.0);
for (i = 0; i < 6 && !done; i++) //Apply Bardsong to up to 6 faction members (PCs) within 30 meters
{
oGroup = GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_FRIEND, oPC, i);
if ( oGroup != OBJECT_INVALID && (GetDistanceBetween(oPC, oGroup) <= 30.0) )
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eInvis, oGroup, 18.0);
else
done = TRUE;
}
}
else
{
FloatingTextStringOnCreature("*Bard Song Failure*", oPC, TRUE);
SendMessageToPC(oPC, "Skill Roll: " + sTotal + ". Target DC 18");
}
}
else
{
AssignCommand(oPC, ActionSpeakString("Only a bard has the experience to use this item properly."));
}
}
if(GetTag(oItem)=="Horn")
{
/* int iBard = GetLevelByClass(CLASS_TYPE_BARD, oPC); */
if (iBardic > 0)
{
if (iTotal >=20) //DC for using a Horn is 18
{
int i;
int done;
effect eShield;
object oGroup;
effect eCast = EffectVisualEffect(VFX_IMP_AC_BONUS);
FloatingTextStringOnCreature("*Bard Song Success*", oPC, TRUE);
SendMessageToPC(oPC, "Skill Roll: " + sTotal + ". Target DC 18");
eShield = EffectDamageShield(1, DAMAGE_BONUS_1d10, DAMAGE_TYPE_SONIC);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSong, oPC, 18.0);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eShield, oPC, 18.0);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eCast, oPC);
for (i = 0; i < 6 && !done; i++) //Apply Bardsong to up to 6 faction members (PCs) within 30 meters
{
oGroup = GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_FRIEND, oPC, i);
if ( oGroup != OBJECT_INVALID && (GetDistanceBetween(oPC, oGroup) <= 30.0) )
{
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eShield, oGroup, 18.0);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eCast, oGroup);
}
else
{
done = TRUE;
}
}
}
else
{
FloatingTextStringOnCreature("*Bard Song Failure*", oPC, TRUE);
SendMessageToPC(oPC, "Skill Roll: " + sTotal + ". Target DC 18");
}
}
else
{
AssignCommand(oPC, ActionSpeakString("Only a bard has the experience to use this item properly."));
}
}
if(GetTag(oItem)=="Harp")
{
/* int iBard = GetLevelByClass(CLASS_TYPE_BARD, oPC); */
if (iBardic > 0)
{
if (iTotal >=20) //DC for using a Harp is 21
{
int i;
int done;
effect eSpell;
object oGroup;
effect eCast = EffectVisualEffect(VFX_IMP_GLOBE_USE);
FloatingTextStringOnCreature("*Bard Song Success*", oPC, TRUE);
SendMessageToPC(oPC, "Skill Roll: " + sTotal + ". Target DC 21");
eSpell = EffectSpellImmunity(SPELL_ALL_SPELLS);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSong, oPC, 18.0);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSpell, oPC, 18.0);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eCast, oPC);
for (i = 0; i < 6 && !done; i++) //Apply Bardsong to up to 6 faction members (PCs) within 30 meters
{
oGroup = GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_FRIEND, oPC, i);
if ( oGroup != OBJECT_INVALID && (GetDistanceBetween(oPC, oGroup) <= 30.0) )
{
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSpell, oGroup, 18.0);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eCast, oGroup);
}
else
{
done = TRUE;
}
}
}
else
{
FloatingTextStringOnCreature("*Bard Song Failure*", oPC, TRUE);
SendMessageToPC(oPC, "Skill Roll: " + sTotal + ". Target DC 21");
}
}
else
{
AssignCommand(oPC, ActionSpeakString("Only a bard has the experience to use this item properly."));
}
}
}