Jump to content
Korean Random

Помогите найти виновника


Recommended Posts

5 часов назад, ADv сказал:

Как вычислить недостающую картинку?

Ищи запись в логе, указывающую на неё, с путём  C:\Games\World_of_Tanks\res_mods\...\....png.

Или как у автора темы:  WARNING: Image 'img://gui/maps/icons/library/proficiency/class_icons_0.png' wasn't created in ProcessImageTags

Edited by Arni Ex
Link to comment
Short link
Share on other sites

5 часов назад, Arni Ex сказал:

Ищи запись в логе, указывающую на неё, с путём  C:\Games\World_of_Tanks\res_mods\...\....png.

Или как у автора темы:  WARNING: Image 'img://gui/maps/icons/library/proficiency/class_icons_0.png' wasn't created in ProcessImageTags

Естественно, я искал. В логе нет указаний на то, что это за картинка.

 

 

python.log

Link to comment
Short link
Share on other sites

13 часов назад, ADv сказал:

Как вычислить недостающую картинку?

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

Link to comment
Short link
Share on other sites

1 час назад, Slava7572 сказал:

в тот же,что Буш выкладывал,впиши еще один пример

Так-то туда можно всё написать, но поиск в строке это лютейшая дичь в плане производительности. По нормальному, нужно сам объект выдернуть и лучше создающий эти десятки тысяч строк а не их потом фильтровать.

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

Завтра буду дома, попробую фиксануть типа нативно. А там и до омтального не  далеко.

  • Upvote 3
Link to comment
Short link
Share on other sites

16.02.2020 в 22:36, BornToKill_ сказал:

@lenyadish никаких тюнеров и твикеров не использую и точно так же питон завален такими ошибками. кстати, тс тоже говорил, что не юзает никакие проги для поднятия фпс.

Ну  в любом случае это результат 1.7.1, восстановление игры помогает

Меняет всего-то ничего )))

В основном иконки к игре

 

2020-02-18_01-24-57.png

Link to comment
Short link
Share on other sites

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

 

Такой вышел py_macro:

import BigWorld

from xfw.events import overrideStaticMethod
from xfw_actionscript.python import *
from xvm_main.python.logger import *

from helpers.EffectsList import EffectsListPlayer

@overrideStaticMethod(EffectsListPlayer, 'clear')
def _EffectsListPlayer_clear(base):
    import logging
    logging.getLogger('helpers').setLevel(logging.WARNING)
    from helpers.EffectsList import EffectsListPlayer
    base

Отличие от мода с предыдущей страницы — требование к процу умножено на ноль.

Картоха, в какой там, 1.7.1 просто добавила строку вывода кеша эффектов (или хз че это) в лог. Только вывод в лог, вся логика осталась неизменна. Предыдущий мод вынюхивал эти строки, десятки тысяч строк после каждого боя, и тупо их отбрасывал. Этот паймакро вырубает логировалку, но только внутри этой функции (надеюсь на это, влом проверять на верочку) ну и та картохина строка вывода в лог тупо игнорится.

Если че, моя хата с краю, про питон вчера узнал )

 

Ох поповозился с этим последним base. ПИсал base() по шаблону с других скриптов и трейс мне втюхивает чтобы давал ему экземпляр вместо класса а то нотколейбл.

 

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

  • Upvote 3
Link to comment
Short link
Share on other sites

3 часа назад, BuSH сказал:

Такой вышел py_macro

Трудно сказать по производительности,с большим запасом у меня,но работает,вместо прошлого поставил.

Link to comment
Short link
Share on other sites

6 часов назад, BuSH сказал:

Ох поповозился с этим последним base. ПИсал base() по шаблону с других скриптов и трейс мне втюхивает чтобы давал ему экземпляр вместо класса а то нотколейбл.

Может надо было так:

@overrideStaticMethod(EffectsListPlayer, 'clear')
def _EffectsListPlayer_clear(base, cls):
    import logging
    logging.getLogger('helpers').setLevel(logging.WARNING)
    from helpers.EffectsList import EffectsListPlayer
    base()

?

 

И импорты лучше убрать из функции. Особенно, если функция часто вызывается.

 

P.S. это я попутал с @classmetod.

Edited by ktulho
Link to comment
Short link
Share on other sites

8 часов назад, BuSH сказал:

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

 

Такой вышел py_macro:


import BigWorld

from xfw.events import overrideStaticMethod
from xfw_actionscript.python import *
from xvm_main.python.logger import *

from helpers.EffectsList import EffectsListPlayer

@overrideStaticMethod(EffectsListPlayer, 'clear')
def _EffectsListPlayer_clear(base):
    import logging
    logging.getLogger('helpers').setLevel(logging.WARNING)
    from helpers.EffectsList import EffectsListPlayer
    base

 

Я правильно понял? 

В 

\res_mods\configs\xvm\py_macro\mod_effectlist_cleaner_macro.py

?

mod_effectlist_cleaner_macro.py

Edited by ADv
Link to comment
Short link
Share on other sites

15 часов назад, ktulho сказал:

Может надо было так:

Это ты знаешь как надо, а в моей ситуации надо так, как заработает ).  Я частенько имею дело с разными языками, но только в процедурке. ООП для меня открытие.

 

По импортам... Нашёл мануал по logger, отключать его можно только с корня, который ещё узнать надо и в каком-то примере нашёл такой-то подход, Переключил логлевел там от куда пришёл а потом вкинул поверх необходимый модуль на нужный уровень. Именно такой подход позволяет тупо скипать ту строку.

 

11 часов назад, justdj сказал:

EffectsList.LOG_WARNING = lambda *_, **__: None

Ещё бы въехать куда это ты её завернул...

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

Link to comment
Short link
Share on other sites

@ktulho видать ты не понял о чем я...
ВОт он для EffectsList.LOG_WARNING присвоил другое значение. Когда game.py вызовет этот метод clear(). Куда будет ломится та переменная с таким-то значением? Такой был вопрос, но его гуглонуть уже давно было проще чем...

Upd.

И это... Сорян за сарказм, но когда народ в панике, не может ни норм поиграть без перезапусков клиента постоянных, ни помутить дичи всякой так как орион после 2-3 боя складывался от напора в лог. А когда челядь пошла рыться в неизвестности в поисках спасения, дак врыв с фразами типа "та тут изи".

Edited by BuSH
Link to comment
Short link
Share on other sites

16 минут назад, BuSH сказал:

Куда будет ломится та переменная с таким-то значением?

Видимо в lambda *_, **__: None, и функция всегда будет возвращать None. 

 

 

32 минуты назад, BuSH сказал:

Сорян за сарказм, но когда народ в панике, не может ни норм поиграть без перезапусков клиента постоянных, ни помутить дичи всякой так как орион после 2-3 боя складывался от напора в лог. А когда челядь пошла рыться в неизвестности в поисках спасения, дак врыв с фразами типа "та тут изи".

 Я давно не играю, и в данной теме меня заинтересовало, только @overrideStaticMethod. Мне ещё не приходилось его использовать.

 

Link to comment
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...