annuncio

Comprimi
Ancora nessun annuncio.

[EasyUO - HELP] Info tecniche dei comandi

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

  • [EasyUO - HELP] Info tecniche dei comandi

    Mi sono dilettato a provare a capire qualcosa in più di easy uo, e mi sono sovvenuti queste domande:

    #1 Comando per muovere il pg
    Dato un determinato finditem, che differenza c'è tra:
    • event pathfind #findx #findy #findz
    • move #findx #findy 0 Xs


    #2 Proprietà degli item
    Se dei determinati item hanno uno stesso finditem come faccio a discriminarli?
    Io conosco solo il comando event Property #findid ma è lento e "poco affidabile": ci sono altri metodi?

    #3 Come finire una sezione di script
    Qui la cosa si complica, sono cose che non ho mai capito.
    • Inizio lo script con initevents ma poi come finisce quella sezione?
    • Lo stesso problema che riscontro con le sub: come finisce una comando sub?
    • Il comando return serve per...?

    Per ovviare ho pensato di mettere sotto ogni sub un rimando gosub ad un'altra, ma sarebbe meglio se sapessi come finisce una parte di script -.-

    #4 Meglio più sub o script lineare?
    Questa domanda si lega alla #3: gli script possono essere anche lineari, utilizzando solo il comando goto per ritornare in alcuni loop. Le sub rallentano lo script o no? Personalmente le trovo utili, ma per una questione di ordine mentale, non per un vero significato recondito


    Ringrazio chi mi darà le delucidazioni, anche se sono domande niubbe almeno si discostano dai soliti "Vorrei uno script così e cosà" senza sforzarsi di imparare

    L2 / UO - GamesNet Italia
    Aribeth

  • #2
    Originariamente inviato da Aribeth
    #1 Comando per muovere il pg
    Dato un determinato finditem, che differenza c'è tra:
    • event pathfind #findx #findy #findz
    • move #findx #findy 0 Xs
    event pathfind fa partire il tipico pathfind di Ultima (ti esce la scrittina sulla testa) e fa tutto da solo ed è abbastanza affidabile ma allo stesso tempo poco controllabile. Il flusso dello script continua mentre il pg si muove.

    move invece fa tutto con easyuo, quindi è meno affidabile, ma in compenso puoi dargli la tolleranza e i secondi che ci deve mettere a raggiungere quel posto. Il comando termina quando raggiunge la destinazione o supera i secondi di timeout, e lo script continua.
    #2 Proprietà degli item
    Se dei determinati item hanno uno stesso finditem come faccio a discriminarli?
    Io conosco solo il comando event Property #findid ma è lento e "poco affidabile": ci sono altri metodi?
    dipende, cosa intendi per "discriminarli"? ad esempio puoi distinguere tra vendor e pg guardando #findrep. event property non è tanto male, lo uso con successo nel mio script di loot. Per il fatto di "poco affidabile" basta inserirlo in un loop dove controlli che il risultato non sia N/A oppure $

    #3 Come finire una sezione di script
    Qui la cosa si complica, sono cose che non ho mai capito.
    • Inizio lo script con initevents ma poi come finisce quella sezione?
    • Lo stesso problema che riscontro con le sub: come finisce una comando sub?
    • Il comando return serve per...?

    Per ovviare ho pensato di mettere sotto ogni sub un rimando gosub ad un'altra, ma sarebbe meglio se sapessi come finisce una parte di script -.-
    uno script finisce con "halt". "initevents" è obsoleto, puoi anche evitarlo.
    una sub deve ritornare con un return. puoi avere casi come:

    sub x
    ...
    return y

    e il comando return y ti mette nella variabile #result il valore y.

    oppure:

    sub x
    loop:
    if <qualcosa>
    return
    goto loop

    invece una call ad un file esterno finisce con un exit.

    occhio a non fare cose del tipo:

    sub x
    ...
    gosub x

    che potrebbero risolversi in una serie infinita di chiamate.
    #4 Meglio più sub o script lineare?
    Questa domanda si lega alla #3: gli script possono essere anche lineari, utilizzando solo il comando goto per ritornare in alcuni loop. Le sub rallentano lo script o no? Personalmente le trovo utili, ma per una questione di ordine mentale, non per un vero significato recondito
    non c'è una regola, ma le sub le preferisco e le consiglio. anche perchè dopo il gosub (se il return è fatto bene) si può controllare com'è andata la sub dalla variabile #result.
    ad esempio:

    gosub TrovaNemico
    if #result = #true
    event sysmessage Nemico in vista!
    else
    event sysmessage Tutto tranquillo!

    il cui funzionamento è abbastanza intuitivo.
    Take care of yourself.

    Commenta


    • #3
      Tnx Mitraton, era da tempo che non ti vedevo rispondere e mi fa piacere vederti "attivo" nel forum

      Tutto abbastanza chiaro, tranne il comendo Return che quindi non indica la fine di una Sub o parte di uno script ma da restituisce una variabile. Pertanto dopo le Sub o la parte di script potrei anche non metterci nulla e vanno lo stesso.

      Il comando Halt ferma lo script che invece, come quasi tutti gli script, si vuole che vadano in loop fino a quando l'utente non ferma proprio lo script -.-
      Quindi nel caso di script in loop non conviene utilizzarlo tranne se il pg muore così evita lo script di andare, giusto?

      L2 / UO - GamesNet Italia
      Aribeth

      Commenta


      • #4
        per il return occhio eh, che è NECESSARIO per uscire da una sub.

        ti faccio un esempio:
        codice:
        loop:
        if #hits < 60
          gosub curati
        goto loop
        
        
        sub curati
          event macro 15 28 ;cast greater heal
          target 3s
          event macro 23 ;target self
        return
        Take care of yourself.

        Commenta


        • #5
          Originariamente inviato da Mitraton
          per il return occhio eh, che è NECESSARIO per uscire da una sub.
          Ora è davvero tutto chiaro. tnx ancora

          L2 / UO - GamesNet Italia
          Aribeth

          Commenta

          Sto operando...
          X