Skip to main content

Lava Not Real/Go Through "Lava"

Submitted by Evil Metro on

As you probably know, lava is just a weird "effect". It would be nice if it could be replaced with real vanilla lava. Thanks.

Karma: 0 (0 votes)
Last edited by morroblivion-admin on 27 Jan 2014 - 18:10.

Lava cannot truly be replaced in the vast majority of places it exists in Morrowind because an interior cell can only have one level of liquid, be it water or lava or blood. Most Morrowind lava pools tend to be above other areas that are clear of lava, and in Oblivion that would mean it would be covered with lava. I did replace the Morrowind lame lava with Oblivion lava in Dagoth Ur's Heart Chamber. There was some discussion a couple of months ago about adding collision to lava to keep you from falling through it, but my opinion has always been that it's lava. You're not supposed to jump into pools of molten lava, so don't.
Karma: 0 (0 votes)

My idea is that we can put real OB lava under the Morrowind lava pictures, so if you jump in, you'll reach to lava in the end.

Karma: 0 (0 votes)

It is not practical to put Oblivion lava under Morrowind lava. First of all, somebody would need to do it cell by cell. On top of that, in most cases the level of lava would need to be way too low to get any practical benefit from doing this.
Karma: 0 (0 votes)

Is it possible we could attatch a script to all the lava objects by editing the base id: 0inUlavaU512 with some sort of script?

Something like 

if getdistance player < 1

player.kill

endif

(or better yet, just copy the killbox script:)

 

scn KillBox01SCRIPT

ref target

begin onTriggerActor

set target to getActionRef

target.kill

end

Something like this would be a quick fix (if it worked) because you are making only one edit. It wouldn't be especially pretty, as it wouldn't drain health, but it would be effective.  It would make sure that people don't "jump into pools of molten lava..." by insta killing them.  Which keeps the suspension of disbelief still working, a lot better than just swimming around in the lava. I mean, lava has meant instant death sense the days we all played Mario on the SNES. Besides, who doesn't love an insta kill? :D

Karma: 0 (0 votes)

Lava are Activators, and they already have scripts attached; all you would need to do is update the script. I would not condone this for the Master, because I believe that "Player.Kill" just isn't any fun, and Oblivion is so unstable that a death in the wrong cell has, in the past, cause me to force a hard reboot. However, you are not the first to want to do something with lava, so by all means, feel free to make a mod...
Karma: 0 (0 votes)

Cool.

So I am working on making a mod, and both my ideas arn't working right now :/

Neither the kill box or get distance work in the script. It 'feels' like Oblivion doesn't know when you are near to or touching/triggering the lava. Is it possible this is due to a lack of collision data? I have very little experianceing with Nifskope, but if it were a collision thing, would I be able to add collision to the lava?

Thanks!

I'll keep working on it :) ......

Karma: 0 (0 votes)

I believe it is lack of collision, yes. Someone had once talked about adding collision to lava to prevent players from falling through it. In many/most cases Morrowind lava cannot be replaced with Oblivion lava for technical reasons because a cell can only have one "level" of water, and in most cases there are pools of lava above areas that do not contain lava. But, in the cases where it IS possible, this would be desirable over a script thing.
Karma: 0 (0 votes)

You might wanna try finding someone with a bit of experience in 3dmax or any other program that can create compatible models, and just have him make a 2 dimensional square or flat cube with about the same dimensions as the morrowind one, with collision put in there, you'd only need to replace the model files as I believe the master file should redirect the texture automatically (could always use a fancier one ofcourse).

(It might also be possible to find an object of about the same dimensions as the lava square that you can't fall through and use that if you can't find anyone qualified)

This in conjunction with problems with dungeon models that you can fall through at seemingly random spaces and what appear to occasionaly be creatures without proper hit detection (hounds, netches and ever try to attack any flying creature from above?) I'd say the files did'nt convert properly from morrowind, most likely due to differences in the engine or differences in the 3d modeling program used.

This is pure conjecture ofcourse, but as most items do have hit detection and unlike the cave mesh the entire model lacks collision I'd say the issue lies in the model, perhaps a different way of coding it to suit the requirements it had to fill to work in morrowind?

Karma: 0 (0 votes)

Gotcha. 

I totally get what your saying about the 2 levels of liquid. 

I found this tutorial on adding collsion: http://cs.elderscrolls.com/constwiki/index.php/NifSkope:_Adding_Collision_Model

I'll see what I can do. I'm going to try to add collision to our lava .nif files, and then I guess use the killbox script to at least let the player have the experiance of dieing. 

I was thinking that you're right: it would be much cooler to have the health drain (and maybe a fire effect) then to just insta kill. I was thinking about modifing the copied killbox script to add a spell 'fire damage' or something to the character whenever he touches the lava. It would still be script, but the person would walk on the lava (who says you could swim in lava, it probably has much too high a viscosity), while taking large amounts of fire damage. This is all in theory, but I'll see what I can do.

At this point, I've grafted some lava data onto a killbox nif, and I see lava that has collision, but only in the center. I'm working on getting that collsion to spread out and cover all the lava...... Any tutorials anyone can find would be great.... This is my first time doing anyting with nifskope other than assigning texture folders.... :D

thanks!

 

-------------------

Woden: I agree. I'm trying to splice collision from other models, but its not working out perfectly, if someone with experiance could add collision to these models that would be wonderful!

 

----------------------------

Okay, I've spent like 2 plus hourse on this.... I now know how to do simple collision adding, lol. So I have added collision to a thing of lava, and it looks and feels good. He runs through it and it goes knee deep, and he doesn't fall through. Yes!
However, I've put the killbox script on the lava, and right now, that script doesn't trigger. Even though he is running on the lava, it isn't runing the trigger script.... GRRRR
If anyone has any ideas please let me know!

here's the tweaked lava file for you to play around with.

Thanks! 

Karma: 0 (0 votes)

Here's the file...

Attachments

Karma: 0 (0 votes)

GetDistance.Player<1 will almost never be true ... experiment with values of around 20 to 100 instead. Regarding OnTrigger ... I think that requires a special type of collision to work (bhkSPCollisionObject instead of bhkCollisionObject) ... you should checkout the Killbox .nif file and copy the collision from there using nifscope. Also remove the normal maps for the lava textures to restore the "flow" animations.
Karma: 0 (0 votes)

Thanks Hashmi!

So I tried different get distant values and just wasn't happy with the collisions, so I did what you said and copied the collision from killbox. At first I scaled the collision, and that did nothing, so I ended up changing each verticy on each .nif file. You were right about the ontrigger. Thanks!

I'm uploading a zip that has the meshes / mod in the right folders. The mod merely adds the killbox script to the lava script. Then there are the lava meshes with collision. The collision is far enough below the surface of the lava, that it looks like you're wading in the lava (knee deep) before you die. It looked really bad to walk on the surface of it, or die there.

Hashmi, I didn't understand that bit about normal maps, My lava seems to flow right, but I'll look into it if something is wrong.

Also, right now it is insta kill; I'd like to make a script that does fire damage instead, but I don't know how at the moment. For now I'm just stoked to get something up and working. Thanks guys! 

ps. If anyone wants to improve the collision or the script so we have a nice even burn, instead of charred dudes, feel free to do so!

Attachments

Karma: 0 (0 votes)

That is great. If you can get it to not be an instant kill, then I will probably use this in the Master. As I said, several people have complained about lava in the past, but I just don't think instat kill is fun. You need to take fire protection into account.
Karma: 0 (0 votes)

Thanks! 

I like the insta kill better than nothing, but you're totally right. It feels really odd to touch some lava and just crumple to death without even catching on fire or getting hurt....

Right now, you fall through the lava as it kills you. To do a fire damage, I'd need to add a second collsion that you can walk on (I think you can do that, but don't know). Then I'd need to find a delivery system: how do I add fire damage that goes away when you leave the pit, but stays while you're in it. This is my big problem. I'd really apprecaiate anyone's scripting ideas. Maybe if I do an 'add fire damage' thing ontrigger, and then the fire damage lasts say 1 second, and the script has a 1 second timer to refresh or something...

how much damage should be done per second?

Do you mean make fire protection protect against lava, or negate fire protection so lava still hurts you? (Like, if I say ignore fire damage 100% then should I be immune to lava? I could see it both ways...)

 

---------------------------

EDIT: It's done! I'm stoked. The files tagged on here are the same lava files, but a new esp. The esp has a script that does...... Fire damage! Instead of an insta kill, it does fire damage on the character at nearly the exact same rate as default lava! Step out of the lava, and the damage stops! I've tested it a bit and it works perfectly!

Soon I'll add another collision to the lava that allows you to walk in it and not fall though. For now we have lava we fall through, but if you're in it, then you get fire damage at nearly the same rate as vanilla oblivion lava. :D

Karma: 0 (0 votes)

This file was an intermediate. Check out the next file.....

