sapphire dev
-
Автор темы
- #1
Когда люди симулируют игрока на каждый чокнутый им тик они сторят интерполированные нетвары в рекорд, или сразу применяют к игроку и не возвращают бекап, тем самым изначально ломая велосити и другое говно. Это должно делаться только для апдейта и не должно менять конечный велосити рекорда, как это в большинстве паблик щит анимфиксах.
How i did it?
1. Каждый новый апдейт я сторю в лог файл такую инфу:
PlayerFlag: %str, tick_srv: %i, Prev_rec: [PreData: Vec(vel.x, vel.y, vel.z)/Vel_lenght(%f); PostData: Vec(vel.x, vel.y, vel.z)/Vel_lenght(%f), AnimStateResult: Vec(vel.x, vel.y, vel.z)/Vel_lenght(%f), FinnalyVel: Vec(vel.x, vel.y, vel.z)/Vel_lenght(%f)], Current_rec: [PreData: Vec(vel.x, vel.y, vel.z)/Vel_lenght(%f); PostData: Vec(vel.x, vel.y, vel.z)/Vel_lenght(%f)], [fix_1: Vec(vel.x, vel.y, vel.z)/Vel_lenght(%f)], fix_2: Vec(vel.x, vel.y, vel.z)/Vel_lenght(%f)], fix_N: Vec(vel.x, vel.y, vel.z)/Vel_lenght(%f)], AnimStateResult: Vec(vel.x, vel.y, vel.z)/Vel_lenght(%f), FinnalyVel: Vec(vel.x, vel.y, vel.z)/Vel_lenght(%f)]
2. Прошу какого-то типа побегать, попрыгать, включить/выключить фейклаги и чекаю после этого лог файл и сравниваю разницы прев рекорда и куррент рекорда, фикс велосити должен быть максимально близким к серверному значению на апдейте. (Я не про UpdateClientSideAnimations :) )
Где сторить нетвары на игрока я думаю вы понимаете. Нет, не там где вы лагкомп обычно вызываете.
Фиксы велосити вы должны сделать сами используя анимстейт гейммувмент/отхер предиктед/симулейт щит. Практически все, что нужно уже есть в паблике.
Сделал этот пост, т.к. люди довольно часто мне пишут что-то типа: "А как исправить велосити?" И т.п.
Пост сделан с телефона в армии, скоро вернусь домой!
Данная тема написана довольно размыто из-за того, что она ориентирована не на новичков, а на что-то среднее между пастером и норм кодером. Моя идеология не позволяет просто дать вам код. Хотите код - платите бабки!!! Да я хочу быть Рич сукой;
_____________________________
W/love f33nRy
How i did it?
1. Каждый новый апдейт я сторю в лог файл такую инфу:
PlayerFlag: %str, tick_srv: %i, Prev_rec: [PreData: Vec(vel.x, vel.y, vel.z)/Vel_lenght(%f); PostData: Vec(vel.x, vel.y, vel.z)/Vel_lenght(%f), AnimStateResult: Vec(vel.x, vel.y, vel.z)/Vel_lenght(%f), FinnalyVel: Vec(vel.x, vel.y, vel.z)/Vel_lenght(%f)], Current_rec: [PreData: Vec(vel.x, vel.y, vel.z)/Vel_lenght(%f); PostData: Vec(vel.x, vel.y, vel.z)/Vel_lenght(%f)], [fix_1: Vec(vel.x, vel.y, vel.z)/Vel_lenght(%f)], fix_2: Vec(vel.x, vel.y, vel.z)/Vel_lenght(%f)], fix_N: Vec(vel.x, vel.y, vel.z)/Vel_lenght(%f)], AnimStateResult: Vec(vel.x, vel.y, vel.z)/Vel_lenght(%f), FinnalyVel: Vec(vel.x, vel.y, vel.z)/Vel_lenght(%f)]
2. Прошу какого-то типа побегать, попрыгать, включить/выключить фейклаги и чекаю после этого лог файл и сравниваю разницы прев рекорда и куррент рекорда, фикс велосити должен быть максимально близким к серверному значению на апдейте. (Я не про UpdateClientSideAnimations :) )
Где сторить нетвары на игрока я думаю вы понимаете. Нет, не там где вы лагкомп обычно вызываете.
Фиксы велосити вы должны сделать сами используя анимстейт гейммувмент/отхер предиктед/симулейт щит. Практически все, что нужно уже есть в паблике.
Сделал этот пост, т.к. люди довольно часто мне пишут что-то типа: "А как исправить велосити?" И т.п.
Пост сделан с телефона в армии, скоро вернусь домой!
Данная тема написана довольно размыто из-за того, что она ориентирована не на новичков, а на что-то среднее между пастером и норм кодером. Моя идеология не позволяет просто дать вам код. Хотите код - платите бабки!!! Да я хочу быть Рич сукой;
_____________________________
W/love f33nRy
Последнее редактирование: