| QuelloKorKasaNtesta |
| | Vash Healer modificato con pozza cure prima della bendata (per non farla saltare) per farla funzionare dovete avere una macro intitolata "pozzacure" con "doppio click item by tipe potion orange", senza settare alcun tasto CODICE ;========================================== ; 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 #true set %refresh #true ; Se avete settato l'auto-refresh, settate al di sotto di quale ; valore della stamina è necessario berle: set %stamina 2
; 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 pozzacure set %macroRefresh pozzaRefresh
; Qua sotto invece metti #true se utilizzi razor, ; altrimenti se utilizzi injection metti #false.
set %razor #true
; 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 0 set %color 20 ; Abbiamo finito il setup. ;==========================================
;========================================== ; Main Loop ; --------- set #lpc 25 set %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 }
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 CheckStamina sleep 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
sleep 5 }
if %1 = 0 wait 2 ; per non far fizzare il target appena lanciato
return #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 sysmessage #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 #false
set %startIndex #jindex event macro 58 set %start #scnt2 wait 1 if you_begin_applying in #sysmsg return #true
GoSub WaitStartMsg 3 if #result <> 1 return #false
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 ) { event sysmessage #charID %font %color %remaining set %oldremaining %remaining } } else { set %remaining ( ( %end - #scnt2 ) / 10 ) + 1 if %remaining <> %oldremaining { event sysmessage #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 #charstatus { 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 #sysmsg || 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 ;==========================================
;========================================== ; 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 ;========================================== Scoppia il pouch trappato e premendo la Q fai teleport sul tile piu' lontano da te CODICE ;================================== ; Script Name: Hanni's Teleport Pouch ; Author: Hanni[IRA] ; Version: 2.0 ; Alle cose che non vi servono mettere ; ; a inizio riga Es: ; Questa è una sub disattiva la vedete grigia ; onhotkey x ;tasto per fare teleport ; { ; gosub telescroll ; } ; =================================== set #lpc 2000 set %d 9 start: onhotkey q ;tasto per fare teleport { gosub Teleport }
onhotkey < ; wisp { gosub wisp }
onhotkey l ;tasto per muro dietro { gosub targetta }
scanjournal #jindex if You_cannot_move in #journal && #hits >= 75 && #jcolor = 946 { gosub pouch } if You_have_been_knocked in #journal || You_fall_off in #journal && #jcolor = 946 { gosub chiama deleteJournal } goto start
;sub ;=================
sub chiama msg $ msg -- #CHARNAME è a terra aiutatelo! $ event ExMsg #charID 3 85 Pronto a levare poison! goto start
Sub pouch finditem LKF C_ , #BACKPACKID set #LOBJECTID #FINDID event macro 17 0 sleep 600 deleteJournal goto start
;SUB ;=========================== sub targetta set #ltargetz #charposz set #LTARGETKIND 2 set #LTARGETTILE 0 if #chardir = 0 { set #LTARGETX #charposx set #LTARGETY #charposy + 1 } if #chardir = 1 { set #LTARGETX #charposx - 1 set #LTARGETY #charposy + 1 } if #chardir = 2 { set #LTARGETX #charposx - 1 set #LTARGETY #charposy } if #chardir = 3 { set #LTARGETX #charposx - 1 set #LTARGETY #charposy - 1 } if #chardir = 4 { set #LTARGETX #charposx set #LTARGETY #charposy - 1 } if #chardir = 5 { set #LTARGETX #charposx + 1 set #LTARGETY #charposy - 1 } if #chardir = 6 { set #LTARGETX #charposx + 1 set #LTARGETY #charposy } if #chardir = 7 { set #LTARGETX #charposx + 1 set #LTARGETY #charposy + 1 } event macro 22 0 goto start
sub wisp { if #mana < 10 { event ExMsg #charID 3 51 Non hai abbastanza mana return } else event macro 15 112 ; summon familiar wait 35 scanjournal 1 if The_spell_fizzles in #journal { deletejournal return } else set %Mpartenza #mana set %x #contposx + 34 set %y #contposy + 81 click %x %y dmc wait 1s finditem XI G_3 if #findcnt > 0 exevent popup #findid 1 set %Mfinale ( #mana - %Mpartenza ) event ExMsg #charID 3 85 Hai recuperato %Mfinale punti mana Hanni Powa
} deletejournal goto start
sub Teleport event macro 15 21 gosub waitforcurs 2200 set %x #CHARPOSX set %y #CHARPOSY set %z #CHARPOSZ if #CHARDIR = 0 1 ;N set %y %y - %d if #CHARDIR = 1 2 ;NE set %y %y - %d set %x %x + %d if #CHARDIR = 2 1 ;E set %x %x + %d if #CHARDIR = 3 2 ;SE set %x %x + %d set %y %y + %d if #CHARDIR = 4 1 ;S set %y %y + %d if #CHARDIR = 5 2 ;SW set %y %y + %d set %x %x - %d if #CHARDIR = 6 1 ;W set %x %x - %d if #CHARDIR = 7 2 ;WN set %x %x - %d set %y %y - %d set #ltargetx %x set #ltargety %y set #ltargetz %z set #ltargetkind 2 event macro 22 0 return
sub waitforcurs set %param 150 set %param2 %1 set %jindex2 #jindex + 1 set %waitforcursor #systime + %param set %finishwaitforcursor #systime + %param2 set %paralread #false while #systime < %finishwaitforcursor { set %nextjinedxend2 #jindex if %jindex2 <= %nextjinedxend2 { for %ji2 %jindex2 %nextjinedxend2 { scanjournal %ji2 if ( casting in #journal || You_cannot_move in #journal || disturbed IN #journal || recovered IN #journal || reagents IN #journal || mana IN #journal ) && : notin #journal { set %paralread #true break } } set %jindex2 %nextjinedxend2 + 1 } if #systime > %finishwaitforcursor || %paralread break if #targcurs = 1 && #systime >= %waitforcursor break sleep 10 } if %paralread return #false if #targcurs = 1 return #true return #false Beve la pozza heal quando avete pochi hp, nel caso vi state prendendo un instant-drop e non avete il tempo di ber la pozza voi CODICE loop:
if #hits < 30 {
finditem UUF C_ , #BACKPACKID && #findstack > 0 set #lobjectid #findid event macro 17 0 wait 12
}
if #charghost = yes halt
if C in #charStatus
if #stamina < 5 {
wait 12 finditem ZUF C_ , #BACKPACKID && #findstack > 0 set #lobjectid #findid event macro 17 0 wait 12
} goto loop Fa teleport appena vieni dismontato CODICE set #lpc 50 set %d 9 set %Journal #jindex
loop: if #jindex > %Journal { set %Journal %Journal + 1 scanjournal %Journal if ( you_have_been_knocked_of in #journal || you_fall_off_of_your_mount in #journal ) && #jcolor = 946 gosub teleport } goto loop
sub teleport event macro 15 21
{ target 30 set %x #CHARPOSX set %y #CHARPOSY set %z #CHARPOSZ if #CHARDIR = 0 ;N set %y %y - %d if #CHARDIR = 1 ;NE set %y %y - %d set %x %x + %d if #CHARDIR = 2 ;E set %x %x + %d if #CHARDIR = 3 ;SE set %x %x + %d set %y %y + %d if #CHARDIR = 4 ;S set %y %y + %d if #CHARDIR = 5 ;SW set %y %y + %d set %x %x - %d if #CHARDIR = 6 ;W set %x %x - %d if #CHARDIR = 7 ;WN set %x %x - %d set %y %y - %d set #ltargetx %x set #ltargety %y set #ltargetz %z set #ltargetkind 2 event macro 22 0 _telefarExit: set #LTARGETKIND %lkind set #ltargetid %ltarget set %Journal #jindex } return
| | |
| |
|