Jump to content
Korean Random

ntaklive

Newbie
  • Content Count

    3
  • Joined

  • Last visited

Posts posted by ntaklive


  1. On 12/30/2022 at 7:48 PM, ntaklive said:


    time.sleep нужен был для того, чтобы ждать, пока появится вьюшка. Из-под WOT-Transmission основной поток игры не блочится :\
    Мб не хватает опыта в python, но, после 1.5 дня копания в исходниках игры, выйти модом из акка так и не смог.
    В итоге через скрипт открываю вьюшку подтверждения (как в п.2) и через user32 делаю клик на submit. :wacko:


    Разобрался. Оказалось, что это WOT-Transmission вызывал краш, нужно было просто скомпилировать мод и вызвать метод в отдельном потоке следующим образом...

    import threading
    from gui.shared.personality import ServicesLocator
    
    thread = threading.Thread(target=ServicesLocator.gameplay.goToLoginByDisconnectRQ)
    thread.start()

  2. 12 hours ago, Kurzdor said:
    
    time.sleep(1)

    А ты хорош это вызывать из под игры. Куда медаль слать тебе?

    Если посмотреть просто как игра сама вызывает disconnect от сервера, quit с игры, можно это можно сделать как сложить дважды два.
    UPD: К тому же, ты почти у цели
     


    time.sleep нужен был для того, чтобы ждать, пока появится вьюшка. Из-под WOT-Transmission основной поток игры не блочится :\
    Мб не хватает опыта в python, но, после 1.5 дня копания в исходниках игры, выйти модом из акка так и не смог.
    В итоге через скрипт открываю вьюшку подтверждения (как в п.2) и через user32 делаю клик на submit. :wacko:


  3. Доброго времени суток знающим людям!) Пытаюсь реализовать функционал выхода из аккаунта в своем скрипте, но получаю только краш игры.
    Пробовал следующее:
    1.

    ServicesLocator.gameplay.goToLoginByEvent()

    — всё, кроме goToLoginByEvent() (вызывается в game.onDisconnected()), крашит игру, а этот метод выкидывает в меню логина с ошибкой, но при попытке опять войти в аккаунт пишет "Вы отключены от сервера"
    2.

    app = self.app_loader.getApp()
    dialogsContainer = app.containerManager.getContainer(WindowLayer.TOP_WINDOW)
    if not dialogsContainer.getView(criteria={POP_UP_CRITERIA.VIEW_ALIAS: VIEW_ALIAS.LOBBY_MENU}):
        g_eventBus.handleEvent(events.LoadViewEvent(SFViewLoadParams(VIEW_ALIAS.LOBBY_MENU)),
                               scope=EVENT_BUS_SCOPE.LOBBY)
        time.sleep(1)
        view = dialogsContainer.getView(criteria={POP_UP_CRITERIA.VIEW_ALIAS: VIEW_ALIAS.LOBBY_MENU})
        view.logoffClick()
        time.sleep(1)
        view1 = dialogsContainer.getView(criteria={POP_UP_CRITERIA.VIEW_ALIAS: VIEW_ALIAS.SIMPLE_DIALOG})
        view1._callHandler(DIALOG_BUTTON_ID.SUBMIT)
    

    — с помощью dialogs container получаю инстансы окон (Главное меню -> "Отключиться от сервера") и у них вызываю нужные методы. При клике в диалоговом окне "Отключиться от сервера" на "Да" крашится игра
    3. 

    BigWorld.player().onBecomeNonPlayer()

    — вызываю метод onBecomeNonPlayer у инстанса PlayerAccount - краш
    Если кто-то подскажет решение, буду премного благодарен!. На форуме искал что-то подобное — не нашёл.
     

×
×
  • Create New...