-
Posts
7,881 -
Joined
-
Last visited
-
Days Won
266
Everything posted by StranikS_Scan
-
Это для чего?
-
Для своей машины - он бесполезен.
- 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) В примере на выходе точка выстрела, вектор направления умноженный на скорость и вектор гравитации. -
Лучший будет тот, который купишь вторым, поюзав первый.
-
Помогите с Unified Editor
StranikS_Scan replied to SuperNagibator2022's topic in Textures and 3D Models
А для чего это? -
Мод "Эмулятор сервера World of Tanks".
StranikS_Scan replied to Dragon armor's topic in Modding General Discussion
Может есть, а может и нет. Серверу виднее. К прицелу отношения не имеет. Это же опорная точка орудия. Это к модели танка имеет прямое отношение и к баллистике снаряда. -
Мод "Эмулятор сервера World of Tanks".
StranikS_Scan replied to Dragon armor's topic in Modding General Discussion
Вот так нужно, если модель видна: startPoint = BigWorld.entity(BigWorld.player().playerVehicleID).appearance.compoundModel.node(GUN).position и вот так, если модель игрока не видна: startPoint = BigWorld.player().getOwnVehiclePosition() startPoint += BigWorld.player().vehicleTypeDescriptor.hull.turretPositions[0] + BigWorld.player().vehicleTypeDescriptor.turret.gunPosition -
Мод "Эмулятор сервера World of Tanks".
StranikS_Scan replied to Dragon armor's topic in Modding General Discussion
shotPos - координаты точки крепления пушки (опорной точки орудия) в глобальном пространстве на сервере игры (именно эта точка считается началом баллистической траектории снаряда) shotVec - вектор начальной скорости на сервере игры в точке shotPos (это типа вот так shotDir*ShotSpeed) Вот тут можно немного почитать о коде прицела в игре - тыц. -
[1.20.1.0, v. 2.0.0] Отображение текущего оборудования в бою
StranikS_Scan replied to Kurzdor's topic in Mods and Software
зОчем? Собери в wotmod и все. -
Мод "Эмулятор сервера World of Tanks".
StranikS_Scan replied to Dragon armor's topic in Modding General Discussion
Вполне возможно, что тебе нужно playerMatrix.yaw - pointDir.yaw. Для твоих нужд. -
Мод "Эмулятор сервера World of Tanks".
StranikS_Scan replied to Dragon armor's topic in Modding General Discussion
В клиенте игры, если мне нужно узнать угол поворота по вертикальной оси между вектором направления корпуса моего танка и вектором на точку Point, то делаю вот так: playerPos = BigWorld.player().getOwnVehiclePosition() playerMatrix = Matrix(BigWorld.player().getOwnVehicleMatrix()) pointDir = Point - playerPos pointDir .normalise() yawAngle = pointDir.yaw - playerMatrix.yaw #Угол в радианах Если делать расчет относительно башни, то так будет Matrix(vehicle.appearance.compoundModel.node(TURRET)).yaw вместо playerMatrix.yaw В Блендер будет по аналогии с той лишь разницей, что надо учесть Y <----> Z -
Мод "Эмулятор сервера World of Tanks".
StranikS_Scan replied to Dragon armor's topic in Modding General Discussion
Если бы это был клиент игры, то я бы сделал так: turretDir = TurretPoint - TargetPoint turretDir.normalise() gunDir = gunPoint - TargetPoint gunDir.normalise() acosAngle = turretDir,dot(gunDir) Напиши более конкретно ситуацию, что ты хочешь? Ты хочешь повернуть башню в сторону нужной точки или что? -
xTE: рейтинг эффективности по танкам. Формула и обсуждение.
StranikS_Scan replied to seriych's topic in Statistics in XVM
Так как величина ассиста напрямую не зависит от игрока в отличии от урона и дамага, то рейтинг с его учетом точнее не станет. А что там у себя ВГ учитывает. это не важно, они и число боев учитывают в своих рейтингах, у них свои цели. -
В чем она интересная? Пользы от мода никакой.
- 1 reply
-
- 2
-
-
В клиенте игры импорты для ctype и других модулей взаимодействия с ОС - отсутствуют.
-
[Миникарта / Minimap]
StranikS_Scan replied to █XlebniDizele4ku's topic in Components of XVM and Addons (py_macro)
Не дают. Заметное преимущество - это когда ЗАМЕТНО. Никто не может сказать по статистике игрока или по его реплеям, играет ли он с ЗМ или нет. -
Улучшенная система прицеливания / Advanced Aiming System
StranikS_Scan replied to GPCracker's topic in Mods and Software
Нет. -
Улучшенная система прицеливания / Advanced Aiming System
StranikS_Scan replied to GPCracker's topic in Mods and Software
Ээээ, тут такое дело, в автомодах на ремонт и лечение обычно стоят искусственные задержки с рандомной добавкой, дабы нельзя было сказать как игрок ремонтнулся/полечился - быстрым жмяком по спейсу или же за счет автомода. Так что ничего в рандоме вы там не усмотрите и не углядите. Разница здесь только в одном - у игроков с автомодом не бывает фейлов, когда он в диссонансном тупняке забыл жмякнуть. Однако, если игрок в бою, за которым вы следите - не фейлит и не тупит с ремонтом/лечением, то это совершенно не значит, что он юзает автомод. -
У алехана - да - будет заметно выше: типа было 50-60% точности, а стало 65-70%. У опытного игрока - будет незаметно выше, если глянуть точность стрельбы опытных, то там 72-76% у зеленых и синих (что с аимом, что без) и только фиолетовые папки аля MeeGo руками догоняют точность до 80-83%. Руками, потому что у аимов со следящим упреждением, из-за того, что разброс при постоянном перемещении прицела сильно увеличивается, точность стрельбы в динамике не велика и плавает где-то в диапазоне 65-75%. Хочешь выше - только ручками. Существуют ли аимы с "ожиданием цели" и полным сведением в точке ожидания? Таких сегодня в тынках нет. Что же до алеханов - то тут еще надо посмотреть плохо это или хорошо, что у него аим есть. А то от кривости и косорукости алеханов нормальные игроки плачут и стулья жгут уже 10 лет. На этом фоне алеханам нужно аимы в обязательном порядке раздавать. Может глядишь бои будут подольше и поинтереснее, так как алеханы не будут с 0-урона уходить в ангар пачками.