Yoko
http://forum.yoko.com.ua/

Лимбер
http://forum.yoko.com.ua/viewtopic.php?f=20&t=5541
Page 1 of 1

Author:  Eddy [ 2006-02-06 18:01:27 ]
Post subject:  Лимбер

Всем привет !!!
У меня был большой перерыв в УО, думал что вообще завязал с ней, но ошибся ...
Раньше у меня был скрипт на Лимбер, а вот щас не могу найти что то подобное
Я посмотрел ваш форум, перебрал все скрипты, но что то не получаеться, может мне кто поможет
Скрипт добольно простой, по сравнению с теми что я видел тута
Вообщем, надо чтоб:
Ходил по координатам к дереву, от одного к другому, третьему и т.д. и так по кругу и рубил пока не вырубит всё из дерева
Скрипт под ПОЛ
Помню там что то с GoTo было связано ...
Если кто пожет помочь, помогите Плзз, буду очень признателен

Author:  GimFlex [ 2006-02-06 18:08:50 ]
Post subject: 

помог бы но не до твоего скрипта сейчас попробуй понемногу вспоминать сюда вопросы задавай мы поможем

Author:  Eddy [ 2006-02-06 18:36:11 ]
Post subject: 

вот смотри есть рабочий скрипт ...
только мне надо чтоб он подходил к дереву, не по тайлу, а по заданным координатам и рубил его

Code:
sub main()
uo.deletejournal()
uo.set('finddistance',1)
var i,b,f,tile,xx,yy,j
dim x[50]
dim y[50]
dim t[50]
dim a[50]
uo.serverprint('.autoloop 100')

start:

a[1] = "3316 592 2112 0"
a[2] = "3283 592 2109 0"
a[3] = "3280 592 2106 0"
a[4] = "3480 592 2105 0"
a[5] = "3480 592 2104 0"
a[6] = "3302 592 2103 0"
a[7] = "3480 592 2102 0"
a[8] = "3277 592 2100 0"
a[9] = "3480 592 2099 0"
a[10] = "3480 592 2098 0"
a[11] = "3283 592 2097 0"
a[12] = "3480 592 2096 0"
a[13] = "3480 592 2094 0"
a[14] = "3286 592 2091 0"
a[15] = "3277 592 2088 0"
a[16] = "3277 592 2085 0"
a[17] = "3480 592 2083 0"
a[18] = "3277 596 2082 0"
a[19] = "3480 596 2085 0"
a[20] = "3296 596 2088 0"
a[21] = "3480 596 2092 0"
a[22] = "3280 596 2094 0"
a[23] = "3288 596 2097 0"
a[24] = "3480 596 2099 0"
a[25] = "3230 596 2101 0"
a[26] = "3480 596 2103 0"
a[27] = "3480 596 2104 0"
a[28] = "3290 596 2106 0"
a[29] = "3288 596 2112 0"


for j = 1 to 50
if a[j] then
b = a[j]
i = 1
t[j] = b[0]
while b[i] <> " "
t[j] = t[j] + b[i]
i = i + 1
wend
i = i + 1
x[j] = b[i]
while b[i] <> " "
x[j] = x[j] + b[i+1]
i = i + 1
wend
i = i + 1
y[j] = b[i]
while b[i] <> " "
y[j] = y[j] + b[i+1]
i = i + 1
wend
xx = val(x[j])
yy = val(y[j])
tile = val(t[j])
uo.print("Tile: "+t[j]+" X: "+x[j]+" Y: "+y[j])
uo.print("Tree number "+str(j))
rubka(xx,yy,tile)
endif
next
goto start:
end sub

sub rubka(xx,yy,tile)
uo.deletejournal()
UO.Exec('terminate fuck_init')
UO.Exec('exec fuck_init')
hungry()
var a,b,c
uo.print (str(xx)+" "+str(yy))
var D = 1
var T = "True"
var x = xx
var y = yy
GoToTile(x,y,d,t)
c = uo.timer()
uo.exec ("waittargettile "+str(tile)+" "+str(xx)+" "+str(yy)+" 0")
wait (500)
uo.usetype('0x0F43')
repeat
wait (500)
until uo.injournal("Âû ïðåêðàùàåòå") or uo.injournal("Öèêë îñòàíîâëåí") or uo.injournal("Âû âûðóáèëè")
wait(2000)
a = uo.getx()
b = uo.gety()
end sub

