[RELz] Oblivion Magic Extender v1.0

Post » Wed Mar 30, 2011 6:00 am

You can already do that. :)

He's referring to a PM:
Could there be a mod that would make potions as if all the effects were available, but that would display those that aren't yet available as "unknown effect"?

For example a character with an Alchemy score of 25 combining a Fly Amanita Cap (RSAG, BRDN, REHE, SHDG) with an Arrowroot (RSAG, DGAT (luck), FOAT (str), BRDN) would get a potion with 2 effects: RSAG and BRDN, but the latter would appear as "Unknown Effect".
I'll put this on the todo list, crimson, but it may take a while as it will require some considerable work.
User avatar
Zualett
 
Posts: 3567
Joined: Mon Aug 20, 2007 6:36 pm

Post » Tue Mar 29, 2011 11:22 pm

Ahh yes, Morrowind-style alchemy, not quite the application I imagined. Well, this too can already be done... it's just a bit more complicated.

Detect when the alchemy menu is open, edit the GMSTs to allow all effects to be used, then edit the OBME effect override data on any ingredients in the player's inventory to be named "Unknown Effect". You'll also have to keep track of the potion as it's being made, giving the "Unknown Effect" name to any of its effects that aren't known on at least two component ingredients. Not sure if you can get that done before it's displayed, but if not I believe MenuQue allows a forced in-place refresh. When a potion is created, reset its effect overrides; when the alchemy menu is closed, reset the ingredient overrides.

Of course I'd much rather see a hard-code solution myself. Just sayin', there IS a way. ;) Fact is, I've already got half of it written myself; I'm using contextual effect edits for several purposes during alchemy, spell creation and enchantment. But this one is particularly more complex than most, and to be honest I don't think it's a good design. All the Morrowind system does is encourage external reference, or worse, just making the potion to see what the unknown is, then reloading. (Even if you keep the effect "unknown" on the final potion, you can go one more step and drink it to find out before reloading.) Oblivion's method has the obvious flaw that a high-level alchemist might get side effects from a pair of ingredients, when a low-level alchemist can get the positive effect but not the negative one; but they were moving in the right direction IMO. Building on what we've got, I'd go for one of the following rather than returning to Morrowind style:

1. The vanilla Oblivion system, with the ingredients carefully re-designed so that there is never a situation where an Expert produces a more useful potion than a Master, etc. This is a fair bit work and has inherent compatibility issues with new ingredients; but it's not a bad solution overall.

2. My own solution, make all effects available all the time. This requires some additional balance elsewhere to keep the mastery ranks meaningful; I've changed the number of potions you can drink at once to (novice) 1, 1, 2, 3, 5 (master), and you actually see ZERO effects at Novice rank, meaning that you can't create potions: only training and Wortcraft can advance you to Apprentice. Overall I'm pretty happy with this; it's fully consistent and there are no compatibility worries. However, you could conceivably go one better...

3. Allow a high-ranked alchemist to control their mastery rank during potion creation. You could actually do this in either direction... working from the vanilla system, a Master could create potions as if he were an Expert (or lower), shaving off that nasty detrimental effect in slot 4. Or working from my system, it would go in reverse: an Apprentice is stuck with all four effects, a Journeyman can leave off the top one, etc. (This is nicely consistent with a Master's ability to use a single ingredient to create a potion with its slot 1 ability.)

JRoush, if #3 seems like a fairly simple thing to implement at your end, consider that a request; but don't let it delay anything else. I'm pretty sure this would actually be easier to implement in scripts than the Morrowind-style method... you'd definitely need MenuQue, but there's a lot less to keep track of.
User avatar
GPMG
 
Posts: 3507
Joined: Sat Sep 15, 2007 10:55 am

Post » Wed Mar 30, 2011 3:38 am

Ahh yes, Morrowind-style alchemy, not quite the application I imagined. Well, this too can already be done... it's just a bit more complicated.

Detect when the alchemy menu is open, edit the GMSTs to allow all effects to be used, then edit the OBME effect override data on any ingredients in the player's inventory to be named "Unknown Effect". You'll also have to keep track of the potion as it's being made, giving the "Unknown Effect" name to any of its effects that aren't known on at least two component ingredients. Not sure if you can get that done before it's displayed, but if not I believe MenuQue allows a forced in-place refresh. When a potion is created, reset its effect overrides; when the alchemy menu is closed, reset the ingredient overrides.

Of course I'd much rather see a hard-code solution myself. Just sayin', there IS a way. ;) Fact is, I've already got half of it written myself; I'm using contextual effect edits for several purposes during alchemy, spell creation and enchantment. But this one is particularly more complex than most, and to be honest I don't think it's a good design. All the Morrowind system does is encourage external reference, or worse, just making the potion to see what the unknown is, then reloading. (Even if you keep the effect "unknown" on the final potion, you can go one more step and drink it to find out before reloading.) Oblivion's method has the obvious flaw that a high-level alchemist might get side effects from a pair of ingredients, when a low-level alchemist can get the positive effect but not the negative one; but they were moving in the right direction IMO. Building on what we've got, I'd go for one of the following rather than returning to Morrowind style:

1. The vanilla Oblivion system, with the ingredients carefully re-designed so that there is never a situation where an Expert produces a more useful potion than a Master, etc. This is a fair bit work and has inherent compatibility issues with new ingredients; but it's not a bad solution overall.

2. My own solution, make all effects available all the time. This requires some additional balance elsewhere to keep the mastery ranks meaningful; I've changed the number of potions you can drink at once to (novice) 1, 1, 2, 3, 5 (master), and you actually see ZERO effects at Novice rank, meaning that you can't create potions: only training and Wortcraft can advance you to Apprentice. Overall I'm pretty happy with this; it's fully consistent and there are no compatibility worries. However, you could conceivably go one better...

3. Allow a high-ranked alchemist to control their mastery rank during potion creation. You could actually do this in either direction... working from the vanilla system, a Master could create potions as if he were an Expert (or lower), shaving off that nasty detrimental effect in slot 4. Or working from my system, it would go in reverse: an Apprentice is stuck with all four effects, a Journeyman can leave off the top one, etc. (This is nicely consistent with a Master's ability to use a single ingredient to create a potion with its slot 1 ability.)

JRoush, if #3 seems like a fairly simple thing to implement at your end, consider that a request; but don't let it delay anything else. I'm pretty sure this would actually be easier to implement in scripts than the Morrowind-style method... you'd definitely need MenuQue, but there's a lot less to keep track of.


With the risk of being a tad off-topic, I'd like to comment on this.

The difference between what I'm suggesting and Morrowind would be that here drinking the potion doesn't reveal the hidden effect. Of course, there remains the issue of external reference, though that might be discouraged by Oblivion's inability to alt-tab or by having to exit the alchemy menu to check some book. I like it because it makes sense. And, granted, I think something else could be added to make the perk ranks more interesting.

With that said, I quite like your #4 idea. I'm even thinking about having all 4 effects as an Apprentice, the Journeyman could choose one effect to remove from the top two, the Expert one from the top three and the Master one from all of them. I don't think there's a point in having the option of choosing more than one effect to remove as they rarely overlap that much (I think).

Thanks for commenting!

cc
User avatar
Tiff Clark
 
Posts: 3297
Joined: Wed Aug 09, 2006 2:23 am

Post » Wed Mar 30, 2011 1:36 am

The difference between what I'm suggesting and Morrowind would be that here drinking the potion doesn't reveal the hidden effect.

That's actually no harder... those OBME effect overrides are powerful stuff. :D

Oblivion's inability to alt-tab

How widespread is that problem? I keep hearing about it, but I have no issues except from the main menu (pre-game). Open the console first, and it doesn't even close your current menu when you hit the Tab key. :P

With that said, I quite like your #4 idea. I'm even thinking about having all 4 effects as an Apprentice, the Journeyman could choose one effect to remove from the top two, the Expert one from the top three and the Master one from all of them. I don't think there's a point in having the option of choosing more than one effect to remove as they rarely overlap that much (I think).

The idea was that you can't remove an effect without removing the ones below it; climbing the ranks just lets you dig deeper. The Master doesn't get to pick only the second effect to remove, he has to remove the third and fourth too; but anyone with less skill can't do it at all.
User avatar
Lyd
 
Posts: 3335
Joined: Sat Aug 26, 2006 2:56 pm

Post » Wed Mar 30, 2011 1:07 am

How's development of this coming along?
User avatar
kevin ball
 
Posts: 3399
Joined: Fri Jun 08, 2007 10:02 pm

Post » Wed Mar 30, 2011 1:38 am

If this is on the backburner for now, I'd like to be able to fix that silence bug so it can be used as-is. However, part of the source is missing, maybe just a project file or maybe more. Here's the error:

---------------------------
Microsoft Visual Studio
---------------------------
The project file 'I:\obme\Engine Framework\OBSE v0018 Source\common\common.vcproj' has been moved, renamed or is not on your computer.
---------------------------
User avatar
Rob Davidson
 
Posts: 3422
Joined: Thu Aug 02, 2007 2:52 am

Post » Wed Mar 30, 2011 10:58 am

If this is on the backburner for now, I'd like to be able to fix that silence bug so it can be used as-is. However, part of the source is missing, maybe just a project file or maybe more. Here's the error:

---------------------------
Microsoft Visual Studio
---------------------------
The project file 'I:\obme\Engine Framework\OBSE v0018 Source\common\common.vcproj' has been moved, renamed or is not on your computer.
---------------------------


Shouldn't butt in on this as I don't know much about OBME, but that file is in the src folder in the OBSE download: src\common\common.vcproj
User avatar
Amie Mccubbing
 
Posts: 3497
Joined: Thu Aug 31, 2006 11:33 pm

Post » Wed Mar 30, 2011 11:57 am

I would like to direct peoples attention to http://www.gamesas.com/index.php?/topic/1173475-obme-help-custom-magic-bolt/. I probably should have posted that here, but too late :)
User avatar
Sara Lee
 
Posts: 3448
Joined: Mon Sep 25, 2006 1:40 pm

Post » Wed Mar 30, 2011 12:22 pm

Anyone? Bueller?
User avatar
Eileen Müller
 
Posts: 3366
Joined: Fri Apr 13, 2007 9:06 am

Post » Wed Mar 30, 2011 11:43 am

How's development of this coming along?
If this is on the backburner for now, I'd like to be able to fix that silence bug so it can be used as-is. However, part of the source is missing, maybe just a project file or maybe more. Here's the error:

Development is still chugging along for version 2.0, but complications in both RL and the code have made it take far longer than I originally thought. Also, at this point, I've been working on the Oblivion disassembly for ten months straight and really need a small break :P. I've been putting off working on a v1.1 bugfix on the excuse that v2 would be a better use of my time, but it seems that's not the case.

iRFNA, you're more than welcome to fix the silence bug if you've found it, although I'd appreciate it if you could share your findings with me as well. As Arkngt said, common.vcproj is one of the files associated with the Oblivion Script Extender. You will need the complete obse source in order to make the OBME code compile, and you will need to make sure it is in the relative path ..\Engine Framework\OBSE v0018 Source\. You will also need to adjust the output paths in the custom post-build event, which copies the compiled dlls to your Oblivion folder for testing.

I would like to direct peoples attention to http://www.gamesas.com/index.php?/topic/1173475-obme-help-custom-magic-bolt/. I probably should have posted that here, but too late :)

All bolt-type projectiles use the 3D visual effects of a lightening bolt, because the game is hard-coded to do this. I assume Bethesda, realizing that Shock Damage was the only bolt projectile in the game, didn't think it was worth it to make it more general. You can adjust the color and branching characteristics of the bolt through game settings, but they affect all projectile bolts fired by all casters. I know that some people have used scripts that temporarily change the settings when the character has certain spells equipped, and that may work for you. I'm afraid it will be quite some time (v3, at least) before I can offer a more general solution.
User avatar
Dina Boudreau
 
Posts: 3410
Joined: Thu Jan 04, 2007 10:59 pm

Post » Wed Mar 30, 2011 1:08 am

Ack, No worries then I will stick to the lightning bolt. However I still can not get it to cause damage to anything. I followed the examples you made and my effect is the same as the one in the example yet still nothing.
User avatar
Emily Rose
 
Posts: 3482
Joined: Sat Feb 17, 2007 5:56 pm

Post » Tue Mar 29, 2011 8:46 pm

Does this tool allow for fractional damage calculation? I've run into the problem of having my damage reduced by a huge margin (30-50%) while playing a DoT themed character because 2dmg/15seconds becomes 1dmg/15seconds if I have any sort of casting penalty or the target has any sort of resistance.
User avatar
Melis Hristina
 
Posts: 3509
Joined: Sat Jun 17, 2006 10:36 pm

Post » Wed Mar 30, 2011 6:26 am

Searched the docs, but didn't really find what I was looking for:

What do I have to do if I want to change the Actor Value (Skill) of an Effect Item to a cutom AV (Skill) added with http://www.tesnexus.com/downloads/file.php?id=33248?
Script-wise would be ideal, but via CS would also be doable.



Thanks in advance,
LP
User avatar
gary lee
 
Posts: 3436
Joined: Tue Jul 03, 2007 7:49 pm

Post » Wed Mar 30, 2011 12:57 pm

Searched the docs, but didn't really find what I was looking for:

What do I have to do if I want to change the Actor Value (Skill) of an Effect Item to a cutom AV (Skill) added with http://www.tesnexus.com/downloads/file.php?id=33248?
Script-wise would be ideal, but via CS would also be doable.



Thanks in advance,
LP

In the CS, you should be able to select the custom AV from the dropdown list just like the vanilla av. In scripts, you use
SetNthEIHandlerIntParam "ActorValue" [newValue] [magicItem] [itemIndex] 
where newValue is the av code you chose (if it was static), or the formID of the token item (if you went with a 'dynamic code').

Note - that's how it is supposed to work, off the top of my head. Reply back here or in the AAV thread if you have any problems.
User avatar
i grind hard
 
Posts: 3463
Joined: Sat Aug 18, 2007 2:58 am

Post » Wed Mar 30, 2011 7:27 am

Is this mod compatible with Supreme Magicka?oh sorry,I understood wrong.I thought that this mod was something similar to supreme magickaxD
User avatar
Amber Ably
 
Posts: 3372
Joined: Wed Aug 29, 2007 4:39 pm

Post » Wed Mar 30, 2011 6:04 am

In the CS, you should be able to select the custom AV from the dropdown list just like the vanilla av.

Well, the problem is: it isn't possible.

Ok, tested some more and it's kinda strange:
  • If you use a Vanilla-MGEF (i.e. FOSK) you can't select them (which isn't that suprising since their not in the specified range <- is this a problem for the script-solution?).
  • After creating a new MGEF-Mod Actor Value
    • with a range from 1. element to the last I coudn't select anything
    • with a small range (5 skills) I could only select 3 of them


