Special Ability
#1
Posté 22 août 2011 - 01:32
#2
Posté 22 août 2011 - 02:39
It has one downside that this caster level applies only to damage/duration its not "true" caster level so it cannot pierce monk's SR. SR from items is pierced via this.
#3
Posté 22 août 2011 - 02:57
#4
Posté 22 août 2011 - 03:01
#5
Posté 22 août 2011 - 06:41
ShaDoOoW wrote...
Yes. My unofficial patch allows to override caster level of all special abilities via variable on creature.
It has one downside that this caster level applies only to damage/duration its not "true" caster level so it cannot pierce monk's SR. SR from items is pierced via this.
Yep, editing iprp_spells.2da is the way to assign a specific caster level to a spell for all purposes. This being achieved through an item; however it only goes by what it is set to. To be able to change between settings requires using different rows in the 2da by changing the cast spell item property.
#6
Posté 23 août 2011 - 07:09
No. So I understood it that he speaking about NPC. If you make NPC with any special ability max lvl you can set for this ability is 15. My patch allows (atm only globally for all abilities) override this number by higher number or lower number (advantage is that lowered number has still default number as caster level for SR purposes, only dmg/duration changes, if the overriden level is higher it works like it should except monk SR (engine limitation)).Xardex wrote...
Wait what, now you can have special abilities on PCs?
This changes globally the caster level of spell at item. Im not sure if the OP ask for this. Anyway my patch also allows to change caster level at item, the advantage is that default level can stay the same and it only applies for specific item (all spells on that item). If you change it via this 2da all these spells on all items will have this caster level.WhiZard wrote...
Yep, editing iprp_spells.2da is the way
to assign a specific caster level to a spell for all purposes. This
being achieved through an item; however it only goes by what it is set
to. To be able to change between settings requires using different rows
in the 2da by changing the cast spell item property.
#7
Posté 23 août 2011 - 08:25
Funky
#8
Posté 23 août 2011 - 08:43
ShaDoOoW wrote...
This changes globally the caster level of spell at item. Im not sure if the OP ask for this. Anyway my patch also allows to change caster level at item, the advantage is that default level can stay the same and it only applies for specific item (all spells on that item). If you change it via this 2da all these spells on all items will have this caster level.
I was suggesting adding lines so you could have:
Enervation (level 1)
Enervation (level 2)
etc.
and then whenever the item spell needs its caster level changed, simply delete the enervation item property and replace it with another item property casting of the same spell. This would typically make more sense for unique powers.
----
Giventhe monk SR issue in your approach, I assume what you are doing with special abilities is to give the target(s) a temporary SR boost/decrease in relation to the caster level change which will dissipate shortly after the spell script fires.
Modifié par WhiZard, 23 août 2011 - 08:47 .
#9
Posté 24 août 2011 - 06:54
yes exactly, however I cant imagine your solution in practice. First it does not solve caster level of creature abilities it can be applied only for spells cast from items. Second it does require tremedous ammount of work and new lines in TLK (which is something I tried to avoid in my patch) and it wouldnt be compatible with many custom content like PRC - uses these lines for theirs spells. Third it makes total mess in the cast spell item property window, if there would be each spell 40times...WhiZard wrote...
Giventhe monk SR issue in your approach, I assume what you are doing with special abilities is to give the target(s) a temporary SR boost/decrease in relation to the caster level change which will dissipate shortly after the spell script fires.
My solution isnt perfect but allows to raise caster level even much higher. And I was thinking about workaround that would solved the issue with monk SR. Also it would be possible to set the caster level override for each spell on item itself, I havent done this yea because I havent found an easy and userfriendly solution so far.
#10
Posté 24 août 2011 - 08:42
Modifié par GhostOfGod, 24 août 2011 - 08:42 .
#11
Posté 24 août 2011 - 12:55
ShaDoOoW wrote...
My solution isnt perfect but allows to raise caster level even much higher. And I was thinking about workaround that would solved the issue with monk SR. Also it would be possible to set the caster level override for each spell on item itself, I havent done this yea because I havent found an easy and userfriendly solution so far.
I wasn't claiming it to be an efficient way. I was claiming it to be the only way to adjust caster level in all respects. There are many shorter approaches (like yours) that will, however, miss a little when trying to adjust caster level. However, my approach may show some efficiency if I am using it for a specific unique power only.
Modifié par WhiZard, 24 août 2011 - 12:57 .
#12
Posté 24 août 2011 - 01:04
GhostOfGod wrote...
This might be a bit of a sloppy approach but would it be possible to spawn an invisible creature at the PCs location and then have the PC cast a fake spell and the invisible creature cast the actual spell? Then just destroy the invis creature after the spell is cast? Just an idea. Haven't actually tried it.
You can't counter a fake spell. And cheat cast spells (what the invisible creature would likely cast) have a caster level equal to 2*innate level - 1 (minimum 10).
#13
Posté 24 août 2011 - 01:09
ShaDoOoW wrote...
yes exactly, however I cant imagine your solution in practice. First it does not solve caster level of creature abilities it can be applied only for spells cast from items. Second it does require tremedous ammount of work and new lines in TLK (which is something I tried to avoid in my patch) and it wouldnt be compatible with many custom content like PRC - uses these lines for theirs spells. Third it makes total mess in the cast spell item property window, if there would be each spell 40times...WhiZard wrote...
Giventhe monk SR issue in your approach, I assume what you are doing with special abilities is to give the target(s) a temporary SR boost/decrease in relation to the caster level change which will dissipate shortly after the spell script fires.
My solution isnt perfect but allows to raise caster level even much higher. And I was thinking about workaround that would solved the issue with monk SR. Also it would be possible to set the caster level override for each spell on item itself, I havent done this yea because I havent found an easy and userfriendly solution so far.
TLK lines would be reused rather than have new ones added (remember spells.2da already has these lines). Creatures can be given their special abilities by local variables and then make use of them through items. So yes it can work on a few select monster abilities, adjusting caster level in all instances. The question as to how efficient it is, is a completely different matter.
#14
Posté 24 août 2011 - 01:31
I cannot see how this solves anything. Except this its extremely lame solution, pardon me for that expression but since you can adjust the caster level in script like I did (with only one downside which is very rare to occur) using some kind of faking via invisible creature is just useless. Except the issues WhiZard already stated Im not very sure how would you synchronize it so it would look as real spell + spawning invisible creature every time... baadGhostOfGod wrote...
This might be a bit of a sloppy
approach but would it be possible to spawn an invisible creature at the
PCs location and then have the PC cast a fake spell and the invisible
creature cast the actual spell? Then just destroy the invis creature
after the spell is cast? Just an idea. Haven't actually tried
it.
And this claim is wrong too. There is much more solutions, I just realized another one and Im pretty sure NWNX can do this too.WhiZard wrote...
I was claiming it to be the only way to adjust caster level in all respects.
Re-using TLK lines doesnt solve the issue I had in mind which is that those without the changed TLK sill be gibberlish instead.
Giving special abilities to the monsters on skin or other item seems very user unfriendly to me and I doubt that AI can even use them and if does that definitely not the same way as before as item powers are later in AI code.
If you use it for specific purpose like item caster level it might be a good solution. But it cant be a solution for monster's special abilities.
EDIT: just realized my new idea has the same downside as yours as its a combo of both my and yours idea (make caster lvl at 40 by default and then decrease it via script and SR increase effect on monsters) so I will stick with current solution
Modifié par ShaDoOoW, 24 août 2011 - 01:37 .
#15
Posté 24 août 2011 - 01:43
#16
Posté 24 août 2011 - 02:22
#17
Posté 24 août 2011 - 03:13
Wow. Since when is this forum in the business of putting peoples IDEAS down so negatively.ShaDoOoW wrote...
IGhostOfGod wrote...
This might be a bit of a sloppy
approach but would it be possible to spawn an invisible creature at the
PCs location and then have the PC cast a fake spell and the invisible
creature cast the actual spell? Then just destroy the invis creature
after the spell is cast? Just an idea. Haven't actually tried
it.
cannot see how this solves anything. Except this its extremely lame
solution, pardon me for that expression but since you can adjust the
caster level in script like I did (with only one downside which is very
rare to occur) using some kind of faking via invisible creature is just
useless. Except the issues WhiZard already stated Im not very sure how
would you synchronize it so it would look as real spell + spawning
invisible creature every time...baad
Modifié par GhostOfGod, 24 août 2011 - 03:20 .
#18
Posté 24 août 2011 - 03:36
#19
Posté 24 août 2011 - 08:58
I wasn't planning on changing TLK in the first place.ShaDoOoW wrote...
Re-using TLK lines doesnt solve the issue I had in mind which is that those without the changed TLK sill be gibberlish instead.
EDIT: just realized my new idea has the same downside as yours as its a combo of both my and yours idea (make caster lvl at 40 by default and then decrease it via script and SR increase effect on monsters) so I will stick with current solution
You do realize your current solution would still have issues with creatures with both a SR increase effect and an SR decrease effect.
What is very time consuming and may require many computers to accomplish is to try to locate the local integer on a creature that stores the caster level (due to the way caster level works, I'm pretty sure it is done this way). Once the local integer is located, all one has to do is use SetLocalInteger() and the whole caster level issue is solved.
Modifié par WhiZard, 24 août 2011 - 08:58 .
#20
Posté 25 août 2011 - 03:54
Then what were you planning? You specifically said:WhiZard wrote...
I wasn't planning on changing TLK in the first place.ShaDoOoW wrote...
Re-using TLK lines doesnt solve the issue I had in mind which is that those without the changed TLK sill be gibberlish instead.
I was suggesting adding lines so you could have:
Enervation (level 1)
Enervation (level 2)
etc.
how you want to do this without changing TLK or making custom TLK? Im lost.
No I dont realize that, what you mean?You do realize your current solution would still have issues with creatures with both a SR increase effect and an SR decrease effect.
What is very time consuming and may require many computers to accomplish is to try to locate the local integer on a creature that stores the caster level (due to the way caster level works, I'm pretty sure it is done this way). Once the local integer is located, all one has to do is use SetLocalInteger() and the whole caster level issue is solved.
Also dont understand what you point with local variables, but instead of guessing you could maybe download my patch and read readme? -> yes for overriding caster level I use local variable on creature/item but still can't see what you mean.
#21
Posté 25 août 2011 - 04:54
The only lines added are to iprp_spells.2da. They will reference the same tlk lines as the spell. Thus ingame it will look like nothing happened (the item property switched from cast:spell enervation to cast:spell enervation) only the caster level changed.ShaDoOoW wrote...
Then what were you planning? You specifically said:WhiZard wrote...
I wasn't planning on changing TLK in the first place.ShaDoOoW wrote...
Re-using TLK lines doesnt solve the issue I had in mind which is that those without the changed TLK sill be gibberlish instead.
I was suggesting adding lines so you could have:
Enervation (level 1)
Enervation (level 2)
etc.
how you want to do this without changing TLK or making custom TLK? Im lost.
No I dont realize that, what you mean?
You do realize your current solution would still have issues with creatures with both a SR increase effect and an SR decrease effect.
What is very time consuming and may require many computers to accomplish is to try to locate the local integer on a creature that stores the caster level (due to the way caster level works, I'm pretty sure it is done this way). Once the local integer is located, all one has to do is use SetLocalInteger() and the whole caster level issue is solved.
Also dont understand what you point with local variables, but instead of guessing you could maybe download my patch and read readme? -> yes for overriding caster level I use local variable on creature/item but still can't see what you mean.
The above two points are separate and I will address them in order.
1) SR decreases do not stack. Thus to effectively decrease SR on a creature with nature's balance or breach reductions you will need to add the amount you wish to reduce to the amount of the highest SR decrease effect and apply that as one effect. Unfortunately only a 3rd party utility can get the SR decrease amount from an effect, and then it has to go through all the SR decrease effects to determine which is used as the highest.
2) The game likely stores caster level as a local integer, and GetCasterLevel() is likely used to retreive that integer. Thus finding which local integer it is may allow for a very easy way to create a SetCasterLevel() function.
#22
Posté 25 août 2011 - 05:13
SR decrease: Didnt know but its workadoundable. You can set the ammount of the spell decrease into variable when applying from the spellscripts. OK thanks, ill fix this issue. It cannot work with any CC but thats acceptable price
CasterLevel: no you are wrong, the game stores as variables only few informations .like mappins. Caster level is function that calculates it every time you call it. Its not stored anywhere, if it would then you could find it when you save module and open it. Or for PCs there is a method how to loop all variables on him via nwnx, I already try it on every object in game mainly encounters but except mappins, there is nothing stored in locals AFAI-and my friends-K.
#23
Posté 25 août 2011 - 05:26
ShaDoOoW wrote...
CasterLevel: no you are wrong, the game stores as variables only few informations .like mappins. Caster level is function that calculates it every time you call it. Its not stored anywhere, if it would then you could find it when you save module and open it. Or for PCs there is a method how to loop all variables on him via nwnx, I already try it on every object in game mainly encounters but except mappins, there is nothing stored in locals AFAI-and my friends-K.
It doesn't recalculate at call. Try with area of effects and unrelated scripts and you will see it just keeps returning the same number until you cast another spell, in which case it will keep on returning the caster level of the next spell. There is information stored in relation to your character and all the noticable calls to set it are hardcoded.
#24
Posté 25 août 2011 - 06:05
#25
Posté 25 août 2011 - 06:22
Name: bX3_M_ARCHERY Type: 1 Object: 7ffffffd Position: 0 Label: Command:
Name: oX3_Skin Type: 4 Object: 7ffffffd Position: 1 Label: Command:
Those two, and variables for journal entry states were the only ones stored on the character after casting a spell and checking them.
Modifié par Failed.Bard, 25 août 2011 - 06:27 .





Retour en haut






