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

помогите с написанием скрипта
http://forum.yoko.com.ua/viewtopic.php?f=20&t=15200
Page 1 of 1

Author:  WazzupP [ 2009-10-20 10:42:23 ]
Post subject:  помогите с написанием скрипта

скрипт на кормление животного:
Code:
sub oclock()
horse() #слазиет с лошади
UO.DeleteJournal()
ock:
UO.UseObject(oSeif) #открывает сейф с кормом для лошади
UO.FindType(oEat,'0x0000',oSeif) #находит корм в сейфе
UO.MoveItem('finditem','1',ock) #бросает корм на лошадь
wait(1000)
if not uo.injournal('eat') then
UO.FindType(oEat,'0x0000','backpack') #если лошадь не ест то ищет корм в бекпаке
UO.MoveItem('finditem','1',oSeif) #переносит корм обратно в сейф
horse1() # садится на лошадь
else
goto ock #если лошадь сьедает корм то начинает с начала
end if
end sub

sub horse1()
   UO.Say("all stop")
   UO.Useobject(ock)
end sub

sub horse()
   uo.UseObject('self')
   uo.waittargetobject('laststatus')   
end sub

люди, простите если поместил тему в нетот топик... помогите с написанием скрипта... вроде всё правильно написанно... почему он не зацикливается? вроде написал что пока лошадь не наестся то он будет кидать на неё по одной морковке.... только ненадо говорить что такой скрипт уже есть... посматрите мой пожалуйста... начинал скриптовать и хочу сам чтонибудь написать...

Author:  Scripts Writer [ 2009-10-20 17:58:41 ]
Post subject: 

Значит начнём по-порядку.

1. goto использовать можно, но не желательно- я бы даже сказал не нужно, т.к. 99% скриптов можно написать с использованием таких прекрасных конструкций как циклы- благо в инжекте их есть аж 3 типа(repeat/until с поздним условием, while/wend с ранним условием, for/next с заданным кол-вом повторений).

2. Вызов второстепенных функций несколько усложняет и написание и чтения скрипта, поэтому там где можно без них обойтись- желательно обходиться без них.

3. oSeif, oEat,ock- что это за переменные? Всё таки здесь и в самом деле не телепаты собрались, и раз уж выкладываешь скрипт- переменные желательно чтобы так же были видны. Да и объявлять их лучше внутри главной функции.

4. UseObject/FindType. А где задержка? Всё таки требуется некоторое время чтобы сундук открылся и с ним можно было бы работать.

5. MoveItem/horse1(). А после MoveItem и подавно без задержки не обойтись. Либо краш словишь либо блокировку от сервера за слишком быстрое перемещение вещей.

6.
Code:
uo.waittargetobject('laststatus') 
это что? Какой ластстатус?

Author:  Mirage [ 2009-10-20 17:59:54 ]
Post subject: 

1)учи уроки - там написано.
2)ошибка в goto
3)зачем вообще так зацикливать таким макаром?

Author:  WazzupP [ 2009-10-21 03:13:35 ]
Post subject: 

а у меня всё работает! а зачем писать переменные? разве както поможет то что вы будете знать ид сундука или лошади которую я кормлю? вот работающий скрипт:

Code:
sub horse1()
   UO.Say("all stop")
   UO.Useobject(ock)
end sub

sub horse()
   uo.UseObject('self')
   UO.Say("all stop")
end sub

sub oclock()
horse() #слазит с лошади
UO.DeleteJournal()
ock:
UO.UseObject(oSeif) #открывает сундук с кормом
UO.FindType(oEat,'0x0000',oSeif) #находит в сундуке корм
UO.MoveItem('finditem','1',ock) #кидает одну морковку на лошадь
wait(1000)
if uo.injournal('the carrots') then
UO.FindType(oEat,'0x0000','backpack') #если лошадь не ест, то ищет корм  в бэкпаке
UO.MoveItem('finditem','2',oSeif) #перетаскивает морковку обратно в сейф
horse1() #садится на лошадь
else
goto ock #если лошадь съела то возвращается в начало скрипта
end if
end sub

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