Новый скрипт на использование вандов из пака.
Ищет ванды в паке и подсумках, берет их serial-ы и сохраняет их в глобальные переменные wXXXID для последующего UseObject(wXXXID) из функций, забинденных на хоткеи.
Состоит из двух частей.
1. При коннекте к серверу первым делом надо запустить функцию sub wWand() (см. code 1)
Ищет ванды в паке и подсумках, берет их serial-ы и сохраняет их в глобальные переменные wXXXID
2. После этого можно юзать функции для вызова конкретных вандов. (см. code 2)
Code:
##################### использование wand #############################
## '1-wParID 2-wPFid 3-wGHID 4-wCureID 5=wInvID 6-wRevealID 7-wRclID 8-wMRefID 9-wWSid 10-wFFid
## '11-wMArrID 12-wRAid 13-wManaDRid 14-wMassDispID 15-wINVid 16-wPoisID 17-wTKinID 18-wTPortID 19-wDispFid
## '20-wPsFID 21-wWElID 22-wEElID 23-wFElid 24-wAElid 25-wDeamonID 26-wBladeID 27-wVortexID 28-wResurID
sub wWand()
; Использование wWand() - ищет ванды в паке и подсумках, берет их serial и сохраняет в глобальные переменные wXXXID для последующего UseObject(wXXXID) из функций, забинденных на хоткеи.
DIM WandType[4]
WandType[0] = "0x0DF5" ;
WandType[1] = "0x0DF3" ;
WandType[2] = "0x0DF4" ;
WandType[3] = "0x0DF2" ;
#------------- примеры имен вандов ----------------
;a Magic wand of Cure (8 charges)
;a Magic wand of Mana Drain (10 charges)
;a Magic wand of Reactive Armor (10 charges)
;a Magic wand of Flame Strike (8 charges)
;нужно сравнивать по имени и учитывать бы число зарядов. разряженные ванды не брать
var wCount=28, iw
dim UsefulWand [29] ;
UsefulWand [1]="a Magic wand of Paralyze" ; wParID
UsefulWand [2]="a Magic wand of Paralyze Field" ; wPFid
UsefulWand [3]="a Magic wand of Greater Heal" ; wGHid
UsefulWand [4]="a Magic wand of Cure" ; wCureID
UsefulWand [5]="a Magic wand of Invisibility" ; wInvID
UsefulWand [6]="a Magic wand of Reveal" ; wRevealID
UsefulWand [7]="a Magic wand of Recall" ;wRclID
UsefulWand [8]="a Magic wand of Magic Reflection" ;wMRefID
UsefulWand [9]="a Magic wand of Wall of Stone" ;wWSid
UsefulWand [10]="a Magic wand of Fire Field" ;wFFid
UsefulWand [11]="a Magic wand of Magic Arrow" ; wMArrID
UsefulWand [12]="a Magic wand of Reactive Armor" ;'wRAid
UsefulWand [13]="a Magic wand of Mana Drain" ;'wManaDRid
#'UsefulWand [14]="a Magic wand of Protection" ;# wProtID
UsefulWand [14]="a Magic wand of Mass Dispel" ; wMassDispID
#'UsefulWand [15]="a Magic wand of Fireball" ; # wFBid
UsefulWand [15]="a Magic wand of Invisibility" ; wINVid
UsefulWand [16]="a Magic wand of Poison" ; wPoisID
UsefulWand [17]="a Magic wand of Telekinesis" ; 'wTKinID
UsefulWand [18]="a Magic wand of Teleport" ; 'wTPortID
UsefulWand [19]="a Magic wand of Dispel Field" ;wDispFid
UsefulWand [20]="a Magic wand of Poison Field" ;wPsFid
; ванды элемов
UsefulWand[21] = "a Magic wand of Water Elemental";wWElID
UsefulWand[22] = "a Magic wand of Earth Elemental";wEElID
UsefulWand[23] = "a Magic wand of Fire Elemental";wFElid
UsefulWand[24] = "a Magic wand of Air Elemental";wAElid
UsefulWand[25] = "a Magic wand of Daemon";wDeamonID
UsefulWand[26]="a Magic wand of Blade Spirit" ;wBladeID
UsefulWand[27] = "a Magic wand of Energy Vortex";wVortexID
UsefulWand[28] = "a Magic wand of Resurrection";wResurID
; ищем заданный wand в паке и подсумках
var WNameRQ,WNameCurr, ti, TTov, si, zz,flFound, zzar, wserial
;PrintColor(str(wnum),"2999")
;PrintColor(UsefulWand[wnum],"2999")
; ищем ванды
for ti=0 to 3
; перебираем по типам вандов
Ttov=WandType[ti]
UO.FindType(Ttov,"-1", 2) ; находим wand в паке и подсумках
wait (10)
If UO.FindCount() > 0 then
repeat ; <<<<<<<<<<<<<<< цикл поиска вандов в паке и подсумках
uo.click ("finditem")
wait (100)
WNameCurr =UO.Journal(0)
zzar=instr(WNameCurr,"charges")
;PrintColor("Zaryad found="+str(zzar),clm)
PrintColor(WNameCurr,clb)
## Нашли какой-то ванд, пробегаем по массиву и ищем с каким именем он совпадет и смотрим в какую переменную из 27 запихать его ID
for iw=1 to wCount
WNameRQ=UsefulWand[iw]
zz=InStr(WNameCurr, "(")-1
WNameCurr=left(WNameCurr, zz) ; a Magic wand of Mana Drain (10 charges)
WNameRQ=left(WNameRQ,InStr(WNameRQ, "(")-1)
wait(20)
;PrintColor("1 "+WNameRQ+"<<",clr)
;PrintColor("2 "+WNameCurr+"<<",clm)
flFound=0
; if zz>-1 and zzar>-1 then
if WNameRQ==WNameCurr and zzar>-1 then
; имя совпадает и заряды есть
;PrintColor(WNameCurr,clm)
;PrintColor("Zaryad found="+str(zzar),0x0120)
wserial=uo.getserial("finditem")
wait(50)
;PrintColor("123 wserial="+(wserial),clb)
## 1-wParID 2-wPFID 3-wGHID 4-wCureID 5=wInvID 6-wRevealID 7-wRclID 8-wMRefID 9-wWSid 10-wFFid
## 11-wMArrID 12-wRAid 13-wManaDRid 14-wProtID 15-wFBid 16-wPoisID 17-wTKinID 18-wTPortID 19-wDispFid
## 20-wPsFID 21-wWElID 22-wEElID 23-wFElid 24-wAElid 25-wDeamonID 26-wBladeID 27-wVortexID
### Добавлены операторы continue; break; switch->case->end switch
;PrintColor("130 iw="+str(iw),clb)
switch iw
case 1 ;
UO.SetGlobal("wParID",wserial)
PrintColor("1 wParID="+UO.GetGlobal("wParID"),4)
case 2 ;
UO.SetGlobal("wPFID",wserial)
PrintColor("2 wPFID="+UO.GetGlobal("wPFID"),4)
case 3 ;
UO.SetGlobal("wGHID",wserial)
PrintColor("3 wGHID="+(wserial),4)
case 4 ;
UO.SetGlobal("wCureID",wserial)
PrintColor("4 wCureID="+(wserial),4)
case 5 ;
UO.SetGlobal("wInvID",wserial)
PrintColor("5 wInvID="+(wserial),4)
case 6 ;
UO.SetGlobal("wRevealID",wserial)
PrintColor("6 wRevealID="+(wserial),4)
case 7 ;
UO.SetGlobal("wRclID",wserial)
PrintColor("7 wRclID="+(wserial),4)
case 8 ;
UO.SetGlobal("wMRefID",wserial)
PrintColor("8 wMRefID="+(wserial),4)
case 9 ;
UO.SetGlobal("wWSiD",wserial)
PrintColor("9 wWSid="+(wserial),4)
case 10 ;
UO.SetGlobal("wFFiD",wserial)
PrintColor("10 wFFid="+(wserial),4)
case 11 ;
UO.SetGlobal("wMArrID",wserial)
PrintColor("11 wMArrID="+(wserial),4)
case 12 ;
UO.SetGlobal("wRAiD",wserial)
PrintColor("12 wRAid="+(wserial),4)
case 13 ;
UO.SetGlobal("wManaDRiD",wserial)
PrintColor("13 wManaDRid="+(wserial),4)
case 14 ;
UO.SetGlobal("wMassDispID",wserial)
PrintColor("14 wMassDispID="+(wserial),4)
case 15 ;
UO.SetGlobal("wINVid",wserial)
PrintColor("15 wINVid="+(wserial),4)
case 16 ;
UO.SetGlobal("wPoisID",wserial)
PrintColor("16 wPoisID="+(wserial),4)
case 17 ;
UO.SetGlobal("wTKinID",wserial)
PrintColor("17 wTKinID="+(wserial),4)
case 18 ;
UO.SetGlobal("wTPortID",wserial)
PrintColor("18 wTPortID="+(wserial),4)
case 19 ;
UO.SetGlobal("wDispFiD",wserial)
PrintColor("19 wDispFid="+(wserial),4)
case 20 ;
UO.SetGlobal("wPsFID",wserial)
PrintColor("20 wPsFID="+(wserial),4)
case 21 ;
UO.SetGlobal("wWElID",wserial)
PrintColor("21 wWElID="+(wserial),4)
case 22 ;
UO.SetGlobal("wEElID",wserial)
PrintColor("22 wEElID="+(wserial),4)
case 23 ;
UO.SetGlobal("wFEliD",wserial)
PrintColor("23 wFElid="+(wserial),4)
case 24 ;
UO.SetGlobal("wAEliD",wserial)
PrintColor("24 wAElid="+(wserial),4)
case 25 ;
UO.SetGlobal("wDeamonID",wserial)
PrintColor("25 wDeamonID="+(wserial),4)
case 26 ;
UO.SetGlobal("wBladeID",wserial)
PrintColor("26 wBladeID="+(wserial),4)
case 27 ;
UO.SetGlobal("wVortexID",wserial)
PrintColor("27 wVortexID="+(wserial),4)
case 28 ;
UO.SetGlobal("wResurID",wserial)
PrintColor("28 wResurID="+(wserial),4)
end switch
end if
next
uo.Ignore("finditem") ; ??????????????
UO.FindType(Ttov,"-1",2)
wait (20)
until not UO.FindCount() ; ; <<<<<<<<<<<<<<< or flFound==1
else
end if
;CheckLag()
next ; переходим к следующему типу Wandа
uo.IgnoreReset()
wait (100)
UO.Print("Finished...")
return flFound
end sub
Функции для юзания конкретных вандов
Code:
############# использование вандов #####################################
## '1-wParID 2-wPFid 3-wGHID 4-wCureID 5=wInvID 6-wRevealID 7-wRclID 8-wMRefID 9-wWSid 10-wFFid
## '11-wMArrID 12-wRAid 13-wManaDRid 14-wMassDispID 15-wINVid 16-wPoisID 17-wTKinID 18-wTPortID 19-wDispFid
## '20-wPsFID 21-wWElID 22-wEElID 23-wFElid 24-wAElid 25-wDeamonID 26-wBladeID 27-wVortexID 28-wResurID
############ 1
Sub wPar()
;wWand(1)
if UO.GetGlobal("wParID")=="N/A" then
PrintColor("wPar not found", clr)
else
UO.UseObject(UO.GetGlobal("wParID"))
end if
end sub
############ 2
Sub wPF()
UO.UseObject(UO.GetGlobal("wPFID"))
end sub
############ 3
Sub wGH()
UO.UseObject(UO.GetGlobal("wGHID"))
end sub
############ 4
Sub wCure()
UO.UseObject(UO.GetGlobal("wCureID"))
end sub
############ 5
Sub wInv()
if UO.GetGlobal("wInvID")=="N/A" then
PrintColor("wInvID N/A", clr)
else
UO.UseObject(UO.GetGlobal("wInvID"))
end if
end sub
############ 6
Sub wREV()
UO.UseObject(UO.GetGlobal("wRevealID"))
end sub
############ 7
Sub wRCL()
UO.UseObject(UO.GetGlobal("wRclID"))
end sub
############ 8
Sub wMRef()
UO.UseObject(UO.GetGlobal("wMRefID"))
end sub
############ 9
Sub wWS()
UO.UseObject(UO.GetGlobal("wWSid"))
end sub
############ 10
Sub wFF()
UO.UseObject(UO.GetGlobal("wFFid"))
end sub
############ 11
Sub wMarr()
UO.UseObject(UO.GetGlobal("wMArrID"))
end sub
############ 12
Sub wRA()
UO.UseObject(UO.GetGlobal("wRAid"))
end sub
############ 13
Sub wManaDR()
UO.UseObject(UO.GetGlobal("wManaDRid"))
end sub
############ 14
Sub wMassDisp()
UO.UseObject(UO.GetGlobal("wMassDispID"))
end sub
############ 15
Sub wINV1()
UO.UseObject(UO.GetGlobal("wINVid"))
end sub
## '11-wMArrID 12-wRAid 13-wManaDRid 14-wMassDispID 15-wINVid 16-wPoisID 17-wTKinID 18-wTPortID 19-wDispFid
## '20-wPsFID 21-wWElID 22-wEElID 23-wFElid 24-wAElid 25-wDeamonID 26-wBladeID 27-wVortexID 28-wResurID
############ 16
Sub wPs()
UO.UseObject(UO.GetGlobal("wPoisID"))
end sub
############ 17
Sub wTKin()
UO.UseObject(UO.GetGlobal("wTKinID"))
end sub
############ 18
Sub wTPort()
UO.UseObject(UO.GetGlobal("wTPortID"))
end sub
############ 19
Sub wDispF()
UO.UseObject(UO.GetGlobal("wDispFid"))
end sub
############ 20
Sub wPsF()
UO.UseObject(UO.GetGlobal("wPsFID"))
end sub
############ ;21 wPar wPF wGH wCure wInv wREV wRCL wMRef wWS wFF wPsF wWEl wDeamon wVortex wBlade
Sub wWEl()
UO.UseObject(UO.GetGlobal("wWElID"))
end sub
############; 22
Sub wEEl()
UO.UseObject(UO.GetGlobal("wEElID"))
end sub
############; 23
Sub wFireEl()
UO.UseObject(UO.GetGlobal("wFElid"))
end sub
############; 24
Sub wDeamon()
UO.UseObject(UO.GetGlobal("wAElid"))
end sub
############; 25
Sub wDeamon()
UO.UseObject(UO.GetGlobal("wDeamonID"))
end sub
############; 25
Sub wVortex()
UO.UseObject(UO.GetGlobal("wPFid"))
end sub
############; 26
Sub wBlade()
UO.UseObject(UO.GetGlobal("wBladeID"))
end sub
############; 27
Sub wVortex()
UO.UseObject(UO.GetGlobal("wVortexID"))
end sub
############; 28
Sub wResur()
UO.UseObject(UO.GetGlobal("wResurID"))
end sub
############
Sub wElem()
; UsefulWand[23] = 'a Magic wand of Water Elemental';
; UsefulWand[21] = 'a Magic wand of Earth Elemental';
; UsefulWand[22] = 'a Magic wand of Fire Elemental';
; UsefulWand[20] = 'a Magic wand of Air Elemental';
var i
for i=20 to 23
if wWand(i)==1 then
return
end if
next
end sub
##################################################
Не перфекционист, да..