Hardware Zone - Software - EasyUO - Generale - script non funzionante
Visualizzazione risultati 1 fino 2 di 2

Discussione: Hardware Zone - Software - EasyUO - Generale - script non funzionante


  

  1. #1
    Niubbino L'avatar di Nabuk
    Data registrazione
    Jul 2006
    Messaggi
    3
    Discussioni
    2

    script non funzionante

    Ciao!
    Stavo provando ad usare questo script, ma non funziona perche' ogni volta cerca di seguire la posizione del mouse e quindi trascina i gump senza poi nemmeno fare le selezioni giuste xD
    Penso sia un problema legato al client.. come posso risolvere?

    loop:

    finditem TLH
    set #lobjectid #findid
    finditem RMK c_ , #backpackid
    set #ltargetid #findid
    setuotitle #charname ||| Peso: #weight \ #maxweight ||| Ferro: #findstack
    event macro 17 0
    target
    event macro 22 0
    wait 5
    click 145 61 d
    wait 1
    click 63 69 d
    wait 1
    click 148 64 d
    click 148 64 d
    set %tempo #time + 15
    _loppa:
    if avanzamento in #sysmsg
    goto loop

    if #time > %tempo
    goto loop

    goto _loppa

    edit: nn l'ho scritto io eh °°''
    lo dico perche' ci son i goto e poi il mod s'incazza xD

    Ad ogni modo sarebbe interessante capire se c'e' una procedura da adottare in scriptaggio adatta al client 0.56b

  2. #2
    Frequentatore L'avatar di Ifrit'Prog
    Data registrazione
    Jul 2006
    Residenza
    Studio ad Ancona
    Messaggi
    93
    Discussioni
    16
    Maledetti goto -.-

    vabe', iniziamo ad analizzare il tutto:

    Codice:
    finditem TLH
    set #lobjectid #findid
    Cerca l'oggetto con tipologia TLH e scrive il suo id nella variabile
    #lobjectid [variabile di riferimento per quando si usa la macro Last Object]
    Considerazione
    E se non lo trova questo oggetto?? lo script si impalla ovviamente...
    Come fare?? mettiamoci un controllo no?? :P
    Codice:
    finditem TLH
    if #findkind = -1
       {
          event sysmessage Oggetto Non Trovato
          halt
       }
    set #lobjectid #findid
    Nella variabile #findkind possono finirci 3 valori:
    • 1: Oggetto si trova a terra
    • 0: Oggetto si trova nello zaino o sul paperdoll del pg
    • -1: Oggetto non trovato


    Indi capite bene perche ho messo quell if.

    Proseguendo:
    Codice:
    finditem RMK C_ , #backpackid
    set #ltargetid #findid
    setuotitle #charname ||| Peso: #weight \ #maxweight ||| Ferro: #findstack
    Cerca l'oggetto RMK [sarebbero i lingotti se non erro] e scrive il suo id nella variabile #ltargetid [variabile di riferimento per quando si usa la macro Last Targhet]
    Considerazione
    Stessa pappardella di prima:
    E se non lo trova questo oggetto?? lo script si impalla ovviamente...
    Come fare?? mettiamoci un controllo no?? :P
    Codice:
    finditem RMK C_ , #backpackid
    if #findkind = -1
       {
          event sysmessage Lingotti non Trovati
          halt
       }
    set #ltargetid #findid
    setuotitle #charname ||| Peso: #weight \ #maxweight ||| Ferro: #findstack


    Bene, ora cosa succede?

    Codice:
    event macro 17 0
    target
    event macro 22 0
    wait 5
    Allora event macro richiama delle macro, per l'esattezza gli argomenti "17 0" richiamano Last Object, mentre gli argomenti "22 0" richiamano "Last Targhet".
    Fra le 2 Chiamate c'e' la funzione target... funzione che non mi e' mai funzionata [non so perche'...]
    Possiamo risolvere cosi:
    Codice:
    event macro 17 0
    repeat
    until #targcurs = 0
    event macro 22 0
    repeat
    until #targcurs = 1
    Ovvero tradotto in termini umani:
    Codice:
     repeat
    until #targcurs = 0
    Aspetta finche' il cursore diventa un mirino
    Codice:
    repeat
    until #targcurs = 1
    Aspetta finche' il mirino diventa un cursore.

    Proseguiamo:

    Codice:
    click 145 61 d
    wait 1
    click 63 69 d
    wait 1
    click 148 64 d
    click 148 64 d
    Qui e' meglio che non cambiamo niente... non vorrei confondervi le idee perche bisognerebbe fare considerazioni un po' elaborate, quindi per ora lo lasciamo cosi.
    Ora viene la parte che mi fa uscire il fumo dalle orecchie:

    Codice:
    loop:
    
    ....
    ....
    
    
    set %tempo #time + 15
    _loppa:
    if avanzamento in #sysmsg
    goto loop
    
    if #time > %tempo
    goto loop
    
    goto _loppa
    Qui controlla il #sysmsg e il tempo, ripete lo script se riscontra la parola "Avanzamento" nei messaggi di sistema oppure se sono passati 15 secondi.
    Potrei scrivervi tutte le parolaccie che mi vengono in mente ora guardando i goto... ma evitiamo e vi faccio vedere direttamente la soluzione senza questi dannati salti incondizionati....

    Codice:
    while #true
        {
            ....
            ....
           
           set %tempo #time + 15
           repeat
               {
                  deletejournal
                  scanjournal 1
               }
            until avanzamento in #journal || #time > %tempo
        }
    Semplice, pratico, veloce e leggibile...

    vabe', in definitiva lo script diventa:

    Codice:
    while #true
        {
           finditem TLH
           if #findkind = -1
              {
                 event sysmessage Oggetto Non Trovato
                 halt
              }
           finditem RMK C_ , #backpackid
           if #findkind = -1
              {
                event sysmessage Lingotti non Trovati
                halt
              }
           set #ltargetid #findid
           setuotitle #charname ||| Peso: #weight \ #maxweight ||| Ferro: #findstack
           event macro 17 0
           repeat
           until #targcurs = 0
           event macro 22 0
           repeat
           until #targcurs = 1
           click 145 61 d
           wait 1
           click 63 69 d
           wait 1
           click 148 64 d
           click 148 64 d
           set #lobjectid #findid
           set %tempo #time + 15
           repeat
               {
                  deletejournal
                  scanjournal 1
               }
            until avanzamento in #journal || #time > %tempo
        }
    Comunque credo che il tuo problema sia relativo alla release di Easyuo che usi, prova e facci sapere


Informazioni Discussione

Users Browsing this Thread

Attualmente 1 utenti stanno leggendo questa discussione. (0 membri e 1 ospiti)

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere alla discussione
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •