-
Posts
7,880 -
Joined
-
Last visited
-
Days Won
266
Everything posted by StranikS_Scan
-
Причину нашел, сегодня обновлю. ЗЫ: Я же говорил, что проблема в Вынь7, не все стандартные опции команды CreateProcess она почему-то переваривает. Пришлось методом перебора искать, какой флаг кладёт программу. Вышло обновление программы 2.2.4 1. Исправлено зависание консольной версии программы в Windows 7 2. Учтено переименование файла WorldOfTanks.exe в Tanki.exe в клиенте игры от Lesta
-
[WOT STAT] Мод для анализа подкруток
StranikS_Scan replied to SoprachevAK's topic in Mods and Software
Скорее всего что-то другое происходит, а не смена логики сбора. Потому что все типы танков одновременно встают в длительную очередь через 20 сек. Как будто конвейер всех схватил и выкинул обратно в начало очереди. На графике не хватает информации об объемах игроков, о которых идёт речь. Какие объемы были раскиданы за 20 сек, а какой объем улетел в доп. ожидание и как это всё делиться в объемах между типами. -
Тебе надо Андрею @reven86 писать, автору WOTInspector, у него на сайте репки парсятся в плоть до всех событий боя. Он точно знает, что там и как.
-
За два дня WN8 упал на 20 единиц... а играл хорошо..
StranikS_Scan replied to Peter_1934's topic in Statistics in XVM
Дежурный бугурт, аля "верните мне мои циферки". Вы даже не захотели понять, что вам написали. А написали вам, что на сервере запущен процесс разделения статистики. Вот и до вашего аккаунта это разделение дошло. Что до ваших наблюдений, то они ничего не стоят ибо тому человеку, который вам отвечал выше - в разы виднее, он то имеет доступ к северу XVM и знает, что там делается, а вы - нет. -
WGUS и кастомная загрузка клиента
StranikS_Scan replied to SoprachevAK's topic in Modding General Discussion
Я способов не знаю. Думаю их нет. -
Каким образом? Границы никто вручную сам не регулирует и не меняет. Это характеристика играющей массы. Она зависит только от играющей массы. А сервер просто делает расчёт этой характеристики, используя статистику всех игроков играющей массы. Так что вам надо обращаться к игрокам и их просить не играть, ну или чтобы они играли похуже, тогда вы станете повыше.
-
[WOT STAT] Мод для анализа подкруток
StranikS_Scan replied to SoprachevAK's topic in Mods and Software
@SoprachevAK какого размера сейчас БД на сервере? -
[WOT STAT] Мод для анализа подкруток
StranikS_Scan replied to SoprachevAK's topic in Mods and Software
То есть у тебя на сервере столько есть точек попадания по ИС-7, что они статистически покрывают все кубоиды коллижена? -
[WOT STAT] Мод для анализа подкруток
StranikS_Scan replied to SoprachevAK's topic in Mods and Software
Вы сейчас обсуждаете, куда надо встать в поле, чтобы подул южный ветер. Это не имеет никакого смысла, т.к. априори балансировщик не различает игроков, только тип и уровень техники и уж тем более ни как не связан с действиями игрока в бою. Поэтому искать объяснения нужно только в этой области и не выходить за рамки очереди, типа и уровней. Иначе вы автоматически попадаете в дебри заговорщицких историй, из которых никто никогда не возвращался с каким-либо реальным результатом. -
[WOT STAT] Мод для анализа подкруток
StranikS_Scan replied to SoprachevAK's topic in Mods and Software
Лол, это всё конечно здорово, но не существует ни 11, ни 12 уровней боёв. Есть только 1, 2, ..., 10. Бои якобы 11 и 12 уровня - это условность, не имеющая отношения к логике работы балансировщика. Такие же бои можно выделить и на любом другом уровне, например 8 уровень - бои без 6-к или бои только с 8-ми. Никто не говорит, что существует якобы некий "уровень" или "режим", когда на 8-м уровне боя в команде только 8-ки. Откуда берутся бои из одних 10-к? Ну это легко. В описаниях работы балансировщика не раз упоминалась ситуация, когда очередь длинная, а балансировщик не может в ней найти танк нужного уровня, либо его просто нет, либо их так мало, что какие-то нитки балансировщика просто зависают в ожидании. И тогда в ход идут послабления и нестандартные шаблоны. Один из нестандартных шаблонов это команды из танков одного уровня. Но чтобы попасть в такое нужно чтобы был какой-то аншлаг или ивент, когда в очереди из 1000 игроков, например, десяток 98%. Вот тут то и будут эти самые бои "12 уровня". Сегодня нет таких аншлагов. -
[WOT STAT] Мод для анализа подкруток
StranikS_Scan replied to SoprachevAK's topic in Mods and Software
Нет никакого смысла во всем этом. Просто получишь дрожащие башню и прицел. Играть с ними очень не комфортно и сильно утомляет. А практической пользы нет никакой, т.к. чтобы разница между прицелами на сервере и на клиенте была минимальна, достаточно единственного правила - сводиться перед выстрелом в любых ситуациях. И всё. Базовое правило №1 этой игры. Все остальное от лукавого. Там в моде еще куча всякой фигни, от которой он скорее всего и помер. Не хочу разбираться, извини. -
[WOT STAT] Мод для анализа подкруток
StranikS_Scan replied to SoprachevAK's topic in Mods and Software
Там такое дело ... клиентское сведение вообще не синхронизируется с серверным. Есть такой мод у Пети - Стволик хаоса. Он хукает функцию синхронизации клиентского прицела с серверным прицелом 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(), то играть не возможно, прицел становится дерганным, запаздывающим и начинает тупо раздражать. Потому я отказался от него. Игрокам это не зайдет. -
[WOT STAT] Мод для анализа подкруток
StranikS_Scan replied to SoprachevAK's topic in Mods and Software
Ну логично, у арты из-за большой дистанции серверное и клиентское в динамике сильнее не совпадает. -
Гравитация снаряда на WG клиенте после 1.26
StranikS_Scan replied to SoprachevAK's topic in Mod Development
А смысл в нем тогда какой? Он же ничего давать не будет в плане попаданий. -
Гравитация снаряда на WG клиенте после 1.26
StranikS_Scan replied to SoprachevAK's topic in Mod Development
Не, такого не может быть. Баллистика изначально была создано такой как она есть. И те кто её создал отлично разбираются в том, что они делают. Ты скорее всего приводишь слова говорящих голов от ВГ, которые всякую чушь несли в массы в виде "ответов разработчиков". Скорее всего Коню забыли гравитацию поправить, когда скорость поменяли. А эти вещатели придумали очередную историю. Этого не помню. -
Гравитация снаряда на WG клиенте после 1.26
StranikS_Scan replied to SoprachevAK's topic in Mod Development
Потратил всё утро и пришел к выводу, что гравитацию крутят чтобы корректировать высоту траектории. В игре время полета снарядов обратно зависит от начальной скорости, а вот все траектории пологие, не зависимо от скорости, прямых-линейных, а также гаубичных траекторий в игре нет. А после Петиной Мортиры над картой еще и купол сделали чтобы желающих клюв задирать к нему больше не было. В игре реализована модель: 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 раза. И это надо учитывать в модах. -
Гравитация снаряда на WG клиенте после 1.26
StranikS_Scan replied to SoprachevAK's topic in Mod Development
Тогда понятно. -
Гравитация снаряда на WG клиенте после 1.26
StranikS_Scan replied to SoprachevAK's topic in Mod Development
Скорость снаряда это свойство перка номер 404. И его просто переименовали, было shotDemaskFactor стало shellVelocity, при том же значении 0.001, которое никак не вяжется с формулой getVehicleShotSpeedByFactors. Так что это не то. Параметр gunShotsSpeed должен быть в районе единицы, а не 0.001. Я вообще думаю, что мы не туда копаем. Скорее всего с патча 1.26 учитывается влияние препятствий на траекторию или параметры трассера. Вот и получаем кучу рандомных гравитаций. -
Гравитация снаряда на WG клиенте после 1.26
StranikS_Scan replied to SoprachevAK's topic in Mod Development
Нет. Перк 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 это демаскирующий фактор -
Гравитация снаряда на WG клиенте после 1.26
StranikS_Scan replied to SoprachevAK's topic in Mod Development
Вообще поглядел. Раньше был только один корректор 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 значения тоже у трассеров. -
Гравитация снаряда на WG клиенте после 1.26
StranikS_Scan replied to SoprachevAK's topic in Mod Development
А точнее? -
Гравитация снаряда на WG клиенте после 1.26
StranikS_Scan replied to SoprachevAK's topic in Mod Development
У тебя версии игры по ссылкам разные. Это как бы не то. От версии к версии ттх снарядов меняют. -
Гравитация снаряда на WG клиенте после 1.26
StranikS_Scan replied to SoprachevAK's topic in Mod Development
Тип боя какой? Это не эвенты?