In scripts, you use
SetNthEIHandlerIntParam "ActorValue" [newValue] [itemIndex] [magicItem]
where newValue is the av code you chose (if it was static), or the formID of the token item (if you went with a 'dynamic code').

Note - that's how it is supposed to work, off the top of my head. Reply back here or in the AAV thread if you have any problems.

IntParam? not the ref-version?
Can't really test how it works since the rest of my code doesn't and this isn't top-priority for me.
User avatar
Shae Munro
 
Posts: 3443
Joined: Fri Feb 23, 2007 11:32 am

Post » Tue Mar 29, 2011 11:59 pm

so, i uninstalled OBGE, but now my game wont load. i click continue (or load game) and it just CTD's after loading
i started a new game and i was in some unknown blue cell.. no meshes atall, just a textures for the HUD. no head, no walls, no fricken roof. and then the game froze.

help please!?
User avatar
Taylor Tifany
 
Posts: 3555
Joined: Sun Jun 25, 2006 7:22 am

Post » Wed Mar 30, 2011 5:19 am

Is this mod compatible with Supreme Magicka?oh sorry,I understood wrong.I thought that this mod was something similar to supreme magickaxD

This is a modder's resource; it doesn't do anything by itself. It should be compatible with Supreme Magicka.


Well, the problem is ...

