Yoko

All sides of Injection
It is currently 2024-04-19 07:41:57

All times are UTC+02:00




Post new topic  Reply to topic  [ 70 posts ]  Go to page Previous 1 2 3 4 Next
Author Message
 Post subject:
PostPosted: 2006-04-22 11:50:40 
Offline
Expert!
User avatar

Joined: 2004-08-11 23:56:17
Posts: 746
Location: The Citadel
Если нормально делать - то не тупит.


Top
   
 Post subject:
PostPosted: 2006-04-22 12:15:39 
Offline

Joined: 2006-04-18 14:34:42
Posts: 34
Location: Березники
немного доработал ... кучу глюков нашел ... теперь стабильнее работает ... ведеться доработка ... скоро будет убивать элемов и убегать домой еще безопаснее ...

Code:
#############################
##### Мининг версия 2.2 #####
#############################
sub maning()
var mx, my, mz, i, j, e, f, g
Uo.exec("set norbcheck 1") # нужно для рекола #
uo.exec("set norbcalc 1") # нужно для рекола #
e=1 # перменная местонахождения #
f=0 # перменная подсчета пустых тайлов #
# необходимо указать Runebook в Object - from target #
na4alo: # поехали #
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
UO.DeleteJournal()
for i = mx-4 to mx+4 # радиус окапывания по х #
for j = my-4 to my+4 # радиус окапывания по у #
tohide() # прячемся #
UO.Print("Mine in: "+str(mx-i)+" "+str(my-j))
# ниже убрать мессагу по которой вы нехотите переходить на следующий тайл #
# необходимо указать Shovel в Object - from target #
while not UO.InJournal("no ore here") and not UO.InJournal("location") and not UO.InJournal("far away") and not UO.InJournal("in rock") and not UO.InJournal("Ore") and not UO.InJournal("but fail")
UO.DeleteJournal()
if uo.waiting() then
uo.canceltarget()
endif
UO.Waittargettile("1341", str(i), str(j), str(mz))
UO.Useobject("Shovel") # необходимо указать Shovel в Object Types - from target #
while not UO.InJournal("You put") and not UO.InJournal("heavy") and not UO.InJournal("location") and not UO.InJournal("no ore") and not UO.InJournal("but fail") and not UO.InJournal("far away") and not UO.InJournal("in rock")
wait(500)
if uo.injournal("heavy") or uo.dead() then # вырыли элемента #
# ниже поменять на свою мелодию #
uo.playwav("d:\Games\Ultima Online 2D\element.wav")
Pause() # скрипт на паузе - убиваем элемента вручную, говорим 'GO' и копаем дальше #
goto na4alo
endif
# ниже записать всех своих знакомых киллеров =) #
if uo.injournal("man") or uo.injournal("revealed") or uo.injournal("LEXEY") or uo.injournal("REM") then # смотрим как ПК обломался и улыбаемся #
tut:
if uo.waiting() then
uo.canceltarget()
endif
uo.useobject('0x404E6B26') # пьем инвизку, лежат в паке, заменить на свой ID #
Save() # улетаем домой если ПК Вас раздетектил(при появлении записанных ПК), все выкладываем пополняем реги перемаркиваем руну, медитируем, прячемся и назад через установленное время () #
e=1 # устанавливаем начальное положение #
# ниже поменять на свою мелодию #
uo.playwav("d:\Games\Ultima Online 2D\pk.wav")
wait(180000) # стоко времени ждем дома у сейфа #
goto reccal
endif
wend
if uo.weight > 600 then # вес по которому летим домой по рунбуке #
goto end
endif
wend
###########################################################
##### Переход если 10 раз не найдена руда вокруг себя #####
###########################################################
if UO.InJournal("no ore here") then
f=f+1
endif
if f>10 then # 10 раз #
# ниже поменять на свою мелодию - это я так для себя сделал, необязательная мелодия #
uo.playwav("d:\Games\Ultima Online 2D\perehod.wav")
f=0 # обнуление переменной пустых тайлов #
g=0 # переменная перехода #
if e == 1 then
UO.Print("Go West 7 step.") # столько раз будем шагать на West #
repeat
g=g+1
GoW()
if uo.injournal('revealed') then # прячемся #
tohide()
endif
if uo.injournal('attack') or uo.injournal('Por') then # предохраняемся #
goto tut
endif
until g>6 # 6+1 стоко шагов #
UO.DeleteJournal()
e=2
goto na4alo
else
UO.Print("Go East 7 step.") # столько раз будем шагать на East #
repeat
g=g+1
GoE()
if uo.injournal('revealed') then
tohide()
endif
if uo.injournal('attack') or uo.injournal('Por') then
goto tut
endif
until g>6
UO.DeleteJournal()
e=1
goto na4alo
endif
endif
#########
UO.DeleteJournal()
next # переключатель цикла #
next # то же #
goto na4alo # и на 2 круг #
end:
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 21") # домой по рунбуку - в первом слоте руна к сейфу #
mx = UO.GetX("self")
my = UO.GetY("self")
wait(11000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto end # проверка на физл #
endif
e=1
loot() # выкладывает накопанное в сейф #
wait(3000)
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 94") # назад трудиться в шахте =), рунка в 8-м слоте рунбуки #
mx = UO.GetX("self")
my = UO.GetY("self")
wait(11000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal # проверка на физл #
endif
goto na4alo
end sub
##################################################
##### Переход на 1 клетку в направлении West #####
##################################################
sub GoW()
VAR walkwait=300
VAR x,y,dir=6
VAR key=36 ; Home key
x=UO.GetX()
y=UO.GetY()
while UO.GetDir()<>dir
UO.Press(key)
wait(walkwait)
if UO.GetDir()<>dir then
CheckLag()
endif
wend
UO.Press(key)
wait(walkwait)
if x==UO.GetX() and y==UO.GetY() then
CheckLag()
Endif
if UO.GetX()+1==x then
return -1
else
return 1
endif
end sub
##################################################
##### Переход на 1 клетку в направлении East #####
##################################################
sub GoE()
VAR walkwait=300
VAR x,y,dir=2
VAR key=34 ; PgDown
x=UO.GetX()
y=UO.GetY()
while UO.GetDir()<>dir
UO.Press(key)
wait(walkwait)
if UO.GetDir()<>dir then
CheckLag()
endif
wend
UO.Press(key)
wait(walkwait)
if x==UO.GetX() and y==UO.GetY() then
CheckLag()
endif
if UO.GetX()-1==x then
return -1
else
return 1
endif
end sub
#############################################################
##### Анти ПК: если Вас раздетектили - по рунке к сейфу #####
#############################################################
sub Save() # описано выше #
reccal:
UO.DeleteJournal()
if uo.waiting() then
uo.canceltarget()
endif
UO.FindType('0x1F14',-1,'my')
wait(200)
UO.Cast('Recall','finditem')
repeat
wait(500)
until uo.injournal("fizzles") or uo.injournal("Kal Ort Por")
wait(3000)
if uo.injournal("fizzles") then
goto reccal
endif
tohide()
loot()
wait(3000)
UO.DeleteJournal()
UO.FindType('0x1F14',-1,'my')
wait(200)
UO.Cast('Mark','finditem')
wait(5000)
Med:
repeat
UO.UseSkill('Meditation')
wait(5000)
until uo.injournal("peace") or uo.injournal("lose")
if UO.InJournal('You lose') then
UO.DeleteJournal()
goto Med
endif
fillreagents()
wait(3000)
tohide()
end sub
#########################################
##### Упаковка готового продукта =) #####
#########################################
sub loot() # складываем руду в сейф #
VAR a, Exit
if uo.waiting() then
uo.canceltarget()
endif
; '0x401731D2'
VAR UnloadCont='0x4000E3AA' # поменять на ID своего сейфа куда складываем руду, узнать его можно командой ',info' #
DIM Ore[5]
Ore[0]=0x19B9 # 4 и более руды #
Ore[1]=0x19B7 # 1 руда #
Ore[2]=0x19BA # 2 руды #
Ore[3]=0x19B8 # 3 руды #
UO.SetReceivingContainer(UnloadCont)
wait(500)
For a = 0 to 3
Exit=0
repeat
UO.FindType(Ore[a])
if UO.GetQuantity('finditem')>0 then
UO.Grab('0','finditem')
wait(1500)
else
Exit=1
endif
until Exit==1
next
UO.UnSetReceivingContainer()
end sub
###################################
##### Пауза - че хотим творим #####
###################################
sub Pause() # пауза для того чтобы расправиться с элементом - скоро будет автоматом убивать ... #
# пауза прекратиться когда вы скажете GO большими буквами строго! #
UO.DeleteJournal()
UO.Print("Script paused")
repeat
wait(3000)
until UO.InJournal('GO')
UO.Print("Script return")
endif
end sub
####################
##### Прячемся #####
####################
sub tohide()
while NOT UO.Hidden()
UO.DeleteJournal()
UO.FindType('0x0F0E','0x0631','my')
if UO.Life<UO.STR/2 and UO.GetQuantity('finditem')>0 then
UO.UseType('0x0F0E','0x0631') ; inviz potion
UO.Exec('warmode 0')
wait(2000)
else
UO.Exec('warmode 0')
UO.UseSkill('Hiding')
repeat
wait(50)
until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide') OR UO.InJournal('preoccupied')
endif
wend
end sub
#######################################
##### Пополнение всех регов до 20 #####
#######################################
sub fillreagents()
VAR StoreRegCont='0x40173275' # непосредственно сам пак с регами в сейфе #
VAR CharRegBag='backpack' # куда сложить реги себе #
VAR CountReg=20 # количество регов каждого типа #
VAR WaitTime=1500
VAR MainSafe='0x4000E3AA' # сейф где лежит пак с регами #
UO.FindType('0x09B0','0x0044','backpack')
if UO.GetQuantity('finditem')>0 then
CharRegBag='finditem'
endif
UO.UseObject(MainSafe)
UO.UseObject(StoreRegCont)
UO.SetReceivingContainer(CharRegBag)
wait(WaitTime)
if UO.BM<CountReg then
UO.FindType('0x0F7B','-1',StoreRegCont) ; BM
UO.Grab(STR((CountReg-UO.BM)),'finditem')
wait(WaitTime)
endif
if UO.BP<CountReg then
UO.FindType('0x0F7A','-1',StoreRegCont) ; BP
UO.Grab(STR(CountReg-UO.BP),'finditem')
wait(WaitTime)
endif
if UO.GA<CountReg then
UO.FindType('0x0F84','-1',StoreRegCont) ; GA
UO.Grab(STR(CountReg-UO.GA),'finditem')
wait(WaitTime)
endif
if UO.GS<CountReg then
UO.FindType('0x0F85','-1',StoreRegCont) ; GS
UO.Grab(STR(CountReg-UO.GS),'finditem')
wait(WaitTime)
endif
if UO.MR<CountReg then
UO.FindType('0x0F86','-1',StoreRegCont) ; MR
UO.Grab(STR(CountReg-UO.MR),'finditem')
wait(WaitTime)
endif
if UO.NS<CountReg then
UO.FindType('0x0F88','-1',StoreRegCont) ; NS
UO.Grab(STR(CountReg-UO.NS),'finditem')
wait(WaitTime)
endif
if UO.SA<CountReg then
UO.FindType('0x0F8C','-1',StoreRegCont) ; SA
UO.Grab(STR(CountReg-UO.SA),'finditem')
wait(WaitTime)
endif
if UO.SS<CountReg then
UO.FindType('0x0F8D','-1',StoreRegCont) ; SS
UO.Grab(STR(CountReg-UO.SS),'finditem')
endif
UO.UnsetReceivingContainer()
end sub
###########################
##### Проверка на лаг #####
###########################
sub CheckLag()
UO.DeleteJournal()
UO.Click('backpack')
repeat
wait(500)
until UO.InJournal('backpack')
end sub
#########################


Приятного копания.

З.Ы. в командной строке где вы набираете сообщения должно быть пусто!

_________________
My Game is Ultima online on DRW!


Top
   
 Post subject:
PostPosted: 2006-04-22 13:07:56 
Offline
Expert!
User avatar

Joined: 2004-08-11 23:56:17
Posts: 746
Location: The Citadel
Почитай уроки Едреда, сократишь скрипт минимум в 2 раза, и сделаешь намного более функциональным. Юзать инвизки по айди - полный изврат.
Так же советую посмотреть чужие майнинги.


Top
   
 Post subject:
PostPosted: 2006-04-23 12:38:43 
Offline

Joined: 2006-04-18 14:34:42
Posts: 34
Location: Березники
ведутся последние тесты ... скоро выложу финальную весию ... с убийством элемов и безопасным уходом от ПК

_________________
My Game is Ultima online on DRW!


Top
   
 Post subject:
PostPosted: 2006-04-23 23:58:03 
Offline

Joined: 2006-04-18 14:34:42
Posts: 34
Location: Березники
еще тестю .... вот парю со сканером ПК ... мож кто подкорректирует чтоб он реагировал на красный и синий цвет в журнале???

Code:
#############################
##### Ìèíèíã âåðñèÿ 2.5 #####
#############################
sub maning()
var mx, my, mz, i, j, e, f, g, t, Exit1, a
Uo.exec("set norbcheck 1") # íóæíî äëÿ ðåêîëà #
uo.exec("set norbcalc 1") # íóæíî äëÿ ðåêîëà #
e=1 # ïåðìåííàÿ ìåñòîíàõîæäåíèÿ #
f=0 # ïåðìåííàÿ ïîäñ÷åòà ïóñòûõ òàéëîâ #
# íåîáõîäèìî óêàçàòü Runebook â Object - from target #
na4alo: # ïîåõàëè #
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
UO.DeleteJournal()
for i = mx-4 to mx+4 # ðàäèóñ îêàïûâàíèÿ ïî õ #
for j = my-4 to my+4 # ðàäèóñ îêàïûâàíèÿ ïî ó #
tohide() # ïðÿ÷åìñÿ #
UO.Print("Mine in: "+str(mx-i)+" "+str(my-j))
# íèæå óáðàòü ìåññàãó ïî êîòîðîé âû íåõîòèòå ïåðåõîäèòü íà ñëåäóþùèé òàéë #
# íåîáõîäèìî óêàçàòü Shovel â Object - from target #
while not UO.InJournal("no ore here") and not UO.InJournal("location") and not UO.InJournal("far away") and not UO.InJournal("in rock") and not UO.InJournal("Ore") and not UO.InJournal("Elvin") and not UO.InJournal("You put")
UO.DeleteJournal()
if uo.waiting() then
uo.canceltarget()
endif
UO.Waittargettile("1341", str(i), str(j), str(mz))
UO.Useobject("Shovel") # íåîáõîäèìî óêàçàòü Shovel â Object Types - from target #
while not UO.InJournal("You put") and not UO.InJournal("heavy") and not UO.InJournal("location") and not UO.InJournal("no ore") and not UO.InJournal("but fail") and not UO.InJournal("far away") and not UO.InJournal("in rock")
wait(500)
if uo.injournal("heavy") then # âûðûëè ýëåìåíòà #
# íèæå ïîìåíÿòü íà ñâîþ ìåëîäèþ #
uo.playwav("d:\Games\Ultima Online 2D\element.wav")
# óáèâàåì ýëåìåíòà, ñîáèðàåì ðóäó è êîïàåì äàëüøå #
Vortex:
uo.exec('usetype 0x0f0e 0x0631')
uo.cast('Energy Vortex','self')
wait(4000)
CheckLag()
if uo.injournal("fizzles") or uo.injournal("line") then
goto Vortex
else
wait(10000)
CheckLag()
istka:
uo.exec('usetype 0x0f0e 0x09DF') # ïüåì ìàíêó #
uo.cast('Mass Dispel','self')
wait(4000)
CheckLag()
if uo.injournal("fizzles") then
goto istka
endif
DIM Ore[5]
Ore[0]=0x19B9 # 4 è áîëåå ðóäû #
Ore[1]=0x19B7 # 1 ðóäà #
Ore[2]=0x19BA # 2 ðóäû #
Ore[3]=0x19B8 # 3 ðóäû #
UO.SetReceivingContainer('backpack')
wait(500)
For t=0 to 3
Exit1=0
repeat
UO.FindType(Ore[a],'ground')
if UO.GetQuantity('finditem')>0 then
UO.Grab('0','finditem')
wait(1500)
else
Exit1=1
endif
until Exit1==1
next
UO.UnSetReceivingContainer()
endif
goto na4alo
endif
# íèæå çàïèñàòü âñåõ ñâîèõ çíàêîìûõ êèëëåðîâ =) #
Scaner()
if uo.injournal("[DN]") or uo.injournal("Bloodman") or uo.injournal("Tangar") or uo.injournal("BilaZ") or uo.injournal("TiamaT") or uo.injournal("man") or uo.injournal("revealed") or uo.injournal("LEXEY") or uo.injournal("REM") then # ñìîòðèì êàê ÏÊ îáëîìàëñÿ è óëûáàåìñÿ #
tut:
if uo.waiting() then
uo.canceltarget()
endif
uo.exec('usetype 0x0f0e 0x0631') # ïüåì èíâèçêó, ëåæàò â ïàêå #
Save() # óëåòàåì äîìîé åñëè ÏÊ Âàñ ðàçäåòåêòèë(ïðè ïîÿâëåíèè çàïèñàííûõ ÏÊ), âñå âûêëàäûâàåì ïîïîëíÿåì ðåãè ïåðåìàðêèâàåì ðóíó, ìåäèòèðóåì, ïðÿ÷åìñÿ è íàçàä ÷åðåç óñòàíîâëåííîå âðåìÿ () #
e=1 # óñòàíàâëèâàåì íà÷àëüíîå ïîëîæåíèå #
# íèæå ïîìåíÿòü íà ñâîþ ìåëîäèþ #
uo.playwav("d:\Games\Ultima Online 2D\pk.wav")
wait(180000) # ñòîêî âðåìåíè æäåì äîìà ó ñåéôà #
goto reccal
endif
wend
if uo.weight > 600 then # âåñ ïî êîòîðîìó ëåòèì äîìîé ïî ðóíáóêå #
goto end
endif
wend
###########################################################
##### Ïåðåõîä åñëè 20 ðàç íå íàéäåíà ðóäà âîêðóã ñåáÿ #####
###########################################################
if UO.InJournal("no ore here") then
f=f+1
endif
if f>20 then # 20 ðàç #
# íèæå ïîìåíÿòü íà ñâîþ ìåëîäèþ - ýòî ÿ òàê äëÿ ñåáÿ ñäåëàë, íåîáÿçàòåëüíàÿ ìåëîäèÿ #
uo.playwav("d:\Games\Ultima Online 2D\perehod.wav")
f=0 # îáíóëåíèå ïåðåìåííîé ïóñòûõ òàéëîâ #
g=0 # ïåðåìåííàÿ ïåðåõîäà #
if e == 1 then
UO.Print("Go West 7 step.") # ñòîëüêî ðàç áóäåì øàãàòü íà West #
repeat
g=g+1
GoW()
if uo.injournal('revealed') then # ïðÿ÷åìñÿ #
tohide()
endif
if uo.injournal("[DN]") or uo.injournal("Bloodman") or uo.injournal("Tangar") or uo.injournal("BilaZ") or uo.injournal("TiamaT") or uo.injournal("man") or uo.injournal("LEXEY") or uo.injournal("REM") then  # ïðåäîõðàíÿåìñÿ #
goto tut
endif
until g>6 # 6+1 ñòîêî øàãîâ #
UO.DeleteJournal()
e=2
goto na4alo
else
UO.Print("Go East 7 step.") # ñòîëüêî ðàç áóäåì øàãàòü íà East #
repeat
g=g+1
GoE()
if uo.injournal('revealed') then
tohide()
endif
if uo.injournal("[DN]") or uo.injournal("Bloodman") or uo.injournal("Tangar") or uo.injournal("BilaZ") or uo.injournal("TiamaT") or uo.injournal("man") or uo.injournal("LEXEY") or uo.injournal("REM") then 
goto tut
endif
until g>6
UO.DeleteJournal()
e=1
goto na4alo
endif
endif
#########
UO.DeleteJournal()
next # ïåðåêëþ÷àòåëü öèêëà #
next # òî æå #
goto na4alo # è ïî êðóãó ïîêà íå íàéäåì 20 ïóñòûõ òàéëîâ #
end:
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 21") # äîìîé ïî ðóíáóêó - â ïåðâîì ñëîòå ðóíà ê ñåéôó #
mx = UO.GetX("self")
my = UO.GetY("self")
wait(11000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto end # ïðîâåðêà íà ôèçë #
endif
e=1
loot() # âûêëàäûâàåò íàêîïàííîå â ñåéô #
wait(3000)
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 94") # íàçàä òðóäèòüñÿ â øàõòå =), ðóíêà â 8-ì ñëîòå ðóíáóêè #
mx = UO.GetX("self")
my = UO.GetY("self")
wait(11000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal # ïðîâåðêà íà ôèçë #
endif
goto na4alo
end sub
##################################################
##### Ïåðåõîä íà 1 êëåòêó â íàïðàâëåíèè West #####
##################################################
sub GoW()
VAR walkwait=300
VAR x,y,dir=6
VAR key=36 ; Home key
x=UO.GetX()
y=UO.GetY()
while UO.GetDir()<>dir
UO.Press(key)
wait(walkwait)
if UO.GetDir()<>dir then
CheckLag()
endif
wend
UO.Press(key)
wait(walkwait)
if x==UO.GetX() and y==UO.GetY() then
CheckLag()
Endif
if UO.GetX()+1==x then
return -1
else
return 1
endif
end sub
##################################################
##### Ïåðåõîä íà 1 êëåòêó â íàïðàâëåíèè East #####
##################################################
sub GoE()
VAR walkwait=300
VAR x,y,dir=2
VAR key=34 ; PgDown
x=UO.GetX()
y=UO.GetY()
while UO.GetDir()<>dir
UO.Press(key)
wait(walkwait)
if UO.GetDir()<>dir then
CheckLag()
endif
wend
UO.Press(key)
wait(walkwait)
if x==UO.GetX() and y==UO.GetY() then
CheckLag()
endif
if UO.GetX()-1==x then
return -1
else
return 1
endif
end sub
#############################################################
##### Àíòè ÏÊ: åñëè Âàñ ðàçäåòåêòèëè - ïî ðóíêå ê ñåéôó #####
#############################################################
sub Save() # îïèñàíî âûøå #
reccal:
UO.DeleteJournal()
if uo.waiting() then
uo.canceltarget()
endif
UO.FindType('0x1F14',-1,'my')
wait(200)
UO.Cast('Recall','finditem')
repeat
wait(500)
until uo.injournal("fizzles") or uo.injournal("Kal Ort Por")
wait(3000)
if uo.injournal("fizzles") then
goto reccal
endif
tohide()
loot()
wait(3000)
UO.DeleteJournal()
UO.FindType('0x1F14',-1,'my')
wait(200)
UO.Cast('Mark','finditem')
wait(5000)
uo.exec('usetype 0x0f0e 0x09DF') # Ïüåì ìàíêó #
Med:
repeat
UO.UseSkill('Meditation')
wait(5000)
until uo.injournal("peace") or uo.injournal("lose")
if UO.InJournal('You lose') then
UO.DeleteJournal()
goto Med
endif
fillreagents()
wait(3000)
tohide()
end sub
#########################################
##### Óïàêîâêà ãîòîâîãî ïðîäóêòà =) #####
#########################################
sub loot() # ñêëàäûâàåì ðóäó â ñåéô #
VAR a, Exit
if uo.waiting() then
uo.canceltarget()
endif
VAR UnloadCont='0x4000E3AA' # ïîìåíÿòü íà ID ñâîåãî ñåéôà êóäà ñêëàäûâàåì ðóäó, óçíàòü åãî ìîæíî êîìàíäîé ',info' #
DIM Ore[5]
Ore[0]=0x19B9 # 4 è áîëåå ðóäû #
Ore[1]=0x19B7 # 1 ðóäà #
Ore[2]=0x19BA # 2 ðóäû #
Ore[3]=0x19B8 # 3 ðóäû #
UO.SetReceivingContainer(UnloadCont)
wait(500)
For a = 0 to 3
Exit=0
repeat
UO.FindType(Ore[a])
if UO.GetQuantity('finditem')>0 then
UO.Grab('0','finditem')
wait(1500)
else
Exit=1
endif
until Exit==1
next
UO.UnSetReceivingContainer()
end sub
####################
##### Ïðÿ÷åìñÿ #####
####################
sub tohide()
while NOT UO.Hidden()
UO.DeleteJournal()
UO.Exec('warmode 0')
UO.UseSkill('Stealth')
repeat
wait(300)
until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide') OR UO.InJournal('preoccupied')
wend
end sub
##############################################
##### Ïîïîëíåíèå âñåõ íóæíûõ ðåãîâ äî 10 #####
##############################################
sub fillreagents()
VAR StoreRegCont='0x40173275' # íåïîñðåäñòâåííî ñàì ïàê ñ ðåãàìè â ñåéôå #
VAR CharRegBag='backpack' # êóäà ñëîæèòü ðåãè ñåáå #
VAR CountReg=10 # êîëè÷åñòâî ðåãîâ êàæäîãî òèïà #
VAR WaitTime=1500
VAR MainSafe='0x4000E3AA' # ñåéô ãäå ëåæèò ïàê ñ ðåãàìè #
UO.FindType('0x09B0','0x0044','backpack')
if UO.GetQuantity('finditem')>0 then
CharRegBag='finditem'
endif
UO.UseObject(MainSafe)
UO.UseObject(StoreRegCont)
UO.SetReceivingContainer(CharRegBag)
wait(WaitTime)
if UO.BM<CountReg then
UO.FindType('0x0F7B','-1',StoreRegCont) ; BM
UO.Grab(STR((CountReg-UO.BM)),'finditem')
wait(WaitTime)
endif
if UO.BP<CountReg then
UO.FindType('0x0F7A','-1',StoreRegCont) ; BP
UO.Grab(STR(CountReg-UO.BP),'finditem')
wait(WaitTime)
endif
if UO.GA<CountReg then
UO.FindType('0x0F84','-1',StoreRegCont) ; GA
UO.Grab(STR(CountReg-UO.GA),'finditem')
wait(WaitTime)
endif
if UO.MR<CountReg then
UO.FindType('0x0F86','-1',StoreRegCont) ; MR
UO.Grab(STR(CountReg-UO.MR),'finditem')
wait(WaitTime)
endif
if UO.NS<CountReg then
UO.FindType('0x0F88','-1',StoreRegCont) ; NS
UO.Grab(STR(CountReg-UO.NS),'finditem')
wait(WaitTime)
endif
if UO.SA<CountReg then
UO.FindType('0x0F8C','-1',StoreRegCont) ; SA
UO.Grab(STR(CountReg-UO.SA),'finditem')
wait(WaitTime)
endif
UO.UnsetReceivingContainer()
end sub
###########################
##### Ïðîâåðêà íà ëàã #####
###########################
sub CheckLag()
UO.DeleteJournal()
UO.Click('backpack')
repeat
wait(500)
until UO.InJournal('backpack')
end sub
###############################
##### Ìîäóëü ñêàíèðîâàíèÿ #####
###############################
Sub Scaner()
var jor, ser, noto
uo.ignore('self')
for jor = 0 to 9   
ser = uo.journalserial(jor)
noto = uo.getnotoriety(ser)
if noto <> 1 and noto <> 0 and not uo.injournal("elemental") and not uo.injournal("You loosen") then
uo.print("!!!ALARM!!!")
endif
next
endsub
###############################


тесты продолжаються

З.Ы. В сканере спец так все сделано чтоб не влиял на основной скрипт я просто пока слежу че он делает и работает ли он воще.
..... and not uo.injournal("You loosen") ... - это добавил так как он реагирует на это сообщение как на то, что, что то сосканировал .... вот ...

_________________
My Game is Ultima online on DRW!


Top
   
 Post subject:
PostPosted: 2006-04-24 00:57:18 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
При посте скриптов всегда контролируй, в какой кодировке ты их кидаешь. Ни у кого нет желания ковыряться в твоих иероглифах...


Top
   
 Post subject:
PostPosted: 2006-04-26 16:15:36 
Offline

Joined: 2006-04-18 14:34:42
Posts: 34
Location: Березники
непойму почему у вас йероглифы .... у меня нормальные буквы ....
по прежнему немогу решить вопрос с определением появившегося чара на экране или в журнале ... просьба помочь ... стоко всего перепробовал ниче не помогает ... кроме конкретных надписей журнала .... Edred ... думаю ты можешь помочь ... непойму почему у меня не работает сканер по определению цвета в журнале ...

_________________
My Game is Ultima online on DRW!


Top
   
 Post subject:
PostPosted: 2006-04-26 17:13:58 
Offline
Expert!
User avatar

Joined: 2004-08-11 23:56:17
Posts: 746
Location: The Citadel
А у тебя ТВИ включен?


Top
   
 Post subject:
PostPosted: 2006-04-26 17:23:39 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
Code:
while true
   for i=0 to 10
      type = uo.getGraphic(uo.journalSerial(i))
      if type = "чувак" || type = "баба" then
         uo.print("Кто-та пришёл")
         uo.setjournalline(i,"")
      endif
   next
   wait(200)
wend


Что-то такое не пашет?..


Top
   
 Post subject:
PostPosted: 2006-04-27 13:49:03 
Offline

Joined: 2006-04-18 14:34:42
Posts: 34
Location: Березники
Quote:
А у тебя ТВИ включен?

Не в курсе, так как не знаю что это?

Quote:
Код:
while true
for i=0 to 10
type = uo.getGraphic(uo.journalSerial(i))
if type = "чувак" || type = "баба" then
uo.print("Кто-та пришёл")
uo.setjournalline(i,"")
endif
next
wait(200)
wend


Что-то такое не пашет?..

именно такое не пробовал но похожее да не работает

_________________
My Game is Ultima online on DRW!


Top
   
 Post subject:
PostPosted: 2006-04-27 14:32:27 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Включи Track World Items (ТВИ)


Top
   
 Post subject:
PostPosted: 2006-04-29 09:46:01 
Offline

Joined: 2006-04-18 14:34:42
Posts: 34
Location: Березники
Code:
Sub Scaner()
var jor, noto, ser
for jor = 0 to 9   
ser = uo.journalserial(jor)
noto = uo.getnotoriety(ser)
if noto <> 1 and noto <> 0 and not uo.injournal("heavy") then
uo.print("!Alarm!")
endif
next   
end sub


как я понимаю, этот скрипт будет писать !Alarm! при появлении Красного(ПК) чара, но при появлении синего чара ничего не будет делать, что нужно поправить, чтобы он писал !Alarm! при появлении любого чара на экране (синего, красного, серого)?

Заранее спасибо.

_________________
My Game is Ultima online on DRW!


Top
   
 Post subject:
PostPosted: 2006-04-29 10:47:23 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Этот скрипт будет кричать alarm только если появится не синий игрок и скажет тебе "Привет!" (или что-то другое). Если же он молча подойдет и начнет мочить твоего чара, никакого аларма тебе не будет.

Если же тебя этот скрипт устраивает и надо лишь убрать ноториети, то:

Code:
Sub Scaner() 
var jor, ser
for jor = 0 to 9   
ser = uo.journalserial(jor)
if not uo.injournal("heavy") then
uo.print("!Alarm!")
endif
next   
end sub


Top
   
 Post subject:
PostPosted: 2006-05-02 07:30:20 
Offline

Joined: 2006-04-18 14:34:42
Posts: 34
Location: Березники
удалено =)

_________________
My Game is Ultima online on DRW!


Last edited by Lesnik on 2006-05-02 07:38:17, edited 1 time in total.

Top
   
 Post subject:
PostPosted: 2006-05-02 07:32:51 
Offline

Joined: 2006-04-18 14:34:42
Posts: 34
Location: Березники
в общем совсем я запутался ...

Ситуация такая: мининг работает, все копает как надо, по 1 руде с клетки, при физле продолжает рыть в том же месте, убивает элемов, улетает по рунбуке домой, выкладывает руду, берет нужные реги, манки, инвизки, НО НО НО ... все еще не могу довести до ума рекол по рунке от ... !!! ... ПОВИВШЕЙСЯ В ЖУРНАЛЕ НАДПИСИ ... You see: ... кто бы то ни был, кроме элема, и кроме расхайда, т.к. иногда при неудачной копке бывают вылеты из хайда! ... т.е. как только в журнале возникает надпись что я кого то вижу ... сразу же реколл по рунке домой ... ну там дальше работает ... с определением проблемы! ... ПЛЗ ХЕЛП!

Заранее спасибо!
Вот скрипт:

Code:
#############################
##### Мининг версия 2.6 #####
#############################
sub maning()
var mx, my, mz, i, j, e, f, g, t, Exit1, a
UO.Exec("set norbcheck 1") # нужно для рекола #
UO.Exec("set norbcalc 1") # нужно для рекола #
e=1 # перменная местонахождения #
f=0 # перменная подсчета пустых тайлов #
# необходимо указать Runeboock в Object - from target #
UO.DeleteJournal()
na4alo: # поехали #
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
For i = mx-4 to mx+4 # радиус окапывания по х #
   For j = my-4 to my+4 # радиус окапывания по у #
      tohide() # прячемся #
      UO.Print("Mine in: "+str(mx-i)+" "+str(my-j))
while not UO.InJournal("You put") and not UO.InJournal("heavy") and not UO.InJournal("location") and not UO.InJournal("no ore") and not UO.InJournal("far away") and not UO.InJournal("in rock")
      UO.DeleteJournal()
      if uo.waiting() then
         uo.canceltarget()
      endif
      UO.Waittargettile("1341", str(i), str(j), str(mz))
      UO.Useobject("Shovel") # необходимо указать Shovel в Object - from target #
while not UO.InJournal("You put") and not UO.InJournal("heavy") and not UO.InJournal("location") and not UO.InJournal("no ore") and not UO.InJournal("but fail") and not UO.InJournal("far away") and not UO.InJournal("in rock")
   if uo.injournal("heavy") then # вырыли элемента #
      # ниже поменять на свою мелодию #
      uo.playwav("d:\Games\Ultima Online 2D\element.wav")
      # убиваем элемента, собираем руду и копаем дальше #
      Vortex:
      uo.exec('usetype 0x0f0e 0x0631') # пьем инвизку, а то энергетик порвет =) #
      wait(300)
      uo.cast('Energy Vortex','self')
      repeat
         wait(300)
      until uo.injournal("fizzles") or uo.injournal("Vortex")
      if uo.injournal("fizzles") then
         goto Vortex
      else
         cheklag()
         wait(15000)
         istka:
         uo.exec('usetype 0x0f0e 0x09DF') # пьем манку #
         wait(500)
         uo.cast('Mass Dispel','self')
         cheklag()
         wait(5000)
         if uo.injournal("fizzles") then
            goto istka
         endif
         UO.SetReceivingContainer('backpack')
         UO.FindType('0x19B9',-1,'ground')
         if UO.GetQuantity('finditem')>0 then
            UO.Grab('0','finditem')
            wait(2000)
         endif
         UO.FindType('0x19B7',-1,'ground')
         if UO.GetQuantity('finditem')>0 then
            UO.Grab('0','finditem')
            wait(2000)
         endif
         UO.FindType('0x19BA',-1,'ground')
         if UO.GetQuantity('finditem')>0 then
            UO.Grab('0','finditem')
            wait(2000)
         endif
         UO.FindType('0x19B8',-1,'ground')
         if UO.GetQuantity('finditem')>0 then
            UO.Grab('0','finditem')
            wait(2000)
         endif
         UO.UnSetReceivingContainer()
      endif
      goto reccal
   endif
   # ниже записать всех своих знакомых киллеров =) #
   Scaner()
   if uo.injournal("[nCuXu]") or uo.injournal("Quas") or uo.injournal("Valkirye") or uo.injournal("[DN]") or uo.injournal("Bloodman") or uo.injournal("Tangar") or uo.injournal("BilaZ") or uo.injournal("TiamaT") or uo.injournal("man") or uo.injournal("revealed") or uo.injournal("LEXEY") or uo.injournal("REM") then # смотрим как ПК обломался и улыбаемся #
      tut:
      # ниже поменять на свою мелодию #
      uo.playwav("d:\Games\Ultima Online 2D\pk.wav")
      if uo.waiting() then
         uo.canceltarget()
      endif
      uo.exec('usetype 0x0f0e 0x0631') # пьем инвизку, лежат в паке #
      Save() # улетаем домой если ПК Вас раздетектил(при появлении записанных ПК), все выкладываем пополняем реги перемаркиваем руну, медитируем, прячемся и назад через установленное время #
      e=1 # устанавливаем начальное положение #
      wait(180000) # стоко времени ждем дома у сейфа #
      goto end
   endif
###########################################################
##### Переход если 20 раз не найдена руда вокруг себя #####
###########################################################
   if UO.InJournal("no ore here") then
      f=f+1
   endif
   if f>20 then # 20 раз #
      # ниже поменять на свою мелодию - это я так для себя сделал, необязательная мелодия #
      uo.playwav("d:\Games\Ultima Online 2D\perehod.wav")
      f=0 # обнуление переменной пустых тайлов #
      g=0 # переменная перехода #
      if e == 1 then
         UO.Print("Go West 7 step.") # столько раз будем шагать на West #
         repeat
            g=g+1
            GoW()
            Scaner()
            if uo.injournal("[nCuXu]") or uo.injournal("Quas") or uo.injournal("Valkirye") or uo.injournal("[DN]") or uo.injournal("Bloodman") or uo.injournal("Tangar") or uo.injournal("BilaZ") or uo.injournal("TiamaT") or uo.injournal("man") or uo.injournal("LEXEY") or uo.injournal("REM") then  # предохраняемся #
               goto tut
            endif
         until g>6 # 6+1 стоко шагов #
         UO.DeleteJournal()
         e=2
         goto na4alo
      else
         UO.Print("Go East 7 step.") # столько раз будем шагать на East #
         repeat
            g=g+1
            GoE()
            if uo.injournal("[nCuXu]") or uo.injournal("Quas") or uo.injournal("Valkirye") or uo.injournal("[DN]") or uo.injournal("Bloodman") or uo.injournal("Tangar") or uo.injournal("BilaZ") or uo.injournal("TiamaT") or uo.injournal("man") or uo.injournal("LEXEY") or uo.injournal("REM") then 
               goto tut
            endif
         until g>6
         UO.DeleteJournal()
         e=1
         goto na4alo
      endif
   endif
wend
   if uo.weight > 600 then # вес по которому летим домой по рунбуке #
      goto end
   endif
wend
#########
   UO.DeleteJournal()
   next # переключатель цикла #
next # то же #
goto na4alo # и по кругу пока не найдем 20 пустых тайлов #
end:
if uo.waiting() then
   uo.canceltarget()
endif
uo.exec("recall Runeboock 21") # домой по рунбуку - в первом слоте руна к сейфу #
mx = UO.GetX("self")
my = UO.GetY("self")
wait(11000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
   goto end # проверка на физл #
endif
e=1
loot() # выкладывает накопанное в сейф #
reccal:
uo.deletejournal()
if uo.waiting() then
   uo.canceltarget()
endif
uo.exec("recall Runeboock 94") # назад трудиться в шахте =), рунка в 8-м слоте рунбуки #
mx = UO.GetX("self")
my = UO.GetY("self")
wait(11000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
   goto reccal # проверка на физл #
endif
goto na4alo
end sub
##################################################
##### Переход на 1 клетку в направлении West #####
##################################################
sub GoW()
VAR walkwait=300
VAR x,y,dir=6
VAR key=36 ; Home key
x=UO.GetX()
y=UO.GetY()
while UO.GetDir()<>dir
   UO.Press(key)
   wait(walkwait)
   if UO.GetDir()<>dir then
      cheklag()
   endif
wend
UO.Press(key)
wait(walkwait)
if x==UO.GetX() and y==UO.GetY() then
   cheklag()
Endif
if UO.GetX()+1==x then
   return -1
else
   return 1
endif
end sub
##################################################
##### Переход на 1 клетку в направлении East #####
##################################################
sub GoE()
VAR walkwait=300
VAR x,y,dir=2
VAR key=34 ; PgDown
x=UO.GetX()
y=UO.GetY()
while UO.GetDir()<>dir
   UO.Press(key)
   wait(walkwait)
   if UO.GetDir()<>dir then
      cheklag()
   endif
wend
UO.Press(key)
wait(walkwait)
if x==UO.GetX() and y==UO.GetY() then
   cheklag()
endif
if UO.GetX()-1==x then
   return -1
else
   return 1
endif
end sub
#############################################################
##### Анти ПК: если Вас раздетектили - по рунке к сейфу #####
#############################################################
sub Save() # описано выше #
reccal2:
UO.DeleteJournal()
if uo.waiting() then
   uo.canceltarget()
endif
UO.FindType('0x1F15',-1,'backpack')
UO.Cast('Recall','finditem')
repeat
   wait(300)
until uo.injournal("Kal Ort Por")
wait(4000)
if uo.injournal("fizzles") then
   goto reccal2
endif
wait(2000)
tohide()
loot()
UO.DeleteJournal()
UO.FindType('0x1F15',-1,'backpack')
UO.Cast('Mark','finditem')
wait(7000)
uo.exec('usetype 0x0f0e 0x09DF') # Пьем манку #
Med:
uo.warmode('0')
repeat
   UO.UseSkill('Meditation')
   wait(5000)
until uo.injournal("peace") or uo.injournal("lose") or uo.injournal("preoccupied")
if UO.InJournal("lose") then
   UO.DeleteJournal()
   goto Med
endif
fillitems()
tohide()
end sub
#########################################
##### Упаковка готового продукта =) #####
#########################################
sub loot() # складываем руду в сейф #
VAR a, Exit
if uo.waiting() then
   uo.canceltarget()
endif
VAR UnloadCont='0x4000E3AA' ;0x401731D2' # поменять на ID своего сейфа куда складываем руду, узнать его можно командой ',info - появиться цель, на сейф, в окне Text - ID' #
DIM Ore[5]
   Ore[0]=0x19B9 # 4 и более руды #
   Ore[1]=0x19B7 # 1 руда #
   Ore[2]=0x19BA # 2 руды #
   Ore[3]=0x19B8 # 3 руды #
UO.SetReceivingContainer(UnloadCont)
wait(500)
For a = 0 to 3
   Exit=0
repeat
   UO.FindType(Ore[a])
   if UO.GetQuantity('finditem')>0 then
      UO.Grab('0','finditem')
      wait(1500)
   else
      Exit=1
   endif
until Exit==1
next
UO.UnSetReceivingContainer()
cheklag()
end sub
####################
##### Прячемся #####
####################
sub tohide()
while not UO.Hidden()
   UO.DeleteJournal()
   UO.warmode('0')
   UO.UseSkill('Stealth')
   repeat
      wait(300)
   until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide') OR UO.InJournal('preoccupied')
   cheklag()
wend
end sub
##################################################################
##### Пополнение всех нужных регов до 10, инвизок до 2, манок до 3 #####
##################################################################
sub fillitems()
VAR StoreRegCont='0x40173275' # непосредственно сам пак с регами, инвизками и манками в сейфе #
VAR CharRegBag='backpack' # куда сложить реги себе #
VAR CountReg=10 # количество регов каждого типа #
VAR WaitTime=1000
VAR MainSafe='0x4000E3AA' # сейф где лежит пак с регами #
var y
tohide()
UO.FindType('0x09B0','0x0044','backpack')
if UO.GetQuantity('finditem')>0 then
   CharRegBag='finditem'
endif
UO.UseObject(MainSafe)
cheklag()
UO.UseObject(StoreRegCont)
cheklag()
UO.SetReceivingContainer(CharRegBag)
wait(WaitTime)
if UO.BM<CountReg then
   UO.FindType('0x0F7B','-1',StoreRegCont) ; BM
   UO.Grab(STR((CountReg-UO.BM)),'finditem')
   wait(WaitTime)
endif
cheklag()
if UO.BP<CountReg then
   UO.FindType('0x0F7A','-1',StoreRegCont) ; BP
   UO.Grab(STR(CountReg-UO.BP),'finditem')
   wait(WaitTime)
endif
cheklag()
if UO.GA<CountReg then
   UO.FindType('0x0F84','-1',StoreRegCont) ; GA
   UO.Grab(STR(CountReg-UO.GA),'finditem')
   wait(WaitTime)
endif
cheklag()
if UO.MR<CountReg then
   UO.FindType('0x0F86','-1',StoreRegCont) ; MR
   UO.Grab(STR(CountReg-UO.MR),'finditem')
   wait(WaitTime)
endif
cheklag()
if UO.NS<CountReg then
   UO.FindType('0x0F88','-1',StoreRegCont) ; NS
   UO.Grab(STR(CountReg-UO.NS),'finditem')
   wait(WaitTime)
endif
cheklag()
if UO.SA<CountReg then
   UO.FindType('0x0F8C','-1',StoreRegCont) ; SA
   UO.Grab(STR(CountReg-UO.SA),'finditem')
   wait(WaitTime)
endif
cheklag()
##### инвизки #####
UO.FindType('0x0f0e','0x0631','backpack')
if UO.GetQuantity('finditem')<2 then
   y=UO.GetQuantity('finditem')
   UO.FindType('0x0f0e','0x0631',StoreRegCont) ; инвизки
   UO.Grab(STR(2-y),'finditem')
   wait(WaitTime)
endif
cheklag()
##### манки #####
UO.FindType('0x0f0e','0x09DF','backpack')
if UO.GetQuantity('finditem')<3 then
   y=UO.GetQuantity('finditem')
   UO.FindType('0x0f0e','0x09DF',StoreRegCont) ; манки
   UO.Grab(STR(3-y),'finditem')
   wait(WaitTime)
endif
cheklag()
UO.UnsetReceivingContainer()
end sub
###########################
##### Проверка на лаг #####
###########################
sub cheklag()
UO.DeleteJournal()
UO.Click('backpack')
repeat
   wait(300)
until UO.InJournal('backpack')
end sub
###############################
##### Модуль сканирования #####
###############################
Sub Scaner()
var jor, noto, ser
for jor = 0 to 9   
   ser = uo.journalserial(jor)
   noto = uo.getnotoriety(ser)
if noto <> 0 and not uo.injournal("heavy") and not uo.injournal("loosen")  then
   uo.print("!Alarm!")
endif
next
end sub
###############################

_________________
My Game is Ultima online on DRW!


Top
   
 Post subject:
PostPosted: 2006-05-02 09:35:35 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Если ты зайдешь в поиск на форуме и дашь поиск фразы "You see:" - ты найдешь кучу постов, в которых черным по белому написано, что эта фраза есть только в журнале клиента, в инжекте ее нету. Можешь и сам проверить: когда в клиенте такая фраза появится, вызови на экран журнал инжекта командой ",showjournal 100" и ищи эту фразу.

ЗЫ: Это чисто клиентская штучка, в инжекте ее нету.


Top
   
 Post subject:
PostPosted: 2006-05-02 10:42:46 
Offline

Joined: 2006-04-18 14:34:42
Posts: 34
Location: Березники
Quote:
Если ты зайдешь в поиск на форуме и дашь поиск фразы "You see:" - ты найдешь кучу постов, в которых черным по белому написано, что эта фраза есть только в журнале клиента, в инжекте ее нету. Можешь и сам проверить: когда в клиенте такая фраза появится, вызови на экран журнал инжекта командой ",showjournal 100" и ищи эту фразу.

ЗЫ: Это чисто клиентская штучка, в инжекте ее нету.


я не говорю что мне надо определять фразу "You see:"... мне надо определять то что после нее появляеться =) ... это то есть в инже =), т.е. как я понимаю ... надпись в журнале имеет цвет, дак вот как определить что этот цвет красный, синий или серый (серый кстати тоже немного непонятно ведь сообщения обычные тоже серые?) и потом поставить условие что если синий или красный то ... убегаем =) ... в общем много всего непонятного ...

_________________
My Game is Ultima online on DRW!


Top
   
 Post subject:
PostPosted: 2006-05-02 14:55:17 
Offline

Joined: 2006-04-18 14:34:42
Posts: 34
Location: Березники
Еще не совсем последняя версия, но все же - Версия 2.7.!
Возможности:
1. Копает по 1 разу с тайла (при физле копает еще раз тот же тайл, пока не выроет че нить).
2. При выкапывании элемента - убивает его, собирает руду (это еще не проверил, но вроде должен), и улетает домой, потом возвращаеться в шахту и по кругу.
3. При появлении синего или красного или Man реколиться по руне к сейфу, все выкладывает, набирает нужные реги, инвизки, манки, ждет пока уйдет ПК(время выставляеться) и назад копать.
4. После веса в 600 улетает домой по рунбуке, выкладывает и назад копать.
5. Копает в друх локациях, т.к. руды мало, а копаем быстро (ходим в общем от одного места к другому, окапываясь вокруг себя)

Еще добавлю:
1. Речарж рунбуки.
2. Каким то макаром может сделаю определение полиморфного ПК.
3. Реконект.
4. Может че нить еще...

Code:
#############################
##### Мининг версия 2.7 #####
#############################
sub maning()
var mx, my, mz, i, j, e, f, g, t, Exit1, a
UO.Exec("set norbcheck 1") # нужно для рекола #
UO.Exec("set norbcalc 1") # нужно для рекола #
e=1 # перменная местонахождения #
f=0 # перменная подсчета пустых тайлов #
# необходимо указать Runeboock в Object - from target #
UO.DeleteJournal()
na4alo: # поехали #
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
For i = mx-4 to mx+4 # радиус окапывания по х #
   For j = my-4 to my+4 # радиус окапывания по у #
      tohide() # прячемся #
      UO.Print("Mine in: "+str(mx-i)+" "+str(my-j))
while not UO.InJournal("You put") and not UO.InJournal("heavy") and not UO.InJournal("location") and not UO.InJournal("no ore") and not UO.InJournal("far away") and not UO.InJournal("in rock")
      UO.DeleteJournal()
      if uo.waiting() then
         uo.canceltarget()
      endif
      UO.Waittargettile("1341", str(i), str(j), str(mz))
      UO.Useobject("Shovel") # необходимо указать Shovel в Object - from target #
while not UO.InJournal("You put") and not UO.InJournal("heavy") and not UO.InJournal("location") and not UO.InJournal("no ore") and not UO.InJournal("but fail") and not UO.InJournal("far away") and not UO.InJournal("in rock")
   if uo.injournal("heavy") then # вырыли элемента #
      # ниже поменять на свою мелодию #
      uo.playwav("d:\Games\Ultima Online 2D\element.wav")
      # убиваем элемента, собираем руду и копаем дальше #
      Vortex:
      uo.exec('usetype 0x0f0e 0x0631') # пьем инвизку, а то энергетик порвет =) #
      wait(300)
      uo.cast('Energy Vortex','self')
      repeat
         wait(300)
      until uo.injournal("fizzles") or uo.injournal("Vortex")
      if uo.injournal("fizzles") then
         goto Vortex
      else
         cheklag()
         wait(15000)
         istka:
         uo.exec('usetype 0x0f0e 0x09DF') # пьем манку #
         wait(500)
         uo.cast('Mass Dispel','self')
         cheklag()
         wait(5000)
         if uo.injournal("fizzles") then
            goto istka
         endif
         UO.SetReceivingContainer('backpack')
         UO.FindType('0x19B9',-1,'ground')
         if UO.GetQuantity('finditem')>0 then
            UO.Grab('0','finditem')
            wait(2000)
         endif
         UO.FindType('0x19B7',-1,'ground')
         if UO.GetQuantity('finditem')>0 then
            UO.Grab('0','finditem')
            wait(2000)
         endif
         UO.FindType('0x19BA',-1,'ground')
         if UO.GetQuantity('finditem')>0 then
            UO.Grab('0','finditem')
            wait(2000)
         endif
         UO.FindType('0x19B8',-1,'ground')
         if UO.GetQuantity('finditem')>0 then
            UO.Grab('0','finditem')
            wait(2000)
         endif
         UO.UnSetReceivingContainer()
      endif
      goto reccal
   endif
   # ниже записать всех своих знакомых киллеров =) #
   
   if Scaner()==1 or uo.injournal("man") then # смотрим как ПК обломался и улыбаемся #
      tut:
      if uo.waiting() then
         uo.canceltarget()
      endif
      uo.exec('usetype 0x0f0e 0x0631') # пьем инвизку, лежат в паке #
      Save() # улетаем домой если ПК Вас раздетектил(при появлении записанных ПК), все выкладываем пополняем реги перемаркиваем руну, медитируем, прячемся и назад через установленное время #
      # ниже поменять на свою мелодию #
      uo.playwav("d:\Games\Ultima Online 2D\pk.wav")
      e=1 # устанавливаем начальное положение #
      wait(180000) # стоко времени ждем дома у сейфа #
      goto end
   endif
###########################################################
##### Переход если 20 раз не найдена руда вокруг себя #####
###########################################################
   if UO.InJournal("no ore here") then
      f=f+1
   endif
   if f>20 then # 20 раз #
      # ниже поменять на свою мелодию - это я так для себя сделал, необязательная мелодия #
      uo.playwav("d:\Games\Ultima Online 2D\perehod.wav")
      f=0 # обнуление переменной пустых тайлов #
      g=0 # переменная перехода #
      if e == 1 then
         UO.Print("Go West 7 step.") # столько раз будем шагать на West #
         repeat
            g=g+1
            GoW()
            if Scaner()==1 or uo.injournal("man") then   # предохраняемся #
               goto tut
            endif
         until g>6 # 6+1 стоко шагов #
         UO.DeleteJournal()
         e=2
         goto na4alo
      else
         UO.Print("Go East 7 step.") # столько раз будем шагать на East #
         repeat
            g=g+1
            GoE()
            if Scaner()==1 or uo.injournal("man") then 
               goto tut
            endif
         until g>6
         UO.DeleteJournal()
         e=1
         goto na4alo
      endif
   endif
wend
   if uo.weight > 600 then # вес по которому летим домой по рунбуке #
      goto end
   endif
wend
#########
   UO.DeleteJournal()
   next # переключатель цикла #
next # то же #
goto na4alo # и по кругу пока не найдем 20 пустых тайлов #
end:
if uo.waiting() then
   uo.canceltarget()
endif
uo.exec("recall Runeboock 21") # домой по рунбуку - в первом слоте руна к сейфу #
mx = UO.GetX("self")
my = UO.GetY("self")
wait(11000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
   goto end # проверка на физл #
endif
e=1
loot() # выкладывает накопанное в сейф #
reccal:
uo.deletejournal()
if uo.waiting() then
   uo.canceltarget()
endif
uo.exec("recall Runeboock 94") # назад трудиться в шахте =), рунка в 8-м слоте рунбуки #
mx = UO.GetX("self")
my = UO.GetY("self")
wait(11000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
   goto reccal # проверка на физл #
endif
goto na4alo
end sub
##################################################
##### Переход на 1 клетку в направлении West #####
##################################################
sub GoW()
VAR walkwait=300
VAR x,y,dir=6
VAR key=36 ; Home key
x=UO.GetX()
y=UO.GetY()
while UO.GetDir()<>dir
   UO.Press(key)
   wait(walkwait)
   if UO.GetDir()<>dir then
      cheklag()
   endif
wend
UO.Press(key)
wait(walkwait)
if x==UO.GetX() and y==UO.GetY() then
   cheklag()
Endif
if UO.GetX()+1==x then
   return -1
else
   return 1
endif
end sub
##################################################
##### Переход на 1 клетку в направлении East #####
##################################################
sub GoE()
VAR walkwait=300
VAR x,y,dir=2
VAR key=34 ; PgDown
x=UO.GetX()
y=UO.GetY()
while UO.GetDir()<>dir
   UO.Press(key)
   wait(walkwait)
   if UO.GetDir()<>dir then
      cheklag()
   endif
wend
UO.Press(key)
wait(walkwait)
if x==UO.GetX() and y==UO.GetY() then
   cheklag()
endif
if UO.GetX()-1==x then
   return -1
else
   return 1
endif
end sub
#############################################################
##### Анти ПК: если Вас раздетектили - по рунке к сейфу #####
#############################################################
sub Save() # описано выше #
reccal2:
UO.DeleteJournal()
if uo.waiting() then
   uo.canceltarget()
endif
UO.FindType('0x1F15',-1,'backpack')
UO.Cast('Recall','finditem')
repeat
   wait(300)
until uo.injournal("Kal Ort Por")
wait(4000)
if uo.injournal("fizzles") then
   goto reccal2
endif
wait(2000)
tohide()
loot()
UO.DeleteJournal()
UO.FindType('0x1F15',-1,'backpack')
UO.Cast('Mark','finditem')
wait(7000)
uo.exec('usetype 0x0f0e 0x09DF') # Пьем манку #
Med:
uo.warmode('0')
repeat
   UO.UseSkill('Meditation')
   wait(5000)
until uo.injournal("peace") or uo.injournal("lose") or uo.injournal("preoccupied")
if UO.InJournal("lose") then
   UO.DeleteJournal()
   goto Med
endif
fillitems()
tohide()
end sub
#########################################
##### Упаковка готового продукта =) #####
#########################################
sub loot() # складываем руду в сейф #
VAR a, Exit
if uo.waiting() then
   uo.canceltarget()
endif
VAR UnloadCont='0x4000E3AA' ;0x401731D2' # поменять на ID своего сейфа куда складываем руду, узнать его можно командой ',info - появиться цель, на сейф, в окне Text - ID' #
DIM Ore[5]
   Ore[0]=0x19B9 # 4 и более руды #
   Ore[1]=0x19B7 # 1 руда #
   Ore[2]=0x19BA # 2 руды #
   Ore[3]=0x19B8 # 3 руды #
UO.SetReceivingContainer(UnloadCont)
wait(500)
For a = 0 to 3
   Exit=0
repeat
   UO.FindType(Ore[a])
   if UO.GetQuantity('finditem')>0 then
      UO.Grab('0','finditem')
      wait(1500)
   else
      Exit=1
   endif
until Exit==1
next
UO.UnSetReceivingContainer()
cheklag()
end sub
####################
##### Прячемся #####
####################
sub tohide()
while not UO.Hidden()
   UO.DeleteJournal()
   UO.warmode('0')
   UO.UseSkill('Stealth')
   repeat
      wait(300)
   until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide') OR UO.InJournal('preoccupied')
   cheklag()
wend
end sub
#####################################################################
##### Пополнение всех нужных регов до 10, инвизок до 2, манок до 3 #####
#####################################################################
sub fillitems()
VAR StoreRegCont='0x40173275' # непосредственно сам пак с регами, инвизками и манками в сейфе #
VAR CharRegBag='backpack' # куда сложить реги себе #
VAR CountReg=10 # количество регов каждого типа #
VAR WaitTime=1000
VAR MainSafe='0x4000E3AA' # сейф где лежит пак с регами #
var y
tohide()
UO.FindType('0x09B0','0x0044','backpack')
if UO.GetQuantity('finditem')>0 then
   CharRegBag='finditem'
endif
UO.UseObject(MainSafe)
cheklag()
UO.UseObject(StoreRegCont)
cheklag()
UO.SetReceivingContainer(CharRegBag)
wait(WaitTime)
if UO.BM<CountReg then
   UO.FindType('0x0F7B','-1',StoreRegCont) ; BM
   UO.Grab(STR((CountReg-UO.BM)),'finditem')
   wait(WaitTime)
endif
cheklag()
if UO.BP<CountReg then
   UO.FindType('0x0F7A','-1',StoreRegCont) ; BP
   UO.Grab(STR(CountReg-UO.BP),'finditem')
   wait(WaitTime)
endif
cheklag()
if UO.GA<CountReg then
   UO.FindType('0x0F84','-1',StoreRegCont) ; GA
   UO.Grab(STR(CountReg-UO.GA),'finditem')
   wait(WaitTime)
endif
cheklag()
if UO.MR<CountReg then
   UO.FindType('0x0F86','-1',StoreRegCont) ; MR
   UO.Grab(STR(CountReg-UO.MR),'finditem')
   wait(WaitTime)
endif
cheklag()
if UO.NS<CountReg then
   UO.FindType('0x0F88','-1',StoreRegCont) ; NS
   UO.Grab(STR(CountReg-UO.NS),'finditem')
   wait(WaitTime)
endif
cheklag()
if UO.SA<CountReg then
   UO.FindType('0x0F8C','-1',StoreRegCont) ; SA
   UO.Grab(STR(CountReg-UO.SA),'finditem')
   wait(WaitTime)
endif
cheklag()
##### инвизки #####
UO.FindType('0x0f0e','0x0631','backpack')
if UO.GetQuantity('finditem')<2 then
   y=UO.GetQuantity('finditem')
   UO.FindType('0x0f0e','0x0631',StoreRegCont) ; инвизки
   UO.Grab(STR(2-y),'finditem')
   wait(WaitTime)
endif
cheklag()
##### манки #####
UO.FindType('0x0f0e','0x09DF','backpack')
if UO.GetQuantity('finditem')<3 then
   y=UO.GetQuantity('finditem')
   UO.FindType('0x0f0e','0x09DF',StoreRegCont) ; манки
   UO.Grab(STR(3-y),'finditem')
   wait(WaitTime)
endif
cheklag()
UO.UnsetReceivingContainer()
end sub
###########################
##### Проверка на лаг #####
###########################
sub cheklag()
UO.DeleteJournal()
UO.Click('backpack')
repeat
   wait(300)
until UO.InJournal('backpack')
end sub
###############################
##### Модуль сканирования #####
###############################
sub Scaner()
var jor, noto, ser
uo.ignore('self')
uo.deletejournal()
while not uo.dead()
   for jor=0 to 9
      ser = uo.journalserial(jor)
      noto = uo.getnotoriety(ser)
      if noto == 1 or noto == 6 and not uo.injournal("elemental") then
         return 1
      else
         return 0
      endif
   next
wend
end sub
###############################


P.S. Скрипт писался на основе скриптов известных всем скриптеров.
P.P.S. Убить все равно могут, т.к. если сильно захотеть, то ... ну сами понимаете.

_________________
My Game is Ultima online on DRW!


Top
   
 Post subject:
PostPosted: 2006-05-05 15:11:11 
Offline
User avatar

Joined: 2005-07-17 15:30:52
Posts: 308
Location: www.drw.ru
Вот мой скрипт, который у мя крутиться вместе с минингом, ищет чаров и гмов, разобраться думаю как его настроить под себя не сложно, там без всяких ю си и подобной бредятины.

Code:
sub CheckingPlayers()
VAR a, b
uo.ignore('self', 'on')
DIM Chars[2]
Chars[0] = '0x0190' #тип игрока мужского пола#
Chars[1] = '0x0191' #тип игрока женского пола#
while not uo.dead()
  for a = 0 to 1
    if uo.injournal('GM') or uo.injournal('Admin') or uo.injournal('Seer') or uo.injournal('Counselor') or uo.injournal('Developer') then
      uo.usetype('0x0F08')
      uo.closeuo()
    else
      wait(50)
    endif     
    while val(uo.getglobal('find')) == 1
      wait(50)
    wend
    uo.set('finddistance', '15')
    uo.findtype(Chars[a], '-1', '1') 
    if uo.findcount() > 0 then
      uo.setglobal('find', '0')
      uo.usetype('0x0F08')
      uo.exec('terminate Teleportation')
      uo.exec('terminate Obkopka')
      uo.exec('terminate ChengePlace')
      uo.exec('terminate KillElemental')
      uo.exec('exec Teleportation')
      return
    else
      wait(500)
    endif
  next
wend
end sub


Top
   
 Post subject:
PostPosted: 2006-05-05 15:59:20 
Offline
Expert!
User avatar

Joined: 2004-08-11 23:56:17
Posts: 746
Location: The Citadel
Санч, я же тебе кидал свой майнинг. Посмотри, как там происходит сканирование. намного удобнее, безо всяких терминейтов и запусков.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 70 posts ]  Go to page Previous 1 2 3 4 Next

All times are UTC+02:00


Who is online

Users browsing this forum: Google [Bot] and 42 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited