Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Заявка на новые возможности, либо на исправление старых

Only for requests.
NoSilence
Novice
Novice
Posts: 94
Joined: 02.01.2010 13:55

Re: Заявка на новые возможности, либо на исправление старых

Post by NoSilence »

Vizit0r wrote:если повторяемо - тогда смогу исправить, иначе - вряд ли.
В смысле, предоставить чара? Что-то попробовал повторить и нифига. А проблемный код уже переписал на FindTypeEx. В любом случае было бы неплохо добавить вариант FindAtCoordEx с типом и цветом, чтобы избежать дальнейших переборов в скрипте.

Столкнулся недавно с такими проблемами:

- Проблема с большим количеством предметов. Когда запускаешь клиент, прогружается лишь часть. И так пару раз перезаходить нужно и только тогда всё появится. Ради интереса пробовал с голого клиента зайти, а там всё окей с этим.

Вообще с клиентом достаточно много багов: то ряд тайлов пропадет (не статика), то в друг чара перемещается туда, где находится другой персонаж. А через N часов работы клиент и вовсе выдает ошибку во время входа в мир. И пофиксить это можно только создав заново подключение (убрать/добавить вкладку персонажа) в окне стелса.

- Заспамил логи сообщениями о попытках положить вещь в недоступное место. В данном случае под себя (я стоял в непроходимом предмете). И стал искать способы решения. Остановился на переборе точек вокруг IsWorldCellPassable из (X - 1, Y) в (X, Y). Но правильно ли это? Мне кажется должна быть нативная возможность проверки именно возможности дропа, т.к. этой работой в обычных условиях занимается клиент и только потом уже сервер.
///
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Заявка на новые возможности, либо на исправление старых

Post by Vizit0r »

NoSilence wrote:
Vizit0r wrote:если повторяемо - тогда смогу исправить, иначе - вряд ли.
В смысле, предоставить чара? Что-то попробовал повторить и нифига. А проблемный код уже переписал на FindTypeEx. В любом случае было бы неплохо добавить вариант FindAtCoordEx с типом и цветом, чтобы избежать дальнейших переборов в скрипте.
чара + маленький скрипт, повторяющий ошибку. Смогу повторить у себя - исправлю.

NoSilence wrote: - Проблема с большим количеством предметов. Когда запускаешь клиент, прогружается лишь часть. И так пару раз перезаходить нужно и только тогда всё появится. Ради интереса пробовал с голого клиента зайти, а там всё окей с этим.
известно, но неисправимо. Хз, почему падает парсер входящих пакетов в клиенте. Без отладки клиента тут разобраться нереально, а исходников нет и не намечается.
NoSilence wrote: Вообще с клиентом достаточно много багов: то ряд тайлов пропадет (не статика), то в друг чара перемещается туда, где находится другой персонаж. А через N часов работы клиент и вовсе выдает ошибку во время входа в мир. И пофиксить это можно только создав заново подключение (убрать/добавить вкладку персонажа) в окне стелса.
про пропажу тайлов - это туда же, к кривости клиентского разборщика пакетов.
второе не похоже на клиентское, но хз. Не сталкивался. Третье - не сталкивался.
NoSilence wrote: должна быть нативная возможность проверки именно возможности дропа, т.к. этой работой в обычных условиях занимается клиент и только потом уже сервер.
что, серьезно? :) Я-то наивный думал, что клиент почти ничего не проверяет (куда меньше, чем стелс) при переносе, остальное - работа сервера.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Macks
Apprentice
Apprentice
Posts: 250
Joined: 27.02.2006 22:23
Location: АоП - Age Of Power

Re: Заявка на новые возможности, либо на исправление старых

Post by Macks »

Vizit0r wrote:
NoSilence wrote: - Проблема с большим количеством предметов. Когда запускаешь клиент, прогружается лишь часть. И так пару раз перезаходить нужно и только тогда всё появится. Ради интереса пробовал с голого клиента зайти, а там всё окей с этим.
известно, но неисправимо. Хз, почему падает парсер входящих пакетов в клиенте. Без отладки клиента тут разобраться нереально, а исходников нет и не намечается.
Мы на сервере обходили это разбивкой на несколько пакетов, с паузами между ними.

