Jump to content
Korean Random
GPCracker

Маркеры направления орудий на миникарте / Minimap Gun Markers

Recommended Posts

Нужно маркеры отдебажить, остальное потом.

Стрелки у противников отображаются)

post-16296-0-37537200-1469365397_thumb.jpg

Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

Стрелки у противников отображаются)

Скрин в студию можно?

Ооо, уже годно)

Ща будем копать как указки отключить. Не, точнее я знаю, что нужно вызвать, теперь нужно понять как.

Edited by GPCracker

Share this post


Link to post

Short link
Share on other sites

А с союзниками что?

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

Ну точнее показывает для кого настроишь...

Если ты про "будет ли работать для..." - будет для кого сделаешь. Там пофигу вообще. Матрих провайдер правильный покажи и работать будет :)

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

Edited by GPCracker

Share this post


Link to post

Short link
Share on other sites

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

Ну точнее показывает для кого настроишь...

Да я просто увидел tag ally и подумал, что союзники, а там ally + SPG оказывается)

 

на выходе из реплея клиент крашится.

Exception AttributeError: "'NoneType' object has no attribute 'containerManager'" in <bound method MinimapEntry.__del__ of <gui.mods.mod_MinimapGunMarkers.MinimapEntry object at 0x32B8E910>> ignored
Надо проверять g_appLoader.getDefBattleApp() на None Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

Ща будем копать как указки отключить. Не, точнее я знаю, что нужно вызвать, теперь нужно понять как.

Так убрать её с символа камеры и всё.

self.__minimapEntryManager.addEntry(vehicleID, settings.ENTRY_SYMBOL_NAME.ARCADE_CAMERA, settings.CONTAINER_NAME.PERSONAL, combinedMP, True)
self.__minimapEntryManager.getEntry(vehicleID).invoke('hideDirectionLine')

И startVisual для союзников в начале боя вызывается раньше, чем создается компонент миникарты, поэтому не взлетит, а для противников уже работать будет.

Share this post


Link to post

Short link
Share on other sites

на выходе из реплея клиент крашится.

На выходе из реплея он и так выходит... А то что исключение в __del__ - они игнорятся, и это прям написано. Забей, главное чтобы реальных вылетов не было.

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

Эта тестовая версия, и работает некорректно, нужна рабочая - ищите ниже.

MinimapGunMarkers_0.9.15.1CT_alpha_#3.zip

self.__minimapEntryManager.getEntry(vehicleID).invoke('hideDirectionLine')

Уже вкурил :)

@Polar Fox, вы там наверное уже этот мод вдоль и поперек выучили :)

И startVisual для союзников в начале боя вызывается раньше, чем создается компонент миникарты

Там по-нормальному фиксить надо, и переделывать половину (давно уже собираюсь, только руки не доходят), пока пытаемся пофиксить как-нибудь. Edited by GPCracker

Share this post


Link to post

Short link
Share on other sites

 

 

Polar Fox, вы там наверное уже этот мод вдоль и поперек выучили :)
 

 

Скорее - наступал на те же грабли)

Share this post


Link to post

Short link
Share on other sites

В бой не пустило:

2016-07-24 16:23:13.243: ERROR: Traceback (most recent call last):
2016-07-24 16:23:13.244: ERROR:   File "scripts/client/gui/battle_control/arena_info/listeners.py", line 479, in __loadSpaceCallback
2016-07-24 16:23:13.244: ERROR:   File "scripts/client/gui/battle_control/arena_info/listeners.py", line 514, in __onSpaceLoadCompleted
2016-07-24 16:23:13.244: ERROR:   File "scripts/client/gui/battle_control/arena_info/listeners.py", line 102, in _invokeListenersMethod
2016-07-24 16:23:13.244: ERROR:   File "scripts/client/gui/battle_control/controllers/arena_load_ctrl.py", line 28, in spaceLoadCompleted
2016-07-24 16:23:13.244: ERROR:   File "scripts/client/Avatar.py", line 684, in onSpaceLoaded
2016-07-24 16:23:13.244: ERROR:   File "scripts/client/Avatar.py", line 2751, in __onInitStepCompleted
2016-07-24 16:23:13.244: ERROR:   File "scripts/client/Avatar.py", line 1251, in __startVehicleVisual
2016-07-24 16:23:13.244: ERROR:   File "MinimapGunMarkers.py", line 751, in new_Vehicle_startVisual
2016-07-24 16:23:13.244: ERROR:   File "MinimapGunMarkers.py", line 654, in onVehicleStart
2016-07-24 16:23:13.244: ERROR:   File "MinimapGunMarkers.py", line 703, in __updateMarkers
2016-07-24 16:23:13.244: ERROR:   File "MinimapGunMarkers.py", line 689, in __addVehicleGunMarker
2016-07-24 16:23:13.244: ERROR:   File "MinimapGunMarkers.py", line 481, in addEntry
2016-07-24 16:23:13.244: ERROR:   File "MinimapGunMarkers.py", line 459, in __init__
2016-07-24 16:23:13.244: ERROR:   File "MinimapGunMarkers.py", line 456, in getMinimapComponent
2016-07-24 16:23:13.244: ERROR: AttributeError: 'NoneType' object has no attribute 'getContainer'
2016-07-24 16:23:13.244: ERROR: Exception AttributeError: "'NoneType' object has no attribute 'getContainer'" in <bound method MinimapEntry.__del__ of <gui.mods.mod_MinimapGunMarkers.MinimapEntry object at 0x3B09E050>> ignored
Странно, но меня ни в бой, ни в реплеи не пускает. Сразу краш с такой ошибкой. Версия #3. Клиент 0.9.15.1CT.

 

