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