Jump to content

Reduce experience points by percentage


Recommended Posts

In my modification I want to apply percentage XP penalty for party members. It seems that although AddExperienceParty() action can reduce party experience, it need to be always some fixed amount, I guess the same problem with AddXPObject(). So I started looking into opcodes, and opcode 104 seems to be able to do what I want.

First question would be what is the best way to apply it permanently on party members. My idea is to create spell that is permanent not dispellable, something like:

  • opcode: 104
  • target: Self
  • power: ?? <- what is this?
  • param 1: 90 (10% reduction)
  • param 2: 2 (Percentage Modifier)
  • timing mode: 9 ⟶ Instant/Permanent (after Death)
  • dispel/resistance: 2 ⟶ Cannot be dispelled/Ignores resistance
  • duration: 0 (ignored when timing mode is 9 I suppose)
  • probability: 100
  • ... rest I believe is straightforward: no saving throw, no dice restrictions etc.

Would it work as expected? I mean would it be permanent effect form moment of application till end of the world?

Second question is: Is it worth it to do it this way? Maybe it could lead to some problems and this solution should be avoided because of that? For my understanding, effects represent something temporal, it seems that it is not right tool for this job. But as far as I know there is no other one. I could prepare fixed penalties with some thresholds using script actions, but obviously applying it with percentage would be much more easier to me. 

Link to comment
4 hours ago, DavidW said:

My guess is that it just happens, and doesn't leave a persistent effect. But you should check, of course.

It is an ongoing effect, I believe. I apply % XP modifiers as an ability score bonus, and I apply it as a repeating effect every round so that it dynamically responds to stat changes. All it does is apply an ongoing adjustment to your total XP value - stat 44. And I remembering seeing reports a few years ago that the mod interacted badly with things like kits or custom races that applied XP penalties. I vaguely recall reports that my application of op104 with timing mode 0 would overwrite and wipe out the kit or race's application of op104 that used timing mode 9. In other words the engine did not tally up all the op104 effects on a character in any given moment; it only applied the last one.

But note:

  • This was a while ago, and it's possible that the opcode was changed/improved in recent EE patches
  • This doesn't mean it isn't worth using! I'm just pointing out possible pitfalls to be aware of when using it.

EDIT - re-reading the first couple posts, I think what the OP wants is not possible. Opcode 104 applied with permanent timing will permanently affect their final XP value, so will effectively reduce all XP earned, in both the past and future. Opcode 104 applied with non-permanent timing will simply disappear. And the AddXPObject() action needs a particular value to be specified, not a percentage.

I would use the AddXPObject() action and just make a bunch of script blocks to condition the value of the reduction on fairly broad ranges of that targets' existing XP.

Link to comment
5 hours ago, subtledoctor said:

You want power=0. 

I don’t recall, and the IESDP doesn’t mention, how this stacks with itself. Later instances might overwrite earlier ones, in which case another mod could undo your adjustment...

So this is used to determine if new effect should overwrite old one?

 

5 hours ago, DavidW said:

But you should check, of course.

BTW is there a way to check in-game e.g. what are current effect that work on some creature etc? This could be handy.

 

1 hour ago, subtledoctor said:

[...]

Opcode 104 applied with permanent timing will permanently affect their final XP value, so will effectively reduce all XP earned, in both the past and future. Opcode 104 applied with non-permanent timing will simply disappear. [...]

I would use the AddXPObject() action and just make a bunch of script blocks to condition the value of the reduction on fairly broad ranges of that targets' existing XP.

I guess this confirms my suspicion regarding this. So I would go for scripts block for now and eventually come back to this topic when I will have more experience with all of this.

Thank you both!

Link to comment
1 hour ago, marchitek said:

So this is used to determine if new effect should overwrite old one?

No. “Power” is the effective spell level of the effect. If you set power=2, it would be blocked by somebody who cast Minor Globe of Invulnerability. If you set power=0, the it will affect anybody regardless of their spell level immunity. (Even if the spell containing this effect is a 2nd-level spell... the power value of each individual effect trumps the spell’s level. Of course, in most spells these are set to the same value.)

Link to comment
51 minutes ago, subtledoctor said:

No. “Power” is the effective spell level of the effect. If you set power=2, it would be blocked by somebody who cast Minor Globe of Invulnerability. If you set power=0, the it will affect anybody regardless of their spell level immunity. (Even if the spell containing this effect is a 2nd-level spell... the power value of each individual effect trumps the spell’s level. Of course, in most spells these are set to the same value.)

Ah, yes, that makes a lot of sense. Thanks once more!

Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...