Praxiiz

Member
Praxiiz submitted a new resource:

UltimaLive - Use more than 6 map files, Stream changes to clients in realtime

UltimaLive v.0.98

Introduction

The purpose of UltimaLive is to allow a shard to edit its maps while the game is running, stream those changes to its players in realtime, and use more than six map files.

Map Editing and Streaming

UltimaLive provides shard developers the ability to alter maps without the hassle of redistributing map files to their entire player base. This gives shard developers the possibility of scripting events that make changes to the game maps while the shard is...

Read more about this resource...
 
Is this safe for drag and drop updating from 0.97? or is there some items we should be careful of?
 
I still need to release the compiled v.0.98 igrping.dll. For now I would stick with the 0.97 dll unless you feel like compiling from scratch. I will make the v.0.98 dll available as time allows.

The VS2010 project is still there, but VS2013, and 2015 need to be added. I am going through the repository and updating it to work with latest version of visual studio.
 
As for Boats being able to wrap... as long as everything is clearly registered in MapDefinitions.cs and you edit the BaseBoat.cs script you're good to go with wrapping. Now keep in mind the code below is from BaseBoat.cs and it has been customized for a different (playable) map size within a trammel/ felucca size physical world. The original BritWrap rectangle has been commented out below. You may need to edit the Map.cs in your server console source as well. To accomplish what I did I edited that Map.cs, the MapDefinitions.cs, BaseBoat.cs, and the MapRegistry script that came with Ultima Live; in fact I merged that with my MapDefinitions.cs script.

Code:
public abstract class BaseBoat : BaseMulti
{
	//Notes: 170 = border from ocean to left side West to East | 370 = border from ocean to top North to South | 5130 = Where map ends on right 	side | -190 = Calculates if there is enough room from right side to left side | 3733 = where map ends on the bottom | 379 = Makes sure there is enough room to wrap from the bottom to the top
	private static Rectangle2D[] m_BritWrap = new Rectangle2D[]{ new Rectangle2D( 170, 370, 5130 - 190, 3733 - 379) };

	//private static Rectangle2D[] m_BritWrap = new Rectangle2D[]{ new Rectangle2D( 16, 16, 5120 - 32, 4096 - 32 ), new Rectangle2D( 5136, 	2320, 992, 1760 ) };

	private static Rectangle2D[] m_IlshWrap = new Rectangle2D[]{ new Rectangle2D( 16, 16, 2304 - 32, 1600 - 32 ) };

	private static Rectangle2D[] m_TokunoWrap = new Rectangle2D[] { new Rectangle2D( 16, 16, 1448 - 32, 1448 - 32 ) };
[doublepost=1468350637][/doublepost]For most of you using OSI/EA/Mythic/Broadsword clones the above notes are still important, but you need to know what this 2nd section means:

..., new Rectangle2D( 5136, 2320, 992, 1760 ) };

Code:
//private static Rectangle2D[] m_BritWrap = new Rectangle2D[]{ new Rectangle2D( 16, 16, 5120 - 32, 4096 - 32 ), new Rectangle2D( 5136,  2320, 992, 1760 ) };

This second section is the The Lost Lands portion of your map (where Papua and Delucia are located). Any mini-maps (or regional maps - like the old school dungeons and dragons maps) that you create with oceans should be added like this.
 
Last edited:
I'm on the verge of releasing access to an extended part of my shard that makes use of over 50+ custom maps thanks to this amazing system. This update helped a lot.
 
I got this working successfully with no error on client 7.0.49.2 . I suspect it should work just fine for that version as well.
 
works fine for me on 7.48.something. Note Im still using 0.97 dll with these scripts because I cant seem to get the 0.98 dll to compile. Not sure what im doing wrong.
 
Last edited:
That would be many maps to explore :)

Completely custom built creatures/dungeons, and a tiered system, so you have to earn the right to enter the next map. so far this has turned out to be a nearly a 2 year project.. lol comes with working alone =p
 
Anyone have the .98 dll that they'd be willing to post or privately send? Would be greatly appreciated.


Nevermind, finally found the 0.98 here on the forums, just didn't look hard enough.
 
Last edited:
Been looking For the Igring_0_98.dll/Igrping_0_98_debug.dll's and can't seem to find them anywhere i know i can use the .97 version but wanna get everything up to date to see if that will fix some issues so if anyone has copies of them please post them or send them to me in a message i would really appritate it... Thank you
 
