Привет всем!
Спустя 7-8 лет решил вернуться в УО. Играю на американском шарде (ping ~160).
Ближе к сути. Нужен скрипт, который будет:
1) включаться и выключаться по нажатии определенной клавиши;
2) Условия:
а) Персонаж спрятан (uo.Hidden) - главное условие,
б) Определенное сообщение в журнале;
3) При выполнении условий: включая бег, пробегать определенное количество тайлов;
4) При пройденном количестве тайлов: переходить с бега на шаг и ждать следующего сообщения (п.2/б);
5) При следующем сообщении повторять все со второго пункта.
Механика работы скилла Stealth.При useskill 'Hiding', персонаж переходит в состояние Спрятан. Если тут же сделать шаг, то происходит проверка на скилл Stealth. Если стелса достаточно (а его ГМ), то можно сразу же начинать движение. В журнале появляется строка "You begin to move quietly." Дальше скилл стелс можно вообще не использовать, т.е. сервер сам делает проверки каждые 10 шагов. Т.е. если я зажму кнопку движения и буду просто идти, то я не выйду из стелса никогда (конечно если мне не помогут
) И при этом useskill 'Stealth' мне делать не надо.
Теперь самое интересное. Если после прохождения проверки и сообщения "You begin to move quietly." перейти в режим бега (например нажав клавишу AlwaysRun, забинденую через клиент), то персонаж пробегает 4-5 тайлов, начинается новая проверка на стелс и персонаж ревелится. Но если вовремя отжать бег и пройти стелс-проверку в режиме шага, то движение продолжится в стелсе.
Что сделал я.Начитался топиков про
Always Run On|Off,
Как одной кнопкой включить и выключить скрипт, еще парочку тем и схлестнул всю эту инфу в какой-то дикой угарной смеси (да, да, я не умею писать скрипты, я только их редактирую). Вот что из этого получилось:
Code:
sub TEST()
###################################################
sub AR_On()
uo.DeleteJournal() # чищу журнал
While uo.Hidden() # Выполняюсь пока в хайде
###################################################
if UO.GetGlobal('ST') == '1' then
UO.SetGlobal('ST','2')
#wait(5000) # Cтрока используется для примера,
# чтобы проследить как выгрузится скрипт.
return
else
UO.SetGlobal('ST','1')
endif
while 1 == 1
if UO.GetGlobal('ST') == '2' then
#wait(5000) # Cтрока используется для примера.
UO.SetGlobal('ST','0')
return
endif
###################################################
if UO.InJournal('0xABCA') then # Если в журнале нашлось "You begin to move quietly", то
uo.DeleteJournal()
uo.press(120) # жму F9
wait(900) # Вот то, на чьих соплях держится вся эта ерунда - ТАЙМЕР!
uo.press(120) # жму F9 еще раз чтобы выключить AlwaysRun.
endif
Wend
end sub
###################################################
#wait(2000) # Cтрока используется для примера.
#UO.Print("ИДЕТ ТЕСТ ...") # Cтрока используется для примера.
wend
end sub
Вот как это выглядит в динамике:
http://youtu.be/lcWd3CmXO_IПонятно, что делать такие действия, основываясь только на задержке между нажатиями, да еще и с пингом выше 150 - это ерунда.
Сам я не осилю, но видел что на инжекте пишут какие-то космические вещи с ресурсами... сам тебе рубит, сам тебе копает, реколится, куёт, переплавляет/продает... В общем, ваха не килл плиз хелп дай шото=)
P.S. Кстати, если кому интересны пеньки, как у меня, на последних клиентах (7.0.х.х), обращайтесь, помогу.