Warstone
Sorceror
1st of all - sorry for my english. It's not my native language, I'm russian.
Ok... Some history...
My favorite role in UO is crafter... ore digging, wood chopping, etc. Once upon a time, when I wrote another one EasyUO macro for auto wood chopping, I thought, that it would be great if chopped trees really falls. This was fantastic idea that "must be done". Deep researching showed me that it's not so easy...
Trees hardcoded into static and server can't change this... mistake. Even more - changing of statics is really hard. You need to draw it, then [freeze and, finally, ship changed files to every client that ever logon to your server. 1st thing that I've done - I've wrote client's loader, that open statics files in share mode. So, when you change your static and make [freeze, you only need to [tele out from that location and [tele backwards. Local client cache will be renewed and you see new statics, but only if you runs client and server on the same PC and on the same statics files.
Next idea was even more fantastic - we have 2 types of statics... 'dynamic' statics, that ships from server and 'static' statics, that client gets from hard drive... So... Let's make all statics 'dynamic'! It can be done, because when you travel near Luna, many 'dynamic' static shipped to your client (house customization). You can't do it with server because you need wide connection for shipping every statics on every client, but... If you will load statics from hard drive manually, and ship it to client as it "came from server" - it will be fine! That's how UOExt was born.
Main idea is 'Insert proxy between client and server', that could be managed from server, if needed.
For now UOExt has some plug-in system via dll, that allow you to modify and extend protocol with you logic.
It written on Delphi (if someone want to port it to fpc - that will be great), because I knew it better .
Main core released under GPLv3 license, but you can write your plugins under any license because they are individual projects and core loads it in binary mode. You can write plugins on every langugage you like, but I'm asking you don't write it on managed (C# or java) languages, because they has big demands to resources. Right now UOExt needs only 1Mb for work (include loaded binary) and I will sleep better, if it will remain so (Real reason - UO client can be run on very old machine under smth like Win98, that hasn't .Net support).
And last thing. You can get source code here: http://code.google.com/p/uo-ext/ , 1st stable compiled release will be done somewhere in august. (r44 middleware commit, so if you want to compile it - get r16)
If someone wants to help - I'm open to suggestions.
More screenshots and videos will be later... If they will.
Ok... Some history...
My favorite role in UO is crafter... ore digging, wood chopping, etc. Once upon a time, when I wrote another one EasyUO macro for auto wood chopping, I thought, that it would be great if chopped trees really falls. This was fantastic idea that "must be done". Deep researching showed me that it's not so easy...
Trees hardcoded into static and server can't change this... mistake. Even more - changing of statics is really hard. You need to draw it, then [freeze and, finally, ship changed files to every client that ever logon to your server. 1st thing that I've done - I've wrote client's loader, that open statics files in share mode. So, when you change your static and make [freeze, you only need to [tele out from that location and [tele backwards. Local client cache will be renewed and you see new statics, but only if you runs client and server on the same PC and on the same statics files.
Next idea was even more fantastic - we have 2 types of statics... 'dynamic' statics, that ships from server and 'static' statics, that client gets from hard drive... So... Let's make all statics 'dynamic'! It can be done, because when you travel near Luna, many 'dynamic' static shipped to your client (house customization). You can't do it with server because you need wide connection for shipping every statics on every client, but... If you will load statics from hard drive manually, and ship it to client as it "came from server" - it will be fine! That's how UOExt was born.
Main idea is 'Insert proxy between client and server', that could be managed from server, if needed.
For now UOExt has some plug-in system via dll, that allow you to modify and extend protocol with you logic.
It written on Delphi (if someone want to port it to fpc - that will be great), because I knew it better .
Main core released under GPLv3 license, but you can write your plugins under any license because they are individual projects and core loads it in binary mode. You can write plugins on every langugage you like, but I'm asking you don't write it on managed (C# or java) languages, because they has big demands to resources. Right now UOExt needs only 1Mb for work (include loaded binary) and I will sleep better, if it will remain so (Real reason - UO client can be run on very old machine under smth like Win98, that hasn't .Net support).
And last thing. You can get source code here: http://code.google.com/p/uo-ext/ , 1st stable compiled release will be done somewhere in august. (r44 middleware commit, so if you want to compile it - get r16)
If someone wants to help - I'm open to suggestions.
More screenshots and videos will be later... If they will.