RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Pirates! Their Back!!! Enjoy.... [RunUO 2.0] [Callador2k's ML SVN]

lemperor

Sorceror
Pirate Ship Script

lemperor;848246 said:
Hail All,

I know this is an old thread. Has anyone had problems viewing the contents of the script files at the start of this thread? I'm stumped as to what format these files were saved in, anyone?


Hail,

NVM got it figured out, Very Nice Script!
 

Kingllama

Knight
AN CORP this amazing thread.
I have found a bug that the boats can go through land and the people get messed up sometimes with runuo 2.2 buts it's a simple fix just kill the captain.
 

Orbit Storm

Sorceror
Not sure if Sythen would still provide support for this thread, but I'm finding PirateCaptain.cs to be one quirky script.

I've followed these directions:

***Reserved For Change Log, Udates, And Script Additions***
Find This Line:

Code:
loc = new Point3D( this.X, this.Y-1, [COLOR="Red"]this.Z[/COLOR] );
loccrew = new Point3D( this.X, this.Y-1, this.Z+1 );

And Make It Read:

Code:
loc = new Point3D( this.X, this.Y-1,[COLOR="red"] this.Z-5[/COLOR] );
loccrew = new Point3D( this.X, this.Y-1, this.Z+1 );

However, either I misinterpreted them (it's nearly 6am), or there is another issue I'm not aware of.

Initially, the boats were not moving. My current sea level, is -5, so I edited the correct line to:

Code:
loc = new Point3D( this.X, this.Y-1, this.Z-5 );

Then, the boats moved, but not the Captain or his crew. So again, I made another edit:

Code:
loccrew = new Point3D( this.X, this.Y-1, this.Z-2 );

Now, neither the boat or pirates move. Seems I'm back to square one. Any ideas what may be causing this issue?
 

Gaea

Sorceror
Hi! First, I want to say thanks for updating this...great script! I'm running ORBS SA SVN and got it running nicely. Orbit Storm, I had the same problem as you, but got it fixed by doing this.Z-3 for the loccrew (my sea level is -5 also. Then I had to change the boat numbers to same as large dragonship. I just used winmerge to grab the Id numbers from dragonship to pirateship like this: public override int NorthID{ get{ return 0x14; } } there are several of them, just change them all and it should work for you.

The only issue I have now is the ship running into (under) the ground when it hits land
 

Orbit Storm

Sorceror
That fix worked great! (The LargeDragonBoat merge.)

I also have the same issue with the boats going underground, particularly around docks. But I suppose it's a small price to pay for managing to get them to actually MOVE.

Thanks again! :)
 
Ok I know you said to mess with the Z to get the hight right... I did that but not sure if right. I ID my water and it is -5 Z so I set the ship to that. However the crew doesn't move with the ship, the ship moves out from under them. any idea's?
 

Pakko

Traveler
All i do is set up an xmlspawner, set your code something like this: pirateship/z/-5 this will spawn the ship at the right Z.
 
Ok well first let me start out by saying.. im a morron for not seeing that there was a 2nd page to the post. I was able to fix it once I read the rest of the post.:rolleyes: My settings are this.
My water is -5 so I have loc = this. z-5 loccrew = this. z-3 I also did the LargeDragonBoat change. To do this you will need to go into the PirateShip.cs and find
public override in NorthID { get { return 0x4014; } } this is the code that needs changed. The code you will want is this NorthID 0x14 EastID 0x15 SouthID 0x16 and WestID is 0x17 . I'm only trying to save the next guy the foot work by posting the boat code. Plus this is a great script and wouldn't want someone not using it because they had to look forever for a fix. Thank you Sythen for a great script
 

fwiffo

Sorceror
*sgrat* *sgrat*

Setting the Z manually is insane, it's better to do this:
Code:
loc = new Point3D( this.X, this.Y-1, Map.GetAverageZ(this.X, this.Y));
            loccrew = new Point3D( this.X, this.Y-1, loc.Z+1 );
 

peepeetree

Sorceror
Moongoose24 thanks a lot for those updates, I was playing around with this for a long time before I decided to actually read the posts. This script is amazing, it works flawlessly on 2.2, I hope no one minds but I went ahead and uploaded the files with the changes Moongoose24 suggested for people looking to use this going forward. Finally thanks a lot to Slythen for the script!
 

Attachments

  • Pirates Arrgh.zip
    5.9 KB · Views: 43
Top