Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [ITEMDEF I_SHIP_MOUNT]
- ID 03E96
- TYPE T_EQ_HORSE
- LAYER LAYER_HORSE
- [TYPEDEF T_SHIP_TILLER]
- ON=@DCLICK
- REF1 <MORE1>
- IF (<REF1.dTAG0.CONTROLLING>)
- IF (<REF1.dTAG0.CONTROLLING> == <SRC>)
- REF1.TAG0.CONTROLLING
- SRC.SYSMESSAGE @,,1 You are not in control of the ship.
- SRC.FINDID.I_SHIP_MOUNT.REMOVE
- SRC.TAG0.CONTROLLING
- SRC.UPDATE
- RETURN 1
- ELSE
- SRC.SYSMESSAGE @,,1 This ship is in control of <UID.<REF1.TAG0.CONTROLLING>.NAME>!
- RETURN 1
- ENDIF
- ELSEIF (<SRC.DISTANCE <UID>> > 1)
- SRC.SYSMESSAGE @,,1 You are too far away.
- RETURN 1
- ELSEIF (<SRC.FINDLAYER.LAYER_HORSE>)
- SRC.SYSMESSAGE @,,1 You must be dismounted to control the ship!
- RETURN 1
- ELSE
- SHIPSTOP
- SERV.NEWITEM I_SHIP_MOUNT,1,<SRC>
- REF1.TAG0.CONTROLLING <SRC>
- SRC.TAG0.CONTROLLING <REF1>
- SRC.SYSMESSAGE @,,1 You are now the captain of this ship!
- // SRC.GO <P>
- RETURN 1
- ENDIF
- [FUNCTION F_PACKET_0XBF]
- IF (<LOCAL.2> == 0C)
- // SERV.B @,,1 <LOCAL.11>
- REF1 <LOCAL.CHAR>
- IF (<REF1.TAG0.CONTROLLING>)
- // LOCAL.1 &=~080
- REF2 <REF1.REGION.UID>
- IF (<dLOCAL.11> == 0)
- REF2.SHIPSTOP
- RETURN 0
- ENDIF
- LOCAL.DIR <STRSUB <EVAL STRLEN(<REF2.BASEID>)-1> 1 <REF2.BASEID>>
- IF (STRMATCH(*N*,*<LOCAL.DIR>*))
- LOCAL.DIR 0
- ELIF (STRMATCH(*E*,*<LOCAL.DIR>*))
- LOCAL.DIR 2
- ELIF (STRMATCH(*S*,*<LOCAL.DIR>*))
- LOCAL.DIR 4
- ELIF (STRMATCH(*W*,*<LOCAL.DIR>*))
- LOCAL.DIR 6
- ENDIF
- DOSWITCH <dLOCAL.9>
- // NORTH
- BEGIN
- IF (<dLOCAL.DIR> == 6)
- REF2.SHIPTURNRIGHT
- ELSEIF (<dLOCAL.DIR> == 2)
- REF2.SHIPTURNLEFT
- ELSEIF (<dLOCAL.DIR> == 4)
- REF2.SHIPTURN
- ENDIF
- REF2.SHIPFORE
- END
- // NORTH EAST
- BEGIN
- IF (<dLOCAL.DIR> == 6)
- REF2.SHIPTURNRIGHT
- REF2.SHIPFORERIGHT
- ELSEIF (<dLOCAL.DIR> == 2)
- REF2.SHIPFORELEFT
- ELSEIF (<dLOCAL.DIR> == 4)
- REF2.SHIPTURNLEFT
- REF2.SHIPFORELEFT
- ELSE
- REF2.SHIPFORERIGHT
- ENDIF
- END
- // EAST
- BEGIN
- IF (<dLOCAL.DIR> == 6)
- REF2.SHIPTURN
- ELSEIF (<dLOCAL.DIR> == 4)
- REF2.SHIPTURNLEFT
- ELSEIF (<dLOCAL.DIR> == 0)
- REF2.SHIPTURNRIGHT
- ENDIF
- REF2.SHIPFORE
- END
- // SOUTH EAST
- BEGIN
- IF (<dLOCAL.DIR> == 6)
- REF2.SHIPTURNLEFT
- REF2.SHIPFORELEFT
- ELSEIF (<dLOCAL.DIR> == 2)
- REF2.SHIPFORERIGHT
- ELSEIF (<dLOCAL.DIR> == 4)
- REF2.SHIPFORELEFT
- ELSEIF (<dLOCAL.DIR> == 0)
- REF2.SHIPTURN
- REF2.SHIPFORELEFT
- ENDIF
- END
- // SOUTH
- BEGIN
- IF (<dLOCAL.DIR> == 6)
- REF2.SHIPTURNLEFT
- ELSEIF (<dLOCAL.DIR> == 2)
- REF2.SHIPTURNRIGHT
- ELSEIF (<dLOCAL.DIR> == 0)
- REF2.SHIPTURN
- ENDIF
- REF2.SHIPFORE
- END
- // SOUTH WEST
- BEGIN
- IF (<dLOCAL.DIR> == 6)
- REF2.SHIPFORELEFT
- ELSEIF (<dLOCAL.DIR> == 2)
- REF2.SHIPTURNRIGHT
- REF2.SHIPFORERIGHT
- ELSEIF (<dLOCAL.DIR> == 4)
- REF2.SHIPFORERIGHT
- ELSEIF (<dLOCAL.DIR> == 0)
- REF2.SHIPTURN
- REF2.SHIPFORERIGHT
- ENDIF
- END
- // WEST
- BEGIN
- IF (<dLOCAL.DIR> == 4)
- REF2.SHIPTURNRIGHT
- ELSEIF (<dLOCAL.DIR> == 2)
- REF2.SHIPTURN
- ELSEIF (<dLOCAL.DIR> == 0)
- REF2.SHIPTURNLEFT
- ENDIF
- REF2.SHIPFORE
- END
- // NORTH WEST
- BEGIN
- IF (<dLOCAL.DIR> == 6)
- REF2.SHIPFORERIGHT
- ELSEIF (<dLOCAL.DIR> == 2)
- REF2.SHIPTURN
- REF2.SHIPFORERIGHT
- ELSEIF (<dLOCAL.DIR> == 4)
- REF2.SHIPTURNRIGHT
- REF2.SHIPFORERIGHT
- ELSEIF (<dLOCAL.DIR> == 0)
- REF2.SHIPFORELEFT
- ENDIF
- END
- ENDDO
- REF1.DIR <dLOCAL.9>
- REF1.UPDATE
- ENDIF
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement