-
Posts
7,774 -
Joined
-
Last visited
-
Days Won
237
Everything posted by StranikS_Scan
-
Некорректно работает XVM на Windows 7
StranikS_Scan replied to def909's topic in XVM: General Discussion and Troubleshooting
Это другой мод. Это не XVM мод. -
Это магазин, как амуниция, а не как торговая лавка.
-
isAmmer если речь о танке с барабаном
-
Решил составить список с расшифровкой и пояснениями к ARENA_GUI_TYPE: from constants import ARENA_GUI_TYPE ALL_BATTLE_TYPES = [ARENA_GUI_TYPE.UNKNOWN, #0 Специальный, например ГК ARENA_GUI_TYPE.RANDOM, #1 Обычный рандом 15x15 c игроками или ИИ ARENA_GUI_TYPE.TRAINING, #2 Тренировочный бой 3, #COMPANY #3 Ротные бои (удалено в патче 0.9.19) ARENA_GUI_TYPE.TUTORIAL, #4 Обучение (убрано в патче 0.9.19.1) ARENA_GUI_TYPE.CYBERSPORT, #5 Командные бои (убрано в патче 1.6) ARENA_GUI_TYPE.FALLOUT, #6 Режим 12 игроков "Бой до последнего" (с патча 0.9.10) ARENA_GUI_TYPE.EVENT_BATTLES, #7 Игровые события: 8-битные истории, танкофутбол, гонки, танки на луне, ваффентрагер и т.д. 8, #SORTIE #8 Укрепрайон - вылазка (удалено) 9, #FORT_BATTLE #9 Укрепрайон - битва за укреп (удалено) 10, #RATED_CYBERSPORT #10 Бой 7x7 в ладдере (удалено) ARENA_GUI_TYPE.RATED_SANDBOX, #11 Тестовый ARENA_GUI_TYPE.SANDBOX, #12 Тестовый ARENA_GUI_TYPE.FALLOUT_CLASSIC, #13 Режим 12 игроков "Бой до последнего" одиночный формат (c патча 0.9.14) ARENA_GUI_TYPE.FALLOUT_MULTITEAM, #14 Режим 12 игроков "Бой до последнего" взводный формат (c патча 0.9.14) ARENA_GUI_TYPE.SORTIE_2, #15 Укрепрайон 2.0 - вылазка (с патча 0.9.17.1) ARENA_GUI_TYPE.FORT_BATTLE_2, #16 Укрепрайон 2.0 - битва за укреп (с патча 0.9.17.1) ARENA_GUI_TYPE.RANKED, #17 Ранговые бои 15x15 (с патча 0.9.18) ARENA_GUI_TYPE.BOOTCAMP, #18 Учебный полигон, боевое обучение (с патча 0.9.19.1) ARENA_GUI_TYPE.EPIC_RANDOM, #19 Режим 30x30 "Генеральное сражение" (с патча 0.9.20) ARENA_GUI_TYPE.EPIC_RANDOM_TRAINING, #20 Режим 30x30 "Генеральное сражение" тренировочный ARENA_GUI_TYPE.EPIC_BATTLE, #21 Режим 30x30 с респауном "Линия фронта" (с патча 1.0.1) ARENA_GUI_TYPE.EPIC_TRAINING, #22 Режим 30x30 с респауном "Линия фронта" тренировочный ARENA_GUI_TYPE.BATTLE_ROYALE, #23 Режим королевской битвы 20 игроков "Стальной охотник" (с патча 1.10) ARENA_GUI_TYPE.MAPBOX, #24 Режим 15x15 на новых картах "Разведка боем" (с патча 1.13) ARENA_GUI_TYPE.MAPS_TRAINING, #25 Тренировочный режим с ИИ "Топография" (с патча 1.14) ARENA_GUI_TYPE.RTS, #26 Режим управления 7 танками "Искусство стратегии" (с патча 1.16.1) ARENA_GUI_TYPE.RTS_TRAINING, #27 Режим "Искусство стратегии" тренировочный ARENA_GUI_TYPE.RTS_BOOTCAMP, #28 Режим "Искусство стратегии" обучающий ARENA_GUI_TYPE.FUN_RANDOM, #29 Режим 15x15 "Аркада" (с патча 1.17.1) ARENA_GUI_TYPE.COMP7] #30 Режим 7x7 "Натиск" (с патча 1.18.1) У кого есть дополнения, расшифровки, комментарии к списку или более актуальная информация пишите в теме.
-
Что за выстрелы corroding_hit в ресурсах игры?
StranikS_Scan replied to StranikS_Scan's topic in Modding General Discussion
То есть в рандоме этой ерунды нет? -
Как вскрыть файл с расширением havok?
StranikS_Scan replied to Pepelaz's topic in Modding General Discussion
@MoD а для чего парсишь, что ты с этими моделями потом делаешь? -
Да, нужно суммировать показатели по всем танкам. И считать сумму ожидаемых значений этих показателей по всем танкам с учетом имеющегося числа боев на каждом. После чего находить отношение их и дальше уже подставлять в формулы нормализации и итоговую формулу - тыц.
-
Так вы у себя смотрите? Я подумал у противников смотреть. У себя конечно лычки.
-
Наоборот, у двух игроков может быть три отметки, однако один может быть по WN8 зеленый, а другой фиолет. Однако у фиолета процент по отметкам будет очевидно выше чем у зеленого, так что % лучше отражает дифференциацию игроков чем просто лычки.
-
Статистика по нациям и классу техники
StranikS_Scan replied to DrWeb7_1's topic in Statistics in XVM
Все, кто много лет играет, особенно с 2011 года - обязательно попадал в бои, которые прерывались зависанием и перезагрузкой серверов. Очень высока вероятность, что статистика по таким боям кривая и дает не совпадение данных в БД. -
Как сделать проверку нажатия клавиши?
StranikS_Scan replied to Van Dark's topic in ActionScript & Python
import BigWorld, Keys from gui import InputHandler def onKeyDown(event): if event.isKeyDown() and BigWorld.isKeyDown(Keys.KEY_TAB): <твой код> InputHandler.g_instance.onKeyDown += onKeyDown -
Внутриигровой браузер открытие локальной страницы
StranikS_Scan replied to MoD's topic in ActionScript & Python
Просто так не заработает. Но подробностей никаких не помню. -
Надо хукать функцию, которая вызывается, когда игрок входит в бой. Например startGUI вот так: from Avatar import PlayerAvatar old_startGUI = PlayerAvatar._PlayerAvatar__startGUI def new_startGUI(*args): old_startGUI(*args) <свой код размещаешь тут .... ....> PlayerAvatar._PlayerAvatar__startGUI = new_startGUI
-
Да там не получится их избегать. Потому временные изменения в код игры вносятся по тем же самым принципам, что мододелы моды пишут, но с одним нюансом - мододелы хукают код, а разрабы впиливают/выпиливают. Ну и для всяких эвентов и другой временной чепухи часто привлекают сторонних кодеров - им выдают клиент какой-то версии, они его модифицируют и готова подверсия игры с ивентом. Её релизят, а когда ивент закончился она идёт в мусорку. @Kurzdor но ты прав в том, что для мододелов это доп. геморрой.
-
Это всякие дурацкие ивенты и режимы. Их внедряют временно, потом вычищают.
-
Это для чего?
-
Для своей машины - он бесполезен.
- 1 reply
-
- 1
-
Мод "Эмулятор сервера World of Tanks".
StranikS_Scan replied to Dragon armor's topic in Modding General Discussion
def calcShotParams(entity): angles = entity.gunAnglesPacked #Закодированные данные об текущем значении угла поворота башни и угла возвыщения орудия, присланные на клиент игры сервером turretYaw, gunPitch = decodeGunAngles(angles if type(angles) == int else angles[0], entity.typeDescriptor.gun.pitchLimits['absolute']) #Декодирование этих углов с учетом ограничений по наводки орудия из ТТХ танка turretOffs = entity.typeDescriptor.hull.turretPositions[0] + entity.typeDescriptor.chassis.hullPosition #Опорная точка башни в локальных координатах корпуса танка, т.е. относительно опорной точки корупуса, которая является опорной точкой всей модели в целом turretWorldMatrix = Matrix() turretWorldMatrix.setRotateY(turretYaw) turretWorldMatrix.translation = turretOffs #Матрица ориентации башни в локальном пространстве turretWorldMatrix.postMultiply(Matrix(entity.matrix)) #Переход из локального пространства в глобальное gunWorldMatrix = Matrix() gunWorldMatrix.setRotateX(gunPitch) gunWorldMatrix.postMultiply(turretWorldMatrix) #Матрица ориентации пушки в глобальном пространстве if BigWorld.new_Vehicles: vInfo = BigWorld.new_Vehicles.Info[entity.id] shellID = vInfo['vehicleType'].activeGunShotIndex return turretWorldMatrix.applyPoint(entity.typeDescriptor.turret.gunPosition), #Положение опорной точки орудия танка в глобальных координатах (из этой точки строится и вычисляется баллист. траектория полета снаряда) gunWorldMatrix.applyVector(Vector3(0, 0, vInfo['shells']['speed'][shellID]/0.8)), #Вектор начальной скорости снаряда в опорной точке орудия Vector3(0.0, -vInfo['shells']['gravity'][shellID]/0.64, 0.0) #Гравитация в векторной форме -
Мод "Эмулятор сервера World of Tanks".
StranikS_Scan replied to Dragon armor's topic in Modding General Discussion
Да, локальные. Точка отсчета - опорная точка всей модели танка - это vType.chassis.hullPosition Переход из локальных в глобальные координаты и наоборот я в своих модах осуществляю так: def __worldToVehMatrix(self, point, matrix=None): #Из глобального в локальное пространство worldMatrix = Matrix(self.__entity.matrix if matrix is None else matrix) worldMatrix.invert() return worldMatrix.applyPoint(point) def __vehToWorldMatrix(self, point, matrix=None): #Из локального в глобальное пространство return Matrix(self.__entity.matrix if matrix is None else matrix).applyPoint(point) Всё крутиться вокруг матрицы модели танка, например BigWorld.entity(BigWorld.player().playerVehicleID).matrix Может вот этот пример тебе поможет: def calcShotParams(entity): #Расчёт точки выстрела, величины и направления вектора скорости снаряда видимого танка angles = entity.gunAnglesPacked turretYaw, gunPitch = decodeGunAngles(angles if type(angles) == int else angles[0], entity.typeDescriptor.gun.pitchLimits['absolute']) turretOffs = entity.typeDescriptor.hull.turretPositions[0] + entity.typeDescriptor.chassis.hullPosition turretWorldMatrix = Matrix() turretWorldMatrix.setRotateY(turretYaw) turretWorldMatrix.translation = turretOffs turretWorldMatrix.postMultiply(Matrix(entity.matrix)) gunWorldMatrix = Matrix() gunWorldMatrix.setRotateX(gunPitch) gunWorldMatrix.postMultiply(turretWorldMatrix) if BigWorld.new_Vehicles: vInfo = BigWorld.new_Vehicles.Info[entity.id] shellID = vInfo['vehicleType'].activeGunShotIndex return turretWorldMatrix.applyPoint(entity.typeDescriptor.turret.gunPosition), gunWorldMatrix.applyVector(Vector3(0, 0, vInfo['shells']['speed'][shellID]/0.8)), Vector3(0.0, -vInfo['shells']['gravity'][shellID]/0.64, 0.0) В примере на выходе точка выстрела, вектор направления умноженный на скорость и вектор гравитации. -
Лучший будет тот, который купишь вторым, поюзав первый.