Jump to content
Korean Random

StranikS_Scan

Premium Member
  • Content Count

    7,769
  • Joined

  • Last visited

  • Days Won

    236

StranikS_Scan last won the day on April 7

StranikS_Scan had the most liked content!

Community Reputation

4,210 ⭐⭐⭐⭐⭐

About StranikS_Scan

  • Rank
    Теоретик WorldOfTanks

Recent Profile Visitors

76,858 profile views
  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. Там же всё на событиях. Потому каждый плагин сам хранит инфу. Миникарта, например, цепляется на фидбэк и получает данные через него. Маркеры аналогично поступают - тыц и тыц.
×
×
  • Create New...