| Yoko http://forum.yoko.com.ua/ |
|
| Как определить смерть элема? http://forum.yoko.com.ua/viewtopic.php?f=3&t=976 |
Page 1 of 1 |
| Author: | Edred [ 2004-07-25 18:58:37 ] |
| Post subject: | Как определить смерть элема? |
Чего-то мозги не варят совсем, не могу придумать, как в скрипте зафиксировать момент смерти элема, с которым чар сражается. Чар на фишинге, при нападении на чара элема (проверка простейшим способом - если здоровье чара становится меньше 150), чар скидывает удочку в трюм и берет из трюма вилку и щит. В этот момент скрипт включает вар и встает на паузу. Пока сделано что когда здоровье чара снова станет 150 - тогда вилку и щит в трюм, слутить все что выпало с элема, взять в руки удочку и продолжать рыбачить. Но хочется соптимизировать. Благо в результате рыбалки и бинтов навалом, так что если определить момент окончания сражения - то можно будет значительно ускорить процесс. После элема трупа не остается. Плиз. Мне достаточно только самой идеи. |
|
| Author: | Daioh [ 2004-07-25 19:17:04 ] |
| Post subject: | |
UO.Dead(Elem) |
|
| Author: | Edred [ 2004-07-25 19:32:29 ] |
| Post subject: | |
Daioh wrote: UO.Dead(Elem)
Во-первых, вот что написано в хелпе: "Возвращает параметр обьекта object (по умолчанию - персонажа игрока) - дохлость. Правильно работает только со своим персонажем, с другими не гарантируется". Это про UO.Dead. Во-вторых, что ты имеешь в виду, под Elem? Серийника элема у меня нету. Я же написал, что скрипт на паузу просто встает. Может есть дургие варианты? Этот гиморный и ненадежный. |
|
| Author: | Daioh [ 2004-07-25 20:05:12 ] |
| Post subject: | |
А... я что-то сам не подумал... Если известен тип элема, то параллельно можно пустить проверку: while not UO.Dead() UO.FindType(TElem,-1,'ground') if UO.FindCount()>0 then UO.Say('STOP') else UO.Say('GO') endif wait(1500) wend А в основном, поставить проверку на UO.InJournal('STOP') и UO.InJournal('GO') |
|
| Author: | Edred [ 2004-07-25 20:14:27 ] |
| Post subject: | |
Daioh wrote: А... я что-то сам не подумал...
Если известен тип элема, то параллельно можно пустить проверку: while not UO.Dead() UO.FindType(TElem,-1,'ground') if UO.FindCount()>0 then UO.Say('STOP') else UO.Say('GO') endif wait(1500) wend А в основном, поставить проверку на UO.InJournal('STOP') и UO.InJournal('GO') Это я тоже уже думал делать, только элем во время сражения ходит, он может легко отойти от чара несколько шагов и снова подойти. Лучше, думаю, попробую отлавливать звук "взрыва" элема, когда он убит, раздается такой звучок, вот, наверное, его и буду контролировать... А для надежности еще таймер и проверку здоровья... |
|
| Author: | Yoko [ 2004-07-25 20:47:44 ] |
| Post subject: | |
просто проверка здоровья |
|
| Author: | Daioh [ 2004-07-25 20:48:05 ] |
| Post subject: | |
Edred wrote: он может легко отойти от чара несколько шагов и снова подойти
UO.Exec('set finddistance 15') думаю будет достаточно. |
|
| Author: | evr0 [ 2004-07-26 09:18:58 ] |
| Post subject: | |
может быть просто фиксирование типа трупа на земле, вот и все... 0x2006 тип трупа |
|
| Author: | Daioh [ 2004-07-26 10:29:19 ] |
| Post subject: | |
evr0 wrote: может быть просто фиксирование типа трупа на земле, вот и все... 0x2006 тип трупа
А вдруг вылезет новый элем до исчезновения старого трупа? |
|
| Author: | evr0 [ 2004-07-26 10:43:15 ] |
| Post subject: | |
вот если так часто вылазят элемы то тогда не сработает +) |
|
| Author: | Bambr [ 2004-07-26 12:44:07 ] |
| Post subject: | |
Edred wrote: Daioh wrote: UO.Dead(Elem) Во-первых, вот что написано в хелпе: "Возвращает параметр обьекта object (по умолчанию - персонажа игрока) - дохлость. Правильно работает только со своим персонажем, с другими не гарантируется". Это про UO.Dead. Во-вторых, что ты имеешь в виду, под Elem? Серийника элема у меня нету. Я же написал, что скрипт на паузу просто встает. Может есть дургие варианты? Этот гиморный и ненадежный. Дык получи серийник в бою: UO.GetSerial(lasttarget) |
|
| Author: | Edred [ 2004-07-26 12:48:37 ] |
| Post subject: | |
evr0 wrote: может быть просто фиксирование типа трупа на земле, вот и все... 0x2006 тип трупа
Ты читай внимательнее мой пост - после водного элема трупа не остается... |
|
| Author: | Edred [ 2004-07-26 12:53:01 ] |
| Post subject: | |
Хех, надо еще сам момент боя-то поймать... Ладно, пока сделал отлов звука "взрыва" элема и контроль мессаги о прибавлении кармы/феймы и контроль здоровья чара... Теперь тестирую Вся проблема-то как раз в том, что не хотелось заморачиваться с самим боем... чар прекрасно ложит элема сам, просто скрипт на паузу и все. Но ждать пока здоровье само собой восстановится после боя - долго. Вот и хотел соптимизировать. Всем спасибо за идеи. |
|
| Author: | Daioh [ 2004-07-26 12:54:47 ] |
| Post subject: | |
Сразу после того, как завалил, отхелись, а то мало ли что... |
|
| Author: | Edred [ 2004-07-31 14:37:52 ] |
| Post subject: | |
Yoko wrote: просто проверка здоровья
Такс, все переделал, были причины, но есть проблема - не могу определить здоровье элементаля. UO.GetHP возвращает 0 Code: UO.Exec('set finddistance 4')
Тут всегда 0 независимо от уровня здоровья элема. Причем серийник определяется правильно, проверял. Какие есть еще варианты в скрипте получить здоровье другого персонажа? |
|
| Author: | Yoko [ 2004-07-31 21:00:46 ] |
| Post subject: | |
Track World проверь |
|
| Author: | Edred [ 2004-08-01 19:08:39 ] |
| Post subject: | |
Yoko wrote: Track World проверь
Включен. На самом деле, если Track world items выключен, то и сериал элема не получается взять. А сериал берется. Единственное, что мне приходит в голову - я использую версию 312.19 (перейти на 4х мешает step number failure, хотя может у меня ее и не будет, не проверял, но шард на UNCP)... Может можно где-то взять предыдущую версию инжи? Та, которая без step number failure? Мне бинды на колесо мыши на хрен не нужны... |
|
| Page 1 of 1 | All times are UTC+02:00 |
| Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |
|