Page 1 of 2
Ходилка (Пользуйтесь)
Posted: 2005-04-23 15:56:52
by Destruction
Написал свою первую ходилку (было нелегко, но я справился), ходилка прет напролом кратчайшим путем к указанной точке, правда препятствия не обходит (обход оных в процессе написания).
Координаты я ваще забил внутри скрипта (пока отлаживал), но можно повесить как аргументы функции.
Длинно получилось - ибо нету у нас тут ни case ни хотябы elseif - вот и получось 8ем километровых условий
Code: Select all
sub hodilka()
var x,y,cx,cy,tmp,i=0, temp
x = 1642 ;//Координата x-назначения.
y = 2669 ;//Координата y-назначения.
x = -(uo.getx() - x)
y = -(uo.gety() - y)
cx = x
cy = y
if cx <= 0 then
cx = -cx
endif
if cy <= 0 then
cy = -cy
endif
tmp = str(cx+cy)
if val(tmp) then
DIM step[val(tmp)]
repeat
i=i+1
if x>0 && y>0 && x==y then
x=x-1
y=y-1
cx=x
cy=y
step[i]=2
endif
if x>0 && cx>cy then
x=x-1
cx=x
step[i]=3
endif
if x>0 && y<0 && cx==cy then
x=x-1
y=y+1
cx=x
cy=-y
step[i]=6
endif
if y<0 && cy>cx then
y=y+1
cy=-y
step[i]=9
endif
if x<0 && y<0 && x==y then
x=x+1
y=y+1
cx=-x
cy=-y
step[i]=8
endif
if x<0 && cx>cy then
x=x+1
cx=-x
step[i]=7
endif
if x<0 && y>0 && cx==cy then
x=x+1
y=y-1
cx=-x
cy=y
step[i]=4
endif
if y>0 && cy>cx then
y=y-1
cy=y
step[i]=1
endif
if x==-0 then
x=0
endif
if y==-0 then
y=0
endif
until cx==0 && cy==0
temp=i
tmp=''
for i=1 to temp
tmp=tmp+str(step[i])
next
uo.addstep(tmp)
endif
uo.resend()
endsub
Posted: 2005-04-23 16:13:47
by Wolf
и это 8 километров условий?...... хм..... а мне кажется вполне нормальный и не такой уж и длинный скриптик..... у мя минингс реколом раза в 3 длиннее

Posted: 2005-04-23 16:17:42
by I'm
Одна из первых ходилок использующих "addstep"
Действительно прет напролом
Кстати нетакая она и большая.
ЗЫ тебе сказачно повезло что у тебя такой маленький мининг.
Posted: 2005-04-23 16:20:26
by Destruction
Ну вообще - интеллект предпологает, разум распологает.
Чисто интеллектуальном уровне - я чувствую, что это дело мона загнать в цикл и срезать раза в 4, а вот сколько не напрягаю мозг - ну не получается, мб потом придумаю формулу для расчета для всех
ПС: В конец дописал ресенд - чтобы избавиться от глюка с эддстеп, который я описал в риквестах ток, что.
Posted: 2005-04-23 16:39:45
by Leo
Доделаешь - опробую...У меня как раз скрипту надо, штобы чар шёл "напролом".
Posted: 2005-04-23 16:40:39
by Revenant
Надо и свою приткнуть

