Jump to content
Korean Random

StranikS_Scan

Premium Member
  • Content Count

    7,769
  • Joined

  • Last visited

  • Days Won

    236

Everything posted by StranikS_Scan

  1. Через маркеры не знаю, не пользовался. А отдельным классом можно добавить гибкий круг на земле. См. from vehicle_systems.components.terrain_circle_component import TerrainCircleComponent from dyn_objects_cache import _TerrainCircleSettings
  2. На падение фпс и фризы проверь эти пуления. А еще там вроде были ограничения на число объектов, но это легко выявить банальной проверкой.
  3. Это доступно только в топографии. В рандоме и других боях - это скорее всего нет. Нужно смотреть и проверять, что где доступно. Возможны ограничения. Это не для миникарты, это в бою GUI маркеры-индикаторы, например индикатор ХП над танком - VEHICLE_MARKER. У миникарты константы - вот. От ALLY_TEAM_BASE до FLAG_POINT_MARKER. Что из этого в рандоме сработает надо проверять вручную. И надо искать примеры вызова в исходниках чтоб было понятно какие аргументы передавать. Чтобы создать 3D маркер на игровом поле можно так делать import BigWorld from gui.shared.personality import ServicesLocator from gui.Scaleform.locale.INGAME_GUI import INGAME_GUI from frameworks.wulf import WindowLayer from helpers import i18n from Math import Vector3, createTranslationMatrix #Менеджер маркеров в бою battle = ServicesLocator.appLoader.getDefBattleApp() __markersManager = battle.containerManager.getContainer(WindowLayer.VIEW).getView()._external[1] markerPos = (0,0,0) #<--- координаты точки на игровом поле на уровне земли markerCurrentDistance = BigWorld.player().getOwnVehiclePosition().distTo(markerPos) MERKERS_ONWORLDMAP_TYPE = 'arrow' #Зеленая стрелка, еще вариант 'eye' - глаз MARKER_ONWORLDMAP_SCALE = 0.4 #Масштаб маркера MARKER_ONWORLDMAP_OFFSET = Vector3(0.0, 6.0, 0.0) #Смещение маркера относительно markerPos: +6 метров над землей #Создать маркер __canvas = __markersManager._MarkersManager__canvas if __canvas: matrixProv = createTranslationMatrix(markerPos + MARKER_ONWORLDMAP_OFFSET) __marker = __canvas.addMarker(matrixProv, 'StaticObjectMarker', True) #Предельные диапазоны где-то от 10 до 100, масштаб по умолчанию __canvas.markerSetMinScale(__marker, 100 * MARKER_ONWORLDMAP_SCALE) __canvas.markerInvoke(__marker, ('init', [MERKERS_ONWORLDMAP_TYPE, 50, 720, markerCurrentDistance, i18n.makeString(INGAME_GUI.MARKER_METERS), 'green'])) #Обновить цифры дистанции __canvas.markerInvoke(__marker, ('setDistance', [BigWorld.player().getOwnVehiclePosition().distTo(markerPos)])) #Удалить маркер __canvas.delMarker(__marker) В самой игре есть разные готовые классы, которые делают тоже самое - тыц.
  4. Из всех решений сейчас - это самое стоящее. Надо на сайте прикрутить авторизацию с запросом данных через сайт игры, и выдавать токен с лайвтаймом каждому авторизованному. Мод сможет токен запрашивать и скачивать, а затем подписывать данные отправляемые на сервер. Ну и на сервере раз данные персонофицированные станут можно будет их проверять и если что футболить, а БД чистить.
  5. Тут две проблемы. Первая - это сбор данных через хуки и эвенты в пайтоне. Подменить их целенаправленно будет сложно, если в моде будут добавлены разные механизмы и проверки среды исполнения мода, а сами файлы мода будут обфусцированы с контролем их целостности. Вторая проблема - это передача данных на сервер. Она решается очевидным способом путем шифрования двойным ключом передаваемой инфы до её отправки по протоколу. Почему это всё нужно делать - а потому что при открытой архитектуре как сейчас легко обгадить статистику на сервере дудося его ложными данными. Просто всякие наркоманы еще не очнулись и не обратили достаточного внимания на твой проект.
  6. Теперь такой вопрос. Как мод защищен от подмены данных?
  7. Там только физика моделей кэшируется и сами модели, иначе тормозить будет при засвете. Какие-то "скелеты" там прописывали разрабы и внедряли с патчами, их кэширует система, но это всё связано только с визуальной частью с моделями. Там целая куча эвентов, посмотри может какие-то тебе и нужны для дела.
  8. Это есть, уведомления же приходят во время игры и уши меняются, когда противник умирает. Их цепляют на эвенты арены: BigWorld.player().arena.onVehicleKilled += self.__onArenaVehicleKilled
  9. Погоди, ты типа думал, что если танк не в засвете, то сервер типа пришлет тебе какую-то инфу по изменению его состояния? Нет, конечно. Игра защищена от этого. Сервер присылает инфу только по условию механики игры. Пока танк не засветился, ты не узнаешь в каком он состоянии. Исключение - это смерть игрока-противника.
  10. Все работает, ищите причину в вашем коде.
  11. Это как я понимаю не просто код, а комбинация кодов критов через X or Y. И максимальный номер там пока 2^24 согласно исходнику VEHICLE_HIT_FLAGS. Это значит, что размер типа должен быть 2^32 = 4 294 967 296 это long int. Ну и по факту это не crits а flags. А какие в нем криты, это надо перебором проверять, как тут это делается.
  12. А в чем нечестность? Нечестно, это когда распределение должно быть симметричным по определению механики игры, а выходит - несимметричным.
  13. Ну есть режимы такие в игре - Генеральное сражение, например, можно начать бой на одном танке, а закончить на другом. Возможно косяк был в определении типа боя. Дык и остальными танками такая же беда. Просто не ярко выраженная, но на статистику она влияет. У ЛТ например хп в 1,5-2 раза меньше чем у ТТ на десятых уровнях.
  14. Не могло так получиться, что из-за обновлений игры поменялись какие-то ID у разработчиков, а у тебя все данные в кучу без учета версий игры. Дык тут не только дело в арте, у нас урон дискретный и хп игроков как и их количество в бою тоже дискретное. Отсюда получаем не перекос - а реальный факт того, с чем игрок сталкивается.
  15. Там же всё на событиях. Потому каждый плагин сам хранит инфу. Миникарта, например, цепляется на фидбэк и получает данные через него. Маркеры аналогично поступают - тыц и тыц.
  16. Это ты зря их побуждаешь ))) Сейчас свидетели вот этой хни, набегут.
  17. Сам переводи слова, для этого у тебя есть Google translate. Не рассказывай сказки. У 99,9% игроков, имеющих фиолетовый WN8 на аккаунте, процент побед тоже - фиолетового цвета! Это всё что нужно знать о рейтингах и победах.
  18. Нет. Рейтинг WN8 показывает способность игрока выигрывать бои. Поэтому учитываются только те факторы, которые однозначно и напрямую коррелируют с процентом побед. Всё остальное не учитывается и значения не имеет.
  19. Вышло обновление программы 2.2.2 1. Добавлено автоматическое сокращение длинных путей при их выводе в консольном окне 2. Файл MCTGui.exe переименован в MCTCreator2Gui.exe 3. Внесены правки в интерфейс GUI-версии мода
  20. Нет. Есть же еще модули. Взрыв БК например, потому нечестно добитых больше.
  21. Как вручную скрыть/поменять названия серверов, алгоритм для чайника: 1. Скачиваем и устанавливаем прогу для редактирования двоичных файлов. Например HxD, она бесплатная и очень простая. 2. Находим в каталоге игры файл c:\Games\World_of_Tanks\res\scripts_config.xml, после чего закидываем его в окно этой проги: 3. Вызываем окно поиска, используя комбинацию клавиш CTRL+F, после чего в окне вбиваем заглавными буквами в строку поиска RU и ставим ниже галочку "С учетом регистра" и жмём кнопку ОК. 4. Программа находит первую запись вида RU1RU1 - это и есть названия первого сервера, которые отображаются в игре: короткое название RU1 и длинное название RU1. Вот эти названия и нужно затереть или поменять буквы в них. Можно например заменить "1" на пробел " ". Для этого в правой части окна выделяем мышкой единицу и жмем пробел и программа заменить символ. Обратите внимание: ничего удалять бэкспейсом и вставлять в файл нельзя, только заменять! 5. Далее жмем клавишу F3 чтобы продолжить поиск имён серверов. Попадаем к следующей записи RU2RU2 и с ней делаем тоже самое, заменяем вручную двойки на пробелы. И так продолжаем поиск до конца файла. 6. В конца остается только сохранить результат и закрыть программу. Бэкап оригинального файла scripts_config.xml.bak программа сделает сама. При запуске игры, будет вот такой результат: ЗЫ: Но это вам не поможет, т.к. в ангаре отображается число игроков на сервере и по нему легко определить на каком вы сервере.
  22. И как же вы поняли, что кто-то ботов вам запускает?
  23. @SoprachevAK Можно построить огибающие кривые разброса без экспериментов, а по аналитическим формулам. Ведь используется Гауссовское распределение, а не черный ящик.
  24. Если почитать описание того, как работает балансировщик, например в вики было раньше написано, то можно выделить такой аспект - балансировщик формирование команды начинает с выбора топ танков (он, кстати, использует шаблоны), а затем просматривает очередь ожидающих на всю глубину, ища в ней тех, кто подходит по уровню боя и закрывает оставшиеся очки, т.к. команды формируются по сумме очков техники. Отсюда приходим к простом выводу - если при нажатии кнопки "В бой!" тебя сразу же куда-то забрасывает - то скорее всего ты тот самый, кого балансировщик добросил в команду. И ты точно не топ. А если игра заставляет тебя сидеть в очереди, то скорее всего ты выше середины в команде или даже в топе, а балансировщик не может найти тех, кем добить очки команды до полного числа или до приемлемой разницы очков между командами. Но это не всегда так, ибо танки в очереди не всегда представлены всеми типами и часто бывает, что балансировщику реально сложно сформировать команды по шаблонам и тогда время затягивается и он начинает ослаблять критерии выбора. Например, такое можно легко наблюдать на тестах, где игроки массово выбирают какую-нибудь новую имбу, чтобы её затестить.
×
×
  • Create New...