Новый скрипт на использование вандов из пака. Ищет ванды в паке и подсумках, берет их 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
##################################################
Не перфекционист, да..
|