annuncio

Comprimi
Ancora nessun annuncio.

[EASYUO] Bod Gather script di Raziel (modificato per i save)

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

  • venusi
    ha risposto
    Originariamente inviato da BaTiStA -O Animal-
    Appena arriviamo a una versione buona e ben testata lo facciamo.
    sei troppo un grande sei frighissimo come dicono alla kinder asd

    Lascia un commento:


  • Batista
    ha risposto
    Appena arriviamo a una versione buona e ben testata lo facciamo.

    Lascia un commento:


  • venusi
    ha risposto
    ma nn potete riunire tutti sti script in uno e farlo completo? O_o

    Lascia un commento:


  • Drael
    ha risposto
    Ci ho provato, ma non riesco a testarla, se volete provarci voi dovete cercare:
    codice:
    sub rail
    In seguito sostituite tutto questo:
    codice:
    sub rail
    ;gosub CheckForWorldSave          ;Modifica per i save (tolta).
    namespace push
    namespace local rail
    set %endspot checker
    set !railName %1
    call !railName
    gosub checkNumber %endspot
    if ! #result
    {
    	display ok there is something wrong with your rail ( !railName )$
    		+check you have made the file and put it in the same folder as the bod script.$
    		+halting script.
    	halt
    }
    for !i 1 %ENDSPOT
    	{
    	rifai:
    	gosub CheckForWorldSave       ;Modifica per i save
    	set !x %x . !i
    	set !y %y . !i
    	set !z %z . !i
    	gosub findDist !x !y #charposx #charposy
    	if #result > 15
    	{
    		  Event SysMessage the next spot is too far away$
    			Event SysMessage I suggest you remake the rail$
    			Event SysMessage try to keep the gap between each spot short ( 10 tiles is good )
          move !x !y 0
    	}
    	set !tries 0
    	tryAgain:
    	if !tries > 10
    	{
    		gosub railFailMenu
    		if #result
    		{
    			set !tries 0
    			goto tryAgain
    		}
    		namespace pop
    		return #false
    	}
    	set !pathfindTimeOut #scnt + 6
    	event pathfind !x !y !z
    	set !tries !tries + 1
    	_waitmove:
    	if #contname = generic_gump && #contsize = 420_280
    	{
    		click 330 360
    		wait 10
    	}
    	IF #charposx = !x && #charposy = !y && #charposz = !z
      {
      	goto next
      }
    	if #scnt < !pathfindTimeOut
    		goto _waitmove
    	goto try_again
    	next:
    	}
    namespace pop
    return #true
    con questo:

    codice:
    sub rail
    ;gosub CheckForWorldSave          ;Modifica per i save (tolta).
    namespace push
    namespace local rail
    set %endspot checker
    set !railName %1
    call !railName
    gosub checkNumber %endspot
    if ! #result
    {
    	display ok there is something wrong with your rail ( !railName )$
    		+check you have made the file and put it in the same folder as the bod script.$
    		+halting script.
    	halt
    }
    for !i 1 %ENDSPOT
    	{
    	rifai:
    	gosub CheckForWorldSave       ;Modifica per i save
    	set !x %x . !i
    	set !y %y . !i
    	set !z %z . !i
    	gosub findDist !x !y #charposx #charposy
    	if #result > 15
    	{
    		  Event SysMessage the next spot is too far away$
    			Event SysMessage I suggest you remake the rail$
    			Event SysMessage try to keep the gap between each spot short ( 10 tiles is good )
          move !x !y 0
    	}
    	set !tries 0
    	tryAgain:
    	if !tries > 10
    	{
    		gosub railFailMenu
    		if #result
    		{
    			set !tries 0
    			goto tryAgain
    		}
    		namespace pop
    		return #false
    	}
    	set !pathfindTimeOut #scnt + 6
    	event pathfind !x !y !z
    	set !tries !tries + 1
    	_waitmove:
    	if #contname = generic_gump && #contsize = 420_280
    	{
    		click 330 360
    		wait 10
    	}
    	IF #charposx = !x && #charposy = !y && #charposz = !z
      {
      	goto next
      }
      else
      {
        Set %ProvaRailFallita %ProvaRailFallita + 1
        If %ProvaRailFallita = 5
        {
          Wait 5s
          Set %ProvaRailFallita 0
        }
        GoTo rifai
      }
    	if #scnt < !pathfindTimeOut
    		goto _waitmove
    	goto try_again
    	next:
    	}
    namespace pop
    return #true
    Aggiungete anche all'inizio questa linea:
    codice:
    set %ProvaRailFallita 0

    Lascia un commento:


  • Batista
    ha risposto
    Sì, mi pare giusto.
    Le rail sn fatte bene, con al max mi pare 5 tile tra uno spot e quello dopo, quindi quel prob nn dovrebbe sussistere.
    I retry intervallati da pause ogni tot tentativi mi sembrano la soluzione migliore.
    Ultima modifica di Batista; 25-02-2007, 04:28.

    Lascia un commento:


  • Drael
    ha risposto
    si infatti penso anche io, devo ancora vedere, cmq visto che tanto le tue rail non hanno + di 10 tile si può anche fargli continuare il pathfind fino a che nn ci arriva, oppure mettere un controllo, che se entro tot pathfind non riesce ad arrivarci (mega lag) allora aspetta tipo 5 secondi (tanto per non sovraccaricare il client di pathfind che portano solo ad un crash dello stesso) e ci riprova altre tot di volte e via dicendo. non difficile, cosa ne dici?

    Lascia un commento:


  • Batista
    ha risposto
    Non ho letto tutto il codice, ma immagino che quando fa il pathfind sugli spot presi dalla rail provi a farlo un tot di volte, dopodiché ti dà "spot troppo lontano".
    Bisogna intervenire lì.
    Ora vedo se mi viene in mente qualcosa.

    Lascia un commento:


  • Drael
    ha risposto
    ci provo ma nn ti assicuro nulla, visto che la lag non si può prevedere più di tanto, oppure si può rallentare un po' lo script e fare più controlli, ora ci provo e vediamo...se ci riesco faccio che postare lo script completo anche con le mie modifiche

    Lascia un commento:


  • Batista
    ha risposto
    La prossima dovrebbe essere una anti-lag.
    In caso di lag pesa in cui il pg resta frozzato vari secondi lo script si pianta e nn riparte.
    Vediamo di sistemare questa cosa.

    Lascia un commento:


  • Drael
    ha risposto
    Ti ringrazio

    Comunque l'altra sera lasciandolo a macrare per non so quanto tempo mi è venuta l'idea di questa piccola modifica, una modifica che permette di sapere quanti BOD sono stati raccolti fino a quel momento, ecco come fare:

    Tra le prime variabili, aggiungete subito sotto a quella per il tempo dei BOD questa linea:
    codice:
    Set %BODRitirati 0
    Sostituite l'intera sub InfoMenu con questa:
    codice:
    ;******************************************************************
    sub InfoMenu
    namespace push
    namespace local infoMenu
    set !account %1
    set !char %2
    set !recallOrRail %3
    if %4 = 0
    	set !bodType Tailor
    if %4 = 1
    	set !bodtype Smith
    if %4 = 2
    	set !bodType Tailor , #spc , and , #spc , smith
    set !shard %5
    set !lines %0 + 1
    set !menuHeight 20 * !lines + 30
    menu clear
    menu show 600 600
    menu Window Title Raziel's BOD Collection Script
    menu window color black
    menu font size 12
    menu font color red
    menu font bgcolor black
    menu Window Size 275 !menuHeight
    menu text text 5 5 Gathering Bods
    menu text text 5 25 Account : !account
    menu text text 5 45 Personaggio : !char
    menu text text 5 65 Movimento : !recallOrRail
    menu text text 5 85 Bods : !bodtype
    menu text text 5 105 Bod Ritirati : %BODRitirati
    if !lines = 6
    	menu text text 5 125 Shard : !shard
    namespace pop
    return
    Ora andate fino alla riga 745 e tra le due righe:
    codice:
    namespace pop
    return #true
    Aggiungete:
    codice:
    Set %BODRitirati %BODRitirati + 1
    Quindi diventerà:
    codice:
    namespace pop
    Set %BODRitirati %BODRitirati + 1
    return #true
    Ora fate partire lo script e godetevi questa nuova funzione, utile per tenere traccia del numero di bod che si hanno ottenuto.

    Alla prossima con una nuova modifica
    Ultima modifica di Drael; 23-02-2007, 23:15.

    Lascia un commento:


  • Batista
    ha risposto
    Che dire se non: Ottimo lavoro!!!
    Ho aggiornato il primo post con i link alle tue aggiunte.

    Lascia un commento:


  • Drael
    ha risposto
    Ecco uno script da mettere in play insieme al raziel: (EDIT: Mi ero dimenticato di aspettare almeno 15 minuti nello script, lo modifico subito)
    Inizio:
    If #ContSize = 203_121
    {
    Set *RazielStopScriptGumpStop pause
    Set %ClickX #ContPosX + 100
    Set %ClickY #contPosY + 89
    Click %ClickX %ClickY
    WaitForGump:
    If #ContName <> MainMenu_Gump
    {
    Wait 1s
    GoTo WaitForGump
    }
    Wait 900s ;<-- tanto per essere sicuri aspetta 900 secondi (15 minuti)
    GoSub account . !account
    WaitForGump1:
    If #ContName = waiting_gump
    {
    Wait 1s
    Goto WaitForGump1
    }
    ClickShard1:
    Click 262 115 d
    If #ContName = normal_gump
    {
    Wait 10
    Goto ClickShard
    }
    WaitForGump2:
    If #ContName = waiting_gump
    {
    Wait 1s
    GoTo WaitForGump2
    }
    If #ContName = Login_gump
    {
    GoSub ClickChar
    }
    GoTo WaitForGump2
    Wait 10s
    Set *RazielStopScriptGumpStop play
    }
    GoTo Inizio
    sub account1
    wait 10
    click 530 400
    msg xxxxxx ;<---Password
    wait 20
    msg $
    return

    sub ClickChar
    ClickCharCL:
    Set %char !char
    Set %ClickXChar 365
    Set %YM 40 * !char
    Set %ClickYChar 125 + %YM
    If #ContName = Login_gump
    {
    Wait 10
    GoTo ClickCharCL
    }
    Return
    Non lo ho mai provato, quindi non so se funziona, sono sicuro del Connection Lost perchè per una coincidenza mi si è spento il modem poco fa ed ho potuto testare, sono sicuro al 100% che preme sull'Ok e ke arriva fino al MainMenu ma di più non so.

    EDIT:
    Quasi dimenticavo, dovete modificare questo nello script:
    for !i 1 %ENDSPOT ;<-- nel find di EUO cercate questa linea
    {
    ;dovete aggiungere questo
    PausaPerConnectionLost:
    set %Stop *RazielStopScriptGumpStop
    If %Stop = pause
    {
    Wait 1s
    goTo PausaPerConnectionLost
    }
    ; fine dell'aggiunta
    Ultima modifica di Drael; 23-02-2007, 00:14.

    Lascia un commento:


  • Drael
    ha risposto
    Ah poi per un post che ho letto prima tuo, che non ti ricordavi come si riconosceva un gump, devi usare la proprietà #ContName o #ContSize (qui è per le dimensioni del Gump, utilizzato soprattutto sui Gump chiamati mi sembra general_gump che sono diverse finestre con questo nome quindi dal nome sarebbe impossible riconoscerle)

    Qualcuno conosce il #ContName del gump di connection lost? o comunque il size? non mi va di simulrane uno con la connesione =P

    Lascia un commento:


  • Batista
    ha risposto
    Edito le linee, così nn ci sn prob.

    Per la linea 16 in effetti la avevo vista, ma non essendo premium la avevo anke signorilmente ignorata.....


    Lascia un commento:


  • Drael
    ha risposto
    codice:
    bodlines:
    ;******************************************************************
    ;******************************************************************
    ;gosub bod lines below this
    ;******************************************************************
    ;******************************************************************
    ;gosub bodcycle Account Char rail|recall { 0 1 2 ) [Shard] <------ Delete this line
    
    
    gosub bodcycle 1 2 rail_[COLOR="Red"]luna[/COLOR] 0
    gosub bodcycle 1 3 rail_[COLOR="Red"]luna[/COLOR] 0
    gosub bodcycle 1 4 rail_[COLOR="Red"]luna[/COLOR] 0
    gosub bodcycle 1 5 rail_[COLOR="Red"]luna[/COLOR] 0
    Vorrei ricordare che lo 0 finale significa:
    0 = Raccogli Bod Sarto
    1 = Raccogli Bod Smith
    2 = Raccogli Bod Smith e Sarto

    In oltre una cosa che vi consiglio:
    Se volete usare recall o sacred fate questa modifica:
    1) Andate fino alla riga 918
    2) Modificate:
    if #result = -1
    {
    Display Ok Cannot find rune, please check rune name$ halting script
    Halt
    }
    Con:
    if #result = -1
    {
    event sysmessage Cannot find rune, please check rune name$ halting script
    GoTo _recallLoop
    }
    Fatelo solo se siete sicuri di avere le 3 rune Smith Tailor e Inn nel backpack, capita a volte che al login ci metta un poco ad aprire il backpack quindi normalmente vi da errore che non riesce a trovare la runa e quindi lo script si blocchi, invece così continua all'infinito fino a che non la trova. Se volete potete aggiungere anche un Event Macro per aprire il backpack ma non credo vi serva.

    Poi per cancellare il Gump mi stupisco che nessuno di voi abbia visto questa linea 16:
    set %cancelRewards #false ; #true or #false, cancels AOS gift and vet reward gump

    se lo mettete su #True dovrebbe chiuderli, oppure ve ne siete accorti ma non va, (non credo =P)

    Poi per quella modifica del Connection Lost posso vedere cosa si puà fare, al massimo uno script da accoppiare, adesso provo

    EDIT: un altro consiglio che posso dare è quello di usare il launcher di UOD, con quello non ho mai crashato con questo script

    20min fa sono passato ad Umbra ed è troppo divertente vedere tipo 20 persone in fila che fanno il trenino fino al Tailor
    Ultima modifica di Drael; 22-02-2007, 18:52.

    Lascia un commento:

Sto operando...
X