//Speed up boats, v1.5 //1.0 - Initial release of script. //1.1 - Ship speed now calculated by number of clients //1.2 - Auto-drydocking added. //1.3 - Fixed auto-drydocking so that the ship always goes to // the captain's pack, instead of the last person off. //1.4 - Speed is now changable by the player via the "Faster", // "Slower", and "Full speed" commands. //1.5 - If a player crashes on the boat, they will be teleported // to the boat's new location on logon, if it still exists. //By Rudenid //Meant for Sphere .55i. //If anyone ports this to a newer Sphere version, you may submit //the port if you leave this header intact. //Makes boats move at about 7x their normal speed. //Rename your existing speech block in sphereitem_multi.scp //To something else before using this. If using a boat bug fix, //You may need to add the "fix" code below the respective speech //Blocks. //This part goes in Skillclass 0 in spheretables.scp! ON=@Login IF (> > 0) IF (>.ISITEM>) IF (>.TYPE> = t_ship) GOUID > NUDGEUP 5 ENDIF ENDIF TAG.LOGOFFSHIP= ENDIF ON=@Logout IF ( & region_flag_ship) TAG.LOGOFFSHIP= ENDIF //The rest goes in its own file. [FUNCTION countclients] VAR.CLIENTCOUNT= + 1> [ITEMDEF i_shiphaste] ID=01ea7 TYPE=t_eq_script NAME=Ship Speed Control ON=@Timer TAG.OLDLINK= TAG.LINKID= TAG.LINKNAME= TAG.LINKMORE= TAG.LINKMORE1= LINK= IF !(®ion_flag_ship) //Don't do anything unless they're actually on board LINK.NEWITEM i_model_ship LINK.ACT.TYPE=t_deed LINK.ACT.NAME= LINK.ACT.MORE=> LINK.ACT.MORE2=> LINK.ACT.CONT= LINK.ACT.MORE2=0 TAG.LINKMORE1= REGION.ALLCLIENTS GO LINK=> TAG.OLDLINK= LINK.TAG.HASTEUID= REMOVE LINK.REMOVE RETURN 1 ELSE LINK=> TAG.OLDLINK= VAR.CLIENTCOUNT=0 REGION.ALLCLIENTS countclients TAG.MAXTIMERCOUNT= / 3> + 1> IF (> < >) TAG.TIMERCOUNT=> LINK.LINK.SAY Full speed ahead, captain! (>). ENDIF TIMERd= + 1> LINK.TIMERd=> RETURN 1 ENDIF [SPEECH spk_ship_cmds] ON=Set name * // Changes Ship's name, where *=name. // NAME=,8,64)> ON=Full speed IF (> > 0) VAR.OLDACT= SRC.ACT=> SRC.ACT.TAG.TIMERCOUNT=0 SRC.ACT=> VAR.OLDACT= ELSE LINK.SAY We're not moving yet, Captain. ENDIF ON=Slower IF (> > 0) VAR.OLDACT= SRC.ACT=> SRC.ACT.TAG.TIMERCOUNT= + 1> LINK.SAY Ye landlubbers... always wantin' to slow down the boat. So be it. (>) SRC.ACT=> VAR.OLDACT= ELSE LINK.SAY We're not moving yet, Captain. ENDIF ON=Faster IF (> > 0) VAR.OLDACT= SRC.ACT=> IF ( +(-1)> < >) LINK.SAY We're already goin' full speed, Cap'n. ELSE SRC.ACT.TAG.TIMERCOUNT= + (-1)> LINK.SAY Aye aye, Cap'n! (>) ENDIF SRC.ACT=> VAR.OLDACT= ELSE LINK.SAY We're not moving yet, Captain. ENDIF ON=Furl sail // Stop ON=Stop // Stops current ship movement. SHIPSTOP ON=Turn Left ON=Port // Turn Left SHIPTURNLEFT ON=Turn Right ON=Starboard // Turn Right SHIPTURNRIGHT ON=Left // Move ship in desired direction. ON=Drift Left SHIPDRIFTLEFT ON=Right // Move ship in desired direction. ON=Drift Right SHIPDRIFTRIGHT ON=Back // Move ship backwards ON=Backward // Move ship backwards ON=Backwards // Move ship backwards SHIPBACK ON=Forward ON=Foreward // Moves ship forward. ON=Unfurl sail // Moves ship forward. IF (> == 0) SRC.NEWITEM i_shiphaste TAG.HASTEUID= SRC.ACT.LINK= SRC.ACT.MORE1= SRC.ACT.NAME=Ship Speed Control for SRC.ACT.ATTR=attr_invis|attr_move_never SRC.ACT.P=

SRC.ACT.TIMER=1 ENDIF SHIPFORE ON=Forward left SHIPFORELEFT ON=forward right SHIPFORERIGHT ON=backward left ON=back left SHIPBACKLEFT ON=backward right ON=back right SHIPBACKRIGHT ON=Raise Anchor SHIPANCHORRAISE ON=Drop Anchor SHIPANCHORDROP ON=Turn around ON=Come about SHIPTURN ON=Up SHIPUP ON=Down SHIPDOWN ON=Land SHIPLAND