~~~~Harakiri~~~~

16. Juli 2011

Boaaaaaaaaaaaats

My current field of work is, if you followed our site for the last few month, boats. I'd like to finish the basic travel methods in EQ - i started with getting the zone points and intra zone teleporters working - so that all means available for travel are finished.

The roadmap states that boats are implemented "99%" (synthetic number), this is from a technical point of view - true. Taz implemented the boat routes in 2009, but only added the erudin<->qeynos boats.

So my first task at hand was understanding how the system works and how you add additional routes - i documented the process to make it easier for others to follow.

Basically, to add a new route you dont have to touch the server code - hence 99% complete status. What you need is the meta data - these are basically command files in text format. One for the world server which is the main controller of a boat.

In the world command files, you tell the boat where to spawn, to teleport passengers, how long to wait at certain places etc. There are no coordinates here yet, except for spawning. The coordinates for travel are in the zone command files, each boat has a command file for each zone it travels too - these include travel points, rotation and boat group checks. A boat group is, when one vessel needs to wait for another because they meet inbetween (think erudin).

Now the world command tells the zone server, travel your route from 1 to 20, the zone server looks into the zone command file, and does all steps from 1 to 20 for this boat, e.g. either constantly move or rotate, or check a group. After its finished moving, it signals the world server im done with what i had todo - than the world server does the next step in the world command file, e.g. wait for 60s because we reached a stop, then proceed with route from 21 to 40 or similar.

I also added some admin commands to make testing the boats easier, i.e. i can now jump to desintations with the boat while in a zone - so i would not have to wait 15min in oot to reach the zone line.

There where no manual zoning points in classic, you could not swim to another zone - because only people on a boat would have triggered a zone - we have a similar concept.

When the boat reaches the final step in a zone, it will transport itself and all the people to the new zone (a simple teleport to specific coordinates), after that the boat currently waits a certain amount of time at the teleport location to make sure everybody made it to the other side (zoning back in the days was longer for some people).

The last part is actually not needed, because i figured once out, that the client is able to automatically teleport the player to where the boat currently is. So even if the boat started moving again, the player would be teleported there. I will implement this sooner or later - this is needed anyway when a player disconnects or logs out while on a boat (you dont want to fall into the water swimming 10.000 /locs in one direction =p)

Keine Kommentare:

Kommentar veröffentlichen