Page 1 of 1
наверное самый маленьки ламбер [149 строк]
Posted: 2006-12-04 02:25:02
by omi4
Code: Select all
sub main()
; + EDIT ++++++++++++++++++
var zona = 6;
; +++++++++++++++++++++++++
var m, i, a, tr = 1
var tX = UO.GetX('self')
var tY = UO.GetY('self')
for i=1 to zona
if tr then
m = - 5
else
m = 5
endif
for a=1 to zona
tY = tY + m
GotoXY(tX,tY)
if Lamber() then
return 0
endif
next
tX = tX - 5
if tr then
tr = 0
else
tr = 1
endif
next
endsub
Sub Lamber()
var X, Y, MaxRange = 3
for Y = -MaxRange to MaxRange
for X = -MaxRange to MaxRange
if Tree(UO.GetX()+X, UO.GetY()+Y) then
repeat
UO.Warmode(0)
while not UO.Hidden()
UO.UseSkill('Hiding')
repeat
wait(100)
until UO.InJournal("can't seem to hide|to perform|stop trying")
UO.DeleteJournal()
wend
wait(100)
UO.WaitTargetTile(Tree(UO.GetX()+X, UO.GetY()+Y), UO.GetX()+X, UO.GetY()+Y, UO.GetZ())
UO.UseObject("_0x0F43"); <-- Axe
repeat
wait(100)
until UO.InJournal("You put the|useable wood|You can|That is too far away|here to chop|is attacking you") || UO.Dead()
if UO.InJournal("is attacking you") || UO.Weight >= 40 + UO.STR * 3.5 || UO.Dead() then
UO.Sound(61)
return 1
endif
until UO.InJournal("here to chop|You can|That is too far away") UO.Dead()
endif
next
next
return 0
end sub
Sub Tree(X,Y)
var i
if UO.PrivateGetTile(X, Y, -1, 3274, 3302) then
for i=3274 to 3302
if UO.PrivateGetTile(X, Y, -1, i, i) then
if i==3278 || i==3279 || i==3281 || i==3282 || i==3284 || i==3285 || i==3287 || i==3289 then
return 0
endif
if i==3291 || i==3292 || i==3294 || i==3295 || i==3297 || i==3298 || i==3300 || i==3301 then
return 0
endif
return i
end if
next
end if
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 Numb(x-myX)<=1 and Numb(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 Numb(num)
if num>=0 then
return num
else
return num*(-1)
end if
end sub
Posted: 2006-12-04 02:39:30
by DerMeister =)
В топку! У меня на пинжекте 105... Это при том, что там кое что закомментировано. Рабочий код там где то 90 строк.
Posted: 2006-12-04 02:46:03
by Edred
В топку! У меня на стелсе, конечно, 421 строка - но там куча комментов, функций, авторес чара, разгрузка, восстановление стамины, добор топоров и прочее. Если же только саму рубку и перемещение взять - около 80 строк.
Posted: 2006-12-04 03:17:48
by DerMeister =)
У меня сама рубка всего 8 строк - остальное марк деревьев и ходилка (всего 5 строк).
Posted: 2006-12-04 08:11:38
by GimFlex
вот мой 142 строки
Code: Select all
sub lumber()
var f=file("C:\trees3.dat"),TreeCount=0,i
dim TreeX[500],TreeY[500],TreeT[500]
uo.exec('addobject axe')
while uo.targeting()
wait(100)
wend
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()
while not uo.dead()
for i=1 to TreeCount
GotoXY(treex[i],treey[i])
ToHide()
GetTree(str(treeT[i]),str(treeX[i]),str(TreeY[i]),str(uo.getz()))
next
DropLogs()
wend
endsub
Sub ToHide()
while not UO.Hidden()
uo.deletejournal()
UO.UseSkill("Stealth")
wait(4100)
wend
end sub
Sub GetTree(type,x,y,z)
var ms1="logs in your pack"
var ms2="logs here to chop"
var ms3="log in your pack"
var ms4="You hack at the tree for a while"
var ms5="That is too far away"
var ms6="You can't reach this"
wait(200)
repeat
uo.deletejournal()
uo.waittargettile(type,x,y,z)
uo.useobject('axe')
repeat
wait(100)
until uo.injournal(ms1) or uo.injournal(ms2) or uo.injournal(ms3) or uo.injournal(ms4) or uo.injournal(ms5) or uo.injournal(ms6)
until uo.injournal(ms2) or uo.injournal(ms5) or uo.injournal(ms6)
end sub
sub DropLogs()
var a,Exit,Chest='0x4035FD15',Logs='0x1BDD'
GotoXY(1560,2361)
ToHide()
uo.findtype(Logs,'-1','backpack')
while uo.findcount()>0
uo.moveitem('finditem','all',Chest)
wait(700)
uo.findtype(Logs,'-1','backpack')
wend
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 Numb(x-myX)<=1 and Numb(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 Numb(num)
if num>=0 then
return num
else
return num*(-1)
end if
end sub
Sub CheckLag()
UO.DeleteJournal()
UO.Click('backpack')
repeat
wait(50)
until UO.InJournal('backpack')
end sub
Posted: 2006-12-04 10:57:47
by omi4
Какая маркировка, она ему не нужна.
Главная задача была в полном отсутствии настроек.
Добавив еще 50-60 строк его можно научить летать (например в 200 точек), брать и сбрасывать, ресатся.
только нюбу это зачем?
Posted: 2006-12-04 18:24:07
by GimFlex
omi4 wrote:Какая маркировка, она ему не нужна.
Главная задача была в полном отсутствии настроек.
Добавив еще 50-60 строк его можно научить летать (например в 200 точек), брать и сбрасывать, ресатся.
только нюбу это зачем?
а у меня тока файл марка и все зато ходит всегда там где ты захотел

Posted: 2006-12-04 23:09:11
by Edred
omi4 wrote:Добавив еще 50-60 строк его можно научить летать (например в 200 точек), брать и сбрасывать, ресатся.
...и радостно ловить анхандлед еррор ин парсер каждые 2-3 часа...
Posted: 2006-12-04 23:32:56
by omi4
Edred wrote:omi4 wrote:Добавив еще 50-60 строк его можно научить летать (например в 200 точек), брать и сбрасывать, ресатся.
...и радостно ловить анхандлед еррор ин парсер каждые 2-3 часа...
Это про скрипт или про инжект?
В 50-60 не уложился, вышло ровно +70 строк.
Рес(пустая, незнаю под кого написать)+
Добор(включая топоры..) +
разгрузка+
Медитация+
Стелса+
Рекол+
Восстановление стамины+
Работа с банком или с сундуком(автомат)+
Кол-во рун любое, ничего прописывать не нужно.
Настроек нет. Комментариев нет, нечего коментировать.
Кол-во строк 219
Posted: 2006-12-08 17:41:17
by Dimage
Ну что померились?
У кого самая длинная пиписка?
Вам самим то не стыдно?:)
Posted: 2006-12-08 17:42:18
by GimFlex
Dimage wrote:Ну что померились?
У кого самая длинная пиписка?

