Jump to content
Korean Random

SoprachevAK

User
  • Posts

    417
  • Joined

  • Last visited

  • Days Won

    32

Everything posted by SoprachevAK

  1. Ну примерно такой был в момент измерения Вот ещё раз [ 58.823524, 59.95203, 50, 76.92307 ] Ping: 172ms
  2. BigWorld.getFPS() возвращает четыре значения, в игре используется только второе (BigWorld.getFPS()[1]), которое подписано как smoothFPS. Как думаете, что означают остальные Не то что бы мне больше всех надо, но интересно. Было бы логично, что если есть smooth, то где то должно быть instant, но что есть остальное, на minmax не похоже Вот пример [ 58.82, 58.47, 52.63, 62.49 ]
  3. Там сессию нельзя прерывать Каждый запрос отправляется с одноразовым токеном и получает новый одноразовый токен в ответ Если токен уже использован, то по ключу лицензии сервер выдаёт новый одноразовый токен Если больше 10 новых токенов в день – блокировка ключа То есть если два человека начнут играть одновременно, то их достаточно быстро забанит. И уже даже был один такой случай, когда человек не знал и играл с другом. ..И ещё два случая когда забанило по ошибке из-за лага сервера)
  4. Как будто бы надо опять тыкать палкой оптимизационный запросы, опять медленные стали( Хотя вроде бы кеширование должно быть
  5. Да, ты прав, там реально проблема с разрядом) Баг либы как будто бы, uint32 кликхауса пыталась запихнуть в number JS Исправил. Ну WotStat бесплатный В моде на позиции ценен не мод, а сервер, которые эти позиции отдаёт, а он в приватной репе
  6. Там на старой версии был баг, когда неправильно отправлялось время входа в очередь. Надо будет пройтись по базе и удалить "неадекватные" результаты
  7. Действительно, спасибо) А я попробовал, игра крашилась, я решил не работает. А оказывается проблема была в моде несовместимым с мультизапуском вплоть до жёсткого краша клиента без логов. Мне вход в бой и не нужен, мне в трене тестить то что в топографии нельзя.
  8. А есть какой нибудь актуальный мультизапуск для лесты 1.28 Их как будто бы даже из читов выпилили(
  9. Да как будто бы стандартно через loadView в INITIALIZED def onAppInitialized(event): if event.ns == APP_NAME_SPACE.SF_BATTLE: logger.info("SF_BATTLE initialized") app = ServicesLocator.appLoader.getApp(event.ns) # type: AppEntry if not app: logger.error("App not found") return lastLoadIsBattle = True app.loadView(SFViewLoadParams(CEF_MAIN_VIEW)) g_eventBus.addListener(events.AppLifeCycleEvent.INITIALIZED, onAppInitialized, EVENT_BUS_SCOPE.GLOBAL)
  10. Умно, я как то даже и не думал что так можно) Лучше через питон, звучит проще, спасибо за совет. А оно работает со всякими линиями фронта, которые уже после начала боя отображают в оверлей всякие экраны выбора нового танка или ты через питон скрываешь на время? Лучше публично, может пригодится кому нибудь. Я не считаю, что монополия на некоммерческую информацию это хорошо. Будь у меня декомпилятор питона который бы работал с модами, вопросов было бы сильно меньше)
  11. Спасибо. Оно. Оно так интересно работает. Если ты во взводе, то оно из constants.QUEUE_TYPE, а если соло, то constants.PREBATTLE_TYPE Вдруг кому нибудь ещё понадобится
  12. Подскажите пожалуйста как получить текущий выбранный режим боя в ангаре. Не получается найти. (вот то что случайный/стальной/тренировка)
  13. @Kurzdor А подскажи как ты добавляешь панельку в боевой интерфейс на слой под загрузкой? я когда добавляю addChild к BaseBattlePage он добавляется поверх всего, в том числе экрана загрузки боя override protected function configUI():void { var viewContainer:MainViewContainer = App.containerMgr.getContainer(LAYER_NAMES.LAYER_ORDER.indexOf(LAYER_NAMES.VIEWS)) as MainViewContainer; if (viewContainer != null) { for (var i:int = 0; i < viewContainer.numChildren; ++i) { if (viewContainer.getChildAt(i) is BaseBattlePage) { viewContainer.getChildAt(i).addChild(widget); } } } }
  14. Ну для стримеров сомнительно, у них и OBS есть, а вот игрокам да Я сейчас ещё делаю DataProvider и WidgetSDK для JS, чтоб данные из игры в виджеты гнать
  15. Ну как то так. Будем считать что отображение виджетов доделано. Поддерживается: Добавление виджетов по URL и из локальных файлов DevTools для открытых виджетов (нужно прописывать в конфиге и перезапускать игру) Изменение размера в двух режимах, зависит от мета тега страницы Произвольное изменение высоты/ширины Изменение ширины, а высота подстраивается под высоту страницы Блокировка виджета – не даёт его случайно сдвинуть, делает прозрачным для кликов Перезагрузка страницы с отключенным кешем страницы Минимизация виджета – виджет всё ещё выполняется, но не отправляется на клиент (почти не тратит ресурсов компа) Возможно накликать разные размеры/позиции для боя и ангара Виджеты сохраняются при перезапуске игры LocalStorage сохраняется между сессиями https://github.com/WOT-STAT/cef-widget Следующий шаг – Data Provider, который будет через WebSocket расшаривать для виджетов какие нибудь данные по типу результатов боя. Будет отдельным модом и встроенным в этот
  16. Здравствуйте Подскажите, есть ли возможность по DAAPI передать ByteArray из питона во флеш? Пробовал много: Напрямую у меня не получилось. Пишет ошибку приведения типов, видимо не предусмотрели. Поправьте если я ошибаюсь Через кодирование в String, передачу строкой и декодирование writeMultiByte(value:String, charSet:String):void тоже не вышло. Из танкового флеша вырезаны все charSet'ы кроме UTF8 и Unicode, а ими не закодировать произвольный набор байт. Через String + Base64 декодинг получается очень медленно, Base64Decoder тоже медленный. Через Socket получается хорошо, но в танковом флеше он забагован, и спустя рандомное время работы крашит игру без сообщения об ошибке. Судя по дампу – выход за приделы виртуальной памяти. Пока что остановился на кодирование в массив int'ов, передаю его DAAPI во флешевый Array<uint>, потом нативно конвертирую в Vector<uint>, нативно сериализую в AMF3 ByteArray, обрезаю первые несколько байт заголовков AMF3, и получаю желаемый ByteArray. Очень костыль, но это лучшее что я смог. Сейчас подумал, что можно попробовать сохранять в файл и читать его с диска, в теории с Page Cache должно быть быстро.
  17. Оказалось что Python тоже медленный язык, и просто так пройтись по всем пикселям картинки, и каждый цвет RGB поделить на прозрачность и умножить на 255 тоже очень медленная операция, а numpy весит 100мб На этом я пошел попробовал скомпилить c++ на винду из под не винды, ничего не вышло, вернулся к питону. Заменил функцию на сишную, которую вызываю через ctypes, вроде бы быстро, а работает или нет узнаем когда сервера включат после обновы.
  18. Но ведь в играх ping'ом называют не то что icmp ping, а время отправки и получения стандартного пакета. Буквально время между выстрелом и инфой когда вылетит пулька, а значит он как раз должен учитывать все особенности тактирования. Интересно как это соотносится с 10 тикрейтом танков. Как будто бы, пинг < 100 вообще не может существовать, но при этом разница 10 и 100 очень ощущается. Может там как в кс2 сабтики
  19. Я не знаю, я просто украл кажется даже из какого то другого мода, ну либо из самой игры) Как минимум, оно совпадает с тем, что игра отображает в углу экрана ping = BigWorld.LatencyInfo().value[3] - 0.5 * SERVER_TICK_LENGTH
  20. Про влияние ФПС на точность пока не изучал, времени не было, там нужно засесть и тыкаться в базу Мне кажется что вылеты за пределы круга и неровный фпс могут быть следствием движения танка/мыши Человек едет на скорости и шевелит мышкой => вылеты за круг сведения Человек едет на скорости и шевелит => подгружаются и отгружаются модельки, меняется количество полигонов в кадре => фпс прыгает вверх вниз на пару кадров
  21. Ну вообще есть такое ощущение. Но возможно это нюансы расчета пинга. Возможно пинг рассчитывается в момент кадра. У Unity я точно знаю что есть такая особенность, что даже если запустить сервер и клиент на одном компе, то пинг всё равно будет 16мс = 1 целый кадр. Но корреляция есть бесспорно, в том числе и для каждого игрока в отдельности (при условно неизменном ПК и интернете)
  22. Знаете какого цвета эта цифра 5? – Абсолютно белая с 50% прозрачности А знаете почему она выглядит серой? – А потому что CEF отдаёт картинку в PRGBA, а OBS её юзают как RGBA У меня в моде будет корректно)
  23. А есть где нибудь актуальные примеры по добавлению флешки в боевой интерфейс? Вроде бы он уже тоже на AS3 и как будто бы должно быть как с ангаром app.loadView(SFViewLoadParams(...)), а потом во флеше extends AbstractView и addChild. Но как то не работает. Посмотрел Полироидовский флеш, там всякие его common либы с абстрактными BattleDisplayable и инжекторами, которые динамически регистрируют компоненты уже из флеша. Оно только так и работает, или можно попроще? ______ UPD: Всё сильно проще, ровно как и с ангаром. Просто я импортировал ангарные зависимости)
  24. Да по хорошему да, но как то совсем не просто Там тоже будут некоторые проблемы, в плане что оно будет поверх всего интерфейса, и скорее всего даже курсора. Скорее всего пока оставлю как есть, в крайнем случае можно с потерями сжимать. Упираюсь то именно в трансфер во флеш
  25. Woker'ов в танках судя по всему нет, либо нужно как то с бОльшими правами запускать, может через ViewSettings какие нибудь хитрые ERROR: [Scaleform] ReferenceError: Error #1065: Variable Worker is not defined.
×
×
  • Create New...