event SysMessage Macro pvm by Romasanta
initevents
event macro 8 7
wait 1s
set %BackID BQNHOOD
while #true
{
if #CONTTYPE = YFM
{
set %id_tmp #CONTID
gosub guardar POF C_ , %id_tmp %BackID
gosub guardar YFM C_ , %id_tmp %BackID
gosub guardar PNL C_ , %id_tmp %BackID
gosub guardar MZF C_ , %id_tmp %BackID
gosub guardar QZF C_ , %id_tmp %BackID
gosub guardar XYF C_ , %id_tmp %BackID
gosub guardar SEE C_ , %id_tmp %BackID
gosub guardar LZF C_ , %id_tmp %BackID
gosub guardar IUF C_ , %id_tmp %BackID
gosub guardar OZF C_ , %id_tmp %BackID
gosub guardar HUF C_ , %id_tmp %BackID
gosub guardar DAG C_ , %id_tmp %BackID
gosub guardar XVH C_ , %id_tmp %BackID
gosub guardar RWF C_ , %id_tmp %BackID
gosub guardar NWL C_ , %id_tmp %BackID
gosub guardar EAG C_ , %id_tmp %BackID
gosub guardar MSG C_ , %id_tmp %BackID
gosub guardar EYAB C_ , %id_tmp %BackID
gosub guardar CBBB C_ , %id_tmp %BackID
gosub guardar JWS C_ , %id_tmp %BackID
gosub guardar LGG C_ , %id_tmp %BackID
gosub guardar KUF C_ , %id_tmp %BackID
gosub guardar JUF C_ , %id_tmp %BackID
gosub guardar KZF C_ , %id_tmp %BackID
gosub guardar RZF C_ , %id_tmp %BackID
gosub guardar SZF C_ , %id_tmp %BackID
gosub guardar WZF C_ , %id_tmp %BackID
gosub guardar JZF C_ , %id_tmp %BackID
gosub guardar MZF C_ , %id_tmp %BackID
gosub guardar NZF C_ , %id_tmp %BackID
gosub guardar MZF C_ , %id_tmp %BackID
gosub guardar NLF C_ , %id_tmp %BackID
gosub guardar FUF C_ , %id_tmp %BackID
gosub guardar PZF C_ , %id_tmp %BackID
gosub guardar VZF C_ , %id_tmp %BackID
gosub guardar EUF C_ , %id_tmp %BackID
gosub guardar XZF C_ , %id_tmp %BackID
gosub guardar TZF C_ , %id_tmp %BackID
gosub guardar IUL C_ , %id_tmp %BackID
gosub guardar UTL C_ , %id_tmp %BackID
gosub guardar VTL C_ , %id_tmp %BackID
gosub guardar LUL C_ , %id_tmp %BackID
gosub guardar PUL C_ , %id_tmp %BackID
gosub guardar WTL C_ , %id_tmp %BackID
gosub guardar OTL C_ , %id_tmp %BackID
gosub guardar GYL C_ , %id_tmp %BackID
gosub guardar STL C_ , %id_tmp %BackID
gosub guardar ZUL C_ , %id_tmp %BackID
gosub guardar QTL C_ , %id_tmp %BackID
gosub guardar UUL C_ , %id_tmp %BackID
gosub guardar CYL C_ , %id_tmp %BackID
gosub guardar ZTL C_ , %id_tmp %BackID
gosub guardar GUL C_ , %id_tmp %BackID
gosub guardar CUL C_ , %id_tmp %BackID
gosub guardar WXL C_ , %id_tmp %BackID
gosub guardar NUL C_ , %id_tmp %BackID
gosub guardar FVL C_ , %id_tmp %BackID
gosub guardar VUL C_ , %id_tmp %BackID
gosub guardar CVL C_ , %id_tmp %BackID
gosub guardar NXL C_ , %id_tmp %BackID
}
}
halt
;================================================= ==========
;drag (idtype_objeto, cantidad_a_arrastrar, x, y, contenedor, time_wait)
;ejemplo: gosub drag %idtype_ingot all %aux_x %aux_y C_ , #BACKPACKID 10
sub drag
drag:
if #contname = drag_gump
goto waitfordraggumpx
if #contname = stack_gump
goto waitforstackgumpx
finditem %1 %5
if #findkind = -1
return
Event Drag #FindID
waitforstackgumpx:
set %dragtimeout #scnt + 5
waitforstackgump:
if #scnt >= %dragtimeout
goto drag
if #contname = drag_gump || #findstack < 2
goto waitfordraggumpx
if #contname <> stack_gump && #findstack > 1
goto waitforstackgump
if %2 = all
msg $
else
msg %2 $
goto waitfordraggumpx:
set %dragtimeout #scnt + 5
waitfordraggump:
if #scnt >= %dragtimeout
goto drag
if #contname <> drag_gump
goto waitfordraggump
;click %3 %4 p
exevent Dropc %BackID
click #NEXTCPOSX #NEXTCPOSY
wait %6
if %2 = all
goto drag
else
return
;================================================= ==========
sub guardar
set %tmp %1
set %origen %2
set %destino %3
finditem %tmp %origen
if #findid <> X
{
exevent drag #findid #FINDSTACK
wait 20
exevent dropc %destino
}
return
-------------------------------------------------
pescar:
; Macro de Pescar para UA-Sphere (Sphere 0.56b-Nightly)
; Versión 2.0
; Creado por: darksplit
; Ultima edición: 29/08/2014 (Rutger)
; Modificaciones de: Conde Karismat
; Modificaciones de: Rutger (29/08/2014)
; 01/09/2011 Se incluyen dos nuevos mensajes para scanear en el journal y que por ello paraban la macro
; 23/11/2010 Arreglo bug que cuando gira el barco se cierra la trampilla y no se guardan los objetos (nuevo emulador)
; 23/11/2010 Arreglo bug que la mascota se iba al otro extremo del barco. Ahora no se despega de al lado
; 22/11/2010 Ahora la trampilla abre en la localizacion esquina izquierda, para evitar que se inestabilice la macro
; 29/08/2014 Ahora solo se esconde cuando saca un agujero dejando que el monstruo ataque a la montura o familiar
; 29/08/2014 Añadidos nuevos types de peces
; 29/08/2014 Modificada la forma de hacer target y optimizado el funcionamiento global de la macro.
; ------------------------------------------------------
;
;
; Explicación:
; Pesca: Peces, pececillos de todo tipo, cofres y frascos con mapa.
; Objetivo: Guardar TODO en la trampilla. Evita todo tipo de monstruo marino.
; Problemas: Kraken te quita el ocultar (no son frecuentes).
; Solución: Tener un Familiar/Mascota Leal/Golem paseando por el barco (no desaparecen).
; Skill: 30-45, falla mucho y sube poco.
; 45-50, no falla tanto, empieza a subir y pescar más
; 50-100, sube rapido y pesca abundante.
;
; Funcionamiento:
; Rail: Dibuja un cuadrado en el agua, para crear un bucle,
; debes estar en Mar Profundo en un espacio grande
; Pesca: Pesca siempre en perpendicular al barco, para peinar el mar.
;
; Importante:
; Skills: Pescar y Ocultarse (o utilizar Túnica Oscura).
; Posición del barco: Sur-Norte o Norte-Sur.
; Posición del PJ: Entre el Mástil y la Trampilla, en el cuadrado siguiente al mastil.
;
;
; Modificaciones:
; Comida
set %comida QQD_YSD_RUD_SQD_PQD_FWI_RUD_WLI_FUD
; Types de los objetos y bichos
;set %peces FQD_GQD_EQD_DQD
set %peces HEF_LRHB_URHB_MRHB_PRHB_KRHB_NSL_JMF_XHF_IIF_XLF_H ZHB
set %pezespecial HEF_LRHB_URHB_MRHB_PRHB_KRHB_NSL_JMF_XHF_IIF_XLF_H ZHB_XRHB
;set %pezespecial IEF_YDF_XDF_HEF_LRHB_URHB_MRHB_NSL_PRHB_JMF_KRHB_X HF
set %tesoro IIF_XLF_HZHB
set %frasco JMF_IIF_XLF_HZHB
set %bicho KI_P
set %baul ZNX_LWX_ZUX_UVX
set %idbaul NCBERPD
; Variables iniciales
set %coordenadas 2
set %lado 0
set %moverse 1
set %orientacion 1
set %seguridad 0
; Variables UOTitle
set %kraken 0
set %infopececillos 0
set %infopeces 0
set %infopecesantiguos 0
set %infopecestotal 0
NEXTCPOS 12 34
finditem %baul G_5
set %idbaul #FINDID
set #LOBJECTID %idbaul
event macro 17 0
wait 10
finditem %peces C_ , %idbaul
for #findindex 1 #findcnt
{
set %infopecesantiguos %infopecesantiguos + #findstack
}
set %infotesoros 0
set %infofrascos 0
set %infobichos 0
set %infomovimientos 0
set #sysmsgcol 1264
event sysmessage ================
event sysmessage Comienza la macro de Pescar.
event sysmessage ================
sub titulo
set %infopecestotal %infopecesantiguos + %infopeces
setuotitle Bucles: %infomovimientos || Peces en baul: %infopecestotal | Peces añadidos: %infopeces | Pececillos última pesca: %infopececillos | Bichos esquivados: %infobichos | Kraken: %kraken | Tesoros: %infotesoros | Frascos: %infofrascos
return
event macro 1 0 navegacion
sub comer ; <************A comer!*************>
findItem %comida C_ , #BACKPACKID
set #LOBJECTID #FINDID
event macro 17
wait 10
return
; Comienzo de la macro, busca caña y la utiliza.
comienzo:
gosub titulo
finditem KDF_XHF C_ , #CHARID
set #LOBJECTID #FINDID
set %cmsg #jIndex
event macro 17
wait 10
set %fmsg #jIndex
for %i %cmsg %fmsg
{
scanJournal %i
if Donde_quieres_lanzar in #journal
{
goto acabopescar
}
}
goto comienzo
; Al tener la caña en uso, pesca.
acabopescar:
set %cmsg #jIndex
if %orientacion = 1 ; Pesca perpendicular a la orientación S-N
{
set #LTARGETY #CHARPOSY
set #LTARGETX #CHARPOSX + %coordenadas
}
if %orientacion = 2 ; Pesca en perpendicular a la orientación E-O
{
set #LTARGETY #CHARPOSY + %coordenadas
set #LTARGETX #CHARPOSX
}
wait 5
event macro 22
wait 10
set %fmsg #jIndex
for %i %cmsg %fmsg
{
scanJournal %i
; Ha pescado posiblemente un monstruo, se esconde y espera 80s a que la pet lo mate.
; Se ha subido esta comprobación arriba para priorizar este evento sobre cualquier otro.
if agujero in #journal
{
set %rallada 0
event macro 1 0 left
wait 1
event macro 13 21 ; Se esconde
wait 10
gosub recoger
wait 8s
event macro 1 0 forward right
wait 9s
event macro 1 0 stop
wait 3s
event macro 1 0 all come ; Llama a la pet por si se ha alejado un poco.
wait 2s
event macro 1 0 all stop ; Detiene a la pet.
goto comienzo
}
; Ha pescado algo, reinicia la Rallada y lo recoge. Vuelve a pescar en el mismo lugar.
if pez in #journal || red in #journal || pececillos in #journal || cofre in #journal || tesoro in #journal || frasco in #journal || botella in #journal || sacado in #journal
{
set %rallada 0
gosub recoger
goto comienzo
}
; No pesco nada, lo vuelve a intentar, un máximo de 10 veces seguidas se puede fallar.
if No_pescas_nada in #journal
{
set %rallada %rallada + 1
if %rallada = 10
{
set %rallada 0
gosub editocoordenadas
goto comienzo
}
goto comienzo
}
; Aquí dónde has pescado no hay nada de nada, prueba en otro lado.
if Intenta_pescar_en in #journal || Aqui_no_hay in #journal || Eso_es_muy_lejos in #journal || You_can't_see in #journal || Prueba_a_pescar in #journal
{
gosub editocoordenadas
goto comienzo
}
}
; La seguridad por si se queda esperando una frase y no aparece, y tiene el target puesto.
; Buscará 200 veces la frase, traducido en segundos, durante unos pocos minutos.
set %seguridad %seguridad + 1
if %seguridad = 150
{
set %seguridad 0
goto comienzo
}
goto acabopescar
; Sub para recoger cualquier cosa que haya pescado.
; Primero la busca y luego la coge y la deja en la trampilla.
; Los tesoros necesitan de dos drags para poder cogerlos correctamente.
sub recoger
set #LOBJECTID %idbaul
NEXTCPOS 12 34
event macro 17 0
wait 1s
finditem %peces G_2
if #findcnt > 0
{
set %infopeces %infopeces + #findstack
exevent drag #FINDID #FINDSTACK
;finditem %baul G_5
;set %idbaul #FINDID
exevent dropc %idbaul
}
finditem %pezespecial G_2
if #findcnt > 0
{
set %infopececillos %infopececillos + 1
exevent drag #FINDID #FINDSTACK
;finditem %baul G_5
;set %idbaul #FINDID
exevent dropc %idbaul
}
finditem %frasco G_2
if #findcnt > 0
{
set %infofrascos %infofrascos + 1
exevent drag #FINDID
;finditem %baul G_5
;set %idbaul #FINDID
exevent dropc %idbaul
}
finditem %tesoro G
if #findcnt > 0
{
set %infotesoros %infotesoros + 1
;finditem %baul G_5
;set %idbaul #FINDID
finditem %tesoro G
exevent drag #FINDID
exevent dropc %idbaul
wait 1s
msg .resend$
exevent drag #FINDID
exevent dropc %idbaul
wait 1s
}
return
; Sub de coordenadas de pesca. Se empieza a una casilla del PJ para no pescar sobre el barco.
; Con un máximo de 6 casillas del PJ, ya que no tiene más sedal.
sub editocoordenadas
if %lado = 0
{
set %coordenadas %coordenadas + 1
if %coordenadas >= 5
{
set %lado 1
set %coordenadas -2
}
}
if %lado = 1
{
set %coordenadas %coordenadas - 1
if %coordenadas <= -5
{
set %lado 0
set %coordenadas 3
gosub moverse
}
}
return
; Sub de movimiento del barco.
; Utiliza una variable, al que se le añade un punto cada vez que avanza.
; Al llegar a un número determinado, se gira el barco. Se reinicia a 1 cuando
; vuelve al lugar de origen (en teoria, sin tener en cuenta Saves, etc).
sub moverse
; Come cuando mueve el barco.
gosub comer
if %moverse < 21 ; norte
{
set %orientacion 1
event macro 1 0 all come
wait 5
msg adelante$
wait 30
msg stop$
wait 10
event macro 1 0 all stop
wait 5
set %moverse %moverse + 1
}
if %moverse = 21 ; giro al este
{
set %orientacion 2
msg gira derecha$
wait 10
set %moverse %moverse + 1
}
if %moverse < 32 && %moverse > 21 ; este
{
set %orientacion 2
event macro 1 0 all come
wait 5
msg adelante$
wait 30
msg stop$
wait 10
event macro 1 0 all stop
wait 5
set %moverse %moverse + 1
}
if %moverse = 32 ; giro sur
{
set %orientacion 1
msg gira derecha$
wait 10
set %moverse %moverse + 1
}
if %moverse < 43 && %moverse > 32 ; sur
{
set %orientacion 1
event macro 1 0 all come
wait 5
msg adelante$
wait 30
msg stop$
wait 10
event macro 1 0 all stop
wait 5
set %moverse %moverse + 1
}
if %moverse = 43 ; giro oeste
{
set %orientacion 2
msg gira derecha$
wait 10
set %moverse %moverse + 1
}
if %moverse > 43 ; oeste
{
set %orientacion 2
event macro 1 0 all come
wait 5
msg adelante$
wait 30
msg stop$
event macro 1 0 all stop
wait 5
wait 10
set %moverse %moverse + 1
}
if %moverse = 54
{
set %moverse 1
set %orientacion 1
set %infomovimientos %infomovimientos + 1
msg gira derecha$
}
return