Патч от Hool1gan(антирелог) - Страница 11 - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Игровой клиент

Игровой клиент Есть вопросы по поводу редактирования dat, utx и других файлов клиента, пожалуйста, задавайте их здесь.

Ответ
Опции темы
Непрочитано 07.06.2016, 15:52   #101
Изгнанные

По умолчанию Re: Патч от Hool1gan(антирелог)

Цитата:
Сообщение от L2Patch Посмотреть сообщение
Да есть же сервера где онлайна и побольше, например кетра, на баюме бывало до 300 доходило, на валике около 400-500. Ну заведи например фулку, и просто пусть все баттлхилом себя похилят. Потом из моей группы скачай патч, и похильтесь с ним. С моим патчем фпс не будет забиваться, а с обычным уже через 1 минуту сядет до 10-20. Так это только 1 фулка, а прикинь если больше и каждый постоянно что-то юзает. Нужен релог.

Добавлено через 4 минуты
Зубастик тоже блин, сначала отписал мне в лс, типа ой скажи да расскажи, а теперь поливает грязью, так еще и не правду говорит. Пусть каждый запустит патч и посмотрит разницу. Правда в версии 3.0 не полностью пофикшено, но разницу вы увидите и очень даже большую.
Опять же говорю - когда это кому то будет реально нужно, может и заюзают твой "Патчик" , а скорее найдут реальную первопричину и пофиксят таким образом чтобы работало только у них, ибо то что ты мутишь это не есть реальный фикс, а больше похоже на борьбу с ветряными мельницами, в первой версии не вышло ну так третью выпущу там точно прокатит, а что выпускает - как это реально отражается в движке ты никакого понятия не имеешь. А раз не имеешь ты не видишь первопричину проблемы(именно в коде), все это тупо твои предположения, так можно вечно выпускать патчи толку 0 будет.
luslighter вне форума Ответить с цитированием
Непрочитано 07.06.2016, 18:53   #102
Аватар для n3k0nation
Antihero

По умолчанию Re: Патч от Hool1gan(антирелог)

Реальная причина такова, что из скриптов, это уж никак не пофиксить
У ладвы есть менеджемент хип, который используется для скриптовых объектов, а так же для объектов движка игры. Туда впиливаются текстуры, модели и много др. фигни. Реальная очистка хипа происходит при запуске сборщика мусора, который запускается только при загрузке уровня игры с нуля.
Есть аж несколько причин почему FPS падает
Первая из них - какие-то эффекты не возвращаются в пул (на более новых версиях клиента пофикшено).
Вторая причина - фрагментация менеджемент хипа.
Третья причина - загрузка левела, с нуля, происходит не то что редко, а очень редко, из-за чего запуск GC становится манной небесной.
Четвертая причина - тупенький GC, который неумет разбирать сложные ссылки.

Данные дефекты могут пофиксить только корейцы и только они, но уж ни как не парень "вася", который чето там подредактировал в скриптах Максимум, это исправить первую причину, которая лишь отсрочит "конец".
Реальный вариант исправить "это" - вручную вызывать перезагрузку левела (при том надо дать серверу знать, что клиенту требуется заного переслать все объекты в регионе), попутно перефигачив половину core.dll & engine.dll.

И да, ручной запуск GC, в процессе игры, выгрузит все загруженные ресурсы, поэтому такой вариант не канает.
__________________
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
n3k0nation вне форума Ответить с цитированием
Непрочитано 07.06.2016, 19:02   #103
Аватар для FaintSmile
Пользователь

По умолчанию Re: Патч от Hool1gan(антирелог)

Цитата:
Сообщение от n3k0nation Посмотреть сообщение
при запуске сборщика мусора
Щас бы имея возможность полного ручного контроля за памятью сборщики мусора вызывать. Эх корейцы, всё на скорую руку, лишь бы работало. Хотя, кого-то они мне напоминают
FaintSmile вне форума Ответить с цитированием
Непрочитано 07.06.2016, 19:34   #104
Изгнанные

По умолчанию Re: Патч от Hool1gan(антирелог)