hey i got everything working properly but even with the igrping_debug_98 dll i found that when using it that my Felucia and Ilishenar maps are all messed up i put it back to the OSI copy and they are fine, is there going to be a release of the 98.dll that will not cause this to happen?? really do love the system and want to make it work but i got no clue on how to make/change dll files what so ever...

and i even tried doing it with the 97.dll and the same thing happened i am running the new 7.0.52.2 client so that i am able to use the New functions and strings in the Newest copy of servuo that has the ToL support
 
I've been using this for a while now with several client versions including the newest and haven't had any issues, you might want to go through the setup steps again to be sure you have everything in correctly.
 
not sure, I can run it on my system locally, but when I try to have someone connect remotely from the internet side, they seem to have issues with falling thru holes and the like. Kind of baffling to say the least, as I have gone thru the same steps on both server and client sides, but will eventually figure it out.
 
I have dont it 3 times and everything checks out no issues with the code it's only 2 maps that are messed up everything else works fine i use the normal OSI ddls and all maps are good but as soon as i change the dll's boom Felucia and illish break... and as for @Tawss u have to make sure u give the outside client the Dll's and have them change there dll's for them to see whats changed or them falling in holes will happen... found that out with my other remote machine lol
 
Right, well I'm remotely connecting to the server but Im on the same network and all works well. When I try for someone that is outside my local network I'm still having issues. Clients are patched up to 7.0.52.2 I think is the latest. I've manually copied the mul files into their directories on the C drive folder that UOLive creates and put the UOP versions in the client directory for each system. Something may have been corrupted in copying over to the thumb drive, so I will go back and try it all again. I figure it is something simple that I'm not doing.

I will note that I am not doing the streaming aspect of the maps, instead have opted to load them direct to each client and use FTP to get a file to others that will connect and play, not sure how much this may be affecting the overall operation.
 
Right, well I'm remotely connecting to the server but Im on the same network and all works well. When I try for someone that is outside my local network I'm still having issues. Clients are patched up to 7.0.52.2 I think is the latest. I've manually copied the mul files into their directories on the C drive folder that UOLive creates and put the UOP versions in the client directory for each system. Something may have been corrupted in copying over to the thumb drive, so I will go back and try it all again. I figure it is something simple that I'm not doing.

I will note that I am not doing the streaming aspect of the maps, instead have opted to load them direct to each client and use FTP to get a file to others that will connect and play, not sure how much this may be affecting the overall operation.


Hey that actually could be whats causing the issue, i know i have mine to mainstream to the connecting client and as long as they have the .Dll's for UltimaLive it works, cause the .mul files for the maps do not read properly with the 7.0.52.2 client they HAVE to be UOP files so i didn't wanna have to keep repacking my files and such all the time so people can connect and see what i have changed so the best way was to do the mainstream to the connecting clients
 
As for using the 2015 project, and latest download from git, there is some problems in vectors and mapdefinition, data isn't maintained, I've begun reading something that could matter, but it seems that this could be a cause for data not correctly maintaned when using local variables (maybe because of compiler optimizations?!).

