// ################################ // ### Ultima Alianza 2001-2014 ### // ################################ [ITEMDEF i_decay_barco] ID=0108a NAME=Temporizador Decay Barco TYPE=t_eq_script WEIGHT=0 ON=@CREATE ATTR=attr_invis|attr_move_never|attr_decay TIMER=60 ON=@TIMER IF (( > 0) || !(==)) LINK=04fffffff REMOVE RETURN 1 ELSE IF (®ion_flag_ship) IF (==) LINK.REMOVE ENDIF ENDIF LINK=04fffffff REMOVE RETURN 1 ENDIF [DIALOG d_barco] 0, 0 SRC.DIALOGCLOSE d_barco NOCLOSE PAGE 0 RESIZEPIC 0 0 2620 250 350 PAGE 1 button 210 315 4017 4018 1 0 0 button 100 40 4500 4500 1 0 1 button 170 40 4501 4501 1 0 2 button 170 100 4502 4502 1 0 3 button 170 160 4503 4503 1 0 4 button 100 160 4504 4504 1 0 5 button 30 160 4505 4505 1 0 6 button 30 100 4506 4506 1 0 7 button 30 40 4507 4507 1 0 8 button 110 114 4020 4020 1 0 9 button 20 240 4005 4006 1 0 10 button 20 270 4005 4006 1 0 11 button 20 300 4005 4006 1 0 12 text 65 240 1152 0 text 65 270 1152 1 text 65 300 1152 2 text 48 9 1152 3 [DIALOG d_barco TEXT] Girar. Elevar Ancla. Soltar Ancla. Sistema de Navegacion. [DIALOG d_barco BUTTON] on=0 SRC.TAG.UIDBARCO= SRC.SYSMESSAGE @0 Has cerrado el sistema de navegacion... on=1 SRC.SAY Adelante! IF (==0) SRC.FINDID.i_on_boat.TAG.ACELERACION=1 SERV.NEWITEM i_shiphaste NEW.LINK= NEW.NAME=Control de velocidad NEW.ATTR=attr_invis|attr_move_never NEW.P=

