Sib78 0 Posted June 26, 2017 (edited) Здравствуйте уважаемые форумчане! Поставил перед собой задачу вывести в консоль питона из World Of Tanks значение переменной , но чувствую что не по зубам задачка , хотя с виду простая. Пример: import BigWorld import sys reload(sys) sys.setdefaultencoding('utf-8') print 'Hello' Но сообщение выводится только после закрытия А в идеале хочу вот так сделать: 'Код' import BigWorld import sys from gui import SystemMessages from Account import Account Var = 'Hello User!!!': link = Account.onBecomePlayer def _First(self): link(self) msg = 'Var' type = SystemMessages.SM_TYPE.Information SystemMessages.pushMessage(msg, type) Account.onBecomePlayer = link Account.onBecomePlayer = _First И если загрузился мод то сразу сообщение в консоль: sys.setdefaultencoding('utf-8') print 'Var' Уже несколько дней терзаю гугл и свой мозг)) Не работает... Уважаемые Гуру форума, буду признателен за любую адекватную критику и полезные ссылки. Edited June 26, 2017 by Sib78 Quote Share this post Link to post Short link Share on other sites
sirmax 5,499 #396154 Posted June 26, 2017 import BigWorld def _autoFlushPythonLog(): BigWorld.flushPythonLog() BigWorld.callback(0.1, _autoFlushPythonLog) _autoFlushPythonLog() 1 Quote Share this post Link to post Short link Share on other sites
Sib78 0 #396155 Posted June 26, 2017 import BigWorld def _autoFlushPythonLog(): BigWorld.flushPythonLog() BigWorld.callback(0.1, _autoFlushPythonLog) _autoFlushPythonLog() Скажите я правильно понял _autoFlushPythonLog(Var) выведет переменную в консоль? Quote Share this post Link to post Short link Share on other sites
sirmax 5,499 #396183 Posted June 26, 2017 Нет Это был ответ на вопрос "Но сообщение выводится только после закрытия" Quote Share this post Link to post Short link Share on other sites
Sib78 0 #396190 Posted June 26, 2017 (edited) Нет Это был ответ на вопрос "Но сообщение выводится только после закрытия" Спасибо огромное за оперативную помощь и за то что откликнулись, сложновато для меня как для начинающего.. Возможно через сокеты будет по проще организовать обмен данными.. Edited June 26, 2017 by Sib78 Quote Share this post Link to post Short link Share on other sites
Serfer_78 2 #401489 Posted August 24, 2017 import BigWorld def _autoFlushPythonLog(): BigWorld.flushPythonLog() BigWorld.callback(0.1, _autoFlushPythonLog) _autoFlushPythonLog() Хук логов с обновлением через 1 десятую секунды в цикле))) Оказалось что ларчик просто открывался нужно было : import BigWorld import sys from gui import SystemMessages from Account import Account Var = 'Hello User!!!': link = Account.onBecomePlayer def _First(self): link(self) msg = 'Var' type = SystemMessages.SM_TYPE.Information SystemMessages.pushMessage(msg, type) print 'Сообщение' Account.onBecomePlayer = link Account.onBecomePlayer = _First Quote Share this post Link to post Short link Share on other sites
sirmax 5,499 #401500 Posted August 24, 2017 Это ВГшный код :) Твой вариант слишком тяжелый, если нужно много логов. UPD: Только сейчас понял, что вы "консолью" называете системный канал. Или нет... Что за консоль-то? Quote Share this post Link to post Short link Share on other sites
Serfer_78 2 #401527 Posted August 24, 2017 (edited) Это ВГшный код :) Твой вариант слишком тяжелый, если нужно много логов. UPD: Только сейчас понял, что вы "консолью" называете системный канал. Или нет... Что за консоль-то? Совершенно верно , видимо я не правильно выразился, назвал консолью системный канал, изначально хотел отправлять в него события из ангара во внешнее приложение... Но решил не извращаться и запилил это дело на UDP сокетах , получилось гораздо эффективнее) А код действительно картофельный) PS: Отвечу на свой вопрос)) Есть переменная var = 5 Вывод в строковом виде... print('Per = %s' % var) Результат : 2017-08-28 22:34:44.805: INFO: 5 Edited August 29, 2017 by Serfer_78 Quote Share this post Link to post Short link Share on other sites