Page 1 of 2

Transporters

Posted: Fri Jan 02, 2009 1:42 pm
by LethalEncounter
I have created a new table called transporters that allows you to setup up ... you guessed it - transporters :P There are 3 types of transporters right now:
1. Those that give you a list of destinations (mariner bells).
2. Those that are setup via a specific location and warp to to another location like in the SQ mage tower.
3. Generic objects that are able to transport you to other locations.

The table is self explanatory for the most part, you just need to use the same transport_id for your list of destinations if you are using type 1. Otherwise you need to use a different transport_id for each entry. If using type 1, after you have set up a list of valid transport locations you simply set the spawn's transport_id field to the transport_id you used to set up the list. Then you can do a /reload spawns and test it out :)
Notes:
1. destination_heading is only used if the player leaves the zone.
2. the cost field works but doesn't display the cost of the route before you take it (I'm working on it).
3. Message (if given) is displayed to the client when they use the transport


John the following will data get you started, feel free to make you changes you need to:

Code: Select all

INSERT INTO "transporters" ("id", "transport_id", "transport_type", "display_name", "destination_zone_id", "destination_x", "destination_y", "destination_z", "destination_heading", "trigger_location_zone_id", "trigger_location_x", "trigger_location_y", "trigger_location_z", "trigger_radius", "cost", "message") VALUES
	('2','1','Zone','Nettleville','233','684.31','-35.4','339.18','0','0','-1','-1','-1','-1','0',NULL);
INSERT INTO "transporters" ("id", "transport_id", "transport_type", "display_name", "destination_zone_id", "destination_x", "destination_y", "destination_z", "destination_heading", "trigger_location_zone_id", "trigger_location_x", "trigger_location_y", "trigger_location_z", "trigger_radius", "cost", "message") VALUES
	('3','1','Zone','The Baubbleshire','238','966.52','-18.2','-436.97','0','0','-1','-1','-1','-1','0',NULL);
INSERT INTO "transporters" ("id", "transport_id", "transport_type", "display_name", "destination_zone_id", "destination_x", "destination_y", "destination_z", "destination_heading", "trigger_location_zone_id", "trigger_location_x", "trigger_location_y", "trigger_location_z", "trigger_radius", "cost", "message") VALUES
	('4','1','Zone','Qeynos Harbor','221','999.14','-25.79','27.04','0','0','-1','-1','-1','-1','0',NULL);
INSERT INTO "transporters" ("id", "transport_id", "transport_type", "display_name", "destination_zone_id", "destination_x", "destination_y", "destination_z", "destination_heading", "trigger_location_zone_id", "trigger_location_x", "trigger_location_y", "trigger_location_z", "trigger_radius", "cost", "message") VALUES
	('5','1','Zone','Graystone Yard','235','950.74','-25.22','-156.65','0','0','-1','-1','-1','-1','0',NULL);
INSERT INTO "transporters" ("id", "transport_id", "transport_type", "display_name", "destination_zone_id", "destination_x", "destination_y", "destination_z", "destination_heading", "trigger_location_zone_id", "trigger_location_x", "trigger_location_y", "trigger_location_z", "trigger_radius", "cost", "message") VALUES
	('6','1','Zone','The Willow Wood','237','829.24','-20.36','-780.82','0','0','-1','-1','-1','-1','0',NULL);
INSERT INTO "transporters" ("id", "transport_id", "transport_type", "display_name", "destination_zone_id", "destination_x", "destination_y", "destination_z", "destination_heading", "trigger_location_zone_id", "trigger_location_x", "trigger_location_y", "trigger_location_z", "trigger_radius", "cost", "message") VALUES
	('7','1','Zone','Starcrest Commune','234','724.88','-35.2','325.29','0','0','-1','-1','-1','-1','0',NULL);
INSERT INTO "transporters" ("id", "transport_id", "transport_type", "display_name", "destination_zone_id", "destination_x", "destination_y", "destination_z", "destination_heading", "trigger_location_zone_id", "trigger_location_x", "trigger_location_y", "trigger_location_z", "trigger_radius", "cost", "message") VALUES
	('8','2','Location','N/A','0','719.8','35.22','123.31','0','231','725.48','-20.36','125.77','0.6','0',NULL);
