yepev 287 #508484 Posted September 16, 2021 @SoprachevAK наверно решили не писать очевидное. Конечно, невозможно делать запросы с клиентского приложения не засветив в нём ключ. Quote Share this post Link to post Short link Share on other sites
SoprachevAK 64 #508485 Posted September 16, 2021 5 hours ago, StranikS_Scan said: рейкаст Так в физических движках называют поиск пересечения луча и любого коллайдера сцены. Тоже самое что и BigWorld.wg_collideDynamicStatic у ВГ. 5 hours ago, StranikS_Scan said: сетку за танком врага и коллайдит её узлы из точки А сколько у тебя было узлов чтоб это не сильно влияло на производительность? И как давно ты это делал, там же вроде бы относительно недавно вынесли физику на отельное ядро Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #508486 Posted September 16, 2021 (edited) 14 минут назад, SoprachevAK сказал: А сколько у тебя было узлов чтоб это не сильно влияло на производительность? И как давно ты это делал, там же вроде бы относительно недавно вынесли физику на отельное ядро Ну понятие "не сильно влияло" оно очень растяжимо. Например, на ноуте с i7 цикл с обстрелом сетки в 150-200 точек и баллистикой укладывается в 0,1-0,2 сек без видимых тормозов. На более слабой машине может тормозить. Кулькуляторы зафризят при такой сетке. Коллайды нативные, сами они быстрые, а вся обвязка и вызовы на пайтоне же, вот отсюда и тормоза. Так что ядра-физика это всё не влияет. 18 минут назад, yepev сказал: Конечно, невозможно делать запросы с клиентского приложения не засветив в нём ключ. Все верно. Все запросы с компа априори можно посмотреть какой-нибудь "монитор"-программой. Однако я не очень понимаю чего такой кипишь вокруг токена. В использовании чужого токена нет никакого смысла. Edited September 16, 2021 by StranikS_Scan Quote Share this post Link to post Short link Share on other sites
KPOT2338 6 #508606 Posted September 19, 2021 На Промзоне маршрут и выстрелы отображаются неправильно. Предположительно со сдвигом на одну клетку вправо (или даже больше) Жёлтым и зелёным реальное положение меня и выстрелов. Нашёл у себя ещё одну Промзону, там тоже такой же сдвиг. На других картах такой ошибки вроде нет Quote Share this post Link to post Short link Share on other sites
SoprachevAK 64 #508625 Posted September 20, 2021 14 hours ago, KPOT2338 said: На Промзоне маршрут и выстрелы отображаются неправильно. Предположительно со сдвигом на одну клетку вправо (или даже больше) Жёлтым и зелёным реальное положение меня и выстрелов. Нашёл у себя ещё одну Промзону, там тоже такой же сдвиг. На других картах такой ошибки вроде нет Да, есть такое на картах, которые расширяли после релиза, у них начало координат не совпадает с центром карты. В текущем решение нет способа адекватно пофиксить, в новой версии учту. Quote Share this post Link to post Short link Share on other sites
KPOT2338 6 #508843 Posted September 25, 2021 А можно где-нибудь (в заголовке, в стартовом посту, добавить пост в конце) написать предупреждение, что сейчас нужно ставить восьмую версию? А то на сайте подряд больше десятка моих реплеев, т.е. народ не в курсе И я бы не узнал, если б не заметил, что семёрка не работает Quote Share this post Link to post Short link Share on other sites
SoprachevAK 64 #508850 Posted September 25, 2021 (edited) 5 часов назад, KPOT2338 сказал: А можно где-нибудь (в заголовке, в стартовом посту, добавить пост в конце) написать предупреждение, что сейчас нужно ставить восьмую версию? А то на сайте подряд больше десятка моих реплеев, т.е. народ не в курсе И я бы не узнал, если б не заметил, что семёрка не работает Я 0.0.8 выкатил сегодня часов в 7 утра, и она в автоапдейте. То есть 0.0.7 сама обновится до 0.0.8 при входе в игру. И после перезапуска запустится уже 0.0.8 То есть на переход надо 2 запуска игры. Так что потихоньку обновятся дня за 2-3 Edited September 25, 2021 by SoprachevAK Quote Share this post Link to post Short link Share on other sites
SoprachevAK 64 #508873 Posted September 27, 2021 (edited) Вопрос 1. Как лучше получать информацию о нанесённом уроне, чтоб была возможность связать её с выстрелом (как это сделано в моде просмотра попаданий выстрел-результат-урон)? Я пока нашел ивент sessionProvider.shared.feedback.onPlayerFeedbackReceived в котором есть в том числе и событие нанесения урона выстрелом Однако возможно есть более хороший способ получения этого значения, я был удивлён, когда узнал, что Vehicle.showDamageFromShot не передаёт информации об уроне Сейчас жизненный цикл события выстрела такой PlayerAvatar.shoot -> PlayerAvatar.showTracer -> (Vehicle.showDamageFromShot ИЛИ PlayerAvatar.explodeProjectile) -> ProjectileMover.killProjectile. Было бы круто знать информацию о нанесённом уроне на этапе showDamageFromShot Вопрос 2. Есть ли у клиента готовая функция расчёта толщины брони танка в точке по вектору? Как это делает светофор на маркере, только чтоб значение было в числах, а не цветах. Возможно меня надо ткнуть в функцию этого светофора, где всё это считается. Анализ реальной точки попадания это конечно круто, но в пограничных случаях (+-25% пробития) он может портить точку попадания. Мне кажется, что лучше анализировать ровно ту информацию, которую сервер отправляет игроку. Если рикошет нарисовался там, где должно было быть пробитие, то для игрока это негативные эмоции и «открутка». Ps. Вопросы общего содержание лучше задавать в этой теме или создавать отдельную для каждого, чтоб их потом искать проще было? Edited September 27, 2021 by SoprachevAK Quote Share this post Link to post Short link Share on other sites
KPOT2338 6 #508980 Posted September 29, 2021 Кто как, но я в такое пока не готов поверить Quote Share this post Link to post Short link Share on other sites
SoprachevAK 64 #508985 Posted September 30, 2021 5 часов назад, KPOT2338 сказал: Кто как, но я в такое пока не готов поверить Короче, в новой версии открою ишъю, и это к более опытным мододелам, человек играл с пингом 200, и клиентский прицел разбрасывался, а информация от сервера о выстреле ещё не приходит То есть я в момент лкм если МОЖНО СТРЕЛЯТЬ запоминаю координаты прицела, и когда приходит выстрел, я создаю событие Но почему то у него видимо это "можно стрелять" не работает, и сведение разбрасывается, а стрелять всё ещё можно, и я записываю сведение после того как оно разбросалось Не знаю что с этим делать Новая версия будет писать и клиентский и серверные прицелы и можно будет посмотреть оба Quote Share this post Link to post Short link Share on other sites
MoD 33 #509565 Posted October 9, 2021 On 9/27/2021 at 4:29 AM, SoprachevAK said: Вопрос 1. Как лучше получать информацию о нанесённом уроне, чтоб была возможность связать её с выстрелом (как это сделано в моде просмотра попаданий выстрел-результат-урон)? Я пока нашел ивент sessionProvider.shared.feedback.onPlayerFeedbackReceived в котором есть в том числе и событие нанесения урона выстрелом Однако возможно есть более хороший способ получения этого значения, я был удивлён, когда узнал, что Vehicle.showDamageFromShot не передаёт информации об уроне Сейчас жизненный цикл события выстрела такой PlayerAvatar.shoot -> PlayerAvatar.showTracer -> (Vehicle.showDamageFromShot ИЛИ PlayerAvatar.explodeProjectile) -> ProjectileMover.killProjectile. Было бы круто знать информацию о нанесённом уроне на этапе showDamageFromShot Вопрос 2. Есть ли у клиента готовая функция расчёта толщины брони танка в точке по вектору? Как это делает светофор на маркере, только чтоб значение было в числах, а не цветах. Возможно меня надо ткнуть в функцию этого светофора, где всё это считается. Анализ реальной точки попадания это конечно круто, но в пограничных случаях (+-25% пробития) он может портить точку попадания. Мне кажется, что лучше анализировать ровно ту информацию, которую сервер отправляет игроку. Если рикошет нарисовался там, где должно было быть пробитие, то для игрока это негативные эмоции и «открутка». Ps. Вопросы общего содержание лучше задавать в этой теме или создавать отдельную для каждого, чтоб их потом искать проще было? Есть ещё def onVehicleHealthChanged(self, vehicleID, newHealth, attackerID, attackReasonID) Туда приходят данные, когда танк видимый, в круге отрисовки и у него по какой-то причние(attackReasonID) изменилось количество ХП список attack reason можно найти в константах ATTACK_REASONS = ( ATTACK_REASON.SHOT, #0 ATTACK_REASON.FIRE, #1 ATTACK_REASON.RAM, #2 ATTACK_REASON.WORLD_COLLISION, #3 ATTACK_REASON.DEATH_ZONE, #4 ATTACK_REASON.DROWNING, #5 ATTACK_REASON.GAS_ATTACK, #6 ATTACK_REASON.OVERTURN, #7 ATTACK_REASON.MANUAL, #8 ATTACK_REASON.ARTILLERY_PROTECTION, #9 ATTACK_REASON.ARTILLERY_SECTOR, #10 ATTACK_REASON.BOMBERS, #11 ATTACK_REASON.RECOVERY, #12 ATTACK_REASON.ARTILLERY_EQ, #13 ATTACK_REASON.BOMBER_EQ, #14 ATTACK_REASON.MINEFIELD_EQ, #15 ATTACK_REASON.NONE, #16 ATTACK_REASON.SPAWNED_BOT_EXPLOSION, #17 ATTACK_REASON.BERSERKER, #18 ATTACK_REASON.SPAWNED_BOT_RAM, #19 ATTACK_REASON.SMOKE) #20 PS гг, помню когда эти ризоны заканчивались на 6 :D 1 Quote Share this post Link to post Short link Share on other sites
SoprachevAK 64 #509566 Posted October 9, 2021 1 час назад, MoD сказал: def onVehicleHealthChanged(self, vehicleID, newHealth, attackerID, attackReasonID) Спасибо, гляну Там как раз и взрыв бк определить можно, так что вообще полезно 1 час назад, MoD сказал: PS гг, помню когда эти ризоны заканчивались на 6 :D Игра развивается, обилки добавляются Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #509597 Posted October 10, 2021 (edited) Цитата Мне кажется, что лучше анализировать ровно ту информацию, которую сервер отправляет игроку. Если рикошет нарисовался там, где должно было быть пробитие, то для игрока это негативные эмоции и «открутка». Так не получится. Сервер не присылают клиенту игры точку попадания. Сервер кодирует точку попадания, предварительно разбивая модель не кубики по 256 частей по каждой из трех осей. А затем высылает адрес кубики в пределах, которого была точка попадания, и высылает результат попадания. Клиент получает адрес кубика, получает результат и дальше рисует шлепок. В зависимости от результат он выбирает текстуру шлепка - пробитие, рикошет, непробитие. Думаю понятно, что местоположение шлепка может оказаться совсем не там, где в действительности точка КЗ, если размеры танка велики, например маус. Отсюда и проблема не соответствия данных баллистики на клиенте с результатом, посчитанным сервером. Однако, если действительно идти по пути - берем только то, что прислал сервер. То, тогда надо оперировать не точкой попадания, а "кубиком" в пределах которого было то попадание. С этой точки зрения будет правильно поступать именно так. Ведь сервер присылает координаты кубика. Как клиент декодирует координаты кубика можно глянуть тут. Он там делает потом коллайд и типа сам смотрит, что получается и исходя из результата делает выводы. Что к слову вносит еще больше путаницы )))) Edited October 10, 2021 by StranikS_Scan 2 Quote Share this post Link to post Short link Share on other sites
SoprachevAK 64 #509617 Posted October 11, 2021 12 часов назад, StranikS_Scan сказал: Однако, если действительно идти по пути - берем только то, что прислал сервер. То, тогда надо оперировать не точкой попадания, а "кубиком" в пределах которого было то попадание. С этой точки зрения будет правильно поступать именно так. Ведь сервер присылает координаты кубика. А это реально хорошая идея, построить проекцию каждой точки на плоскость разброса и отображать область в которую точно попал снаряд, потом конечно встанет вопрос как это анализировать, но почему бы и не сделать. А так про кубики читал уже, и мой посыл был в том, что анализировать надо ровно то место, где клиент нарисовал декаль, даже если это очевидно неправильно. Игроки не знают серверных механик, они видят, что прицелились в мауса там где можно пробить, снаряд полетел правильно, декаль нарисовалась правильно, а по факту непробитие, видят это и негодуют. Такие ситуации можно будет посчитать как только я добавлю расчёт брони в точке отрисовки декали. Но пока я калькулирую урон и привязываю его к выстрелам, как оказалась крайне нетривиальная задача. Quote Share this post Link to post Short link Share on other sites
KPOT2338 6 #509631 Posted October 11, 2021 (edited) Так может вылеты за круг и объясняются дискретностью получаемых данных? Edited October 11, 2021 by KPOT2338 Quote Share this post Link to post Short link Share on other sites
SoprachevAK 64 #509670 Posted October 12, 2021 23 часа назад, KPOT2338 сказал: Так может вылеты за круг и объясняются дискретностью получаемых данных? Неа, сейчас я учитываю не попадания, а вылет трассера. Ну и это слишком больше вылеты, вероятнее всего рассинхронизация. Версия в разработке собирает уже и трассёр и попадания, при этом накладывая их и на серверный и на клиентский маркер. Можно будет посмотреть где точнее отображается Quote Share this post Link to post Short link Share on other sites
KPOT2338 6 #510300 Posted October 26, 2021 Пусть рассинхрон. Но мне интересно насколько отклонился снаряд от точки прицеливания? Quote Share this post Link to post Short link Share on other sites
SoprachevAK 64 #510301 Posted October 26, 2021 56 минут назад, KPOT2338 сказал: Пусть рассинхрон. Но мне интересно насколько отклонился снаряд от точки прицеливания? Скинь ссылку на бой, через кнопочку поделиться прямо над твоей стрелочкой или, если прошаренный, можешь открыть консоль хрома, и в момент «выделения» конкретного выстрела в консоль печатается достаточно подробная инфа о нём. Тебя интересует markerPos (координата маркера в 3д) и analytics/worldPoint (координата в которой трассер пересёк полоскать маркера) Quote Share this post Link to post Short link Share on other sites
KPOT2338 6 #510302 Posted October 26, 2021 (edited) https://wotstat.soprachev.com/?battles=44385 {"shootId":481521,"battleId":44385,"shell":"_75mm_AP_HV_Mk1","shellType":"AP","baseDamage":0,"baseDispersionAngle":0.003599984591170225,"actualBaseDispersionAngle":0.0033533183333874375,"ping":0.035443362593650815,"isServer":true,"isAutoAim":true,"timeLeft":760.1018268058542,"gravity":6.278400421142578,"dispersionAngle":0.01822839304804802,"gunPos":{"x":334.980224609375,"y":86.43663024902344,"z":-6.800395965576172},"markerPos":{"x":333.53253173828125,"y":86.11581420898438,"z":15.738181114196777},"velocity":{"x":-407.3176574707031,"y":4.663791179656982,"z":-477.9691467285156},"tracerStartPos":{"x":335.3239440917969,"y":86.40988159179688,"z":-5.991321086883545},"dateTime":"2021-10-26T16:39:01.161724","analitics":{"shootDistance":22.587301617533434,"deflectionLength":864471350.5820576,"incidenceAngle":-90.76306277051344,"dispersionRadius":0.3974738199225665,"worldPoint":{"x":-4260987.480354331,"y":-343541827.81701577,"z":-5000478.687135363},"shootId":481521},"intersectPoint":{"x":-11512643.172120364,"y":864394687.063935},"relPolar":{"angle":-90.76306277051344,"length":864471350.5820576},"startDis":0.0033533183333874375,"arena":{"arenaTag":"spaces/101_dday","arenaName":"оверлорд","arenaId":9,"size":1000}} index.js:133:14 И чё с ними дальше делать? Edited October 26, 2021 by KPOT2338 Quote Share this post Link to post Short link Share on other sites
SoprachevAK 64 #510326 Posted October 27, 2021 (edited) 17 часов назад, KPOT2338 сказал: https://wotstat.soprachev.com/?battles=44385 {"shootId":481521,"battleId":44385,"shell":"_75mm_AP_HV_Mk1","shellType":"AP","baseDamage":0,"baseDispersionAngle":0.003599984591170225,"actualBaseDispersionAngle":0.0033533183333874375,"ping":0.035443362593650815,"isServer":true,"isAutoAim":true,"timeLeft":760.1018268058542,"gravity":6.278400421142578,"dispersionAngle":0.01822839304804802,"gunPos":{"x":334.980224609375,"y":86.43663024902344,"z":-6.800395965576172},"markerPos":{"x":333.53253173828125,"y":86.11581420898438,"z":15.738181114196777},"velocity":{"x":-407.3176574707031,"y":4.663791179656982,"z":-477.9691467285156},"tracerStartPos":{"x":335.3239440917969,"y":86.40988159179688,"z":-5.991321086883545},"dateTime":"2021-10-26T16:39:01.161724","analitics":{"shootDistance":22.587301617533434,"deflectionLength":864471350.5820576,"incidenceAngle":-90.76306277051344,"dispersionRadius":0.3974738199225665,"worldPoint":{"x":-4260987.480354331,"y":-343541827.81701577,"z":-5000478.687135363},"shootId":481521},"intersectPoint":{"x":-11512643.172120364,"y":864394687.063935},"relPolar":{"angle":-90.76306277051344,"length":864471350.5820576},"startDis":0.0033533183333874375,"arena":{"arenaTag":"spaces/101_dday","arenaName":"оверлорд","arenaId":9,"size":1000}} index.js:133:14 И чё с ними дальше делать? Интересный бой, большинство выстрелов выглядит так (Куб и сфера -- танк, пунктир -- куда целился, прямая -- трассёр, зелёная линия -- отрезок в плоскости круга сведения до точки пересечения с трассёром) Возможно это тот кромвелль, который может в воздухе одновременно 2 снаряда держать и баги по этому, надо будет затестить на новой версии. А ещё надо будет записывать скорость танка и скорость вращения башни в момент выстрела Вот ещё его выстрелы Edited October 27, 2021 by SoprachevAK 1 Quote Share this post Link to post Short link Share on other sites