|
|
|
Скорость разворотов и фпс патч из Инжекта |
|
|
EL-GReeN |
6.9.2016, 8:31
|
Journeyman
Сообщений: 474
Регистрация: 18.7.2011 Группа: Пользователи Наличность: 0 Из: Россия
Пользователь №: 13.815
Возраст: 32
|
Сколько играл не замечал никакой скорости разворота(наверно потому что на абисе этот фпс мод включен был всегда), единственное что это есть задержка на шаги, если не ошибаюсь примерно: шаг 800мс, шаг бега/шаг на лошади 400мс, шаг бега на лошади 200мс. Прыжки на разворотах это как?. Еще может вам пригодится для поиска заветного адреса, таким скриптом я включал фпс мод на клиенте 1.26.4: Код set linedelay 0 set #h1 0 //76 set #h2 67634184 //33817092 set #adr1 11605616 writemem #h1 0x047ABDF b for #i 0 1998 4 writemem #h2 #adr1 d set #adr1 #adr1 + 4 end_for end_script
--------------------
|
|
|
|
Aimed |
6.9.2016, 9:36
|
Grandmaster
Сообщений: 2.250
Регистрация: 29.12.2012 Группа: Пользователи Наличность: 8846
Пользователь №: 15.607
|
Цитата(EL-GReeN @ 6.9.2016, 7:31) Сколько играл не замечал никакой скорости разворота(наверно потому что на абисе этот фпс мод включен был всегда), единственное что это есть задержка на шаги, если не ошибаюсь примерно: шаг 800мс, шаг бега/шаг на лошади 400мс, шаг бега на лошади 200мс. Прыжки на разворотах это как?.
400/200/100 С разницой в интервалах до 70 мс, в зависимости от пинга и GetTickCount(), которая выравнивается при следующем шаге такого-же типа и т.д. ФПС патч не действует отдельно на повороты и другие типы перемещения, он общий таймер изменяет. Так что это надо свой ФПС патч с 0 писать, что-бы это пофиксить так как хочешь ты, Вап. П.С. Ты ничего не фиксил у себя на локалке своими блоками ускоренных пакетов при разворотах, это не работает. Его нельзя на стороне сервера пофиксить, даже если как-то замедлять ответы, так-как клиент начнёт реагировать на замедленные ответы и ускорять ещё больше, подрезая задержку на следующий шаг. Я уже это 3 или 4 раз пишу. Так что на сервере это не фиксится. А если блокировать пакеты, то это не фикс будет, а баг. Потому что те у кого нестабильный пинг, либо высокий, потому что играют издалека, начнут терять пакеты, что и происходит и тебе это на форуме игроки писали уже неоднократно.
|
|
|
|
StaticZ |
6.9.2016, 13:56
|
Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009 Группа: Пользователи Наличность: 0 Из: РФ, Москва
Пользователь №: 11.948
|
Цитата(Aimed @ 6.9.2016, 9:36) П.С. Ты ничего не фиксил у себя на локалке своими блоками ускоренных пакетов при разворотах, это не работает. Его нельзя на стороне сервера пофиксить, даже если как-то замедлять ответы, так-как клиент начнёт реагировать на замедленные ответы и ускорять ещё больше, подрезая задержку на следующий шаг. Я уже это 3 или 4 раз пишу. Так что на сервере это не фиксится. А если блокировать пакеты, то это не фикс будет, а баг. Потому что те у кого нестабильный пинг, либо высокий, потому что играют издалека, начнут терять пакеты, что и происходит и тебе это на форуме игроки писали уже неоднократно.
Клиент работает асинхроно он не ждет ответ (по идее, хотя честно сказать не проверял - имхо нафиг надо такой изврат), но бороться с рассинхроном на стороне сервере можно более чем успешно - ловим рассинхрон, если он превышает определенную величину (время шага) - шлем reject на движение и фризим игроков на величину рассинхрона. Правда конечно у тех кто попадет под раздачу это будет не очень - периодически чал будет стопорится и изза чего будет дерганное перемешение, так что это скорее не способ лечения косяков клиента на стороне сервера, а средство борьбы с теми кто експлойтит этот баг. Но это, как говорил вят - не для runuo users... =)) А насчет скорости разворота это кстати в списке задач UCS - меня бесит что чар моментально разворачивается, особенно на коне.
--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.Game isn't a dream, it is the reality, reality which is coming while we dream...
|
|
|
|
Aimed |
6.9.2016, 14:16
|
Grandmaster
Сообщений: 2.250
Регистрация: 29.12.2012 Группа: Пользователи Наличность: 8846
Пользователь №: 15.607
|
Цитата(StaticZ @ 6.9.2016, 12:56) Клиент работает асинхроно он не ждет ответ (по идее, хотя честно сказать не проверял - имхо нафиг надо такой изврат), но бороться с рассинхроном на стороне сервере можно более чем успешно - ловим рассинхрон, если он превышает определенную величину (время шага) - шлем reject на движение и фризим игроков на величину рассинхрона. Правда конечно у тех кто попадет под раздачу это будет не очень - периодически чал будет стопорится и изза чего будет дерганное перемешение, так что это скорее не способ лечения косяков клиента на стороне сервера, а средство борьбы с теми кто експлойтит этот баг. Но это, как говорил вят - не для runuo users... =)) А насчет скорости разворота это кстати в списке задач UCS - меня бесит что чар моментально разворачивается, особенно на коне.
Ясное дело что асинхронно работает, но ответа он все-равно ждет, что-бы повысишить счетчик последовательности шагов. Потому что если разница будет больше 3, он попросту зависнет/встанет. Слать reject - это и есть провал. Это сделал Вап и теперь игроки с высоким пингом теряют шаги, их сервер стопает просто так. Кроме того, те у кого сильно нагружена система во время игры либо если, допустим, GetTickCount() 2 раза по максималке устроит разброс - клиент даже на локалке может подрезать интервал задержки на шаг и выслать раньше - тогда сервер тебя стопанет rejectом. Что будет, если такое случится когда игрок падает из-за этого на свой топ шмот, думаю и так понятно.
|
|
|
|
StaticZ |
6.9.2016, 15:26
|
Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009 Группа: Пользователи Наличность: 0 Из: РФ, Москва
Пользователь №: 11.948
|
Цитата(Aimed @ 6.9.2016, 14:16) Слать reject - это и есть провал. Это сделал Вап и теперь игроки с высоким пингом теряют шаги, их сервер стопает просто так. Кроме того, те у кого сильно нагружена система во время игры либо если, допустим, GetTickCount() 2 раза по максималке устроит разброс - клиент даже на локалке может подрезать интервал задержки на шаг и выслать раньше - тогда сервер тебя стопанет rejectом. Что будет, если такое случится когда игрок падает из-за этого на свой топ шмот, думаю и так понятно.
Ну если слать тупо так как вы сказали, то да это это те еще грабли, а если слать по уму то все работает хорошо и GetTickCount() никакой даже не нужен, да и точность у него низковатая для этого %) Просто палить надо время отправки пакета и время в который должна будет окончиться очередь движения, а не время получения (двух пакетов?), если их разброс выше 800\400\200 то это говорит о том что клиент шлет пакеты с опережением или наоборот с отставанием т.е. таймер клиента сбит, что в частности делает фпс патч )
--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.Game isn't a dream, it is the reality, reality which is coming while we dream...
|
|
|
|
Aimed |
6.9.2016, 15:47
|
Grandmaster
Сообщений: 2.250
Регистрация: 29.12.2012 Группа: Пользователи Наличность: 8846
Пользователь №: 15.607
|
Цитата(StaticZ @ 6.9.2016, 14:26) Ну если слать тупо так как вы сказали, то да это это те еще грабли, а если слать по уму то все работает хорошо и GetTickCount() никакой даже не нужен, да и точность у него низковатая для этого %) Просто палить надо время отправки пакета и время в который должна будет окончиться очередь движения, а не время получения (двух пакетов?), если их разброс выше 800\400\200 то это говорит о том что клиент шлет пакеты с опережением или наоборот с отставанием т.е. таймер клиента сбит, что в частности делает фпс патч )
Вы по-русски не понимаете? GetTickCount() используется в УО клиенте, либо что-то очень на него похожее, поэтому там и есть системка по выравниванию его неточности. Если продебажить УО клиент, это можно заметить. Даже на локалке интервалы между шагами будут прилично скакать(В САМОМ КЛИЕНТЕ). Я уже заебался это писать.... В клиенте есть код, который может менять задержку между шагами и отличить её от ФПС патча НИКАК не получится. Вот, дебаг лог с локалки, это клиентская дельта по запросу на перемещение пешком-шагом. Код WalkReqDelta 413 WalkReqDelta 398 WalkReqDelta 393 WalkReqDelta 408 WalkReqDelta 394 WalkReqDelta 397 WalkReqDelta 404 WalkReqDelta 398 WalkReqDelta 399 WalkReqDelta 414 WalkReqDelta 383 WalkReqDelta 398 WalkReqDelta 407 WalkReqDelta 392 WalkReqDelta 404 WalkReqDelta 411 WalkReqDelta 387 WalkReqDelta 415 WalkReqDelta 382 WalkReqDelta 414 WalkReqDelta 397 WalkReqDelta 398 WalkReqDelta 452 WalkReqDelta 346 WalkReqDelta 391 WalkReqDelta 417 WalkReqDelta 404 WalkReqDelta 382 WalkReqDelta 414 WalkReqDelta 398 WalkReqDelta 398 WalkReqDelta 398 WalkReqDelta 393 WalkReqDelta 407 WalkReqDelta 403 WalkReqDelta 386 WalkReqDelta 405 WalkReqDelta 413 WalkReqDelta 382 WalkReqDelta 413 WalkReqDelta 397 WalkReqDelta 400 WalkReqDelta 400 WalkReqDelta 416 WalkReqDelta 451 WalkReqDelta 330 WalkReqDelta 405 WalkReqDelta 454 WalkReqDelta 343 WalkReqDelta 399 WalkReqDelta 399 WalkReqDelta 414 WalkReqDelta 390 WalkReqDelta 402 WalkReqDelta 407 WalkReqDelta 387 WalkReqDelta 400 WalkReqDelta 398 WalkReqDelta 399 WalkReqDelta 414 WalkReqDelta 383 WalkReqDelta 413 WalkReqDelta 406 WalkReqDelta 379 WalkReqDelta 420 WalkReqDelta 391 WalkReqDelta 402 WalkReqDelta 398 WalkReqDelta 414 WalkReqDelta 383 WalkReqDelta 415 WalkReqDelta 382 WalkReqDelta 411 WalkReqDelta 394 WalkReqDelta 394 WalkReqDelta 411 WalkReqDelta 404 WalkReqDelta 385 WalkReqDelta 369 WalkReqDelta 385 WalkReqDelta 401 WalkReqDelta 401 WalkReqDelta 391 WalkReqDelta 410 WalkReqDelta 403 WalkReqDelta 396 WalkReqDelta 412 WalkReqDelta 383 WalkReqDelta 413 WalkReqDelta 398 WalkReqDelta 382 WalkReqDelta 415 WalkReqDelta 411 WalkReqDelta 381 WalkReqDelta 405 WalkReqDelta 405 WalkReqDelta 386 WalkReqDelta 413 WalkReqDelta 399 WalkReqDelta 452 WalkReqDelta 343 WalkReqDelta 398 WalkReqDelta 411 WalkReqDelta 392 WalkReqDelta 394 WalkReqDelta 406 WalkReqDelta 408 WalkReqDelta 383 WalkReqDelta 417 WalkReqDelta 399 WalkReqDelta 388 WalkReqDelta 413
|
|
|
|
StaticZ |
6.9.2016, 16:43
|
Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009 Группа: Пользователи Наличность: 0 Из: РФ, Москва
Пользователь №: 11.948
|
Цитата(Aimed @ 6.9.2016, 15:47) Вы по-русски не понимаете?
Я то понимаю, а вот Вы видимо не очень. Вы считаете не ту дельту и я про это так и написал - что если делать подобным образом то будет хрень.
--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.Game isn't a dream, it is the reality, reality which is coming while we dream...
|
|
|
|
StaticZ |
6.9.2016, 16:53
|
Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009 Группа: Пользователи Наличность: 0 Из: РФ, Москва
Пользователь №: 11.948
|
Цитата(Aimed @ 6.9.2016, 16:45) Каким ещё таким? Я тут ничего не предлогаю, а обьясняю что делает клиент и почему на стороне сервера это решить невозможно нормально.
Сравнивать надо не интервал между пакетами а интервал между отправкой (а не получения, дабы исключить задержки на передачу) пакета и временем завершения движения, которое каждый шаг до прекращения движения увеличивается ровно на 400\200\100. Таким образом при расинхроне через какое-то время дельта начинает измеряться секундами, т.к. из-за сбитого таймера клиент начинает отсылать серверу пакеты еще до окончания движения за счет чего и набегает расинхрон.
--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.Game isn't a dream, it is the reality, reality which is coming while we dream...
|
|
|
|
StaticZ |
6.9.2016, 18:28
|
Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009 Группа: Пользователи Наличность: 0 Из: РФ, Москва
Пользователь №: 11.948
|
Можно, я сделал. Вы просто вцепились в свои интервалы между пакетами и не слышите, того о чем я говорю - идея в том чтобы проверять само фактическое движение и то что должно быть, интервалы отправки\приема пакетов тут вообще никакой роли не играет, я вообще даже не обращаю внимания на время получения пакетов, оно попросту не нужно..
--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.Game isn't a dream, it is the reality, reality which is coming while we dream...
|
|
|
|
Wap |
7.9.2016, 22:40
|
Администратор Форума
Сообщений: 3.003
Регистрация: 22.12.2006 Группа: Администраторы Наличность: 31646
Пользователь №: 9.227
|
Цитата(igoreks @ 6.9.2016, 11:55) не понимаю , 2 год уже боритесь с тем , что достаточно разрешить... Если на сервере разрешен инжект- то по сути он есть у всех ! если у всех скорость разворота одинакова и если я не ошибаюсь , при одной траектории все клиенты на патче будут вести себя одинакого(при хорошем коннекте). так зачем боротся с патчем который улучшает игру с небольшим недостатком который на равных условиях могут использовать все? Добавь фпс патч который давно уже всем доступен в программы для всех и все .
Не всем ФПС патч нравится. И если разрешить его, он станет must have для PvP, так как на FPSе вы будете бегать быстрее. Но так как надежда на фикс - призрачна, и вопрос стоит ребром, больше игнорировать FPS патч, как простой чит, не представляется возможным, я поставил этот вопрос на голосование. Кстати, да, голосование-то не первое, прошлое только не было официальным.
--------------------
|
|
|
|
StaticZ |
8.9.2016, 19:48
|
Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009 Группа: Пользователи Наличность: 0 Из: РФ, Москва
Пользователь №: 11.948
|
Цитата(Aimed @ 8.9.2016, 0:12) УО клиенту наплевать на ваше фактическое движение на сервере. Он может менять его интервалы и это нормальное поведение клиента, сервер должен его нормально воспринимать, в вашем случае такого больше не будет.
Именно поэтому на сервере всякие анти-СХ срабатывают если слишком сильно закрутить гайки.
Начнем с того что ни на одном сервере я не видел защиты от СХ, он тупо хавает что ему шлют если отсылать пакеты с частотой 1 мс то сервер это даже не смутит. Всякие защиты от СХ о которых Вы тут говорите, в духе сравнения интервала времени прошедшим между получением прошлого и текущего пакета не является защитой, это лишь очень грубый способ который с определенной долей вероятности может выявить "читера". Для защиты от СХ нужно либо параллельно асинхроно выполнять движение персонажа (при этом пакеты передвижения будут лишь сигналами для начала и остановки а остальные просто будут проверяться) или получать подобную информацию от клиента (что вообщем-то может быть подменена но на сегодняшний день может послужить хорошей защитой). И на самом деле эти интервалы даже сам клиент считает, но не хотите не верьте, мне то что? Я все это утверждаю не тыкая в пальцем небо, а на основании информации полученной в результате реверс кодинга клиента, причем не поверхностном а серьезном доказательством чему могут служить реализованные мною расширения в том же UCS. Если Вы не можете или не знаете как это можно сделать это вовсе не означает, что это не возможно в принципе. PS какнибудь потом, когда будем тестить перемещение в следующий раз я сниму и залью видео покажу (правда я лично особо на эту тему не парюсь, поэтому сильно не замарачивался мне главное лишь чтобы читары не убегали)
--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.Game isn't a dream, it is the reality, reality which is coming while we dream...
|
|
|
|
Aimed |
9.9.2016, 14:26
|
Grandmaster
Сообщений: 2.250
Регистрация: 29.12.2012 Группа: Пользователи Наличность: 8846
Пользователь №: 15.607
|
Цитата(StaticZ @ 8.9.2016, 18:48) Начнем с того что ни на одном сервере я не видел защиты от СХ, он тупо хавает что ему шлют если отсылать пакеты с частотой 1 мс то сервер это даже не смутит. Всякие защиты от СХ о которых Вы тут говорите, в духе сравнения интервала времени прошедшим между получением прошлого и текущего пакета не является защитой, это лишь очень грубый способ который с определенной долей вероятности может выявить "читера". Для защиты от СХ нужно либо параллельно асинхроно выполнять движение персонажа (при этом пакеты передвижения будут лишь сигналами для начала и остановки а остальные просто будут проверяться) или получать подобную информацию от клиента (что вообщем-то может быть подменена но на сегодняшний день может послужить хорошей защитой). И на самом деле эти интервалы даже сам клиент считает, но не хотите не верьте, мне то что? Я все это утверждаю не тыкая в пальцем небо, а на основании информации полученной в результате реверс кодинга клиента, причем не поверхностном а серьезном доказательством чему могут служить реализованные мною расширения в том же UCS. Если Вы не можете или не знаете как это можно сделать это вовсе не означает, что это не возможно в принципе.
PS какнибудь потом, когда будем тестить перемещение в следующий раз я сниму и залью видео покажу (правда я лично особо на эту тему не парюсь, поэтому сильно не замарачивался мне главное лишь чтобы читары не убегали)
1)Значит вы мало серверов знаете, либо у вас понятие об анти-СХ другое. Разумеется не на все типы пакетов такое делается. Обычно только на запросы о перемещении и примеров серверов где это реализовано - полно. 2)Что для защиты от СХ нужно делать, это и так очевидно, зачем вы это из поста в пост повторяете - не понятно. Тут не об этом речь. 3)То что сам клиент эти интервалы считает, это я уже сам показал, скинул лог из клиента, показал что он их ещё и изменяет. 4)Вы тут не один на весь рунет клиент дизасмите. Argumentum ad verecundiam в данном случае не в тему. У меня конкретные факты есть, лог, а вы мне тут про свои достижения рассказываете... 5)Не надо мне ваш анти-СХ показывать. Тут речь не о том что его невозможно сделать. Анти-СХ как-раз таки не сложно сделать. Суть проблемы в том, что-бы работал анти-СХ и "защита от ускорений ФПС" патча на поворотах и при этом народ не терял пакеты и мог комфортно играть. Моя позиция - это невозможно реализовать только на стороне сервера.
|
|
|
|
RL_ka |
9.9.2016, 15:23
|
Разработчик Injection
Сообщений: 464
Регистрация: 13.7.2013 Группа: Модераторы Наличность: 13691 Из: Екатеринбург
Пользователь №: 16.211
|
Вы не устали ещё? Что один что второй - пустой трёп. Приведите примеры, приведите куски реверснутого кода, счётчики пакетов если хотите кому-то что-то объяснить. Какой смысл припираться, основываясь на каких-то сферических теориях в вакууме, когда вы оба можете оперировать фактами? "у меня есть то, у меня есть это, у меня есть логи, у меня есть моды..." - где это всё? Обсудите это как два взрослых человека, остальным тоже интересно послушать, а не припирайтесь тут как дети...чесслово...
|
|
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|