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

Прошу написать пару простеньких и полезных скриптов
http://forum.yoko.com.ua/viewtopic.php?f=20&t=7212
Page 1 of 3

Author:  1a2a3a4a5a6a [ 2006-03-31 16:59:17 ]
Post subject:  Прошу написать пару простеньких и полезных скриптов

1. Телепортация по стоуну на дуель арену.
2. Продажа всех мешков одного типа на Sell Stone.
Вот, собственно, и все. Думаю, что скрипты не сложные.

P.S. Если у кого есть учебники по написанию скриптов, то дайте линки, пожалуйста.
Заранее спасибо!

Author:  Kynep [ 2006-03-31 17:15:12 ]
Post subject:  Re: Прошу написать пару простеньких и полезных скриптов

1a2a3a4a5a6a wrote:
1. Телепортация по стоуну на дуель арену.
2. Продажа всех мешков одного типа на Sell Stone.
Вот, собственно, и все. Думаю, что скрипты не сложные.

P.S. Если у кого есть учебники по написанию скриптов, то дайте линки, пожалуйста.
Заранее спасибо!



Телепорт:
Code:
sub teled()
UO.UseObject('ID Телестоуна')
wait(1500)
UO.LClick(0,0) #Тут поставь координаты кнопки на дуель арену
end sub


Продажа:
Code:
sub prodam()
VAR k, i, meshok= тип мешка

UO.FindType(meshok)
k = UO.FindCount(meshok)
if k > 0 then
FOR i = 0 to k
UO.WaitTargetType('meshok')
wait(500)
UO.UseObject('ID Селл Стоуна')
wait(500)
UO.LClick(0,0) #Координаты кнопки подтверждения
wait(500)
next
endif
end sub


САМ НЕ ТЕСТИЛ!!!! ПИСАЛ НА РАБОТЕ!!!

Author:  1a2a3a4a5a6a [ 2006-03-31 17:54:18 ]
Post subject: 

Сейчас протестирую. И не надо писать красными большими буквами с большим кол-вом воскл. знаков. :D

Author:  Kynep [ 2006-03-31 17:55:41 ]
Post subject: 

1a2a3a4a5a6a wrote:
Сейчас протестирую. И не надо писать красными большими буквами с большим кол-вом воскл. знаков. :D


Исправил строку:
Code:
UO.WaitTargetType('meshok')

Кавычки забыл :(
*ушел домой, буду в ~21-00 по Москве*

Author:  1a2a3a4a5a6a [ 2006-03-31 18:25:45 ]
Post subject: 

Телепортация по стоуну работает.
А с продажей я долго мучался и только сейчас увидел, что ты сделал ошибку. Сейчас буду опять дерзать.

Author:  1a2a3a4a5a6a [ 2006-03-31 18:29:34 ]
Post subject: 

По скрипту на продажу:
Пишет, что нет такого предмента у меня в бекпапке.
И ты ввел переменную k для проверки кол-ва предметов. Но после того, как селлстоуном "продаешь" мешок он остается. Мне кажется, что это не верное решение. Но тебе лучше знать.

Author:  1a2a3a4a5a6a [ 2006-03-31 20:18:35 ]
Post subject: 

Cooper, куда пропал?

Author:  Kynep [ 2006-03-31 20:46:37 ]
Post subject: 

1a2a3a4a5a6a wrote:
Cooper, куда пропал?


я тут. У меня инет упал, тока вошел ща потестю

Вот телепорт проверил, вроде работает:
Code:
sub teled() 
UO.UseObject(0x400BC158') #ID Камня телепорта(в Брите)
wait(3000)
UO.LClick(405,276) #Координаты клика
end sub


Вот продажа, протестил, работает:
Code:
sub prodam() 
VAR ser, k, i, meshok='0x0E76' #тип мешка

UO.FindType(meshok)
k = UO.FindCount(meshok)
while k > 0
UO.FindType(meshok)
ser = UO.GetSerial('finditem')
UO.WaitTargetObject(ser)
wait(1000)
UO.UseObject('0x4023D402')
wait(2000)
UO.LClick(190,135) #Координаты клика
wait(3000)
UO.Drop(1,0,0,0,ser)
wait(1000)
UO.FindType(meshok)
wait(500)
k = UO.FindCount(meshok)
wend
end sub


Пустые мешки бросает

Author:  Kynep [ 2006-03-31 21:40:09 ]
Post subject: 

Все протестил, работает пользуй

Author:  1a2a3a4a5a6a [ 2006-03-31 22:56:29 ]
Post subject: 

Телепорт у мя и так работал, а на продажу я посмотрю. Только выкидывание мешков мне не надо было, уберу.
А вообще, огромное спасибо!
Кстати, сложно ли реализовать самую простую ходилку до координат x, y?

Author:  Kynep [ 2006-03-31 23:03:18 ]
Post subject: 

1a2a3a4a5a6a wrote:
Телепорт у мя и так работал, а на продажу я посмотрю. Только выкидывание мешков мне не надо было, уберу.
А вообще, огромное спасибо!
Кстати, сложно ли реализовать самую простую ходилку до координат x, y?


Если не уберешь выкидывание, то скрипт заклинит, можно дописать подбор после продажи, вот ходилка:

(С) ВЕТЕРАН
Code:
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

Author:  admir [ 2006-03-31 23:47:39 ]
Post subject: 

меню из столба надежнее делать через uo.recall('ID','nomer')

Author:  Kynep [ 2006-04-01 00:00:56 ]
Post subject: 

admir wrote:
меню из столба надежнее делать через uo.recall('ID','nomer')


Ну ка сделай красиво )) :P

Author:  Sfagnum [ 2006-04-01 00:28:56 ]
Post subject: 

Cooper wrote:
Если не уберешь выкидывание, то скрипт заклинит, можно дописать подбор после продажи,
а просто игнорить мешки? :roll:
Cooper wrote:
вот ходилка:

(С) ВЕТЕРАН
а он ходилки писал :shock:

ЗЫ admir прав.

да и прыжок по стоуну лучше через поиск по типу + uo.recall('finditem','nomer').

Author:  Kynep [ 2006-04-01 00:34:18 ]
Post subject: 

Sfagnum wrote:
Cooper wrote:
Если не уберешь выкидывание, то скрипт заклинит, можно дописать подбор после продажи,
а просто игнорить мешки? :roll:
Cooper wrote:
вот ходилка:

(С) ВЕТЕРАН
а он ходилки писал :shock:

ЗЫ admir прав.

да и прыжок по стоуну лучше через поиск по типу + uo.recall('finditem','nomer').


ХЗ, про игнор не подумал :( , а остальное в ЛС

Author:  Sfagnum [ 2006-04-01 00:38:01 ]
Post subject: 

Cooper wrote:
ХЗ, про игнор не подумал :(
8)
Cooper wrote:
а остальное в ЛС
кому? мне? неее мне не надо :)

Author:  SESTRA [ 2006-04-01 05:56:55 ]
Post subject: 

А как узнавать ккардинаты клика ?)по сталбу )
например 421 321 как их узнать вот написаны ани в скрипте а откуда их взяли?)

Author:  Edred [ 2006-04-01 09:37:48 ]
Post subject: 

SESTRA wrote:
А как узнавать ккардинаты клика ?)по сталбу )
например 421 321 как их узнать вот написаны ани в скрипте а откуда их взяли?)


Открой встроенный редактор скриптов и посмотри на верхнюю строку...

Author:  1a2a3a4a5a6a [ 2006-04-01 10:20:58 ]
Post subject: 

SESTRA wrote:
А как узнавать ккардинаты клика ?)по сталбу )
например 421 321 как их узнать вот написаны ани в скрипте а откуда их взяли?)

Uopilot, прога такая есть еще.

Author:  1a2a3a4a5a6a [ 2006-04-01 10:25:06 ]
Post subject: 

Cooper wrote:
(С) ВЕТЕРАН
Code:
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

Не очень я понял, как работает эта ходилка. А в какую координату она пойдет? И у мя выдавалась ошибка. Что-то дополнительно нужно ставить к ней?

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