how to get spell info and/or class use limitation type from a scroll?
Calgacus
Member Posts: 273
Hi,
I am just modding the legend lore spell and one effect I want it to have is to remove any class use limitations from arcane scrolls. How can I determine if the scroll has an arcane spell or a Wizard class use limitation?
I am just modding the legend lore spell and one effect I want it to have is to remove any class use limitations from arcane scrolls. How can I determine if the scroll has an arcane spell or a Wizard class use limitation?
0
Comments
You are right about that but what I want to do is change the Legend Lore spell. I want the spell to remove class use limitations on arcane scrolls. The idea is to
A: give the Legend Lore spell something useful to do and
B: to have a way in the game for non-casters to use arcane scrolls when really needed but at a price. A fighter for example might have to make nice with a grumpy wizard and pay to remove the class use restriction removed from some scrolls he found. I only want this to work for arcane scrolls though and to cost according to the level of the spell and caster level of the scroll. I will also need to make the spell target an item/object so I can have it run any other effect I want relating to the given target.
However, given the way UMD works I guess it might make sense to drop the "only arcane" requirement as my motive for that rule is just that I don't like the idea of an evil character who worships the Norse God of Evil Darkness using a scroll created by a good cleric of the Egyptian God of Good Lightness. I would prefer if Divine scrolls did not work with UMD or Legend Lore. But then I guess I would want to expand that rule to include other magic items of a divine-magic nature. Not sure how to do that and therefore might end up with an inconsistently applied rule.
On a related note I also want to tweak the Identify spell so it applies to a single item or object and maybe not give the Lore bonus. I guess I will make it give a small fixed (+5 maybe) Lore bonus if triggered from Potion of Lore or targeted on a character - might be useful to cast on the parties designated item identifier for example.
But as for identifying items, you can change the spell in the 2da file so that it's cast on an object instead of self-only, and then change the coding so that if it's cast on self it behaves as normal, but if it's cast on an item it sets the item identified flag.
Alternatively, if you don't want to fiddle with the Identify spell, you can give the player a custom object which can "Cast Spell" on an item and which then identifies the item.
itemproperty ip = GetFirstItemProperty(oItem); int found = FALSE; while (GetIsItemPropertyValid(ip)) // valid ip? { // same property type? if ((GetItemPropertyType(ip) == ITEM_PROPERTY_USE_LIMITATION_CLASS)) { SpeakString("has sub-property == "+ IntToString(GetItemPropertySubType(ip))); if (GetItemPropertySubType(ip) == IP_CONST_CLASS_WIZARD) { SpeakString("has sub-property wizard " ); found = TRUE; } if (GetItemPropertySubType(ip) == IP_CONST_CLASS_SORCERER) { SpeakString("has sub-property sorc " ); found = TRUE; } if (GetItemPropertySubType(ip) == IP_CONST_CLASS_BARD) { SpeakString("has sub-property bard " ); found = TRUE; } if (GetItemPropertySubType(ip) == IP_CONST_CLASS_CLERIC) { SpeakString("has sub-property cleric " ); } if (GetItemPropertySubType(ip) == IP_CONST_CLASS_DRUID) { SpeakString("has sub-property druid " ); } if (GetItemPropertySubType(ip) == IP_CONST_CLASS_PALADIN ) { SpeakString("has sub-property paladin " ); } if (GetItemPropertySubType(ip) == IP_CONST_CLASS_RANGER) { SpeakString("has sub-property ranger " ); } if(found){ RemoveItemProperty( oItem, ip); } } ip = GetNextItemProperty(oItem); }