var need_hungry_level = 1
sub hungry()
var i,htest,htime,htest2
dim a[11]
a[0] = "You are absolutely stuffed"
a[1] = "You are stuffed"
a[2] = "You aren't hungry at all"
a[3] = "You are a little hungry"
a[4] = "You are somewhat hungry"
a[5] = "You are REALLY hungry"
a[6] = "Your stomash hurts"
a[7] = "Your stomash hurts and you feel dizzy"
a[8] = "You are starving"
a[9] = "You are almost dying of hunger"
a[10] = "You are DYING of hunger"
htest = 0
repeat
uo.deletejournal()
uo.serverprint(".hungry")
wait (1000)
i = 0
htest2 = 0
if uo.count("0x097B") > 0 then
repeat
if uo.injournal(a[i]) then
if (i - need_hungry_level) > 0 then
uo.exec("usetype 0x097B")
repeat
wait (50)
until uo.injournal("Tasty!") or uo.injournal("Good!") or uo.injournal("Yum!") or uo.injournal("I am already") or uo.injournal("123")
htest2 = 1
else
htest = 1
htest2 = 1
endif
endif
i = i + 1
until i == 11 or htest2 == 1
else
htest = 1
endif
until htest == 1
endsub

Var MoveDelay=500
Var MoveNumber=1
Var Ep=0.172
Sub Perp(Dir)
Var D
D=Dir
If Dir==1 Then
 D=3
EndIf
If Dir==2 Then
 D=4
EndIf
If Dir==3 Then
 D=-1
EndIf
If Dir==4 Then
 D=-2
EndIf
If Dir==-1 Then
 D=-3
EndIf
If Dir==-2 Then
 D=-4
EndIf
If Dir==-3 Then
 D=1
EndIf
If Dir==-4 Then
 D=2
EndIf
RETURN D
EndSub

Sub MoveOnce(Dir,Del,Rev)
Var Num
If Rev Then
 Num=MoveNumber+1
Else
 Num=MoveNumber
EndIf
If (Num>0) and (Dir<>0) Then
 If Dir==1 Then
  UO.Press(38,Num,Del)
 EndIf
 If Dir==2 Then
  UO.Press(33,Num,Del)
 EndIf
 If Dir==3 Then
  UO.Press(39,Num,Del)
 EndIf
 If Dir==4 Then
  UO.Press(34,Num,Del)
 EndIf
 If Dir==-1 Then
  UO.Press(40,Num-1,Del)
 EndIf
 If Dir==-2 Then
  UO.Press(35,Num,Del)
 EndIf
 If Dir==-3 Then
  UO.Press(37,Num,Del)
 EndIf
 If Dir==-4 Then
  UO.Press(36,Num,Del)
 EndIf
 If Rev Then
  If Dir<>-1 Then
   UO.Press(40,1,Del)
  EndIf
 EndIf
EndIf
EndSub

Sub GetQDir(x,y)
Var J=0
If X==0 Then
 J=1
Else
 If (Y/X)<ep Then
  J=3
 Else
  If (X/Y)<ep Then
   J=1
  Else
   J=2
  EndIf
 EndIf
EndIf
RETURN J
EndSub

sub GetDir(myx,myy,ox,oy)
Var I,J
J=0
Var X=ox-myx
Var Y=oy-myy
I=GetQDir(Abs(X),Abs(Y))
If X>=0 Then
 If Y>=0 Then
  If I==1 Then
   J=-2
  Else
   If I==2 Then
    J=-1
   Else
    If I==3 Then
     J=4
    EndIf
   EndIf
  EndIf
 Else
  If I==1 Then
   J=2
  Else
   If I==2 Then
    J=3
   Else
    If I==3 Then
     J=4
    EndIf
   EndIf
  EndIf
 EndIf
Else
 If Y>=0 Then
  If I==1 Then
   J=-2
  Else
   If I==2 Then
    J=-3
   Else
    If I==3 Then
     J=-4
    EndIf
   EndIf
  EndIf
 Else
  If I==1 Then
   J=2
  Else
   If I==2 Then
    J=1
   Else
    If I==3 Then
     J=-4
    EndIf
   EndIf
  EndIf
 EndIf
EndIf
RETURN J
endsub

sub abs(a)
Var b
If a<0 Then
 b=-a
Else
 b=a
endif
return b
endsub