You need to do is edit the Magic Effect in question (e.g. Fortify Skill) so that the "up to..." field is your custom skill AV. If you've added more than one custom skill AV, make it the one with the largest formID. This will allow you to select the new skills in the dropdown list on effect items.
The 'AV Range' feature was not particularly well implemented, and I'm scrapping it in future versions so that this sort of thing won't come up.

IntParam?

Yes. OBME can handle the extended range of avCodes, but it's not really aware of token items or how to deal with them. Therefore, you need to provide it with the actual integer avCode:
long avCoderef avTokenref someMagicItem...   let avCode := ToNumber $("0x" + (GetFormIDString avToken))  ; is there an easier way to get the formid?   SetNthEIHandlerIntParam "ActorValue" avCode someMagicItem 0...



so, i uninstalled OBGE, but now my game wont load. i click continue (or load game) and it just CTD's after loading
i started a new game and i was in some unknown blue cell.. no meshes atall, just a textures for the HUD. no head, no walls, no fricken roof. and then the game froze.

help please!?

OK, assuming you actually meant OBME and aren't in the wrong thread - email me a copy of your savegame and OBME.log, as well as a list of any obse plugins you have installed.
User avatar
Erich Lendermon
 
Posts: 3322
Joined: Sat Nov 03, 2007 4:20 pm

