Помощь - Поиск - Пользователи - Календарь
Полная версия: Distro099 - Баг с баффами
UoKit.com Форумы > Ultima Online : Dev > Emulators > POL
ikorus
В Дистро099 возможен эксплойт, связанный с некорректной обработкой стамины/хитов/маны/АР при сохранении-загрузке данных чара.

Сценарий использования такой:
1. Бафаешься
2. Выходишь из игры
3. Заходишь в игру

Получается, что при разлогинивании чару дописываются статы с учтем изменений и факты бафа или дебаффа.
При повторном заходе к уже измененным статам применяюися баффы/дебаффы повторно.

Так можно много раз выйти зайти и в одного пойти на Балрона )))

Так как я играю "сам с собой", то мне достаточно было бы найти возможность сброса статов на дефолтные значения всякий раз при разлогине, но моей квалификации не хватает, чтобы это реализовать.

В Общем, помощь нужна.
RL_ka
Откуда скачан дистро?
С сайта ПОЛа или из СВН?
ikorus
Цитата(RL_ka @ 12.10.2014, 5:01) *

Откуда скачан дистро?
С сайта ПОЛа или из СВН?


С Полсервер.ком
RL_ka
Для начала скачай дистро из СВН, там обновлённая версия. На сайте старая и баговая.
Если и в СВН баг останется, тогда надо будет смотреть.
ikorus
Цитата(RL_ka @ 12.10.2014, 15:50) *

Для начала скачай дистро из СВН...


Попробую, конечно
А информацию об айтемах мультисах и акках восстанавливать надо будет?
RL_ka
Так ты замени только скрипты, и ничего не нужно будет больше восстанавливать.
ikorus
только /pkg и /scripts ?

еще бы понять, как скачать отсюда )))
https://svn.code.sf.net/p/pol-distro/code/releases/099/
RL_ka
https://ru.wikipedia.org/wiki/Subversion
для начала стоит прочитать что такое свн и как этим пользоватьсяsmile.gif
ikorus
Цитата(RL_ka @ 12.10.2014, 19:38) *

https://ru.wikipedia.org/wiki/Subversion
для начала стоит прочитать что такое свн и как этим пользоватьсяsmile.gif


качнул через тартуаз
все-таки, какие разделы подновить? /pkg и /scripts достаточно, или еще что-то надо?
RL_ka
Цитата(ikorus @ 12.10.2014, 18:56) *

качнул через тартуаз
все-таки, какие разделы подновить? /pkg и /scripts достаточно, или еще что-то надо?


Тебе виднее. Оставить то что ты не хочешь менять ("информацию об айтемах мультисах и акках"), а остальное заменить и попробовать запустить это всё.
oda128
ikorus, чтобы все данные аккаунтов и мира сохранились, скопируй папку /data в новую сборку и всего то дело.
ikorus
Подошел к делу вдумчиво:
1. посадил текущую версию на git
2. перезаписал фалы из версии, полученной через svn
3. перечитал diff, сделал chekout на те области правок, которые не понравились, остальное закоммитил

Это позволило:

- сохранить все данные по объектам и чарам
- увидеть, что изменилось
- сохранить исходное состояние данных для отката, в случае, если что-то пошло бы не так
- сохранить сделанные фиксы по цветам и звукам (клиент некорректно отображает некоторые цвета и падает на AN Ex Por)

Проблема с эксплойтом не повторяется, но при перезаходе перестали отображаться ранее наложенные бафф/дебафф в окошке - невозможно посмотреть, сколько секунд осталось.

Ну и ограничение по установке дома не нравится новое - класс сперва надо получить. Наверное, откачу это.

Остальные проблемы видимо выявятся после
RL_ka
Так может быть, раз уж ты так далеко пошёл, просто почитать немного escript и поправить скрипты так как тебе нужно? Это не так уж и сложноsmile.gif
ikorus
Цитата(RL_ka @ 16.10.2014, 19:09) *

Так может быть, раз уж ты так далеко пошёл, просто почитать немного escript и поправить скрипты так как тебе нужно? Это не так уж и сложноsmile.gif


Странно, но 10 лет назад по ескрипт было больше инфы доступной, чем сейчас - вообще ничего не смог найти именно по самому языку. А без знания синтаксиса - как слепой котенок, я ведь не программист, только питон немного понимаю, а со скриптовыми языками плотно не сталкивался.

И кстати - это я совсем недалеко пошел, просто контроль версий - это удобнее, чем туеву хучу копий хранить
PolDev
https://forum.uokit.com/index.php?showtopic...&hl=escript
Можешь познакомится с документацией.

А по поводу твоей проблемы, то её можно легко решить добавив в любой logon/reconnect скрипт проверку на props баффов и уберать их всегда с помощью этих двух скриптов. Аналогично как при смерти игрока.
ikorus
Цитата(PolDev @ 16.10.2014, 23:38) *

https://forum.uokit.com/index.php?showtopic...&hl=escript
Можешь познакомится с документацией.

А по поводу твоей проблемы, то её можно легко решить добавив в любой logon/reconnect скрипт проверку на props баффов и уберать их всегда с помощью этих двух скриптов. Аналогично как при смерти игрока.


спасибо за совет - воспользуюсь при необходимости
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.