Цитата:
Сообщение от n3k0nation Посмотреть сообщение
Реальная причина такова, что из скриптов, это уж никак не пофиксить
У ладвы есть менеджемент хип, который используется для скриптовых объектов, а так же для объектов движка игры. Туда впиливаются текстуры, модели и много др. фигни. Реальная очистка хипа происходит при запуске сборщика мусора, который запускается только при загрузке уровня игры с нуля.
Есть аж несколько причин почему FPS падает
Первая из них - какие-то эффекты не возвращаются в пул (на более новых версиях клиента пофикшено).
Вторая причина - фрагментация менеджемент хипа.
Третья причина - загрузка левела, с нуля, происходит не то что редко, а очень редко, из-за чего запуск GC становится манной небесной.
Четвертая причина - тупенький GC, который неумет разбирать сложные ссылки.

Данные дефекты могут пофиксить только корейцы и только они, но уж ни как не парень "вася", который чето там подредактировал в скриптах Максимум, это исправить первую причину, которая лишь отсрочит "конец".
Реальный вариант исправить "это" - вручную вызывать перезагрузку левела (при том надо дать серверу знать, что клиенту требуется заного переслать все объекты в регионе), попутно перефигачив половину core.dll & engine.dll.

И да, ручной запуск GC, в процессе игры, выгрузит все загруженные ресурсы, поэтому такой вариант не канает.
Это бред, достаточно вызывать Garbage Collector, нежели инициировать прогрузку уровня, это ведь затрагивает пакетку и много еще чего, но опять же стоит ли оно того(как ты определишь когда именно это должно произойти) ?