Post » Tue Mar 29, 2011 8:34 pm

You need to do is edit the Magic Effect in question (e.g. Fortify Skill) so that the "up to..." field is your custom skill AV. If you've added more than one custom skill AV, make it the one with the largest formID. This will allow you to select the new skills in the dropdown list on effect items.
The 'AV Range' feature was not particularly well implemented, and I'm scrapping it in future versions so that this sort of thing won't come up.


FormID?
Why the hell are they sorted by name then?
Ok, works now. :)
(At least assigning)

Yes. OBME can handle the extended range of avCodes, but it's not really aware of token items or how to deal with them. Therefore, you need to provide it with the actual integer avCode:
long avCoderef avTokenref someMagicItem...   let avCode := ToNumber $("0x" + (GetFormIDString avToken))  ; is there an easier way to get the formid?   SetNthEIHandlerIntParam "ActorValue" avCode someMagicItem 0...


So I got to transform the FormID to a long and pass that as the argument. Are longs really able to store such large numbers?
*thinking about the precision-problem described http://cs.elderscrolls.com/constwiki/index.php/Floating_Point*

Oh, and I'd use ( ToNumber ( $GetFormIDString ), 1 )
User avatar
Melung Chan
 
Posts: 3340
Joined: Sun Jun 24, 2007 4:15 am

Post » Wed Mar 30, 2011 6:31 am

So I got to transform the FormID to a long and pass that as the argument. Are longs really able to store such large numbers?
*thinking about the precision-problem described http://cs.elderscrolls.com/constwiki/index.php/Floating_Point*

Yes. The wiki articles on this subject seem to be fairly out of date. Integers in scripts are stored as 64-bit floating point values with 53 bits of integer precision plus a sign bit; they can store 32-bit long integers quite easily. The arithmetic operators seem to be more restrictive - my best guess is that they use single precision internally. Since you are just storing a value and passing it around as an argument, though, there are no problems with precision.
User avatar
Marcus Jordan
 
Posts: 3474
Joined: Fri Jun 29, 2007 1:16 am

Post » Wed Mar 30, 2011 9:41 am

Since you are just storing a value and passing it around as an argument, though, there are no problems with precision.


OK, that's all I need to know. :)
Thanks, will post the results of some tests when I made them. :P
User avatar
Guy Pearce
 
Posts: 3499
Joined: Sun May 20, 2007 3:08 pm

Post » Wed Mar 30, 2011 5:31 am

One thing that came to my mind:
Is the Script-version to change the AV to a new AAV-one stored in the savegame?
And if so: does it survive Load Order changes?
User avatar
Jack Moves
 
Posts: 3367
Joined: Wed Jun 27, 2007 7:51 am

Post » Wed Mar 30, 2011 1:50 am

One thing that came to my mind:
Is the Script-version to change the AV to a new AAV-one stored in the savegame?
And if so: does it survive Load Order changes?

It follows the same rules as most other changes to base forms - if the form is dynamically created then changes are stored in the savegame, otherwise they are reverted when you reload.

Assuming you do get the new avCode to stick, OBME will adjust it properly for load order changes.
User avatar
Marlo Stanfield
 
Posts: 3432
Joined: Wed May 16, 2007 11:00 pm

Post » Tue Mar 29, 2011 10:07 pm

Ah, ok.
Expected sth. like that. Thanks for confirming/explaining. :)
User avatar
daniel royle
 
Posts: 3439
Joined: Thu May 17, 2007 8:44 am

Post » Wed Mar 30, 2011 2:11 am

hmmm bump and a request, does anyone know how to make the shock effect in this video or what mod makes that effect? http://www.youtube.com/watch?v=l1BSHnhVYuk <--- link
User avatar
Erika Ellsworth
 
Posts: 3333
Joined: Sat Jan 06, 2007 5:52 am

PreviousNext

Return to IV - Oblivion