#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.")); } } }