annuncio

Comprimi
Ancora nessun annuncio.

[EASYUO HELP] Delucidazioni

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

  • [EASYUO HELP] Delucidazioni

    Ho compilato questo piccolo script per lootare due item. L'ho fatto alla buona, non sono una cima in scripting, ma piano piano..
    Il problema è che ogni tanto si inceppa, non lota. Magari non sempre. Ne salta uno o due e poi riprende. Vorrei sapere dove sbaglio, ed aiutarmi a capire come farli correttamente! Grazie


    codice:
    finditem YFM G_2
    set %corpo #findid
    set %item XXX_YYY_ZZZ
    if #findkind = -1
    {
    wait 5
    goto inizio
    }
    if #findkind = 1
    {
    wait 10
    gosub prendiitem
    ignoreitem %corpo
    
    sub prendiitem
      set #lobjectid %corpo
      event macro 17
      wait 10
      scanjournal 1
      if did_not_earn in #journal
      {
        return
      }
      until #contid = %corpo
      finditem %item C_ , %corpo
      if #findkind <> -1
      {
        repeat
        wait 10
        event property #findid
        wait 10
        if ( ( YYY in #property ) ) || ( ( XXX in #property ) )
         {
          exevent drag #findid #findstack
          wait 10
          exevent dropc #backpackid
          wait 10
         }
      }
    wait 5
    return
    n00b is STYLE!
    ICQ - KnO
    sSo: 363938990

    QUESTO E' UN FORUM, NON UN CELLULARE.
    Scrivere correttamente qui non costa nulla.



  • #2
    Originariamente inviato da DaRkReAlM Visualizza il messaggio
    Ho compilato questo piccolo script per lootare due item. L'ho fatto alla buona, non sono una cima in scripting, ma piano piano..
    Il problema è che ogni tanto si inceppa, non lota. Magari non sempre. Ne salta uno o due e poi riprende. Vorrei sapere dove sbaglio, ed aiutarmi a capire come farli correttamente! Grazie


    codice:
    finditem YFM G_2
    set %corpo #findid
    set %item XXX_YYY_ZZZ
    if #findkind = -1
    {
    wait 5
    goto inizio
    }
    if #findkind = 1
    {
    wait 10
    gosub prendiitem
    ignoreitem %corpo
    [COLOR="Red"]}[/COLOR]
    
    sub prendiitem
      repeat [COLOR="Lime"]meglio qui[/COLOR]
      set #lobjectid %corpo
      event macro 17
      wait 10
      scanjournal 1
      if did_not_earn in #journal
      {
        return
      }
      until #contid = %corpo
      finditem %item C_ , %corpo
      if #findkind <> -1
      {
    [COLOR="Lime"]  for #findindex 1 #findcnt
      {[/COLOR]
        [COLOR="Red"]repeat[/COLOR] ??????
        wait 10
        event property #findid
        wait 10
        if ( ( YYY in #property ) ) || ( ( XXX in #property ) )
         {
          exevent drag #findid #findstack
          wait 10
          exevent dropc #backpackid
          wait 10
         }
    [COLOR="Lime"]  }[/COLOR]
      }
    wait 5
    return
    il tuo problema era che non scorrevi nella lista degli item nel corpo, facevi il finditem e ti limitavi a guardare il primo item restituito.
    il finditem restituisce una lista di item e puoi scorrerla con una struttura di controllo tipo il for che ho inserito (al variare di #findindex il #findid cambia) o ripetere il finditem rimuovendo di volta in volta gli item con ignoreitem, ma questa seconda tecnica è sconsigliabile per diverse ragioni.
    Ultima modifica di fengyr; 27-12-2010, 21:32.
    ____________________________________________________________________

    Il p Fengyr
    ____________________________________________________________________
    : algander#6292

    Commenta


    • #3
      Ecco quì il mio personale xD
      Praticamente cerca nei corpi in un range di due tile da lui gli item che gli imposti nella variabile %items. In più settati la hotkey con cui far partire lo script.

      Buon divertimento

      PS: fengyr stickalo! xD tvb ♥ No sul serio guardalo che è una bomba ^^

      codice:
      set %items ; TYPE ITEM SEPARATI DAL _
      set %corpse YFM
      
      main:
      onhotkey ; TASTO
       gosub loot
      goto main
      
      sub loot
       search:
       event sysmessage Looking for corpses...
       finditem %corpse g_2
       if #findid = X
        {
        event sysmessage No corpses found.
        return
        }
       set #lobjectid #findid
       ignoreitem #findid
       set %looting #findid
       while #contid <> #findid
        event macro 17 0
       event sysmessage Looking for items...
       finditem %items c_ , %looting
       if #findid = X
        {
        event sysmessage No items found.
        goto out
        }
       event sysmessage Looting...
       for #findindex 1 #findcnt
        {
        exevent drag #findid #findstack
        wait 5
        exevent dropc #backpackid
        wait 5
        }
       event sysmessage Looting finished.
       out:
       set %x ( #contposx + 25 )
       set %y ( #contposy + 25 )
       click %x %y r
       goto search

      Commenta


      • #4
        per favore smetti di fare post OT, ti avverto per l'ultima volta se continui saranno presi provvedimenti.

        l'utente aveva richiesto aiuto per un suo script quindi qui si parla di correzioni o consigli indirizzati a lui. se vuoi pubblicare uno script postalo quando qualcuno ne fa richiesta o con un thread appropriato, se credi che questo che hai postato possa essere utile per lui fanne almeno menzione o indica cosa può aggiungere a quello che gli manca.

        niente di personale, è solo questione di buona educazione
        Ultima modifica di fengyr; 27-12-2010, 22:37.
        ____________________________________________________________________

        Il p Fengyr
        ____________________________________________________________________
        : algander#6292

        Commenta


        • #5
          Originariamente inviato da fengyr Visualizza il messaggio
          il tuo problema era che non scorrevi nella lista degli item nel corpo, facevi il finditem e ti limitavi a guardare il primo item restituito.
          il finditem restituisce una lista di item e puoi scorrerla con una struttura di controllo tipo il for che ho inserito (al variare di #findindex il #findid cambia) o ripetere il finditem rimuovendo di volta in volta gli item con ignoreitem, ma questa seconda tecnica è sconsigliabile per diverse ragioni.
          Quindi se ho capito bene, #findindex fa ripetere l'azione del #finditem; mentre il #findcnt da un riscontro su tutto ciò che c'è nel #finditem.
          Mentre il valore 1 posto a fianco del #findindex serve a..?
          Vale solo in caso di ricerca di oggetti multipli?

          Grazie!
          Ultima modifica di DaRkReAlM; 28-12-2010, 00:13.
          n00b is STYLE!
          ICQ - KnO
          sSo: 363938990

          QUESTO E' UN FORUM, NON UN CELLULARE.
          Scrivere correttamente qui non costa nulla.


          Commenta


          • #6
            D'oh, ora mi apre solo il primo corpo. O meglio, apre quelli che ho intorno al momento dell'avvio dello script, ma dopo, uccidendo un'altro mob. Ignora il corpo.. Mmmm
            n00b is STYLE!
            ICQ - KnO
            sSo: 363938990

            QUESTO E' UN FORUM, NON UN CELLULARE.
            Scrivere correttamente qui non costa nulla.


            Commenta


            • #7
              Originariamente inviato da fengyr Visualizza il messaggio
              per favore smetti di fare post OT, ti avverto per l'ultima volta se continui saranno presi provvedimenti.

              l'utente aveva richiesto aiuto per un suo script quindi qui si parla di correzioni o consigli indirizzati a lui. se vuoi pubblicare uno script postalo quando qualcuno ne fa richiesta o con un thread appropriato, se credi che questo che hai postato possa essere utile per lui fanne almeno menzione o indica cosa può aggiungere a quello che gli manca.

              niente di personale, è solo questione di buona educazione

              ho visto che gli avevi risposto tu...tutto quì...

              Commenta

              Sto operando...
              X