Vash Healer
-
Upload
lorenzo-vinci -
Category
Documents
-
view
215 -
download
0
Transcript of Vash Healer
-
8/12/2019 Vash Healer
1/7
;==========================================; Vash Healer 4.1;==========================================;; IMPORTANTE:; -----------; 1- Tenere sempre zaino e status aperti.; 2- Attivare il Targeting System con l'apposita macro client.; 3- Disattivare l'auto-accoda azioni di Razor.; 4- Compatibile oslo con RunUO 2.0 e shard OSI-Style.;; Ecco le features dello script:; ------------------------------; 1) Avverte se le bende stanno per finire, e se finiscono; sufficiente rifornirsi, senza doverlo riavviare.; 2) Controlla il journal per verificare che le bende siano; state correttamente applicate, altrimenti riprova.; 3) Mostra il tempo di bendata sulla testa del pg.; 4) Potete precastare magie, e finch c' il target fuori,; lo script non bender.; 5) Scarissima interferenza con i target delle spell.; 6) Non benda da hiddati, per non venire revelati.; 7) La bendata entrer in azione subito dopo un mortal strike in modo da finire,; se possibile, poco dopo la fine dell'effetto.
; 8) Auto cure e auto refresh.;; Fate il setup qui sotto, ricordando che vero #true e falso #false.
; SETUP; -----; Settando counter a true, avrete il contatore sopra la testa del pg.set %counter #true
; Volete il counter in decimi di secondo anzich in secondi,; come nel vecchio vash healer? Mettete #true qui:set %oldStyle #true
; Attenzione: col contatore oldstyle di rischia di crashare.
; La prossima variabile indica il limite di hp al di sotto dei quali curare.; Mettendo 5 ad esempio, se avete 100hp, bender solo al di sotto di 95hp.set %limit 5
; ANTIMORTAL; ----------; Se avete problemi con l'antimortal settato a 62, mettetelo a 64.; Pu essere utile in caso di pc vecchio, lag, ecc.set %antimortal 64
; POZIONI
; --------; Qui avete due variabili da settare #true o #false.; La prima far bere in automatico allo script le pozze cure.; La seconda berr in automatico pozze refresh.set %cure #trueset %refresh #true; Se avete settato l'auto-refresh, settate al di sotto di quale; valore della stamina necessario berle:set %stamina 30
-
8/12/2019 Vash Healer
2/7
; Sconsiglio vivamente queste opzioni su pg arciere, in quanto; potreste bere in automatico la pozza in un momento critico,; e non bello venire disarmati in momenti critici.
; Adesso, a seconda che utilizziate Razor o Injection e vogliate; usare l'autocure o l'autorefresh, dovete farvi due macro.; Una macro deve togliere scudo (o arma o libro) e bere la pozza cure,; l'altra deve bere la pozza refresh.; Dopodich scrivete il nome della macro o della sub qui:set %macroCure drinkCureset %macroRefresh drinkRefresh
; Qua sotto invece metti #true se utilizzi razor,; altrimenti se utilizzi injection metti #false.
set %razor #false
; OPTIONAL; --------; Qui si pu impostare i caratteri e il colore; del contatore. I caratteri vanno da 0 a 7, provateli.; I colori vanno da 0 a non so quanto. Esempio:; Font normale, colore grigio: font 3 color 0; Font grossa, colore viola: font 0 color 20
set %font 0set %color 20; Abbiamo finito il setup.;==========================================
;==========================================; Main Loop; ---------set #lpc 30set %mortal #false
if %cure{
if %razor set %cureCmd -Macro , #spc , %macroCure else set %cureCmd ,exec , #spc , %macroCure}
if %refresh{ if %razor set %refCmd -Macro , #spc , %macroRefresh else set %refCmd ,exec , #spc , %macroRefresh}
set %lastStamina #scnt
_mainloop:
if yes in #charghost{ wait 1s goto _mainloop}
-
8/12/2019 Vash Healer
3/7
if ( ( ( #hits < ( #maxhits - %limit ) ) || C in #charstatus ) && H notin #charstatus ){ set %hasRefresh #false set %hasCure #false
finditem NUF C_ , #backpackid if #findcnt > 0 set %hasCure #true
finditem ZUF C_ , #backpackid if #findcnt > 0 set %hasRefresh #true
GoSub CheckAids if #result = #true { if #targcurs = 1 GoSub WaitCurs 0
set %delay ( ( 11 - ( #dex / 20 ) ) * 10 )
GoSub Apply
if #result = #false goto _mainloop
GoSub Waitnew wait 1 }}
goSub CheckStaminasleep 10
goto _mainloop;==========================================
;==========================================; SUB WAITCURS; ------------; A questa sub si passano 1 o 2 argomenti.; Il primo pu essere 1 o 0. Sta ad indicare; il valore di #targcurs desiderato.; Il secondo, opzionale, indica un timeout in decimi; di secondo. In ogni caso, per evitare che rimanga; all'infinito, c' un timeout di base di 100 secondi.
Sub WaitCurs
if %0 = 2 set %waitTimeout #scnt2 + %2 else set %waitTimeout #scnt2 + 1000
while #targcurs %1 { if #scnt2 > %waitTimeout return #false
-
8/12/2019 Vash Healer
4/7
sleep 5 }if %1 = 0
wait 2 ; per non far fizzare il target appena lanciatoreturn #true;==========================================
;==========================================; SUB CHECKAIDS; -------------; Controlla che ci siano bende nello zaino.; Avverte se ne rimangono meno di 10.; Mette lo script in attesa quando finiscono.; Setta la variabile %aids.
Sub CheckAids
finditem ZLF CA_ , #BACKPACKID if #findstack = 0 { event ExMsg #charID 2 38 No bandages found! wait 3s
return #false }if #findstack < 10 && #findcnt < 2
event sysmessage ATTENZIONE! Ti rimangono solo #findstack bende!set %aids #findid
return #true;==========================================
;==========================================; SUB APPLY
; ---------; NOTA: serve la variabile %aids.; Questa sub benda il pg, facendo controlli; di sicurezza per verificare che le bende siano state; effettivamente applicate.
Sub Apply
_aidloop: if yes in #charghost return #falseset %startIndex #jindex
event macro 58 set %start #scnt2 wait 1 if you_begin_applying in #sysmsg return #trueGoSub WaitStartMsg 3
if #result 1 return #false
-
8/12/2019 Vash Healer
5/7
return #true;==========================================
;==========================================; SUB WAITSTARTMSG; ----------------; Attende il messaggio di bendata.; Vuole un argomento, il timeout in decimi di secondo.; Restituisce 1 se benda, 0 se non possibile bendare il pg,; e -1 se le bende non entrano in azione completamente.
Sub WaitStartMsg
set %sysTimeout #scnt2 + %1_waitsysmsgloop: if #jindex > %startIndex { set %startIndex %startIndex + 1 scanjournal %startIndex
if you_begin_applying in #journal return 1
if that_being in #journal return 0
goto _waitsysmsgloop }if #scnt2 < %sysTimeout
{ sleep 5 goto _waitsysmsgloop }return -1
;==========================================
;==========================================; SUB WAITNEW; ----------------Sub WaitNew
set %keypressed 0 set %end %delay + %start + 1 set %limitcure %end - 17 if %oldStyle set %oldremaining 140 else
set %oldremaining 14 wait 2
_waitloop: if %counter { if %oldStyle { set %remaining %end - #scnt2 if %remaining < ( %oldremaining - 2 )
-
8/12/2019 Vash Healer
6/7
{ event ExMsg #charID %font %color %remaining set %oldremaining %remaining } } else { set %remaining ( ( %end - #scnt2 ) / 10 ) + 1 if %remaining %oldremaining { event ExMsg #charID %font %color %remaining set %oldremaining %remaining } } }if D in #charstatus && %mortal = #false
{ set %mortal #true set %mortend #scnt2 + %antimortal
_mortloop: if ( ( %delay + #scnt2 ) > %mortend ) return
sleep 10 goto _mortloop }wait 1
if C in #charstatus && %cure = #true && %hasCure = #true && H notin #charstatu
s { if #scnt2 > %limitcure && %keypressed = 0 { msg $ wait 1
msg %cureCmd $ set %keypressed 1 } }goSub CheckStamina
if #scnt2 >= %end + 2 || you_finish_applying in #sysmsg || you_apply_the in #s
ysmsg || you_heal in #sysmsg || the_bleeding in #sysmsg || you_have_failed in #sysmsg { if %mortal set %mortal #false
return }goto _waitloop
return ; giusto per essere sicuri;==========================================
;==========================================
-
8/12/2019 Vash Healer
7/7
; SUB CHECKSTAMINA; ----------------Sub CheckStamina
if %refresh = #false || %hasRefresh = #false || H in #charstatus return
if ( #stamina < %stamina ) { if ( #scnt > ( %lastStamina + 3 ) ) { set %lastStamina #scnt msg $ wait 1 msg %refCmd $ } }return;==========================================