Sure thing, I'll take a look later today at what will need doing, and try to take some actions to make things closer to fully buildworldable :)
 
compressing everything now... also uploading a new client since i did some map changes to sanctuary (and some won't know to copy the FILES folder to the client).
Post automatically merged:

okay May 11 version added, its (somewhat) cleaned of items, so you might get the odd item here and there but the bank is now cleared. for those updating from may 10, no need to overwrite your saves folder. copy the FILES files into your client and overwrite them to see the new map changes.
 
Last edited:
I"m noticing one thing: odyssey has tons of content, but the attitude was to have a door or entrance in the world that teleports the player to the content (in the black area of the map). So basically all homes, dungeons and places of interest are in the dark area and you need to teleport to it from the mainland.

That's fine, but as a result the "overworld" is incredibly bare. That's why ive added some content (labyrinth, zombie keep, animal sanctuary) on the overworld map to make it less bland. I feel like there's no real reason to walk from place to place - its just long streches of random forest and grass. So i'm trying to populate the overland maps.

I'm quite happy with the sosaria map as it is now, and lodoria is my next target. if anyone here has any ideas of what could be added to the overland map to populate it a bit let me know.
 
Good idea, yeah! :) I'll try to join in with Lodoria a bit later, but first I'll take a look at buildworld ;)

By the way, I'm noticing these braziers/cauldrons/whatever they are outside of Britain that are marked as "UNUSED" until I click them, at which point they turn into ordinary braziers and produce fire... I've been noticing them since the very first version of Ultima Adventures. Are they intentional? Do you know why they're marked as "unused" until you click them? :/ They look a bit out of place and glitchy at first sight
1589204061823.png

This is using the ClassicUO client. I thought that maybe it's something to do with my client build, so I have overwritten mine with your current ClassicUO client on dropbox, but I'm still getting this strange effect...
 
yes the classic uo client broke them... they are braziers, and sometime 2-3 weeks ago they suddenly appear as unused. I guess they could just be deleted... but i'm hoping classicuo will fix their issue, whatever it is.
 
by the way that screenshot shows your entire desktop, with what you are running etc. :D
you might want to use the "snippet" app in windows to select an area for a screenshot!
 
Hmm... major update going to happen today:

I actually hired someone to program a few scripts for me which were outside of my abilities...

the scripts will be:

A stable post that will display your pet that is stabled in the world (it won't disappear when you stable it!).
A PvM gauntlet event that will pitch players against a number of monster waves, with top scores/times recorded!

Looking forward to these later today :D :D
 
Alrighty, here's the first batch of updates necessary to get Buildworld going. This updates the Buildworld procedure itself with the following:
- Buildworld will now only use Spawns.map as a source for rebuilding and respawning PremiumSpawners, other files are commented out.
- Buildworld will now also respawn all standard RunUO spawners (type Spawner) upon being called, I noticed there were quite a few of them used in addition to PremiumSpawners, and I wanted to at least make sure they're respawned upon world reset.
- RandomEncounters.xml was corrected so that the overworld (wilderness) and guarded (towns) encounters actually work, and so that facets other than Lodoria also have a specification for guarded encounters.
- There's also a minor update for BlueGuard.cs that corrects a couple minor typos.

Note that I haven't done any [staex thus far, you may want to go over the teleporters (the ones I don't know about yet, for example) in a similar fashion as I did above for the Animal Sanctuary and store them in the decoration .cfg files so that they can be recreated even if deleted. However, even without that change, [buildworld should preserve the current decorations and teleporters, as far as I can tell, so it shouldn't be a priority issue.

I tried [buildworld with these changes and things generally seem to work and respawn correctly. I haven't noticed any missing decorations or people in the places I checked. For example, the tavern correctly has Lady Luck and the squire guys after a respawn. Britain has blue guards and townsperson NPCs. That kind of stuff. I noticed that there's a guy outside britain named Lord Cristoph [ESC] who neither despawns nor respawns during buildworld - he just lingers on. Not sure why, but probably he's not spawned through a PremiumSpawner, at least yet. I checked the champion spawn system in Ambrosia again and it works correctly, however, the only reason for that is because it's already saved in the base Saves file - if we add a new system in the future that won't be spawnable through a PremiumSpawner, we'll have to make sure to implement a script that'll rebuild that system upon a call to [buildworld in case this system is missing from the player's saved game. I also checked the NPC town in Ambrosia and it looks like the blues and the scroll dealers are also respawned upon buildworld.

Of course, this needs additional testing and tweaking - you may want to:
a) possibly run the spawner save command to produce the current version of Spawns.map, I'm not sure if the one currently in Data/Monsters is obsolete or not, I haven't touched it yet;
b) once done, try [buildworld with these changes and see what regenerates and what doesn't. If something doesn't regenerate, then, if it's a mobile, make sure there's a PremiumSpawner for it; if it's a decoration, make sure it's either in the .mul files or a part of the .cfg configuration file (via staex); if it's a system of some kind, we may want to think about how to write a script to start it after a buildworld command if it fails to work automatically.
Post automatically merged:

And wow, very exciting changes coming up! :)
 

