Помощь - Поиск - Пользователи - Календарь
Полная версия: Некоторые Скрипты
UoKit.com Форумы > Ultima Online > Программы для Ultima Online > Injection
Фесс
Цитата
Injection Скрипты

------- Скрипт на быстрое качание Trackinga ------
sub Tracking()
uo.CancelMenu()
uo.AutoMenu("Track","Anything")
repeat
uo.deletejournal()
uo.UseSkill('Tracking')
repeat
wait(100)
until UO.InJournal("Tracking Cancelled")
until uo.Dead()
end sub


----- Парализ филд на ластаргет под чела кидает -----
sub pfl()
Uo.waittargettile("400",str(Uo.getx("lasttarget")) ,str(Uo.gety("lasttarget")),str(Uo.getz("lasttarge t")))
Uo.cast("Paralyze Field")
end sub


----- Кидает одно сена под себя ----
sub DropSelf()
var myX = UO.GetX("self")
var myY = UO.GetY("self")
var myZ = UO.GetZ("self")
var item = '0x0f36'
UO.FindType(item, '-1', 'my')
UO.MoveItem('finditem','1','ground',str(myX),str(m yY),str(myZ))
end sub

----- Кидает по ластаргету челу под ноги фире филд -----
sub fire()
Uo.waittargettile("400",str(Uo.getx("lasttarget")) ,str(Uo.gety("lasttarget")),str(Uo.getz("lasttarge t")))
Uo.cast("Fire Field")
endsub

----- Если тебя обкладывают сеном зашимаеш кнопку все сена собирает в сумку ----
sub Find()
DIM find[4]
find[1] = '0x0f36' ;??? ????
find[2] = '0x0f36' ;??? ????
find[3] = '0x0f36' ;??? ????
find[4] = '0x0f36' ;??? ????
var i
for i = 1 to 4
UO.Set('finddistance','2')
UO.FindType(find[i],-1,1)
if UO.FindCount()>0 then
UO.Grab ('all','finditem')
endif
next
end sub

---- Мининг в пешере вокруг себя -----
sub minround()
VAR Kirka = '0x0e85'
VAR MaxVes = 1100
VAR TileNum = '1339'
VAR x, y, t, k
VAR MaxTime = 100
VAR ms1 = "There is no ore here to mine"
VAR ms2 = "You can't use"
VAR ms3 = "You put the"
VAR ms4 = "You loosen some rocks"
VAR ms5 = "You are too far away"
VAR ms6 = "Try mining in rock"
VAR ms7 = "You can't see that"
for y=-2 to 2
for x=-2 to 2
while not UO.Hidden()
UO.Warmode("0")
uo.print("??????...")
UO.UseSkill("Hiding")
wait(4400)
wend
k = 0
repeat
UO.DeleteJournal()
t = UO.Timer()
k = k + 1

wait(300)
UO.WaitTargetTile( TileNum, STR( UO.GetX() + x ), STR( UO.GetY() + y ), 0)
UO.UseType( Kirka )
repeat
wait(300)
until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) OR ((t + MaxTime) < UO.Timer())
If UO.Weight > MaxVes Then
UO.Print(" Overweight!" )
return
Endif
until ( NOT UO.InJournal(ms4) AND NOT UO.InJournal(ms3) OR (k > 10) )
next
next
endsub
Фесс
Ну совственно первый скрипт будет на переплавку руды по одной штуке!
Описание скрипта:
Кладёте с собой рядом a wooden box(или другой контейнер только надо 0x4019B055 заменять сериалом вашего контейнера. Сериал или ID можно узнать через команду ,info) в котором должна лежать Iron ore и запускаете скрипт! Он берёт одну железную руду из ящика, переплавляет потом опяь берёт... цикличность.

Цитата
sub smelting()
var ore='0x19B9'
var color='0x0000'
var sunduk='0x4019B055'
var ingot='0x1BF2'
uo. FindType(ore,color,sunduk
)
while uo.FindCount()
uo. FindType(ore,color,sunduk
)
wait(300)
uo.moveitem('finditem','1','backpack')
uo.UseObject('finditem')
wait(1300)
if UO.InJournal("?? ???????") then
repeat
end if
wend
if UO.InJournal("You put") then
zachistka()
endif

end sub
var ore='0x19B9'
var color='0x0000'
var sunduk='0x4019B055'
var ingot='0x1BF2'
sub zachistka()
uo.FindType(ingot,color,'backpack')
wait(500)
uo.moveitem('finditem','1',sunduk)
wait(500)
end if
end sub




Авто хилинг

Цитата
sub avtoheal()
While UO.Life > 0
If UO.Life < 130 Then
UO.Bandageself()
repeat
wait (3000)

Else
wait(50)
Endif
Wend
endsub


Lumberjacking

