PDA

View Full Version : My Boat quests


Krugus
05-23-2009, 12:27 PM
Well I'm not a programmer but I do like to tinker. I'm leaning as I go (as quite a few of us seem to be doing (well besides the ones that KNOW what they are doing LOL )).

Anyways I wanted to share with the community what I have up on going on my little server.

The jist of it all is this:

I have a boat that set in Freeport Harbor.
A Launch runs from the Dock to the Ship and Back.
Ride the Launch out to the ship, you can run around on the ship (its Race 72, Gender 0) Yes its the BIG Ship but its solid and it sails through the water smoothly.... Run to the back of the ship where I have another inviso npc that ports you to a stationary ship in OOT.

Now the tricky part begins...

Once you arrive in OOT the Stationary Ship port you to the moving ship twice via Enter and Exit Proxy's. Why twice? Well at least on my server, the first port (the Enter proxy) can put you on the ship, in front of the ship or under the ship.... the Exit Proxy seems to make up for most! of the hit and miss (but not always!).
Ok once on the ship it will sail through OOT till it reaches one of the two inviso npc's that port you over to the next zone.

ATM I have 2 ships in OOT that run a big circle around the zone. Both stop at the same two ports (Sister & Brother Isles) Sooner or later I'll get around to making them spawn when you get ported over to OOT and depop when you port out of OOT......

On to the code:

Ship in Freeport has the standard move to zone code by AngeloX:

sub EVENT_SPAWN
{
$x = $npc->GetX();
$y = $npc->GetY();
quest::set_proximity($x - 50, $x + 50, $y - 50, $y + 50);
}

sub EVENT_ENTER
{
quest::movepc(69, -10548.0,-4883.9,47,158);
}

Make sure you park a ship at the x/y/z coords above.

The Stationary Ship port to the moving ship code (I modified AngeloX move to zone code):

# Move Event
# Inter-Zone Move to SirensBane
#

sub EVENT_SPAWN
{
$x = $npc->GetX();
$y = $npc->GetY();
quest::set_proximity($x - 50, $x + 50, $y - 50, $y + 50);
}

sub EVENT_ENTER
{
quest::say("Come sail away, Come sail away,");
$port2npc = $entity_list->GetMobByNpcTypeID(69134);
$a = $port2npc->GetX();
$b = $port2npc->GetY();
$c = $port2npc->GetZ();
quest::movepc(69,$a,$b,$c+41);
}

sub EVENT_EXIT
{
quest::say("Come sail away with me....");
$port2npc = $entity_list->GetMobByNpcTypeID(69134);
$a = $port2npc->GetX();
$b = $port2npc->GetY();
$c = $port2npc->GetZ();
quest::movepc(69,$a,$b,$c+41);
}


You might have to change the GetMobByNpcTypeID #, my ship's NPCID might be different than yours so remember to check your Ship's NPCID # and replace if needed!

and the last bit of code needed to move you to Butcher, again is the standard move to zone code by AngeloX:
sub EVENT_SPAWN
{
$x = $npc->GetX();
$y = $npc->GetY();
quest::set_proximity($x - 50, $x + 50, $y - 50, $y + 50);
}

sub EVENT_ENTER
{
quest::movepc(68, 3239.6, 1356.8, 12,190.1);
}

You'll have to put an inviso npc that the ship will move over to port those on the ship to Butcher Block. This will put them on the docks in Butcher.


Notes:

I wish we could use the standard ships but as we all know, you just fall through. So I went with the BIG Ship. The BIG ship has its own set of problems. Its too freaking big LOL so I had to readjust the x/y/z (NOTE: I used -45 for my Z coord in OOT for those BIG ships because its easier to get on/off at the docks with them set down that low) of where it spawns and I scraped the old pathgrid and made a new one for each boat.

Needless to say its been a learning experience. I used OOT as my test bed for boats and pathgrids and I'm still learning but now that I learned this I can start fixing path problems in other zones (along with boats).

Anyways just wanted to share.

egerha8815k
06-01-2009, 12:05 PM
put 2 kelethin lifts just under the ship deck that run diagonal and move at the same speed as the boat.

Krugus
06-01-2009, 07:42 PM
Well I did away with the ugly old big boats and are now using the new boats that the SoF client has with it. See this post here (http://www.eqemulator.net/forums/showpost.php?p=170830&postcount=26)