INSERT INTO "transporters" ("id", "transport_id", "transport_type", "display_name", "destination_zone_id", "destination_x", "destination_y", "destination_z", "destination_heading", "trigger_location_zone_id", "trigger_location_x", "trigger_location_y", "trigger_location_z", "trigger_radius", "cost", "message") VALUES
	('9','3','Location','N/A','0','721.09','-19.64','118.38','0','231','721.29','35.22','117.68','0.6','0',NULL);

Re: Transporters

Posted: Fri Jan 02, 2009 1:48 pm
by John Adams
Settin it up now! very exciting =)

One thing I noticed on your server while testing it I forgot to mention. Can you hide the current zone if it is on the list? Or should we make individual Type 1 Lists for every bell? Like I am in Nettleville, I shouldn't see a teleport option to Nettleville (or am I mistaken?)

Thanks for bells! I can get rid of the glow-men now.

Re: Transporters

Posted: Fri Jan 02, 2009 1:49 pm
by LethalEncounter
Oh yah heh, I'll remove the current zone from the list. I haven't considered that. :P Anyways give me a few minutes and I'll check it all in. I want to also fix Scatman's bug.

Re: Transporters

Posted: Fri Jan 02, 2009 1:51 pm
by Scatman
Awesome LE :) You probably just made John's day.

Re: Transporters

Posted: Fri Jan 02, 2009 2:03 pm
by John Adams
In Memoriam
glowman.png
They served us well.

Re: Transporters

Posted: Fri Jan 02, 2009 2:05 pm
by Scatman
God Bless them!

Re: Transporters

Posted: Fri Jan 02, 2009 2:06 pm
by LethalEncounter
OK, I fixed that problem. Just in case you might want a location to show up for the same zone, I set it to not display any locations where the destination is within 100 feet of your character. That should work find for the mariner bells and allow you to set different locations up in zones like TS and have them display properly. Btw I also forgot about Castleview in the list, so you will need to add that one to the table. Good practice. huh? :P

Re: Transporters

Posted: Fri Jan 02, 2009 2:08 pm
by John Adams
I prefer my cookies pre-cut, tyvm.

But we will manage. :D thanks again, can't wait to try em out.

Re: Transporters

Posted: Fri Oct 02, 2009 10:50 pm
by John Adams
/nudge for Bolly

Re: Transporters

Posted: Fri Oct 02, 2009 11:03 pm
by bolly
I like this alot!
http://www.eq2emulator.net/wiki/index.p ... base:Zones

Got started, need to flesh it out a bit but gonna have a play first!

Re: Transporters

Posted: Sat Aug 24, 2013 1:15 am
by Jabantiz
/necro

As memtioned here I have implemented the ability to have requirements for transport locations. So far you can set a min level, max level, completed quest, and quest and quest step requirements, if one of these are not met then the destination will not show on the list.

All of that is on Dev SVN currently.

Coming to Dev SVN tomorrow will be the ability to set up the system to use the maps for transports
EQ2EmuTransportTest1.png
EQ2EmuTransportTest2.jpg
I have this working and set up locally however the destinations position on the map is currently hardcoded, as soon as I have the locations loading from the DB I have a few tests to run and as long as nothing goes wrong I should have this code on SVN tomorrow, will also try to have the data for globes to go along with it as an example.

Re: Transporters

Posted: Sat Aug 24, 2013 11:55 am
by John Adams
Yay maps! This is something I have been looking forward to, since Mariner Bells seem to be retired(?)

Thanks, Jab.

Re: Transporters

Posted: Sat Aug 24, 2013 5:28 pm
by Jabantiz
John Adams wrote:Yay maps! This is something I have been looking forward to, since Mariner Bells seem to be retired(?)

Thanks, Jab.
NP, figured sense I was poking around with this code for instances might as well add the map info while I know the code.

Code is on SVN and new table and table mods on the DB patcher. The new table `transport_maps` will control if the map shows or not, just takes the transport id and the name of the map. Only valid map name I can give right now is "world", there does seem to be a map for each zone though so it will be a matter of getting valid names from logs.

