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

Praxiiz

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..

Yes, this is possible. I'd like to add that capability at some point. Right now I'm working on a system to cache client versions so that I can test this system across a bunch of clients and operating systems. After I get that done, I'll be working on making it more stable and clarifying documentation.
 

fwiffo

Sorceror
praxiiz, may I ask you if you've put anywhere the source or assembly code for the other files you used (reloader, clientalterations, etc)? I was interested in doing something myself, like file crc checking on other files other than maps, but this needs packet handling.

Istead of re-enginering and understanding from the ground everything, it would come in handy to put hands on whatever you've already done there.
I am really curious about everything. *Only if you wish, of course!*

And another question, are you still on this project? I'm even eager for another release :D
 

Praxiiz

Sorceror
I'm still working on this project although it has been slow. Currently, I'm in the process of building a client repository - a program that will run along side the regular UO patcher and cache all the client versions along the way using diffs. It will then allow you to quickly get a copy of any client version. You'd only have to go through the patch process once and then you'd have the ability to get a specific client version.

This is critical because it allows me to test using a variety of clients with this framework.

There is a danger in releasing the source code for clientalterations.dll and reloader.dll to the community because they could be used as a tutorial for hacking Razor. I really want to avoid that. I am willing to support other client files and let people patch them from the server side.
 

Sythen

Sorceror
Razor might still work, I just haven't used it in a long time. I log into my server using the login.cfg and a decryption script
 

Safera

Page
I don't use Razor either, I agree with Sythen.

It's just one more confusing thing for players to have to figure it out when it isn't really necessary, imho, of course.
 

Warstone

Sorceror
It's isn't really necessary. Because all it features (except some exotic, like game window size) a make with other programs, that you need run once.
 

Safera

Page
Decrypt the client and then use login.cfg to configure your ip number. It's really straight forward, but I'll have to run back through and try to figure out which program I used to decrypt the client. Maybe someone else has done this recently and knows which program worked? If so, please share the link here.
 

Sythen

Sorceror
I Use The Script Files I Uploaded Below: :)

Step 1: Open "Encryption\EncryptionUtilities\Calculate Login Key"
Step 2: Double Click "Calculate Login Key" and Enter The Client Version Number Your Server Uses:



Step 3: Once You Have The 2 Login Keys Insert Them Into The "Game Encryption.cs" Using The Format Below:


Step 4: Go Into The Ultima Online Client Directory (Your Server Uses) And Edit It To Look Similar To This:



Step 5: Make Sure All Your Players Are Using The Same Client Versions And Send Them The Updated "Login.cfg" File.

Your Done! Congrats :)
 

Attachments

  • Encryption.rar
    73.3 KB · Views: 13

Sythen

Sorceror
@Warstone:

Yeah, well ummm... I decided to post it because that website isn't clear on how to install it or use it. Its just a repository. Plus I changed up the directory tree to make it easier to manipulate. The files are the same, but my directions are better :p

I also added another application I found that will decrypt the client; but its in spanish :cool:. To use that program just drag and drop the client.exe file onto the application program and a new "decryted" client.exe will be created automatically.
 

Praxiiz

Sorceror
So instead of downloading razor and letting it take care of everything, players should go through this process, why? Seems like more work / confusion, not less. Then every time they want to play on another shard, they've got to edit a file instead of entering the ip address into Razor's opening dialogue...

And if they want to revert to play on EA, they have to alter the login.cfg file again, and keep track of which client is encrypted, and which client has been decrypted? Razor simplifies this whole process.

If a player wants to play on EA, they don't run razor. If they play on a custom shard, they run razor and enter the IP address.

Also this project depends on Razor. Why would I spend an additional 3 to 5 months writing the functionality that razor provides when it is already freely available?
 

Sythen

Sorceror
So instead of downloading razor and letting it take care of everything, players should go through this process, why?
:confused:

Really?! Players dont go through this process... The server owner goes through this process.... Distributing the Login.cfg file is as simple as having it available for download on a website... ROFL :eek: Players can then download it and manually install it into their client.exe directories (the time it takes depends on your fine motor skills and how fast your machine is; for me thats less than 1 minute).

Then every time they want to play on another shard, they've got to edit a file instead of entering the ip address into Razor's opening dialogue...
Stop speculating, players can still run Razor and log into as many servers as their heart desires because Razor overrides the Login.cfg file. :rolleyes:

If a player wants to play on EA, they don't run razor. If they play on a custom shard, they run razor and enter the IP address.
:p
You can Log Into EA Using Razor... Use The Search If You're Interested The Process Tutorial Is Somewhere On These Forums...
Most people should realize that if you run a free server and you play on multiple free servers or even on the commercial version of UO... you should have multiple instances of the UO client.exe and associated data files!
The reason is because a true custom server is 100% custom and not an OSI clone. That said there is a lot of patching that must be done that will be incompatible with other servers and EA's commercial shards. So to simplify this: if I am playing 3 free shards at any given time then I'm going to have a seperate folder for all three shards/servers in my Program Files (x86) folder: 'CustomServerA', 'CustomServerB', 'CustomServer C'
And these folders will contain all the patched files for each of them in their own corresponding folders. Makes things easier in the long run.
Also this project depends on Razor. Why would I spend an additional 3 to 5 months writing the functionality that razor provides when it is already freely available?
:D

Well that explains your defensiveness to my question initially regarding Razor and your response to my solution. Honestly man, I love the work you've done here so I'm not knocking it! However tit for tat (you're defensiveness for mine and I'm not trying to be mean); your project breaks the client's Radar which is the only reason I haven't installed it.