Sub PermResend()
Var Mn=9
Repeat
 UO.Resend()
 Wait(MoveDelay*Mn)
Until (1>2)
EndSub

sub max(A,B)
Var C
If A>B Then
 C=A
Else
 C=B
EndIf
Return C
EndSub

sub GetDistance(X,Y)
return max(abs(X-uo.getx()),abs(Y-uo.gety()))
endsub

sub GoToTile(OX,OY,N,S)
var myx, myy, MD, J
var Lx1 ,Ly1
var Lx2 ,Ly2
var Sx ,Sy
var T
var Des=N
J=1
MD=MoveDelay*1.5
myx=uo.getx()
myy=uo.gety()
MoveOnce(GetDir(uo.getx(),uo.gety(),ox,oy),MD,False)
Sx=0
Sy=0
Lx1=uo.getx()/2
Ly1=uo.gety()/2
Lx2=Lx1/2
Ly2=Ly1/2
T=UO.Timer()
If (GetDistance(ox,oy)<>N) or ((not S) and GetDistance(ox,oy)>N) Then
 UO.Exec('exec PermResend')
EndIf
While ((GetDistance(ox,oy)<>N) or ((not S) and GetDistance(ox,oy)>N)) and (OX>=0) and (OY>=0)
 If ((UO.Timer()-T)*15>MoveDelay) Then
  T=UO.Timer()
  UO.Print(Str(uo.getx())+' '+Str(uo.gety())+' '+Str(ox)+' '+Str(oy)+' '+Str(GetDir(uo.getx(),uo.gety(),ox,oy))+' '+Str(T))
  Lx2=Lx1
  Ly2=Ly1
  Lx1=myx
  Ly1=myy
  myx=uo.getx()
  myy=uo.gety()
 endIf
 MD=MoveDelay
 If ((OX-uo.getx())*(OX-uo.getx())+(OY-uo.gety())*(OY-uo.gety())>0) Then
  MD=MD*3/GetDistance(ox,oy)
 EndIf
 wait(MD)
 If GetDistance(OX,OY)>Des Then
  MoveOnce(GetDir(uo.GetX(),uo.GetY(),ox,oy),MD,False)
 Else
  If S Then
   If GetDistance(OX,OY)<Des Then
    If GetDistance(OX,OY)<>0 Then
     MoveOnce(GetDir(ox,oy,uo.GetX(),uo.GetY()),MD,False)
    Else
     MoveOnce(GetDir(uo.GetX(),uo.GetY(),Lx2,Ly2),MD,False)
    EndIf
   EndIf
  EndIf
 EndIf
 If GetDistance(OX,OY)<>Des Then
  If (Lx2==uo.getx()) and (Ly2==uo.gety()) Then
   If (Sx<>uo.getx()) or (Sy<>uo.gety()) Then
    J=1
   EndIf
   J=J+1
   UO.Resend()
   Sx = uo.getx()
   Sy = uo.gety()
   Stun(ox,oy,J)
  EndIf
 EndIf
Wend
UO.Exec('terminate PermResend')
endsub

Sub Stun(X,Y,N)
Var I
Var myx
Var myy
myx = uo.getx()
myy = uo.gety()
For I=1 to N
 MoveOnce(perp(GetDir(myx,myy,x,y)),MoveDelay,False)
Next
Wait(MoveDelay)
UO.Resend()
If (myx==uo.getx()) and (myy==uo.gety()) Then
 For I=1 to N
  MoveOnce(-perp(GetDir(myx,myy,x,y)),MoveDelay,False)
 Next
 Wait(MoveDelay)
 UO.Resend()
EndIf
If (myx==uo.getx()) and (myy==uo.gety()) Then
 For I=1 to N
  MoveOnce(-GetDir(myx,myy,x,y),MoveDelay,False)
 Next
 Wait(MoveDelay)
 Stun(x,y,N)
EndIf   
EndSub

sub NearTile(Obj,Des)
var ox, oy, myx, myy, MD, J
var Lx1 ,Ly1
var Lx2 ,Ly2
var Sx ,Sy
var T
UO.Click(Obj)
MD=MoveDelay*1.5
ox=uo.GetX(Obj)
oy=uo.GetY(Obj)
J=1
myx = uo.getx()
myy = uo.gety()
Sx=0
Sy=0
Lx1=myx/2
Ly1=myy/2
Lx2=Lx1/2
Ly2=Ly1/2
T=UO.Timer()
If not (UO.GetDistance(Obj)==Des) Then
 UO.Exec('exec PermResend')
