Jump to content
Korean Random
hat3k

[Автоматический возврат экипажа / Auto previous crew]

Recommended Posts

Тем, кто много играет на премтанках и вечно пересаживает экипажи сгодилось бы. Включаешь танк, предыдущий экипаж автоматически усаживается.

 

Галка "автоматически возвращать предыдущий экипаж":

 

404ff5c97720.png

 

 

Или кнопки "вернуть экипаж" и "высадить экипаж":

 

4e6956ccc1d7.png

 

a66479f6edf5.png

  • Upvote 3

Share this post


Link to post

Short link
Share on other sites

Не так уж и сложно, правда не одну кнопку, а две ). Но на мой взгляд это не просто ежедневная операция, она постоянно делается теми, у кого есть премтанки. А если премов одной нации много и сбиваешь звёзды, то опция облегчает жизнь. Сама же функция посадки уже есть, как я понимаю, остается её автоматизировать. Я не к тому, что это легко, я к тому, что тут вроде совсем нового пилить не надо, и иконки у ВГ есть в ресурсах тоже.

Share this post


Link to post

Short link
Share on other sites

Честно говоря было очень полезно.если честно бывает такое что не катаешь тот или иной танк потому что там нет экипажа.а пересаживать просто лень))

Share this post


Link to post

Short link
Share on other sites

Можно и без изменения интерфейса. Просто настройку в файле конфигурации сделать, при выборе танка возвращать экипаж. 

Edited by ktulho

Share this post


Link to post

Short link
Share on other sites

Можно и без изменения интерфейса. Просто настройку в файле конфигурации сделать, при выборе танка возвращать экипаж. 

изменения в mods\packages\xvm_crew\python\wg_compat.pyc

 

    def processReturnCrew(self, print_message = True):

        from gui.shared.gui_items.processors.tankman import TankmanReturn

        from CurrentVehicle import g_currentVehicle

        if not g_currentVehicle.isInHangar() or g_currentVehicle.isInBattle() or g_currentVehicle.isLocked():

            return

        result = yield TankmanReturn(g_currentVehicle.item).request()

        if len(result.userMsg) and print_message:

            SystemMessages.g_instance.pushI18nMessage(result.userMsg, type=result.sysMsgType)

 

изменения в mods\packages\xvm_crew\python\__init__.pyc

 

def PutPreviousCrew(self, print_message = True):

    wg_compat.g_instance.processReturnCrew(print_message)

 

def MY_recreateVehicle(self, vDesc, vState, onVehicleLoadedCallback = None):

    orig_recreateVehicle(self, vDesc, vState, onVehicleLoadedCallback)

<тут можно добавить проверку опции из конфигурации xvm>

    PutPreviousCrew(self, False)

 

def _RegisterEvents():

    from gui.Scaleform.daapi.view.lobby.hangar.hangar_cm_handlers import CrewContextMenuHandler

    OverrideMethod(CrewContextMenuHandler, '__init__', CrewContextMenuHandler__init__)

    OverrideMethod(CrewContextMenuHandler, '_generateOptions', CrewContextMenuHandler_generateOptions)

    CrewContextMenuHandler.DropAllCrew = DropAllCrew

    CrewContextMenuHandler.PutOwnCrew = PutOwnCrew

    CrewContextMenuHandler.PutBestCrew = PutBestCrew

    CrewContextMenuHandler.PutClassCrew = PutClassCrew

    CrewContextMenuHandler.PutPreviousCrew = PutPreviousCrew

    from gui.ClientHangarSpace import ClientHangarSpace

    global orig_recreateVehicle

    orig_recreateVehicle = ClientHangarSpace.recreateVehicle

    ClientHangarSpace.recreateVehicle = MY_recreateVehicle

Edited by Helkar
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Спасибо, но я не копенгаген, как это встроить, не могли бы вы помочь?

Share this post


Link to post

Short link
Share on other sites

Спасибо, но я не копенгаген, как это встроить, не могли бы вы помочь?

я понимаю, я этот код написал разработчикам xvm =)

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

 

 

я понимаю, я этот код написал разработчикам xvm =)

К сожалению, проблема не в сложности кода, а как уговорить разработчиков добавить эту функцию. Кстати, можешь попробовать сделать pull requests, вдруг пройдет.

Share this post


Link to post

Short link
Share on other sites

я понимаю, я этот код написал разработчикам xvm =)

