Page 1 of 3

Скрипт на авто хил с примочкой..........

Posted: 2005-06-04 13:02:01
by Xabus
собственно как сделать саму примочку =)
Когда в правой руке лук то скрипт приостанавливается на 3000 милисекунд....... и потом опять запускаеться............
Как это сделать? просто добавить еще 1 условие?
если можно поподробней
sub banddd()
repeat
while uo.life < 100
uo.exec("bandageself")
uo.deletejournal()
wait(100)
uo.msg('.arm_shield')
wait(3400)
wend
wait(100)
until uo.dead()
end sub

Posted: 2005-06-04 14:22:09
by Beyonder
Вот это воткни куда надо вставить проверку и паузу:

if UO.GetGraphic(uo.ObjAtLayer("Lhand"))=='0x0000' then # прописать тип лука
wait(3000)
end if

Posted: 2005-06-04 14:30:14
by Xabus
пасиба

Posted: 2005-06-04 14:39:42
by Xabus
Beyonder wrote:Вот это воткни куда надо вставить проверку и паузу:

if UO.GetGraphic(uo.ObjAtLayer("Lhand"))=='0x0000' then # прописать тип лука
wait(3000)
end if


а куда именно вставить?

sub banddd()
repeat
while uo.life < 100
uo.exec("bandageself")
uo.deletejournal()
wait(100)
uo.msg('.arm_shield')
wait(3400)
wend
if UO.GetGraphic(uo.ObjAtLayer("Lhand"))=='0x13b1' then
wait(3000)
uo.msg('.arm_shield')
end if
wait(100)
until uo.dead()
end sub

перед и за вендом ставил не пашет =( он все равно продолжает хилить! а я зачу чтобы он останавливался пока лук в руках

Posted: 2005-06-04 14:54:08
by Xabus
Beyonder wrote:
if UO.GetGraphic(uo.ObjAtLayer("Lhand"))=='0x0000' then # прописать
end if

и разве не Rhand?
менял все равно не работает! ну как это вставить?

Posted: 2005-06-04 15:10:55
by Beyonder
помоему так:

Code: Select all

sub banddd() 
repeat
while uo.life < 100
uo.exec("bandageself")
uo.deletejournal()
wait(100)
uo.msg('.arm_shield')
if UO.GetGraphic(uo.ObjAtLayer("Lhand"))=='0x13b1' then
wait(3000)
uo.msg('.arm_shield')
end if
wait(3400)
wend
wait(100)
until uo.dead()
end sub

Posted: 2005-06-04 16:31:35
by Xabus
непашет я просто проверяю
запускаю эти 2 скрипта и одевапю шит и все авно скрипт не останавливается! помогитееееее! как сделать так чтобы при взятии какого нибудь оружия или шита скрипт останавливался!?
sub banddd()
repeat
while uo.life < 100
uo.exec("bandageself")
uo.deletejournal()
wait(100)
uo.msg('.arm_shield')
wait(3400)
wend
wait(100)
until uo.dead()
end sub

sub abort()
repeat
if UO.GetGraphic(uo.ObjAtLayer('Lhand')) == 'shield' Then
UO.Exec('terminate banddd')
end if
until uo.dead()
end sub

Posted: 2005-06-05 00:51:52
by Xabus
лана проехали все то что написано сверху!
вопрос другой почему когда написано условие на проверку:
есть ли в руке лук.
Независимо от того что в руке, даже если там ничего нет, он выключает основной скрипт! почему?
ведь насколько я понимаю это скрипт дословно переводиться - если в руке есть лук, тогда скрипт banddd выключить! ну а если лука нет то продолжить работу скрипта banddd помогите пажалуйста!
sub rop()
if uo.getgraphic(uo.ObjAtLayer('Rhand')) <> 'bow' then
UO.Exec('terminate banddd')
end if
end sub

Posted: 2005-06-05 06:43:41
by Beyonder
Очень странно, но у меня этот скрипт работает.
1) 'bow' - это тип или обьект?
2) Lhand если обьект двуручный или щит, Rhand сли одноручный

Попробуй запусти это:

Code: Select all

sub Test()
UO.Print(uo.getgraphic(uo.ObjAtLayer('Lhand')))
end sub


На экран должно вывести тип текущего обьекта в левой руке (лука). Сравни его с записанным типом. Если вдруг выдало 0х0000, то замени левую руку правой и снова проверь.

