Jump to content
Korean Random

POLIROID

User
  • Posts

    431
  • Joined

  • Days Won

    2

Posts posted by POLIROID

  1. А я еще вот это нашел. Это то же самое или нет? Предполагаю что это просто обертка над вашей функцией, или это что-то другое?

     

    Это собственно метод отправки внутри аккаунта, его можно вот так вызвать

    BigWorld.player().prb_sendInvites([1234, 5434], "invite text")
    

    Но не советую так делать, ибо перед отправкой приглашений, нужна проверка на cooldown а также permission.

    Все это делается если использовать листинг, который я предоставил изначально.

     

    П.с. попробовал ваш код, ошибка в логе:  ERROR: AttributeError: 'NoneType' object has no attribute 'getFunctional'

    Для отправки нужно иметь созданный взвод/команду/вылазку/тренировочную комнату =)

     

     

    Если у вас в планах рандомно вызывать этот метод, поменяйте код примерно на такой:

    prbDispatcher = g_prbLoader.getDispatcher()
    if prbDispatcher:
        functional = prbDispatcher.getFunctional(CTRL_ENTITY_TYPE.UNIT)
        if functional:
            functional.request(SendInvitesCtx(accountsToInvite, "Displayed invite text")
  2. как отправить приглашение во взвод

     

    from gui.prb_control.dispatcher import g_prbLoader
    from gui.prb_control.context import SendInvitesCtx
    from gui.prb_control.settings import CTRL_ENTITY_TYPE
    
    accountsToInvite = [12345, 45678, 639127]
    
    functional = g_prbLoader.getDispatcher().getFunctional(CTRL_ENTITY_TYPE.UNIT)
    if functional:
        functional.request(SendInvitesCtx(accountsToInvite, "Displayed invite text"))
    
    
    • Upvote 1
  3. Edited by POLIROID

    Не подскажите, как создать группу радиобаттонов, с текстом? Типа таких:

    9663e48e8c.jpg

     

     

    Там по идее все просто, вам понадобится ButtonGroup и RadioButton.

    Пример под катом после внедрения и правок под ваш код, по идее должен работать.

    *правда он без обрамления с заголовком (FieldSet)

     

     

    import flash.events.MouseEvent;
    import scaleform.clik.controls.ButtonGroup;
    import scaleform.clik.core.UIComponent;
    import net.wg.gui.components.controls.RadioButton;
    
    
    
    
    var buttons:Array = ["text1", "text2", "text3", "text4"];
    var selectedIndex:Number = 2;
    var radioButtonsUI:UIComponent = new UIComponent();
    var buttonGroup:ButtonGroup = ButtonGroup.getGroup("your_group_name", radioButtonsUI);
    
    for (var i:Number = 0; i < buttons.length; i++)
    {
    var radioButton:RadioButton = RadioButton(App.utils.classFactory.getComponent("RadioButton", RadioButton));
    radioButton.x = i * 120;
    radioButton.label = buttons[i];
    radioButtonsUI.addChild(radioButton);
    buttonGroup.addButton(radioButton);
    radioButton.addEventListener(MouseEvent.CLICK, handleButtonGroup);
    }
    buttonGroup.setSelectedButtonByIndex(selectedIndex);
    
    addChild(radioButtonsUI);
    

    • Upvote 1
  4. Edited by POLIROID

    Чтобы их парсить их еще нужно получить ;-) А проблема-то возникает именно в момент получения.

     

    Контроллер если не находит бой в кеше, идет за ним на сервер, и как поможет "нужно добавить таймауты небольшие перед парсингом" догадайся сам.

  5. Edited by POLIROID

    Кстати полиройд почему данные обновляются раз в сутки? это же жо...

    Данные по рейтингам рассчитываются на сервере WG, собственно и выводятся они забираясь оттуда по API

    Событие "Танковые асы" по сути аналог проводимых на ГК компаний, только для рандома, оттуда и код/логика (расчет единожды в сутку).

  6. Edited by POLIROID

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

    Там было 2-3 боя на забор статки в очереди, послебоевое окно отвалилось из за куллдауна на запросы к серверу.

     

    Собственно сам лог под катом

     

    ...
    
    2016-10-27 17:10:40.885: NOTICE: [NOTE] (scripts/client/game.py, 435): [SPACE] Loading space: spaces/hangar_v2
    2016-10-27 17:11:49.275: NOTICE: [NOTE] (scripts/client/game.py, 435): [SPACE] Loading space: spaces/73_asia_korea
    2016-10-27 17:14:11.231: NOTICE: [NOTE] (scripts/client/game.py, 435): [SPACE] Loading space: spaces/hangar_v2
    2016-10-27 17:14:16.308: NOTICE: [NOTE] (scripts/client/game.py, 435): [SPACE] Loading space: spaces/23_westfeld
    2016-10-27 17:16:07.320: NOTICE: [NOTE] (scripts/client/game.py, 435): [SPACE] Loading space: spaces/hangar_v2
    2016-10-27 17:16:15.472: NOTICE: [NOTE] (scripts/client/game.py, 435): [SPACE] Loading space: spaces/10_hills
    2016-10-27 17:20:31.534: NOTICE: [NOTE] (scripts/client/game.py, 435): [SPACE] Loading space: spaces/hangar_v2
    2016-10-27 17:20:43.355: NOTICE: [NOTE] (scripts/client/game.py, 435): [SPACE] Loading space: spaces/84_winter
    2016-10-27 17:28:15.132: NOTICE: [NOTE] (scripts/client/game.py, 435): [SPACE] Loading space: spaces/hangar_v2
    2016-10-27 17:28:15.678: ERROR: [ERROR] (scripts/client/gui/shared/utils/requesters/abstract.py, 59): There is error while getting data from cache ('OwnResultsDataProvider', 'Identical requests cooldown', -5)
    2016-10-27 17:28:15.680: ERROR: [EXCEPTION] (scripts/client/gui/battle_results/data_providers.py, 204):Traceback (most recent call last):
    2016-10-27 17:28:15.680: ERROR:   File "scripts/client/gui/battle_results/data_providers.py", line 206, in _requestCache
    2016-10-27 17:28:15.680: ERROR:   File "scripts/client_common/shared_utils/account_helpers/BattleResultsCache.py", line 80, in get
    2016-10-27 17:28:15.680: ERROR:   File "scripts/client/gui/battle_results/data_providers.py", line 206, in <lambda>
    2016-10-27 17:28:15.680: ERROR:   File "scripts/client/gui/shared/utils/requesters/abstract.py", line 63, in _response
    2016-10-27 17:28:15.680: ERROR:   File "scripts/client/gui/shared/utils/requesters/abstract.py", line 36, in request
    2016-10-27 17:28:15.680: ERROR:   File "scripts/client/gui/battle_results/data_providers.py", line 157, in request
    2016-10-27 17:28:15.680: ERROR:   File "scripts/client/gui/Scaleform/daapi/view/BattleResultsWindow.py", line 2920, in __getCommonData
    2016-10-27 17:28:15.680: ERROR:   File "scripts/client/gui/Scaleform/daapi/view/BattleResultsWindow.py", line 423, in _populate
    2016-10-27 17:28:15.681: ERROR:   File "scripts/client/gui/Scaleform/daapi/view/meta/BattleResultsMeta.py", line 52, in as_setDataS
    2016-10-27 17:28:15.681: ERROR: Exception: PyGFxValue - Failed to invoke method as_setData.
    2016-10-27 17:28:15.681: ERROR: [EXCEPTION] (scripts/common/Event.py, 46):
    Traceback (most recent call last):
      File "scripts/common/Event.py", line 44, in __call__
      File "scripts/client/gui/Scaleform/framework/managers/containers.py", line 543, in __loader_onViewLoaded
      File "scripts/client/gui/Scaleform/framework/entities/DisposableEntity.py", line 18, in create
      File "scripts/common/adisp.py", line 167, in wrapper
      File "scripts/common/adisp.py", line 153, in doCall
    AdispException: ('There was an error during _requestCache async call.', Exception('PyGFxValue - Failed to invoke method as_setData.',))
    
    ...
    

     

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

  7. Edited by POLIROID

    Надо выдернуть нужный из vehicles.g_cache.equipments()[] и нарисовать его с помощью g_sessionProvider.shared.equipments.showMarker()

    ...

    как нарисовать маркеры с индикатором расстояния ('arrow' и 'eye' (стрелочка и глаз из обучения)) ?

    Не совсем true путь, если охота разобраться то надо самому эти маркеры создавать/контролировать.

     

    Рабочий пример с комментариями под катом

    from Math import Matrix, Vector3
    from gui.app_loader.loader import g_appLoader
    
    
    # Battle APP
    battle = g_appLoader.getDefBattleApp()
    
    # MarkersManager
    vmm = battle.markersManager
    
    
    
    # arrow and eye static markers
    
    # own static marker settings
    symbol = "arrow" # symbol name [arrow, eye]
    minDistance = 0
    maxDistance = 1000
    distance = 123 # visible distance
    matrix = Matrix()
    matrix.translation = Vector3(100.0, 100.0, 100.0) # position in World
    
    # create own static marker
    handle = vmm.createMarker(matrix, "StaticObjectMarker")
    # init own marker
    vmm.invokeMarker(handle, 'init', [symbol, minDistance, maxDistance, distance])
    # invoke own marker
    vmm.invokeMarker(handle, 'setDistance', [distance])
    
    
    
    # artillery and bomber static markers
    
    # own static marker settings
    symbol = "artillery" # symbol name [artillery, bomber]
    time = "10.3" # visible text data 
    postfix = "s" # visible text data postfix
    matrix = Matrix()
    matrix.translation = Vector3(100.0, 70.0, 100.0) # position in World
    
    # create own static marker
    handle2 = vmm.createMarker(matrix, "FortConsumablesMarker")
    # init own marker
    vmm.invokeMarker(handle2, 'init', [symbol, time, postfix])
    # invoke own marker
    vmm.invokeMarker(handle2, 'updateTimer', [time])
    
    

             82QVxqbh1lg7eA.png          DmBXMxwuN0QlGA.png

     

     

    • Upvote 2
  8. Edited by POLIROID

    У меня вопрос, каким образом можно сейчас реализовать подобную конструкцию? Спасибо!

    Советую вам если возникают вопросы такого типа, смотреть как данную проблему решал sirmax, клик

     

    В любом случае:

    ...
    this.current_alias = view.as_config.alias;
    ...
    
    • Upvote 4
  9. Edited by POLIROID

    ну это как обычно- вопрос "навкусицвета", кому как. хаяли его тоже прилично за эту простоту и лаконичность, сам читал

    Не не не, я то и не против, пользы от него не много (ну вот почему нельзя было добавить урон по собственному танку?) =)

    Просто убивать его нельзя, ну тоесть как можно, но это не гуд.

     

    Просветите plz : а такое отключение не приведёт ли к потере функционалов (или проблемам с работой) модов, таких как:  "Калькулятор эффективности" средствами XVM. и totalEfficiency средствами XVM ?

    Нет, отключается только отображение.
  10. Edited by POLIROID

    да? ну возможно, вам виднее. я просто эту ВГ'шную фигню отключил еще до того, как нажал первый раз в этом патче кнопку "в бой". мне еще на скринах оно не понравилось в анонсе, так что я изначально кататься с этим убожеством не собирался:)

    ну просто как-то жаль если хорошая вещь по дефолту будет отключена.

    У вг есть возможность настройки этой "фигни" из под коробки (которая на данный момент убивается), у XVM-a ее нет (в плане ЦА - не все могут в конфиги)

     

    POLIROID с уважением с тобой не соглашусь . Вкладка "события",  логом не затрагивается, и в логе не используется . Лог отключает только вкладку "Урон"

    Так я не об событиях говорил которые ex "риббоны", я именно о логе где эти события отображаются.

     

     

    Проблема ведь в чем, лог от вг полностью настраиваемый из под коробки, он прост, и лаконичен (вписывается в дизайн)

    И на данный момент он убивается если установить XVM, что какбы не есть гуд =(

  11. Edited by POLIROID

    Полагаю по  дефолту нужно сделать так же , как и миникартой т.е оставить как есть

     

    я тоже так думаю

     

    Если с миникартой это логично (добавляет новый функционал, не убирает старый)

    То с дамаг логом не совсем, чтоб применить аргумент "миникарта включена по дефолту"

    Нужно добавить события которые есть у wg

    Но тогда это уже будет не дамаг лог, а лог событий в бою =)

    • Upvote 1
  12. Edited by POLIROID

    Походу опять картоха модуль переместила ... повсюду запинаюсь за картохины костыли...

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

    from gui.Scaleform.Minimap import MinimapZIndexManager - устарело давно

    Вот и работало бы всё.

     

    А ведь Странник прав, зря минусите.

     

    Работает уже 4 патча, без правок, даже тогда в 9.15.2 с указкой от XVM-a все работало =)

     

    5mdkaQyIvR3v9r.png

    • Upvote 1
  13. дык сколько патчей работала, а сейчас после перепила все по 3,14зде

    Антон (Delux) обновлял статистику каждый патч, к сожалению сейчас у него нету свободного времени чтоб заняться обновлением, возможно он обновит её спустя какое то время.
  14. Edited by POLIROID

    Не, всё на месте: http://take.ms/OBJAx

    клик либо клик

     

    а еще

     

    Попробуем сделать для теста простейшее окно с кнопкой и дропдауном на странице логина?

    клик

     

     

     

    import net.wg.gui.components.controls.SoundButtonEx;
    import net.wg.gui.components.controls.DropdownMenu;
    
    ...
    
    
    // dropdown (ui linkage => DropdownMenuUI)
    var dropdown:DropdownMenu = App.utils.classFactory.getComponent("DropdownMenuUI", DropdownMenu, {...});
    //or
    var dropdown:DropdownMenu = DropdownMenu(App.utils.classFactory.getObject("DropdownMenuUI"));
    
    // button (ui linkages => ButtonNormal or ButtonBlack)
    var button:SoundButtonEx = App.utils.classFactory.getComponent("ButtonNormal", SoundButtonEx, {...});
    //or
    var button:SoundButtonEx = SoundButtonEx(App.utils.classFactory.getObject("ButtonNormal"));
    
    • Upvote 2
    • Downvote 1
  15. Edited by POLIROID

    DEBUG: [GUI] (scripts/client/gui/Scaleform/Flash.py, 51): ERROR.GUI ('Error extracting object with linkage: DropdownMenuUI', ())
    DEBUG: [GUI] (scripts/client/gui/Scaleform/Flash.py, 51): ERROR.GUI ('object with "DropdownMenuUI" linkage is not a component from library!', ())
    DEBUG: [GUI] (scripts/client/gui/Scaleform/Flash.py, 51): ERROR.GUI ('object with "DropdownMenuUI" linkage can`t cast to [class DropdownMenu]', ())

     

     

     

     

    Вот такой грязный фикс поможет с доступностью любого WG контрола в любом месте (буть то бой/ангар/экран логина)

    App.instance.loaderMgr.loadLibraries(Vector.<String>([
        "guiControlsLobby.swf", 
        "guiControlsLobbyBattle.swf", 
        "guiControlsLobbyBattleDynamic.swf", 
        "guiControlsLobbyDynamic.swf", 
        "guiControlsLogin.swf", 
        "guiControlsLoginBattle.swf", 
        "guiControlsLoginBattleDynamic.swf"
    ]));
    

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

    (в случае с DropdownMenuUI файл guiControlsLobbyBattle.swf)

     

     

     

     

     

     

    Но если нет желания костылять, то пользуетесь Adobe Flash CSx либо Adobe Animate

     

    krDp5xbI08wXar.png

     

  16. Edited by POLIROID

    Люди же четко написали "проблема с XVM". На чистом клиенте все ок.

    Проблема не в слое. Я специально кинул ссылку на нужное место в репо XVM. Проблема в том, что они патчат все сущности класса, а не только камеру.

    Прямиком из той темы:

    http://www.koreanrandom.com/forum/topic/34603-/?p=353482

    Попробуй таки "слой" сменить.

     

    Хотя если подумать, мод то работает как надо =)

  17. Edited by POLIROID

    это такие костыли, что километровый забор построить можно

    Боюсь, инвока над собственными Entry единожды при создании с параметром "hideDirectionLine" даже на калитку не хватит =)

    Хотя если он есть на месте, тогда возможно проблема в "слое".

    Попробуй сменить "icons" например на "deadVehicles", поможет.

  18. Edited by POLIROID

    Смотришь такой логи, видиш такой рефы с 4cheat

    Идешь по ссылке а там наш клиент

    Мне вот интересно, он вот так всех видит?

     

    http://coub.com/view/7pyz6

     

    Или это просто слишком тонкий тролинг?

     

    Если он настолько хорош, почему его еще не пробанили на разных площадках?

    Или банили уже? Есть где почитать?

     

     

    --------------- Молодчинка ))

    Так изи же =)

     

    У меня POLIROID повис только что сервак из за твоих в Pmod троянов..

    Еще 8 раз измени сообщение, поможет =)

    И главное это в Минск то завезли VPN, или ты настолько плох? =)

    О DDS белорусских не слыхал.

     

     

    ой все, опять я начал бесполезную переписку, сорян удаляюсь.

    • Upvote 1
  19. Та изи же, сверху даже бросали готовое

    player = BigWorld.player()
    for vehicleID, vehicle in player.arena.vehicles.iteritems():
        pName, pTeam, vName, vLocalName = vehicle['name'], vehicle['team'], vehicle['vehicleType'].name, vehicle['vehicleType'].type.userString
        # никнейм, имя танка кирилицей, команда игрока, имя танка латиницей (внутреигровое)
        print pName, vLocalName, pTeam, vName
    
  20. Вы все с одного места где написано Moder Team, верить именно вам не надо мне. Я проверил этот мод и он лезит в интернет!

    Вы правду не скажите. В голове темы полно минусов, хотя мод просто отличный.

     

    Да откуда вы такие лезете?

    У меня полотенца уже закончились.

×
×
  • Create New...