Valberton Posted November 16, 2023 Share Posted November 16, 2023 Нужно найти угол между корпусом танка игрока и танком противника в градусах. Пытаюсь рыть и бьюсь в потолок, помогите, добрые люди. Link to comment Short link Share on other sites More sharing options...
spoter Posted November 17, 2023 Share Posted November 17, 2023 https://github.com/spoter/spoter-mods/blob/master/.deprecated/mod_autoAimOptimize/source/mod_autoAimOptimize.py 115 строка Правда там от камеры игрока до противника, но думаю поможет разобраться, если не лень. а радианы в градусы и обратно я думаю не сложно будет конвертировать :) 1 @ Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted November 18, 2023 Share Posted November 18, 2023 PlayerVehicle.matrix.yaw - EnemyVehicle.matrix.yaw Link to comment Short link Share on other sites More sharing options...
Valberton Posted November 20, 2023 Author Share Posted November 20, 2023 17.11.2023 в 05:13, spoter сказал: ...но думаю поможет разобраться, если не лень. Не лень, но уже расшиб голову об стену. Никак не могу поймать направление корпуса. 18.11.2023 в 14:04, StranikS_Scan сказал: PlayerVehicle.matrix.yaw - EnemyVehicle.matrix.yaw PlayerAvatar.matrix передает BigWorld.EntityMPov, у которого нет никаких методов/атрибутов. Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted November 20, 2023 Share Posted November 20, 2023 20 минут назад, Valberton сказал: Не лень, но уже расшиб голову об стену. Никак не могу поймать направление корпуса. PlayerAvatar.matrix передает BigWorld.EntityMPov, у которого нет никаких методов/атрибутов. Ну логично, поэтому я ничего не писал про PlayerAvatar Давай учи матчасть, декомпилы игры тебе в помощь. Link to comment Short link Share on other sites More sharing options...
Valberton Posted November 20, 2023 Author Share Posted November 20, 2023 (edited) 36 минут назад, StranikS_Scan сказал: Ну логично, поэтому я ничего не писал про PlayerAvatar Давай учи матчасть, декомпилы игры тебе в помощь. Так и PlayerVehicle тоже ничего не выдает. Через Орион уже проверил. Edited November 20, 2023 by Valberton Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted November 20, 2023 Share Posted November 20, 2023 Только что, Valberton сказал: Так и PlayerVehicle тоже ничего не выдает. Через Орион уже проверил. Это вряд ли тыц. Link to comment Short link Share on other sites More sharing options...
Valberton Posted November 20, 2023 Author Share Posted November 20, 2023 19 минут назад, StranikS_Scan сказал: тыц. Странно, во время тестов оно просто вставало в позу и ничего не давало. Попробую разобраться. Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted November 20, 2023 Share Posted November 20, 2023 Только что, Valberton сказал: Странно, во время тестов оно просто вставало в позу и ничего не давало. Попробую разобраться. Покажи код мода чтобы увидеть как и где хочешь угол посчитать. Link to comment Short link Share on other sites More sharing options...
Valberton Posted November 21, 2023 Author Share Posted November 21, 2023 # PLACEHOLDER: Получаем дистанции и угол до захваченной цели и переводим в смену свитчей в Wwise def wtGetDistanceAndAngle(target): if target is not None: dist = avatar_getter.getDistanceToTarget(target) if dist < WTSM_CONSTS.DIST_VALUES[0]: corr_dist = 'near' else: corr_dist = min(WTSM_CONSTS.DIST_VALUES, key=lambda x: abs(x-dist)) angle = None corr_angle = min(WTSM_CONSTS.A2H, key=lambda x: abs(x-angle)) WWISE.WW_setSwitch(WTSM_CONSTS.SWITCHES['target_distance'], corr_dist) WWISE.WW_setSwitch(WTSM_CONSTS.SWITCHES['target_hours'], corr_angle) Для angle хотел взять код от spoter, который он скинул сюда, но все никак не могу выловить направление корпуса. @staticmethod def calc_radian(target_position, angle): cameraDir, cameraPos = cameras.getWorldRayAndPoint(0, 0) cameraDir.normalise() cameraToTarget = target_position - cameraPos dot = cameraToTarget.dot(cameraDir) if dot < 0: return targetRadian = cameraToTarget.lengthSquared radian = 1.0 - dot * dot / targetRadian if radian > angle: return return radian Чувствую себя лютой чукчей... Link to comment Short link Share on other sites More sharing options...
Valberton Posted December 29, 2023 Author Share Posted December 29, 2023 Все, мы померли. Link to comment Short link Share on other sites More sharing options...
Valberton Posted January 5 Author Share Posted January 5 Решение проблемы углов найдено. Радианы перевел в градусы, но есть прикол: Когда значение переваливает за 322 градуса, значение уходит в -38 и уменьшается до 0. Это просто законтрить, отняв из 360 модуль полученного значения угла. Тему закрываю, всем спасибо за помощь. 3 @ Link to comment Short link Share on other sites More sharing options...
Recommended Posts