Jump to content
Korean Random

StranikS_Scan

Premium Member
  • Posts

    7,880
  • Joined

  • Last visited

  • Days Won

    266

Everything posted by StranikS_Scan

  1. Причину нашел, сегодня обновлю. ЗЫ: Я же говорил, что проблема в Вынь7, не все стандартные опции команды CreateProcess она почему-то переваривает. Пришлось методом перебора искать, какой флаг кладёт программу. Вышло обновление программы 2.2.4 1. Исправлено зависание консольной версии программы в Windows 7 2. Учтено переименование файла WorldOfTanks.exe в Tanki.exe в клиенте игры от Lesta
  2. 1. Заходите в папку с игрой 2. Копируете файл Tanki.exe 3. Переименовываете его в WorldOfTanks.exe 4. Делаете это в корневом каталоге и в win32 и в win64 После этого всё будет работать как раньше.
  3. Обновление 1.4.2 Список изменений: 1. Учтено переименование файла WorldOfTanks.exe в Tanki.exe в клиенте игры от Lesta 2. Восстановлена работа функции загрузки перечня файлов игры с сервера обновления Lesta 3. Добавлена возможность скачивания дистрибутивов Lesta Game Center и Wargaming Game Center
  4. Скорее всего что-то другое происходит, а не смена логики сбора. Потому что все типы танков одновременно встают в длительную очередь через 20 сек. Как будто конвейер всех схватил и выкинул обратно в начало очереди. На графике не хватает информации об объемах игроков, о которых идёт речь. Какие объемы были раскиданы за 20 сек, а какой объем улетел в доп. ожидание и как это всё делиться в объемах между типами.
  5. Тебе надо Андрею @reven86 писать, автору WOTInspector, у него на сайте репки парсятся в плоть до всех событий боя. Он точно знает, что там и как.
  6. Дежурный бугурт, аля "верните мне мои циферки". Вы даже не захотели понять, что вам написали. А написали вам, что на сервере запущен процесс разделения статистики. Вот и до вашего аккаунта это разделение дошло. Что до ваших наблюдений, то они ничего не стоят ибо тому человеку, который вам отвечал выше - в разы виднее, он то имеет доступ к северу XVM и знает, что там делается, а вы - нет.
  7. Каким образом? Границы никто вручную сам не регулирует и не меняет. Это характеристика играющей массы. Она зависит только от играющей массы. А сервер просто делает расчёт этой характеристики, используя статистику всех игроков играющей массы. Так что вам надо обращаться к игрокам и их просить не играть, ну или чтобы они играли похуже, тогда вы станете повыше.
  8. @SoprachevAK какого размера сейчас БД на сервере?
  9. То есть у тебя на сервере столько есть точек попадания по ИС-7, что они статистически покрывают все кубоиды коллижена?
  10. Вы сейчас обсуждаете, куда надо встать в поле, чтобы подул южный ветер. Это не имеет никакого смысла, т.к. априори балансировщик не различает игроков, только тип и уровень техники и уж тем более ни как не связан с действиями игрока в бою. Поэтому искать объяснения нужно только в этой области и не выходить за рамки очереди, типа и уровней. Иначе вы автоматически попадаете в дебри заговорщицких историй, из которых никто никогда не возвращался с каким-либо реальным результатом.
  11. Лол, это всё конечно здорово, но не существует ни 11, ни 12 уровней боёв. Есть только 1, 2, ..., 10. Бои якобы 11 и 12 уровня - это условность, не имеющая отношения к логике работы балансировщика. Такие же бои можно выделить и на любом другом уровне, например 8 уровень - бои без 6-к или бои только с 8-ми. Никто не говорит, что существует якобы некий "уровень" или "режим", когда на 8-м уровне боя в команде только 8-ки. Откуда берутся бои из одних 10-к? Ну это легко. В описаниях работы балансировщика не раз упоминалась ситуация, когда очередь длинная, а балансировщик не может в ней найти танк нужного уровня, либо его просто нет, либо их так мало, что какие-то нитки балансировщика просто зависают в ожидании. И тогда в ход идут послабления и нестандартные шаблоны. Один из нестандартных шаблонов это команды из танков одного уровня. Но чтобы попасть в такое нужно чтобы был какой-то аншлаг или ивент, когда в очереди из 1000 игроков, например, десяток 98%. Вот тут то и будут эти самые бои "12 уровня". Сегодня нет таких аншлагов.
  12. Нет никакого смысла во всем этом. Просто получишь дрожащие башню и прицел. Играть с ними очень не комфортно и сильно утомляет. А практической пользы нет никакой, т.к. чтобы разница между прицелами на сервере и на клиенте была минимальна, достаточно единственного правила - сводиться перед выстрелом в любых ситуациях. И всё. Базовое правило №1 этой игры. Все остальное от лукавого. Там в моде еще куча всякой фигни, от которой он скорее всего и помер. Не хочу разбираться, извини.
  13. Там такое дело ... клиентское сведение вообще не синхронизируется с серверным. Есть такой мод у Пети - Стволик хаоса. Он хукает функцию синхронизации клиентского прицела с серверным прицелом PlayerAvatar.updateGunMarker(), берет углы поворота башни от сервера и принудительно прописывает их клиентской башне. Он еще всякое делает, но это другое и не важно. Я почему про него пишу. Решил в том месяце тоже себе запилить мод чтобы синхронизировать и башню с орудием и клиентский прицел. Посмотреть будет ли круто или нет. С первым всё понятно, а вот со вторым оказалось интересно. Если покопаться в функции setShotPosition(), которую вызывает updateGunMarker(), то можно увидеть вот такое место: def setShotPosition(self, vehicleID, shotPos, shotVec, dispersionAngle, forceValueRefresh=False): ....... self.__dispersionAngles[0] = dispersionAngle ....... if self.__clientMode and self.__showServerMarker: self._avatar.inputHandler.updateServerGunMarker(mPos, mDir, (mSize, mIdealSize), SERVER_TICK_LENGTH, collData) if not self.__clientMode or forceValueRefresh: self.__lastShotPoint = mPos self._avatar.inputHandler.updateClientGunMarker(mPos, mDir, (mSize, mIdealSize), SERVER_TICK_LENGTH, collData) ....... Я его видел 100500 раз за 10 лет, но до меня только в этот раз дошло, что никакой обратной синхронизации между серверным и клиентском прицелом нет. В коде выше два флага forceValueRefresh и self.__clientMode. Первый всегда False, т.к. updateGunMarker() его не использует. Второй __clientMode по умолчанию всегда True, т.к. он определяет кто управляет прицелом - игрок или серверный аим. Когда игрок управляет сам, флаг включен и получается, что функция синхронизации updateClientGunMarker() не вызывается. Обратной связи - нет. Если включить обратную связь принудительно, по аналогии, как это сделал Петя, то клиентский прицел будет вести себя как клиентский серверный прицел, который включается в настройках игры и у которого выше свой флаг активации __showServerMarker и своя функция обратной синхронизации updateServerGunMarker(). Таким образом, игровая модель не предполагает коррекцию клиентского прицела игрока по серверным координатам. Однако, как видим в коде выше - текущей угол разброса синхронизуется постоянно без каких либо условий. Что касается мода, то если принудительно запилить вызов updateClientGunMarker(), то играть не возможно, прицел становится дерганным, запаздывающим и начинает тупо раздражать. Потому я отказался от него. Игрокам это не зайдет.
  14. Ну логично, у арты из-за большой дистанции серверное и клиентское в динамике сильнее не совпадает.
  15. А смысл в нем тогда какой? Он же ничего давать не будет в плане попаданий.
  16. Не, такого не может быть. Баллистика изначально была создано такой как она есть. И те кто её создал отлично разбираются в том, что они делают. Ты скорее всего приводишь слова говорящих голов от ВГ, которые всякую чушь несли в массы в виде "ответов разработчиков". Скорее всего Коню забыли гравитацию поправить, когда скорость поменяли. А эти вещатели придумали очередную историю. Этого не помню.
  17. Потратил всё утро и пришел к выводу, что гравитацию крутят чтобы корректировать высоту траектории. В игре время полета снарядов обратно зависит от начальной скорости, а вот все траектории пологие, не зависимо от скорости, прямых-линейных, а также гаубичных траекторий в игре нет. А после Петиной Мортиры над картой еще и купол сделали чтобы желающих клюв задирать к нему больше не было. В игре реализована модель: L = (Lx^2 + Ly^2)^0.5 V = (Vx^2 + Vy^2)^0.5, где Lx = Vx*t + 0.5*Gx*t^2 Ly = Vy*t + 0.5*Gy*t^2, где Gx = 0 Gy = g0 < 0 В этой модели, если зафиксировать координаты точки прилета и соответственно задаться Lx = Lx0 и Ly = Ly0, а также модулем скорости V0 и временем t0, то увеличение модуля V0 в k-раз приведет к равенствам: L0 = (Lx0^2 + Ly0^2)^0.5 V0*k = ((Vx0*k)^2 + (Vy0*k)^2)^0.5, где Lx0 = Vx0*k*t + 0.5*Gx*t^2 Ly0 = Vy0*k*t + 0.5*Gy*t^2, где Gx = 0 Gy = g0 < 0 Это означает, что снижение времени полёта снаряда будет определяться из решения вот такой системы: Vx0*t0 + 0.5*Gx*t0^2 = Vx0*k*t + 0.5*Gx*t^2 Vy0*t0 + 0.5*Gy*t0^2 = Vy0*k*t + 0.5*Gy*t^2 Решать не будем, ограничимся ниже только анализом формул, которые из него следуют. Если принять, что точка выстрела и точка попадания лежат на одной горизонтали, то тогда Ly0 = 0. Отсюда получаем выражение для времени полета снаряда t = -2*Vy0*k/Gy = t0/k. При этом зависимость расстояния Lx от времени, с учетом, что Gx = 0, принимает вид Lx = Vx0*k*t и если t = t0/k, то выполняется исходное равенство Lx = Lx0. Следовательно, увеличивая модуль начальной скорости мы уменьшаем время полета, сохраняя при этом дистанцию до точки прицеливания. Как изменится время, если кроме скорости корректировать еще и гравитацию, по принципу Gy = Gy0*k^2. В этом случае получим точно такой же результат со временем полета снаряда, только он будет более простой в вычислениях: Lx0 = Vx0*k*t + 0.5*Gx0*k^2*t^2 = Vx0*k*t0/k + 0.5*Gx0*k^2*(t0/k)^2 Ly0 = Vy0*k*t + 0.5*Gy0*k^2*t^2 = Vy0*k*t0/k + 0.5*Gy0*k^2*(t0/k)^2 и соответственно, новое время полета снаряда это t = t0/k. А теперь возникает вопрос, а что еще меняется кроме времени? Очевидно, что дистанция тут не меняется, т.к. выше она не зависит от гравитации. Меняется максимальная высота подъема снаряда. Она определяется выражением: Lymax = Vy^2 / (2*Gy) При увеличении модуля скорости Vy0*k, получаем увеличение высота траектории Lymax0*k^2. Если при этом увеличим гравитацию Gy0*k^2, то эффект пропадет и высота траектории останется такой же. -------------------------------------------------- Выводы: 1. Увеличение в игре только лишь скорости снаряда танка приводит к снижению времени полета, а также к увеличению высоты траектории полета. 2. Коррекция гравитации при увеличении скорости снаряда нужна для того чтобы менялось только время полета, а высота траектории не менялась. 3. В игре за счет использования заниженных и завышенных значений гравитации (относительно 9,81 м/с^2) добиваются пологих траекторий у всех танков. 4. Базовая коррекция скорости и гравитации на 0.8 и 0.64 в клиенте игры сделана для принудительного увеличения времени отрисовки трассеров на 25%. В файлах ттх танков и очевидно при расчете попаданий на сервере - снаряды летят быстрее, чем трассеры в клиенте игры. Это еще одна из причин почему в игре сначала игрок видит результат попадания, а потом трассер. 5. Как следует из функции getVehicleShotSpeedByFactors новый навык заряжающего "Идеальная зарядка" в реальности работает не на увеличение скорости снарядов, как дается в описании, а на уменьшение времени полета снаряда, т.к. его действие приводит к сокращению времени, при сохранении исходных траекторий и высот полета. Если вкаченный перк дает 1.1 к скорости и 1.21 к гравитации, то время уменьшается в 0.909 раза. И это надо учитывать в модах.
  18. Скорость снаряда это свойство перка номер 404. И его просто переименовали, было shotDemaskFactor стало shellVelocity, при том же значении 0.001, которое никак не вяжется с формулой getVehicleShotSpeedByFactors. Так что это не то. Параметр gunShotsSpeed должен быть в районе единицы, а не 0.001. Я вообще думаю, что мы не туда копаем. Скорее всего с патча 1.26 учитывается влияние препятствий на траекторию или параметры трассера. Вот и получаем кучу рандомных гравитаций.
  19. Нет. Перк 404 раньше имел вот такие параметры: <perk> <id> 404 </id> <defaultBlockSettings> <arg> <argId> shotDemaskFactor </argId> <value> 0.001 </value> </arg> <arg> <argId> foliageMaskingFactor </argId> <value> 0.0002 </value> </arg> </defaultBlockSettings> </perk> и 0.001 это демаскирующий фактор
  20. Вообще поглядел. Раньше был только один корректор projectileSpeedFactor, который всегда по умолчанию равен 0.8 в клиенте игры и применяется к скорости и гравитации с сохранением траектории для снижения времени полёта и отрисовки снаряда: velocity / 0.8 и gravity / 0.8**2. А два месяца назад в патче 1.26.0.0 добавили еще и второй корректор gunShotsSpeed: def getVehicleShotSpeedByFactors(factors, speed, gravity=1.0): projectileSpeedFactor = vehicles.g_cache.commonConfig['miscParams']['projectileSpeedFactor'] newProjectileSpeedFactor = projectileSpeedFactor * factors.get('gunShotsSpeed', 1.0) speed = speed / projectileSpeedFactor * newProjectileSpeedFactor gravity = gravity / projectileSpeedFactor ** 2 * newProjectileSpeedFactor ** 2 return (speed, gravity) И судя по коду, параметры на него умножаются: velocity * gunShotsSpeed и gravity / gunShotsSpeed**2. Фактор в исходниках называется так 'gun/shots/speed'. Однако к какому перку он привязан не понятно. Так что гравитация в трассере может и меняться, однако я думаю, что меняется и модуль начального velocity значения тоже у трассеров.
  21. У тебя версии игры по ссылкам разные. Это как бы не то. От версии к версии ттх снарядов меняют.
×
×
  • Create New...