Attachments

  • Lava that Kills.zip (historical attachment unavailable locally)
Karma: 0 (0 votes)

Forget that last file. This one should have everything working the way we want. It has the right folder hiearchy and files.

It does what we want: you wade in the lava, and the lava also sets off the script. (You don't fall through the lava). The script / esp adds fire damage when you're in the lava. I beleive the dps is really close to vanilla lava. If not, you can change the magnitude of the fire damage ability aklavaspell. Its what we want. 

I tested it in a testing environment and a random morroblivion lava pit and everything seems to work. Every now and again, I fall through into some black-blue hissing abyss, but it isn't repeatable... So I think we're all right.

Yup. Check it out. :D

Attachments

Karma: 0 (0 votes)

I updated one of the files (lava256A) in order to expand its walking collision. This should make sure nobody falls into lava where the lava meshes connect.

Attachments

Karma: 0 (0 votes)

Thank you! I will definitely be releasing v035 sometime this weekend. I will try to test the lava first, but no promises...
Karma: 0 (0 votes)

No problem! It was exciting to figure it out. :D

Cool. It would be really neat to be able to contribute to the mod. No big deal if it doesn't make it in right away. I hope it works out for you. :)

Karma: 0 (0 votes)

Try out this script (I haven't been able to compile it in the CS so some debugging might be needed).

Note that this requires OBSE.

--------------

scn moXLavaDamage02

ref target
float Xhealth
float Xtimer

begin onTriggerActor

set target to getActionRef
set  Xhealth to target.GetAV health
set timer to (timer+GetSecondsPassed)

If Xhealth<=0
    Return

ElseIF Xhealth<2
    target.kill
    Return

ElseIF

    If XTimer=>0.5

        Set Xtimer to 0
        target.pme FIDG 1
        target.pms effectFireDamage 1
        target.ModAV2 health (-Xhealth*0.5)

    EndIF

EndIF

end

--------------------

Karma: 0 (0 votes)

I apprecaite the script Hasmi, but I think i've got one that works already. But thanks for helping me with the scripting! It was your idea that got the collision to work, after all ;)  It looks like your's is percentage based while mine is a straight up damage dealer (Though that damage is adjustable). I believe vanilla oblivion lava deals straight fire damage. However, if it uses a percentage, I'd jump on your script. You look like you're a lot better at scripting than myself ;)

Just for the heck of it, here's my script:

scriptName 0lava

 

ref target

float timer

float fQuestDelayTime

 

 

begin onTriggerActor

 

      set target to getActionRef

 

      ;target.kill

      target.addspell aklavaspell

      set fQuestDelayTime to 0.001

      set timer to 0

end

begin gamemode

 

     if ( timer < 1 )

         set timer to timer + getSecondsPassed

     else                                                               

    

            target.removespell aklavaspell

            endif

     

      end

aklavaspell is an ability with a constant fire damage. Right now the magnitude is set at 30. This seemed about equal to vanilla oblivion lava. I tested it with a level 4 character and a level 52 character (using Ely's uncapper).

Karma: 0 (0 votes)

I would make it "fixed" but since David is still testing this file I will leave it in "needs review" until he says he added the mod if he does.

Karma: 0 (0 votes)

I have tested this and it works great, thank you. I will release v035 sometime this weekend; if you can get an update before then I will include it, otherwise I will include as-is.
Karma: 0 (0 votes)

Sweet! I'm glad it worked! Uh, what update should I be getting you? The "lava that kills 2" file above was the one where I updated the one collision. It's the latest file I've done. Is that what you were talking about? Sorry I didn't get this to you before the weekend. :( Oh well.

Oh, and all the update did was update the nif file 0lava256A , which is a 256 by 256 square of lava that is cut into an octagon or such. The collision that lets you walk on it is a little small in the origional file, so its possible the occasional person, with perfect placement, could fall through some small holes in the lava, if the lava is that plate. All the other plates are good. So it really isn't a big deal, should be fine to wait until .036 or whatever. ;)

Thanks :D

Karma: 0 (0 votes)

OK, then never mind; I thought you were still tweaking the script. I am sorry that I forgot to include the script!
Karma: 0 (0 votes)

Oh no! lol. Nope, the script remained unchanged, I was really happy with what I came up with. I'm about to download .035 now. I won't freak out if I don't die in the lava just yet. 

Karma: 0 (0 votes)

Wow, sorry for a late reply but thank you for fixing this old frustration!
Karma: 0 (0 votes)

Haha, no problem and thanks!

Karma: 0 (0 votes)