Jump to content
Korean Random
DemouN

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

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

Share this post


Link to post

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

Share this post


Link to post

Short link
Share on other sites
13 часов назад, ADv сказал:

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

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

Share this post


Link to post

Short link
Share on other sites

@Slava7572 там же такая фигня /.png и никаккую пустышку не воткнёшь, это скрипт надо мастерить, чтобы эту простынь закрыть, тут один обещал, но, видимо, руки так и не дошли.

Share this post


Link to post

Short link
Share on other sites
28 минут назад, sergbodr сказал:

это скрипт надо мастерить

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

Share this post


Link to post

Short link
Share on other sites
2 часа назад, sergbodr сказал:

никаккую пустышку не воткнёшь

 

Edited by Arni Ex

Share this post


Link to post

Short link
Share on other sites
1 час назад, Slava7572 сказал:

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

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

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

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

  • Upvote 3

Share this post


Link to post

Short link
Share on other sites

результат ошибки у тс - однозначно использование wg tunera - у меня просто то же самое (((

Share this post


Link to post

Short link
Share on other sites

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

Share this post


Link to post

Short link
Share on other sites
16.02.2020 в 22:36, BornToKill_ сказал:

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

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

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

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

 

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

Share this post


Link to post

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

Share this post


Link to post

Short link
Share on other sites
3 часа назад, BuSH сказал:

Такой вышел py_macro

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

Share this post


Link to post

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

Share this post


Link to post

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

Share this post


Link to post

Short link
Share on other sites
from helpers import EffectsList

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

А Юра говорит не надо изобретать велосипед и вот так работает

Share this post


Link to post

Short link
Share on other sites
15 часов назад, ktulho сказал:

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

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

 

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

 

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

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

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

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

Share this post


Link to post

Short link
Share on other sites
8 минут назад, BuSH сказал:

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

Вроде не надо ни куда заворачивать. Должно быть достаточно этих двух строк.

Share this post


Link to post

Short link
Share on other sites

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

Upd.

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

Edited by BuSH

Share this post


Link to post

Short link
Share on other sites

Товарищи, объясните оленю, куда его ставить и нужно ли убирать предыдущий вариант?

Share this post


Link to post

Short link
Share on other sites
16 минут назад, BuSH сказал:

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

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

 

 

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

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

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

 

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.

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