Jump to content

Request for more useful, but not overpowered illusion.


amycus

Recommended Posts

Add one perk entry that sets magnitude of spells with fear, frenzy, or calm keywords to 0.

 

Add another entry with a lower priority that sets magnitude of spells with fear, frenzy, or calm keywords to 999 if a random integer is less than the global variable.

once perks are brought into the question, it raises the question of how they'll be added. spell effect added to a quest alias, I think would work. it'd be the same quest that handles the global, for one reason...I think that the skill increase event likely only fires on regular skillups, not resetting via legendary, or script modifications, though I'd have to check to make sure. now that I think about it, it could just be handled with quest stages...I think. just have them fire on a condition of the stored value not being equal to the player's stat. not 100% sure how well that'd work though.

Link to comment
Share on other sites

Add the perk with a different quest that runs on start up.

 

The skill up quest will fire on scripted skill increases but not legendary resets. However it would fire the next time a skill increases after the legendary reset so we're talking about a relatively short window to exploit that.

 

Another option is to use two globals, one representing the player's skill level and one representing the chance of success (assuming the two values are slightly different). Place an ability on the PC that turns on its magic effect only if the PC's base illusion skill doesn't equal the global. Then add an OnEffectStart script that updates both globals.

 

The latter option might be preferable honestly, but I think either would work. The only time the player would notice a difference is if they used mod/setav through the console or a script or if they used legendary reset, and in either case the discrepancy would only last until their next wkill increase.

Link to comment
Share on other sites

this is the solution I came up with:

1 quest, no actual quest scripts. the quest runs on startup and via a quest alias, adds a 'temporary' ability to the player. this makes it easy to uninstall, simply shutdown the quest and the ability is gone.

ability: 2 magic effects in the ability. first one has the 'perk to apply' box filled with our perk, second one has a comparison (in the ability, not on the magic effect), that if the stored value doesn't match the actual, it activates and sets the value.

haven't gotten around to two globals, as using getrandompercent <= globCurrentIllusion as a condition works. adding the 2nd one for the chance to succeed does sound like it would add more room to adjust the chances, though.

interestingly enough, we came to similar ideas and I didn't read your post til this morning, while I got to my result last night. says "on the right track" to me.

 

EDIT:clarification

Edited by EnigmaniteK
Link to comment
Share on other sites

I'm not very pleased with the implementation we'd come up with, and ended up going back to my original idea, which is working exactly how I want it to.

problems with the perk-only version: the perk calculates every second or so, and causes the spells in the spell menu to flicker between durations. I used durations since having 2 things changing magnitude didn't work at all! yes, I had the overriding chance entry at a higher priority. 1 is higher priority than 0, right?

Additionally, I didn't want it affecting poisons, given that magic should have zero effect on how chemical compounds work. The magic effects for poisons, enchantments (included in these changes), and spells have the same keywords and zero way to distinguish between what is what. I ended up adding a single keyword to the magic effects that were to be affected. I'll be releasing a working version soon, I need to add in dual-casting perk support, which hopefully won't be difficult. As it is, though, it works very well. On to the summary!

 

Single target spells currently have a base chance to succeed of 50%. This increases by 0.5% per skill point, so at 100 skill it has a 100% chance to succeed.

Aimed AOE spells have a 40% chance to succeed, increasing by 0.6% per skill point, and at max skill, again, 100% chance to succeed. (see where I'm going here?)

The ritual spells, with 250 range and centered on the player, have a 30% chance to succeed, though in the final release I may reduce this, and the success chance increases by 0.7% per skill point.

Enchants are currently the same as single target spells.

All of these are guaranteed to last for 3 seconds (subject to change), and only after those 3 seconds are up will you find out whether the spell was a success.

I've used globals to make adjustments easier, though I also have a script to allow custom spells.

Given how I worked it, it won't affect mod forms, but will be easy to patch in. All it takes is adding the script, settings its properties, and adding the keyword.

 

Questions, comments, concerns? I like the current implementation quite a bit more than the unreliable (in a bad way) previous version...

EDIT: I make derpy mistakes and keep forgetting to review things

Edited by EnigmaniteK
Link to comment
Share on other sites

Priority 0 occurs after priority 1. So if your priority 1 entry is multiply times 0 and your priority 0 entry is add 99, the final value will be 99.

 

To avoid the recalculating, put the random magnitude condition on the target tab.

 

The target tab is also a better place for the rand condition because it will be recalculated for each target. If the condition is on the caster tab, then area effects will either succeed or fail. If it is on the target tab, area effects will succeed on some targets and fail on others.

 

Advantages of the perk over the script are that the effect is never applied instead of applied and dispelled. Therefore the PC will not receive experience for effects that fail, the magic effect keywords will never be applied to the target, OnHit events that are triggered specifically by this effect will not fire, and other Illusion spells will not be dispelled by a failed spell, and the effect is the same for all mod added spells. Perk support is also easier.

Edited by lofgren
Link to comment
Share on other sites

Priority 0 occurs after priority 1. So if your priority 1 entry is multiply times 0 and your priority 0 entry is add 99, the final value will be 99.

 

To avoid the recalculating, put the random magnitude condition on the target tab.

 

The target tab is also a better place for the rand condition because it will be recalculated for each target. If the condition is on the caster tab, then area effects will either succeed or fail. If it is on the target tab, area effects will succeed on some targets and fail on others.

 

Advantages of the perk over the script are that the effect is never applied instead of applied and dispelled. Therefore the PC will not receive experience for effects that fail, the magic effect keywords will never be applied to the target, OnHit events that are triggered specifically by this effect will not fire, and other Illusion spells will not be dispelled by a failed spell, and the effect is the same for all mod added spells. Perk support is also easier.

well, I put some work into my current implementation, and i'm really happy with it, so I'll release it. I'll also use the other implementation in a second mod. This way, people can see both at work. Thank you for clearing up how priorities work, it seems rather...counter-intuitive to me. also figured out how to exclude poisons...epmagic_hasskill. poisons didn't have skill, which is the one thing I didnt notice. and yeah, perk support is a lot easier...

Link to comment
Share on other sites

There are a few ways to limit which effects you want the perk to apply to.

 

I think if you are happy with your current version then that's great. There's more than one way to skin a frost troll. Most of the advantages I describe are irrelevant if the player is just using the vanilla game, anyway. There is only the risk of mod conflicts, and in that department neither method is foolproof.

 

The way to think about perk priorities is: if something is your first priority, then it is of a higher priority than your second priority, and so on. For math operations it's actually less of a priority system. It's more like it determines order of operations.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...