If your project depends on Razor, I'm sorry. I'm not trying to sway you one way or another, its all a matter of preference so let the players decide. The edits above are meant to be done by the server owner; players don't edit a thing - they just patch. All map editing to be done should always be done by the server owner or a designated map person; in such a case they can still use Razor to connect and your project will run just fine. No need to get defensive over a simple suggested alternative; kind of silly. Also the alternative is available freely as well - just like Razor.

The difference is Razor is NOT always supported when it should be and when EA breaks it, everyone will wait weeks before Ryan and the RunUO Core Team decides to fix it. Just Saying :p
 

Warstone

Sorceror
your project breaks the client's Radar which is the only reason I haven't installed it.
Really??
Praxiiz, your "update screen packet" do not updating radar?? It's new to me.

BTW... As for me - Razor ALWAYS crashes, when he wants to update himself, and I need to run update process manually. This bug is more than a year old.

About Razor:
Some shards (usually RP shards) do not allw you to use macros. Yes, Razor has feature "Nerotiate features form server", but you can uncheck it and use Razor as simple macro.
Razor hacks into client and modify it in runtime. This is why new version of Razor needs foe new client. As for me (I'm about UOExt) - this is silly. All functionallity Razor porvides can be done without modifying code. And it will be working on every client, like UOExt does for now... It can be run under 2.0.3 (favorite client for Sphere servers. But it need to turn off client encryption) to latest client, and even under Iris without modify.
 

fwiffo

Sorceror
mmmh, if things where more easy I bet I would try both of them, but I must be critic and say what I've seen:

- Praxiiz method with razor:

You can't customize nor put other packet's in the stream, since razor and ultima live uses both closed solution, so you have to wait for someone else for any mod. Yes, I know this is done for the sake of shard admins and free shard...but, I in any case I have to wait for the solution, if any, by third party persons, that's something that could become unacceptable at a certain point. I have to make it clear that this is my point of view, wrong or correct, since I could have done something similar by myself (and in fact I use a personal written patcher that runs through all the patches in a custom client/custom shard solution, I've even tried to mod the registry read and everything necessary for the client, but since we are using razor as a macro tool, we are bound to it, and this was the only error I've made, and I regret my choice made 3 years ago).

- Warstone (UOExt), pure client:

You have to learn pascal (I can go through it anyway, it's only a matter of time, even if I'm short of it :( ), and I haven't, until now, found a way to compile the sources, since I guess it's using delphi, but haven't found a delphi compiler for the scope.
It's barely documented, but even ultima live is...and in my case it won't work with razor, so I have to distribute by patching other macro tools, etc.

Anyway, I think we are going in a tool vs tool topic, but to conclude my post, what I would like is a tool capable of versatility and easyness of use. Most of the people, even if they have the skill, lack the time to do all the things needed, and maybe, like me, prefer to do something simple and with own hands (again, my case). If there will be a solution to overcome some of the drawbacks and/or limitations, I'm sure I'll opt out for that solution, but until then I have to count only on what I can manipulate freely and that can be modified by myself without too much hassle. :p
 

Warstone

Sorceror
You have to learn pascal (I can go through it anyway, it's only a matter of time, even if I'm short of it :( ), and I haven't, until now, found a way to compile the sources, since I guess it's using delphi, but haven't found a delphi compiler for the scope.
No. You can write plugins on any language you want. Plugins a separete dlls. All you need is to translate definitions to your language. All I ask is not to use managed languages.
Even more - you do not need to find Delphi or smth like that. all stable versions will be avail. for download.
It's barely documented, but even ultima live is...and in my case it won't work with razor, so I have to distribute by patching other macro tools, etc.
Yes... This is a problem (problem that documentation is on russian. Right now almost all API functions are documented). As for Razor... There is a problems, but without Razor's encryption patching (Razor breaks things there. Client begin to work differenly, and this bug for both. And I know, that Razor wont fix it, so it will be fixed from my side.) it works for me. Anyway... I will support Razor.
 

Praxiiz

Sorceror
I'm sorry if I got defensive, I had just given a reason for not releasing the client side source code, and I felt like I was being attacked for it because my reason was associated with not teaching people how to hack razor.

Really?! Players dont go through this process... The server owner goes through this process....

When I said this process, I mean the process of decrypting the client.exe. Shard owners shouldn't be decrypting and distributing the client.exe, so it's left to the players. (Be it patching, or Razor, or hex editing, or whatever)

Wow I should really read before posting :)

Stop speculating, players can still run Razor and log into as many servers as their heart desires because Razor overrides the Login.cfg file.

I must have misunderstood what you wrote. I really thought you were suggesting that players shouldn't download razor at all because it was too confusing. I apologize.


The real heart of the issue is that I don't have as much time as I used to. This project started as a "I wonder if that could be done" kind of thing. I began researching the problem of editing maps while the client was running, after I was introduced to Minecraft. I eventually found that it could be done. At the time, I was still an undergrad. I had quite a bit more time at my disposal.

Using Razor was a time saving decision. It was also a dangerous decision because it couples my code to Razor. As Razor changes, it has the potential of breaking my code.

But there are a lot of players using Razor, so if I wrote my own loader, I'd have to make sure it worked properly with and without Razor.

Warstone's project has a better design in that regard. His project is decoupled from Razor. Can you run Razor along side your project? again, I should really read before posting

Sythen, Thank you for posting the script you use. I should have taken the time to look at it more closely. You have my apologies.
 
Top