annuncio

Comprimi
Ancora nessun annuncio.

[EasyUO - HELP]Sub NPC vendor

Comprimi
X
 
  • Filtro
  • Ora
  • Visualizza
Elimina tutto
nuovi messaggi

  • [EasyUO - HELP]Sub NPC vendor

    ho preso dal sito di easyuo la sub (buy) che posto sotto, però a volte capita che dopo avermi aperto il popup del vendor mi apre anche il suo paperdoll e questo blocca la macro
    Come posso risolvere?
    'acie mille in anticipo a chi ci prova

    codice:
    gosub buy SYHO PUD 3 1 
    halt 
    ;finditem #ltargetid
    ;halt
     
    ;**
    ;* @name    useVendor
    ;* @author  Quintok
    ;* @version 2.0 2 November 05
    ;* @purpose opens context menu and clicks the correct option
    ;* @param   %1 vendorID     req Vendor ID
    ;*          %2 vendorOption req option to pick on the context menu
    sub useVendor
      set !useVendorCnt 0 
      set !_vendorID %1 
      set !_contextOption %2 
      finditem !_vendorID G_9
      if #findkind = -1 
        return #false 
      exevent popup !_vendorID !_contextOption 
    return #true 
     
    ;**
    ;* @name    Buy
    ;* @author  Quintok
    ;* @version 2.0 2 November 2005
    ;* @purpose Buys from %1 for items %2 to an amount of %4 to a max price of %3
    ;* @param   %1     VendorID   req Vendor ID
    ;*          %2     ItemType   req what item to buy
    ;*          %3     MaxPrice   req maximum price
    ;*          %4     amount     req max amount
    ;*          %(n-2) itemXType  opt item x to buy
    ;*          %(n-1) maxXPrice  opt maximum price of item x
    ;*          %n     Xamount    opt of price for item x
    sub Buy
      set !_vendorId %1 
      set !_buyCnt ( %0 - 1 ) / 3 
      set !_bought 0 
      for !i 1 !_buyCnt 
      { 
        set !f !i * 3 - 1 
        set !_itemType . !i % . !f 
        set !f !f + 1 
        set !_maxPrice . !i % . !f 
        set !f !f + 1 
        set !_amount . !i % . !f 
      } 
      gosub useVendor !_vendorId 2 
      if ! #result 
        return #false 
      gosub waitForSysVar contname = bill_gump
      while #true 
      { 
        getshopinfo 
        for !i 1 !_buyCnt 
        { 
          if #shopItemType = !_itemType . !i && ! !_bought . !i 
          { 
            if #shopItemPrice <= !_maxprice . !i 
            { 
              set !x #contposx - 30 
              set !y #contposy - 130 
              for !_ 1 3 
                click !x !y d dmc
              wait 5 
              if !_amount . !i = N/A || !_amount . !i > #shopItemMax 
                set !_amount . !i #shopitemMax 
              setshopitem #shopitemID !_amount . !i 
              set !_bought !_bought + 1 
            } 
          } 
          if #shopCnt = #shopCurPos || !_bought = !_buyCnt 
          { 
            set !x #contposx + 40 
            set !y #contposy + 211 
            click !x !y f
            return !_bought = !_buyCnt 
          } 
        } 
        set !x #contposx + 75 
        set !y #contposy - 19 
        click !x !y f ;395 200 f
        wait 3 
      } 
     
    ;**
    ;* @name    Sell
    ;* @author  Quintok
    ;* @version 1.0 13 march 04
    ;* @purpose Sells using UOA agent [which is already setup]
    ;* @param   %1 VendorType req Vendor Type
    sub sell
      gosub useVendor %1 3 
    return #result 
     
    ;**
    ;* @name    waitForSysVar
    ;* @author  Quintok
    ;* @version 1.0 13 march 04
    ;* @purpose waits %4 seconds for # . %1 to %2 to %3
    ;* @param   %1 sysvar     req system variable without '#'
    ;*          %2 operation  req operation ie = <> in notin
    ;*          %3 comparison req to compare with ie abcdef
    ;*          %4 timeout    opt timeout in seconds
    sub waitForSysVar
      if %0 <= 4 
      { 
        gosub waitFor %1 %2 %3 %4 
        return #result 
      } 
      set !cnt %0 / 3 
      if ( %0 % 3 = 1 ) 
        set !timeOut #scnt + % . %0 
      else 
        set !timeOut #scnt + 5 
      for !i 1 !cnt 
      { 
        set !offset 3 * !i - 2 
        set !evaluation !offset + 1 
        set !value !offset + 2 
        if ! ( # . % . !offset % . !evaluation % . !value ) 
          set !i 0 
        if #scnt > !timeout 
          return #false 
      } 
    return #true 
     
    ;**
    ;* @name    waitFor
    ;* @author  Quintok
    ;* @version 1.0 13 march 04
    ;* @purpose waits %4 seconds for # . %1 to %2 to %3
    ;* @param   %1 sysvar     req system variable without '#'
    ;*          %2 operation  req operation ie = <> in notin
    ;*          %3 comparison req to compare with ie abcdef
    ;*          %4 timeout    opt timeout in seconds
     sub waitFor
      if %0 < 4 || %4 = N/A
        set !timeOut #scnt + 5 
      else 
        set !timeOut #scnt + %4 
    _waitForLoop: 
      if #scnt > !timeOut 
        return #false 
      if ! ( # . %1 %2 %3 ) 
        goto _waitForLoop
    return #true
    Originariamente inviato da Restless Soul
    mi fa venire voglia di chiedere a w00fz di troncarvi la connessione.
    Originariamente inviato da TerathaN
    Perchè wOOfz è l'addetto alle connessioni?
    Non ho capito!
    when you try a system administrator .... you don't go back

  • #2
    ho capito che il problema è causato dalla scritta "greeting...." del vendor, che a volte appare proprio nel punto in cui la macro clicca e quindi apre il paperdoll.

    Non c'è un modo x settare la durata del testo, o ignorare i testi tramite easyuo? (ho risolto mettendo al minimo la durata via client
    Originariamente inviato da Restless Soul
    mi fa venire voglia di chiedere a w00fz di troncarvi la connessione.
    Originariamente inviato da TerathaN
    Perchè wOOfz è l'addetto alle connessioni?
    Non ho capito!
    when you try a system administrator .... you don't go back

    Commenta

    Sto operando...
    X