Чар бегает от дерева к дереву(координаты деревьев берет из файла). Вырубит, бежит к следующему,при логах 700 штук в паке порталится домой скидывает логи в сундук, после реколится обратно бежит к последнему дереву и продолжает рубить. Пример: В файле 100 деревьев, вы вырубив 74 дошли до придела в 700 логов сработала система рекола и вы "порталитесь" домой и складываете логи в сундук,после вы реколитесь обратно в лес и бежите к 75 дереву. Дойдя до 100 дерева (тоесть последнего в списке) чар перейдет к 1ому дереву (цикличность).


Работает в 2х режимах:
1) Маркировка
2) Рубка

Режимы работы скрипта

Режим первый - "Маркировка".
Этот режим отвечает за Маркирование(записывание координат) деревьев. Включается переменной var GetFromFile=0. 1 - координаты деревьев будут считыватся из файла, 0 - собиратся из клиента. То есть если GetFromFile=0 координаты деревьев собиратся из клиента. Поставте переменную GetFromFile равную 0 (GetFromFile=0). Положите в суммку к себе топор, рунбук(с рунами домой и в лес) и кирку. Идите в лес в котором вы хотите рубить. Запустите скрипт main(), инжект попросит вас указать топор
(появится прицел, прицелом на топор который вы с собой взяли), потом инжект попросит вас указать рунбук(появится прицел, прицелом на него). Инжект сообщит вам что ('Собираем координаты деревьев в округе...'). Чар автоматом возмет в руки кирку и появится прицел. Теперь вы должны в любом порядке САМИ прицелом указать координаты (достаточно просто нажать прицелом на дерево). Если вы не промахнулись и "нажали" на дерево то инжект сообщит вам об этом (Найдено дерево "координаты дерева"). Причем что если даже вы нажмете два раза на одно дерево то он не "запомнит" его повторно. Ходите по лесу и марчите деревья,после того как вы "наберете" достаточное количество деревьев. Инжект напишет вам сообщение ('Анализ закончен, координаты деревьев записаны в файл C:\trees3.dat') и создаст файл на диске С:\ куда запишет координаты деревьев.Система марка зависит от времени и переменной Area. При Area = 1 марк продлится примерно 20-25 мин. Остоновить марк нельзя, можно только дождатся его конца. После этого чар пойдет по координатам и будет вырубать деревья.

Режим Второй - "Рубка".
Этот режим соответственоо отвечает за рубку. Включается переменной var GetFromFile=1. 1 - координаты деревьев будут считыватся из файла, 0 - собиратся из клиента. То есть если GetFromFile=1 координаты деревьев будут считыватся из файла и вам не надо будет сново марчить деревья. Внимание!!! В РУНБУКЕ РУНА В 1ом слоте ДОМОЙ, в 9ом В лес.




Настройте скрипт под себя при помощи переменных.
###################
### Переменные: ###
###################
1)var TryHiding=1 1 - перед тем как рубить дерево, будет пытаться уйти в хайд, 0 - не будет
2)var LogsQty=700 Количество логов, добыв которое надо реколиться домой.
3)var TryRecall=1 1 - после того как соберет LogsQty логов, будет пытаться реколиться домой, складывать логи в сундук и реколиться обратно , 0 - не будет реколится домой и выключит скрипт.
4)VAR Meshok='0x401C1142' Айди сундука в который должен складывать логи.