Иначе после перемещения по гейту в область где много предметов клиент или не все отрисовывал их все или падал.
NoSilence
Novice
Novice
Posts: 94
Joined: 02.01.2010 13:55

Re: Заявка на новые возможности, либо на исправление старых

Post by NoSilence »

Vizit0r wrote:известно, но неисправимо. Хз, почему падает парсер входящих пакетов в клиенте. Без отладки клиента тут разобраться нереально, а исходников нет и не намечается.
Именно при большом количестве предметов? Мб тогда отправлять с задержкой порциями? Очень проблемно там, где есть ручная самострой.
Vizit0r wrote:что, серьезно? :) Я-то наивный думал, что клиент почти ничего не проверяет (куда меньше, чем стелс) при переносе, остальное - работа сервера
Например, POL срёт таким в логах и мозолит глаза админу. Себе то я поправил, а остальные не будут знать.
///
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Заявка на новые возможности, либо на исправление старых

Post by Vizit0r »

NoSilence wrote:
Vizit0r wrote:известно, но неисправимо. Хз, почему падает парсер входящих пакетов в клиенте. Без отладки клиента тут разобраться нереально, а исходников нет и не намечается.
Именно при большом количестве предметов? Мб тогда отправлять с задержкой порциями? Очень проблемно там, где есть ручная самострой.
отправляется корректно.
NoSilence wrote:
Vizit0r wrote:что, серьезно? :) Я-то наивный думал, что клиент почти ничего не проверяет (куда меньше, чем стелс) при переносе, остальное - работа сервера
Например, POL срёт таким в логах и мозолит глаза админу. Себе то я поправил, а остальные не будут знать.
ну, это проблемы остальных. Я не умею со стороны клиента читать скрытые сервеные пропы, чтобы наладить надежную проверку на возможность дропа.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
NoSilence
Novice
Novice
Posts: 94
Joined: 02.01.2010 13:55

Re: Заявка на новые возможности, либо на исправление старых

Post by NoSilence »

Vizit0r wrote:
NoSilence wrote: Вообще с клиентом достаточно много багов: то ряд тайлов пропадет (не статика), то в друг чара перемещается туда, где находится другой персонаж. А через N часов работы клиент и вовсе выдает ошибку во время входа в мир. И пофиксить это можно только создав заново подключение (убрать/добавить вкладку персонажа) в окне стелса.
про пропажу тайлов - это туда же, к кривости клиентского разборщика пакетов.
второе не похоже на клиентское, но хз. Не сталкивался. Третье - не сталкивался.
Рассказываю подробнее про перемещение:
Первый персонаж копает в пещере. Клиент не запущен. Иногда он выбегает из шахты и идет заниматься делами. В этот момент другой персонаж (уже с клиентом), телепортируется на вход шахты.
Повторить не смог, но когда копало много персонажей было постоянно.
Теперь копает всего один и уже в другой шахте. Бывает, когда бежишь в городе персонажем, просто пропадает всё и вся вокруг, как-будто бы опять телепортировался.

Третье. Так и не понял, когда это происходит. Клиент подключается в игру, я уже вижу всё вокруг, проходит буквально 1 секунда и всё застывает - краш. И это не проходит пока не создашь новую вкладку в стелсе.

Еще встречается краш с отправкой текста в игровом клиенте (тоже лечится только пересозданием вкладки персонажа). В этот же момент из стелса всё нормально отправляется.
///
NoSilence
Novice
Novice
Posts: 94
Joined: 02.01.2010 13:55

Re: Заявка на новые возможности, либо на исправление старых

Post by NoSilence »

Если над головой появляется какая-то надпись, то имя персонажа становится "You see". Ну, соответственно, и в клиент заходит под этим же ником и пр. вытекающие.
///
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Заявка на новые возможности, либо на исправление старых

Post by Vizit0r »

NoSilence wrote: Рассказываю подробнее про перемещение:
это все замечательно, но повторяю - без повторения у себя (причем многократного) - ничего я там не найду, много раз уже искал.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
NoSilence
Novice
Novice
Posts: 94
Joined: 02.01.2010 13:55

