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!

new Packets 0xF6 0xF7 and related mods

_Epila_

Sorceror
Unfortunately, the packet 0xF6 seems to be wrong, im sending this to my client and the boat still to the hard movement, but the client does not crash, there is any info about sending this packet?

edit: figured out the problem
the packet is sent after the boat location update
 

nibbio

Sorceror
Can you share what you have found or done with others? new infos are appreciated.
If you find something wrong or if you see that something missing, please fell free to add those infos.
 

Vorspire

Knight
The mouse boat movement is something that has eluded developers on all shards up to this point, correct me if I'm wrong, but I don't think anyone has been able to cover support for mouse movement yet - I am working on a 'hack-around' for it though, we'll see how it goes...
 

kevin10

Sorceror
Ok so it's not just me! I was overriding movement in playermobile but that creates an aweful rubber banding effect.
 

nibbio

Sorceror
I come back after three years and i don't know the actual situation about RunUO development.
I've seen many forks for Enhanced client or similar, but nothing about HS and related stuff.

I have my "little repository" with a modified version of RunUO (i don't update it since 2011); in that repository i implemented the boat system (also with mouse commands and smooth movements).
It requires core modification for guarantee a good and clean system.

If anyone of RunUO team wants to see that version for implements it in the official SVN, i can give him the access. I need help for code compare because the actual version of RunUO can be very different and, even i sorrounded modifications with regions, the system needs tests that i can't do now.

I can't develop anymore alone my server, for many reasons (time, noone of my country in past that wanted to help o support me in a shard creation, etc) and i want to leave my contribute and my work to the community.

So, i wait your answer!
 

nibbio

Sorceror
I don't want to give public access because i don't want to make another unsupported/undeveloped fork and i wish that my work will be merged and used in the right way.
I need someone that wants to help me to test my mods in the latest RunUO version, so i can post my core mod and my scripts for new boat/galleon system.

If you want to help me, i can give you the access to my repository and you can test if there is something wrong or incompatible with latest RunUO (i need someone that is able to merge correctly and have server and client installed and ready).
My repo is synced with RunUO SVN 888.
 

Vorspire

Knight
If you mail it to me, I will put it all together, review, tidy, bring it in line with standards compliance, then I'll mail it all back to you and you can release it if you like?
Would be a shame for me to waste an oppotunity to help you out with this, since you've done so much work on it and I think it's about time this community had a solid final result, it's been too long now :)

[email protected]

or Skype: VorspireLG
 

kevin10

Sorceror
Any progress on this? I've gotten all HS packets and multi's working properly, with the exception of the mouse steering.
 

Vorspire

Knight
The mouse movement can be achieved by sending the mouse move request packet to the client and adding the boat to the player as a mount, the mount item uses the ID of the small boat tiller.

I know it's vague, but that's the start. I've been working on the boats for a while now, developing the best way to implement them without any ore mods - unfortunately, this boat package discussed in this thread is heavy on core mod, so I'm trying to extrapolate what I can and apply it to RunUO 2.3 SVN.

I won't be releasing the work myself, the release will be made by the original author and they will also disclose credit where appropriate.

I can say that up to this point, I have managed to implement smooth movement without core mods, mouse movement i almost done, but there are still a couple of kinks with the way it updates depending on direction of travel, I hope to have these flaws ironed out within the next week.

A couple of very generous sponsors have donated some beer money in order to motivate me to finish sooner, but I must say, this is the most awkward system I've ever had to write for RunUO - while it is simple in context, implementation and execution is still moderately difficult, which is obvious since it's taken 2+ years to get to this point and there's still no official complete release.
 

nibbio

Sorceror
Hi all again,

because i received many requests about releasing my code, and because Vorspire is very busy at this moment, i've decided to open my SVN to public.
So, this is the SVN link with my code (it's quite old, last update was 1 year ago):

https://subversion.assembla.com/svn/viridian/

Regarding my implementation choices, exposed by Vorspire in his last post in this thread, i want to highlight one thing:
I prefer to implement this system splitted in core and script layers for two reasons:
1. The architecture require a lower level access (modifications about core mechanics (like teleport, change map, new multi creation "moveToWorld", and similar) and packets.
2. This system is not strictly referred to boats: you can use this virtually with any item and multi, so you can create trains, boats, vehicles, and semimovable house or portion of map. So, you can extend the core functionality "SmoothMultiItem" with boat (like old multi system, that was also in the core).

You can obviously move almost everything in the scripts layer but you must find other entrypoints for inject and modify old behavior (i've tried to reduce core injection and mods, and i've modified few entrypoints).

Highlights:

- This new smoothmulti uses a new system for check and move everything and everyone that is on this multi.
The old movement system checked the map area where the multi was, and moved everything to new position (every time the multi moves, every few seconds).
In the new movement system you cannot do this easily because you move the multi many times at second; so every new multi has a passenger list, that is updated by object and people every time they are dropped, teleported or they enter into the boat.

- Old and new movement methods
You can use mouse or voice commands for boat movements, similar to OSI. Voice commands are taken from old system.

- Boat system (scripts layer) has durability with related graphics, like OSI.
You can change your durability with galleon properties.

I hope that my work will be used as a base for official implementation about this new boat system.

So, that's all.
Send me a PM if you have problems to access or download code from SVN link.
 

m309

Squire
Great contribution! I for one couldn't care less about having to do core mods or not.

Thanks again!
 

Vorspire

Knight
I did manage to complete my vehicles system, it was very helpful of nibbio to give me access so I could understand the mechanics behind it better, I had to write my vehicles system in part using some VNc features, but I do plan on releasing it to be fully compatible with RunUO as soon as all the kinks are worked out - some strange things happen sometimes and with object collision detection I have to compensate for flying vehicles by creating a "wireframe" of it's components and checking for intersections in special ways so that it does not include objects above and below the multi.
Standard movement algorithms are designed to only check around the edges and don't take the vehicle's Z-offset or physical height into consideration, they are also only designed to expect a constant Z-axis travel on water, not the randomness of land height.

The hardest thing about getting smooth movement working is the timings, one of the main reasons I plugged my vehicles into VNc was so that I could quickly and easily provide an options gump so I could tweak the vehicle's variables in real-time, like the interval at which each speed actually moves one full tile.

I found that the fastest speed ticks at 300ms, normal speed ticks at 600ms and slow speed is 1200ms - nice pattern huh?
 
Top