Ну и саму проблемы ты очень плохо описал, если простым языком, то объекты грузятся в память - по несколько раз, и не как оттуда не выгружаются, поскольку клиент не как это не регулирует(в плане источника - все очень разобщено(т.е не важно грузиться текстура либо скелетная модель, либо эмитер) все идет в общий поток, и на сколько я понял как раз эмитеры не передают флага - на выгрузку из памяти(когда игрок заюзал какой то скилл, предыдущий эмиттер остается) ибо время выполнения анимации скила - имеет не фиксированное значение, т.е от скила к скилу оно разное. А вот как это объяснить движку и стоит ли вообще - совсем другой вопрос.

Цитата:
Сообщение от Connie Посмотреть сообщение
Щас бы имея возможность полного ручного контроля за памятью сборщики мусора вызывать. Эх корейцы, всё на скорую руку, лишь бы работало. Хотя, кого-то они мне напоминают
Что за чушь - причем тут корейцы ? Архитектура движка это прямое наследие Epic Games, во всех играх на этом движке так же, если ничего не менять - целенаправленно.
luslighter вне форума Ответить с цитированием
Непрочитано 07.06.2016, 19:37   #105
Аватар для n3k0nation
Antihero

По умолчанию Re: Патч от Hool1gan(антирелог)

Цитата:
Сообщение от Connie Посмотреть сообщение
Щас бы имея возможность полного ручного контроля за памятью сборщики мусора вызывать. Эх корейцы, всё на скорую руку, лишь бы работало. Хотя, кого-то они мне напоминают
Это, кстати, нормальная практика. Единственное, что не нормально - то что при телепорте не происходит нормальная сборка мусора (т.к. там по сути можно вообще почти все выгрузить).

Добавлено через 2 минуты
Цитата:
Сообщение от luslighter Посмотреть сообщение
Это бред, достаточно вызывать Garbage Collector, нежели инициировать прогрузку уровня, это ведь затрагивает пакетку и много еще чего, но опять же стоит ли оно того(как ты определишь когда именно это должно произойти) ?
Дизассемблер в руки и вперед, узнавать новые горизонты и почему нельзя просто вызвать GC (и к каким последствиям это приведет).
Даю подсказку: краш. Почему? Все отлично описано в моем посте выше.


Цитата:
Сообщение от luslighter Посмотреть сообщение
Ну и саму проблемы ты очень плохо описал, если простым языком, то объекты грузятся в память - по несколько раз, и не как оттуда не выгружаются, поскольку клиент не как это не регулирует(в плане источника - все очень разобщено(т.е не важно грузиться текстура либо скелетная модель, либо эмитер) все идет в общий поток, и на сколько я понял как раз эмитеры не передают флага - на выгрузку из памяти(когда игрок заюзал какой то скилл, предыдущий эмиттер остается) ибо время выполнения анимации скила - имеет не фиксированное значение, т.е от скила к скилу оно разное. А вот как это объяснить движку и стоит ли вообще - совсем другой вопрос.
А теперь идем читать, что такое управляемый хип под контролем GC и как работает GC.
Вы можете сколько угодно устанавливать флаги в объектах (в объектах, КАРЛ!), только вот от фрагментации и от занятости памяти этими объектами, это не спасет.
__________________
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.

Последний раз редактировалось n3k0nation; 07.06.2016 в 19:44. Причина: Добавлено сообщение
n3k0nation вне форума Ответить с цитированием
Непрочитано 07.06.2016, 19:48   #106
Изгнанные

По умолчанию Re: Патч от Hool1gan(антирелог)

Цитата:
Сообщение от n3k0nation Посмотреть сообщение
Это, кстати, нормальная практика. Единственное, что не нормально - то что при телепорте не происходит нормальная сборка мусора (т.к. там по сути можно вообще почти все выгрузить).

Добавлено через 2 минуты

Дизассемблер в руки и вперед, узнавать новые горизонты и почему нельзя просто вызвать GC (и к каким последствиям это приведет).



А теперь идем читать, что такое управляемый хип под контролем GC и как работает GC.
Вы можете сколько угодно устанавливать флаги в объектах (в объектах, КАРЛ!), только вот от фрагментации и от занятости памяти этими объектами, это не спасет.
Я не вдавался в это все на столько - насколько нужно, ибо мне это нафиг не надо.
Но если бы такая потребность возникла, решалась бы она примерно по такой схеме(С проработкой механизма Garbage Collectora) возможно еще что-то, да я бы убил не мало времени на все это, но в целом это задача решаема(без костылей вроде перезагрузки всего уровня, который как раз запускает Garbage Collector и опять же, объясни мне как ты будешь определять когда нужно перезагрузить уровень, а когда нет ?)
luslighter вне форума Ответить с цитированием
Непрочитано 07.06.2016, 19:49   #107
Аватар для n3k0nation
Antihero

По умолчанию Re: Патч от Hool1gan(антирелог)

Цитата:
Сообщение от luslighter Посмотреть сообщение
Что за чушь - причем тут корейцы ? Архитектура движка это прямое наследие Epic Games, во всех играх на этом движке так же, если ничего не менять - целенаправленно.
Потому-что в ладве используется свой сборщик мусора и это далеко не наследие Unreal Engine.

Добавлено через 9 минут
Цитата:
Сообщение от luslighter Посмотреть сообщение
Я не вдавался в это все на столько - насколько нужно, ибо мне это нафиг не надо.
Но если бы такая потребность возникла, решалась бы она примерно по такой схеме(С проработкой механизма Garbage Collectora) возможно еще что-то, да я бы убил не мало времени на все это, но в целом это задача решаема(без костылей вроде перезагрузки всего уровня, который как раз запускает Garbage Collector и опять же, объясни мне как ты будешь определять когда нужно перезагрузить уровень, а когда нет ?)
фамильярность:
Свернуть ↑Развернуть ↓


Вы походу вообще не въежаете о чем речь. Окей, я объясню подробно.

При вызове GC будет очищен выделенный хип, это означает:
1. Текстуры
2. Модели
3. Скриптовые объекты
4. Карты
5. ???
Будут ВЫГРУЖЕНЫ. Указатели на них могут сохраниться, где-то в недрах движка игры (unsafe, такой unsafe) и при обращении к памяти, где был раньше объект, либо ресурс, мы получим мусор. Далее поведение неопределенно, но, в большинстве случаев, это краш.
Это понятно? Идем дальше.

При загрузке нового левела игры, мы выгружаем старый, в этот момент, после выгрузки, мы по хорошему, должны запустить GC, а так же почистить указатели, там где требуется и уже после этого вгружать новый уровень. Все эти действия происходят при:
1. Телепорте (только GC не вызывается, плюс остаются референсы)
2. Входе в игру
3. Выходе из игры

Вы бы убили всю свою жизнь, но не починили бы это, я это гарантирую. Вы даже не понимаете о чем идет речь
Хотя, давайте попробуем. Вот флаг/маска, который должен передаваться на вызов GC, при телепорте: 67108864u, ах да, не забываем, что вызов GC деклалирован thiscall и нужно передавать в ecx указатель на объект. Если у Вас получится, то с меня пиво, в хорошем баре.

Я даже облегчу задачу, вот код вызова GC, для Interlude:
Свернуть ↑Развернуть ↓
__________________
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.

Последний раз редактировалось n3k0nation; 07.06.2016 в 20:23. Причина: Добавлено сообщение
n3k0nation вне форума Ответить с цитированием
Непрочитано 07.06.2016, 20:23   #108
Пользователь

По умолчанию Re: Патч от Hool1gan(антирелог)

n3k0nation, Почему никто из вас ещё не перепилил эту систему? Зубастик что-то пытался, но у него быстро иссяк энтузиазм.
Emperor вне форума Ответить с цитированием
Непрочитано 07.06.2016, 20:28   #109
Аватар для Zubastic
ZG troll squad

По умолчанию Re: Патч от Hool1gan(антирелог)

Цитата:
Сообщение от Emperor Посмотреть сообщение
n3k0nation, Почему никто из вас ещё не перепилил эту систему? Зубастик что-то пытался, но у него быстро иссяк энтузиазм.
Разобрались, но выхлоп мне не особо понравился. Забил на это
__________________
Zubastic вне форума Ответить с цитированием
Непрочитано 07.06.2016, 20:45   #110
Изгнанные

По умолчанию Re: Патч от Hool1gan(антирелог)

Цитата:
Сообщение от n3k0nation Посмотреть сообщение
Потому-что в ладве используется свой сборщик мусора и это далеко не наследие Unreal Engine.

Добавлено через 9 минут

фамильярность:
Свернуть ↑Развернуть ↓


Вы походу вообще не въежаете о чем речь. Окей, я объясню подробно.

При вызове GC будет очищен выделенный хип, это означает:
1. Текстуры
2. Модели
3. Скриптовые объекты
4. Карты
5. ???
Будут ВЫГРУЖЕНЫ. Указатели на них могут сохраниться, где-то в недрах движка игры (unsafe, такой unsafe) и при обращении к памяти, где был раньше объект, либо ресурс, мы получим мусор. Далее поведение неопределенно, но, в большинстве случаев, это краш.
Это понятно? Идем дальше.

При загрузке нового левела игры, мы выгружаем старый, в этот момент, после выгрузки, мы по хорошему, должны запустить GC, а так же почистить указатели, там где требуется и уже после этого вгружать новый уровень. Все эти действия происходят при:
1. Телепорте (только GC не вызывается, плюс остаются референсы)
2. Входе в игру
3. Выходе из игры

Вы бы убили всю свою жизнь, но не починили бы это, я это гарантирую. Вы даже не понимаете о чем идет речь
Хотя, давайте попробуем. Вот флаг/маска, который должен передаваться на вызов GC, при телепорте: 67108864u, ах да, не забываем, что вызов GC деклалирован thiscall и нужно передавать в ecx указатель на объект. Если у Вас получится, то с меня пиво, в хорошем баре.
Чувак ты вроде меня не понял, я тебе сразу сказал мне нафиг не сдалась эта фигня(может в будущем еще столкнусь).
И на счет GarbageCollector, он весь завязан на флагах, и обрабатывает все глобальные объекты, с пометкой GExitPurge(требующие выгрузки) RF_Native(загруженные в память)P.S> тот самый 67108864u, я не очень уверен что в самом классе эмиттеров - существует обработчик который эти самые флаги устанавливает, если условия соблюдены(к примеру объект создан), но скорее это в каком то более глобальном классе(Ибо только благодаря этим флагам происходит выгрузка из памяти по средствам GarbageCollect(по средствам того хука ты говоришь ему что все объекты с флагом native(т.е память), должны быть выгружены),и вообще их можно устанавливать и раньше и вызывать Destroy() намного раньше, но вот толку ? ).
А решил бы я это как раз допиливанием класса эмитеров, и самого метода очистки, ибо он предназначен для более простой работы - нежели той где этот самый класс вызывают over9000 раз воимя хила ! Естественно он запускает рендер этих самых 9000 Объектов, тем самым грузит систему, и удаляет он их медленее чем они создаются, а возможно даже и не просчитывается это ввиду слишком быстрого запроса(отсюда и весь баг).
Короче говоря это можно сделать(и без костылей, по канону), было бы желание.
luslighter вне форума Ответить с цитированием
Сказали спасибо:
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
патч для HF Servack Игровой клиент 9 17.05.2014 02:26
Патч Меркурий Курилка / Yak floor 3 02.03.2013 01:17
Рус патч BAKSы Игровой клиент 13 09.08.2010 17:26
патч ! ligalath Корзина / Trash 3 04.06.2009 21:09


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 16:33. Часовой пояс GMT +3.

Вверх