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.