нафиг надо, я не буду ничего такого руками вставлять, для этого есть pull-requests.

от того, что ты написал до полноценного продукта еще очень далеко.

и прежде чем что-то коммитить, стоило бы обсудить реализацию. Твои MY_ и orig_ идут вразрез с правилами, которые приняты в XVM.

К сожалению, проблема не в сложности кода, а как уговорить разработчиков добавить эту функцию. Кстати, можешь попробовать сделать pull requests, вдруг пройдет.

В предложенном варианте нет галки в ангаре, предполагается только опция в конфиге. Как-то я не уверен в юзабельности такой реализации.

Если сделать галку, как на первом скрине в шапке, то почему бы и нет. Но галка должна сохраняться для каждого танка отдельно.

Share this post


Link to post

Short link
Share on other sites

 

 

Можно и без изменения интерфейса. Просто настройку в файле конфигурации сделать, при выборе танка возвращать экипаж. 
 

Так, я не вижу смысла в галке. Просто выбираешь танк, а экипаж уже там есть. Пересадка же ни на что не влияет?

Share this post


Link to post

Short link
Share on other sites

Но галка должна сохраняться для каждого танка отдельно.

 

В принципе, это описывает поведение игрока, он либо пересаживает, либо нет. То есть, смысла галки для каждого танка наверное и нет, человек имхо либо пользуется этой возможностью качать экипажи, либо нет. Я галку, если честно задумывал именно как глобальный свитч изначально, а как для каждого танка - второстепенно. Хотя вам виднее. Но я всё ещё надеюсь, что вы примете это на реализацию.

Share this post


Link to post

Short link
Share on other sites

в общем ребят, выкладываю 2 файла, их нужно закинуть в res_mods\mods\packages\xvm_crew\python

при этом на танки при их выборе в карусели будет садиться автоматом предыдущий экипаж

до пул реквестов руки еще не дошли.

auto_crew.rar

  • Upvote 4

Share this post


Link to post

Short link
Share on other sites

Работает!

Примите мою бесконечную благодарность!

Share this post


Link to post

Short link
Share on other sites

потестируйте на предмет флуд-фильтра. WG может блокировать слишком частые запросы на пересадку, так как это довольно тяжелая для сервера операция.

Share this post


Link to post

Short link
Share on other sites

 

 

до пул реквестов руки еще не дошли
 

Спасибо за работу. Ждем pull requests.


потестируйте на предмет флуд-фильтра. WG может блокировать слишком частые запросы на пересадку, так как это довольно тяжелая для сервера операция.

Минуты полторы щелкал по танкам с неполным экипажем. Проблем не обнаружено.

Share this post


Link to post

Short link
Share on other sites

и прежде чем что-то коммитить, стоило бы обсудить реализацию. Твои MY_ и orig_ идут вразрез с правилами, которые приняты в XVM.

с кем то можно это обсудить? или где то почитать методологию?

 

Минуты полторы щелкал по танкам с неполным экипажем. Проблем не обнаружено.

у меня тоже все ок

Share this post


Link to post

Short link
Share on other sites

с кем то можно это обсудить? или где то почитать методологию?

Где-то была профильная тема по XFW, лучше это делать там. В качестве методологии стоит использовать текущие исходники, так как полноценную доку мы вряд ли напишем из-за нехватки времени, да и отсутствия желания.

Например, в XVM оригинальные методы переопределяются с помощью RegisterEvent или OverrideMethod, а не через my_/orig_.

Минуты полторы щелкал по танкам с неполным экипажем. Проблем не обнаружено.

А сколько времени занимает посадка экипажа? Я так понимаю, при переключении танка появляется шестеренка на 1 секунду или больше? Это будет очень сильно раздражать.

Share this post


Link to post

Short link
Share on other sites

 

 

А сколько времени занимает посадка экипажа? Я так понимаю, при переключении танка появляется шестеренка на 1 секунду или больше? Это будет очень сильно раздражать.

Шестеренка не появляется. Времени занимает столько же, сколько и через меню. 

Share this post


Link to post

Short link
Share on other sites

Шестеренка не появляется. Времени занимает столько же, сколько и через меню. 

Я к тому, что если это будет медленнее, чем при обычном переключении танка без пересадки, то с этим могут быть проблемы, и надо будет делать галочку в ангаре.

Share this post


Link to post

Short link
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...