Стрелки у противников отображаются)

У тебя, судя по никам над танками, не CT. Edited by AtotIK

Share this post


Link to post

Short link
Share on other sites

В бой не пустило:

Ну понятно

И startVisual для союзников в начале боя вызывается раньше, чем создается компонент миникарты, поэтому не взлетит, а для противников уже работать будет.

Как вариант можно мягко пропустить, а потом просто релоад сделать.

Как вариант можно мягко пропустить, а потом просто релоад сделать.

Или просто отключить для союзников, тогда проблема как-бы решается.

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

Share this post


Link to post

Short link
Share on other sites

подписаться на событие регистрации миникарты и после этого делать релоад норм же)

Share this post


Link to post

Short link
Share on other sites

Или просто отключить для союзников, тогда проблема как-бы решается.

 

Или засунуть на время до переделки костыль типа такого. В теории должно работать для всех.

mod_MinimapGunMarkers.rar

Edited by Polar Fox

Share this post


Link to post

Short link
Share on other sites

Или засунуть на время до переделки костыль типа такого. В теории должно работать для всех.

2016-07-24 17:21:21.653: ERROR: NameError: global name 'g_appLoader' is not defined

Share this post


Link to post

Short link
Share on other sites

подписаться на событие регистрации миникарты

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

Ну тоже вариант.

Только там утечка будет. Нада пофиксить. Ща запилю :)

 

Надеюсь, на этот раз взлетит нормально, а то я чет уже устал это фиксить.

Эта тестовая версия, и работает некорректно, нужна рабочая - ищите ниже.

MinimapGunMarkers_0.9.15.1CT_alpha_#4.zip

Заюзал немного подсказок от @Polar Fox

Edited by GPCracker

Share this post


Link to post

Short link
Share on other sites
2016-07-24 17:21:21.653: ERROR: NameError: global name 'g_appLoader' is not defined

 

Поправил в сообщении выше (не заметил что эти импорты только внутри функций).

Edited by Polar Fox

Share this post


Link to post

Short link
Share on other sites

#4 работает уже. Это радует.

Однако в лог сыпет тонной:

2016-07-24 17:59:08.469: ERROR: Exception AttributeError: "'NoneType' object has no attribute 'getContainer'" in <bound method MinimapEntry.__del__ of <gui.mods.mod_MinimapGunMarkers.MinimapEntry object at 0x16452090>> ignored

Цифры в object at всегда разные.

И вот это:

2016-07-24 18:01:22.765: ERROR: Traceback (most recent call last):
2016-07-24 18:01:22.765: ERROR:   File "scripts/client/gui/Scaleform/framework/entities/BaseDAAPIComponent.py", line 56, in registerFlashComponent
2016-07-24 18:01:22.765: ERROR:   File "scripts/client/gui/Scaleform/framework/entities/BaseDAAPIComponent.py", line 112, in __fireRegisteringEvent
2016-07-24 18:01:22.765: ERROR:   File "scripts/client/gui/shared/event_bus.py", line 42, in handleEvent
2016-07-24 18:01:22.765: ERROR:   File "MinimapGunMarkers.py", line 650, in __onComponentRegistered
2016-07-24 18:01:22.766: ERROR: ReferenceError: weakly-referenced object no longer exists
Edited by AtotIK

Share this post


Link to post

Short link
Share on other sites

ReferenceError: weakly-referenced object no longer exists

В __del__ нужно было добавить g_eventBus.removeListener(events.ComponentEvent.COMPONENT_REGISTERED, self.__onComponentRegistered) Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

Однако в лог сыпет тонной

Это потому что поменяли порядок деструкции. Могу впилить try/except, если тебе от этого станет легче. Это исключение все равно игнорится, там же написано.

И вот это:

А вот это называется защита от утечки памяти. Я заюзал слабую ссылку, чтобы объект нормально уничтожался при выходе из боя. И он уничтожается. Потому (я так полагаю, ты поймал это во втором бою) и вылетает такая ошибка.

Если его оттуда не прибрать - будет двойная обработка и утечка памяти. Надо будет добавить удаление колобка из ивента. В принципе проксю можно и у класса сохранить.

В __del__ нужно было добавить g_eventBus.removeListener(events.ComponentEvent.COMPONENT_REGISTERED, self.__onComponentRegistered)

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

Но начет удаления колобка - я уже написал (точнее писал пока ты свой пост писал).

Нужно больше костылей, посоны!

Edited by GPCracker

Share this post


Link to post

Short link
Share on other sites

@GPCracker, а просто убрать из лога это можно? Что бы не какало тоннами.

 

Вроде бы стрелки рисовались раньше под иконкой класса техники? В принципе всё равно.

ntRsx7U.jpg

Edited by AtotIK

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...