annuncio

Comprimi
Ancora nessun annuncio.

[OpenEUO] trovare facilmente un id

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

  • [OpenEUO] trovare facilmente un id

    questo è praticamente il primo script che ormai già 2 anni fa mi sono fatto per imparare il LUA, è praticamente il gemello di uno script di easyuo che altrettanti anni prima mi ero fatto per lo stesso scopo...

    lo script è semplicissimo, vuole essere un esempio per chi vuole imparare il linguaggio e anche una risorsa, perchè permette di trovare gli ID degli item in qualsiasi momento.

    L'uso è intuitivo, una volta scelte le hotkey si lancia lo script, si preme il tasto e si targetta l'oggetto di cui si vuol conoscere l'id o che si vuole nascondere.
    codice:
    _printkey = "F10"
    _hidekey = "F8"
    
    --[[ NON MODIFICARE OLTRE ]]
       
    local function target()
    UO.TargCurs = true
    while UO.TargCurs == true do
          wait (50)
          end
    return UO.LTargetID
    end
              
    local function printinfo(col,col2)
    _ID = target()
    local _itemname = UO.Property(_ID)
    print ("Item: " .. _itemname )
    print ("ID: " .. _ID)
    local _itemcnt = UO.ScanItems(false)
    for _itemindex = 1 , _itemcnt do 
     local ID,Type,Kind,ContID,X,Y,Stack,Rep,Col = UO.GetItem(_itemindex)
      if ID == _ID then
         _Type = Type
         break
         end
    end
    UO.SysMessage ( _itemname .. " OEUO Type: " .. _Type, col)
    UO.SysMessage ( "OEUO ID: " .. _ID , col2)
    end
    
    local function hideitem()
    _ID = target()
    if _ID ~= UO.CharID then
       UO.HideItem(_ID)
       end
    end
    
    repeat 
    wait (5)
    if getkey(_printkey) then
      printinfo (68,233)
    elseif getkey(_hidekey) then
      hideitem ()
    end
    until false == true
    NB: lo stile non è il top della qualità e mostra anche certe carenze che ho (vedi la funzione getkey() ripetuta ), quindi usatelo come esempio ma con cautela ^^
    Ultima modifica di fengyr; 15-03-2012, 21:20.
    ____________________________________________________________________

    Il p Fengyr
    ____________________________________________________________________
    : algander#6292

  • #2
    questo è un altro script, ancora più semplice ma è necessario avere 2 librerie di supporto.
    più semplicemente stampa nella console di OpenEUO tutti gli id e le relative props degli item nel contenitore targettato... con una elementare conversione da base decimale a esadecimale gli ID sono compatibili con razor!

    codice:
    dofile(getinstalldir().."scripts/FileAccess.lua") 
    dofile(getinstalldir().."scripts/FindItems.lua") 
    
    _printkey = "F10"
    
    local function target()
    UO.TargCurs = true
    while UO.TargCurs == true do
          wait (50)
          end
    return UO.LTargetID
    end
    
    printlist = function()
    container = target()
    t = ScanItems(true,{ContID=container}) 
    print("ID trovati: " .. #t) -- number of items found
    for i=1,#t do
      print(t[i].ID .. " ___ " .. UO.Property(t[i].ID)) 
     -- id of items found if any
    end 
    end
    
    repeat 
    if getkey(_printkey) then
      printlist()
    end
    until false == true
    consiglio caldamente di usare/procurarsi le due librerie perchè semplificano molto la vita di chi scripta...

    FileAccess.lua dovrebbe essere compresa ormai con l'archivio di OpenEUO che scaricate
    FindItems.lua è praticamente un must in molti scripts, simula* il comportamento del finditem del vecchio EUO, leggetevi la documentazione che spiega come usare i comandi forniti

    * capitelo bene, significa che non si comporta esattamente come il vecchio finditems!
    Ultima modifica di fengyr; 15-03-2012, 21:31.
    ____________________________________________________________________

    Il p Fengyr
    ____________________________________________________________________
    : algander#6292

    Commenta


    • #3
      la funzione Local cosa fa? è una funzioneche va semprecon il finditem?

      Commenta


      • #4
        Ciao,

        ho letto quello che hai scritto di OpenEUO e mi pare a prima vista un parser molto migliore del vecchio EUO... vorrei provare a convertire questo

        http://forum.gamesnet.it/f667/easyuo...istant-705949/

        al Lua di OpenEUO, ma ho qualche dubbio:

        - sai come si fa a convertire i vecchi #id e #type di EUO (quelli in lettere) nei nuovi di OpenEUO (quelli in cifre)?

        - ti risulta che ci sia qualcosa del vecchio EasyUO che non è ancora supportato dal nuovo parser?

        Thx!

        Commenta


        • #5
          se i file vengono caricati come librerie... con il comando dofile etc....

          le funzioni dichiarate local non sono "visibili" dall'esterno ma possono essere usate soltanto dagli script che le richiamano dall'interno...


          per esempio (se fosse scritta come una libreria quindi senza il loop finale) mi salvo il secondo script come stampalista.lua e in uno script del tipo richiamo le sue funzioni:


          dofile(getinstalldir().. "scripts/Algander/stampalista.lua") <-- carico lo script
          target()
          quando vado a chiamare la funzione target() riceverò un errore di funzione inesistente..

          printlist()
          funzionerà correttamente ed userà senza problemi la funzione target(), perchè è appunto locale alla libreria ed accessibile all'interno.
          ____________________________________________________________________

          Il p Fengyr
          ____________________________________________________________________
          : algander#6292

          Commenta


          • #6
            Originariamente inviato da marcorc Visualizza il messaggio
            Ciao,

            ho letto quello che hai scritto di OpenEUO e mi pare a prima vista un parser molto migliore del vecchio EUO... vorrei provare a convertire questo

            http://forum.gamesnet.it/f667/easyuo...istant-705949/

            al Lua di OpenEUO, ma ho qualche dubbio:

            - sai come si fa a convertire i vecchi #id e #type di EUO (quelli in lettere) nei nuovi di OpenEUO (quelli in cifre)?

            - ti risulta che ci sia qualcosa del vecchio EasyUO che non è ancora supportato dal nuovo parser?

            Thx!
            http://www.z0rak.com/euotypeconvert....O&euo_type=TUF

            altrimenti credo abbiano pubblicato qualcosa che converte gli id in maniera massiva, appunto come tool per tradurre gli script... prova a guardare sul forum ufficiale.
            ____________________________________________________________________

            Il p Fengyr
            ____________________________________________________________________
            : algander#6292

            Commenta


            • #7
              Originariamente inviato da fengyr Visualizza il messaggio
              se i file vengono caricati come librerie... con il comando dofile etc....

              le funzioni dichiarate local non sono "visibili" dall'esterno ma possono essere usate soltanto dagli script che le richiamano dall'interno...


              per esempio (se fosse scritta come una libreria quindi senza il loop finale) mi salvo il secondo script come stampalista.lua e in uno script del tipo richiamo le sue funzioni:


              dofile(getinstalldir().. "scripts/Algander/stampalista.lua") <-- carico lo script
              target()
              quando vado a chiamare la funzione target() riceverò un errore di funzione inesistente..

              printlist()
              funzionerà correttamente ed userà senza problemi la funzione target(), perchè è appunto locale alla libreria ed accessibile all'interno.
              Quindi l'utilita del Local?

              Commenta


              • #8
                Quindi l'utilita del Local?
                Ci sono casi nell'ambito della programmazione dove poter disporre di funzioni ad uso esclusivo garantisce un certo livello di sicurezza; oppure rendere "interne" garantisce che non vengano usate "a sbaffo" in modo sbagliato
                Ultima modifica di d_fenixlm; 16-03-2012, 18:30.


                Se dovessi rinascere, farei l’idraulico ” – Albert Einstein

                Commenta

                Sto operando...
                X