annuncio

Comprimi
Ancora nessun annuncio.

[OpenEUO] impariamo insieme

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

  • [OpenEUO] impariamo insieme

    Dopo un paio di mesi di quasi totale inattività nello scriptaggio oggi ho dato un'occhiata alla board ufficiale di euo, ci sono ottime notizie, alcuni programmatori esperti hanno contribuito con librerie interessantissime e chi addirittura si è addentrato nella lettura diretta dei file mul, per i profani: date un occhiata a questi video per capire quali sono le potenzialità di OpenEUO... l'autore inoltre ha ripreso lo sviluppo definitivo del core di OpenEUO e la conclusione non sembra più così distante.



    lo scopo del thread è comunque un altro, come già da subito hanno iniziato a fare sui forum ufficiali, dato che non esistono tutorial o manuali in italiano sarebbe molto utile per chiunque fosse interessato nell'imparare il LUA confrontarsi ed imparare insieme, se quindi avete dei problemi o volete proporre qualcosa che ritenete utile postate qui e scriptiamo!

    come qualcuno già sà non ho un pc disponibile al momento (dovrebbero restituirmelo in settimana), comunque ho già fatto i miei esperimenti e creato alcuni script funzionanti che potrebbero interessare. Per fortuna ho copiato tutto su un HD e questo venerdì quando sarò a casa pubblicherò qualcosa, a cominciare da un buon supporto alla bendata molto simile al vecchio vash healer con contatori sopra il pg e una maggiore efficienza in velocità e leggerezza.

    Adesso bando alle ciance e se avete qualcosa da proporre o avete dei dubbi sul LUA, postate! Sarò ben lieto ad aiutarvi per quanto ne so su questo linguaggio
    Ultima modifica di fengyr; 20-04-2011, 14:12.
    ____________________________________________________________________

    Il p Fengyr
    ____________________________________________________________________
    : algander#6292

  • #2
    ecco come avevo promesso uno scriptino che scrissi per prendere confidenza con il LUA, come il vecchio vashealer mostra il contatore sopra il pg.
    NB: ovviamente lo posto soprattutto per scopi formativi, se siete alle prime armi vi consiglio di fare attenzione alla funzione ContaBende, la ricerca degli item da EUO al LUA è assai differente.
    la f. UseLastObject l'ho presa adesso da un altro script, presenta molte caratteristiche interessanti, come la presenza del debugging e la gestione di argomenti multipli, importanti per scriptare efficientemente.

    codice:
    bandagetype = 3617 
    
    function main()
      local items
      nBende = ContaBende()    
      while true do
        wait(1)
        while UO.TargCurs == false and UO.Hits < UO.MaxHits or string.find(UO.CharStatus,"C") do
          if ContaBende() >= 1 then
            UseLastObject(idbende,true,true)
            UO.Macro(23,0)
            if ContaBende() <= 10 then
              UO.ExMsg(UO.CharID,3,38,"hai solo " .. ContaBende() .. " bende!")
            end 
            counter() 
          end 
        end
      end
    end  
     
    
    function counter()
    local timer =  11 - ( UO.Dex - ( UO.Dex % 10 ) ) / 20 
      for i=timer,1,-1 do
        UO.ExMsg(UO.CharID,3,375,tostring(i))
        wait(1000)
      end 
    end
    
    function ContaBende()
    local cnt = UO.ScanItems(true)-1 
      for i=0,cnt do
        local id,type,kind,contid,x,y,z,stack,rep,col = UO.GetItem(i)
        if contid == UO.BackpackID and type == bandagetype and stack > 0 then
         idbende = id
         return stack 
        end
      end
    return false
    end
    
    
    function UseLastObject(LObjectID,WaitForTarget,verbose)
      if WaitForTarget == nil then
        WaitForTarget = false
      end
      if verbose == true then
        print("Using Object: " .. LObjectID)
      end
      UO.LObjectID = LObjectID
      UO.Macro(17,0)
      if verbose == true and WaitForTarget == true then
        print("Waiting for target..")
      end
      while WaitForTarget == true and UO.TargCurs ~= true do
        wait(50)
      end
      return true
    end
    
    main()
    Ultima modifica di fengyr; 22-04-2011, 15:18.
    ____________________________________________________________________

    Il p Fengyr
    ____________________________________________________________________
    : algander#6292

    Commenta


    • #3
      mmm...
      1)la tua firma da un sacco di problemi hai cell xD
      2)la useLastObject aggrada assai, quindi mi sa che ti rubo tutto lo script
      3)che tu sappia esiste una buona funzione per il cast?
      ASTA ring da mage 1/3 - lrc - int - sdi
      COMPRO leafblade semplice (3props)

      Ayra AoS

      Commenta


      • #4
        se intendi qualcosa come il comando target di easyuo, target della libreria simplelib è molto carina:

        codice:
        -------------------------------------------------------------------------------
        --- target --------------------------------------------------------------------
        
        -- like easyuo target command, waits for UO.TargCurs true or times out
        -- accepts alternative timeout in milliseconds
        -- default timeout is 3 seconds
        -- returns state of UO.TargCurs, time spent waiting
        local _target = function(ms)
          local timeout
          if ms == nil then
            timeout = 3000
          elseif type(ms) ~= 'number' then
            if type(ms) == 'string' then
              local tn = tonumber(ms)
              if tn == nil then
                timeout = 3000
              else
                timeout = tn
              end
            else
              timeout = 3000
            end
          else
            timeout = ms
          end
        
          ms = getticks()
          timeout = timeout + ms
          while timeout > getticks() do
            if UO.TargCurs == true then break end
            wait(10)
          end
          
          return UO.TargCurs , getticks() - ms
        end
        per chiamarla dalla libreria usa semplicemente target(ms)
        i commenti descrivono il resto, tral'altro c'è un buon wiki a dedicato alla simplelib ^^
        ____________________________________________________________________

        Il p Fengyr
        ____________________________________________________________________
        : algander#6292

        Commenta


        • #5
          non applica la benda... si ferma su wait for target... provo a dargli un'occhiata anche se è arabo il lua per me

          Commenta


          • #6
            lo script per la bendata non è ottimale, non usando molto il war con healing quindi l'ho testato relativamente, l'ho fatto più per esercizio... se proprio ce ne è bisogno posso comunque sistemarlo anche se credo ci siano già degli script di cura ottimi sul forum ufficiale.
            ____________________________________________________________________

            Il p Fengyr
            ____________________________________________________________________
            : algander#6292

            Commenta

            Sto operando...
            X