Цитата
sub Lumberjacking()
var i=0,j=0,k=0,r=0,q=0,ii,jj
var TopX=324,TopY=65
dim TreeX[500], TreeY[500],TreeT[500]
dim TreeTile[10]
var flag=0,treeCount=0,clicks=0,flag2=0
var f=file("C:\trees3.dat")
var Area=1
var TryHiding=1
var TryRecall=1
var LogsQty=700
var GetFromFile=0
uo.exec("set norbcheck 1")
uo.exec("set norbcalc 1")
TreeTile[0]=3283
TreeTile[1]=3277
TreeTile[2]=3293
TreeTile[3]=3296
TreeTile[4]=3302
TreeTile[5]=3299
TreeTile[6]=3290
TreeTile[7]=3288
TreeTile[8]=3286
TreeTile[9]=3280
uo.exec("filterspeech on")
uo.exec("filterspeech add 'Where do you want to use the pickaxe?'")
uo.print('Выбери топор: ')
uo.exec('addobject axe')
while uo.targeting()
wait(100)
wend
if TryRecall==1 then
uo.print('Выбери PунБук: ')
uo.exec('addobject Runebook')
while uo.targeting()
wait(100)
wend
end if
if GetFromFile==1 then
uo.print('Загружаем координаты из файла...')
f.open()
TreeCount=safe call f.readNumber()
for i=1 to TreeCount
TreeT[i]=safe call f.ReadNumber()
TreeX[i]=safe call f.ReadNumber()
TreeY[i]=safe call f.ReadNumber()
next
f.close()
else
uo.print('Выбери Кирку: ')
uo.exec('addobject Pickaxe')
while uo.targeting()
wait(100)
wend
uo.print('Собираем координаты деревьев в округе...')
for q=1 to Area
if q==2 then
gotoxy(uo.getx()+20,uo.gety()-10)
end if
if q==3 then
gotoxy(uo.getx(),uo.gety()+20)
end if
if q==4 then
gotoxy(uo.getx()-20,uo.gety())
end if
for r=0 to 3
if r==1 then
gotoxy(uo.getx()+10,uo.gety())
end if
if r==2 then
gotoxy(uo.getx(),uo.gety()+10)
end if
if r==3 then
gotoxy(uo.getx()-10,uo.gety())
end if
for j=0 to 8
for i=0 to 8
clicks=0
flag=0
uo.DeleteJournal()
uo.useobject('Pickaxe')
waitForTarget()
uo.DeleteJournal()
WaitForTryRock()
flag=0
for k=0 to 9
if uo.LastTile(0)==TreeTile[k]+1 then
flag=2
end if
next
if flag==0 then
for k=0 to 9
if uo.LastTile(0)==TreeTile[k] then
flag=1
end if
next
end if
if flag==1 then
flag2=0
if treeCount>0 then
for ii=1 to treeCount
if treeX[ii]==uo.lastTile(1) AND treeY[ii]==uo.lastTile(2) then
flag2=1
end if
next
end if
if flag2==0 then
treeCount=treeCount+1
TreeX[treeCount]=uo.LastTile(1)
treeY[treeCount]=uo.lastTile(2)
TreeT[treeCount]=uo.LastTile(0)
uo.print('Найдено дерево: x='+str(uo.lasttile(1))+' y='+str(uo.lastTile(2)))
end if
end if
if flag==2 then
flag2=0
if treeCount>0 then
for ii=1 to treeCount
if treeX[ii]==uo.lastTile(1) AND treeY[ii]==uo.lastTile(2) then
flag2=1
end if
next
end if
if flag2==0 then
treeCount=treeCount+1
TreeX[treeCount]=uo.LastTile(1)
treeY[treeCount]=uo.LastTile(2)
TreeT[treeCount]=uo.LastTile(0)-1
uo.print('Найдено дерево: x='+str(uo.lasttile(1))+' y='+str(uo.lastTile(2)))
end if
end if
next
next
next
next
uo.exec("filterspeech off")
uo.print('Анализ закончен, координаты деревьев записаны в файл C:\trees3.dat')
SaveToFile(treeCount,TreeX,TreeY,TreeT)
end if
uo.print('Деревьев найдено: '+str(treeCount))
wait(2000)
while 1==1
if treeCount>0 then
for i=1 to treeCount
if TryRecall==1 AND uo.Count('ZLK')>=LogsQty then
ToRecall()
end if
uo.print('Идем к дереву '+str(i)+': x='+str(treex[i])+' y='+str(treey[i]))
infologs()
flag=gotoxy(treex[i],treey[i])
if flag==1 then
if TryHiding==1 then
ToHide()
end if
GetTree(str(treeT[i]),str(treeX[i]),str(TreeY[i]),str(uo.getz()))
end if
next
end if
wend
end sub
sub GetTree(type,x,y,z)
var i
uo.print('Начинаем рубку дерева...')
for i=0 to 15
if uo.warmode()==1 then
return 0
end if
wait(200)
uo.deletejournal()
uo.waittargettile(type,x,y,z)
uo.useobject('axe')
if WaitForChange()==1 then
return 1
end if
next
return 0
end sub
sub ToRecall()
VAR Meshok='0x401C1142'
RecallToHome()
wait(500)
uo.press(36)
wait(500)
uo.press(36)
wait(500)
repeat
wait(500)
repeat
wait(500)
repeat
wait(500)
repeat
wait(600)
UO.SetReceivingContainer(Meshok)
uo.findtype('ZLK')
wait(500)
UO.Grab('all','finditem')
infologs()
wait(500)
until uo.GetQuantity('finditem')==0
UO.UnSetReceivingContainer()
UO.SetReceivingContainer(Meshok)
uo.findtype('ZLK')
wait(500)
UO.Grab('all','finditem')
infologs()
wait(500)
until uo.GetQuantity('finditem')==0
UO.UnSetReceivingContainer()
UO.SetReceivingContainer(Meshok)
uo.findtype('ZLK')
wait(500)
UO.Grab('all','finditem')
infologs()
wait(500)
until uo.GetQuantity('finditem')==0
UO.UnSetReceivingContainer()
RecallToLumber()
end sub
sub RecallToHome()
UO.Print("!!Прыгаем ДоМОЙ!!")
uo.exec("recall Runebook 21")
wait(10000)
end sub
sub RecallToLumber()
UO.Print("!!Прыгаем в ЛЕС!!")
uo.exec("recall Runebook 1025")
wait(10000)
end sub
sub ToHide()
while not UO.Hidden()
uo.print('Пытаемся уйти в хайд...')
uo.deletejournal()
UO.UseSkill("Stealth")
wait(4100)
wend
wait(100)
end sub
sub WaitForRecall()
var Text1=uo.getname()+": The spell fizzles."
var mess='',lastX=uo.getX(),lastY=uo.getY()
for var i=0 to 200
mess=uo.journal(0)
if uo.Journal(0)==Text1 then
return 0
end if
if uo.getX()<>lastX OR uo.getY()<>LastY then
return 1
end if
wait(50)
next
return 0
end sub
sub WaitForHide()
var Text1=uo.getname()+": You have hidden yourself well"
var Text2=uo.getname()+": You can't seem to hide here."
var mess
for var i=0 to 200
mess=uo.journal(0)
if uo.Journal(0)==Text1 then
return 1
end if
if uo.Journal(0)==Text2 then
return 0
end if
wait(50)
next
return 0
end sub
sub WaitForChange()
var Text1=uo.getname()+': You hack at the tree for a while, but fail to produce any useable wood.'
var Text2='There are no logs here to chop.'
var Text3="You can't reach this."
var mess
for var i=0 to 200
mess=uo.journal(0)
if uo.Journal(0)==Text2 OR uo.Journal(0)==Text3 then
return 1
end if
if uo.Journal(0)==Text1 then
return 0
end if
if mess[0]=='Y' AND mess[1]=='o' AND mess[2]=='u' AND mess[4]=='p' AND mess[5]=='u' AND mess[6]=='t' then
return 0
end if
wait(50)
next
return 0
end sub
sub WaitForTryRock()
var Text1="That is too far away."
var Text2="Try mining in rock."
var Text3="There is no ore here to mine."
var Text4="You have no line of sight to that location"
var Text5="You can't see the target"
for var i=0 to 50
if uo.Journal(0)==Text1 OR uo.Journal(0)==Text2 OR uo.Journal(0)==Text3 OR uo.Journal(0)==Text4 OR uo.Journal(0)==Text5 then
return 1
end if
wait(200)
next
return 0
end sub
sub WaitForTarget()
for var i=0 to 50
if uo.Targeting()==1 then
return 1
end if
wait(200)
next
return 0
end sub
sub WaitForChangeXY(myX,myY,lastX,lastY)
for var i=1 to 50
if lastX<>myX OR lastY<>myY then
return 1
end if
wait(200)
next
return 0
end sub
sub gotoXY(x,y)
var myX,myY,lastX=0,lastY=0,i,halt=0,z,r=0
for i=1 to 60
MyX=uo.getX();
MyY=uo.getY();
if LastX==MyX AND LastY==MyY then
halt=halt+1
else
halt=0
end if
if halt>=10 then
if uo.GetDir()==1 then
for z=0 to 8
uo.press(40)
next
end if
if uo.GetDir()==3 then
for z=0 to 8
uo.press(37)
next
end if
if uo.GetDir()==5 then
for z=0 to 8
uo.press( 38 )
next
end if
if uo.GetDir()==7 then
for z=0 to 8
uo.press(39)
next
end if
halt=15
end if
if abs(x-myX)<=1 AND abs(y-myY)<=2 then
return 1
end if
if x<=MyX then
if y<=MyY then
for z=0 to 3
uo.press( 38 )
next
else
for z=0 to 3
uo.press(37)
next
end if
else
if y<=MyY then
for z=0 to 3
uo.press(39)
next
else
for z=0 to 3
uo.press(40)
next
end if
end if
lastX=myX
lastY=myY
wait(200)
next
return 0
end sub
sub abs(num)
if num>=0 then
return num
else
return num*(-1)
end if
end sub
sub SaveToFile(TreeCount,TreeX,TreeY,TreeT)
var f=file("C:\trees3.dat")
var s=0,i=0
f.open()
f.create()
s=safe call f.writeln(TreeCount)
for i=1 to TreeCount
s=safe call f.writeln(str(TreeT[i])+' '+str(treeX[i])+' '+str(TreeY[i]))
next
f.close()
end sub
sub infologs()
UO.Print('У вас всего '+Str(UO.Count('0x1BDD'))+' логов в сумке')
UO.Print('Из них '+Str(UO.Count('0x1BDD','0x0000'))+' простых и ' +str(uo.count('0x1BDD')-uo.count('0x1BDD','0x0000'))+' цветных')
end sub
Mirage
Сори, но просто любопытно - зачем тут выкладывать скрипты без редактирования и с грамматическими ошибками?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.