Jump to content

Removing a city


lgpmichael

Recommended Posts

Greetings all.

 

I am asking the question for future planning of a mod I am working on, and also because it is an interesting question, I think. I am kindof mulling this over as I write this post, so the post may be a bit wandering {:-)

 

How would you remove a city... in a script... dynamically...

 

Lets say for example, you wanted to completely remove Anvil from Tamriel, as if it never existed. I expect you would start by disconnecting both of the Anvil internal worldspaces from the Tamriel outside, replacing the fake outside with rolling hills and coastline, etc etc. Then going through every line of conversation to ensure you have removed all references, updating quests, wow, its a big job.

 

But then comes the hard part. Making sure that if, for example, a player has better cities installed, that the external better cities design is also all wiped out, instead of just wiping out the ID's of every vanilla object but leaving the BC objects in place.

 

What kind of processes would people use to go about this, ideas for dynamically detecting what objects are in an area (I am guessing something like moving the player briefly to a point in the world centered on the city (or several areas as needed), casting a sctipted area effect spell, and disabling everything it comes into contact with would be one way, but maybe it wouldn't catch everything...

 

Wow, you'd even have to do something with the land underneath the city, in a script, as it has a heightmap already... can you even modify heightmaps with a script... Although I expect that that is less urgent as you would assume that the city is built on a heightmap that matches the contours of the land, so wouldn't be a big deal, it would just need some texturing...

 

Ohh I wonder would it instead be possible to just disconnect the outdoor cells that Anvil is in, and replace them with a new set of cells, precreated by the mod... That seems a lot easier, I wonder if you can dynamically link outdoor cells together. I assume (Ive never looked at it) that there is some kind of linking system to link all of those wilderness areas together, and it could enable/disable those as needed, just like you would do for any cave system's front door...

 

Ohh and then there are the people, Anvil population can go all round the country, so you can't just delete all of those in an area, and you'd have to do something clever to make them all vanish or rearrange their lives, based on the fact that the player has unknown mods installed and they could have added new NPC's that live in anvil...

 

So, talking point, apart from running in terror from the sheer amount of work, what other problems and 'gotchyas' would people anticipate?

Link to comment
Share on other sites

I like it when people think BIG. :)

 

Putting aside Open Cities for the moment, if you simply want to trash a city leaving the Tamriel worldspace more or less untouched (except maybe adding fires etc) it shouldn't be too hard.

 

As each city is a separate worldspace, you could easily use a script to disable the default entrances and replace them with visually identical entrances to a smashed up version of that city's worldspace. The disadvantage of this idea is that it will be 100% incompatible with Open Cities of course.

 

If you want to actually wipe the city from the face of Tamriel, that would be a lot harder. Every reference in the cells would have to be parented to something - for a 10 x 10 cell area, you'd be modifying 100 cells with 10 -100 references per cell... a huge task, not to mention the likelihood of conflict problems.

 

I might be wrong, but don't think it's possible to alter the heightmap or its texturing with a script. It might be possible to swap out one Landscape LOD for another though I haven't investigated this before.

 

Another way might be to create a copy of Tamriel which you can trash and find a creative way to move the player between the two worldspaces (again doable, but a lot of work).

 

I'd worry less about NPC AI. If the player isn't near the area, the game engine simply teleports them where they need to be instead of actually tracking their movement across Tamriel.

 

I'm actually working on something similar, so I'm sending you a PM as some of the info is still under wraps.

Link to comment
Share on other sites

I like the idea of using your own worldspace and preventing the gamer from reaching the untouched vanilla Oblivion worldspace. That sounds easier and more reliable than systematically removing all those hundreds or thousands of items.

 

Perhaps you could make a custom trigger box with a custom script that teleports the player to your new worldspace. You could build a fence of these things all the way around the city you are removing. So if someone tries to walk to the city, they run into one of your trigger boxes and end up in your worldspace. You could delete the map markers of the city within your fenced area so that nobody could fast travel to get past your fence.

 

There is always TCL and flying spells, but I wouldn't worry about them. There is always some way for a cheater to break a mod. Modders don't have much choice but to build mods for the people who are not cheating, and leave the others to their fate. (Can't anticipate and build for all possible eventualities.)

Link to comment
Share on other sites

As I see it, the answer to the original question is yes and no.

 

Yes, it would be possible to remove a city dynamically by disabling, by script, the walls, gates and all that refer to the city when the player gets close enough and the city exterior cells get loaded. The script would remove ANY object on the city cells, so that takes care of any city replacement mod.

You would need to replace (in the CS) the original ground texture with a better one, as well as covering the city cells with disabled trees and rocks. These would be enabled after the city objects are cleared, so the landscape will look "as if it never existed", as you asked.

 

No, because the city would still be visible at distance. As far as I know, there is no function to dynamically disable/remove LOD meshes.

 

And another big NO is that this process would probably break dozens of vanilla quests and create incompatibilities with dozens of mods.

 

Bottom line: not worth the trouble, unless you are doing just for fun.

Link to comment
Share on other sites

  • Recently Browsing   0 members

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