нужна помощь
Moderators: Murderator+, Murderator
нужна помощь
sub poison()
UO.DeleteJournal()
while NOT UO.Dead('lasttarget') and NOT UO.Dead('self')
if not uo.poisoned('lasttarget') then
uo.press(114) #F3
UO.print("poison")
while not UO.InJournal('Your precise strike has increased the level of the poison by 1')
Wait(100)
wend
UO.print("!!!!!!!!!!!") #flag
else
if uo.poisoned('lasttarget') then
uo.press(113) #F2
UO.print("ignore")
While not UO.InJournal('Your attack penetrates their armor!')
Wait(100)
Wend
endif
endif
wend
end sub
вот скрипт суть если цель под пойзоном нажимаем ф2, это абилка армор игнор, если пойзона нет то нажимаем ф3, ибилка пойзон, но проблема есть он юзает абилку пойзон и все, поидее если цель не под пойзоном он юзает абилку пойзон и ждет записи вот в этой строке
while not UO.InJournal('Your precise strike has increased the level of the poison by 1')
Wait(100)
wend
если эта запись есть, то он должен проходить дальше, но он не проходит.
UO.DeleteJournal()
while NOT UO.Dead('lasttarget') and NOT UO.Dead('self')
if not uo.poisoned('lasttarget') then
uo.press(114) #F3
UO.print("poison")
while not UO.InJournal('Your precise strike has increased the level of the poison by 1')
Wait(100)
wend
UO.print("!!!!!!!!!!!") #flag
else
if uo.poisoned('lasttarget') then
uo.press(113) #F2
UO.print("ignore")
While not UO.InJournal('Your attack penetrates their armor!')
Wait(100)
Wend
endif
endif
wend
end sub
вот скрипт суть если цель под пойзоном нажимаем ф2, это абилка армор игнор, если пойзона нет то нажимаем ф3, ибилка пойзон, но проблема есть он юзает абилку пойзон и все, поидее если цель не под пойзоном он юзает абилку пойзон и ждет записи вот в этой строке
while not UO.InJournal('Your precise strike has increased the level of the poison by 1')
Wait(100)
wend
если эта запись есть, то он должен проходить дальше, но он не проходит.
-
- Posts: 949
- Joined: 2011-05-23 00:33:30
Re: нужна помощь
C while-ами такое бывает, их вообще не использую в скриптах, предпочитаю repeat. Проверяемое сообщение должно быть с учетом регистра, поэтому нужные сообщения лучше скопировать из журнала в скрипт.
Code: Select all
sub Poison()
repeat
uo.deletejournal()
if uo.poisoned("lasttarget") then
uo.press(113)
uo.print("Ignore")
repeat
wait(100)
until uo.injournal("Your attack penetrates their armor!")
else
uo.press(114)
uo.print("Poison")
repeat
wait(100)
until uo.injournal("Your precise strike has increased the level of the poison by 1")
end if
until uo.dead()
end sub
Re: нужна помощь
а как копировать из журнала?
-
- Posts: 949
- Joined: 2011-05-23 00:33:30
Re: нужна помощь
Сделай нужные действия чтобы требуемые сообщения появились в игре, потом в клиенте напиши ,showjournal 100 или, если новый инжект то _showjournal 100. Откроется окно с сообщениям сервера в текстовом виде и от туда копируй что нужно.
Re: нужна помощь
СПасибо уже разобрался, буду дальше пилить скрипт, если что-то не выйдет отпишусь))
Re: нужна помощь
Проблема была в том, что в журнал клилоки записываються))) теперь есть еще одна проблема:если при включенной абилке ты попадаешь в паринг, то она вырубаеться. пробовал решить это сл. способом:
но выдает парсер эрор. Все решилось)) я просто забыл синтаксис.
Code: Select all
sub Poison()
repeat
uo.deletejournal()
if uo.poisoned("lastattack") then
ignore:
uo.press(113)
uo.print("Ignore")
repeat
if uo.injournal("cliloc# 0x103114") goto ignore
wait(100)
until uo.injournal("cliloc# 0x102CEC")
else
poison:
uo.press(114)
uo.print("Poison")
repeat
if uo.injournal("cliloc# 0x103114") goto poison
wait(100)
until uo.injournal("cliloc# 0x102CF0")
end if
until uo.dead()
end sub
но выдает парсер эрор. Все решилось)) я просто забыл синтаксис.
-
- Posts: 949
- Joined: 2011-05-23 00:33:30
Re: нужна помощь
И для справки - UO.Dead('lasttarget') бесполезно, uo.dead работает только на себя.
Re: нужна помощь
Code: Select all
sub Poison()
repeat
uo.deletejournal()
if uo.poisoned("lastattack") then
ignore:
uo.press(113)
uo.print("Ignore")
repeat
if uo.injournal("cliloc# 0x103114") then goto ignore
wait(50)
endif
until uo.injournal("cliloc# 0x102CEC")
else
poison:
uo.press(114)
uo.print("Poison")
repeat
if uo.injournal("cliloc# 0x103114") then goto poison
wait(50)
endif
until uo.injournal("cliloc# 0x102CF0")
end if
until uo.dead()
end sub
вот последний вариант скрипта, но иногда вылетает с парсер эрор. Из-за чего может быть?
-
- Posts: 949
- Joined: 2011-05-23 00:33:30
Re: нужна помощь
Потому что задержки в циклах нет, и меньше 100 ставить не желательно, да и смысла нет особого. Твой скрипт
По этому правильно будет, поправь во всех частях скрипта
Code: Select all
repeat
if uo.injournal("cliloc# 0x103114") then если есть условие то делаем то что после if иначе пропускаем все тело.
goto poison
wait(50)
endif
until uo.injournal("cliloc# 0x102CF0")
По этому правильно будет, поправь во всех частях скрипта
Code: Select all
repeat
if uo.injournal("cliloc# 0x103114") then если есть условие то делаем то что после if иначе пропускаем все тело.
goto poison
else
wait(100)
endif
until uo.injournal("cliloc# 0x102CF0")
Re: нужна помощь
спасибо буду тестить)
Re: нужна помощь
Code: Select all
sub Poison()
repeat
uo.deletejournal()
if uo.poisoned("lastattack") then
ignore:
uo.press(113)
uo.print("Ignore")
repeat
if uo.injournal("cliloc# 0x103114") then goto ignore
else
wait(100)
endif
until uo.injournal("cliloc# 0x102CEC")
else
poison:
uo.press(114)
uo.print("Poison")
repeat
if uo.injournal("cliloc# 0x103114") then goto poison
else
wait(100)
endif
until uo.injournal("cliloc# 0x102CF0")
end if
until uo.dead()
end sub
иногда в 9,10,19,20 строках вылетает парсер эрор, куда можно еще задержки понаставлять? или это не из-за этого?
-
- Posts: 949
- Joined: 2011-05-23 00:33:30
Re: нужна помощь
Пробуй. И инжект скачай свежий если у тебя не такой http://rghost.ru/53116301
Code: Select all
sub Poison()
repeat
uo.deletejournal()
if uo.poisoned("lastattack") then
uo.press(113)
uo.print("Ignore")
repeat
wait(100)
until uo.injournal("cliloc# 0x102CEC") or uo.injournal("cliloc# 0x103114")
else
uo.press(114)
uo.print("Poison")
repeat
wait(100)
until uo.injournal("cliloc# 0x102CF0") or uo.injournal("cliloc# 0x103114")
end if
until uo.dead()
end sub
Re: нужна помощь
Ошибка оказывается выскакивала тогда, когда не хватало маны на абилку) вставил проверки и ошибка вроде-как пропала. Можно еще вопрос как можно проверить наличие оружия в руке?
-
- Posts: 820
- Joined: 2011-06-11 19:54:23
Re: нужна помощь
Такое работать не будет.Faint wrote:Code: Select all
if uo.injournal("cliloc# 0x103114") then goto ignore
else
wait(100)
endif
Code: Select all
if uo.injournal("cliloc# 0x103114") then
goto ignore
else
wait(100)
endif
uo.ObjAtLayer(Layer)Faint wrote:Можно еще вопрос как можно проверить наличие оружия в руке?
Допустим
Code: Select all
if uo.ObjAtLayer('Rhand') then
uo.print('В правой руке что-то есть')
else
uo.print('В правой руке пусто.')
endif