все никак серьезно не займусь
Code: Select all
sub walk(x,y)
Dim a[9]
a[1]=38
a[2]=33
a[3]=39
a[4]=36
a[5]=0
a[6]=34
a[7]=37
a[8]=35
a[9]=40
var xs, ys, n, m
while (xs<>x) or (ys<>y)
xs=UO.GetX("self")
ys=UO.GetY("self")
if x > xs then
n=3
else
if x < xs then
n=1
else ; x=xs
n=2
endif
endif
if y > ys then
m=3
else
if y < ys then
m=1
else ; y=ys
m=2
endif
endif
UO.Press(a[n+((m-1)*3)])
wend
end sub
Posted: 2005-04-23 16:47:29
by Destruction
Leo wrote:Доделаешь - опробую...У меня как раз скрипту надо, штобы чар шёл "напролом".
Ставь пока АСМ - обход препятствий, тока через НЕГО будет нормальным.
Posted: 2005-04-24 02:06:37
by MazaFaka
все хорошо !
но - в первом скрипте нет не какой анимации - как по шахмотной доске преставляют - но двигается быстро)
а во втором ходит тока в развалочку(
и почему то у меня после нескольких использований он ваще ломится кудато в другую сторону от точки которую указал в чем проблемма кто подскажет?
а будет лучше если кто нибудь даст ходилку в которой чар бегает на максимальной скорости та что с приследованием у меня тоже чар ходит и не кого не догоняет(((((((((((((((((((((((помогите плиз!
Posted: 2005-04-24 02:28:17
by Destruction
Нифига не понял
*

*
Posted: 2005-04-24 02:41:37
by MazaFaka
вроде все просто пояснил.................
дайте пожалуста скрипт в котором при указании координат цели чар не шЁл к назначенной точке а бежал !
Posted: 2005-04-24 09:04:24
by Leo
MazaFaka wrote:вроде все просто пояснил.................
дайте пожалуста скрипт в котором при указании координат цели чар не шЁл к назначенной точке а бежал !
Это в опциях УО ставится...
Posted: 2005-04-24 14:15:42
by Destruction
AlwaysRun называется.
Posted: 2005-05-03 10:41:28
by Wolf
Destruction, мог бы ты в своём скрипте описать для меня что чар делает? ну например напротив строки пояснение.... мне нада свою ходилку написать, я вот сморю на твой скрипт и больше половины не понимаю

заранее спасибо
Posted: 2006-04-16 02:36:25
by Destruction
Эхх, я бы хотел для автора поста выше расписать, что как и почему - но я сам не могу въехать, как я до такого додумался.
Чо сказать хотел - глядите какой топик раскопал

)
Кстате тута интересный способ получения направления в которе надо идти, чтобы придти к точке.
PS: Буду благодарен, если кто-то скрипт распишет по-пунктам

Posted: 2006-04-18 23:33:49
by kooler
line 80 : function not found - uo.addstep
Че эт значит?

Posted: 2006-04-18 23:47:06
by admir
во намутили то )
Code: Select all
sub hod(xko,yko)
var mx=UO.GetX()
var my=UO.GetY()
if mx == xko and my > yko then
UO.Press(33)
endif
if mx == xko and my < yko then
UO.Press(35)
endif
if mx < xko and my == yko then
UO.Press(34)
endif
if mx < xko and my > yko then
UO.Press(39)
endif
if mx < xko and my < yko then
UO.Press(40)
endif
if mx > xko and my == yko then
UO.Press(36)
endif
if mx > xko and my > yko then
UO.Press(38)
endif
if mx > xko and my < yko then
UO.Press(37)
endif
end sub
вызываем данный ход циклом
Code: Select all
sub go()
repeat
hod(xkord,ykord) #вместо xkord , ykord ваши координаты )
wait(5)
until uo.GetX()==xkord and uo.getY()==ykord # ну или либо в переменную занать все это
end sub
Posted: 2006-04-19 18:18:33
by Sanch
Автору респект, тк не люблю большие ходилки, а те которые маленькие, такими зигзагами ходят.
Заодно спрошу, есть ли про uo.addstep в хелпе, в описании комманд?
Posted: 2006-04-19 20:24:18
by Destruction
Sanch wrote:Автору респект, тк не люблю большие ходилки, а те которые маленькие, такими зигзагами ходят.
Заодно спрошу, есть ли про uo.addstep в хелпе, в описании комманд?
Нету. Но он глюканый.
Posted: 2006-04-19 20:54:02
by Edred
Destruction wrote:Нету. Но он глюканый.
Ну в хелпе его нет не по этому, а потому, что Йоко не обновлял хелп начиная с версии 312.19
Posted: 2006-04-19 21:28:01
by Destruction
Edred wrote:Destruction wrote:Нету. Но он глюканый.
Ну в хелпе его нет не по этому, а потому, что Йоко не обновлял хелп начиная с версии 312.19
У тебя логика странная.
Попробуй в addstep передать побольше циферок, он тогда такое шоу устраивает, когда 15 шагов пройдет, когда 18..
Я не понял, кто тут утверждал, что в хелпе нету, потому, что он глюканутый?
Я сказал, что в хелпе его нету, а сама команда - глючная.