Originariamente inviato da BaTiStA -O Animal-
annuncio
Comprimi
Ancora nessun annuncio.
[EASYUO] Bod Gather script di Raziel (modificato per i save)
Comprimi
X
-
Appena arriviamo a una versione buona e ben testata lo facciamo.
Lascia un commento:
-
ma nn potete riunire tutti sti script in uno e farlo completo? O_o
Lascia un commento:
-
Ci ho provato, ma non riesco a testarla, se volete provarci voi dovete cercare:
In seguito sostituite tutto questo:codice:sub rail
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 } if #scnt < !pathfindTimeOut goto _waitmove goto try_again next: } namespace pop return #true
Aggiungete anche all'inizio questa linea: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
codice:set %ProvaRailFallita 0
Lascia un commento:
-
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:
-
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:
-
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:
-
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:
-
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:
-
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:
Sostituite l'intera sub InfoMenu con questa:codice:Set %BODRitirati 0
Ora andate fino alla riga 745 e tra le due righe: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
Aggiungete:codice:namespace pop return #true
Quindi diventerà:codice:Set %BODRitirati %BODRitirati + 1
Ora fate partire lo script e godetevi questa nuova funzione, utile per tenere traccia del numero di bod che si hanno ottenuto.codice:namespace pop Set %BODRitirati %BODRitirati + 1 return #true
Alla prossima con una nuova modifica
Ultima modifica di Drael; 23-02-2007, 23:15.
Lascia un commento:
-
Che dire se non: Ottimo lavoro!!!
Ho aggiornato il primo post con i link alle tue aggiunte.
Lascia un commento:
-
Ecco uno script da mettere in play insieme al raziel: (EDIT: Mi ero dimenticato di aspettare almeno 15 minuti nello script, lo modifico subito)
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.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
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'aggiuntaUltima modifica di Drael; 23-02-2007, 00:14.
Lascia un commento:
-
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:
-
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:
-
Vorrei ricordare che lo 0 finale significa: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
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:
Con:if #result = -1
{
Display Ok Cannot find rune, please check rune name$ halting script
Halt
}
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.if #result = -1
{
event sysmessage Cannot find rune, please check rune name$ halting script
GoTo _recallLoop
}
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:

Lascia un commento: