Would it be possible to allow amulets to merge with all forms like armour, shields and helmets? Since amulets are the only place where both wisdom and druid spells are found you can lose quite a few spells when you shift and your amulet bonuses vanish.
Its not so much the loss of spells that is the problem but having to reassign all those spell slots after every shift is quite tedious.
I very much doubt that allowing druids and shifters to keep the wisdom and spell bonuses when shifted will cause any problems, even if they do have monk levels that allow their wisdom to improve AC. It would however alleviate a lot of frustration from constantly reassigning spells.
(I realise this will not help at the moment with the "loss of merged items" bug but that is apparently slated as a fix in the next Bioware patch.)
Amulet Merge for Shifting
- AlienOverlord
- Pk Bait
- Posts: 87
- Joined: Mon May 31, 2004 8:01 pm
Even forms that merge amulets will have this problem as you unequip and re-equip it when you shift. One solution would be to give a temp wis bonus to people who are shifting, something that nly lasts 1/2 second. Another is to cast wis boosting spells before shifting (for a druid this means being level 9 at least).
While a good solution it'll still run into the +12 wall that currently exists for ability score modifications.
The only sure-fire, but extremely ugly, solution would be to figure out which spell levels will be lost on the un/re-equipping of Wis items and then apply those bonus spell slots to the hide item and then removing those bonus slots once the change is done.
But if that isn't brute-force programming, I don't know what is. Ouch.
The only sure-fire, but extremely ugly, solution would be to figure out which spell levels will be lost on the un/re-equipping of Wis items and then apply those bonus spell slots to the hide item and then removing those bonus slots once the change is done.
But if that isn't brute-force programming, I don't know what is. Ouch.
Nah..what you'd probably have to do is setup a dynamic link library upon shifting (which is incredibly ridiculous) then assign each lost spell (through a check of the wis before and after the shift) to a slot in the link library. Then when the char unshifts, that char would ahve those spells back.
Snags?
First of all, you'd have to write code for used up or not used up spells that where lost from the shift (potential crash)
next, hope you like writing dynamic libraries, cause as of yet, they all aren't fun to make in coding (from what I know at least)
Run a risk of making a memory leak for NS players (I think)
There really isn't a way to solve this problem from what I know using SotU. If you had HotU, you could just sequence the defensive spells, into an item and put all your offensive spells that you might have lost to the right in your spellbook (spells you lose are always at the far left of your spell slot rows). However, I doubt that would work with NS4.
Satantrik is right...lots of programming for next to no return. Its harsh, but i doubt this one will be fixed.
Snags?
First of all, you'd have to write code for used up or not used up spells that where lost from the shift (potential crash)
next, hope you like writing dynamic libraries, cause as of yet, they all aren't fun to make in coding (from what I know at least)
Run a risk of making a memory leak for NS players (I think)
There really isn't a way to solve this problem from what I know using SotU. If you had HotU, you could just sequence the defensive spells, into an item and put all your offensive spells that you might have lost to the right in your spellbook (spells you lose are always at the far left of your spell slot rows). However, I doubt that would work with NS4.
Satantrik is right...lots of programming for next to no return. Its harsh, but i doubt this one will be fixed.
I've tried fire, i've tried faith, and i've tried force, all I have left is hope.
Hehe, I have the same problem and often have to rest twice because I forget to setup the spells after being shifted
I guess it is ok as the bonus spell amulets actually lets your druid/shifter cast higher spell levels than he was supposed according to his druid levels. The benefit is huge compared to the problem with rearranging your spells everytime you have shifted and need to rest.
/Hallux
I guess it is ok as the bonus spell amulets actually lets your druid/shifter cast higher spell levels than he was supposed according to his druid levels. The benefit is huge compared to the problem with rearranging your spells everytime you have shifted and need to rest.
/Hallux
LOL @ .dll's...
Well, yet another problem that can not be solved. I've started to look at some of the internal code for spells and whatnot and - surprise - there is no way to "type" bonuses for saves, AB, damage, skill checks. AC seems to be the only stat with hard-coded "type" bonuses. The cleric stacking problem seems a lot more difficult to solve in addition to problems like this.
I think a bonus spell slot solution could work because, AFAIK, there is no limit to the number of bonus slots you can add. The bonus spells from ability scores is logarithmic and finding the difference in bonus spell slots could be done with a simple loop with an array...this is just off the top of my head in pseudo-shorthand-C...
// we'll need to write the actual function if it doesn't exist that will return the bonus slots for a given spell level at a particular ability score level
int bonus_slots (int spell_level, int ability_score)
int wis0 = Wisdom with all items
int wis1 = Wisdom with no items
int loop // generic looping integer
//If arrays can be done in-script...
slots0 = array (0...9) // bonus slots from Wisdom with alll items
slots1 = array (0...9) // bonus slots from Wisdom with no items
slots2 = array (0...9) // difference in slots...we return this at end of function
// process bonus slots
// store bonus slots from Wisdom WITH items here
do
{
slots0 {loop} = bonus_slots (loop, wis0)
loop = loop++
}
while (loop < 10)
loop = 0 // clear counter
// store bonus slots from Wisdom with NO items here
do
{
slots1 {loop} = bonus_slots (loop, wis1)
loop = loop++
}
while (loop < 10)
loop = 0 // clear counter
// process difference
do
{
slots2 {loop} = slots0 {loop} - slots1 {loop}
}
while (loop < 10)
// viola!! return the array
returns slots2
...
You would then use the returned array to add bonus slots to the hide item. Because there may be no way to store this array, you may have to run the function again AFTER shiting to remove the correct bonus slots as items that add bonus slots may be equipped as well.
Speaking of which, do items that give bonus slots cause the same problems for shifters?
Well, yet another problem that can not be solved. I've started to look at some of the internal code for spells and whatnot and - surprise - there is no way to "type" bonuses for saves, AB, damage, skill checks. AC seems to be the only stat with hard-coded "type" bonuses. The cleric stacking problem seems a lot more difficult to solve in addition to problems like this.
I think a bonus spell slot solution could work because, AFAIK, there is no limit to the number of bonus slots you can add. The bonus spells from ability scores is logarithmic and finding the difference in bonus spell slots could be done with a simple loop with an array...this is just off the top of my head in pseudo-shorthand-C...
// we'll need to write the actual function if it doesn't exist that will return the bonus slots for a given spell level at a particular ability score level
int bonus_slots (int spell_level, int ability_score)
int wis0 = Wisdom with all items
int wis1 = Wisdom with no items
int loop // generic looping integer
//If arrays can be done in-script...
slots0 = array (0...9) // bonus slots from Wisdom with alll items
slots1 = array (0...9) // bonus slots from Wisdom with no items
slots2 = array (0...9) // difference in slots...we return this at end of function
// process bonus slots
// store bonus slots from Wisdom WITH items here
do
{
slots0 {loop} = bonus_slots (loop, wis0)
loop = loop++
}
while (loop < 10)
loop = 0 // clear counter
// store bonus slots from Wisdom with NO items here
do
{
slots1 {loop} = bonus_slots (loop, wis1)
loop = loop++
}
while (loop < 10)
loop = 0 // clear counter
// process difference
do
{
slots2 {loop} = slots0 {loop} - slots1 {loop}
}
while (loop < 10)
// viola!! return the array
returns slots2
...
You would then use the returned array to add bonus slots to the hide item. Because there may be no way to store this array, you may have to run the function again AFTER shiting to remove the correct bonus slots as items that add bonus slots may be equipped as well.
Speaking of which, do items that give bonus slots cause the same problems for shifters?
Yes they do...because the item is technically taken off when transformed, and then when they go back it is re-equipped...or at least taht was how it worked 2 months ago.
Even if hte item melded, the items effects stop working, which means you lose the slots until you transform back to human.
Even if hte item melded, the items effects stop working, which means you lose the slots until you transform back to human.
I've tried fire, i've tried faith, and i've tried force, all I have left is hope.
They wouldn't hit the +12 wall, since you can only get +5 wisdom from items. And only extra slots from that permanent wisdom buff count when you rest. Thus if you have druid 10 and cast owl's insight for 5 more wisdom, you wouldn't lose any slots. Of course if you use ammy that gives slots directly then it can't be helped with this.