annuncio

Comprimi
Ancora nessun annuncio.

[EasyUO]Aiuto per una sub

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

  • [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, 15:08.

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

  • #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


    • #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


      • #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, 15:53.

        Commenta


        • #5
          Originariamente inviato da morhua Visualizza il messaggio
          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


          • #6
            Originariamente inviato da antonio.gl Visualizza il messaggio
            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 Visualizza il messaggio
            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, 18:52.

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

            Commenta

            Sto operando...
            X