annuncio

Comprimi
Ancora nessun annuncio.

[EASYUO] 8x8 per macrare

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

  • [EASYUO] 8x8 per macrare

    Ciau a tutti. Ho appena iniziato con UODreams e non ho mai giocato su shard OSIstyle, e sta storia del 8x8 per macrare mi ha messo un pò in panico.. Alchè ho aperto EasyUO per la prima volta, e notando che la lingua di script non è affatto difficile (so scriptare in diversi linguaggi), ho scritto uno stupidissimo script per fare in modo che il pg mi faccia gli 8x8 da solo, così posso andare afk. A voi.
    codice:
    ;========================================================
    ; SCRIPT by Corvinus - UODreams. v1.0
    ; ------------------------------------------------------
    ; Descrizione: Lo script fa semplicemente muove il pg, ma
    ; non compiere l'azione per macrare, quindi effetuare
    ; altri script/macro per le azioni. Lo script aspetta che
    ; il punto deciso sia raggiunto, quindi anche se il pg
    ; è frozzato, continuerà a provare ad andare finchè non
    ; raggiunge il punto. C'è un delay di 5s tra ogni punto.
    ; Istruzioni: Posizionare il pg in mezzo a uno spazio
    ; vuoto con almeno 5-6 tile di distanza da OGNI ostacolo
    ; per tutte e 4 le direzioni, e farlo partire..
    ; -------------------------------------------------------
    
    ; Definizione dei 4 punti attorno al PG
    set %x_1 #CHARPOSX - 5
    set %y_1 #CHARPOSY + 5
    set %x_2 #CHARPOSX + 5
    set %y_2 #CHARPOSY + 5
    set %x_3 #CHARPOSX + 5
    set %y_3 #CHARPOSY - 5
    set %x_4 #CHARPOSX - 5
    set %y_4 #CHARPOSY - 5
    set %z_all #CHARPOSZ
    
    mainloop:
    loop1:
    event PathFind %x_1 %y_1 %z_all
    if ( #CHARPOSX = %x_1 )
    {
     if ( #CHARPOSY = %y_1 )
     {
      event sysMessage Raggiunto punto 1
      goto exit1
     }
    }
    goto loop1
    exit1:
    wait 5s
    loop2:
    event PathFind %x_2 %y_2 %z_all
    if ( #CHARPOSX = %x_2 )
    {
     if ( #CHARPOSY = %y_2 )
     {
      event sysMessage Raggiunto punto 2
      goto exit2
     }
    }
    goto loop2
    exit2:
    wait 5s
    loop3:
    event PathFind %x_3 %y_3 %z_all
    if ( #CHARPOSX = %x_3 )
    {
     if ( #CHARPOSY = %y_3 )
     {
      event sysMessage Raggiunto punto 3
      goto exit3
     }
    }
    goto loop3
    exit3:
    wait 5s
    loop4:
    event PathFind %x_4 %y_4 %z_all
    if ( #CHARPOSX = %x_4 )
    {
     if ( #CHARPOSY = %y_4 )
     {
      event sysMessage Raggiunto punto 4
      goto exit4
     }
    }
    goto loop4
    exit4:
    wait 5s
    goto mainloop
    MSN: ilgecko[at]hotmail[dot]it

    Originariamente inviato da Guajasino
    OT: stfu significa Shut The Fuck Up una sorta di "Fai il cesso" XD

  • #2
    codice:
    set #lpc 1000
    set %x_1 #CHARPOSX - 5
    set %y_1 #CHARPOSY + 5
    set %x_2 #CHARPOSX + 5
    set %y_2 #CHARPOSY + 5
    set %x_3 #CHARPOSX + 5
    set %y_3 #CHARPOSY - 5
    set %x_4 #CHARPOSX - 5
    set %y_4 #CHARPOSY - 5
    set %z_all #CHARPOSZ
    loop:
     for %i 1 4
     {
        set %x %x_ . %i
        set %y %y_ . %i
        set %z %z_all
        gosub moveto %x %y %z
       if #result <> blocked
       {
           event sysMessage Raggiunto punto %i
       }
    
      }
    
    
    sleep 10
    goto loop
    
    
    sub moveto
           set %endmove #systime + 10000
           while #CHARPOSX <> %1 || #CHARPOSY <> %2
           {
                  set %nextsmalldelay #systime + 1000
                  event pathfind %1 %2 %3
                  while ( #systime < %nextsmalldelay ) && ( #CHARPOSX <> %1 || #CHARPOSY <> %2 )
                  {
                     set %jindex #jindex
                     for %jrnl %scan_journal_line #jindex
                     {
                        scanjournal %jrnl
                        if can't_get_there in #journal && : notin #journal
                        {
                          set %scan_journal_line %jindex + 1
                          return blocked
                         }
                       }
                       set %scan_journal_line %jindex + 1
                       wait 1
                  }
                 if #CHARPOSX <> %1 && #CHARPOSY <> %2
                 {
                  gosub findshit
                 }
    
                 if #systime > %endmove
                 {
                    return blocked
                 }
           }
    return
    or something like that haven't tested

    Commenta

    Sto operando...
    X