[EasyUO]Aiuto per una sub

Comprimi
X
 
  • Ora
  • Visualizza
Elimina tutto
nuovi messaggi
  • morhua
    Super Member
    • Sep 2007
    • 1077

    #1

    [EasyUO]Aiuto per una sub

    Volevo fare una subroutine che dopo aver trovato le posizioni di tutti i cadaveri nel raggio di 10 tiles facesse spostare il PG su ognuno di essi, ma non ci riesco... qualcuno mi può dare una mano? Io ho fatto una cosa del genere, ma non funziona:

    codice:
    sub Prova
    
    finditem YFM G_10
    set !Progressivo 1
    set !Corpi #FINDCNT
    While !Corpi > 0
    {
       finditem YFM G_10
       set !IDCorpo #FINDID
       set !X . !Progressivo #FINDX
       set !Y . !Progressivo #FINDY
       set !Z . !Progressivo #FINDZ
       ignoreitem !IDCorpo
       wait 20
       set !Progressivo ( !Progressivo + 1 )
    }
    
    set !Progressivo 1
    for !Progressivo 1 !Corpi
    {
       set !_X !X . !Progressivo  ;
       set !_Y !Y . !Progressivo  ;  E' necessario settare queste tre variabili???
       set !_Z !Z . !Progressivo  ;
       set !cont 1
       While ( ( #CHARPOSX <> !_X ) || ( #CHARPOSY <> ( !_Y ) || ( #CHARPOSZ <> !_Z ) ) && ( !cont < 6 )
       {
          event PathFind !_X !_Y !_Z
          set !cont ( !cont + 1 )
          wait 8
       }
       wait 20
    }
    return
    Ultima modifica di morhua; 14-10-2008, 13:08.

    Vota per UODreams:
    uoshards.it joinuo.com gtop100.com gamesites200.com xtremetop100.com
  • antonio.gl
    Super Member
    • Feb 2006
    • 1150

    #2
    Non l'ho provato.
    codice:
    while #true
    {
      onhotkey c
        gosub loot
    }
    
    sub loot
      finditem YFM G_10
      for %i 1 #findcnt
      {
        set #findindex %i
        move #findx #findy 1 5s
        gosub faiQualcosa
        ignoreitem #findid
      }
    return
    ICQ 222293462


    Commenta

    • morhua
      Super Member
      • Sep 2007
      • 1077

      #3
      Grazie mille, ma questo sistema lo conoscevo già... volevo fare in modo che trovasse tutti i cadaveri in un area di raggio 10 tiles DALLA POSIZIONE INIZIALE del PG, questo per evitare che spostandosi di corpo in corpo andasse a fanc***ndia

      Vota per UODreams:
      uoshards.it joinuo.com gtop100.com gamesites200.com xtremetop100.com

      Commenta

      • RayanStaff
        BANNED
        • Jul 2008
        • 516

        #4
        Gli ho dato un'occhiata veloce ed errori nn ne ho trovati (a parte l'uso inutile di variabili namespace).
        Cmq prova a mandarlo in debug mode, cioè eseguendo riga per riga col tasto F7: in questo modo vedi cosa fa e cosa nn fa.
        Al limite prova a usare move al posto del pathfind.

        Ps: un consiglio personale: invece di rifare ogni volta il finditem all'interno del while usa la variabile #findindex: tramite questa ti puoi scorrere l'array di tutti i corpi trovati dal finditem, che così viene eseguito 1 sola volta e si velocizza lo scrpt (a quel punto non serve nemmeno + l'ignoreitem).
        Ultima modifica di RayanStaff; 14-10-2008, 13:53.

        Commenta

        • antonio.gl
          Super Member
          • Feb 2006
          • 1150

          #5
          Originariamente inviato da morhua
          Grazie mille, ma questo sistema lo conoscevo già... volevo fare in modo che trovasse tutti i cadaveri in un area di raggio 10 tiles DALLA POSIZIONE INIZIALE del PG, questo per evitare che spostandosi di corpo in corpo andasse a fanc***ndia
          Ma infatti trova i corpi nel raggio di 10 tiles nel momento in cui chiami la sub, non continua a cercare corpi man mano che si muove.
          ICQ 222293462


          Commenta

          • morhua
            Super Member
            • Sep 2007
            • 1077

            #6
            Originariamente inviato da antonio.gl
            Ma infatti trova i corpi nel raggio di 10 tiles nel momento in cui chiami la sub, non continua a cercare corpi man mano che si muove.
            Si scusami, hai ragione... sai com'è sono un programmatore dilettante eheh.


            Originariamente inviato da RayanStaff
            Gli ho dato un'occhiata veloce ed errori nn ne ho trovati (a parte l'uso inutile di variabili namespace).
            Cmq prova a mandarlo in debug mode, cioè eseguendo riga per riga col tasto F7: in questo modo vedi cosa fa e cosa nn fa.
            Al limite prova a usare move al posto del pathfind.

            Ps: un consiglio personale: invece di rifare ogni volta il finditem all'interno del while usa la variabile #findindex: tramite questa ti puoi scorrere l'array di tutti i corpi trovati dal finditem, che così viene eseguito 1 sola volta e si velocizza lo scrpt (a quel punto non serve nemmeno + l'ignoreitem).
            Grazie per il consiglio! Ho risolto il problema e alleggerito il codice seguendo i tuoi suggerimenti... ora va che è uno spettacolo
            Ultima modifica di morhua; 14-10-2008, 16:52.

            Vota per UODreams:
            uoshards.it joinuo.com gtop100.com gamesites200.com xtremetop100.com

            Commenta

            Sto operando...