#include "nw_i0_plot" #include "aps_include" string GetInk(object oItem); string GetComponent(object oItem); int GetInkChance(object oItem); int CheckComponent(object oPC, string sComponent1, string sComponent2, string sComponent3, int iComponent1, int iComponent2, int iComponent3, int iComponent1Stackable, int iComponent2Stackable, int iComponent3Stackable); void GetNextStackedItem(object oPC, string sItemTag, int iCount, int iMode, string sStackResRef); void CreateAnObject(string sResource, object oPC, int iStackSize); void GetNextItemPossessedBy(object oPC, string sItemTag); void CreateInk(object oSelf, string sItemTag, object oPC); void LoseSpell(object oPC,int iSpellNum); string CustomComponent(int iSpellNum); void CreateACopy(object oSelf, object oItem, object oPC); //Set this to any value but '1' to turn off the ability to disturb the inscriber const int DISTURB_ME = 1; const string E_OF_ACID = "essence001"; const string E_OF_NECROSIS = "essence002"; const string E_OF_LUCK = "essence003"; const string E_OF_FIVE_SENSES = "essence004"; const string E_OF_ABILITY = "essence005"; const string E_OF_ELECTRICITY = "essence006"; const string E_OF_THE_MIND = "essence007"; const string E_OF_VENOM = "essence008"; const string E_OF_THE_TRICKSTER = "essence009"; const string E_OF_LIGHT = "essence010"; const string E_OF_FIRE = "essence011"; const string E_OF_THE_PLANES = "essence012"; const string E_OF_POWER = "essence013"; const string E_OF_THE_ELEMENTS = "essence014"; const string E_OF_ENERGY = "essence015"; const string E_OF_PROTECTION = "essence016"; const string E_OF_COLD = "essence017"; const string E_OF_PLANT = "essence018"; const string E_OF_SPIRIT = "essence019"; const string E_OF_TRANSMUTATION = "essence020"; void main() { object oPC = GetLastDisturbed(); object oItem = GetInventoryDisturbItem(); object oSelf = OBJECT_SELF; object oTemp = OBJECT_INVALID; string sItemTag=GetTag(oItem); string sOldTag = sItemTag; string sComponent1; string sComponent2; string sComponent3; string sName; int iComponent1; int iComponent2; int iComponent3; int iDifficulty; int iRandom; int iSkillGain; int iScribeSkill = GetPersistentInt(oPC,"iScribeSkill","UOACraft"); int iScribeChance = iScribeSkill; if (iScribeChance < 350) { iScribeChance = GetAbilityScore(oPC,ABILITY_DEXTERITY)*5; iScribeChance = iScribeChance+(GetAbilityScore(oPC,ABILITY_INTELLIGENCE)*3); iScribeChance = iScribeChance+(GetAbilityScore(oPC,ABILITY_WISDOM)*2); iScribeChance = iScribeChance*3; if (iScribeChance>350)iScribeChance=350; if (iScribeSkill > iScribeChance) iScribeChance=iScribeSkill; } if (GetInventoryDisturbType()== INVENTORY_DISTURB_TYPE_ADDED) { // The following 3 lines are to ensure compatability with UOAbigal's Persistent Token System. // You can replace them with whatever 'no-drop' code you have or comment them out. string sNoDropFlag = (GetStringLeft(GetTag(oItem),6)); if (sNoDropFlag == "NoDrop" || sNoDropFlag == "TOKEN_"||sNoDropFlag=="_TBOX_") return; if (GetBaseItemType(oItem)==BASE_ITEM_LARGEBOX) { DestroyObject(oItem); SendMessageToPC(oPC,"To avoid possible dupe exploits, the container placed in this bag may be destroyed."); return; } // End of compatability portion. CopyItem(oItem,oPC,TRUE); DestroyObject(oItem); FloatingTextStringOnCreature("You can only select scrolls or inks from this station.",oPC,FALSE); return; } if (GetLocalInt(oSelf,"iAmInUse")!=0) { FloatingTextStringOnCreature("This desk is already in use. You must wait until the desk is free.",oPC,FALSE); //Use ActionTakeFrom to avoid a que'd scroll from being destroyed by mischevious players. //This is required, as the scroll being scribed needs to remain in the desk for 15 seconds. //CopyObject/DestroyObject combo would erase the que'd scroll and return OBJECT_INVALID. if (DISTURB_ME==1) { SetLocalInt(oSelf,"iWasDisturbed",99); SetLocalObject(oSelf,"oDisturbed",oPC); } AssignCommand(oSelf,ActionTakeItem(oItem,oPC)); return; } if (GetStringLeft(sItemTag,7)=="SWITCH_") { if (sItemTag=="SWITCH_PARCHMENT_NORMAL") { SetLocalInt(oPC,"iUseThisParchment",0); FloatingTextStringOnCreature("Now using normal blank parchment scrolls.",oPC,FALSE); } if (sItemTag=="SWITCH_PARCHMENT_BLACK") { SetLocalInt(oPC,"iUseThisParchment",1); FloatingTextStringOnCreature("Now using blank black parchment scrolls.",oPC,FALSE); } if (sItemTag=="SWITCH_PARCHMENT_WHITE") { SetLocalInt(oPC,"iUseThisParchment",2); FloatingTextStringOnCreature("Now using blank white parchment scrolls.",oPC,FALSE); } if (sItemTag=="SWITCH_SCROLL") { SetLocalInt(oPC,"iScribeMode",0); FloatingTextStringOnCreature("Now preparing to scribe a spell.",oPC,FALSE); } if (sItemTag=="SWITCH_INK") { SetLocalInt(oPC,"iScribeMode",1); FloatingTextStringOnCreature("Now preparing to make scroll ink.",oPC,FALSE); } DestroyObject(oItem); //ExecuteScript("_onclose_clear",OBJECT_SELF); //ExecuteScript("_open_anvil",OBJECT_SELF); string sTagSelf = GetTag(oSelf); AssignCommand(oPC,DoPlaceableObjectAction(oSelf,PLACEABLE_ACTION_USE)); AssignCommand(oPC,DelayCommand(1.5,DoPlaceableObjectAction(GetNearestObjectByTag(sTagSelf,oPC,1),PLACEABLE_ACTION_USE))); return; } int iUseThisParchment = GetLocalInt(oPC,"iUseThisParchment"); int iScribeMode = GetLocalInt(oPC,"iScribeMode"); //Begin code for fixing stackables issue if (GetStringRight(sItemTag,6)=="_Store") { //oTemp = CopyObject(oItem,GetLocation(oPC),oPC,GetStringLeft(sItemTag,GetStringLength(sItemTag)-6)); //oItem = oTemp; //sItemResRef = GetResRef(oItem); //sItemTag = GetTag(oItem); //SendMessageToPC(oPC,"*******Old Tag: "+sItemTag+"*******"); sItemTag = GetStringLeft(sItemTag,GetStringLength(sItemTag)-6); //SendMessageToPC(oPC,"*******New Tag: "+sItemTag+"*******"); SetLocalInt(oItem,"iAmValid",1); } //End code for fixing stackables issue if (iScribeMode==1) //Prepare Ink { sName = GetName(oItem); FloatingTextStringOnCreature("Preparing ink for "+sName+" ....",oPC,FALSE); sItemTag = "ink_"+GetResRef(oItem); sComponent1 = GetInk(oItem); sComponent2 = "ink_black"; sComponent3 = GetComponent(oItem); iDifficulty = GetInkChance(oItem); if (iDifficulty<3) { iDifficulty = -150+(50*iDifficulty); } else { iDifficulty = 30+(80*iDifficulty); } if (iDifficulty>iScribeChance) { DelayCommand(1.0,FloatingTextStringOnCreature("You have no idea how to prepare this ink.",oPC,FALSE)); CopyObject(oItem,GetLocation(oSelf),oSelf,GetTag(oItem)); DestroyObject(oItem); return; } //Do Animations and Sounds here AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_GET_MID,0.5,12.0)); PlaySound("as_na_bushmove2"); PlaySound("al_na_steamlg1"); DelayCommand(0.5,PlaySound("al_na_cvstream1")); DelayCommand(1.0,PlaySound("al_na_stream1")); DelayCommand(1.0,PlaySound("al_na_sludggrat1")); DelayCommand(4.0,PlaySound("al_na_cvstream1")); DelayCommand(4.5,PlaySound("al_na_stream1")); DelayCommand(5.0,PlaySound("al_na_steamlg1")); DelayCommand(6.0,PlaySound("al_na_sludggrat1")); DelayCommand(7.5,PlaySound("al_na_cvstream1")); DelayCommand(8.0,PlaySound("al_na_stream1")); DelayCommand(11.0,PlaySound("as_na_bushmove1")); SetLocalInt(OBJECT_SELF,"iAmInUse",99); DelayCommand(12.5,SetLocalInt(OBJECT_SELF,"iAmInUse",0)); //Check for components if (CheckComponent(oPC,sComponent1,sComponent2,sComponent3,1,1,1,1,1,2)==0) { DelayCommand(12.0,FloatingTextStringOnCreature("You do not have all of the components required to mix this ink.",oPC,FALSE)); //CopyObject(oItem,GetLocation(oSelf),oSelf,sOldTag); CreateItemOnObject(GetResRef(oItem),OBJECT_SELF,1); DestroyObject(oItem); return; } iScribeChance = iScribeChance - iDifficulty; if (iScribeChance<1) iScribeChance=1; //Do skill check here iRandom = (Random(1000)+Random(1000)+Random(1000))/3; if (iRandom<=iScribeChance) { AssignCommand(oPC,DelayCommand(12.0,FloatingTextStringOnCreature("You successfully mix the "+sName+" ink.",oPC,FALSE))); if (Random(1000) >= iScribeSkill) { if (d10(1)+1 >= iScribeChance/100) iSkillGain = 1; } } else { AssignCommand(oPC,DelayCommand(12.0,FloatingTextStringOnCreature("The ink fails to react properly with the components, and is ruined.",oPC,FALSE))); CopyObject(oItem,GetLocation(oSelf),oSelf,sOldTag); DestroyObject(oItem); return; } //Ensure no more than 1 skill gain every 10 seconds to avoid token droppage. if (iSkillGain ==1) { if (GetLocalInt(oPC,"iSkillGain")!= 0) { iSkillGain = 0; } else { SetLocalInt(oPC,"iSkillGain",99); AssignCommand(GetArea(oPC),DelayCommand(10.0,SetLocalInt(oPC,"iSkillGain",0))); } } // Do Skill Gains string sOldSkill = ""; string sOldSkill2 = ""; if (iSkillGain==1) { iScribeSkill++; sOldSkill2 = IntToString(iScribeSkill); sOldSkill = "."+GetStringRight(sOldSkill2,1); if (iScribeSkill > 9) { sOldSkill = GetStringLeft(sOldSkill2,GetStringLength(sOldSkill2)-1)+sOldSkill; } else { sOldSkill = "0"+sOldSkill; } if (iScribeSkill <= 1000) { //DelayCommand(13.0,SetTokenPair(oPC,13,12,iDyeSkill)); DelayCommand(13.0,SetPersistentInt(oPC,"iScribeSkill",iScribeSkill,0,"UOACraft")); DelayCommand(13.0,SendMessageToPC(oPC,"======================================")); DelayCommand(13.0,SendMessageToPC(oPC,"Your skill in inscription has gone up!")); DelayCommand(13.0,SendMessageToPC(oPC,"Current inscription skill : "+ sOldSkill+"%")); DelayCommand(13.0,SendMessageToPC(oPC,"======================================")); if (GetLocalInt(GetModule(),"_UOACraft_XP")!=0) DelayCommand(12.9,GiveXPToCreature(oPC,GetLocalInt(GetModule(),"_UOACraft_XP"))); } } AssignCommand(GetArea(oPC),DelayCommand(12.0,CreateInk(oSelf,sItemTag,oPC))); CopyObject(oItem,GetLocation(oSelf),oSelf,GetTag(oItem)); DestroyObject(oItem); return; } //Do Not make ink... scribe the spell onto the scroll int iModify = 0; sComponent2 = "ink_"+GetResRef(oItem); //Tag of the ink to use sItemTag = GetResRef(oItem)+"a"; if (GetLocalInt(oPC,"iUseThisParchment")==0) { sComponent1 = "scrl_blank_norma"; iModify = 10; } if (GetLocalInt(oPC,"iUseThisParchment")==1) { sComponent1 = "scrl_blank_black"; iModify = 0; } if (GetLocalInt(oPC,"iUseThisParchment")==2) { sComponent1 = "scrl_blank_white"; iModify = -5; } //Change this value to '1' to *not* lose memorized spells when scribing. int iLoseSpell=1; int iSpellNum = StringToInt(GetStringRight(sItemTag,3)); string sSpellName = GetName(oItem); // //Comment his line out to turn off custom components //This component is in addition to the parchment and the ink // //If you include any stackables you will need to do a check //for the stackable status in the 'CheckComponent' function. //The only currently checked-for stackable is gem powder. // //If you are not proficient in scripting, I would suggest //not using stackable items as the additional component //unless it is gem powder. // //The CustomComponent section of the script is at the very bottom //of this file. sComponent3 = CustomComponent(iSpellNum); //Check to decrement remaining spells if (iLoseSpell==1) LoseSpell(oPC,iSpellNum); //Do animations and sounds AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_GET_MID,1.0,4.0)); AssignCommand(oPC,DelayCommand(5.0,ActionPlayAnimation(ANIMATION_LOOPING_GET_MID,1.0,4.0))); AssignCommand(oPC,DelayCommand(10.0,ActionPlayAnimation(ANIMATION_LOOPING_GET_MID,1.0,4.0))); PlaySound("as_na_leafmove2"); DelayCommand(0.9,PlaySound("as_na_grassmove2")); DelayCommand(1.8,PlaySound("as_an_crittgnaw2")); DelayCommand(3.9,PlaySound("as_na_grassmove2")); DelayCommand(4.8,PlaySound("as_na_leafmove2")); DelayCommand(5.9,PlaySound("as_na_leafmove2")); DelayCommand(6.9,PlaySound("as_na_grassmove2")); DelayCommand(7.9,PlaySound("as_an_crittgnaw2")); DelayCommand(10.7,PlaySound("as_na_grassmove2")); DelayCommand(11.6,PlaySound("as_na_leafmove2")); DelayCommand(12.4,PlaySound("as_na_grassmove2")); DelayCommand(13.4,PlaySound("as_na_leafmove2")); DelayCommand(14.2,PlaySound("as_na_grassmove2")); SetLocalInt(OBJECT_SELF,"iAmInUse",99); DelayCommand(15.5,SetLocalInt(OBJECT_SELF,"iAmInUse",0)); if (CheckComponent(oPC,sComponent1,sComponent2,sComponent3,1,1,1,1,1,2)==0) { DelayCommand(15.0,FloatingTextStringOnCreature("The magic fails to imbue the scroll. You may be missing a vital component.",oPC,FALSE)); //CopyObject(oItem,GetLocation(oSelf),oSelf,sOldTag); CreateItemOnObject(GetResRef(oItem),OBJECT_SELF,1); DestroyObject(oItem); if (DISTURB_ME==1) { //Resets Disturb flag for fresh inscription attempt DelayCommand(15.0,SetLocalInt(oSelf,"iWasDisturbed",0)); DelayCommand(15.0,SetLocalObject(oSelf,"oDisturbed",OBJECT_INVALID)); } return; } //Base 20% +1% per level of spell chance to fail (average level of spell across classes) //Minus 1% chance to fail for every level of the inscriptionist. //Minus (or add) a set ammount based on the parchment type being used. iDifficulty = iModify+20+GetInkChance(oItem); iDifficulty = iDifficulty - GetHitDice(oPC); iRandom = d100(1); if(iRandom<=iDifficulty) { if (DISTURB_ME==1) { //Resets Disturb flag for fresh inscription attempt DelayCommand(15.0,SetLocalInt(oSelf,"iWasDisturbed",0)); DelayCommand(15.0,SetLocalObject(oSelf,"oDisturbed",OBJECT_INVALID)); } AssignCommand(GetArea(oPC),DelayCommand(15.0,FloatingTextStringOnCreature("The ink smudges as you attenmpt to scribe the spell, ruining it's magic..",oPC,FALSE))); //CopyObject(oItem,GetLocation(oSelf),oSelf,sOldTag); CreateItemOnObject(GetResRef(oItem),OBJECT_SELF,1); DestroyObject(oItem); return; } object oTemp9=CopyObject(oItem,GetLocation(oSelf),oSelf,sOldTag); //GetTag(oItem)); AssignCommand(GetArea(oPC),DelayCommand(15.0,FloatingTextStringOnCreature("You successfully scribe the "+sSpellName+" scroll.",oPC,FALSE))); AssignCommand(GetArea(oPC),DelayCommand(15.0,CreateACopy(oSelf,oTemp9,oPC))); DestroyObject(oItem); if (DISTURB_ME==1) { //Resets Disturb flag for fresh inscription attempt DelayCommand(15.0,SetLocalInt(oSelf,"iWasDisturbed",0)); DelayCommand(15.0,SetLocalObject(oSelf,"oDisturbed",OBJECT_INVALID)); } } string GetInk(object oItem) { string sTempTag = GetStringLeft(GetTag(oItem),GetStringLength(GetTag(oItem))-6); int iSpellNum = StringToInt(GetStringRight(sTempTag,3)); switch (iSpellNum) { case 1:{return E_OF_ACID;break;} case 2:{return E_OF_NECROSIS;break;} case 3:{return E_OF_PROTECTION;break;} case 4:{return E_OF_LIGHT;break;} case 5:{return E_OF_ABILITY;break;} case 6:{return E_OF_FIRE;break;} case 7:{return E_OF_ABILITY;break;} case 8:{return E_OF_ELECTRICITY;break;} case 9:{return E_OF_THE_MIND;break;} case 10:{return E_OF_THE_MIND;break;} case 11:{return E_OF_THE_MIND;break;} case 12:{return E_OF_NECROSIS;break;} case 13:{return E_OF_FIVE_SENSES;break;} case 14:{return E_OF_ABILITY;break;} case 15:{return E_OF_VENOM;break;} case 16:{return E_OF_LIGHT;break;} case 17:{return E_OF_COLD;break;} case 18:{return E_OF_THE_MIND;break;} case 19:{return E_OF_NECROSIS;break;} case 20:{return E_OF_NECROSIS;break;} case 21:{return E_OF_LIGHT;break;} case 22:{return E_OF_THE_MIND;break;} case 23:{return E_OF_FIRE;break;} case 24:{return E_OF_THE_PLANES;break;} case 25:{return E_OF_POWER;break;} case 26:{return E_OF_THE_MIND;break;} case 27:{return E_OF_THE_MIND;break;} case 28:{return E_OF_ABILITY;break;} case 29:{return E_OF_THE_ELEMENTS;break;} case 30:{return E_OF_ABILITY;break;} case 31:{return E_OF_THE_ELEMENTS;break;} case 32:{return E_OF_ENERGY;break;} case 33:{return E_OF_ENERGY;break;} case 34:{return E_OF_THE_PLANES;break;} case 35:{return E_OF_THE_MIND;break;} case 36:{return E_OF_THE_MIND;break;} case 37:{return E_OF_NECROSIS;break;} case 38:{return E_OF_FIRE;break;} case 39:{return E_OF_FIRE;break;} case 40:{return E_OF_ABILITY;break;} case 41:{return E_OF_THE_PLANES;break;} case 42:{return E_OF_SPIRIT;break;} case 43:{return E_OF_POWER;break;} case 44:{return E_OF_POWER;break;} case 45:{return E_OF_TRANSMUTATION;break;} case 46:{return E_OF_TRANSMUTATION;break;} case 47:{return E_OF_THE_PLANES;break;} case 48:{return E_OF_ENERGY;break;} case 49:{return E_OF_THE_TRICKSTER;break;} case 50:{return E_OF_POWER;break;} case 51:{return E_OF_PROTECTION;break;} case 52:{return E_OF_TRANSMUTATION;break;} case 53:{return E_OF_ABILITY;break;} case 54:{return E_OF_ABILITY;break;} case 55:{return E_OF_ABILITY;break;} case 56:{return E_OF_NECROSIS;break;} case 57:{return E_OF_THE_MIND;break;} case 58:{return E_OF_THE_TRICKSTER;break;} case 59:{return E_OF_FIRE;break;} case 60:{return E_OF_THE_TRICKSTER;break;} case 61:{return E_OF_THE_TRICKSTER;break;} case 62:{return E_OF_TRANSMUTATION;break;} case 63:{return E_OF_POWER;break;} case 64:{return E_OF_THE_MIND;break;} case 65:{return E_OF_THE_PLANES;break;} case 66:{return E_OF_ENERGY;break;} case 67:{return E_OF_POWER;break;} case 68:{return E_OF_POWER;break;} case 69:{return E_OF_LIGHT;break;} case 70:{return E_OF_ELECTRICITY;break;} case 71:{return E_OF_PROTECTION;break;} case 72:{return E_OF_PROTECTION;break;} case 73:{return E_OF_TRANSMUTATION;break;} case 74:{return E_OF_FIVE_SENSES;break;} case 75:{return E_OF_THE_MIND;break;} case 76:{return E_OF_ABILITY;break;} case 77:{return E_OF_ACID;break;} case 78:{return E_OF_THE_ELEMENTS;break;} case 79:{return E_OF_THE_MIND;break;} case 80:{return E_OF_THE_MIND;break;} case 81:{return E_OF_POWER;break;} case 82:{return E_OF_POWER;break;} case 83:{return E_OF_POWER;break;} case 84:{return E_OF_ENERGY;break;} case 85:{return E_OF_ENERGY;break;} case 86:{return E_OF_VENOM;break;} case 87:{return E_OF_ABILITY;break;} case 88:{return E_OF_THE_TRICKSTER;break;} case 89:{return E_OF_THE_PLANES;break;} case 90:{return E_OF_TRANSMUTATION;break;} case 91:{return E_OF_NECROSIS;break;} case 92:{return E_OF_ABILITY;break;} case 93:{return E_OF_THE_MIND;break;} case 94:{return E_OF_LIGHT;break;} case 95:{return E_OF_PROTECTION;break;} case 96:{return E_OF_PROTECTION;break;} case 97:{return E_OF_PROTECTION;break;} case 98:{return E_OF_NECROSIS;break;} case 99:{return E_OF_ABILITY;break;} case 100:{return E_OF_COLD;break;} case 101:{return E_OF_FIVE_SENSES;break;} case 102:{return E_OF_POWER;break;} case 103:{return E_OF_NECROSIS;break;} case 104:{return E_OF_THE_ELEMENTS;break;} case 105:{return E_OF_POWER;break;} case 106:{return E_OF_ENERGY;break;} case 107:{return E_OF_POWER;break;} case 108:{return E_OF_THE_MIND;break;} case 109:{return E_OF_FIVE_SENSES;break;} case 110:{return E_OF_THE_TRICKSTER;break;} case 111:{return E_OF_THE_TRICKSTER;break;} case 112:{return E_OF_TRANSMUTATION;break;} case 113:{return E_OF_FIVE_SENSES;break;} case 114:{return E_OF_THE_MIND;break;} case 115:{return E_OF_ABILITY;break;} case 116:{return E_OF_FIVE_SENSES;break;} case 117:{return E_OF_POWER;break;} case 118:{return E_OF_VENOM;break;} case 119:{return E_OF_TRANSMUTATION;break;} case 120:{return E_OF_TRANSMUTATION;break;} case 121:{return E_OF_TRANSMUTATION;break;} case 122:{return E_OF_TRANSMUTATION;break;} case 123:{return E_OF_TRANSMUTATION;break;} case 124:{return E_OF_POWER;break;} case 125:{return E_OF_SPIRIT;break;} case 126:{return E_OF_SPIRIT;break;} case 127:{return E_OF_SPIRIT;break;} case 128:{return E_OF_POWER;break;} case 129:{return E_OF_ABILITY;break;} case 130:{return E_OF_POWER;break;} case 131:{return E_OF_FIVE_SENSES;break;} case 132:{return E_OF_FIVE_SENSES;break;} case 133:{return E_OF_ENERGY;break;} case 134:{return E_OF_NECROSIS;break;} case 135:{return E_OF_FIRE;break;} case 136:{return E_OF_TRANSMUTATION;break;} case 137:{return E_OF_THE_TRICKSTER;break;} case 138:{return E_OF_PROTECTION;break;} case 139:{return E_OF_PROTECTION;break;} case 140:{return E_OF_PROTECTION;break;} case 141:{return E_OF_PROTECTION;break;} case 142:{return E_OF_FIVE_SENSES;break;} case 143:{return E_OF_LUCK;break;} case 144:{return E_OF_ABILITY;break;} case 145:{return E_OF_PROTECTION;break;} case 146:{return E_OF_THE_MIND;break;} case 147:{return E_OF_PLANT;break;} case 148:{return E_OF_POWER;break;} case 149:{return E_OF_LUCK;break;} case 150:{return E_OF_ELECTRICITY;break;} case 151:{return E_OF_LUCK;break;} case 152:{return E_OF_NECROSIS;break;} case 153:{return E_OF_NECROSIS;break;} case 154:{return E_OF_POWER;break;} case 155:{return E_OF_POWER;break;} case 156:{return E_OF_NECROSIS;break;} case 157:{return E_OF_POWER;break;} case 158:{return E_OF_THE_PLANES;break;} case 159:{return E_OF_THE_MIND;break;} case 160:{return E_OF_TRANSMUTATION;break;} case 161:{return E_OF_THE_PLANES;break;} case 162:{return E_OF_ENERGY;break;} case 163:{return E_OF_PLANT;break;} case 164:{return E_OF_POWER;break;} case 165:{return E_OF_FIRE;break;} case 166:{return E_OF_FIRE;break;} case 167:{return E_OF_FIRE;break;} case 168:{return E_OF_ABILITY;break;} case 169:{return E_OF_POWER;break;} case 170:{return E_OF_NECROSIS;break;} case 171:{return E_OF_POWER;break;} case 172:{return E_OF_POWER;break;} case 173:{return E_OF_THE_MIND;break;} case 174:{return E_OF_COLD;break;} case 175:{return E_OF_POWER;break;} case 176:{return E_OF_TRANSMUTATION;break;} case 177:{return E_OF_THE_MIND;break;} case 178:{return E_OF_POWER;break;} case 179:{return E_OF_PLANT;break;} case 180:{return E_OF_ENERGY;break;} case 181:{return E_OF_VENOM;break;} case 182:{return E_OF_THE_PLANES;break;} case 183:{return E_OF_PROTECTION;break;} case 184:{return E_OF_THE_MIND;break;} case 185:{return E_OF_PROTECTION;break;} case 186:{return E_OF_LUCK;break;} case 187:{return E_OF_LIGHT;break;} case 188:{return E_OF_THE_TRICKSTER;break;} case 189:{return E_OF_NECROSIS;break;} case 190:{return E_OF_PROTECTION;break;} case 191:{return E_OF_THE_ELEMENTS;break;} case 192:{return E_OF_LIGHT;break;} case 193:{return E_OF_LUCK;break;} case 194:{return E_OF_ABILITY;break;} case 195:{return E_OF_LUCK;break;} case 197:{return E_OF_ACID;break;} case 198:{return E_OF_THE_MIND;break;} case 199:{return E_OF_THE_MIND;break;} case 200:{return E_OF_TRANSMUTATION;break;} case 201:{return E_OF_LUCK;break;} case 202:{return E_OF_POWER;break;} case 203:{return E_OF_POWER;break;} case 204:{return E_OF_POWER;break;} case 205:{return E_OF_POWER;break;} case 206:{return E_OF_POWER;break;} case 207:{return E_OF_THE_MIND;break;} case 208:{return E_OF_ELECTRICITY;break;} case 209:{return E_OF_FIRE;break;} case 210:{return E_OF_THE_MIND;break;} case 211:{return E_OF_THE_TRICKSTER;break;} case 212:{return E_OF_LUCK;break;} case 213:{return E_OF_ABILITY;break;} case 214:{return E_OF_THE_ELEMENTS;break;} case 215:{return E_OF_ELECTRICITY;break;} case 216:{return E_OF_ENERGY;break;} case 217:{return E_OF_ABILITY;break;} case 218:{return E_OF_FIRE;break;} case 219:{return E_OF_FIRE;break;} case 220:{return E_OF_TRANSMUTATION;break;} case 221:{return E_OF_ABILITY;break;} case 222:{return E_OF_LUCK;break;} case 223:{return E_OF_THE_ELEMENTS;break;} case 224:{return E_OF_FIRE;break;} case 225:{return E_OF_NECROSIS;break;} case 226:{return E_OF_NECROSIS;break;} case 227:{return E_OF_NECROSIS;break;} case 228:{return E_OF_NECROSIS;break;} case 229:{return E_OF_NECROSIS;break;} case 230:{return E_OF_ENERGY;break;} case 231:{return E_OF_POWER;break;} case 232:{return E_OF_ABILITY;break;} case 233:{return E_OF_THE_TRICKSTER;break;} case 234:{return E_OF_PLANT;break;} case 235:{return E_OF_THE_MIND;break;} case 236:{return E_OF_THE_PLANES;break;} case 237:{return E_OF_FIRE;break;} case 238:{return E_OF_PROTECTION;break;} case 239:{return E_OF_THE_MIND;break;} case 240:{return E_OF_TRANSMUTATION;break;} case 241:{return E_OF_TRANSMUTATION;break;} case 242:{return E_OF_LIGHT;break;} case 243:{return E_OF_THE_TRICKSTER;break;} case 244:{return E_OF_LUCK;break;} case 245:{return E_OF_POWER;break;} case 246:{return E_OF_THE_MIND;break;} default:{return E_OF_POWER;break;} } return E_OF_POWER; } string GetComponent(object oItem) { string sTempTag = GetStringLeft(GetTag(oItem),GetStringLength(GetTag(oItem))-6); int iSpellNum = StringToInt(GetStringRight(sTempTag,3)); switch (iSpellNum) { case 1:{return "GEM_POWDER_JET";break;} case 2:{return "JUNK_HUMANSKULL";break;} case 3:{return "GEM_POWDER_ALEXANDRITE";break;} case 4:{return "item_mushroom007";break;} case 5:{return "item_mushroom016";break;} case 6:{return "SEED_MARIGOLD";break;} case 7:{return "item_mushroom073";break;} case 8:{return "GEM_POWDER_EMERALD";break;} case 9:{return "GEM_POWDER_BLUEQUARTZ";break;} case 10:{return "GEM_POWDER_TURQUOISE";break;} case 11:{return "item_mushroom009";break;} case 12:{return "GEM_POWDER_FIREOPAL";break;} case 13:{return "item_mushroom044";break;} case 14:{return "SEED_OKRA";break;} case 15:{return "item_mushroom027";break;} case 16:{return "GEM_POWDERED_RHODOCHROSITE";break;} case 17:{return "GEM_POWDER_OPAL";break;} case 18:{return "item_mushroom071";break;} case 19:{return "item_mushroom067";break;} case 20:{return "item_mushroom041";break;} case 21:{return "GEM_POWDER_OBSIDIAN";break;} case 22:{return "GEM_POWDER_MOSSAGATE";break;} case 23:{return "GEM_POWDER_STARRUBY";break;} case 24:{return "GEM_POWDER_JET";break;} case 25:{return "item_mushroom048";break;} case 26:{return "GEM_POWDER_JASPER";break;} case 27:{return "GEM_POWDER_ONYX";break;} case 28:{return "item_mushroom059";break;} case 29:{return "GEM_POWDER_PERIDOT";break;} case 30:{return "SEED_JUNIPERBERRY";break;} case 31:{return "GEM_POWDERED_REDSPINEL";break;} case 32:{return "GEM_POWDER_FIREOPAL";break;} case 33:{return "GEM_POWDER_SMOKYQUARTZ";break;} case 34:{return "item_mushroom030";break;} case 35:{return "GEM_POWDER_WHITEPEARL";break;} case 36:{return "item_mushroom065";break;} case 37:{return "NW_IT_MSMLMISC13";break;} case 38:{return "ITEM_SULPHUR";break;} case 39:{return "GEM_POWDER_TIGEREYE";break;} case 40:{return "GEM_POWDER_AMETHYST";break;} case 41:{return "GEM_POWDER_RUBY";break;} case 42:{return "GEM_POWDER_TOURMALINE";break;} case 43:{return "GEM_POWDER_AQUAMARINE";break;} case 44:{return "item_mushroom036";break;} case 45:{return "item_mushroom010";break;} case 46:{return "NW_IT_MSMLMISC08";break;} case 47:{return "GEM_POWDER_BLACKSAPPHIRE";break;} case 48:{return "item_mushroom043";break;} case 49:{return "GEM_POWDER_ONYX";break;} case 50:{return "GEM_POWDER_ORIENTALAMETHYST";break;} case 51:{return "item_mushroom046";break;} case 52:{return "GEM_POWDER_GARNET_VIOLET";break;} case 53:{return "item_mushroom005";break;} case 54:{return "item_mushroom068";break;} case 55:{return "GEM_POWDER_AMBER";break;} case 56:{return "item_mushroom021";break;} case 57:{return "SEED_SAGE";break;} case 58:{return "GEM_POWDER_OPAL";break;} case 59:{return "GEM_POWDER_FIREOPAL";break;} case 60:{return "GEM_POWDER_BLUEQUARTZ";break;} case 61:{return "item_mushroom025";break;} case 62:{return "GEM_POWDER_AZURITE";break;} case 63:{return "item_mushroom038";break;} case 64:{return "item_mushroom062";break;} case 65:{return "item_mushroom015";break;} case 66:{return "SEED_PEPPERMINT";break;} case 67:{return "item_mushroom031";break;} case 68:{return "item_mushroom050";break;} case 69:{return "FLOWER_WHITETULIP";break;} case 70:{return "item_mushroom034";break;} case 71:{return "SEED_PERIWINKLE";break;} case 72:{return "FLOWER_REDIRIS";break;} case 73:{return "item_mushroom017";break;} case 74:{return "item_mushroom008";break;} case 75:{return "item_mushroom014";break;} case 76:{return "item_mushroom049";break;} case 77:{return "GEM_POWDER_GARNET_RED";break;} case 78:{return "GEM_POWDER_RUBY";break;} case 79:{return "item_mushroom024";break;} case 80:{return "GEM_POWDER_SARDONYX";break;} case 81:{return "NW_IT_MSMLMISC07";break;} case 82:{return "GEM_POWDER_ORIENTALEMERALD";break;} case 83:{return "GEM_POWDER_BLACKSAPPHIRE";break;} case 84:{return "GEM_POWDER_ZIRCON";break;} case 85:{return "GEM_POWDER_CHALCENDONY";break;} case 86:{return "ITEM_LIME";break;} case 87:{return "SEED_LARKSPUR";break;} case 88:{return "item_mushroom040";break;} case 89:{return "item_mushroom023";break;} case 90:{return "GEM_POWDER_MOONSTONE";break;} case 91:{return "NW_IT_MSMLMISC10";break;} case 92:{return "NW_IT_MSMLMISC14";break;} case 93:{return "SEED_SASSAFRASS";break;} case 94:{return "GEM_POWDER_ROCKCRYSTAL";break;} case 95:{return "SEED_LAVENDER";break;} case 96:{return "item_mushroom037";break;} case 97:{return "GEM_POWDER_TOPAZ";break;} case 98:{return "GEM_POWDER_ORIENTALTOPAZ";break;} case 99:{return "GEM_POWDER_MALACHITE";break;} case 100:{return "FLOWER_YELLOWIRIS";break;} case 101:{return "GEM_POWDER_SARDONYX";break;} case 102:{return "item_mushroom042";break;} case 103:{return "item_mushroom001";break;} case 104:{return "GEM_POWDER_CITRINE";break;} case 105:{return "GEM_POWDER_STARROSEQUARTZ";break;} case 106:{return "item_mushroom003";break;} case 107:{return "GEM_POWDER_JACINTH";break;} case 108:{return "GEM_POWDER_CARNELIAN";break;} case 109:{return "GEM_POWDER_EYEAGATE";break;} case 110:{return "SEED_SPEARMINT";break;} case 111:{return "item_mushroom057";break;} case 112:{return "GEM_POWDER_SAPPHIRE";break;} case 113:{return "GEM_POWDERED_JADE";break;} case 114:{return "SEED_NASTURTIUM";break;} case 115:{return "ITEM_MAPLESAP";break;} case 116:{return "FLOWER_YELLOWTULIP";break;} case 117:{return "GEM_POWDER_AQUAMARINE";break;} case 118:{return "GEM_POWDER_GARNET_VIOLET";break;} case 119:{return "GEM_POWDER_CORAL";break;} case 120:{return "SEED_MAYAPPLE";break;} case 121:{return "FISH_BULLFROG";break;} case 122:{return "ITEM_WALNUT";break;} case 123:{return "GEM_POWDER_BLACKOPAL";break;} case 124:{return "GEM_POWDER_BLACKSAPPHIRE";break;} case 125:{return "GEM_POWDER_ORIENTALAMETHYST";break;} case 126:{return "GEM_POWDER_STARSAPPHIRE";break;} case 127:{return "GEM_POWDER_RUBY";break;} case 128:{return "GEM_POWDER_DIAMOND";break;} case 129:{return "GEM_POWDER_BLACKPEARL";break;} case 130:{return "GEM_POWDER_BLACKSAPPHIRE";break;} case 131:{return "item_mushroom022";break;} case 132:{return "item_mushroom063";break;} case 133:{return "GEM_POWDER_BLOODSTONE";break;} case 134:{return "GEM_POWDER_EMERALD";break;} case 135:{return "GEM_POWDER_PERIDOT";break;} case 136:{return "ITEM_SPIDERSILK";break;} case 137:{return "item_mushroom064";break;} case 138:{return "SEED_GARLIC";break;} case 139:{return "FLOWER_BLUEIRIS";break;} case 140:{return "SEED_GINGER";break;} case 141:{return "ITEM_ROYALJELLY";break;} case 142:{return "SaltBlock";break;} case 143:{return "ITEM_HONEY";break;} case 144:{return "item_mushroom039";break;} case 145:{return "SEED_ONION";break;} case 146:{return "FLOWER_WHITEIRIS";break;} case 147:{return "SEED_MISTLETOE";break;} case 148:{return "GEM_POWDER_BLUESPINEL";break;} case 149:{return "SEED_OREGANO";break;} case 150:{return "GEM_POWDERED_REDSPINEL";break;} case 151:{return "item_mushroom054";break;} case 152:{return "GEM_POWDER_SAPPHIRE";break;} case 153:{return "GEM_POWDERED_JADE";break;} case 154:{return "GEM_POWDER_EMERALD";break;} case 155:{return "item_mushroom047";break;} case 156:{return "GEM_POWDER_BLOODSTONE";break;} case 157:{return "GEM_POWDER_EMERALD";break;} case 158:{return "item_mushroom055";break;} case 159:{return "NW_IT_MSMLMISC09";break;} case 160:{return "SEED_SNAPDRAGON";break;} case 161:{return "GEM_POWDER_DIAMOND";break;} case 162:{return "GEM_POWDER_JACINTH";break;} case 163:{return "item_mushroom019";break;} case 164:{return "item_mushroom002";break;} case 165:{return "GEM_POWDER_RUBY";break;} case 166:{return "FLOWER_BLUETULIP";break;} case 167:{return "item_mushroom035";break;} case 168:{return "item_mushroom066";break;} case 169:{return "GEM_POWDER_ZIRCON";break;} case 170:{return "GEM_POWDER_BLACKOPAL";break;} case 171:{return "GEM_POWDER_EMERALD";break;} case 172:{return "GEM_POWDER_HEMATITE";break;} case 173:{return "item_mushroom058";break;} case 174:{return "item_mushroom029";break;} case 175:{return "item_mushroom060";break;} case 176:{return "item_mushroom004";break;} case 177:{return "GEM_POWDER_STARRUBY";break;} case 178:{return "NW_IT_MSMLMISC07";break;} case 179:{return "item_mushroom053";break;} case 180:{return "GEM_POWDER_ALEXANDRITE";break;} case 181:{return "item_mushroom012";break;} case 182:{return "ITEM_PECAN";break;} case 183:{return "item_mushroom056";break;} case 184:{return "GEM_POWDER_BLUESPINEL";break;} case 185:{return "FISH_TADPOLE";break;} case 186:{return "ITEM_OLIVE";break;} case 187:{return "item_mushroom045";break;} case 188:{return "GEM_POWDER_HEMATITE";break;} case 189:{return "item_mushroom028";break;} case 190:{return "item_mushroom020";break;} case 191:{return "GEM_POWDER_BLACKSAPPHIRE";break;} case 192:{return "GEM_POWDER_SAPPHIRE";break;} case 193:{return "SEED_BASIL";break;} case 194:{return "item_mushroom052";break;} case 195:{return "NW_IT_MSMLMISC10";break;} case 196:{return "GEM_POWDER_EMERALD";break;} case 197:{return "GEM_POWDER_CHRYSOPRASE";break;} case 198:{return "ITEM_ALMOND";break;} case 199:{return "GEM_POWDER_EMERALD";break;} case 200:{return "GEM_POWDER_TIGEREYE";break;} case 201:{return "GEM_POWDER_ONYX";break;} case 202:{return "GEM_POWDER_SAPPHIRE";break;} case 203:{return "GEM_POWDER_STARRUBY";break;} case 204:{return "NW_IT_MSMLMISC19";break;} case 205:{return "NW_IT_MSMLMISC13";break;} case 206:{return "item_mushroom018";break;} case 207:{return "GEM_POWDER_JASPER";break;} case 208:{return "GEM_POWDER_STARSAPPHIRE";break;} case 209:{return "item_mushroom011";break;} case 210:{return "SEED_TARRAGON";break;} case 211:{return "GEM_POWDER_SAPPHIRE";break;} case 212:{return "GEM_POWDER_WHITEPEARL";break;} case 213:{return "GEM_POWDER_GARNET_VIOLET";break;} case 214:{return "FISH_MINNOW";break;} case 215:{return "item_mushroom051";break;} case 216:{return "NW_IT_MSMLMISC08";break;} case 217:{return "NW_IT_MSMLMISC19";break;} case 218:{return "item_mushroom013";break;} case 219:{return "FISH_GUPPY";break;} case 220:{return "GEM_POWDER_BLACKOPAL";break;} case 221:{return "GEM_POWDER_STARRUBY";break;} case 222:{return "GEM_POWDER_JACINTH";break;} case 223:{return "item_mushroom033";break;} case 224:{return "item_mushroom069";break;} case 225:{return "GEM_POWDER_EMERALD";break;} case 226:{return "GEM_POWDER_BANDEDAGATE";break;} case 227:{return "GEM_POWDER_CHRYSOBERYL";break;} case 228:{return "GEM_POWDER_BLACKPEARL";break;} case 229:{return "item_mushroom070";break;} case 230:{return "GEM_POWDER_TOPAZ";break;} case 231:{return "GEM_POWDER_STARSAPPHIRE";break;} case 232:{return "ITEM_SAUSAGEFRUIT";break;} case 233:{return "GEM_POWDER_TOURMALINE";break;} case 234:{return "GEM_POWDER_MOSSAGATE";break;} case 235:{return "FLOWER_REDTULIP";break;} case 236:{return "NW_IT_MSMLMISC14";break;} case 237:{return "GEM_POWDER_OBSIDIAN";break;} case 238:{return "GEM_POWDER_LAPISLAZULI";break;} case 239:{return "GEM_POWDER_SMOKYQUARTZ";break;} case 240:{return "ITEM_PINECONE";break;} case 241:{return "item_mushroom032";break;} case 242:{return "GEM_POWDER_DIAMOND";break;} case 243:{return "SEED_CATNIP";break;} case 244:{return "NW_IT_MSMLMISC09";break;} case 245:{return "GEM_POWDER_RUBY";break;} case 246:{return "item_mushroom006";break;} default:{return "GEM_POWDER_DIAMOND";break;} } return "GEM_POWDER_DIAMOND"; } int GetInkChance(object oItem) { string sTempTag = GetStringLeft(GetTag(oItem),GetStringLength(GetTag(oItem))-6); int iSpellNum = StringToInt(GetStringRight(sTempTag,3)); switch (iSpellNum) { case 1:{return 6;break;} case 2:{return 4;break;} case 3:{return 4;break;} case 4:{return 3;break;} case 5:{return 2;break;} case 6:{return 1;break;} case 7:{return 2;break;} case 8:{return 6;break;} case 9:{return 4;break;} case 10:{return 1;break;} case 11:{return 2;break;} case 12:{return 6;break;} case 13:{return 3;break;} case 14:{return 3;break;} case 15:{return 5;break;} case 16:{return 1;break;} case 17:{return 5;break;} case 18:{return 4;break;} case 19:{return 4;break;} case 20:{return 7;break;} case 21:{return 2;break;} case 22:{return 1;break;} case 23:{return 7;break;} case 24:{return 5;break;} case 25:{return 3;break;} case 26:{return 9;break;} case 27:{return 5;break;} case 28:{return 2;break;} case 29:{return 4;break;} case 30:{return 2;break;} case 31:{return 1;break;} case 32:{return 9;break;} case 33:{return 4;break;} case 34:{return 6;break;} case 35:{return 4;break;} case 36:{return 5;break;} case 37:{return 7;break;} case 38:{return 3;break;} case 39:{return 3;break;} case 40:{return 2;break;} case 41:{return 9;break;} case 42:{return 2;break;} case 43:{return 2;break;} case 44:{return 6;break;} case 45:{return 1;break;} case 46:{return 6;break;} case 47:{return 8;break;} case 48:{return 7;break;} case 49:{return 5;break;} case 50:{return 6;break;} case 51:{return 9;break;} case 52:{return 6;break;} case 53:{return 3;break;} case 54:{return 5;break;} case 55:{return 3;break;} case 56:{return 8;break;} case 57:{return 1;break;} case 58:{return 4;break;} case 59:{return 8;break;} case 60:{return 2;break;} case 61:{return 3;break;} case 62:{return 2;break;} case 63:{return 2;break;} case 64:{return 5;break;} case 65:{return 5;break;} case 66:{return 2;break;} case 67:{return 4;break;} case 68:{return 5;break;} case 69:{return 1;break;} case 70:{return 3;break;} case 71:{return 1;break;} case 72:{return 3;break;} case 73:{return 1;break;} case 74:{return 8;break;} case 75:{return 8;break;} case 76:{return 6;break;} case 77:{return 2;break;} case 78:{return 9;break;} case 79:{return 8;break;} case 80:{return 5;break;} case 81:{return 4;break;} case 82:{return 9;break;} case 83:{return 7;break;} case 84:{return 3;break;} case 85:{return 1;break;} case 86:{return 4;break;} case 87:{return 2;break;} case 88:{return 4;break;} case 89:{return 6;break;} case 90:{return 4;break;} case 91:{return 9;break;} case 92:{return 7;break;} case 93:{return 8;break;} case 94:{return 7;break;} case 95:{return 1;break;} case 96:{return 3;break;} case 97:{return 7;break;} case 98:{return 5;break;} case 99:{return 1;break;} case 100:{return 1;break;} case 101:{return 4;break;} case 102:{return 4;break;} case 103:{return 3;break;} case 104:{return 2;break;} case 105:{return 1;break;} case 106:{return 4;break;} case 107:{return 7;break;} case 108:{return 1;break;} case 109:{return 2;break;} case 110:{return 6;break;} case 111:{return 4;break;} case 112:{return 9;break;} case 113:{return 2;break;} case 114:{return 1;break;} case 115:{return 3;break;} case 116:{return 2;break;} case 117:{return 7;break;} case 118:{return 3;break;} case 119:{return 4;break;} case 120:{return 1;break;} case 121:{return 2;break;} case 122:{return 3;break;} case 123:{return 4;break;} case 124:{return 9;break;} case 125:{return 5;break;} case 126:{return 6;break;} case 127:{return 7;break;} case 128:{return 8;break;} case 129:{return 6;break;} case 130:{return 9;break;} case 131:{return 6;break;} case 132:{return 2;break;} case 133:{return 3;break;} case 134:{return 9;break;} case 135:{return 4;break;} case 136:{return 2;break;} case 137:{return 9;break;} case 138:{return 1;break;} case 139:{return 1;break;} case 140:{return 3;break;} case 141:{return 4;break;} case 142:{return 3;break;} case 143:{return 2;break;} case 144:{return 7;break;} case 145:{return 8;break;} case 146:{return 5;break;} case 147:{return 2;break;} case 148:{return 6;break;} case 149:{return 1;break;} case 150:{return 3;break;} case 151:{return 5;break;} case 152:{return 8;break;} case 153:{return 8;break;} case 154:{return 7;break;} case 155:{return 4;break;} case 156:{return 4;break;} case 157:{return 7;break;} case 158:{return 4;break;} case 159:{return 3;break;} case 160:{return 1;break;} case 161:{return 9;break;} case 162:{return 6;break;} case 163:{return 1;break;} case 164:{return 4;break;} case 165:{return 8;break;} case 166:{return 2;break;} case 167:{return 5;break;} case 168:{return 4;break;} case 169:{return 4;break;} case 170:{return 7;break;} case 171:{return 7;break;} case 172:{return 5;break;} case 173:{return 2;break;} case 174:{return 5;break;} case 175:{return 9;break;} case 176:{return 3;break;} case 177:{return 6;break;} case 178:{return 9;break;} case 179:{return 8;break;} case 180:{return 3;break;} case 181:{return 4;break;} case 182:{return 3;break;} case 183:{return 7;break;} case 184:{return 1;break;} case 185:{return 2;break;} case 186:{return 1;break;} case 187:{return 3;break;} case 188:{return 7;break;} case 189:{return 5;break;} case 190:{return 5;break;} case 191:{return 9;break;} case 192:{return 8;break;} case 193:{return 1;break;} case 194:{return 4;break;} case 195:{return 7;break;} case 196:{return 5;break;} case 197:{return 1;break;} case 198:{return 1;break;} case 199:{return 2;break;} case 200:{return 2;break;} case 201:{return 1;break;} case 202:{return 8;break;} case 203:{return 9;break;} case 204:{return 6;break;} case 205:{return 7;break;} case 206:{return 5;break;} case 207:{return 2;break;} case 208:{return 8;break;} case 209:{return 2;break;} case 210:{return 6;break;} case 211:{return 3;break;} case 212:{return 1;break;} case 213:{return 4;break;} case 214:{return 6;break;} case 215:{return 1;break;} case 216:{return 1;break;} case 217:{return 1;break;} case 218:{return 5;break;} case 219:{return 1;break;} case 220:{return 6;break;} case 221:{return 3;break;} case 222:{return 8;break;} case 223:{return 3;break;} case 224:{return 5;break;} case 225:{return 4;break;} case 226:{return 1;break;} case 227:{return 1;break;} case 228:{return 2;break;} case 229:{return 3;break;} case 230:{return 4;break;} case 231:{return 6;break;} case 232:{return 1;break;} case 233:{return 4;break;} case 234:{return 2;break;} case 235:{return 5;break;} case 236:{return 6;break;} case 237:{return 3;break;} case 238:{return 1;break;} case 239:{return 1;break;} case 240:{return 3;break;} case 241:{return 6;break;} case 242:{return 8;break;} case 243:{return 2;break;} case 244:{return 1;break;} case 245:{return 9;break;} case 246:{return 3;break;} default:{return 9;break;} } return 9; } int CheckComponent(object oPC, string sComponent1, string sComponent2, string sComponent3, int iComponent1, int iComponent2, int iComponent3, int iComponent1Stackable, int iComponent2Stackable, int iComponent3Stackable) { object oTemp; string sComponentResRef; int iStackSize; //Check if 3rd component is a stackable or not if (GetStringLeft(sComponent3,3)=="GEM") { iComponent3Stackable=1; } else { iComponent3Stackable=0; } // Remove all components float fPause = 0.0; if (iComponent1Stackable != 0) { oTemp = GetItemPossessedBy(oPC,sComponent1); sComponentResRef = GetResRef(oTemp); iStackSize = GetNumStackedItems(oTemp); DestroyObject(oTemp); if (iStackSize < iComponent1) { iComponent1 = iComponent1 - iStackSize; DelayCommand(2.0,GetNextStackedItem(oPC,sComponent1,iComponent1,1,sComponentResRef)); } else { if (iStackSize > iComponent1) { iStackSize = iStackSize - iComponent1; DelayCommand(1.0,CreateAnObject(sComponentResRef,oPC,iStackSize)); } } } else { for (iComponent1; iComponent1>0; iComponent1--) { fPause = fPause+0.5; AssignCommand(oPC,DelayCommand(fPause,GetNextItemPossessedBy(oPC,sComponent1))); } } if (sComponent2 != "") { if (iComponent2Stackable != 0) { oTemp = GetItemPossessedBy(oPC,sComponent2); sComponentResRef = GetResRef(oTemp); iStackSize = GetNumStackedItems(oTemp); DestroyObject(oTemp); if (iStackSize < iComponent2) { iComponent2 = iComponent2 - iStackSize; DelayCommand(2.0,GetNextStackedItem(oPC,sComponent2,iComponent2,1, sComponentResRef)); } else { if (iStackSize > iComponent2) { iStackSize = iStackSize - iComponent2; DelayCommand(1.0,CreateAnObject(sComponentResRef,oPC,iStackSize)); } } } else { for (iComponent2; iComponent2>0; iComponent2--) { fPause = fPause+0.5; AssignCommand(oPC,DelayCommand(fPause,GetNextItemPossessedBy(oPC,sComponent2))); } } } if (sComponent3 != "") { if (iComponent3Stackable != 0) { oTemp = GetItemPossessedBy(oPC,sComponent3); sComponentResRef = GetResRef(oTemp); iStackSize = GetNumStackedItems(oTemp); DestroyObject(oTemp); if (iStackSize < iComponent3) { iComponent3 = iComponent3 - iStackSize; DelayCommand(2.0,GetNextStackedItem(oPC,sComponent3,iComponent3,1, sComponentResRef)); } else { if (iStackSize > iComponent3) { iStackSize = iStackSize - iComponent3; DelayCommand(1.0,CreateAnObject(sComponentResRef,oPC,iStackSize)); } } } else { for (iComponent3; iComponent3>0; iComponent3--) { fPause = fPause +0.5; AssignCommand(oPC,DelayCommand(fPause,GetNextItemPossessedBy(oPC,sComponent3))); } } } // check for components -- Purposefully moved down here.. you lose all components found on *any* attempt //even an attempt where you are missing a component. if (GetNumItems(oPC,sComponent1) < iComponent1)return 0; if (sComponent2 != "") { if (iComponent2 > 0) { if (GetNumItems(oPC,sComponent2) < iComponent2)return 0; } } if (sComponent3!="") { if (iComponent3 > 0) { if (GetNumItems(oPC,sComponent3) < iComponent3)return 0; } } return 1; } void GetNextStackedItem(object oPC, string sItemTag, int iCount, int iMode, string sStackResRef) { object oTemp = GetItemPossessedBy(oPC,sItemTag); int iStackCount = GetNumStackedItems(oTemp); int iTemp = iCount - iStackCount; iStackCount = iStackCount-iCount; DestroyObject(oTemp); if (iStackCount > 0) { SendMessageToPC(oPC,"You should get back "+IntToString(iStackCount)); DelayCommand(1.0,CreateAnObject(sStackResRef,oPC,iStackCount)); } // this next line *should* recursively call this function if the number of // stacked items does not meet the required number of items to be destroyed. if (iTemp > 0) DelayCommand(1.0,GetNextStackedItem(oPC,sItemTag,iTemp, iMode, sStackResRef)); return; } void CreateAnObject(string sResource, object oPC, int iStackSize) { CreateItemOnObject(sResource,oPC,iStackSize); return; } void CreateACopy(object oSelf,object oItem,object oPC) { string sTempTag = GetTag(oItem); if (GetStringRight(sTempTag,6)=="_Store") sTempTag = GetStringLeft(sTempTag,GetStringLength(sTempTag)-6); sTempTag = sTempTag+"a"; if (DISTURB_ME==1) { if (GetLocalObject(oSelf,"oDisturbed")!=OBJECT_INVALID) { if (GetLocalInt(oSelf,"iWasDisturbed")==99) { if (GetLocalObject(oSelf,"oDisturbed")!=oPC) { FloatingTextStringOnCreature(GetName(GetLocalObject(oSelf,"oDisturbed"))+" has disturbed your inscitption attempt, ruining the scroll!",oPC,FALSE); SetLocalInt(oSelf,"iWasDisturbed",0); SetLocalObject(oSelf,"oDisturbed",OBJECT_INVALID); return; } } } } CopyObject(oItem,GetLocation(oPC),oPC,sTempTag); return; } void GetNextItemPossessedBy(object oPC, string sItemTag) { object oTemp = GetItemPossessedBy(oPC,sItemTag); DestroyObject(oTemp); return; } void CreateInk(object oSelf, string sItemTag, object oPC) { object oTemp; oTemp = CreateObject(OBJECT_TYPE_ITEM,"spell_ink",GetLocation(oSelf),FALSE,sItemTag); CopyObject(oTemp,GetLocation(oPC),oPC,GetTag(oTemp)); DestroyObject(oTemp,10.0); } void LoseSpell(object oPC,int iSpellNum) { switch (iSpellNum) { case 1:{DecrementRemainingSpellUses(oPC,SPELL_ACID_FOG);break;} case 2:{DecrementRemainingSpellUses(oPC,SPELL_ANIMATE_DEAD);break;} case 3:{DecrementRemainingSpellUses(oPC,SPELL_BESTOW_CURSE);break;} case 4:{DecrementRemainingSpellUses(oPC,SPELL_BLINDNESS_AND_DEAFNESS);break;} case 5:{DecrementRemainingSpellUses(oPC,SPELL_BULLS_STRENGTH);break;} case 6:{DecrementRemainingSpellUses(oPC,SPELL_BURNING_HANDS);break;} case 7:{DecrementRemainingSpellUses(oPC,SPELL_CATS_GRACE);break;} case 8:{DecrementRemainingSpellUses(oPC,SPELL_CHAIN_LIGHTNING);break;} case 9:{DecrementRemainingSpellUses(oPC,SPELL_CHARM_MONSTER);break;} case 10:{DecrementRemainingSpellUses(oPC,SPELL_CHARM_PERSON);break;} case 11:{DecrementRemainingSpellUses(oPC,SPELL_CHARM_PERSON_OR_ANIMAL);break;} case 12:{DecrementRemainingSpellUses(oPC,SPELL_CIRCLE_OF_DEATH);break;} case 13:{DecrementRemainingSpellUses(oPC,SPELL_CLAIRAUDIENCE_AND_CLAIRVOYANCE);break;} case 14:{DecrementRemainingSpellUses(oPC,SPELL_CLARITY);break;} case 15:{DecrementRemainingSpellUses(oPC,SPELL_CLOUDKILL);break;} case 16:{DecrementRemainingSpellUses(oPC,SPELL_COLOR_SPRAY);break;} case 17:{DecrementRemainingSpellUses(oPC,SPELL_CONE_OF_COLD);break;} case 18:{DecrementRemainingSpellUses(oPC,SPELL_CONFUSION);break;} case 19:{DecrementRemainingSpellUses(oPC,SPELL_CONTAGION);break;} case 20:{DecrementRemainingSpellUses(oPC,SPELL_CONTROL_UNDEAD);break;} case 21:{DecrementRemainingSpellUses(oPC,SPELL_DARKNESS);break;} case 22:{DecrementRemainingSpellUses(oPC,SPELL_DAZE);break;} case 23:{DecrementRemainingSpellUses(oPC,SPELL_DELAYED_BLAST_FIREBALL);break;} case 24:{DecrementRemainingSpellUses(oPC,SPELL_DISMISSAL);break;} case 25:{DecrementRemainingSpellUses(oPC,SPELL_DISPEL_MAGIC);break;} case 26:{DecrementRemainingSpellUses(oPC,SPELL_DOMINATE_MONSTER);break;} case 27:{DecrementRemainingSpellUses(oPC,SPELL_DOMINATE_PERSON);break;} case 28:{DecrementRemainingSpellUses(oPC,SPELL_EAGLE_SPLEDOR);break;} case 29:{DecrementRemainingSpellUses(oPC,SPELL_ELEMENTAL_SHIELD);break;} case 30:{DecrementRemainingSpellUses(oPC,SPELL_ENDURANCE);break;} case 31:{DecrementRemainingSpellUses(oPC,SPELL_ENDURE_ELEMENTS);break;} case 32:{DecrementRemainingSpellUses(oPC,SPELL_ENERGY_DRAIN);break;} case 33:{DecrementRemainingSpellUses(oPC,SPELL_ENERVATION);break;} case 34:{DecrementRemainingSpellUses(oPC,SPELL_ETHEREAL_VISAGE);break;} case 35:{DecrementRemainingSpellUses(oPC,SPELL_FEAR);break;} case 36:{DecrementRemainingSpellUses(oPC,SPELL_FEEBLEMIND);break;} case 37:{DecrementRemainingSpellUses(oPC,SPELL_FINGER_OF_DEATH);break;} case 38:{DecrementRemainingSpellUses(oPC,SPELL_FIREBALL);break;} case 39:{DecrementRemainingSpellUses(oPC,SPELL_FLAME_ARROW);break;} case 40:{DecrementRemainingSpellUses(oPC,SPELL_FOXS_CUNNING);break;} case 41:{DecrementRemainingSpellUses(oPC,SPELL_GATE);break;} case 42:{DecrementRemainingSpellUses(oPC,SPELL_GHOSTLY_VISAGE);break;} case 43:{DecrementRemainingSpellUses(oPC,SPELL_GHOUL_TOUCH);break;} case 44:{DecrementRemainingSpellUses(oPC,SPELL_GLOBE_OF_INVULNERABILITY);break;} case 45:{DecrementRemainingSpellUses(oPC,SPELL_GREASE);break;} case 46:{DecrementRemainingSpellUses(oPC,SPELL_GREATER_DISPELLING);break;} case 47:{DecrementRemainingSpellUses(oPC,SPELL_GREATER_PLANAR_BINDING);break;} case 48:{DecrementRemainingSpellUses(oPC,SPELL_GREATER_RESTORATION);break;} case 49: { //Hope this works LOL DecrementRemainingSpellUses(oPC,SPELL_GREATER_SHADOW_CONJURATION_ACID_ARROW); DecrementRemainingSpellUses(oPC,SPELL_GREATER_SHADOW_CONJURATION_MINOR_GLOBE); DecrementRemainingSpellUses(oPC,SPELL_GREATER_SHADOW_CONJURATION_MIRROR_IMAGE); DecrementRemainingSpellUses(oPC,SPELL_GREATER_SHADOW_CONJURATION_SUMMON_SHADOW); DecrementRemainingSpellUses(oPC,SPELL_GREATER_SHADOW_CONJURATION_WEB); break; } case 50:{DecrementRemainingSpellUses(oPC,SPELL_GREATER_SPELL_BREACH);break;} case 51:{DecrementRemainingSpellUses(oPC,SPELL_GREATER_SPELL_MANTLE);break;} case 52:{DecrementRemainingSpellUses(oPC,SPELL_GREATER_STONESKIN);break;} case 53:{DecrementRemainingSpellUses(oPC,SPELL_HASTE);break;} case 54:{DecrementRemainingSpellUses(oPC,SPELL_HOLD_MONSTER);break;} case 55:{DecrementRemainingSpellUses(oPC,SPELL_HOLD_PERSON);break;} case 56:{DecrementRemainingSpellUses(oPC,SPELL_HORRID_WILTING);break;} case 57:{DecrementRemainingSpellUses(oPC,SPELL_IDENTIFY);break;} case 58:{DecrementRemainingSpellUses(oPC,SPELL_IMPROVED_INVISIBILITY);break;} case 59:{DecrementRemainingSpellUses(oPC,SPELL_INCENDIARY_CLOUD);break;} case 60:{DecrementRemainingSpellUses(oPC,SPELL_INVISIBILITY);break;} case 61:{DecrementRemainingSpellUses(oPC,SPELL_INVISIBILITY_SPHERE);break;} case 62:{DecrementRemainingSpellUses(oPC,SPELL_KNOCK);break;} case 63:{DecrementRemainingSpellUses(oPC,SPELL_LESSER_DISPEL);break;} case 64:{DecrementRemainingSpellUses(oPC,SPELL_LESSER_MIND_BLANK);break;} case 65:{DecrementRemainingSpellUses(oPC,SPELL_LESSER_PLANAR_BINDING);break;} case 66:{DecrementRemainingSpellUses(oPC,SPELL_LESSER_RESTORATION);break;} case 67:{DecrementRemainingSpellUses(oPC,SPELL_LESSER_SPELL_BREACH);break;} case 68:{DecrementRemainingSpellUses(oPC,SPELL_LESSER_SPELL_MANTLE);break;} case 69:{DecrementRemainingSpellUses(oPC,SPELL_LIGHT);break;} case 70:{DecrementRemainingSpellUses(oPC,SPELL_LIGHTNING_BOLT);break;} case 71:{DecrementRemainingSpellUses(oPC,SPELL_MAGE_ARMOR);break;} case 72: { DecrementRemainingSpellUses(oPC,SPELL_MAGIC_CIRCLE_AGAINST_CHAOS); DecrementRemainingSpellUses(oPC,SPELL_MAGIC_CIRCLE_AGAINST_EVIL); DecrementRemainingSpellUses(oPC,SPELL_MAGIC_CIRCLE_AGAINST_GOOD); DecrementRemainingSpellUses(oPC,SPELL_MAGIC_CIRCLE_AGAINST_LAW); break; } case 73:{DecrementRemainingSpellUses(oPC,SPELL_MAGIC_MISSILE);break;} case 74:{DecrementRemainingSpellUses(oPC,SPELL_MASS_BLINDNESS_AND_DEAFNESS);break;} case 75:{DecrementRemainingSpellUses(oPC,SPELL_MASS_CHARM);break;} case 76:{DecrementRemainingSpellUses(oPC,SPELL_MASS_HASTE);break;} case 77:{DecrementRemainingSpellUses(oPC,SPELL_MELFS_ACID_ARROW);break;} case 78:{DecrementRemainingSpellUses(oPC,SPELL_METEOR_SWARM);break;} case 79:{DecrementRemainingSpellUses(oPC,SPELL_MIND_BLANK);break;} case 80:{DecrementRemainingSpellUses(oPC,SPELL_MIND_FOG);break;} case 81:{DecrementRemainingSpellUses(oPC,SPELL_MINOR_GLOBE_OF_INVULNERABILITY);break;} case 82:{DecrementRemainingSpellUses(oPC,SPELL_MORDENKAINENS_DISJUNCTION);break;} case 83:{DecrementRemainingSpellUses(oPC,SPELL_MORDENKAINENS_SWORD);break;} case 84:{DecrementRemainingSpellUses(oPC,SPELL_NEGATIVE_ENERGY_BURST);break;} case 85:{DecrementRemainingSpellUses(oPC,SPELL_NEGATIVE_ENERGY_RAY);break;} case 86:{DecrementRemainingSpellUses(oPC,SPELL_NEUTRALIZE_POISON);break;} case 87:{DecrementRemainingSpellUses(oPC,SPELL_OWLS_WISDOM);break;} case 88:{DecrementRemainingSpellUses(oPC,SPELL_PHANTASMAL_KILLER);break;} case 89:{DecrementRemainingSpellUses(oPC,SPELL_PLANAR_BINDING);break;} case 90:{DecrementRemainingSpellUses(oPC,SPELL_POLYMORPH_SELF);break;} case 91:{DecrementRemainingSpellUses(oPC,SPELL_POWER_WORD_KILL);break;} case 92:{DecrementRemainingSpellUses(oPC,SPELL_POWER_WORD_STUN);break;} case 93:{DecrementRemainingSpellUses(oPC,SPELL_PREMONITION);break;} case 94:{DecrementRemainingSpellUses(oPC,SPELL_PRISMATIC_SPRAY);break;} case 95: { DecrementRemainingSpellUses(oPC,SPELL_PROTECTION__FROM_CHAOS); DecrementRemainingSpellUses(oPC,SPELL_PROTECTION_FROM_EVIL); DecrementRemainingSpellUses(oPC,SPELL_PROTECTION_FROM_GOOD); DecrementRemainingSpellUses(oPC,SPELL_PROTECTION_FROM_LAW); break; } case 96:{DecrementRemainingSpellUses(oPC,SPELL_PROTECTION_FROM_ELEMENTS);break;} case 97:{DecrementRemainingSpellUses(oPC,SPELL_PROTECTION_FROM_SPELLS);break;} case 98:{DecrementRemainingSpellUses(oPC,SPELL_RAISE_DEAD);break;} case 99:{DecrementRemainingSpellUses(oPC,SPELL_RAY_OF_ENFEEBLEMENT);break;} case 100:{DecrementRemainingSpellUses(oPC,SPELL_RAY_OF_FROST);break;} case 101:{DecrementRemainingSpellUses(oPC,SPELL_REMOVE_BLINDNESS_AND_DEAFNESS);break;} case 102:{DecrementRemainingSpellUses(oPC,SPELL_REMOVE_CURSE);break;} case 103:{DecrementRemainingSpellUses(oPC,SPELL_REMOVE_DISEASE);break;} case 104:{DecrementRemainingSpellUses(oPC,SPELL_RESIST_ELEMENTS);break;} case 105:{DecrementRemainingSpellUses(oPC,SPELL_RESISTANCE);break;} case 106:{DecrementRemainingSpellUses(oPC,SPELL_RESTORATION);break;} case 107:{DecrementRemainingSpellUses(oPC,SPELL_RESURRECTION);break;} case 108:{DecrementRemainingSpellUses(oPC,SPELL_SCARE);break;} case 109:{DecrementRemainingSpellUses(oPC,SPELL_SEE_INVISIBILITY);break;} case 110: { DecrementRemainingSpellUses(oPC,SPELL_SHADES_CONE_OF_COLD); DecrementRemainingSpellUses(oPC,SPELL_SHADES_FIREBALL); DecrementRemainingSpellUses(oPC,SPELL_SHADES_STONESKIN); DecrementRemainingSpellUses(oPC,SPELL_SHADES_SUMMON_SHADOW); DecrementRemainingSpellUses(oPC,SPELL_SHADES_WALL_OF_FIRE); break; } case 111: { DecrementRemainingSpellUses(oPC,SPELL_SHADOW_CONJURATION_DARKNESS); DecrementRemainingSpellUses(oPC,SPELL_SHADOW_CONJURATION_INIVSIBILITY); DecrementRemainingSpellUses(oPC,SPELL_SHADOW_CONJURATION_MAGE_ARMOR); DecrementRemainingSpellUses(oPC,SPELL_SHADOW_CONJURATION_MAGIC_MISSILE); DecrementRemainingSpellUses(oPC,SPELL_SHADOW_CONJURATION_SUMMON_SHADOW); break; } case 112:{DecrementRemainingSpellUses(oPC,SPELL_SHAPECHANGE);break;} case 113:{DecrementRemainingSpellUses(oPC,SPELL_SILENCE);break;} case 114:{DecrementRemainingSpellUses(oPC,SPELL_SLEEP);break;} case 115:{DecrementRemainingSpellUses(oPC,SPELL_SLOW);break;} case 116:{DecrementRemainingSpellUses(oPC,SPELL_SOUND_BURST);break;} case 117:{DecrementRemainingSpellUses(oPC,SPELL_SPELL_MANTLE);break;} case 118:{DecrementRemainingSpellUses(oPC,SPELL_STINKING_CLOUD);break;} case 119:{DecrementRemainingSpellUses(oPC,SPELL_STONESKIN);break;} case 120:{DecrementRemainingSpellUses(oPC,SPELL_SUMMON_CREATURE_I);break;} case 121:{DecrementRemainingSpellUses(oPC,SPELL_SUMMON_CREATURE_II);break;} case 122:{DecrementRemainingSpellUses(oPC,SPELL_SUMMON_CREATURE_III);break;} case 123:{DecrementRemainingSpellUses(oPC,SPELL_SUMMON_CREATURE_IV);break;} case 124:{DecrementRemainingSpellUses(oPC,SPELL_SUMMON_CREATURE_IX);break;} case 125:{DecrementRemainingSpellUses(oPC,SPELL_SUMMON_CREATURE_V);break;} case 126:{DecrementRemainingSpellUses(oPC,SPELL_SUMMON_CREATURE_VI);break;} case 127:{DecrementRemainingSpellUses(oPC,SPELL_SUMMON_CREATURE_VII);break;} case 128:{DecrementRemainingSpellUses(oPC,SPELL_SUMMON_CREATURE_VIII);break;} case 129:{DecrementRemainingSpellUses(oPC,SPELL_TENSERS_TRANSFORMATION);break;} case 130:{DecrementRemainingSpellUses(oPC,SPELL_TIME_STOP);break;} case 131:{DecrementRemainingSpellUses(oPC,SPELL_TRUE_SEEING);break;} //Comment this out if you do not wish it to always appear //if (iCheckSpell(oPC,B2,C2,D1,P0,R1,S1,W2)==1) CreateItemOnObject("scribe132",oSelf,1); //Ultravision case 133:{DecrementRemainingSpellUses(oPC,SPELL_VAMPIRIC_TOUCH);break;} case 134:{DecrementRemainingSpellUses(oPC,SPELL_WAIL_OF_THE_BANSHEE);break;} case 135:{DecrementRemainingSpellUses(oPC,SPELL_WALL_OF_FIRE);break;} case 136:{DecrementRemainingSpellUses(oPC,SPELL_WEB);break;} case 137:{DecrementRemainingSpellUses(oPC,SPELL_WEIRD);break;} case 138:{DecrementRemainingSpellUses(oPC,SPELL_CURE_MINOR_WOUNDS);break;} case 139:{DecrementRemainingSpellUses(oPC,SPELL_CURE_LIGHT_WOUNDS);break;} case 140:{DecrementRemainingSpellUses(oPC,SPELL_CURE_MODERATE_WOUNDS);break;} case 141:{DecrementRemainingSpellUses(oPC,SPELL_CURE_SERIOUS_WOUNDS);break;} case 142:{DecrementRemainingSpellUses(oPC,SPELL_FIND_TRAPS);break;} case 143:{DecrementRemainingSpellUses(oPC,SPELL_AID);break;} case 144:{DecrementRemainingSpellUses(oPC,SPELL_AURA_OF_VITALITY);break;} //Comment this out if you do not wish it to always appear //if (iCheckSpell(oPC,B0,C8,D0,P0,R0,S0,W0)==1) CreateItemOnObject("scribe145",oSelf,1); //Aura versus Alignment case 146:{DecrementRemainingSpellUses(oPC,SPELL_AWAKEN);break;} case 147:{DecrementRemainingSpellUses(oPC,SPELL_BARKSKIN);break;} case 148:{DecrementRemainingSpellUses(oPC,SPELL_BLADE_BARRIER);break;} case 149:{DecrementRemainingSpellUses(oPC,SPELL_BLESS);break;} case 150:{DecrementRemainingSpellUses(oPC,SPELL_CALL_LIGHTNING);break;} case 151:{DecrementRemainingSpellUses(oPC,SPELL_CIRCLE_OF_DOOM);break;} case 152:{DecrementRemainingSpellUses(oPC,SPELL_CREATE_GREATER_UNDEAD);break;} case 153:{DecrementRemainingSpellUses(oPC,SPELL_CREATE_UNDEAD);break;} case 154:{DecrementRemainingSpellUses(oPC,SPELL_CREEPING_DOOM);break;} case 155:{DecrementRemainingSpellUses(oPC,SPELL_CURE_CRITICAL_WOUNDS);break;} case 156:{DecrementRemainingSpellUses(oPC,SPELL_DEATH_WARD);break;} case 157:{DecrementRemainingSpellUses(oPC,SPELL_DESTRUCTION);break;} case 158:{DecrementRemainingSpellUses(oPC,SPELL_DIVINE_POWER);break;} case 159:{DecrementRemainingSpellUses(oPC,SPELL_DOMINATE_ANIMAL);break;} case 160:{DecrementRemainingSpellUses(oPC,SPELL_DOOM);break;} case 161:{DecrementRemainingSpellUses(oPC,SPELL_ELEMENTAL_SWARM);break;} case 162:{DecrementRemainingSpellUses(oPC,SPELL_ENERGY_BUFFER);break;} case 163:{DecrementRemainingSpellUses(oPC,SPELL_ENTANGLE);break;} case 164:{DecrementRemainingSpellUses(oPC,SPELL_EVARDS_BLACK_TENTACLES);break;} case 165:{DecrementRemainingSpellUses(oPC,SPELL_FIRE_STORM);break;} case 166:{DecrementRemainingSpellUses(oPC,SPELL_FLAME_LASH);break;} case 167:{DecrementRemainingSpellUses(oPC,SPELL_FLAME_STRIKE);break;} case 168:{DecrementRemainingSpellUses(oPC,SPELL_FREEDOM_OF_MOVEMENT);break;} case 169:{DecrementRemainingSpellUses(oPC,SPELL_HAMMER_OF_THE_GODS);break;} case 170:{DecrementRemainingSpellUses(oPC,SPELL_HARM);break;} case 171:{DecrementRemainingSpellUses(oPC,SPELL_HEAL);break;} case 172:{DecrementRemainingSpellUses(oPC,SPELL_HEALING_CIRCLE);break;} case 173:{DecrementRemainingSpellUses(oPC,SPELL_HOLD_ANIMAL);break;} case 174:{DecrementRemainingSpellUses(oPC,SPELL_ICE_STORM);break;} case 175:{DecrementRemainingSpellUses(oPC,SPELL_IMPLOSION);break;} case 176:{DecrementRemainingSpellUses(oPC,SPELL_INVISIBILITY_PURGE);break;} case 177:{DecrementRemainingSpellUses(oPC,SPELL_LEGEND_LORE);break;} case 178:{DecrementRemainingSpellUses(oPC,SPELL_MASS_HEAL);break;} case 179:{DecrementRemainingSpellUses(oPC,SPELL_NATURES_BALANCE);break;} case 180:{DecrementRemainingSpellUses(oPC,SPELL_NEGATIVE_ENERGY_PROTECTION);break;} case 181:{DecrementRemainingSpellUses(oPC,SPELL_POISON);break;} case 182:{DecrementRemainingSpellUses(oPC,SPELL_PRAYER);break;} case 183:{DecrementRemainingSpellUses(oPC,SPELL_REGENERATE);break;} case 184:{DecrementRemainingSpellUses(oPC,SPELL_REMOVE_FEAR);break;} case 185:{DecrementRemainingSpellUses(oPC,SPELL_REMOVE_PARALYSIS);break;} case 186:{DecrementRemainingSpellUses(oPC,SPELL_SANCTUARY);break;} case 187:{DecrementRemainingSpellUses(oPC,SPELL_SEARING_LIGHT);break;} case 188:{DecrementRemainingSpellUses(oPC,SPELL_SHADOW_SHIELD);break;} case 189:{DecrementRemainingSpellUses(oPC,SPELL_SLAY_LIVING);break;} case 190:{DecrementRemainingSpellUses(oPC,SPELL_SPELL_RESISTANCE);break;} case 191:{DecrementRemainingSpellUses(oPC,SPELL_STORM_OF_VENGEANCE);break;} case 192:{DecrementRemainingSpellUses(oPC,SPELL_SUNBEAM);break;} case 193:{DecrementRemainingSpellUses(oPC,SPELL_VIRTUE);break;} case 194:{DecrementRemainingSpellUses(oPC,SPELL_WAR_CRY);break;} case 195:{DecrementRemainingSpellUses(oPC,SPELL_WORD_OF_FAITH);break;} case 197:{DecrementRemainingSpellUses(oPC,SPELL_ACID_SPLASH);break;} case 198:{DecrementRemainingSpellUses(oPC,SPELL_AMPLIFY);break;} case 199:{DecrementRemainingSpellUses(oPC,SPELL_AURAOFGLORY);break;} case 200:{DecrementRemainingSpellUses(oPC,SPELL_BALAGARNSIRONHORN);break;} case 201:{DecrementRemainingSpellUses(oPC,SPELL_BANE);break;} case 202:{DecrementRemainingSpellUses(oPC,SPELL_BIGBYS_CLENCHED_FIST);break;} case 203:{DecrementRemainingSpellUses(oPC,SPELL_BIGBYS_CRUSHING_HAND);break;} case 204:{DecrementRemainingSpellUses(oPC,SPELL_BIGBYS_FORCEFUL_HAND);break;} case 205:{DecrementRemainingSpellUses(oPC,SPELL_BIGBYS_GRASPING_HAND);break;} case 206:{DecrementRemainingSpellUses(oPC,SPELL_BIGBYS_INTERPOSING_HAND);break;} case 207:{DecrementRemainingSpellUses(oPC,SPELL_BLOOD_FRENZY);break;} case 208:{DecrementRemainingSpellUses(oPC,SPELL_BOMBARDMENT);break;} case 209:{DecrementRemainingSpellUses(oPC,SPELL_CONTINUAL_FLAME);break;} case 210:{DecrementRemainingSpellUses(oPC,SPELL_DIRGE);break;} case 211:{DecrementRemainingSpellUses(oPC,SPELL_DISPLACEMENT);break;} case 212:{DecrementRemainingSpellUses(oPC,SPELL_DIVINE_FAVOR);break;} case 213:{DecrementRemainingSpellUses(oPC,SPELL_DIVINE_MIGHT);break;} case 214:{DecrementRemainingSpellUses(oPC,SPELL_DROWN);break;} case 215:{DecrementRemainingSpellUses(oPC,SPELL_ELECTRIC_JOLT);break;} case 216:{DecrementRemainingSpellUses(oPC,SPELL_ENTROPIC_SHIELD);break;} case 217:{DecrementRemainingSpellUses(oPC,SPELL_EXPEDITIOUS_RETREAT);break;} case 218:{DecrementRemainingSpellUses(oPC,SPELL_FIREBRAND);break;} case 219:{DecrementRemainingSpellUses(oPC,SPELL_FLARE);break;} case 220:{DecrementRemainingSpellUses(oPC,SPELL_FLESH_TO_STONE);break;} case 221:{DecrementRemainingSpellUses(oPC,SPELL_GREATER_MAGIC_FANG);break;} //Comment this line out if you do not wish this spell to always appear in the scribe's list //if (iCheckSpell(oPC,B0,C6,D0,P0,R0,S8,W8)==1) CreateItemOnObject("scribe222",oSelf,1); //Greater Sanctuary case 223:{DecrementRemainingSpellUses(oPC,SPELL_GUST_OF_WIND);break;} case 224:{DecrementRemainingSpellUses(oPC,SPELL_INFERNO);break;} case 225:{DecrementRemainingSpellUses(oPC,SPELL_INFLICT_CRITICAL_WOUNDS);break;} case 226:{DecrementRemainingSpellUses(oPC,SPELL_INFLICT_LIGHT_WOUNDS);break;} case 227:{DecrementRemainingSpellUses(oPC,SPELL_INFLICT_MINOR_WOUNDS);break;} case 228:{DecrementRemainingSpellUses(oPC,SPELL_INFLICT_MODERATE_WOUNDS);break;} case 229:{DecrementRemainingSpellUses(oPC,SPELL_INFLICT_SERIOUS_WOUNDS);break;} case 230:{DecrementRemainingSpellUses(oPC,SPELL_ISAACS_LESSER_MISSILE_STORM);break;} case 231:{DecrementRemainingSpellUses(oPC,SPELL_ISAACS_GREATER_MISSILE_STORM);break;} case 232:{DecrementRemainingSpellUses(oPC,SPELL_MAGIC_FANG);break;} case 233:{DecrementRemainingSpellUses(oPC,SPELL_MASS_CAMOFLAGE);break;} case 234:{DecrementRemainingSpellUses(oPC,SPELL_ONE_WITH_THE_LAND);break;} //Comment this line out if you do not wish this spell to always appear in the scribe's list //if (iCheckSpell(oPC,B0,C0,D5,P0,R0,S0,W0)==1) CreateItemOnObject("scribe235",oSelf,1); //Owl's Insight (#235) case 236:{DecrementRemainingSpellUses(oPC,SPELL_PLANAR_ALLY);break;} case 237:{DecrementRemainingSpellUses(oPC,SPELL_QUILLFIRE);break;} case 238:{DecrementRemainingSpellUses(oPC,SPELL_SHIELD);break;} case 239:{DecrementRemainingSpellUses(oPC,SPELL_SHIELD_OF_FAITH);break;} case 240:{DecrementRemainingSpellUses(oPC,SPELL_SPIKE_GROWTH);break;} case 241:{DecrementRemainingSpellUses(oPC,SPELL_STONE_TO_FLESH);break;} case 242:{DecrementRemainingSpellUses(oPC,SPELL_SUNBURST);break;} case 243:{DecrementRemainingSpellUses(oPC,SPELL_TASHAS_HIDEOUS_LAUGHTER);break;} case 244:{DecrementRemainingSpellUses(oPC,SPELL_TRUE_STRIKE);break;} case 245:{DecrementRemainingSpellUses(oPC,SPELL_UNDEATHS_ETERNAL_FOE);break;} case 246:{DecrementRemainingSpellUses(oPC,SPELL_WOUNDING_WHISPERS);break;} default:{break;} } } string CustomComponent(int iSpellNum) { //Add your own special component here //format of the command is: //case 1:{sComponent3="ComponentItemTag";break;} // string sComponent3; switch (iSpellNum) { case 1:{sComponent3="";break;} case 2:{sComponent3="";break;} case 3:{sComponent3="";break;} case 4:{sComponent3="";break;} case 5:{sComponent3="";break;} case 6:{sComponent3="";break;} case 7:{sComponent3="";break;} case 8:{sComponent3="";break;} case 9:{sComponent3="";break;} case 10:{sComponent3="";break;} case 11:{sComponent3="";break;} case 12:{sComponent3="";break;} case 13:{sComponent3="";break;} case 14:{sComponent3="";break;} case 15:{sComponent3="";break;} case 16:{sComponent3="";break;} case 17:{sComponent3="";break;} case 18:{sComponent3="";break;} case 19:{sComponent3="";break;} case 20:{sComponent3="";break;} case 21:{sComponent3="";break;} case 22:{sComponent3="";break;} case 23:{sComponent3="";break;} case 24:{sComponent3="";break;} case 25:{sComponent3="";break;} case 26:{sComponent3="";break;} case 27:{sComponent3="";break;} case 28:{sComponent3="";break;} case 29:{sComponent3="";break;} case 30:{sComponent3="";break;} case 31:{sComponent3="";break;} case 32:{sComponent3="";break;} case 33:{sComponent3="";break;} case 34:{sComponent3="";break;} case 35:{sComponent3="";break;} case 36:{sComponent3="";break;} case 37:{sComponent3="";break;} case 38:{sComponent3="";break;} case 39:{sComponent3="";break;} case 40:{sComponent3="";break;} case 41:{sComponent3="";break;} case 42:{sComponent3="";break;} case 43:{sComponent3="";break;} case 44:{sComponent3="";break;} case 45:{sComponent3="";break;} case 46:{sComponent3="";break;} case 47:{sComponent3="";break;} case 48:{sComponent3="";break;} case 49:{sComponent3="";break;} case 50:{sComponent3="";break;} case 51:{sComponent3="";break;} case 52:{sComponent3="";break;} case 53:{sComponent3="";break;} case 54:{sComponent3="";break;} case 55:{sComponent3="";break;} case 56:{sComponent3="";break;} case 57:{sComponent3="";break;} case 58:{sComponent3="";break;} case 59:{sComponent3="";break;} case 60:{sComponent3="";break;} case 61:{sComponent3="";break;} case 62:{sComponent3="";break;} case 63:{sComponent3="";break;} case 64:{sComponent3="";break;} case 65:{sComponent3="";break;} case 66:{sComponent3="";break;} case 67:{sComponent3="";break;} case 68:{sComponent3="";break;} case 69:{sComponent3="";break;} case 70:{sComponent3="";break;} case 71:{sComponent3="";break;} case 72:{sComponent3="";break;} case 73:{sComponent3="";break;} case 74:{sComponent3="";break;} case 75:{sComponent3="";break;} case 76:{sComponent3="";break;} case 77:{sComponent3="";break;} case 78:{sComponent3="";break;} case 79:{sComponent3="";break;} case 80:{sComponent3="";break;} case 81:{sComponent3="";break;} case 82:{sComponent3="";break;} case 83:{sComponent3="";break;} case 84:{sComponent3="";break;} case 85:{sComponent3="";break;} case 86:{sComponent3="";break;} case 87:{sComponent3="";break;} case 88:{sComponent3="";break;} case 89:{sComponent3="";break;} case 90:{sComponent3="";break;} case 91:{sComponent3="";break;} case 92:{sComponent3="";break;} case 93:{sComponent3="";break;} case 94:{sComponent3="";break;} case 95:{sComponent3="";break;} case 96:{sComponent3="";break;} case 97:{sComponent3="";break;} case 98:{sComponent3="";break;} case 99:{sComponent3="";break;} case 100:{sComponent3="";break;} case 101:{sComponent3="";break;} case 102:{sComponent3="";break;} case 103:{sComponent3="";break;} case 104:{sComponent3="";break;} case 105:{sComponent3="";break;} case 106:{sComponent3="";break;} case 107:{sComponent3="";break;} case 108:{sComponent3="";break;} case 109:{sComponent3="";break;} case 110:{sComponent3="";break;} case 111:{sComponent3="";break;} case 112:{sComponent3="";break;} case 113:{sComponent3="";break;} case 114:{sComponent3="";break;} case 115:{sComponent3="";break;} case 116:{sComponent3="";break;} case 117:{sComponent3="";break;} case 118:{sComponent3="";break;} case 119:{sComponent3="";break;} case 120:{sComponent3="";break;} case 121:{sComponent3="";break;} case 122:{sComponent3="";break;} case 123:{sComponent3="";break;} case 124:{sComponent3="";break;} case 125:{sComponent3="";break;} case 126:{sComponent3="";break;} case 127:{sComponent3="";break;} case 128:{sComponent3="";break;} case 129:{sComponent3="";break;} case 130:{sComponent3="";break;} case 131:{sComponent3="";break;} case 132:{sComponent3="";break;} case 133:{sComponent3="";break;} case 134:{sComponent3="";break;} case 135:{sComponent3="";break;} case 136:{sComponent3="";break;} case 137:{sComponent3="";break;} case 138:{sComponent3="";break;} case 139:{sComponent3="";break;} case 140:{sComponent3="";break;} case 141:{sComponent3="";break;} case 142:{sComponent3="";break;} case 143:{sComponent3="";break;} case 144:{sComponent3="";break;} case 145:{sComponent3="";break;} case 146:{sComponent3="";break;} case 147:{sComponent3="";break;} case 148:{sComponent3="";break;} case 149:{sComponent3="";break;} case 150:{sComponent3="";break;} case 151:{sComponent3="";break;} case 152:{sComponent3="";break;} case 153:{sComponent3="";break;} case 154:{sComponent3="";break;} case 155:{sComponent3="";break;} case 156:{sComponent3="";break;} case 157:{sComponent3="";break;} case 158:{sComponent3="";break;} case 159:{sComponent3="";break;} case 160:{sComponent3="";break;} case 161:{sComponent3="";break;} case 162:{sComponent3="";break;} case 163:{sComponent3="";break;} case 164:{sComponent3="";break;} case 165:{sComponent3="";break;} case 166:{sComponent3="";break;} case 167:{sComponent3="";break;} case 168:{sComponent3="";break;} case 169:{sComponent3="";break;} case 170:{sComponent3="";break;} case 171:{sComponent3="";break;} case 172:{sComponent3="";break;} case 173:{sComponent3="";break;} case 174:{sComponent3="";break;} case 175:{sComponent3="";break;} case 176:{sComponent3="";break;} case 177:{sComponent3="";break;} case 178:{sComponent3="";break;} case 179:{sComponent3="";break;} case 180:{sComponent3="";break;} case 181:{sComponent3="";break;} case 182:{sComponent3="";break;} case 183:{sComponent3="";break;} case 184:{sComponent3="";break;} case 185:{sComponent3="";break;} case 186:{sComponent3="";break;} case 187:{sComponent3="";break;} case 188:{sComponent3="";break;} case 189:{sComponent3="";break;} case 190:{sComponent3="";break;} case 191:{sComponent3="";break;} case 192:{sComponent3="";break;} case 193:{sComponent3="";break;} case 194:{sComponent3="";break;} case 195:{sComponent3="";break;} case 196:{sComponent3="";break;} case 197:{sComponent3="";break;} case 198:{sComponent3="";break;} case 199:{sComponent3="";break;} case 200:{sComponent3="";break;} case 201:{sComponent3="";break;} case 202:{sComponent3="";break;} case 203:{sComponent3="";break;} case 204:{sComponent3="";break;} case 205:{sComponent3="";break;} case 206:{sComponent3="";break;} case 207:{sComponent3="";break;} case 208:{sComponent3="";break;} case 209:{sComponent3="";break;} case 210:{sComponent3="";break;} case 211:{sComponent3="";break;} case 212:{sComponent3="";break;} case 213:{sComponent3="";break;} case 214:{sComponent3="";break;} case 215:{sComponent3="";break;} case 216:{sComponent3="";break;} case 217:{sComponent3="";break;} case 218:{sComponent3="";break;} case 219:{sComponent3="";break;} case 220:{sComponent3="";break;} case 221:{sComponent3="";break;} case 222:{sComponent3="";break;} case 223:{sComponent3="";break;} case 224:{sComponent3="";break;} case 225:{sComponent3="";break;} case 226:{sComponent3="";break;} case 227:{sComponent3="";break;} case 228:{sComponent3="";break;} case 229:{sComponent3="";break;} case 230:{sComponent3="";break;} case 231:{sComponent3="";break;} case 232:{sComponent3="";break;} case 233:{sComponent3="";break;} case 234:{sComponent3="";break;} case 235:{sComponent3="";break;} case 236:{sComponent3="";break;} case 237:{sComponent3="";break;} case 238:{sComponent3="";break;} case 239:{sComponent3="";break;} case 240:{sComponent3="";break;} case 241:{sComponent3="";break;} case 242:{sComponent3="";break;} case 243:{sComponent3="";break;} case 244:{sComponent3="";break;} case 245:{sComponent3="";break;} case 246:{sComponent3="";break;} default:{sComponent3="";break;} } return sComponent3; }