This is how I did ships, it may not be the best way, but it works and is flexible. First: Create a room spec_proc that loads an object at certain time. (this will be the ship while it is in port) The same object that is created above needs a spec_proc that will somewhow transfer the player to the ship (which is just a zone that has no entrance) This way, a player can only get to the ship if the object is loaded in the room (the ship) and they enter the right commnad (mine is 'board ship') Now, the room spec_procs needs to unload the object at a certain time (I leave mine in port for two hrs) Second: Code the zone for the ship and do whatever you want with it. I create a mob called the skipper that does various shouts and duties while the ship is 'in motion' (that is when there is no dock loaded) Here is where I had some probs, so I will list both methods of how I unloaded the ship. met1: Have a room on the ship load an object called let's say, the port of waterdeep, and theplayer will see when the enter that room of the ship, "A gangplank stretches out to the dock of Waterdeep" or whatever, then have the player type 'cross dock' or whatever. (this is in the object spec_proc) and then transfer the player to the appropriate room in the game. met2: When a certain time is reached, have the zone transfer allplayers to the port room and send them some kind of emote, like, The dock reaches Waterdeep and the crew hutslte you off the ship. This way is limited because a ship can only have one destnnation. So all you need to do is corrdinate where and when the ship needs to be loaded and unloaded. Have a room spec_proc at each of the rooms do this, and thus it simulates the moving of the ship. Players can stay on board for as long as they like, but can only get off when a 'gangplank to a dock' is loaded into the room you board the ship from. (if using met2 from above) Basically all you have is the following: The ship zone A room spec_proc for each port that needs a ship loaded and unload to A room spec_proc for the room on the ship that loads the 'exit' A skipper spec_proc (just for roleplaying purposes) The following objects; The Ship (this is what each port room will load, it will have an obj spec_proc) Each dock/plank/ whatever (this will also have an obj spec_proc) This all a big illusion, theplayer thinks they are 'riding' on a ship Here is what really happens: PLayer enters a room with the ship loaded. player types <board ship> player is transfered to the ship zone ....time passes Captain shouts, approaching Waterdeep..... ....The waterdeep dock is loaded into the ship player types <cross dock> Player is transfered to the Waterdeep port (where the ship is also loaded in case they wanna get right back on) ....time passes Ship is extracted from the port It is just a big schedule of obj_to_rooms, messages, obj_from_rooms and etc.. I hope this makes sense, I am working on very little sleep. Almost all the code used in this entire thing can be piece together from stock circle funtions. The hardest part of this is the obj_spec_proc that looks for an argument from the player (board ship) and then transfer to the ship zone. If you need help with this part, mail me and I will help. Chuck +-----------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://cspo.queensu.ca/~fletcher/Circle/list_faq.html | +-----------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/18/00 PST