EndIf
While not (UO.GetDistance(Obj)==Des)
 ox=uo.GetX(Obj)
 oy=uo.GetY(Obj)
 If ((UO.Timer()-T)*15>MoveDelay) Then
  T=UO.Timer()
  UO.Print('Go to '+Str(Des)+' to '+UO.GetName(Obj))
  UO.Print(Str(UO.GetDistance(Obj)))
  UO.Print(Str(uo.GetX())+' '+Str(uo.GetY())+' '+Str(uo.GetX(Obj))+' '+Str(uo.GetY(Obj))+' '+Str(GetDir(uo.GetX(),uo.GetY(),uo.GetX(Obj),uo.GetY(Obj)))+' '+Str(T))
  Lx2=Lx1
  Ly2=Ly1
  Lx1=myx
  Ly1=myy
  myx=uo.getx()
  myy=uo.gety()
 endIf
 MD=MoveDelay*1.5
 If (UO.GetDistance(Obj)>0) Then
  MD=MD/UO.GetDistance(Obj)
 EndIf
 wait(MD)
 If UO.GetDistance(Obj)>Des Then
  MoveOnce(GetDir(uo.GetX(),uo.GetY(),uo.GetX(Obj),uo.GetY(Obj)),MD,False)
 Else
  If UO.GetDistance(Obj)<Des Then
   If UO.GetDistance(Obj)<>0 Then
    MoveOnce(GetDir(uo.GetX(obj),uo.GetY(obj),uo.GetX(),uo.GetY()),MD,False)
   Else
    MoveOnce(GetDir(uo.GetX(),uo.GetY(),Lx2,Ly2),MD,False)
   EndIf
  EndIf
 EndIf
 If UO.GetDistance(Obj)<>Des Then
  If (Lx2==uo.getx()) and (Ly2==uo.gety()) Then
   If (Sx<>uo.getx()) or (Sy<>uo.gety()) Then
    J=1
   EndIf
   J=J+1
   UO.Resend()
   Sx = uo.getx()
   Sy = uo.gety()
   Stun(uo.GetX(Obj),uo.GetY(Obj),J)
  EndIf
 EndIf
Wend
UO.Exec('terminate PermResend')
endsub



var max_wait = 3 #(v secundax)
sub gotoxy(x,y,prec)
var ld=0,ldc=0
var dx,dy
var mx,my
var ox,oy,mk,k
start:
mx=UO.GetX()
my=UO.GetY()
dx=mx-x
if dx<0 then
dx=0-dx
endif
dy=my-y
if dy<0 then
dy=0-dy
endif
if dy>dx then
dx=dy
end if
if dx<=prec then
return
end if
if not ldc then
uo.print("Lag")
end if
if dx<3 then
mk=70
else
mk=15
end if

ox=mx
oy=my
for k=1 to mk
mx=UO.GetX()
my=UO.GetY()
if mx<>ox or my<>oy then
goto sdidapl
end if
wait(10)
next
sdidapl:

mx=UO.GetX()
my=UO.GetY()
dx=mx-x
if dx<0 then
dx=0-dx
endif
dy=my-y
if dy<0 then
dy=0-dy
endif
if dy>dx then
dx=dy
end if

if dx<=prec then
return
end if
if ld==dx then
ldc=ldc+1
if ldc>max_wait then 
uo.print("Can not reach location!")
return
end if
else
ld=dx
end if

if mx==x then
if my==y then
return
endif
if my>y then
UO.Press(33)
goto start
endif
UO.Press(35)
goto start
end if
if mx<x then
if my>y then
UO.Press(39)
goto start
endif
if my==y then
UO.Press(34)
goto start
endif
UO.Press(40)
goto start
end if
if my<y then
UO.Press(37)
goto start
endif
if my==y then
UO.Press(36)
goto start
endif
UO.Press(38)
goto start
end sub

Author:  Eddy [ 2006-02-07 00:24:18 ]
Post subject: 

есть какие нить идеи ?

Author:  LordTom [ 2006-02-08 00:43:03 ]
Post subject:  отдам почти даром в краснодаре

НЕ согласен, что человека можно воспитать(перевоспитать).70% умственных способностей человека зависят от генотипа и только 30% приходятся на фенотип.Глобально человек не меняется характером в течении

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/