Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Запросы (http://mangos.ytdb.ru/forumdisplay.php?f=7)
-   -   Залипание форм (http://mangos.ytdb.ru/showthread.php?t=4171)

Amaru 19.04.2011 17:08

Залипание форм
 
1. Что есть залипание форм:
- присутствие визульного эффект формы, присутствие панельки со спеллами, актуальными для данной формы, невозможность кастовать ни их, ни спеллы, которые не кастуются в формах (хилки друида, етц)

2. Как происходит:
- при быстром входе/выходе из формы вручную
- при быстром входе/выходе из формы макросами /cancelform /cast spell или /cast !spell

3. Залипают все формы, друлевские, шп, стелс.
Друлевские формы можно сбросить правым кликом по бафу, с остальными же поможет только релог.

Как должно быть:
http://img638.imageshack.us/img638/3...1911173730.jpg
Как получается:
http://img197.imageshack.us/img197/8...1911173442.jpg

Результат .debug getvalue 122 hex : 1000000
- все ок, 0x1000000 = FORM_CAT << 3*8
(122 == UNIT_FIELD_FLAGS_2, оффсет - 3, т.е. форма)

Печально, но если прописать .debug setvalue 122 hex 1000000 без модифицированной функции SetByteValue - ничего не изменится, т.е. объект не будет обновляться, если выставляемая величина равно текущей. Но даже если модифицировать код на апдейт в любом случае - форма не "отвиснет", то есть получается, что клиент не обратит внимание на апдейт поля UNIT_FIELD_FLAGS_2, если оно фактически не изменилось (а оно выставляется при каждом вызове SetShapeshiftForm()).

Форма "отвисает" при любом изменении UNIT_FIELD_FLAGS_2, будь то команды, например
.debug setvalue 122 hex 0
.debug setvalue 122 hex 1000000
или, например, включение/выключение режима пвп (флаги UNIT_FIELD_BYTES_2 offset 1)

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

И да, ошибка типа "You are in a shapeshift form" генерируется клиентом, т.е. на сервер не идет опкод каста спелла.

Может, у кого-то есть идеи, как это исправить? =)))


Текущее время: 10:36. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS