In response to Hazman
Thank you! But now the question is: will the players really care? Is it worth all the work and space? Think : If a player has on average 3 ships, each ship with 100 men and I have just 15 players - thats 3 X 100 X 15 X 3 = 13500 vars! And that's just for crew!

~Ease~
In response to Hazman
Avoiding lag - All of the battles are quite simple, with only a few commands and effects. The battles were intended to be done with basic math and few vars, though if I change to the complicated system mentioned in other replies it might become a lot slower.

~Ease~
In response to Ease
Well you could have it so only the captian actually sees the boat, and he just steers it, etc. but the crew is actually at a different area but it is aboard the boat itself and the people there load cannons, etc.
In response to Jermman
But what would you prefer? To be a captain, able to fight naval battles, sail a ship, and do quests, or to sit under the deck constantly reloading cannons? It wouldn't make much of a fun game (in my opinion, please argue if you think otherwise) if you weren't the captain.

~Ease~
In response to Ease
That depends how fun you make loading the cannons. Ever played Puzzle Pirates? =)

If it's just clicking a verb or whatever repeatedly, though, then yes it would get boring. But if you can spread the interesting tasks around, then it's very fun to be on a ship with your friends. Ever played Battlefield, or Halo, or UT2004, or any other game with vehicles on a LAN? (Or the internet, but LANs are more personal. =) ) Vehicles suddenly become much more fun with multiple people; one person steers, everyone else in it shoots. =)
In response to Crispy
True, but that kinda changes my whole game plan =P and I've done a lot of planning! I've began to start building a demo version, with the help of the amazing BYONDer Wanabe. One problem I've come across is when they come into port, I don't know how to change them from the Boat Mob to the Person Mob and to keep all of the variables. Wanabe showed me a code that allowed you to keep variables, but I don't know how to switch mobs. I thought I knew, but when I tried I got errors :(

Is there a better method to change from Boat to Person (and vice versa) other than changing the mobs? Please note, that they may have multiple ships, in which case they should be able to switch to each of them via HUD buttons.

~Ease~
In response to Ease
Just change the icon.
In response to Gathin
That's what I thought, but the Person has overlays (clothing/face/hair).

~Ease~
In response to Ease
maybe you could save and remove the overlays? Then when they get out, you can load and add them? that way you could change the icon I think...
In response to DarkCampainger
I remember having problems with saving overlays when I first started on BYOND. No matter what they wouldn't work. I think I have found the solution though (thanks to Hannz' vehicle demo) I'll just put them on top of the ship, and then make them invisible!

~Ease~
In response to Ease
Or put them actually in the ship. That way movement is handled automatically - when the ship moves, everything in it moves as well.
In response to Hazman
I don't quite understand. You can put mobs INSIDE other mobs? And once you've done that, how do you give the player control of the ship? Vehicles are quite new to me...in fact, this is all very new to me!

~Ease~
In response to Ease
Mobs are just ATOMs - In theory you can put anything in anything. You'd simply set the mob's loc var to the ship, and the mob.client.mob var to the ship. That way, the ships also stay where you put them when you go into port.
In response to Ease
Set the player's loc to the vehicle mob, set their eye to the vehicle mob, set client.perspective to EYE_PERSPECTIVE, and override client/Move() to make their arrow keys control the vehicle.
In response to Crispy
Crispy wrote:
Set the player's loc to the vehicle mob, set their eye to the vehicle mob, set client.perspective to EYE_PERSPECTIVE, and override client/Move() to make their arrow keys control the vehicle.

Unless you expect a client to be logged into the ship, I personally think it'd be better to leave the ship as an obj instead of a mob; objs have all of the same movement code as mobs do because they're both derived from /atom/movable. They simply can't have a key connected physically to their data (i.e., obj.key is an error).

However, this is more of a style preference than anything.
In response to Spuzzum
Well I have now done it. It simply uses connecting to a Ship mob, while skipping the normal login stuff, and carrying the vars over.

~Ease~
I have this (working-ish) code for Ports. It allows you to jump in any boat in port, as long as you own it.

proc
OutPort(var/turf/PORTS/A,var/mob/C)
var/mob/Boats/B
var/list/L = new/list()
if(A.contents)
for(B in A.contents)
if(B.Owner == C)
L.Add(B)
if(L.len)
if(L.len == 1)
B = L[1]
C.loc = B
C.client.mob = B
var/d = "[A.type]"
var/e = copytext(d,13,15)
var/turf/a = locate("[e]1")
var/x = a.x
var/y = a.y
var/z = a.z
B.loc = locate(x+1,y,z)
B.client.view = 10
B.icon_state = "1"
B.pixel_x = 0
else
B = input(C,"Which boat to you wish to use?","Boats") in L
C.loc = B
C.client.mob = B
var/d = "[A.type]"
var/e = copytext(d,13,15)
var/turf/a = locate("[e]1")
var/x = a.x
var/y = a.y
var/z = a.z
B.loc = locate(x+1,y,z)
B.client.view = 10
B.icon_state = "1"
B.pixel_x = 0
A.Spaces--
var/list/transfer=list("name","Gold","crew")
B.name2 = B.name
for(var/index in transfer)
B.vars[index]=C.vars[index]

else
C<<"There are no boats!"
InPort(var/turf/PORTS/A,var/mob/Boats/C)
var/d = "[A.type]"
var/e = copytext(d,13,15)
var/turf/a = locate("[e]2")
var/x = a.x
var/y = a.y
var/z = a.z
if(A.Spaces>=A.MaxSpaces)
C<<"Sorry, the dock is filled!"
else
C.client.view = 7
C.loc = locate(x,y,z)
C.icon_state = "2"
if(A.Spaces)
C.pixel_x = 19*A.Spaces
A.Spaces ++
var/mob/MAN/B
var/list/L = new/list()
for(B in C.contents)
if(B == C.Owner)
L.Add(B)
B = L[1]
B.loc = locate(x,y+1,z)
C.client.mob = B
var/list/transfer=list("Gold","crew")
C.name = C.name2
for(var/index in transfer)
B.vars[index]=C.vars[index]


Do you see the
"if(A.Spaces)
C.pixel_x = 19*A.Spaces"
If they take out the boat, furthest up x (to the right) then it works fine. But if we have 2 boats like this :
|BOAT1|BOAT2|
and they take out BOAT1, then Spaces goes to "1", but the above specified code says that when they (or anyone else) returns, they'll get placed on top of BOAT2. How can I get it to look for empty spaces? I was thinking of doing a list, but I didn't know how to go about it.

~Ease~
I have made (an extremely primitive...really extremely) website for my upcoming game - Pirates. All it has is a very brief description and a JPG screenshot, but it may give you a little taster of what may come soon.

http://www.freewebs.com/gokuss4neo/index.htm

(I had to use "gokuss4neo" because "Ease" isn't long enough to be a username :P)

~Ease~
In response to Ease
I dont see a Screenshot....and...the money system is neat...but confusing....it has like no patern
In response to Nave
Heh, I took the screenshot down this morning due to it being out of date and low quality. I shall put a newer, better one up soon.

The money system is exactly as it was in the time of Pirates. I am thinking of making it into 10 of one goes into 1 of the one above. So 10 Bronze in a Silver, 10 Silver in a Peice of Eight (well that doesn't make much sense :P) and 10 PoE in a Doubloon.

Thoughts?

~Ease~
Page: 1 2 3 4