Вам самим то не стыдно?:)
у меня пиписка в норме

Posted: 2006-12-08 18:43:53
by Edred
Dimage wrote:Вам самим то не стыдно?:)
А чего должно быть стыдно?

Это же просто юмор такой, ты этого понять не можешь. Слишком мало тут на форуме времени пока провел. Ты посмотри кто между собой "пиписками" мерялся - сплошь одни "эксперты".
Кстати, не понимаю, почему у Омыча нет такой приписки...
Posted: 2007-01-11 00:30:13
by Destruction
Касательно маленьких скриптов на ламбер..
Вот тут, наваял - ходи тока по деревиям тыкай )
Code: Select all
sub smart_lumber()
uo.addObject("hatchet")
while uo.targeting()
wait(100)
wend
repeat
uo.addObject( "tree" )
while uo.targeting()
wait(100)
wend
repeat
uo.exec( "waittargettile " + uo.lasttile() )
uo.useobject( "hatchet" )
deljournal( "no logs|hack at the tree|pack" )
repeat
wait(100)
until uo.injournal( "no logs|hack at the tree|pack" )
until uo.injournal( "no logs" )
until false
endsub
На самом деле очень удобно, когда нужно нарубить пару десятков логов, а вставать или настраивать огроменные скрипты - лениво.