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!

Ultima Live - In Game Map Editing Framework

If its the playermobile.cs edits that are hanging you up, I've uploaded a distro from the latest release with the ultima live edits included. If your having other issue's, please explain in detail what you've done so I can help you with it.
 

Attachments

  • PlayerMobile.cs
    111.7 KB · Views: 14

Witsfool

Wanderer
Only other question I have is: where is this "customs" folder located, or where am I supposed to create it if it doesn't already exist?
And thank you very much for the playermobile.cs download, saved me massive headaches.

EDIT: Okay, I DLed that playermobile.cs file, and renamed and replaced the old one. I'm still getting the same error, it says a script was unable to compile after a whole bunch of angry looking red messages. I can only assume that this is because of the Customs folder. Perhaps I put it in the wrong place...
 
You should place the server files into the main directory of runuo (which I made a folder there called customs to hold the server files) and place the scripts into your runuo scripts folder.
 

Witsfool

Wanderer
Aha! Now it appears to have worked. Thank you very much.

EDIT: now it says to put the archive into the main Razor folder, so I assumed that meant everything else besides the "server files" folder. But when I run the setup.bat file, I get a message that says, "ERROR: The system was unable to find the specified registry key or value."
And then a bunch of "access is denied" messages with 0 files being copied, and then it says REPAIRED!
Is that how it's supposed to go, or am I still jacked up?
 
Aha! Now it appears to have worked. Thank you very much.

EDIT: now it says to put the archive into the main Razor folder, so I assumed that meant everything else besides the "server files" folder. But when I run the setup.bat file, I get a message that says, "ERROR: The system was unable to find the specified registry key or value."
And then a bunch of "access is denied" messages with 0 files being copied, and then it says REPAIRED!
Is that how it's supposed to go, or am I still jacked up?


If I remember right, that's the process for the setup to razor, you should be ready to go now!

If you want a beta interface I made for the system, check it out, Link.
 

Witsfool

Wanderer
Okay, downloaded your interface and followed the installation instructions (copied contents of Gump, Target, Timer and whatever the fourth one was into the respective folders in Scripts. And copied Ultimalive.cs into the "customs" folder in main runuo directory). After that I restarted client and it errored out during compiling. Target got a warning, and Timer and Gump both got errors. Did I put something in the wrong place?
 

Witsfool

Wanderer
Lol, that explains that.I looked there but didn't see one. I'll fix it when I get home in the morning and see if that fixes it. After I play around with it, I'll come back if I need any help.
Again thank you very much for the time and help.
And for the interface, Heh
 

Witsfool

Wanderer
Okay, I just moved the "Customs" folder into the Scripts folder. The result was this:

RunUO - [www.runuo.com] Version 2.1, Build 4272.35047
Core: Running on .NET Framework Version 2.0.50727
Core: Optimizing for 2 processors
Scripts: Compiling C# scripts...failed (1 errors, 6 warnings)
Warnings:
+ Customs/MapOperations.cs:
CS0108: Line 61: 'UltimaLive.MapOperationSeries.BlockNumber' hides inherited
member 'UltimaLive.BaseMapOperation.BlockNumber'. Use the new keyword if hiding
was intended.
CS0108: Line 66: 'UltimaLive.MapOperationSeries.MapNumber' hides inherited m
ember 'UltimaLive.BaseMapOperation.MapNumber'. Use the new keyword if hiding was
intended.
+ Customs/MapChangeTracker.cs:
CS0168: Line 136: The variable 'e' is declared but never used
CS0168: Line 213: The variable 'e' is declared but never used
CS0168: Line 300: The variable 'ecc' is declared but never used
+ Customs/MapRegistry.cs:
CS0436: Line 80: The type 'Server.Network.LoginComplete' in 'c:\Users\Christ
a\Downloads\RunUO-2.2\Scripts\Customs\packets.cs' conflicts with the imported ty
pe 'Server.Network.LoginComplete' in 'c:\Users\*******\Downloads\RunUO-2.2\RunUO
.exe'. Using the one in 'c:\Users\*******\Downloads\RunUO-2.2\Scripts\Customs\pa
ckets.cs'.
+ Customs/UltimaLive.cs:
CS0219: Line 795: The variable 'newTileCount' is assigned but its value is n
ever used
CS1717: Line 687: Assignment made to same variable; did you mean to assign s
omething else?
CS1717: Line 687: Assignment made to same variable; did you mean to assign s
omething else?
CS1717: Line 688: Assignment made to same variable; did you mean to assign s
omething else?
CS1717: Line 689: Assignment made to same variable; did you mean to assign s
omething else?
CS1717: Line 690: Assignment made to same variable; did you mean to assign s
omething else?
CS1717: Line 691: Assignment made to same variable; did you mean to assign s
omething else?
CS1717: Line 692: Assignment made to same variable; did you mean to assign s
omething else?
CS1717: Line 693: Assignment made to same variable; did you mean to assign s
omething else?
+ Gumps/ULEG.cs:
CS0219: Line 704: The variable 'first' is assigned but its value is never us
ed
+ Targets/ULETarget.cs:
CS0162: Line 324: Unreachable code detected
Errors:
+ Customs/ClientFileExport.cs:
CS0117: Line 38: 'Server.Commands.Properties' does not contain a definition
for 'Register'
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.