This is a transport with a map set in `transport_maps`
EQ2_000002.jpg
This is a transport with no maps set
EQ2_000001.jpg
Here is some sample data
`transporters` table

Code: Select all

INSERT INTO `transporters` (`transport_id`, `transport_type`, `display_name`, `destination_zone_id`, `destination_x`, `destination_y`, `destination_z`, `destination_heading`, `trigger_location_zone_id`, `trigger_location_x`, `trigger_location_y`, `trigger_location_z`, `trigger_radius`, `cost`, `message`, `min_level`, `max_level`, `quest_req`, `quest_step_req`, `quest_completed`, `map_x`, `map_y`) VALUES (50, 'Zone', 'Nektulos Forest', 179, 832.7, 4.18, -47.81, 26, 179, -1, -1, -1, -1, 0, NULL, 0, 0, 0, 0, 0, 670, 459);
INSERT INTO `transporters` (`transport_id`, `transport_type`, `display_name`, `destination_zone_id`, `destination_x`, `destination_y`, `destination_z`, `destination_heading`, `trigger_location_zone_id`, `trigger_location_x`, `trigger_location_y`, `trigger_location_z`, `trigger_radius`, `cost`, `message`, `min_level`, `max_level`, `quest_req`, `quest_step_req`, `quest_completed`, `map_x`, `map_y`) VALUES (50, 'Zone', 'Qeynos', 660, 994.95, -25.88, 30.22, 25, 660, -1, -1, -1, -1, 0, NULL, 0, 0, 0, 0, 0, 361, 390);
INSERT INTO `transporters` (`transport_id`, `transport_type`, `display_name`, `destination_zone_id`, `destination_x`, `destination_y`, `destination_z`, `destination_heading`, `trigger_location_zone_id`, `trigger_location_x`, `trigger_location_y`, `trigger_location_z`, `trigger_radius`, `cost`, `message`, `min_level`, `max_level`, `quest_req`, `quest_step_req`, `quest_completed`, `map_x`, `map_y`) VALUES (50, 'Zone', 'Fens of Nathsar', 264, 183.3, -118.83, -163.66, 270, 264, -1, -1, -1, -1, 0, NULL, 0, 0, 0, 0, 0, 1390, 713);
INSERT INTO `transporters` (`transport_id`, `transport_type`, `display_name`, `destination_zone_id`, `destination_x`, `destination_y`, `destination_z`, `destination_heading`, `trigger_location_zone_id`, `trigger_location_x`, `trigger_location_y`, `trigger_location_z`, `trigger_radius`, `cost`, `message`, `min_level`, `max_level`, `quest_req`, `quest_step_req`, `quest_completed`, `map_x`, `map_y`) VALUES (50, 'Zone', 'The Feerrott', 121, 104.99, -0.66, -133.84, 142, 121, -1, -1, -1, -1, 0, NULL, 0, 0, 0, 0, 0, 501, 651);
INSERT INTO `transporters` (`transport_id`, `transport_type`, `display_name`, `destination_zone_id`, `destination_x`, `destination_y`, `destination_z`, `destination_heading`, `trigger_location_zone_id`, `trigger_location_x`, `trigger_location_y`, `trigger_location_z`, `trigger_radius`, `cost`, `message`, `min_level`, `max_level`, `quest_req`, `quest_step_req`, `quest_completed`, `map_x`, `map_y`) VALUES (50, 'Zone', 'Greater Faydark', 114, 458.63, 91.71, 180.08, 114, 114, -1, -1, -1, -1, 0, NULL, 0, 0, 0, 0, 0, 1205, 316);
INSERT INTO `transporters` (`transport_id`, `transport_type`, `display_name`, `destination_zone_id`, `destination_x`, `destination_y`, `destination_z`, `destination_heading`, `trigger_location_zone_id`, `trigger_location_x`, `trigger_location_y`, `trigger_location_z`, `trigger_radius`, `cost`, `message`, `min_level`, `max_level`, `quest_req`, `quest_step_req`, `quest_completed`, `map_x`, `map_y`) VALUES (50, 'Zone', 'Zek, The Orcish Wastes', 190, 528.96, -41.68, 340.91, 8, 190, -1, -1, -1, -1, 0, NULL, 0, 0, 0, 0, 0, 492, 285);
INSERT INTO `transporters` (`transport_id`, `transport_type`, `display_name`, `destination_zone_id`, `destination_x`, `destination_y`, `destination_z`, `destination_heading`, `trigger_location_zone_id`, `trigger_location_x`, `trigger_location_y`, `trigger_location_z`, `trigger_radius`, `cost`, `message`, `min_level`, `max_level`, `quest_req`, `quest_step_req`, `quest_completed`, `map_x`, `map_y`) VALUES (50, 'Zone', 'Butcherblock Mountains', 108, 742.58, 24, 518.1, 180, 108, -1, -1, -1, -1, 0, NULL, 0, 0, 0, 0, 0, 922, 250);
INSERT INTO `transporters` (`transport_id`, `transport_type`, `display_name`, `destination_zone_id`, `destination_x`, `destination_y`, `destination_z`, `destination_heading`, `trigger_location_zone_id`, `trigger_location_x`, `trigger_location_y`, `trigger_location_z`, `trigger_radius`, `cost`, `message`, `min_level`, `max_level`, `quest_req`, `quest_step_req`, `quest_completed`, `map_x`, `map_y`) VALUES (50, 'Zone', 'The Commonlands', 33, -1051.83, -145.01, -681.66, 210, 33, -1, -1, -1, -1, 0, NULL, 0, 0, 0, 0, 0, 778, 592);
INSERT INTO `transporters` (`transport_id`, `transport_type`, `display_name`, `destination_zone_id`, `destination_x`, `destination_y`, `destination_z`, `destination_heading`, `trigger_location_zone_id`, `trigger_location_x`, `trigger_location_y`, `trigger_location_z`, `trigger_radius`, `cost`, `message`, `min_level`, `max_level`, `quest_req`, `quest_step_req`, `quest_completed`, `map_x`, `map_y`) VALUES (50, 'Zone', 'The Village of Shin', 10, 6.87, -2.38, 117.17, 180, 10, -1, -1, -1, -1, 0, NULL, 0, 0, 0, 0, 0, 402, 764);
INSERT INTO `transporters` (`transport_id`, `transport_type`, `display_name`, `destination_zone_id`, `destination_x`, `destination_y`, `destination_z`, `destination_heading`, `trigger_location_zone_id`, `trigger_location_x`, `trigger_location_y`, `trigger_location_z`, `trigger_radius`, `cost`, `message`, `min_level`, `max_level`, `quest_req`, `quest_step_req`, `quest_completed`, `map_x`, `map_y`) VALUES (50, 'Zone', 'Enchanted Lands', 39, 1.24, 4.48, 85.44, 1, 39, -1, -1, -1, -1, 0, NULL, 0, 0, 0, 0, 0, 673, 351);
INSERT INTO `transporters` (`transport_id`, `transport_type`, `display_name`, `destination_zone_id`, `destination_x`, `destination_y`, `destination_z`, `destination_heading`, `trigger_location_zone_id`, `trigger_location_x`, `trigger_location_y`, `trigger_location_z`, `trigger_radius`, `cost`, `message`, `min_level`, `max_level`, `quest_req`, `quest_step_req`, `quest_completed`, `map_x`, `map_y`) VALUES (50, 'Zone', 'Timorous Deep', 263, 2334.34, 1.8, 1436.08, 270, 263, -1, -1, -1, -1, 0, NULL, 0, 0, 0, 0, 0, 1465, 562);
INSERT INTO `transporters` (`transport_id`, `transport_type`, `display_name`, `destination_zone_id`, `destination_x`, `destination_y`, `destination_z`, `destination_heading`, `trigger_location_zone_id`, `trigger_location_x`, `trigger_location_y`, `trigger_location_z`, `trigger_radius`, `cost`, `message`, `min_level`, `max_level`, `quest_req`, `quest_step_req`, `quest_completed`, `map_x`, `map_y`) VALUES (50, 'Zone', 'Antonica', 12, 430.48, -37.39, 819.32, 60, 12, -1, -1, -1, -1, 0, NULL, 0, 0, 0, 0, 0, 477, 421);
INSERT INTO `transporters` (`transport_id`, `transport_type`, `display_name`, `destination_zone_id`, `destination_x`, `destination_y`, `destination_z`, `destination_heading`, `trigger_location_zone_id`, `trigger_location_x`, `trigger_location_y`, `trigger_location_z`, `trigger_radius`, `cost`, `message`, `min_level`, `max_level`, `quest_req`, `quest_step_req`, `quest_completed`, `map_x`, `map_y`) VALUES (50, 'Zone', 'The Thundering Steppes', 249, -549.58, -20.93, -402.31, 265, 249, -1, -1, -1, -1, 0, NULL, 0, 0, 0, 0, 0, 525, 534);
INSERT INTO `transporters` (`transport_id`, `transport_type`, `display_name`, `destination_zone_id`, `destination_x`, `destination_y`, `destination_z`, `destination_heading`, `trigger_location_zone_id`, `trigger_location_x`, `trigger_location_y`, `trigger_location_z`, `trigger_radius`, `cost`, `message`, `min_level`, `max_level`, `quest_req`, `quest_step_req`, `quest_completed`, `map_x`, `map_y`) VALUES (50, 'Zone', 'Great Divide', 480, 1356.05, -540.25, 476.1, 180, 480, -1, -1, -1, -1, 0, NULL, 0, 0, 0, 0, 0, 337, 963);
INSERT INTO `transporters` (`transport_id`, `transport_type`, `display_name`, `destination_zone_id`, `destination_x`, `destination_y`, `destination_z`, `destination_heading`, `trigger_location_zone_id`, `trigger_location_x`, `trigger_location_y`, `trigger_location_z`, `trigger_radius`, `cost`, `message`, `min_level`, `max_level`, `quest_req`, `quest_step_req`, `quest_completed`, `map_x`, `map_y`) VALUES (50, 'Zone', 'The Burning Cauldron', 23, 2.14, 1.21, -15.81, 0, 23, -1, -1, -1, -1, 0, NULL, 0, 0, 0, 0, 0, 642, 216);
INSERT INTO `transporters` (`transport_id`, `transport_type`, `display_name`, `destination_zone_id`, `destination_x`, `destination_y`, `destination_z`, `destination_heading`, `trigger_location_zone_id`, `trigger_location_x`, `trigger_location_y`, `trigger_location_z`, `trigger_radius`, `cost`, `message`, `min_level`, `max_level`, `quest_req`, `quest_step_req`, `quest_completed`, `map_x`, `map_y`) VALUES (50, 'Zone', 'Everfrost', 41, -55.64, -5.7, 200.69, 180, 41, -1, -1, -1, -1, 0, NULL, 0, 0, 0, 0, 0, 404, 112);
INSERT INTO `transporters` (`transport_id`, `transport_type`, `display_name`, `destination_zone_id`, `destination_x`, `destination_y`, `destination_z`, `destination_heading`, `trigger_location_zone_id`, `trigger_location_x`, `trigger_location_y`, `trigger_location_z`, `trigger_radius`, `cost`, `message`, `min_level`, `max_level`, `quest_req`, `quest_step_req`, `quest_completed`, `map_x`, `map_y`) VALUES (50, 'Zone', 'the QSS Bootstrutter', 356, 2.14, 1.21, -15.81, 0, 356, -1, -1, -1, -1, 0, NULL, 0, 0, 0, 0, 0, 367, 608);
INSERT INTO `transporters` (`transport_id`, `transport_type`, `display_name`, `destination_zone_id`, `destination_x`, `destination_y`, `destination_z`, `destination_heading`, `trigger_location_zone_id`, `trigger_location_x`, `trigger_location_y`, `trigger_location_z`, `trigger_radius`, `cost`, `message`, `min_level`, `max_level`, `quest_req`, `quest_step_req`, `quest_completed`, `map_x`, `map_y`) VALUES (50, 'Zone', 'The Sinking Sands', 73, -1508.14, -214.11, -402.72, 180, 73, -1, -1, -1, -1, 0, NULL, 0, 0, 0, 0, 0, 759, 728);
INSERT INTO `transporters` (`transport_id`, `transport_type`, `display_name`, `destination_zone_id`, `destination_x`, `destination_y`, `destination_z`, `destination_heading`, `trigger_location_zone_id`, `trigger_location_x`, `trigger_location_y`, `trigger_location_z`, `trigger_radius`, `cost`, `message`, `min_level`, `max_level`, `quest_req`, `quest_step_req`, `quest_completed`, `map_x`, `map_y`) VALUES (50, 'Zone', 'Frostfang Sea', 470, -375.79, 29.19, 208.46, 260, 470, -1, -1, -1, -1, 0, NULL, 0, 0, 0, 0, 0, 309, 209);
INSERT INTO `transporters` (`transport_id`, `transport_type`, `display_name`, `destination_zone_id`, `destination_x`, `destination_y`, `destination_z`, `destination_heading`, `trigger_location_zone_id`, `trigger_location_x`, `trigger_location_y`, `trigger_location_z`, `trigger_radius`, `cost`, `message`, `min_level`, `max_level`, `quest_req`, `quest_step_req`, `quest_completed`, `map_x`, `map_y`) VALUES (50, 'Zone', 'Jarsath Plains', 265, -304.09, -45.96, 1409.4, 180, 265, -1, -1, -1, -1, 0, NULL, 0, 0, 0, 0, 0, 1023, 732);
INSERT INTO `transporters` (`transport_id`, `transport_type`, `display_name`, `destination_zone_id`, `destination_x`, `destination_y`, `destination_z`, `destination_heading`, `trigger_location_zone_id`, `trigger_location_x`, `trigger_location_y`, `trigger_location_z`, `trigger_radius`, `cost`, `message`, `min_level`, `max_level`, `quest_req`, `quest_step_req`, `quest_completed`, `map_x`, `map_y`) VALUES (50, 'Zone', 'Kylong Plains', 262, 843.17, 2.51, 414.49, 180, 262, -1, -1, -1, -1, 0, NULL, 0, 0, 0, 0, 0, 1322, 810);
INSERT INTO `transporters` (`transport_id`, `transport_type`, `display_name`, `destination_zone_id`, `destination_x`, `destination_y`, `destination_z`, `destination_heading`, `trigger_location_zone_id`, `trigger_location_x`, `trigger_location_y`, `trigger_location_z`, `trigger_radius`, `cost`, `message`, `min_level`, `max_level`, `quest_req`, `quest_step_req`, `quest_completed`, `map_x`, `map_y`) VALUES (50, 'Zone', 'Moors of Ykesha', 385, 1914.08, 453.19, 1009.71, 180, 385, -1, -1, -1, -1, 0, NULL, 0, 0, 0, 0, 0, 540, 868);
INSERT INTO `transporters` (`transport_id`, `transport_type`, `display_name`, `destination_zone_id`, `destination_x`, `destination_y`, `destination_z`, `destination_heading`, `trigger_location_zone_id`, `trigger_location_x`, `trigger_location_y`, `trigger_location_z`, `trigger_radius`, `cost`, `message`, `min_level`, `max_level`, `quest_req`, `quest_step_req`, `quest_completed`, `map_x`, `map_y`) VALUES (50, 'Zone', 'Lavastorm', 171, -185.56, -120.46, 632.9, 337, 171, -1, -1, -1, -1, 0, NULL, 0, 0, 0, 0, 0, 667, 143);
`transport_maps` table

Code: Select all

INSERT INTO `transport_maps` (`transport_id`, `map_name`) VALUES (50, 'world');
The sample data is from a log with a qeynos char, so freeport and neriak are not in the info, also it has a couple quests instances listed.

Re: Transporters

Posted: Sun Aug 25, 2013 2:58 pm
by John Adams
Jab, I added the transporters data and map data you posted to the eq2dev DB, and restarted the server. Then went to the "Voyage through Norrath" object in FrostFang and set it to transport_id 50.

Is that wrong? Should it be transport_maps.id?
voyage.jpg
This is with a current client version. What client are you dev'ing with?

Re: Transporters

Posted: Sun Aug 25, 2013 4:40 pm
by Jabantiz
I dev'd in a CoE client, 1208

Also the way you set it up is exactly right, must be a struct issue in newer clients.