Do you have a visual studio 2015 to test? (I'm speaking of C++)
[doublepost=1478340750][/doublepost]Confirmed. in 2010 The result remains Clean. Something is not right. I'll go with debugging, in mapdefinition And map registration on packet received by the server, when that data is inserted in vector "definitions" It gets modified, as if The memory region isnt kept...
 
There were a lot of internal changes from 0.97 to 0.98, but functionally they should be the same. I'm still working on cleaning up the 2013 and 2015 projects. I haven't verified their functionality, but I should be able to get to that soon.
 
@Praxiiz do you got any idea what would cause the 2 maps to go all messed up with using the 97 and 98 dlls (only got the debug vresion of 98) but for some reason felucia and ilishnar maps are messed up when i use those dll's but work fine when i use the OSI dlls. i thought it might have been something to do with corrupted map files so i went and did a clean install of my clients both server side and remote client side and still the same thing happens, And no i have not edited the files for the clients at all other then changing the dlls' like i need to for the UltimaLive to work
 
How are they messed up? Are the blocks just rearranged, or are you missing tiles, or are they the wrong tiles?
 
How are they messed up? Are the blocks just rearranged, or are you missing tiles, or are they the wrong tiles?
All the above LOL everything is blocked some buildings you can see other you can't hard to walk cause everything is jumbled around one tile will be grass anouther will be water and each block/tile is different it's like someone decided to make a jigsaw puzzle out of the 2 maps, if you want i can put it up this evening and give you the info to login and u can see what is going on i have a few last min things to do on my server as i just did some hardware changes and just finishing up the last few things i need to do today before i can get the shard back online.... i am on Discord so i can send u the info on there if you want when i have it up and running and i am on there so i can take and show u... i will use the .97 files i like those ones cause i don't like the debug window loading all the time like it does with the .98 dll
 
So I ran into an issue, Not a terrible issue but something I wanted @Praxiiz opinion on. Regarding my issue on forum post ' https://www.servuo.com/threads/robe-bodymod-issue.5716/page-2#post-38075 ' , I made a shroud, when a gargoyle toon wears those shroud they bodymod into a human. Using some script mods, i made it so gargoyles wearing this shroud are allowed to ride mounts like normal humans. This whole process works correctly however the problem is, if a player uses the shroud and mounts a horse or any mount then dismount and remove the shroud, the toon disappears to all other players. This is easily fixed by that toon logging out and back in again.

Now if i use a patched client up to current version and UOsteam my way in, the problem does not happen with the patched UO client, however i then dropped in the LRP file into the patched client to add in Ultima Live, and the problem returned. So I'm not sure how or why this affects this change but I looking to get some input on it.

Currently using Ultima Live 0.97, if you need any scripts or code let me know please.
 
@Joshua only thing i can thing of to try is install the 0.98 dll (it's a debug version) but at least its more up to date and it may show u what is happening...
 
To save me time, by chance do you have the recompiled lrp file? if not no prob, just wanted to check this out sooner then later.. lol
 
no sorry but i seen one on here a little while ago but can't remember whre it was.... and the one i had i deleted on accident :)
 
ok. so I finally found out that the new maps are stored outside of the Ultima folder. mine are stored at C:\ProgramData\Ultima Live, on win 10home.
Now all I need do is find the Igerping.dll file needed. Please send the newest, or a link to it.
[doublepost=1482177715][/doublepost]OK. A Great Thank you to the Gent that sent me the files. this is supposed to be the newest.
 

Attachments

  • Igrping.7z
    470.5 KB · Views: 43
Do all version of the file, debug and non have the popup window? I mean it is great for checking for problems, but i get it with the debug and the non debug in the above file, and it would be nice to have a less verbose option for people who don't want the extra windows cluttering their screen.
 
Do all version of the file, debug and non have the popup window? I mean it is great for checking for problems, but i get it with the debug and the non debug in the above file, and it would be nice to have a less verbose option for people who don't want the extra windows cluttering their screen.

If your using the debug version yes it pops up a window but 0.98 is only a debug version i use the 0.97 version and it does not pop up the window
 
Thank you, I've tested it, its really great! It works like a charm.

By the way, I would like to test the streamer without creating a new map: if I would like to create a blank map like felucca?
 
Any idea if this would be usable to make Ultima a "survival" type game? I see the cave mining and lumberjacking which would fit perfectly... Been toying around with the idea of allowing players to "claim" land and build on the plots. Sort of a town system?

No idea if this is too crazy of an idea but this seems like it would help.
 
This would assist with that if as part of the claims they were able to terraform. If you want just the ability to claim land areas and build on them, there are a few player government type systems that allow that sort of thing.
 
This would assist with that if as part of the claims they were able to terraform. If you want just the ability to claim land areas and build on them, there are a few player government type systems that allow that sort of thing.

Awesome, I'll have to check into those systems. Trying to figure out a way to make UO a new interesting experience. After all these years games still suck, figure manipulating the base game would be a great start.
[doublepost=1485202794][/doublepost]Follow up question: Do ships and sailing work correctly using this?
 
This would assist with that if as part of the claims they were able to terraform. If you want just the ability to claim land areas and build on them, there are a few player government type systems that allow that sort of thing.
Are you referring to the player town government system and such? I realy really REALLY want to add that to our hobby shard, but the only copy I have is for like runuo2.0rc2 or something and converting it to servuo is beyond me. Do you know of any that have already been converted sir?
 

Active Shards

Donations

Total amount
$80.00
Goal
$1,000.00
Back