annuncio

Comprimi
Ancora nessun annuncio.

[EASYUO HELP] scripter save me!

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

  • [EASYUO HELP] scripter save me!

    Buongiorno a tutti

    faccio una premessa: non ho mai scriptato nulla, se non aggiungere type agli script...

    questo weekend cercavo un script per non dover continuare a cambiare le hotkey su razor e, non trovando nulla che sia completo, funzionasse o che non fosse semi automizzato, ho scelto di aprire la sacra documentazione e ho provato a capire come funzionano gli script di easyuo... google per fortuna mi ha aiutato a tradurre i passaggi che mi servivano YEAH!!!

    Fatto sta che domenica ho iniziato a provare a metter giù qualcosa, oggi ho terminato la versione 1.1 ma ho un problema!
    lo script è molto semplice, praticamente elementare, e funziona al 90%! tutto tranne una sezione..... (essendo lungo e per non sovraccaricare ho deciso di dividere lo script in più sezioni che disattivabili/attivabili secondo necessità)
    il PROBLEMA: provando le sub da sole funzionano ma quando le inserisco nello script non funzionano più, ciò non mi permette di capire dov'è l'errore!
    la sezione in questione è quella riguardante l'utilizzo delle pozioni(funzionano solo le explosion) in pratica ho fatto le sub per undress, bevipozza, dress ma messe insieme non workano.
    quindi vi chiedo se qualche scripter può evidenziarmi l'errore oppure se possibile qual'è il comando per chiamare una macro di razor(visto che ci sono preimpostate le macro per bere pozze)
    non posso fare una sub che semplicemente beva la pozze perchè non mi funziona l'opzione auto unequip/riequip di razor....

    credo che possa diventare un utile script pvm e pvp per chi non vuole fare mob away :P

    ps: sono conscio che lo script può essere implementato parecchio, ma come prima esperienza e dopo solo 2 giorni mi stupisco già che funzioni al 90%!!!
    pps: ha il grosso difetto si avere un setup lungo e da editare direttamente sullo script, ho intenzione di portare il setup su menu per facilitare le cose e rendere lo script più accessibile e tutti coloro che vorranno utilizzarlo sia per pvp(attualmente molto scarno) che pvm

    edit: per chiunque volesse provarlo, dato che tutto il resto funziona, vi lascio 2 script che ho trovato in passato su questo forum che vi possono aiutare per nel settare lo script(purtroppo non ricordo l'autore ma lo ringrazio)

    aiuta a trovare l'ID delle cose scrivendolo in game

    https://www.dropbox.com/s/y3sgl789zk...trova.txt?dl=0

    aiuta a trovare il TYPE scrivendolo in game

    https://www.dropbox.com/s/jf1xnnjcg6...trova.txt?dl=0

    COSA FA LO SCRIPT

    codice:
    ;titolo: Monna ultra hotkey
    ;autore: Monna
    ;COSA FA LO SCRIPT
    ;semplicemente permette si settare su hotkey alcune azioni/spells L'UNICA azione automatica è l'autobendata se settata per essere attiva
    ; ciò è voluto in quanto voglio facilitarmi il setup del gioco, non far giocare uno script....
    ;attualmente supporta gran parte delle spells spells di:
    ; --BUSHIDO, CHIVALRY, NECROMANCY, NINJUTSU, SPELLWEAVING, MAGERY, MYSTICISM (so che su dreams non è implementata ma è meglio portarsi avanti)
    ; --ha la caccia con 2 pet: all kill, all follow me, closewound e benda (finiti i fix implemento anche magery)
    ; --set abilità primaria e secondaria delle armi
    ; --permette di bere le pozze o di attivarle(pozze explo) ma non supporta i keg!
    ; --sistema targeting
    ; --tutto ciò che ti sever per curarti (sezione sopravvivere) anche autobenda
    ; --utilizza skill le principali skill su hotkey
    ; --sezione pvp con melette, pozze explo(la implementerò, ma non è una priorità)
    ; PUNTI DEBOLI
    ; --setup lungo e noioso (è il mio primo script, abbiate pietà :P inoltre ho cercato di renderlo meno personalizzato possibile)
    ; --assenza di un menu per facilitare il setup(è in programma quando avrò fixato tutto e avrò capito come farlo...)
    ; --assenza di un looter
    ;-- non testate possibili interferenze con altri script
    ;CREDITS
    ; godrick pvp assister che mi ha ispirato le sub per le pozze (80% è preso dalla sua sub):P
    ; ringrazio l'autore di RABA PVM MAGE 0.8 per avermi ispirato questo script (il tuo non mi worka, ho dovuto farmelo io!!!!)
    link allo script

    https://www.dropbox.com/s/e35bwz0yz8...201.1.txt?dl=0

    in ogni caso vi lascio il code delle parti interessate al problema

    NEL SETUP
    codice:
    ;--------------------------------------------------------POZZE, ATTENZIONE non usa i keg!!!-----------------------------------------------
    ; AIUTO QUESTA è L'UNICA SEZIONE CHE NON WORKA...
    ;questa sezione utilizza anche le sub undresssub e dresssub
    set %usapozioni 1 ; qui devi settare 1 se vuoi abilitare questa sezione oppure 2 se non vuoi abilitarla
    set %pozzahealkey f2       ;
    set %pozzastrenghtkey f3
    set %pozzarefreshkey f4
    set %pozzacurekey f5
    set %pozzaagilitykey f6
    NEL MAINLOOP
    codice:
    if %usapozioni = 1
    {
      gosub usapozioni
    }
    else
    {
      if %usapozioni = 2
      {
        return
      }

    POZZE HOTKEY SUB
    codice:
    sub usapozioni
    
    onhotkey %pozzahealkey    ;  commento
    gosub pozzahealsub
    
    
    onhotkey %pozzastrenghtkey    ;  commento
    gosub pozzastrenghtsub
    
    onhotkey %pozzarefreshkey     ;  commento
    gosub pozzarefreshsub
    
    onhotkey %pozzacurekey     ;  commento
    gosub pozzacuresub
    
    onhotkey %pozzaagilitykey   ;  commento
    gosub pozzaagilitysub
    
    return
    SUB BEVI POZZE

    codice:
    sub pozzahealsub
    
    ;gosub undresssub
    wait %pausa
    ;finditem UUF ;trova un itemtype
    set #lobjectid UUF ;lo setta come last object
    wai 5
    event macro 17 0 ;lo usa
    ;wait 20
    wait %pausa
    ;gosub dresssub
    wait %pausa
    
    return
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    sub pozzastrenghtsub
    gosub undresssub
    wait %pausa
    finditem XUF ;trova un itemtype
    set #lobjectid #findid ;lo setta come last object
    event macro 17 0 ;lo usa
    wait 20
    wait %pausa
    gosub dresssub
    wait %pausa
    
    return
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    sub pozzarefreshsub
    gosub undresssub
    wait %pausa
    finditem ZUF ;trova un itemtype
    set #lobjectid #findid ;lo setta come last object
    event macro 17 0 ;lo usa
    wait 20
    wait %pausa
    gosub dresssub
    wait %pausa
    
    return
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    sub pozzacuresub
    gosub undresssub
    wait %pausa
    finditem NUF ;trova un itemtype
    set #lobjectid #findid ;lo setta come last object
    event macro 17 0 ;lo usa
    wait 20
    wait %pausa
    gosub dresssub
    wait %pausa
    
    return
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    sub pozzaagilitysub
    gosub undresssub
    wait %pausa
    finditem YUF ;trova un itemtype
    set #lobjectid #findid ;lo setta come last object
    event macro 17 0 ;lo usa
    wait 20
    wait %pausa
    gosub dresssub
    wait %pausa
    
    return
    SUB DRESS UNDRESS

    codice:
    ;----------------------------------------------------------------DRESS UNDRESS SUB--------------------------------------------------------
    
    sub dresssub
    ;finditem %DisarmItem C_ , #backpackid
    exevent drag %arma ;%disarma
    wait 6
    wait %pausa
    exevent droppd
    wait 6
    wait %pausa
    exevent drag %scudo
    wait 6
    wait %pausa
    exevent droppd
    wait 6
    wait %pausa
    
    return
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
    sub undresssub
    
    ;finditem %DisarmItem C_ , #backpackid
    exevent drag %arma
    wait 6
    wait %pausa
    exevent dropc #backpackid
    wait 6
    wait %pausa
    exevent drag %scudo
    wait 6
    wait %pausa
    exevent dropc #backpackid
    wait 6
    wait %pausa
    
    return
    Vi ringrazio e mi scuso per questo post chilometrico
    Ultima modifica di kevian; 10-03-2015, 18:41.

  • #2
    L'errore è nel POZZE HOTKEY SUB.
    Ti spiego come funziona adesso : uno attiva l' "uso pozioni", entra nella sub di cui sopra e non trovando tasti premuti esce.
    Nel POZZE HOTKEY SUB devi mettere tutto in un ciclo che controlla sempre se siano premuti o meno quei tasti senza alcuna pausa : in questo modo appena schiacci uno degli F rimanda alla sub corrispondente.
    Spero di essere stato utile

    Commenta


    • #3
      errori:
      -Parentesi [] non esistono, solo {} si utilizzano per aprire e chiudere un corpo
      -la funzione "ciclo" te l'ho scritta poco piu giu
      -quando utilizzi la funzione condizionale "if/else" devi indicare un'operatore (questi li conosci immagino: <,<=,=,>=,> e <> che significa diverso) per la condizione dell'if (cioè quello che segue dopo la scritta "if"). esempio:
      codice:
       
      if <condizione>
         <istruzione>
      else
         <istruzione>
      codice:
      mainloop:
      if [COLOR="#FF0000"]%autobenda 1[/COLOR]
      [COLOR="#FF0000"][[/COLOR]
      {
      if #hits <= %vita
      gosub healingsub
      else
      [COLOR="#FF0000"]return[/COLOR]
      }
      if %autobenda 2
      {
      [COLOR="#FF0000"]return[/COLOR]
      }
      [COLOR="#FF0000"]return[/COLOR]
      [COLOR="#FF0000"]][/COLOR]
      i cicli si scrivono in questo modo (la parola ciclo è indicativa, per convenzione si utilizzano "loop" o "main".
      codice:
       
      ciclo:
        //qualcosa
      goto ciclo

      Consiglio utile, ma non indispensabile:
      le istruzioni condizionali (if/else) o ripetitive (while,for) necessitano OBBLIGATORIAMENTE delle parentesi {} quando il corpo delle istruzioni (vedi sopra) è di 2 o piu righe:
      codice:
      if <condizione>
       {
         <istruzione1>
         <istruzione2>
         <istruzioneN>
         }
      Ultima modifica di seel82; 10-03-2015, 23:34.

      Commenta


      • #4
        Originariamente inviato da Galotar Visualizza il messaggio
        L'errore è nel POZZE HOTKEY SUB.
        Ti spiego come funziona adesso : uno attiva l' "uso pozioni", entra nella sub di cui sopra e non trovando tasti premuti esce.
        Nel POZZE HOTKEY SUB devi mettere tutto in un ciclo che controlla sempre se siano premuti o meno quei tasti senza alcuna pausa : in questo modo appena schiacci uno degli F rimanda alla sub corrispondente.
        Spero di essere stato utile
        innanzitutto grazie per la risposta allora ti riporto il mainloop completo, in pratica esso continua a verificare se la sezione è attiva, nel caso in cui lo è va alla sezione corrispondente. es. se nel setup ho messo su %usapozze 1, nel mainloop verifica che %usapozze = 1 quindi va alla sub POZZE HOTKEY SUB, altrimenti continua il suo loop verificando se le altre sezioni sono attive(ho fatto ciò per ottimizzare lo script, potendo disabilitare il controllo di alcune hotkey aumenti il tempo di risposta e quindi non tenere premuta la hotkey). questo funziona in modo efficiente settando gli #lpc a 100 (cosa che faccio nel setup visto che di default sono 10)
        ovviamente consigli per ottimizzare sono sempre ben accetti
        ps: non so quali rischi corro tenendo gli #lpc cosi alti visto che so appena che cosa sono...


        codice:
        ;------------------------------------------------------------MAINLOOP---------------------------------------------------------------------
        mainloop:
        if %autobenda 1
        [
        {
        if #hits <= %vita
        gosub healingsub
        else
        return
        }
        if %autobenda 2
        {
        return
        }
        return
        ]
        
        if %usapet = 1
        {
          gosub usapet
        }
        else
        {
          if %usapet = 2
          {
            return
          }
        }
        
        if %usachivaspells = 1
        {
          gosub usachivaspells
        }
        else
        {
          if %usachivaspells = 2
          {
            return
          }
        }
        
        if %usaweapon = 1
        {
          gosub usaweapon
        }
        else
        {
          if %usaweapon = 2
          {
            return
          }
        }
        
        if %usapozioni = 1
        {
          gosub usapozioni
        }
        else
        {
          if %usapozioni = 2
          {
            return
          }
        }
        
        if %usanecrospells = 1
        {
          gosub usanecrospells
        }
        else
        {
          if %usanecrospells = 2
          {
            return
          }
        }
        
        if %usabushidospells = 1
        {
          gosub usabushidospells
        }
        else
        {
          if %usabushidospells = 2
          {
            return
          }
        }
        
        if %usaninjaspells = 1
        {
          gosub usaninjaspells
        }
        else
        {
          if %usaninjaspells = 2
          {
            return
          }
        }
        
        if %usaspellweavingspells = 1
        {
          gosub usaspellweavingspells
        }
        else
        {
          if %usaspellweavingspells = 2
          {
            return
          }
        }
        
        if %usamysticismspells = 1
        {
          gosub usamysticismspells
        }
        else
        {
          if %usamysticismspells = 2
          {
            return
          }
        }
        
        if %usamageryspells = 1
        {
          gosub usamageryspells
        }
        else
        {
          if %usamageryspells = 2
          {
            return
          }
        }
        
        if %usatarget = 1
        {
          gosub usatarget
        }
        else
        {
          if %usatarget = 2
          {
            return
          }
        }
        
        if %usasopravvivere = 1
        {
          gosub usasopravvivere
        }
        else
        {
          if %usasopravvivere = 2
          {
            return
          }
        }
        
        if %usaskills = 1
        {
          gosub usaskills
        }
        else
        {
          if %usaskills = 2
          {
            return
          }
        }
        if %usapvp = 1
        {
          gosub usapvp
        }
        else
        {
          if %usapvp = 2
          {
            return
          }
        }
        
        
        goto mainloop
        seel82
        ora provo a fare le correzioni che mi hai suggerito, ma in ogni caso quella parte di mainloop funziona!, quello che non mi torna è che se anche è scritto male tutte le sub funzionano tranne quella delle pozioni, è come se non premessi il tasto! per questo non capisco, è come se usapozioni fosse disabilitato

        ps: in pratica diventa questo?
        codice:
        if %autobenda 1
        {
        if #hits <= %vita
        gosub healingsub
        else
        ;return
        if %autobenda 2
        {
        return
        }
        }
        ;return
        ho verificato (grazie a dio esiste F7) è il mainloop funziona, entra correttamente in POZZE HOTKEY SUB e va correttamente nella sub richiesta, ho trovato che il problema è nella sub di bere la pozione

        codice:
        sub pozzahealsub
        
        gosub undresssub
        wait %pausa
        ;finditem UUF ;trova un itemtype
        set #lobjectid UUF ;lo setta come last object ;ho visto che lo setta correttamente
        wait 5
        event macro 17 0 ;lo usa ; questo è ciò che non funziona, vorrei che usasse #lobjectid
        ;wait 20
        wait %pausa
        gosub dresssub
        wait %pausa
        ho appena risolto!!! con :

        codice:
        {
            findItem UUF C_ , #backpackID
            if #findStack > 0
               {
               gosub undresssub
               set #lObjectID #findID
               event Macro 17 0
               wait 5
               wait %pausa
               gosub dresssub
               }
            return
        ma è un po lento.... consigli per velocizzarlo?

        comunque grazie per le risposte illuminanti

        EDIT:

        fix fatti, ora worka ma l'autobenda interferisce pesantemente, non può essere attivata(poco male, continuerò con il vash healer per ora)
        ora sto studiando come fare un menu per rendere più facile il setup(non è semplice ma ci riuscirò!!!), ciò che non riesco a trovare è come scrivere delle variabili persistenti in modo da non dovere settare le hotkey ogni volta e non dover editare manualmente lo script!

        lascio il link dello script nel caso qualcuno volesse provarlo
        https://www.dropbox.com/s/0d9cwrhs3w...201.2.txt?dl=0
        Ultima modifica di kevian; 11-03-2015, 02:12.

        Commenta


        • #5
          #lpc sta per LinesPerCicles cioè quante linee di codice massimo legge per ciclo.
          In alcuni casi la setto a 1000 ad esempio quando devo scansionare le scritte di un gump perchè è un'operazione molto lunga( cattura il colore giusto, trasformalo in lettere valide ecc... )
          Io ti consiglio di provare a metterlo a 1000 e vedere quante risorse del pc consuma e la stabilità : male che va crasha il client
          Comunque bada bene che cosi come è architettato il mainloop non catturi al millisecondo la pressione su f1 ecc...
          Ma non credo ci sia altro verso visto che easyuo non contempla che io sappia la programmazione multithread.

          Commenta


          • #6
            grazie per la pazienza che avete con i nabboni!!

            allora l'ho testato con gli lpc settati a 1000 e spammando, con 26 di mr +100 medit lmc 30 ho spammato sino a finire il mana, il client non sembra avere problemi, la cpu non è mai andata oltre il 7% quindi sembrerebbe ottimo lo script si impalla un pochino se si continuano ad alternare i tasti velocemente o se tengo premute più key (insomma è una tastiera non un pianoforte...) però poi in un paio di secondi si ripiglia da solo e le key riprendono a funzionare(anche se lo script non risponde per questi secondi il client sembra stabile, non ha dato alcun segno di lag)

            ora mi rimangono 3 enormi problemi:

            1) creare delle variabili persistenti in modo da non dover editare fisicamente il file

            2)se possibile crearne più variabili persistenti: so che sembra assurdo ma se fosse possibile mi permetterebbe di rendere lo script molto flessibile, non dovendo fare il setup ogni volta che si cambia il personaggio! ciò si potrebbe risolvere settando il file variabile persistente come se fosse una variabile (%personaggio) chiedendo per prima cosa, tramite menu, di settare quale variabili caricare con semplice menu: con quale personaggio stai giocando? inserisci un numero da 1 a 5. facendo settare il valore della variabile. per poi creare un semplice if dove in base a al valore carica un file piuttosto che un altro

            3) fare un menu interattivo per facilitare il setup, del tipo un interfaccia con più bottoni es. set necrospell che se premuto mi apre un altro menu che mi permetta di settare le hotkey per le spell di necro( un semplice elenco con lo spazio di fianco al nome per inserire la key e un bottone finale per salvare le key nelle variabili persistenti)

            ovviamente 1 e 2 sono decisamente prioritari e più complessi da fare!! sto provando a leggermi le sub del leatherfarmer ma per ora non ci sto capendo molto... sapete consigliarmi qualche script dove sono scritte in modo diverso? che magari riesco a capire come fare, oppure se ne avete la voglia di provare a farmi un esempio di codice!

            grazie, vi auguro una buona giornata

            ps: sentitevi pure liberi di insultarmi se le idee sono troppo assurde o se lo trovate troppo complesso da realizzare come primo script

            Commenta


            • #7
              Studia

              Commenta


              • #8
                grazie mille!!!

                ho visto che è piuttosto complesso ma riguardando lo script che tu hai postato sui mace in shield è scritto in modo più semplice e comprensibile, infatti sono riuscito ad utilizzarlo con successo , ora mi rimane da fare i vari menu per settare le variabili tramite essi, poi metto tutto insieme sperando che worki!!
                al momento mi manca solo un passaggio per mettere lo spazio in cui scrivere le hotkey di fianco al testo(nome comando) nel menu e poi salvarla, ma domani mi ci applico e spero nel week end di riuscire a combinare qualcosa!!

                per il momento grazie ad entrambi, vi tengo aggiornati

                Commenta

                Sto operando...
                X