Subir

Resultados 1 al 2 de 2

Tema: Macro para subir skill de Lockpicking

  1. #1
    Avatar de Lauda
    Fecha de ingreso
    November-2017
    Ubicación
    Cueva de Cove
    Clan
    Sin Clan
    Facción
    Neutral
    Profesión
    Aventurero
    Nacimiento
    Haven
    Localización
    Haven
    Edad
    39
    Mensajes
    9
    Reputacion: 25
    Poder de reputación
    0

    Post Macro para subir skill de Lockpicking

    Hola,

    Dejo por aquí una macro para entrenar la skill de forzar cerraduras, a ver si se anima un poquito más el cotarro por las dungeons

    Cualquier problema o pregunta, id comentando tranquilamente.

    Código:
    ;        |                                 /   \                   |       .
    ;  _    -O-       .                )      ((   ))     (           -O-
    ; (@)    |     +                  /|\      ))_((     /|\           |            .
    ; |-|                            / | \    (/\|/\)   / | \                            (@)
    ; | | --------------------------/--|-voV---\`|'/--Vov-|--\---------------------------|-|         .
    ; |-|                                '^`   (o o)  '^`                                | |
    ; | |                                      `\Y/'                                     |-|
    ; |-|   _______ __ __   __                  _______ __ __                            | |
    ; | |  |   |   |  |  |_|__|.--------.---.-.|   _   |  |__|.---.-.-----.-----.---.-.  |-|    .     o
    ; |-|  |   |   |  |   _|  ||        |  _  ||       |  |  ||  _  |     |-- __|  _  |  | |
    ; | |  |_______|__|____|__||__|__|__|___._||___|___|__|__||___._|__|__|_____|___._|  |-|
    ; |_|________________________________________________________________________________| |
    ; (@)                     l   /\ /         ( (          \ /\   l                   `\|-|             .
    ;           o             l /   V           \ \          V   \ l       +             (@)
    ;                         l/                _) )_             \I                                 +
    ;      +                                    `\ /'
    ;
    ; Script Name: Entrenar Lockpicking
    ;
    ;         .-""-.
    ;        / .--. \
    ;       / /    \ \
    ;       | |    | |
    ;       | |.-""-.|
    ;      ///`.::::.`\
    ;     ||| ::/  \:: ;
    ;     ||; ::\__/:: ;
    ;      \\\ '::::' /
    ;  jgs  `=':-..-'`
    ;
    ; Author: Sthil Lauda
    ; Version: 1.7
    ; Client Tested with: 2.0.3
    ; EUO version tested with: EasyUO 1.5 Version 243
    ; Shard: Ultima Alianza ¡Hasta la muerte!
    ; Revision Date: 10/02/2019
    ; Public Release: 08/02/2019
    ; Purpose: Entrenar skill de lockpicking desde 40-50 hasta 75, parando la macro cada 5 puntos para seguir subiendo con
    ;          nuevas cajas fabricadas con un mayor nivel (+5 puntos) de skill de Artesanía/Tinker.
    ; Instrucciones: Colocar dos cofres, uno con todas las cajas y ganzúas, y otro más que esté vacío.
    ;
    ;________________________________
    ;
    ; ///////////////////////////////
    ; ******** CONFIGURACIÓN ********
    ; ///////////////////////////////
    ;________________________________
    ;
    set %nivel_skill 550 ; Parar la macro al llegar a este nivel de skill lockpicking *** Ejem: 550 (55 puntos de skill) ***.
    set %cofreo XXXXXXX ; Cofre con cajas y ganzúas.
    set %cofred XXXXXXX ; Cofre vacío.
    set %tiempo_alimentacion 360 ; Cada cuántos segundos va a comprobar si tiene hambre (5 minutos).
    ;________________________________________________
    ;
    ; //////////////////////////////////////////////
    ; ************* FIN CONFIGURACIÓN *************
    ; //////////////////////////////////////////////
    ;________________________________________________
    ;
    set %llave EFG
    set %ganzua NWH
    set %caja CUD
    set %tiempo_actual #SCNT ; Reloj
    set %proxima_vez %tiempo_actual ; Trigger
    set %comida RGG_NRD_QSD_ZBG_WLI_QRD_END_FUD_YLI_WLI_HGI
        +_KGI_EGI_QLI_KLI_MLI_KRD_HQD_AQD_MQE_VQE_TQE_JQE_IQE
        +_GQE_SPE_ZPE_OQE_BDF_KPE_RQE_YSD_SQD_YWI_AXI_PQD_QQD
    
    Inicio:
    {
    _vaciar:
    finditem %caja c_ , #BACKPACKID
    if #FINDCNT > 0
       {
         Exevent Drag #FINDID
         Exevent Dropc %cofreo
         wait 30
         goto _vaciar
       }
    gosub bloquearSkill ; Comprobar la skill y parar.
    set %tiempo_actual #SCNT
    if %proxima_vez <= %tiempo_actual
       {
         gosub comprobar_comida ; Macro para comer
       }
    _comienzoLockpicking: ; Termina macro para comer y comienza lockpick
    finditem %caja c_ , %cofred
    if #FINDCNT > 0
       {
         ; Abre la caja con cerradura para sacar la llave a la mochila
         set %jstart #jindex ; Marcamos el journal antes de ejecutar la acción
         set %cajaid #FINDID
         set #LOBJECTID %cajaid
         event macro 17
         gosub wait_for GUMP %cajaid 2
         if #TRUE in #RESULT ; Si se abre, es que ya está estrenada...
            {
              goto _preLlave
            }
         gosub wait_for MSG esta_cerrada_con_llave la_llave_ha_sido_depositada Dentro_de_1_minuto 10
         if #TRUE in #RESULT
            {
              if Dentro_de_1_minuto in #RESULT
                 {
                   wait 140s
                   goto _comienzoLockpicking
                 }
              if esta_cerrada_con_llave in #RESULT
                 {
                   goto Forzar
                 }
              if la_llave_ha_sido_depositada in #RESULT
                 {
                   ; Coge la llave y la deja en la mochila
                   _test_caja:
                   set #LOBJECTID %cajaid
                   event macro 17
                   gosub wait_for GUMP %cajaid 5
                   _preLlave:
                   finditem %llave C_ , #backpackid
                   if #FINDCNT = 0 ; No hay llave en la mochila
                      {
                        finditem %llave C_ , %cajaid ; Miramos a ver si la caja está abierta con la llave
                        if #FINDCNT = 0 ; No hay llave en la caja, y tampoco en la mochila... mal asunto.
                           {
                             ignoreitem %cajaid ; Pasamos de esta caja... XDDDD
                             goto Inicio
                           }
                           else ; La caja está abierta y con la llave dentro...
                              {
                                gosub cogerLlave
                                goto Cerrar
                              }
                      }
                 }
            }
       }
       else
          {
            gosub traeCaja
            goto _comienzoLockpicking
          }
    }
    
    ; Usa la llave para cerrar la caja y seguidamente poder forzarla
    Cerrar:
    {
    _repiteCerrar:
    finditem %llave c_ , #backpackid
    if #FINDCNT > 0
       {
         set #LOBJECTID #FINDID
         event macro 17
         target 3s
         set #LTARGETID %cajaid
         set #LTARGETKIND 1
         set %jstart #jindex ; Marcamos el journal antes de ejecutar la acción
         event macro 22
         gosub wait_for MSG abierta cerrada no_puedes_usar_la_llave Dentro_de_1_minuto 10
         if #TRUE in #RESULT
            {
              if Dentro_de_1_minuto in #RESULT
                 {
                   wait 140s
                   goto _repiteCerrar
                 }
              if abierta in #RESULT
                 {
                   goto _repiteCerrar
                 }
              if cerrada in #RESULT
                 {
                   goto Forzar
                 }
              if no_puedes_usar_la_llave in #RESULT
                 {
                   ignoreitem %cajaid ; Pasamos de esta caja... XDDDD
                   goto Inicio
                 }
            }
       }
       else ; No hay llave
          {
            gosub cogerLlave
            goto _repiteCerrar
          }
    }
    
    ; Busca las ganzuas y trata de forzar la cerradura
    Forzar:
    {
    finditem %cajaid C_ , %cofred
    if #FINDCNT > 0
       {     
         _repiteForzar:
         findItem %ganzua c_ , #backpackid
         if #FINDCNT > 0
            {
              set #LOBJECTID #FINDID
              event macro 17
              target 3s
              set #LTARGETID %cajaid
              set #LTARGETKIND 1          
              set %jstart #jindex ; Marcamos el journal antes de ejecutar la acción
              event macro 22
              gosub wait_for MSG no_logra_forzar Rompes_la_cerradura La_cerradura_cede no_parece_estar_cerrada Dentro_de_1_minuto 15
              if #TRUE in #RESULT
                 {
                   if Dentro_de_1_minuto in #RESULT
                      {
                        wait 140s
                        goto Forzar
                      }
                   if Rompes_la_cerradura in #RESULT
                      {
                        gosub traeCaja
                        goto Inicio
                      }
                   if no_logra_forzar in #RESULT
                      {
                        goto Forzar
                      }
                   if La_cerradura_cede in #RESULT || no_parece_estar_cerrada in #RESULT
                      {
                        goto Cerrar
                      }
                 }
                 else ; Por alguna razón extraña no hemos pillado el mensaje en el diario ¿? ¡REPETIMOS!
                    {
                      goto Forzar
                    }
            }
            else ; No hay ganzuas ¿?
               {
                 gosub reponerGanzuas
                 goto _repiteForzar
               }
       }
       else ; Si ya no está la caja que habíamos seleccionado
          {
            goto Inicio
          }
    }
    
    ;
    ; ***** SUBS *****
    ;
    
    ;=====================================================
    ; Rutina para, en caso de hambre, comer hasta saciarse
    ;=====================================================
    ; v2.2
    sub comprobar_comida
    {
      hambriento:
      set %jrnl #jindex ; Marcamos un índice de las líneas del diario.
      event macro 3 0 .hungry
      wait 20
      while #true
         {
           if #jindex > %jrnl ; Si aparece una nueva línea.
              {
                set %jrnl %jrnl + 1  ; Seleccionamos ese numero de línea.
                scanjournal %jrnl   ; La leemos...
                if Dentro_de_1_minuto in #journal
                   {
                     wait 140s ; Save del server...
                   }
                if Estas_no_le_afecta_el_hambre in #journal || Estas_tan_lleno_que_no_puedes in #journal || Estas_totalmente_saciado in #journal
                   {
                     set %proxima_vez %tiempo_actual + %tiempo_alimentacion
                     return
                   }
                   else
                      {
                        if Estas_lleno in #journal || Estas_contento in #journal || Estas_en_inanicion in #journal || Estas_hambriento in #journal || Sientes_mucho in #journal || Estas_con_hambre in #journal || Estas_parcialmente in #journal || Estas_bien_lleno in #journal || Te_sientes_casi_lleno in #journal
                           {
                             finditem %comida C_ , #backpackid
                             if #findcnt > 0
                                {
                                  set #lobjectid #findid
                                  event macro 17
                                  wait 20
                                  goto hambriento
                                }
                                else
                                   {
                                     event exmsg #charid 3 48 COMPRA COMIDA!!
                                     wait 40
                                     set %proxima_vez %tiempo_actual + %tiempo_alimentacion
                                   }
                           }
                           else ; Mensaje extraño, repetimos...
                              {
                                goto hambriento
                              }
                      }
              }
           return
         } ; FIN While
    }
    return
    
    sub reponerGanzuas
    finditem %ganzua C_ , %cofreo
    if #FINDCNT > 0
       {
         Exevent Drag #FINDID 50
         Exevent Dropc #BACKPACKID
         wait 30
       }
       else
          {
            event macro 3 0 NO HAY MAS GANZUAS!
            halt ; No quedan ganzuas...
          }
    return
    
    sub traeCaja
    finditem %caja C_ , %cofreo
    if #FINDCNT > 0
       {
         Exevent Drag #FINDID
         Exevent Dropc %cofred
         wait 30
       }
       else
          {
            event macro 3 0 NO QUEDAN CAJAS EN EL COFRE!
            halt ; No quedan cajas...
          }
    return
    
    sub cogerLlave
    finditem %llave C_ , %cajaid
    if #FINDCNT > 0
       {
         Exevent Drag #FINDID
         Exevent Dropc #backpackid
         wait 30
       }
    return
    
    sub bloquearSkill
    chooseskill Lock real
    if ( #SKILL >= %nivel_skill )
         {
           event macro 3 0 Lockpicking = %nivel_skill , SKILL BLOQUEADA
           halt ; Paramos la macro...
         }
    return
    
    ;=================================================================
    sub wait_for
    ;=================================================================
    ; This "wait_for" sub package was created by Locke. If you use these subs please keep this header intact.
    ; // end header
    ; Documentation: the sub package grew to large with all the comments. To load them call the sub like this:
    ; gosub wait_for docs    | or you can use doc, documention, what, or my personal favorite, kickass.
    ; Thanks to ~BookWibble~ for helping with all the debugging and spotting a bug or three.
    ; "wait_for core dispatcher" version 1.3 by Locke
    if %1 = doc || if %1 = docs || if %1 = documentation || if %1 = what || if %1 = kickass
    {
    Display ok Please click ok and wait for your browser to start.
    execute http://www.easyuo.com/forum/viewtopic.php?t=24716
    ;halt
    }
    nameSpace Push
    namespace local LLNS
    set #result N/A ; if #result isn't set by one of my wait_for subs it'll throw an error.
    set !LPC #lpc
    set #lpc 200
    for %i 0 %0
    set !_A . %i % . %i
    gosub wait_for_ , !_A1
    ignoreitem reset LLWAITFOR
    set #lpc !lpc
    namespace clear LLNS
    namespace pop
    if #result <> N/A
    return #result
    else
    display ok You specified an unknown wait_for command. Script returned #result and is halting.
    ;halt
    
    ;======================================================================
    sub wait_for_MSG ; version 1.4 ~Locke
    ;=================================================================
    if !_A0 < 3
    {
    display ok You haven't specified enough vars.$
    +The basic format is: gosub wait_for MSG %message % , time_out_in_seconds$
    +Script is halting
    ;halt
    }
    set !_timeout ( #scnt + !_A . !_A0 )
    _lets_wait_for_a_message:
    for %i %jstart #jindex
    {
     scanjournal %i
      for %ii 2 !_A0
      {
        if !_A . %ii in #journal && %jstart <> %i
        set #result #true , #spc , !_A . %ii
      }
    }
    
    if #true notin #result
    {
    set #result #false
     if !_timeout =< #scnt
     return #result
    wait 1
    goto _lets_wait_for_a_message
    }
    else
    return #result
    
    wait 1
    goto _lets_wait_for_a_message
    
    
    ;======================================================================
    sub wait_for_GUMP ; version 1.4 ~Locke
    ;=================================================================
    if !_A0 < 3
    {
    display ok You haven't specified enough vars.$
    +The basic format is: gosub wait_for GUMP XXX_YYY % , time_out_in_seconds$
    +Script is halting
    ;halt
    }
    if !_A3 <> CLOSE
    set !_timeout #scnt + !_A3
    else
    set !_timeout 0 ; no gump wait if %3 = CLOSE since we already believe it to be open.
    
    _lets_wait_for_a_gump:
    if #CONTID = !_A2 || #CONTSIZE = !_A2 || #CONTKIND = !_A2 || #CONTNAME = !_A2 || #CONTTYPE = !_A2
    {
      if !_A5 <> N/A && !_A6 <> N/A
      {
      set !clickx !_A5 + #contposx
      set !clicky !_A6 + #contposy
      click !clickx !clicky
      }
      if !_A3 = CLOSE || if !_A4 = CLOSE || !_A5 = CLOSE || !_A6 = CLOSE
      {
      set !string #contsize
      str pos !string _
      set !pos #strres
      str del !string #strres #strres
      set !clickX #contposx + ( #strres / 2 )
      str del !string 1 !pos
      set !clickY #contposy + ( #strres / 2 )
      click !clickx !clicky R
      }
    return #true
    }
    
    if !_timeout =< #scnt && !_A4 = N/A
    return #false
    
    if !_A4 <> N/A && !_timeout =< #scnt
    {
    finditem !_A4
     if #findkind <> -1
     {
      for #findindex 1 #findcnt
      {
       if #finddist > 2
       ignoreitem #findid LLWAITFOR
       else
       break
      }
      set #lobjectid #findid
      event macro 17 0
      set !_timeout #scnt + !_A3
     }
     else
     return #false
    }
    wait 1
    goto _lets_wait_for_a_gump
    
    ;======================================================================
    sub wait_for_ITEM ; Version 0.1 ~Locke
    ;=================================================================
    ; %A2 = #findid ; %A3 = C_ , %mod || G_ , %mod ; %A4 = wait_time in seconds
    if !_A0 < 4
    {
    display ok You haven't specified enough vars.$
    +The basic format is: gosub wait_for ITEM # , findid C_ , % , mod % , timeout
    +Script is halting
    ;halt
    }
    set !_timeout !_A4 + #scnt
    repeat
    {
    finditem !_A2 !_A3
    if #findkind <> -1
    return #true
    wait 1
    }
    until #scnt => !_timeout
    return #false
    Saludos, y suerte con las recompensas!! ^^

    Última edición por Lauda; Hace 1 semana a las 03:34

  2. #2
    Avatar de Kogorzo
    Fecha de ingreso
    June-2007
    Ubicación
    Leon/Sevilla
    Clan
    YaSsuXx
    Facción
    Guardia Negra
    Profesión
    Mercader
    Nacimiento
    Delucia
    Localización
    Delucia
    Edad
    30
    Mensajes
    413
    Reputacion: 19
    Poder de reputación
    13

    Re: Macro para subir skill de Lockpicking

    Gran aportación
    "Y le dije, pues vale tio, y me dijo, bueno, pues tu mismo....y ahí quedo la cosa.."

Temas similares

  1. Macro para subir skill de Focus
    Por Lauda en el foro Macros
    Respuestas: 0
    Último mensaje: 02-Jan-2019, 19:59
  2. Macro para subir carpinteria
    Por Andreu en el foro Macros
    Respuestas: 1
    Último mensaje: 01-Jul-2012, 09:58
  3. Macro para subir Stats rapidamente, STR, DEX, INT
    Por yeladies en el foro Macros
    Respuestas: 0
    Último mensaje: 13-Jun-2009, 21:53
  4. Respuestas: 0
    Último mensaje: 14-Dec-2008, 20:15

Etiquetas para este tema

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
YoutubeFbChat IRCTwit