RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Custom Map Building

Dian

Sorceror
Sure, run the command [unfreeze map I believe.. or open [Admin gump, select the World Building page, and there should be a button to unfreeze the statics for the entire map.
You will then need to copy the statics# and staidx# files (where # is the number of the map you are working on) and replace them in your Ultima Online folder. Now relog in game.
That will take some time depending on how fast your computer is.. 5 minutes, to even an hour if your PC is old.
You will not want to just clear the facet, because you will also wipe the water transition tiles that are up against the land tiles.. the water borders, so from here, you may want to take some time and just run around wiping areas by hand or boundry box areas. You could also run commands wiping specific item #'s. like.. [facet delete where itemid #### I think would work.. might not be exactly the command, but you get the idea. take your time, and you can get great results.

The faster you try to run a command to clear areas, the more you will remove that you will realize you wanted to keep though.. just to keep in mind.

Im sure there are more ways, or better ways too.. but thats one way to do it using the client, not third party tools.
 

Dian

Sorceror
The water tiles are only one thing I mention that you would wipe if you did a [clearfacet command.. lava tiles, other ground item tiles, and so much more that you would not think about until its too late. So take your time.
 

pooka01

Sorceror
Could also make a script, unfreeze the map, then run the newly created script that deletes itemids on the world that are between "X and Y", or this way here is easier:
Code:
int[] first = {0, 8};//from 0 to 8
int[] second = {16, 256}//from 16 to 256, so it does not delete 9 to 15.
int[] etc...

where you specify all your intervals, or you could reverse it to only delete what is not in the list.
Code:
ArrayList ids = new ArrayList();
ids.add(Arrays.AsList(first));
ids.add(Arrays.AsList(second));
etc...

then:
Code:
for (int id in ids)
{
    Item[] items = find items on the [B][U]map[/U][/B]
    for (Item it in items)
    {
        if (it is Static && it ItemID == id)//if you want the thing to exclude a specified set of numbers then you must rethink the whole thing reverse.
            then if true, it.Delete();
    }
}



//here is the excluded version, --personally i think i would rather use this method, would also be faster if im right.
Code:
Item[] items = find items on the [B][U]map[/U][/B]
for (Item it in items)
{
    if (!(it is Static))
        return;
 
    boolean spare = false;
    for (int id in ids)
 
    {
        if (it ItemID == id)
        {
            spare = true; //this will look thru all ids, if one equals to the list number it will not delete it.
            return; //the spare boolean kind of acts like a "guilty until proven innocent", while ids being proofs of this innocence.
        }
    }
    if (!spare)
        it.Delete();
}



if you need help with that further just send a script support post and i'll help you, or feel free to pm me.
 
Top