NeilDaniels 1 Posted September 11, 2020 По примеру получаем живую технику противника (если правильно понял) if vData['team'] != pl.team and vData['isAlive']: vehicle = BigWorld.entity(vID) и далее - расстояние. Какое событие нужно регистрировать для получения vID и vData при наведении маркера и прицела на машину? И, собственно, само событие регистрировать в onWorldEnter или как? Quote Share this post Link to post Short link Share on other sites
MakcT40 331 #488811 Posted September 11, 2020 См. в Avatar.py функции targetFocus (танк в прицеле) и targetBlur (танк ушёл из прицела). Quote Share this post Link to post Short link Share on other sites
NeilDaniels 1 #489249 Posted September 18, 2020 (edited) 12.09.2020 в 00:57, MakcT40 сказал: См. в Avatar.py функции targetFocus (танк в прицеле) и targetBlur (танк ушёл из прицела). Несколько понял, как делать. Не заглядывал в Python.log, а надо было бы. Для теста написал вот - получить ключи и прочее. Только вот - разница между vehicle и entity какая в общем? Потому как в тесте делал такую проверку if not isinstance(entity, Vehicle.Vehicle): return Ну вот так - в прикреплённых файлах. Буду копать дальше. mod_target_demo.py en_dict.txt Edited September 18, 2020 by NeilDaniels Quote Share this post Link to post Short link Share on other sites
Armagomen_UA 158 #490833 Posted October 16, 2020 (edited) from helpers import dependency from PlayerEvents import g_playerEvents from skeletons.gui.battle_session import IBattleSessionProvider def onGunMarkerStateChanged(markerType, position, params, collision): if collision and collision.isVehicle: # получаем инфу по танку в прицеле. entity = collision.entity print dir(entity) В начале боя подписаться на событие смены положения маркера. def onEnterBattlePage(): sessionProvider = dependency.instance(IBattleSessionProvider) sessionProvider.shared.crosshair.onGunMarkerStateChanged += onGunMarkerStateChanged В конце не забываем отписаться от него. def onExitBattlePage(): sessionProvider = dependency.instance(IBattleSessionProvider) sessionProvider.shared.crosshair.onGunMarkerStateChanged -= onGunMarkerStateChanged Подписываемся на старт и конец боя. g_playerEvents.onAvatarReady += onEnterBattlePage g_playerEvents.onAvatarBecomeNonPlayer += onExitBattlePage Edited October 16, 2020 by Armagomen_dev 2 Quote Share this post Link to post Short link Share on other sites
NeilDaniels 1 #493704 Posted December 8, 2020 16.10.2020 в 15:48, Armagomen_dev сказал: from helpers import dependency from PlayerEvents import g_playerEvents from skeletons.gui.battle_session import IBattleSessionProvider def onGunMarkerStateChanged(markerType, position, params, collision): if collision and collision.isVehicle: # получаем инфу по танку в прицеле. entity = collision.entity print dir(entity) В начале боя подписаться на событие смены положения маркера. def onEnterBattlePage(): sessionProvider = dependency.instance(IBattleSessionProvider) sessionProvider.shared.crosshair.onGunMarkerStateChanged += onGunMarkerStateChanged В конце не забываем отписаться от него. def onExitBattlePage(): sessionProvider = dependency.instance(IBattleSessionProvider) sessionProvider.shared.crosshair.onGunMarkerStateChanged -= onGunMarkerStateChanged Подписываемся на старт и конец боя. g_playerEvents.onAvatarReady += onEnterBattlePage g_playerEvents.onAvatarBecomeNonPlayer += onExitBattlePage Это именно по наведению орудия на машину, не маркера? Quote Share this post Link to post Short link Share on other sites