Editing Server:Boats
Jump to navigation
Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
For TAKP server, the | For TAKP server, the boats use spawn conditions and are timed with grids. If a grid is timed too short or too long, players will either get dropped off in the water or players will end up at the safe spot in the destination zone. Boat zones need to be static. | ||
If a grid is timed too short or too long, players will either get dropped off in the water or players will end up at the safe spot in the destination zone. Boat zones need to be static. | |||
== Server-Side Source == | == Server-Side Source == | ||
The following boats and their ID's are described in the server source code: | |||
The following boats and their ID's are described | https://github.com/EQMacEmu/Server/blob/main/common/eq_constants.h#L685 | ||
<pre> | <pre> | ||
//These are NPCIDs in the database. All of these boats send a BoardBoat opcode when boarded. | //These are NPCIDs in the database. All of these boats send a BoardBoat opcode when boarded. | ||
Line 28: | Line 24: | ||
</pre> | </pre> | ||
Each time a client enters a zone, the server checks the client packet's player profile struct for a boatid > 0 and whether the client is currently in Timorous Deep or Firionia Vie. If this is true, the boatid in the player profile struct is set back to 0. | |||
<pre>void Client::Handle_Connect_OP_ZoneEntry(const EQApplicationPacket *app)</pre> | |||
* See https://github.com/SecretsOTheP/EQMacEmu/blob/19d8a526e4f5e5f3900abe1b6e2d51c4b8ecff8c/zone/client_packet.cpp#L1693 | |||
and | |||
< | |||
</pre> | |||
zone/client_packet. | |||
Boat ID's are stored in the player profile packet (pp.boatname and pp.boatid). | |||
== Boat Route Implementations == | == Boat Route Implementations == | ||
Implementing a boat is achieved via entries to the database and the LUA scripting engine | Implementing a boat is achieved via entries to the database and the LUA scripting engine. | ||
=== Database Settings === | === Database Settings === | ||
The following database tables are used: | The following database tables are used: | ||
* | * spawn2 | ||
* spawngroup | * spawngroup | ||
* spawn_conditions | * spawn_conditions | ||
* grid_entries | |||
* grid | * grid | ||
* | * npc_types.boatid | ||
=== LUA Scripting === | === LUA Scripting === | ||
Line 252: | Line 48: | ||
* event_spawn | * event_spawn | ||
* event_waypoint_arrive | * event_waypoint_arrive | ||
==== Example Scripts ==== | ==== Example Scripts ==== | ||
Line 279: | Line 60: | ||
* https://github.com/EQMacEmu/quests/blob/main/timorous/Maidens_Voyage.lua | * https://github.com/EQMacEmu/quests/blob/main/timorous/Maidens_Voyage.lua | ||
* https://github.com/EQMacEmu/quests/blob/main/timorous/Muckskimmer.lua | * https://github.com/EQMacEmu/quests/blob/main/timorous/Muckskimmer.lua | ||