Re: Заявка на новые возможности, либо на исправление старых

Post by NoSilence »

Vizit0r wrote:
NoSilence wrote: Рассказываю подробнее про перемещение:
это все замечательно, но повторяю - без повторения у себя (причем многократного) - ничего я там не найду, много раз уже искал.
Фиг его знает как это повторить, потому что спустя примерно сутки начинается :)
Тю, я думал про вылеты. Попробую на днях вернуть чара и попробовать восстановить.



Вот такая вот еще проблема с бафами:
Image
///
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Заявка на новые возможности, либо на исправление старых

Post by Vizit0r »

если б я еще понимал, что там нарисовано.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
NoSilence
Novice
Novice
Posts: 94
Joined: 02.01.2010 13:55

Re: Заявка на новые возможности, либо на исправление старых

Post by NoSilence »

Vizit0r wrote:если б я еще понимал, что там нарисовано.
Как я понял, сервер шлет бафы каждую секунду (типа, обновляет). Бафы пропадают в клиенте корректно (по истечени времени их действия). Если перезапустить клиент, то стелс заново отошлет все эти бафы. Вот и получается, что имеем кучу иконок бафов за каждую секунду их действия. Все эти бафы копятся пока не переподключишь персонажа, создавая лаги.


Вот еще что обнаружил:
Если сумка персонажа меняется, то значение Backpack остается прежним до переподключения персонажа.
Странно, а сейчас всё норм. До этого скрипт встал и, когда я пытался открыть пак UseObject(Backpack), писало "UseObject error: Object not found."
///
Macks
Apprentice
Apprentice
Posts: 250
Joined: 27.02.2006 22:23
Location: АоП - Age Of Power

Re: Заявка на новые возможности, либо на исправление старых

Post by Macks »

NoSilence wrote:Если сумка персонажа меняется, то значение Backpack остается прежним до переподключения персонажа.
ID Персонажа не меняется?
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Заявка на новые возможности, либо на исправление старых

Post by Vizit0r »

NoSilence wrote: Вот еще что обнаружил:
Если сумка персонажа меняется, то значение Backpack остается прежним до переподключения персонажа.
Странно, а сейчас всё норм. До этого скрипт встал и, когда я пытался открыть пак UseObject(Backpack), писало "UseObject error: Object not found."
надо смотреть какие пакеты приходят при смене бекпака. так навскидку - хз.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
KaToK
Neophyte
Neophyte
Posts: 40
Joined: 31.01.2008 22:40
Contact:

Re: Заявка на новые возможности, либо на исправление старых

Post by KaToK »

Ninjitsu/Bushido
Спелы на этих скилах вроде как включаются по аналогии с абилками, стоит сделать аналогично с абилками.
function GetActiveAbility: String; // Узнать название активной абилки на оружии, возвращает '0' - если абилки нет
procedure UsePrimaryAbility; // Установить первичную абилку на оружии
procedure UseSecondaryAbility; // Установить вторичную абилку на оружии
что-то в духе
GetSamuraiActive;
UseSamurai('Название');
Вроде как невозможно сразу нельколько абилок самураев использовать. так что подобного должно вполне хватить.
Stealth 8.7.8 | Клиент: 7.0.64.3
Gauhar
Novice
Novice
Posts: 87
Joined: 08.07.2008 17:40

Re: Заявка на новые возможности, либо на исправление старых

Post by Gauhar »

KaToK wrote:Ninjitsu/Bushido
Спелы на этих скилах вроде как включаются по аналогии с абилками, стоит сделать аналогично с абилками.
function GetActiveAbility: String; // Узнать название активной абилки на оружии, возвращает '0' - если абилки нет
procedure UsePrimaryAbility; // Установить первичную абилку на оружии
procedure UseSecondaryAbility; // Установить вторичную абилку на оружии
что-то в духе
GetSamuraiActive;
UseSamurai('Название');
Вроде как невозможно сразу нельколько абилок самураев использовать. так что подобного должно вполне хватить.
Давно уже есть:
if IsActiveSpellAbility( 'Lightning Strike') = FALSE then Cast('Lightning Strike');
Post Reply