codice:
;============================= ;Vash Healer v. 2.1 ;============================= ;>>>>TENETE SEMPRE APERTI ZAINO E STATUS BAR!!!<<<< ;Testato su emulatore di Ultima Online RunUO 1.0.1 (con settaggi bendata OSI) col client 5.0.0b ;Dovrebbe funzionare senz'altro anche coi client vecchi. ;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. ;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 1 ;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 ;========= linespercycle 20 mainloop: if #hits < #maxhits || C in #charstatus { GoSub CheckAids if #result = #true { GoSub CheckDex GoSub Apply if #result = #false goto mainloop GoSub Waitnew wait 2 } } wait 1 goto mainloop ;SUB CHECK AIDS ;============== Sub CheckAids finditem ZLF C_ , #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 #finstack 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 wait 1 goto _waitsysmsgloop ;SUB WAITNEW ;============ Sub WaitNew set %keypressed 0 set %end %euowait + %applystart set %limitcure %end - 16 waitloop: 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 F11 ; cambiatelo se necessario set %keypressed 1 } } if #SCNT2 >= %end || you_finish_applying in #sysmsg return goto waitloop
Commenta