Attachments

  • Update-Buildworld-pt1.zip
    11.9 KB · Views: 4
merging these now!
Post automatically merged:

Merged! thanks for the changes - i'll update the dropbox once the new scripts i mentioned above are added.

Compiles... thanks for keeping the $'s out :D

on a side note, i started using the sanctuary to collect tamables... i didn't put any signs or anything like that so people can choose where they want what
1589215456541.png
 
Last edited:
Well Gadget, I can confirm that the randomencounters work! I left my character idle for 5 or so hours and i came back to see tons of whipping vines, blue players, and even the (what was supposed to be) super rare healing dragon.

I guess because i was in the fogotten glade and i was near the mobiles they never despawned!

1589252519108.png
Post automatically merged:

also: found a bug: blue spawnable npc's spawned as "tamed" (not sure who was the controller), and even my red players spawned with a blue nametag because they were considered "tamed". looks like there's an issue with the way the premiumspawner spawns the mobiles...
 
Last edited:
Haha, that's interesting! :) And I haven't seen the "tamed" effect on any of the blue/red mobiles I've seen, at least the ones spawned from randomencounters... I'll try to take a look at what's happening when they're spawned via PremiumSpawner today ;)
Post automatically merged:

Ok, testing both red and blue spawnable NPCs of various kind (standard, young, red, red mage) via a PremiumSpawner, tried respawning multiple times, and I'm not getting the "[Tamed]" issue, can't reproduce it... do you know a surefire way to reproduce it, or a place in the game where it consistently happens for you?
Post automatically merged:

While looking for the tamed issue I found another funny little problem: next to the blue player village in Ambrosia, I've seen two blue players run around an elder brown bear in circles. The bear was attacking them, and they were healing it in response :D I guess they don't understand that it's an enemy critter or something like that, and they try to heal it to death, lol :)

That said, I tried multiple instances of buildworld to respawn the premiumspawners, followed by [global interface where redplayer and other stuff like that to locate various reds and blues in the world, and I couldn't find a single one that would have a wrong name tag color or a [Tamed] label on them...
Post automatically merged:

Oh, I think I know what you're referring to when you're mentioning the blue name tags... do you mean the ones that are inside the box, and they're blue even for red PK mobs? That's not because they're tamed, that's because those reds haven't committed any criminal acts yet (ironically), which is why their name tag doesn't turn gray (or whatever it turns into for a criminal). For that to correctly happen upon spawning, you need to modify BaseRed.cs to set Criminal to true when the creature is created, that'll make more sense since they must have deserved their red name and their gray tag by the time you "meet" them :) Here's a modified BaseRed.cs that accomplishes that.

By the way, another thing I noticed is that reds and blues talk to you even if you're hidden, which they probably shouldn't, so you may want to update the relevant NPC files (RedPlayer, YoungPlayer, etc.) to ensure that speech (and possibly other actions?) don't happen if m.Hidden is set for the mobile they're trying to interact with :)
 

Attachments

  • BaseRed.cs
    2.4 KB · Views: 2
Last edited:
the tamed effec tonly happens when they are spawned by randomencounters. try changing the randomencounters xml file to spawn reds or blues every second or so and you might see what i mean. the whipping vines above also didn't attach my character as they were tamed! i had my character sit there for a looong time so perhaps it has to do with the cleanup routine... i'm really not sure.

also, when i hovered my mouse over a "tamed" blue, it said "level 1 female", which is something that is done when a basecreature is tamed only. try setting the randomsapwner so its very frequent and make tons of stuff spawn, then just have your character sit in the lost glade like i did soee if it happens.

thanks for the basered change!
Post automatically merged:

changed the blues so they don't heal/talk to hidden players :D
 
Last edited:
Hmm, I'll try to take a closer look at the RandomEncounters-spawned blues and reds a bit later then :) If I figure anything out, I'll let you know :)
 
I'm looking at the RandomEncounters code and I don't see anything there yet that would set the owner... but I haven't looked at the entire code base yet, so hold on :)
 
yeah i tried to search for "control" and "controllmaster" and didn't find anything.
Post automatically merged:

im going to replicate the issue
 
I guess I'll need to run a "stress test" to see what's happening with it. It doesn't seem to happen under ordinary circumstances, at least often - I haven't seen any effect like that yet even though I tested the spawner rather extensively before. I'll let you know if I reproduce it and figure out why it's happening :)
 
Oh, wait a sec... can you send this saved game over?
Post automatically merged:

That might help me reproduce the issue or at least inspect things a bit closer
 
1589287899429.png
Post automatically merged:

sure thing.. i'll upload to the dropbox right away. give me 5 mins
Post automatically merged:

okay uploaded to dropbox. login to wizard.
 
