apostle Posted January 13 Share Posted January 13 Всем гриба! Думал такого мода нет(точнее есть, но я думал, что он не работает), поэтому решил запариться и сделать свой. Но как оказалось такой мод есть и прекрасно работает. Но хер с ним, пускай будет ещё один. https://disk.yandex.ru/d/CB775Kc5ypGYSg Цитата Код, если кому интересно: # -*- coding: utf-8 -*- import BigWorld import ResMgr from constants import CONTENT_TYPE from helpers import dependency from skeletons.gui.shared.utils import IHangarSpace from gui.shared.utils.requesters.ItemsRequester import REQ_CRITERIA from gui.shared.event_dispatcher import showVehiclePreview from gui.Scaleform.daapi.view.lobby.vehicle_compare.cmp_add_vehicle_popover import VehicleCompareAddVehiclePopover import gui.shared.gui_items.vehicle_helpers as vh from gui.shared.gui_items.Vehicle import Vehicle import gui.miniclient as miniclient def log(msg): print "[TANK_PREVIEW] %s" % msg # --- ЛОГИКА ПАТЧЕЙ --- def apply_patches(): log("Applying patches...") # 1. Глобальные обходы проверок Vehicle.isPreviewAllowed = lambda self: True Vehicle.isSecret = lambda self: False miniclient.configure_state = lambda: None vh.isSecretExtendedNonInventoryVehicle = lambda cd: False ResMgr.activeContentType = lambda: CONTENT_TYPE.HD_TEXTURES # 2. Патч окна добавления техники (список всех танков) def patched_updateData(self, allVehicles=None): all_items = self.itemsCache.items.getVehicles(REQ_CRITERIA.EMPTY) nations, levels, classes = self._parseFilters() criteria = REQ_CRITERIA.EMPTY if nations: criteria |= REQ_CRITERIA.NATIONS(nations) if classes: criteria |= REQ_CRITERIA.VEHICLE.CLASSES(classes) if levels: criteria |= REQ_CRITERIA.VEHICLE.LEVELS(levels) filtered_list = all_items.filter(criteria) result_vos = [] for v in filtered_list.itervalues(): vo = self._makeVehicleVOAction(v) vo['inHangar'] = True result_vos.append(vo) self._vehDP.buildList(result_vos) self._updateSortField() self.updateAddButtonLabel() def patched_setVehicleSelected(self, dbID, autoClose): if autoClose: showVehiclePreview(int(dbID)) else: self._vehDP.toggleSelectionByID(dbID) self.updateAddButtonLabel() VehicleCompareAddVehiclePopover.updateData = patched_updateData VehicleCompareAddVehiclePopover.setVehicleSelected = patched_setVehicleSelected log("All patches applied successfully.") # --- ОБРАБОТЧИКИ СОБЫТИЙ АНГАРA --- def onHangarSpaceCreate(): log("Hangar space created. Patching...") apply_patches() def onHangarSpaceDestroy(): log("Hangar space destroyed.") # --- РЕГИСТРАЦИЯ --- try: hangar_space = dependency.instance(IHangarSpace) try: hangar_space.onSpaceCreate -= onHangarSpaceCreate hangar_space.onSpaceDestroy -= onHangarSpaceDestroy except: pass hangar_space.onSpaceCreate += onHangarSpaceCreate hangar_space.onSpaceDestroy += onHangarSpaceDestroy if hangar_space.spaceInited: onHangarSpaceCreate() else: log("Waiting for Hangar space...") except Exception as e: log("Init Error: %s" % str(e)) apostle.PreViewTanksMt_1.0.0.mtmod 3 @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.