So, explain whatever stupidity I did to get this please.
 

Praxiiz

Sorceror
Which release are you using?

I'm having a bit of trouble getting this system to load on SVN 663 ML.
properly followed the instructions for Playermobile.cs Edits.
the server is halting on this error:

ClientFileExport.cs:
CS0117: line 17: 'Server.commands.properties' dose not contain a definition for 'Register'

UltimaLive.cs:
CS0117: line 22: 'Server.commands.properties' dose not contain a definition for 'Register'

In each of those respective files, remove the​
Properties.Register();​
lines. I'll update the package downloads once I get this next release done.​
 

Witsfool

Wanderer
Ultima Live v 0.24 alpha with GoldDraco13's interface additions
RunUO v 2.2

EDIT Okay, removing the Properties.register thing worked. Now it loads with no errors or warnings.
However, I'm still lost. I attempted to define a simple map just to expirament.
Edited the MapDefinitions.cs like the instructions said. This is the line I added:

RegisterMap( 34, 0, 0, 1024, 1024, 4, "Isle", MapRules.TrammelRules );

Now, when I go into the game how do I go there, to begin editing it?
Or is there something else I have to do first to create this map that I am missing entirely? Like a different program or something?
 

Witsfool

Wanderer
I can go "Isle". And I made sure to go to 512 512 0, which should put me at the center of the map. But if I try to do anything with the ULETool, or to just use Console commands to edit, I get this:

Error:
System.NullReferenceException: Object reference not set to an instance of an obj
ect.
at UltimaLive.LandOperation..ctor(Int32 x, Int32 y, Int32 mapNum)
at UltimaLive.SetLandIDCommand.Execute(CommandEventArgs e, Object obj)
at Server.Commands.Generic.BaseCommandImplementor.RunCommand(Mobile from, Obj
ect obj, BaseCommand command, String[] args)
at Server.Commands.Generic.MultiCommandImplementor.OnTarget(Mobile from, Obje
ct targeted, Object state)
at Server.Mobile.SimpleStateTarget.OnTarget(Mobile from, Object targeted)
at Server.Targeting.Target.Invoke(Mobile from, Object targeted)
at Server.Network.PacketHandlers.TargetResponse(NetState state, PacketReader
pvSrc)
at Server.Network.MessagePump.HandleReceive(NetState ns)
at Server.Network.MessagePump.Slice()
at Server.Core.Main(String[] args)
Crash: Generating report...done
Crash: Backing up...done
Crash: Restarting...done
 

Praxiiz

Sorceror
UltimaLive 0.50 is the current release, make sure you are running the latest.

Also you need to make sure to register maps in two places, /scripts/misc/MapDefinitions.cs and in your customs where you put the UltimaLive server files, MapRegistry.cs

MapDefinitions.cs is where RunUO defines logical maps and links them to a physical map number.

MapRegistry.cs is what UltimaLive uses to define additional physical map files for the client.
 

Witsfool

Wanderer
Okay, I downloaded the .50 version and will install it pronto. Would it be at all possible to get a brief rundown of what this means:

m_Definitions.Add(0, new MapDefinition(0, new Point2D(7168, 4096), new Point2D(5120, 4096))); //Felucca

What is the purpose of "new Point2D", for example.

Thank you for the help
 

Praxiiz

Sorceror
m_Definitions.Add(0, new MapDefinition(0, new Point2D(7168, 4096), new Point2D(5120, 4096))); //Felucca

