Hell's Knights Guild

Set Script di EnD SoulBlade

« Older   Newer »
  Share  
QuelloKorKasaNtesta
view post Posted on 1/4/2013, 09:09




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
 
Top
0 replies since 1/4/2013, 09:09   22 views
  Share