- ;=============================
- ;Vash Healer v. 2.6
- ;=============================
- ; >>>>TENETE SEMPRE APERTI STATUS BAR E BACKPACK!!!<<<<
- ; Da usare con RunUO 2.0 e shard OSI-Style.
- ; Se le bende finiscono o sono poche ti avverte.
- ; Ma basta rifornirsi senza dover riavviare lo script.
- ; Controlla il journal per verificare che le bende siano state correttamente applicate, altrimenti riprova.
- ; Ottimo calcolo della bendata in base alla dex, secondo le ultime modifiche OSI.
- ; Mostra una sorta di countdown sulla testa del pg, rappresentante i decimi di secondo mancanti alla fine della bendata.
- ; Nota importante: per evitare problemi vari, tra cui quello di magie che ti vengono addosso...
- ; ... lo script non benderŕ se il mirino č target. Quindi se rimane fuori il target, premete ESC per toglierlo..
- ; ... e lo script tornerŕ a bendare.
- ; Inoltre č fatto in modo da far finire la bendata un decimo di secondo dopo il mortal, se se ne riceve uno.
- ; Disattivare il target queue di razor per evitare di bendare i nemici.
- ;SETUP
- ;===========
- ;set %counter 1 per usare il contatore in decimi di secondo, set %counter 0 per non usarlo
- set %counter 1
- ;SPECIAL CURE
- ;=============
- ;E' anche possibile far funzionare lo script in modo che beva una pozione contro il veleno poco prima che finisca la bendata,
- ;in modo che sia impossibile farla fallire.
- ;Basta impostare su F11 una macro di Razor che beve la pozione cure (togliendo scudo ovviamente), e settare %cure a 1 anzichč 0.
- set %cure 0
- ;Se invece non volete usare automaticamente pozze cure, lasciate %cure a 0.
- ;Se non vi piace il tasto F11 potete cambiarlo in fondo allo script.
- ;Ma non mettete combinazioni di tasti come CTRL F11 perchč razor non li intercetta.
- ;Finisce qui il setup, modificate lo script sottostante solo se sapete scriptare o volete cambiare il tasto per razor.
- ;MAIN LOOP
- ;=========
- set #lpc 60
- set %mortal #true
- _mainloop:
- if ( ( ( #hits < ( #maxhits - 5 ) ) || C in #charstatus ) && H notin #charstatus )
- {
- GoSub CheckAids
- if #result = #true
- {
- set #ltargetkind 1
- if #targcurs = 1
- GoSub WaitCurs
- GoSub CheckDex
- GoSub Apply
- if #result = #false
- goto mainloop
- GoSub Waitnew
- wait 2
- }
- }
- onhotkey F8 ; il tasto della megaexplo
- {
- event sysmessage Pausa bendata
- wait 5s
- }
- sleep 10
- goto _mainloop
- ;SUB CHECK AIDS
- ;==============
- Sub CheckAids
- finditem ZLF CA_ , #BACKPACKID
- if #findstack = 0
- {
- event ExMsg #charID 3 0 No bandages found!
- wait 5s
- return #false
- }
- if #findstack < 10 && #findcnt < 2
- event sysmessage Attention, only #findstack aids remaining
- return #true
- ;SUB CHECK DEX
- ;==============
- Sub CheckDex
- set %delay 11 - ( #dex / 20 )
- set %euowait %delay * 10
- return
- ;SUB APPLY
- ;=========
- Sub Apply
- aidloop:
- finditem ZLF C_ , #BACKPACKID
- set #lobjectid #findid
- set %startscan #jindex
- event macro 17 0
- target 15
- if #targcurs = 0
- goto aidloop
- event macro 23 0
- GoSub WaitStartMsg 15
- if #result = #false
- goto aidloop
- if #result = 1
- return #false
- return
- ;SUB WAITSTARTMSG
- ;===============
- Sub WaitStartMsg
- set %start #scnt2
- set %start %start + %1
- _waitsysmsgloop:
- for %i %startscan #jindex
- {
- scanjournal %i
- if you_begin in #journal
- {
- set %applystart #scnt2
- return #true
- }
- if that_being in #journal
- return 1
- }
- if #scnt2 >= %start
- return #false
- set %startscan #jindex
- wait 1
- goto _waitsysmsgloop
- ;SUB WAITNEW
- ;============
- Sub WaitNew
- set %keypressed 0
- set %end %euowait + %applystart
- set %limitcure %end - 20
- waitloop:
- if D in #charstatus && %mortal = #false
- {
- set %mortal #true
- set %mortend #scnt2 + 64
- mortloop:
- if ( %euowait + #scnt2 ) > ( %mortend - 4 )
- return
- goto mortloop
- }
- if %counter = 1
- {
- set %remaining ( %end - #scnt2 )
- event ExMsg #charID 3 0 %remaining
- }
- wait 2
- if C in #charstatus && %cure = 1
- {
- if #scnt2 > %limitcure && %keypressed = 0
- {
- key F7 ; cambiatelo se necessario
- set %keypressed 1
- }
- }
- if #SCNT2 >= %end || you_finish_applying in #sysmsg
- {
- if %mortal
- set %mortal #false
- return
- }
- goto waitloop
- ;SUB WAITCURS
- ;=============
- Sub WaitCurs
- _cursloop:
- if #targcurs = 1
- goto _cursloop
- wait 1
- return