The NEW keyword creates an instance of a class, in this case RunUO's Point2D class
Point2D This is a simple structure that just holds an X and Y coordinate (X,Y)

In this case we're not using it as a coordinate, but as a dimension.

new Point2D(7168, 4096) is the first argument, which is registering a map with the physical size that is 7168 tiles wide by 4096 high
new Point2D(5120, 4096) is the second argument, which indicates that the world should wrap around at 5120 - which means the space to the right of that is dungeon space. Right now UltimaLive ignores this for auxiliary maps.
 

Witsfool

Wanderer
Okay, so if I wanted a map that was the smallest possible size to start with, then I would do new Point2D(1024, 1024)
Do I need a second point if I don't intend to wrap around? And if so, what would I put to basically make it irrelevent?

EDIT: The map dimensions appear to be set, but everytime I attempt to edit a Land tile, this still happens:

Error:
System.NullReferenceException: Object reference not set to an instance of an obj
ect.
at UltimaLive.MapChangeTracker.MarkLandBlockForSave(Int32 map, Point2D block)
at UltimaLive.LandOperation.DoOperation(Dictionary`2 blockUpdateChain)
at UltimaLive.SetLandID.DoOperation(Dictionary`2 blockUpdateChain)
at UltimaLive.BaseMapOperation.DoOperation()
at UltimaLive.SetLandIDCommand.Execute(CommandEventArgs e, Object obj)
at Server.Commands.Generic.BaseCommandImplementor.RunCommand(Mobile from, Obj
ect obj, BaseCommand command, String[] args)
at Server.Commands.Generic.SingleCommandImplementor.OnTarget(Mobile from, Obj
ect targeted, Object state)
at Server.Mobile.SimpleStateTarget.OnTarget(Mobile from, Object targeted)
at Server.Targeting.Target.Invoke(Mobile from, Object targeted)
at Server.Network.PacketHandlers.TargetResponse(NetState state, PacketReader
pvSrc)
at Server.Network.MessagePump.HandleReceive(NetState ns)
at Server.Network.MessagePump.Slice()
at Server.Core.Main(String[] args)
Crash: Generating report...done
Crash: Backing up...done
Crash: Restarting...done
 

Witsfool

Wanderer
I remain confused. I appear to have created the map correctly. I can log into the game and [go to it. I put myself in the exact center, and even though I can see the copy of the Core map, my character cannot walk past the 0 boundary or the 1024 boundary. However, every single time I attempt to change anything, I get this crash log:

Exception:
System.NullReferenceException: Object reference not set to an instance of an object.
at UltimaLive.MapChangeTracker.MarkLandBlockForSave(Int32 map, Point2D block)
at UltimaLive.LandOperation.DoOperation(Dictionary`2 blockUpdateChain)
at UltimaLive.SetLandID.DoOperation(Dictionary`2 blockUpdateChain)
at UltimaLive.BaseMapOperation.DoOperation()
at UltimaLive.SetLandIDCommand.Execute(CommandEventArgs e, Object obj)
at Server.Commands.Generic.BaseCommandImplementor.RunCommand(Mobile from, Object obj, BaseCommand command, String[] args)
at Server.Commands.Generic.SingleCommandImplementor.OnTarget(Mobile from, Object targeted, Object state)
at Server.Mobile.SimpleStateTarget.OnTarget(Mobile from, Object targeted)
at Server.Targeting.Target.Invoke(Mobile from, Object targeted)
at Server.Network.PacketHandlers.TargetResponse(NetState state, PacketReader pvSrc)
at Server.Network.MessagePump.HandleReceive(NetState ns)
at Server.Network.MessagePump.Slice()
at Server.Core.Main(String[] args)

Is there some crucial step that I'm missing? Like do I need to edit from the server, instead of the client, or something? I saw an instruction on the first page that said do not use this on a live server, what does that entail?
 

fwiffo

Sorceror
I've done my question in another post, but I suppose that it was unseen, is there any possibility to add to your system a check for local user file md5 beside the map? for example to check arts, even update them maybe at connect time..
 

Zyx

Wanderer
Fw, a person named Hash explained the versioning system pretty thoroughly earlier.

Praxiiz, nice work. I can't wait to see the finished product.

By that, I mean, I'm going to steal this, map out all the packets and make this work efficiently with streaming real-time updatesto Z, tileID, walling, and animdata.
 
Top