Posted: 2005-06-05 12:34:41
by Xabus
вот то что у меня получилось...................
вот пример я запускаю этот скрипт он ждет когда хп стпнет меньше 100 и начинает личить, но когда я беру лук во время лечения и скрипт по сути должен ждать 3000 милискекунд, а потом продолжить лечение, он не обрашая внимания на лук все равно лечит почему?
ведь вроде все правельно написано
sub banddd()
repeat
while uo.life < 100
uo.exec("bandageself")
uo.deletejournal()
wait(100)
uo.msg('.arm_shield')
if uo.getgraphic(uo.ObjAtLayer('Lhand')) <> 'bow' then
wait(3000)
uo.msg('.arm_shield')
end if
wait(3400)
wend
wait(100)
until uo.dead()
end sub

Posted: 2005-06-05 14:22:53
by flake
Так у тебя ошибка вот тут:

Code: Select all

if uo.getgraphic(uo.ObjAtLayer('Lhand')) <> 'bow' then
wait(3000)
uo.msg('.arm_shield')
end if


Это означает, что если тип вещи в руке НЕ СОВПАДАЕТ с АЙДИ лука - скрипт будет ждать.

Попробуй вот так:

Code: Select all

if uo.getgraphic(uo.ObjAtLayer('Lhand')) == uo.getgraphic('bow') then
wait(3000)
uo.msg('.arm_shield')
end

Posted: 2005-06-05 16:37:45
by Xabus
flake wrote:Так у тебя ошибка вот тут:

Code: Select all

if uo.getgraphic(uo.ObjAtLayer('Lhand')) <> 'bow' then
wait(3000)
uo.msg('.arm_shield')
end if


Это означает, что если тип вещи в руке НЕ СОВПАДАЕТ с АЙДИ лука - скрипт будет ждать.

Попробуй вот так:

Code: Select all

if uo.getgraphic(uo.ObjAtLayer('Lhand')) == uo.getgraphic('bow') then
wait(3000)
uo.msg('.arm_shield')
end

неждет -( все равно!

Posted: 2005-06-05 17:49:10
by Xabus
Ну помогите!!!!!!!!!!!!!!!!!!!!
всеравно не работает

Posted: 2005-06-05 18:29:40
by flake
А тип лука точно прописан?
Напиши здесь, как он у тебя записан и где?

Posted: 2005-06-05 20:05:45
by Edred
Xabus wrote:Ну помогите!!!!!!!!!!!!!!!!!!!!
всеравно не работает


Не работает - понятие растяжимое. Что именно не работает? Что делает, а что не делает? Ругается? Если да, то конкретный текст сообщения. Хочешь чтобы тебе помогли - пиши конкретно. Телепаты в отпуске

Posted: 2005-06-05 20:30:08
by Xabus
flake wrote:А тип лука точно прописан?
Напиши здесь, как он у тебя записан и где?

0x13b1- тип лука........... в закладке object types

Posted: 2005-06-05 20:33:11
by Xabus
Edred wrote:
Xabus wrote:Ну помогите!!!!!!!!!!!!!!!!!!!!
всеравно не работает


Не работает - понятие растяжимое. Что именно не работает? Что делает, а что не делает? Ругается? Если да, то конкретный текст сообщения. Хочешь чтобы тебе помогли - пиши конкретно. Телепаты в отпуске


я запускаю этот скрипт он ждет когда хп стпнет меньше 100 и начинает личить, но когда я беру лук во время лечения и скрипт по сути должен ждать 3000 милискекунд, а потом продолжить лечение, он не обрашая внимания на лук все равно лечит
sub banddd()
repeat
while uo.life < 100
uo.exec("bandageself")
uo.deletejournal()
wait(100)
uo.msg('.arm_shield')
if uo.getgraphic(uo.ObjAtLayer('Lhand')) <> 'bow' then
wait(3000)
uo.msg('.arm_shield')
end if
wait(3400)
wend
wait(100)
until uo.dead()
end sub

Posted: 2005-06-06 01:42:02
by flake
А попробуй просто так:


Code: Select all

if uo.getgraphic(uo.ObjAtLayer('Lhand')) == '0х0000' then 


прямо сюда вставь тип лука

Posted: 2005-06-06 22:48:24
by Xabus
Я допер до того что
if uo.getgraphic(uo.ObjAtLayer('Rhand')) == uo.getgraphic('0x400419dd') - тут надо было писать обьект сам а не тип обьекта!
тогда другой вопрос можно ли как нить совместить тип и обьект?

Posted: 2005-06-06 23:20:27
by flake
Да. сделай так:

В начале скрипта:

Code: Select all

VAR Bow = '0x0000' ; впиши сюда тип лука


Далее, в месте проверки:


Code: Select all

uo.getgraphic(uo.ObjAtLayer('Rhand')) == Bow