Hmm... i think it may be a different approach, for example, if the creation script assigns the wrong AI type.
see import.cs:

C#:
            foreach( string spawn in spawns )
            {
                Type        typeObject  = SpawnerType.GetType( spawn );
                object      created     = null;
                double      level       = 0.0;
                double      p           = 0.0;

                if (typeObject == null)
                {
                    continue;
                }
                try
                {
                    created = Activator.CreateInstance( typeObject );
                }
                catch( Exception e )
                {
                    Console.WriteLine(e);
                    continue;
                }

                if( created is TownHerald ) continue;
                if( created is BaseVendor ) continue;
                if( created is Mobile )
                {
                    Mobile m = (Mobile) created;

                    bool hostile = (m is Townsperson) ? false : true;

                    if( m is BaseCreature )
                    {
                        BaseCreature c = (BaseCreature) m;

                        switch( c.AI )
                        {
                            case AIType.AI_Healer: { hostile = false; break; }
                            case AIType.AI_Vendor: { hostile = false; break; }
                            case AIType.AI_Animal: { if( c.Fame < 400 ) hostile = false; break; }
                        }
                    }

                    level = Helpers.CalculateLevelForMobile( m, LevelType.Overall );

                    p = 1.0 / Math.Pow( 1 + level, 1.4 );

                    ImportRecord ir = new ImportRecord(
                        (Mobile) created,
                        spawn,
                        x,
                        y,
                        z,
                        hRange,
                        sRange,
                        n,
                        mapName,
                        region.Name,
                        level,
                        hostile,
                        p
                        );

                    //Console.WriteLine("        "+ir);

                    encounterSet.Add( ir );
                }
            }
        }
    }

there must be something that is overwritted when the mobile is created which basecreature then just sets as tamed=true .
 
i might just comb through basecreature to see under what circumstances it sets tamed=true. one of those will be the likely issue.
Post automatically merged:

okay i'm looking at the import.cs file.. looks liek that's what is used to bring a mobile into the world. the file looks at these variables:
C#:
        Mobile          mobile,
        string          spawn,
        int             x,
        int             y,
        int             z,
        int             hRange,
        int             sRange,
        int             n,
        string          mapName,
        string          regionName,
        double          level,
        bool            hostile,
        double          p

the only one i can see that would cause an issue is "hostile". if hostile is set as false on generation, that could be the culprit...
 
Last edited:
Ok, so far I don't have a definite answer regarding this issue, but I have a strong suspicion that it might be related to the fact that those spawns are being created for a GM account. Could it be that a GM receives those as tame? :/ Note, by the way, that anything that is marked as Tame may not be despawned through RandomEncounters, if I understand the code and the comments right in Timers.cs (of RandomEncounters).
 
yeah... i can recall this tame thing happening in a dungeon with my non gm character. I was in dungeon of time awaits and a skeleton spawned and it was blue and didn't attack me. there is some circumstance involved which i can't put my finger on... maybe has to do with the "region" of the spawn? because the regions aren't well translated to the script perhaps it just thinks the spawns can't be enemies....
 
hmm.. i decided to keep one of the tamed whipping vines in the lost glade and call it "joe the tangle" but the name got rejected! So... i disabled the name check system. It's our server after all so why wouldn't we be able to rename pets to whatever we want??

:D
 
Haha, true :)
Post automatically merged:

Ok, I'm running a stress test right now in the Lost Glade, it has certainly gotten pretty busy and crazy over there, lol, but nothing that spawns ever gets a [Tamed] sign on it so far... been running like that for quite a while. Lost Glade is where you got the issue for sure, so it doesn't seem to be directly (at least intuitively) connected to the region type, hmm :/
 

Attachments

  • 1589294524607.png
    1589294524607.png
    1.6 MB · Views: 18
Last edited:
That's using my non-admin Tester account, I actually can't get anything to spawn for the admin since he's hidden, looks like the system actually won't spawn anything for a hidden character.
 
not sure if your interested in new icons or not (spells and what not), but i found this lying around my extra scripts folder. im working with fiddler right now to get them changed and see how they look in game.
 

Attachments

  • Spell_Icons_1_1_0.zip
    1.7 MB · Views: 3
okay.. well it was for my character too, but my character WAS hidden (he has hiding skill).

and it still spawned crap
Post automatically merged:

not sure if your interested in new icons or not (spells and what not), but i found this lying around my extra scripts folder. im working with fiddler right now to get them changed and see how they look in game.
are you adding them to this fork's muls? If so, let me know i'll include them. what are you going to use them for? "beard.bmp" lol
 
since theres alot of icons in the folder was thinking a rehaul of the icons used for spells would be a good use for some of them. looks like the icons we have in game are the same ones used in most shards and the base copy of ultima itself, where as these ones should be completely different.
 
i quite like the old icons though - just a preference of mine. I would update some of them only, especially the chiv/necro ones that might need updating.... just my 2c :) share what you end up doing!
 
Back