NEW.TIMER=1 ENDIF TRY UID..NAVEGACION_ADELANTE SRC.DIALOG d_barco on=2 TRY UID..NAVEGACION_ADELANTEDER SRC.DIALOG d_barco on=3 TRY UID..NAVEGACION_DERECHA SRC.DIALOG d_barco on=4 TRY UID..NAVEGACION_ATRASDER SRC.DIALOG d_barco on=5 SRC.SAY Atras! TRY UID..NAVEGACION_ATRAS SRC.DIALOG d_barco on=6 TRY UID..NAVEGACION_ATRASIZQ SRC.DIALOG d_barco on=7 TRY UID..NAVEGACION_IZQUIERDA SRC.DIALOG d_barco on=8 TRY UID..NAVEGACION_ADELANTEIZQ SRC.DIALOG d_barco on=9 SRC.SAY Para! TRY UID..NAVEGACION_PARAR SRC.DIALOG d_barco on=10 TRY UID..NAVEGACION_GDERECHA SRC.DIALOG d_barco on=11 TRY UID..NAVEGACION_LEVARANCLAS SRC.DIALOG d_barco on=12 TRY UID..NAVEGACION_ANCLAR SRC.DIALOG d_barco // ################################ // ################################ // ################################ [ITEMDEF i_on_boat] NAME=On Boat ID=014f1 TYPE=t_eq_script WEIGHT=0 LAYER=layer_special ON=@CREATE ATTR=attr_Invis|attr_decay TAG.ACELERACION=0 ON=@EQUIP LINK= LINK.TAG0.PASAJEROS=+1 LINK.LINK.SAY @0481 Pasajeros: On=@UNEQUIP LINK.TAG0.PASAJEROS=-1 LINK.LINK.SAY @0481 Pasajeros: ON=@TIMER RETURN 1 [ITEMDEF i_shiphaste] ID=01ea7 TYPE=t_eq_script NAME=Ship Speed Control ON=@Timer IF (==i_on_boat) IF !(==-1) TIMERD=3 LINK.LINK.TIMERD=1 ELSE LINK.TAG.ACELERACION=0 REMOVE ENDIF ELSE REMOVE ENDIF RETURN 1 [ITEMDEF I_BOAT_TIMER] NAME=Boat Redeed Timer ID=014f1 TYPE=t_eq_script WEIGHT=0 LAYER=layer_special ON=@CREATE ATTR=attr_invis|attr_decay TAG.CUENTAATRAS=10 ON=@EQUIP TIMER=1 LINK= IF ==i_multi_ship_small_N TAG.XBASEID=i_deed_ship_small_N ELSEIF ==i_multi_ship_dragon_small_N TAG.XBASEID=i_deed_ship_dragon_small_N ELSEIF ==i_multi_ship_medium_N TAG.XBASEID=i_deed_ship_medium_N ELSEIF ==i_multi_ship_dragon_medium_N TAG.XBASEID=i_deed_ship_dragon_medium_N ELSEIF ==i_multi_ship_long_N TAG.XBASEID=i_deed_ship_long_N ELSEIF ==i_multi_ship_dragon_long_N TAG.XBASEID=i_deed_ship_dragon_long_N ELSEIF ==i_multi_skiff_n TAG.XBASEID=i_deed_multi_skiff_n ENDIF SRC.SAY @0 El barco se convertira en escritura en > segundos. SRC.SAY @0481 Salid todos del barco! ON=@TIMER IF () IF () CONT.MESSAGE > TAG.CUENTAATRAS=+-1 TIMER=1 RETURN 1 ENDIF ENDIF REMOVE RETURN 1 ON=@UNEQUIP IF >0 SRC.SYSMESSAGE @0 No debe haber nadie en el barco! ELSE IF LINK.REMOVE SERV.NEWITEM= NEW.BOUNCE SRC.RESEND SRC.SYSMESSAGE @0 Barco convertido en escritura. ELSE SRC.SYSMESSAGE @0 Tienes que poner el barco recto para convertirlo en escritura. SRC.SYSMESSAGE @0 Si aun asi no puedes ha habido algun fallo. Avisa a un GM. ENDIF ENDIF [ITEMDEF 03e84] //gang plank TYPE=T_SHIP_PLANK TDATA1=03e85 ON=@DCLICK LINK.REGION.EVENTS +r_ship RETURN 0 CATEGORY=Ship Parts SUBSECTION=Gang Plank DESCRIPTION=@ //DUPELIST=03e86,03e89,03ed3,03ed4,03ed5 [ITEMDEF 03e85] //ship NAME=barco TYPE=T_SHIP_SIDE_LOCKED TDATA1=03e84 ON=@DCLICK LINK.REGION.EVENTS +r_ship RETURN 0 [ITEMDEF 03e86] //gang plank TYPE=T_SHIP_PLANK TDATA1=03e87 ON=@DCLICK LINK.REGION.EVENTS +r_ship RETURN 0 [ITEMDEF 03e87] //ship NAME=barco TYPE=T_SHIP_SIDE_LOCKED TDATA1=03e86 ON=@DCLICK LINK.REGION.EVENTS +r_ship RETURN 0 [ITEMDEF 03ed3] //gang plank TYPE=T_SHIP_PLANK TDATA1=03ea9 ON=@DCLICK LINK.REGION.EVENTS +r_ship return 0 [ITEMDEF 03ea9] //ship NAME=barco TYPE=T_SHIP_SIDE_LOCKED TDATA1=03ed3 ON=@DCLICK LINK.REGION.EVENTS +r_ship RETURN 0 [ITEMDEF 03ed4] //gang plank TYPE=T_SHIP_PLANK TDATA1=03eb2 ON=@DCLICK LINK.REGION.EVENTS +r_ship RETURN 0 [ITEMDEF 03eb2] //ship NAME=barco TYPE=T_SHIP_SIDE_LOCKED TDATA1=03ed4 ON=@DCLICK LINK.REGION.EVENTS +r_ship RETURN 0 [ITEMDEF 03ed5] //gang plank TYPE=T_SHIP_PLANK TDATA1=03eb1 ON=@DCLICK LINK.REGION.EVENTS +r_ship RETURN 0 [ITEMDEF 03eb1] //ship NAME=barco TYPE=T_SHIP_SIDE_LOCKED TDATA1=03ed5 ON=@DCLICK LINK.REGION.EVENTS +r_ship RETURN 0 //End Modified Ship Planks //Begin Boat Menu [MENU M_BOAT_Main] Menu del Barco - Pasajeros: ==t_ship_tiller) ? : > On=0 Convertir el barco en escritura SRC.MENU M_BOAT_DEED [MENU M_BOAT_DEED] Menu del Barco - Confirmacion. On=0 Si quiero seguir. NOTA: Todos los objetos del barco se perderan y hay una diminuta posibilidad de que el barco desaparezca si te alejas. No devolveremos los barcos que se pierdan de esta manera. REF1= If (==i_multi_ship_small_n) || (==i_multi_ship_dragon_small_n) || (==i_multi_ship_medium_n) || (==i_multi_ship_dragon_medium_n) || (==i_multi_ship_long_n) || (==i_multi_ship_dragon_long_n) || (==i_multi_skiff_n) IF !() SRC.NEWITEM I_BOAT_TIMER SRC.ACT.EQUIP ENDIF ELSE SRC.SYSMESSAGE @0 Debes colocar el barco en orientacion Norte-Sur para poder convertirlo en escritura. ENDIF RETURN 1 On=0 No quiero seguir. Volver al menu anterior. Menu M_BOAT_Main [EVENTS E_ON_BOAT] ON=@ITEMCREATE IF (==t_fish) IF (®ion_flag_ship) SYSMESSAGE @086 Cualquier cosa que pongas sobre el barco desaparecera en 60 segundos! SYSMESSAGE @0 Para guardar cosas usa la trampilla. LOCAL.DUID= LOCAL.P= LOCAL.DBASEID= SERV.NEWITEM=i_decay_barco NEW.LINK= NEW.TAG.DBASEID= NEW.TAG.P= NEW.P= NEW.TIMER=60 ENDIF ENDIF ON=@itemDROPON_GROUND IF (®ion_flag_ship) IF (®ion_flag_ship) SRC.SYSMESSAGE @086 Cualquier cosa que pongas sobre el barco desaparecera en 60 segundos! SRC.SYSMESSAGE @0 Para guardar cosas usa la trampilla. LOCAL.DUID= LOCAL.P= LOCAL.DBASEID= SERV.NEWITEM=i_decay_barco NEW.LINK= NEW.TAG.DBASEID= NEW.TAG.P= NEW.P= NEW.TIMER=60 ENDIF ENDIF ON=@itemDCLICK IF ()&&(=t_ship_tiller) SRC.MENU M_BOAT_MAIN RETURN 1 ELSEIF (==t_ship)&&(==)&&(==) SRC.MENU M_BOAT_MAIN RETURN 1 ELSEIF (=t_ship_tiller)&&(.MORE1>==)&&(==) SRC.MENU M_BOAT_MAIN RETURN 1 ELSE RETURN 0 ENDIF // ########################################################## // ################## FUNCIONES DE NAVEGACION ############### // ########################################################## [FUNCTION NAVEGACION_ADELANTE] IF !(strmatch("i_multi_skiff*","")) SHIPFORE ELSE SHIPDRIFTLEFT ENDIF ACTUALIZAR_BARCO [FUNCTION NAVEGACION_ATRAS] IF !(strmatch("i_multi_skiff*","")) SHIPBACK ELSE SHIPDRIFTRIGHT ENDIF ACTUALIZAR_BARCO [FUNCTION NAVEGACION_PARAR] SHIPSTOP ACTUALIZAR_BARCO [FUNCTION NAVEGACION_GIZQUIERDA] //LOCAL.TMP= //OBJ= //FORITEMS 8 // IF (==t_ship) // IF (!=) // SRC.SYSMESSAGE @0 Hay un barco cerca, no puedes girar. // return 1 // ENDIF // ENDIF //ENDFOR //OBJ.SHIPTURNLEFT //OBJ.SHIPFIX //OBJ= SHIPTURNLEFT ACTUALIZAR_BARCO [FUNCTION NAVEGACION_GDERECHA] //LOCAL.TMP= //OBJ= //FORITEMS 8 // IF (==t_ship) // IF (!=) // SRC.SYSMESSAGE @0 Hay un barco cerca, no puedes girar. // return 1 // ENDIF // ENDIF //ENDFOR //OBJ.SHIPTURNRIGHT //OBJ.SHIPFIX //OBJ= SHIPTURNRIGHT ACTUALIZAR_BARCO [FUNCTION NAVEGACION_IZQUIERDA] IF !(strmatch("i_multi_skiff*","")) SHIPDRIFTLEFT ELSE SHIPBACK ENDIF ACTUALIZAR_BARCO [FUNCTION NAVEGACION_DERECHA] IF !(strmatch("i_multi_skiff*","")) SHIPDRIFTRIGHT ELSE SHIPFORE ENDIF ACTUALIZAR_BARCO [FUNCTION NAVEGACION_ADELANTEIZQ] IF !(strmatch("i_multi_skiff*","")) SHIPFORELEFT ELSE SHIPBACKLEFT ENDIF ACTUALIZAR_BARCO [FUNCTION NAVEGACION_ADELANTEDER] IF !(strmatch("i_multi_skiff*","")) SHIPFORERIGHT ELSE SHIPFORELEFT ENDIF ACTUALIZAR_BARCO [FUNCTION NAVEGACION_ATRASIZQ] IF !(strmatch("i_multi_skiff*","")) SHIPBACKLEFT ELSE SHIPBACKRIGHT ENDIF ACTUALIZAR_BARCO [FUNCTION NAVEGACION_ATRASDER] IF !(strmatch("i_multi_skiff*","")) SHIPBACKRIGHT ELSE SHIPFORERIGHT ENDIF ACTUALIZAR_BARCO [FUNCTION NAVEGACION_LEVARANCLAS] SHIPANCHORRAISE ACTUALIZAR_BARCO [FUNCTION NAVEGACION_ANCLAR] SHIPANCHORDROP ACTUALIZAR_BARCO [FUNCTION NAVEGACION_MEDIAVUELTA] SHIPTURN ACTUALIZAR_BARCO [FUNCTION NAVEGACION_ARRIBA] SHIPUP ACTUALIZAR_BARCO [FUNCTION NAVEGACION_ABAJO] SHIPDOWN ACTUALIZAR_BARCO [FUNCTION NAVEGACION_ATRACAR] SHIPLAND ACTUALIZAR_BARCO [FUNCTION ACTUALIZAR_BARCO] IF (strmatch(*Barco*,"")) LINK.REGION.EVENTS +r_ship ENDIF LINK.TIMER=259200 LINK.ATTR=04002 // ############################################################ // ###################### SPEECH DE BARCOS #################### // ############################################################ [SPEECH spk_ship_cmds] ON=Navegacion IF (==)||() SRC.DIALOG d_barco SRC.TAG.UIDBARCO= ACTUALIZAR_BARCO ELSE SRC.SYSMESSAGE @0 Solo el capitan del barco puede usar el menu de navegacion! ENDIF ON=Furl sail // Stop ON=Stop // Stops current ship movement. ON=Para ON=parar ON=detente NAVEGACION_PARAR ON=Turn Left ON=Port // Turn Left ON=Girar izquierda ON=gira izquierda NAVEGACION_GIZQUIERDA ON=Turn Right ON=Starboard ON=Girar derecha ON=gira derecha NAVEGACION_GDERECHA ON=Left // Move ship in desired direction. ON=Drift Left ON=Izquierda ON=Babor NAVEGACION_IZQUIERDA ON=Right // Move ship in desired direction. ON=Drift Right ON=Derecha ON=Estribor NAVEGACION_DERECHA ON=Back // Move ship backwards ON=Backward // Move ship backwards ON=Backwards // Move ship backwards ON=Atras ON=Retrocede ON=Retroceder NAVEGACION_ATRAS ON=Forward ON=Foreward // Moves ship forward. ON=Unfurl sail // Moves ship forward. ON=Adelante NAVEGACION_ADELANTE ON=Forward left NAVEGACION_ADELANTEIZQ ON=forward right NAVEGACION_ADELANTEDER ON=backward left ON=back left NAVEGACION_ATRASIZQ ON=backward right ON=back right NAVEGACION_ATRASDER ON=Raise Anchor ON=Levar ancla ON=Levar anclas NAVEGACION_LEVARANCLAS ON=Drop Anchor ON=Tirar ancla ON=Echar ancla NAVEGACION_ANCLAR ON=Media Vuelta ON=Turn around // Turns ship around and proceeds. ON=Come about // Turns ship around and proceeds. NAVEGACION_MEDIAVUELTA ON=Up ON=arriba NAVEGACION_ARRIBA ON=Down ON=abajo NAVEGACION_ABAJO ON=Land ON=Atracar NAVEGACION_ATRACAR // #################################################################### // ################## FUNCIONES DE NAVEGACION POR MAPAS ############### // #################################################################### [FUNCTION F_NAV_2] src.act=0 if 0=0 src.act.say Detente! elif !=t_map src.act.say Eso no es un mapa capitan! elif > src.act.say Desconozco donde estamos capitan! Tal vez deberiamos trazar una ruta en el mapa del mundo! elif > src.act.say Desconozco donde estamos capitan! Tal vez deberiamos trazar una ruta en el mapa del mundo! elif < src.act.say Desconozco donde estamos capitan! Tal vez deberiamos trazar una ruta en el mapa del mundo! elif < src.act.say Desconozco donde estamos capitan! Tal vez deberiamos trazar una ruta en el mapa del mundo! else try var.morep src.targ.get_map_p 1 tag.mapx= tag.mapy= if (0<1)|(0<1) src.act.say No tengo ni la menor idea de donde esta esa ubicacion! else tag.pin=1 tag.map= src.act.say Si mi capitan! ruta fijada! Viento en popa a toda vela! if 0> shipturn shipfore more2=+1> f_start_ship endif endif [FUNCTION F_NAV_CHAR] src.act=0 src.act.say No creo que eso sea un mapa capitan! [function get_map_p] morep=> var.num1=100 morex=+((-)/194)*))> morey=+((-)/194)*))> [function go_pin] get_map_p src.go src.fix src.say [function f_start_ship] //src.say start var.act= src.act=0 if 0=0 src.newitem i_ship_watch src.act.p=

src.act.fix src.act.link= tag.shipwatch= src.act.timerd=1 endif src.act= var.act [itemdef i_ship_watch] id=02007 type=t_eq_script layer=30 on=@create attr=attr_decay on=@timer timerd=1 if <5120 link.wrapx endif if <5120 link.wrapy endif if (&01)|(&02) else link.tag.shipwatch remove endif return 1 [function wrapx] if >5100 shipgate 20, elif <20 shipgate 5100, endif [function wrapy] if >4086 shipgate ,8,, elif <8 shipgate ,4086,, endif [REGIONTYPE r_ship] DEFNAME=r_ship ON=@ENTER SRC.SYSMESSAGE @086 AVISO: SRC.SYSMESSAGE @0481 Di Navegacion para activar el sistema de navegacion. Tras 3 dias de desuso un barco es eliminado. SRC.EVENTS +e_on_boat ON=@STEP IF !() IF !() && (==0) SERV.NEWITEM i_on_boat NEW.EQUIP ENDIF ENDIF ON=@EXIT SRC.EVENTS -e_on_boat IF () SRC.FINDID.i_on_boat.REMOVE ENDIF [EOF]