Jump to content
Korean Random

BuSH

User
  • Content Count

    1,464
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by BuSH

  1. скомуниздил у батлобзёрвера import debug_utils base_dolog = debug_utils._doLog def _doLog(category, msg, args=None, kwargs={}): return base_dolog(category, msg, args=args, kwargs=kwargs) if not msg.startswith('[EFFECT LIST]') else None debug_utils._doLog = _doLog mod_effectlist_cleaner.pyc
  2. 2020-02-06 14:16:31.040: INFO: 2020-02-06 14:16:31: [ERROR] mods/xfw_libraries/xfw/events.pyc 2020-02-06 14:16:31.040: ERROR: Traceback (most recent call last): 2020-02-06 14:16:31.040: ERROR: File "./xfw/events.py", line 57, in __event_handler 2020-02-06 14:16:31.041: ERROR: File "./xfw/events.py", line 24, in fire 2020-02-06 14:16:31.041: ERROR: File "res_mods/configs/xvm/py_macro\crosshair.py", line 54, in FragsCollectableStats_addVehicleStatusUpdate 2020-02-06 14:16:31.042: ERROR: if (not vInfoVO.isAlive()) and (ownVehicle.id == vInfoVO.vehicleID) and battle.isBattleTypeSupported: 2020-02-06 14:16:31.042: ERROR: AttributeError: 'NoneType' object has no attribute 'id' проверить на наличие атрибута забыл? @Slava7572 я его заюзал с прошлого патча, но забываю туда заглянуть. И то ж средние цифры. А математика нам говорит, что чем больше выборка, тем ближе она к среднему значению и перестаём быть угнетёнными.А вот 10 угнетений из 10 за один конкретный бой вполне может сойти за оправдание. В 5-м вроде класса на математике основы вероятностей учили и бросали монету. За 10 раз у кого 5 (50%), у кого 9 орловгербов (90%). А уже за 100 — и за 60% сложно перевалить. А на домашке с косарём ещё ближе к 50% подойти.
  3. Я издавна был один из первых кто задавал подобный вопрос за дичайший бесполезняк не прибавляющий ничего к нагибу, но эту фичу потестил малость и решил оставить. Выполняет типа оправдательную функцию почему нагнул или не вытащил. Не как обычно, надписью в чате типа "команда *цензура*" а просто для себя. Например видишь, что с 8-ми выстрелов и 6к даги все выстрелы в диапазоне -22 — -8% даги, тогда можно обвинить рандом а не свою криворукость. Ну и там же считаю фуги где нет разброса урона. В одно место стрельнул получил 80% урона/2, в другое — 95. Няшная получилась фича. @ktulho удивился что ты сам прошёлся по геометрии с вычислением дистанции. Но неужели у картохи негде было дёрнуть уже готовую цифру как это делают флешки прицелов
  4. Почему возник такой вопрос я не понял, но понял, что пропустил какую-то глобальную обнову с заменой скриптов и добавлением макросов, которые дописывал сам. Теперь можно грохать свой форкнутый sight.py, переименовать добавленные макросы и просто надёргать файликов с темы "как есть". Хоть конфиг это никак не затронуло, но было бы неплохо, все эти прицельные фичи разделить на разные battleLabels по событиям вместо их длинной ленты что негативно влияет на производительность. Ещё бы в хитлог добавить базовый урон снаряда и вообще XFW начнет интегрити чек проходить )
  5. Спасибо. Наконец-то можно прикидывать не нажимая клавишу. По сравнению с флешовой работает стрёмненько, но начало уже положено. Закинул пока 2 параллельно заценить разницу и в снайперском бывает разница в несколько иксов. Ну и как ожидалось, в артилерийском обе мерялки distCrosshair и distance дают одно и тоже значение.
  6. @Slava7572 та шо ты оффтопишь?! я уже тестю катаю ) @StranikS_Scan вот нашёл у себя 1.4.0.1 такой был класс когда ещё работала фича class _GunMarkersFactories(object): def __init__(self, *factories): super(_GunMarkersFactories, self).__init__() self.__factories = factories def create(self, markersInfo, vehicleInfo): return self._create(markersInfo, vehicleInfo, components=None) def override(self, components, markersInfo, vehicleInfo): return self._create(markersInfo, vehicleInfo, components=components) def _create(self, markersInfo, vehicleInfo, components=None): markers = () for factory in self.__factories: result = factory().create(markersInfo, vehicleInfo, components=components) if result: markers = markers + result return _components.GunMarkersComponents(markers) class _GunMarkersFactory(object): def create(self, markersInfo, vehicleInfo, components=None): raise NotImplementedError @staticmethod def _findComponent(markerType, dataProvider, components, name): component = None if components is not None: component = components.popComponent(name) if component is not None: component.setDataProvider(markerType, dataProvider) return component class _ControlMarkersFactory(_GunMarkersFactory): def create(self, markersInfo, vehicleInfo, components=None): if vehicleInfo.isSPG(): markers = self._createSPGMarkers(markersInfo, components=components) else: markers = self._createDefaultMarkers(markersInfo, components=components) return markers def _createDefaultMarkers(self, markersInfo, components=None): if markersInfo.isServerMarkerActivated: dataProvider = markersInfo.serverMarkerDataProvider markerType = GUN_MARKER_TYPE.SERVER elif markersInfo.isClientMarkerActivated: dataProvider = markersInfo.clientMarkerDataProvider markerType = GUN_MARKER_TYPE.CLIENT else: dataProvider = None markerType = GUN_MARKER_TYPE.UNDEFINED return (self._createArcadeMarker(markerType, dataProvider, components=components), self._createSniperMarker(markerType, dataProvider, components=components)) def _createSPGMarkers(self, markersInfo, components=None): if markersInfo.isServerMarkerActivated: dataProvider = markersInfo.serverMarkerDataProvider spgDataProvider = markersInfo.serverSPGMarkerDataProvider markerType = GUN_MARKER_TYPE.SERVER elif markersInfo.isClientMarkerActivated: dataProvider = markersInfo.clientMarkerDataProvider spgDataProvider = markersInfo.clientSPGMarkerDataProvider markerType = GUN_MARKER_TYPE.CLIENT else: dataProvider = None spgDataProvider = None markerType = GUN_MARKER_TYPE.UNDEFINED return (self._createArcadeMarker(markerType, dataProvider, components=components), self._createSPGMarker(markerType, spgDataProvider, components=components)) def _createArcadeMarker(self, markerType, dataProvider, components=None, name=_CONSTANTS.ARCADE_GUN_MARKER_NAME, linkage=_CONSTANTS.GUN_MARKER_LINKAGE): component = self._findComponent(markerType, dataProvider, components, name) if component is None: component = _components.DefaultGunMarkerComponent(markerType, _VIEW_ID.ARCADE, name, linkage, dataProvider) return component def _createSniperMarker(self, markerType, dataProvider, components=None, name=_CONSTANTS.SNIPER_GUN_MARKER_NAME, linkage=_CONSTANTS.GUN_MARKER_LINKAGE): component = self._findComponent(markerType, dataProvider, components, name) if component is None: component = _components.DefaultGunMarkerComponent(markerType, _VIEW_ID.SNIPER, name, linkage, dataProvider) return component def _createSPGMarker(self, markerType, dataProvider, components=None, name=_CONSTANTS.SPG_GUN_MARKER_NAME, linkage=_CONSTANTS.GUN_MARKER_SPG_LINKAGE): component = self._findComponent(markerType, dataProvider, components, name) if component is None: component = _components.SPGGunMarkerComponent(markerType, _VIEW_ID.STRATEGIC, name, linkage, dataProvider) return component отвалилось вроде в 1.6... но сейчас он выглядит так class _GunMarkersFactory(object): __slots__ = ('_components', '_markersInfo', '_vehicleInfo') def __init__(self, markersInfo, vehicleInfo, components=None): super(_GunMarkersFactory, self).__init__() self._components = components self._markersInfo = markersInfo self._vehicleInfo = vehicleInfo def create(self): raise NotImplementedError def _findMarker(self, name): marker = None if self._components is not None: marker = self._components.popComponent(name) return marker def _createMarker(self, componentClass, viewId, markerType, dataProvider, name, isActive=False): marker = self._findMarker(name) if marker is not None: marker.setDataProvider(markerType, dataProvider) return marker else: linkage = _GUN_MARKER_LINKAGES[name] return componentClass(markerType, viewId, name, linkage, dataProvider, isActive) def _getMarkerDataProvider(self, markerType): if markerType is GUN_MARKER_TYPE.SERVER: return self._markersInfo.serverMarkerDataProvider else: return self._markersInfo.clientMarkerDataProvider if markerType is GUN_MARKER_TYPE.CLIENT else None def _getSPGDataProvider(self, markerType): if markerType is GUN_MARKER_TYPE.SERVER: return self._markersInfo.serverSPGMarkerDataProvider else: return self._markersInfo.clientSPGMarkerDataProvider if markerType is GUN_MARKER_TYPE.CLIENT else None class _ControlMarkersFactory(_GunMarkersFactory): def create(self): if self._vehicleInfo.isSPG(): markers = self._createSPGMarkers() elif self._vehicleInfo.isDualGunVehicle(): markers = self._createDualGunMarkers() else: markers = self._createDefaultMarkers() return markers def _getMarkerType(self): if self._markersInfo.isServerMarkerActivated: return GUN_MARKER_TYPE.SERVER return GUN_MARKER_TYPE.CLIENT if self._markersInfo.isClientMarkerActivated else GUN_MARKER_TYPE.UNDEFINED def _createDualGunMarkers(self): markerType = self._getMarkerType() return (self._createArcadeMarker(markerType, name=_CONSTANTS.DUAL_GUN_ARCADE_MARKER_NAME), self._createSniperMarker(markerType, name=_CONSTANTS.DUAL_GUN_SNIPER_MARKER_NAME)) def _createDefaultMarkers(self): markerType = self._getMarkerType() return (self._createArcadeMarker(markerType, name=_CONSTANTS.ARCADE_GUN_MARKER_NAME), self._createSniperMarker(markerType, name=_CONSTANTS.SNIPER_GUN_MARKER_NAME)) def _createSPGMarkers(self): markerType = self._getMarkerType() return (self._createArcadeMarker(markerType, name=_CONSTANTS.ARCADE_GUN_MARKER_NAME), self._createSPGMarker(markerType, name=_CONSTANTS.SPG_GUN_MARKER_NAME)) def _createArcadeMarker(self, markerType, name): dataProvider = self._getMarkerDataProvider(markerType) return self._createMarker(DefaultGunMarkerComponent, _VIEW_ID.ARCADE, markerType, dataProvider, name) def _createSniperMarker(self, markerType, name): dataProvider = self._getMarkerDataProvider(markerType) return self._createMarker(DefaultGunMarkerComponent, _VIEW_ID.SNIPER, markerType, dataProvider, name) def _createSPGMarker(self, markerType, name): dataProvider = self._getSPGDataProvider(markerType) return self._createMarker(SPGGunMarkerComponent, _VIEW_ID.STRATEGIC, markerType, dataProvider, name) типичный рефакторинг при введении двустволок и хукнутый метод раздербанили на мелкие ну я просто выкинул то что стало лишним from gui.Scaleform.genConsts.GUN_MARKER_VIEW_CONSTANTS import GUN_MARKER_VIEW_CONSTANTS as _CONSTANTS def new_ControlMarkersFactory_createSPGMarkers(old_ControlMarkersFactory_createSPGMarkers, self): result = old_ControlMarkersFactory_createSPGMarkers(self) if self._markersInfo.isServerMarkerActivated: markerType = aih_constants.GUN_MARKER_TYPE.SERVER elif self._markersInfo.isClientMarkerActivated: markerType = aih_constants.GUN_MARKER_TYPE.CLIENT else: markerType = aih_constants.GUN_MARKER_TYPE.UNDEFINED return result + (self._createSniperMarker(markerType, name=_CONSTANTS.SNIPER_GUN_MARKER_NAME), ) этот же метод в текущей версии мода def new_ControlMarkersFactory_createSPGMarkers(old_ControlMarkersFactory_createSPGMarkers, self, markersInfo, components=None): result = old_ControlMarkersFactory_createSPGMarkers(self, markersInfo, components=components) if markersInfo.isServerMarkerActivated: dataProvider = markersInfo.serverMarkerDataProvider markerType = aih_constants.GUN_MARKER_TYPE.SERVER elif markersInfo.isClientMarkerActivated: dataProvider = markersInfo.clientMarkerDataProvider markerType = aih_constants.GUN_MARKER_TYPE.CLIENT else: dataProvider = None markerType = aih_constants.GUN_MARKER_TYPE.UNDEFINED return result + (self._createSniperMarker(markerType, dataProvider, components=components), ) https://github.com/StranikS-Scan/AdvancedAimingSystem-NOLF/blob/1.7.x/source/res/scripts/client/gui/mods/.submodules/source/plugins/SniperModeSPGExtension.py ну и забыл импорт тупо картохин без самодеятельности from gui.Scaleform.genConsts.GUN_MARKER_VIEW_CONSTANTS import GUN_MARKER_VIEW_CONSTANTS as _CONSTANTS
  7. Поправил тот плагинчик. ПО ходу надо с гитом разбираться чтобы туда запулить правочку.
  8. Заценяю в 1.7.1.1. Все моды как обычно, две заветные а в xvm вырубаем привязку к версии com.modxvm.xfw.actionscript_8.3.0.66.wotmod\res\mods\xfw_packages\xfw_actionscript\xfw_package.json "wot_version_exactmatch": false Upd. та что я такое несу?! всё же работает как надо, зачем что-то чинить
  9. Ещё бы плагинчик ковырнуть, который развалился в те суровые времена ежедневных микропатчей.
  10. @horizont ну это дефолтная неизбежная проблема всех этих *логов. Когда картоха меняет или добаваляет задействованные в моде параметры. Получается некий рассинхрон вывалюющийся при каждом событии в этом логе. А здесь речь о ежебойным накапливании шняги и после каждого боя клиент работает медленнее. Та чистится но только при перезапуске. Часов через 2-3 н++ послал подальше со своей бигдатой. Ешё через час-два, когда тех эффектов было около 50к, начали отваливаться моды, упала консоль. С орионом вообще дичайшие тормоза через пару каток. В нем передавалка лога ооочень медленная и подвешивает софту на пару минут после каждого боя. А ещё через пару каток и сам клиент помер. Так что беда серьезная .
  11. я тоже сходу на че-то такое подумал или с другой кухни SpaceBinPatcher. ну как работает..? после пары часов каток фризить начинает. Видять, тяжко ему с гиговым файлом лога даже на шустром железе. Я только недавно выключил дев режим в xvm и прозрел, что клиент теперь не надо каждый день перезапускать. А тут опять.
  12. Там не сразу приход ловишь а катать 1-2 катки без модов? та ну брось :) Можно в паймакро вкинуть и в реалтайме следить как оно разростаеться. import helpers.EffectsList print len(helpers.EffectsList.EffectsListPlayer.activeEffects)
  13. @Arni Ex насколько я понимаю слово target, именно действующий макрос можно было бы так обозвать, который меряет расстояние до цели. А здесь речь про сугубо UIную мерялку где, как по мне, обязательно слово crosshair.
  14. @ktulho ааааа.... только ни я, у меня всегда с неймингом переменных целая катастрофа. Десятки раз весь твой код обнюхал и не замечал у тебя такой проблемы :) distance и crosshair заюзать бы ну или в тупую py:sight.crosshairdistance или как школа :) distance2crosshair
  15. та любой и зип и 7зип и зип с винрара. Чем только не собирал, важно только режим стор выбрать ну или где как его называют типа без сжатия.
  16. Опять начало пригорать от этой штуки и решил напомнить вопрос. В артприцеле расстояние измеряется до центра прицела и не важно куда смотрит орудие. В аркадном и снайперском чтобы чекнуть расстояние до такого-то куста, нужно обязательно повернуть на эту точку ствол, но вообще не всегда есть такая возможность. Приходиться по старинке юзать хоткей в балкалкмоде.
  17. @AntonEvtyushov как вы собрались "тестировать" софту если не способны навести курсор на ник автора?
  18. @Nik7 нам остаётся только аплодировать твоей гениальности. Ведь всё верно! Если в одной версии изменить путь а в какой-то из последующих "вернуть обратно". А почему у меня так сложно было... Я тогда цепонул файло и батник а когда на днях в 5 утра "картоха опять всё сломала". С ошибки в логе добрался до того пути. Пошатал и завелось. А уже потом, вроде когда фейспалм этот открывал читать подсказав как чинил я, листанул пару ообщений вверх и понял что просто вернул "как было" и можно было просто закинуть оригинальный файл.
  19. @nehalemex зачем ты мне это поясняешь когда я уже под всем подписался. Хотя ты про 10, а я про 300-400 как приходилось делать на некоторых акках где совершенно нет подходящей техники.
  20. Много лет меня интересовал этот вопрос, но нигде никто ниче. С неудачным стартом то ты загнул, нужна будет логика под разные квесты а вот тупо вынести кнопку ресета в батлрезалт или в саму ту штуку в ангаре с твоим текущим квестом, которая в xvm hangar.personalQuests Крайне мало народа пользуется подобным мазохизмом: подбирать удачный бой под старт серии. А это когда десятки а когда и много сотен боёв и каждый раз открываешь эти все окна для банальногго ресета.
  21. in script PjOrion\wottransmission.zip\wottransmission\scripts\common\bw_site.py i changed res_path from './../' to './' wottransmission.zip
  22. Нет, HD текстуры дополняют стандартные.
×
×
  • Create New...