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

Anything and all.

Moderators: Murderator+, Murderator

Xabus
Posts: 117
Joined: 2004-05-18 02:24:25

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

Post 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
Beyonder
Expert!
Posts: 388
Joined: 2005-04-23 10:19:43
Contact:

Post by Beyonder »

Вот это воткни куда надо вставить проверку и паузу:

if UO.GetGraphic(uo.ObjAtLayer("Lhand"))=='0x0000' then # прописать тип лука
wait(3000)
end if
Xabus
Posts: 117
Joined: 2004-05-18 02:24:25

Post by Xabus »

пасиба
Xabus
Posts: 117
Joined: 2004-05-18 02:24:25

Post 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

перед и за вендом ставил не пашет =( он все равно продолжает хилить! а я зачу чтобы он останавливался пока лук в руках
Xabus
Posts: 117
Joined: 2004-05-18 02:24:25

Post by Xabus »

Beyonder wrote:
if UO.GetGraphic(uo.ObjAtLayer("Lhand"))=='0x0000' then # прописать
end if

и разве не Rhand?
менял все равно не работает! ну как это вставить?
Beyonder
Expert!
Posts: 388
Joined: 2005-04-23 10:19:43
Contact:

Post 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
Xabus
Posts: 117
Joined: 2004-05-18 02:24:25

Post 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
Xabus
Posts: 117
Joined: 2004-05-18 02:24:25

Post by Xabus »

лана проехали все то что написано сверху!
вопрос другой почему когда написано условие на проверку:
есть ли в руке лук.
Независимо от того что в руке, даже если там ничего нет, он выключает основной скрипт! почему?
ведь насколько я понимаю это скрипт дословно переводиться - если в руке есть лук, тогда скрипт banddd выключить! ну а если лука нет то продолжить работу скрипта banddd помогите пажалуйста!
sub rop()
if uo.getgraphic(uo.ObjAtLayer('Rhand')) <> 'bow' then
UO.Exec('terminate banddd')
end if
end sub
Beyonder
Expert!
Posts: 388
Joined: 2005-04-23 10:19:43
Contact:

Post by Beyonder »

Очень странно, но у меня этот скрипт работает.
1) 'bow' - это тип или обьект?
2) Lhand если обьект двуручный или щит, Rhand сли одноручный

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

Code: Select all

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


На экран должно вывести тип текущего обьекта в левой руке (лука). Сравни его с записанным типом. Если вдруг выдало 0х0000, то замени левую руку правой и снова проверь.
Xabus
Posts: 117
Joined: 2004-05-18 02:24:25

Post 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
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post 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
Xabus
Posts: 117
Joined: 2004-05-18 02:24:25

Post 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

неждет -( все равно!
Xabus
Posts: 117
Joined: 2004-05-18 02:24:25

Post by Xabus »

Ну помогите!!!!!!!!!!!!!!!!!!!!
всеравно не работает
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post by flake »

А тип лука точно прописан?
Напиши здесь, как он у тебя записан и где?
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Xabus wrote:Ну помогите!!!!!!!!!!!!!!!!!!!!
всеравно не работает


Не работает - понятие растяжимое. Что именно не работает? Что делает, а что не делает? Ругается? Если да, то конкретный текст сообщения. Хочешь чтобы тебе помогли - пиши конкретно. Телепаты в отпуске
Xabus
Posts: 117
Joined: 2004-05-18 02:24:25

Post by Xabus »

flake wrote:А тип лука точно прописан?
Напиши здесь, как он у тебя записан и где?

0x13b1- тип лука........... в закладке object types
Xabus
Posts: 117
Joined: 2004-05-18 02:24:25

Post 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
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post by flake »

А попробуй просто так:


Code: Select all

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


прямо сюда вставь тип лука
Xabus
Posts: 117
Joined: 2004-05-18 02:24:25

Post by Xabus »

Я допер до того что
if uo.getgraphic(uo.ObjAtLayer('Rhand')) == uo.getgraphic('0x400419dd') - тут надо было писать обьект сам а не тип обьекта!
тогда другой вопрос можно ли как нить совместить тип и обьект?
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post by flake »

Да. сделай так:

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

Code: Select all

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


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


Code: Select all

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