anatoly999 Posted May 29, 2016 Share Posted May 29, 2016 (edited) разве в "x" оно работает?Проверил - точно, не работает. До этого не проверял, просто предположил. Тогда действительно хотелось бы посмотреть, как ты реализовал это. В питоне не шарю, хотелось бы разобраться как оно работает на конкретных примерах. Edited May 29, 2016 by neLeax @ Quote Link to comment Short link Share on other sites More sharing options...
goodman Posted May 29, 2016 Author Share Posted May 29, 2016 не стоит трогать дефолтные файлы, лучше свой создавать я так и поступил, для верности ещё и функции переобозвал по своему :) 1 @ Quote Link to comment Short link Share on other sites More sharing options...
yan-polonov Posted May 29, 2016 Share Posted May 29, 2016 (edited) Вспомнилось мне тут одно обсужденьице... Прикольно выглядит, но думаю не для повседневных боев, там что нибудь для записи видео или стрима Edited May 29, 2016 by yan-polonov @ Quote Link to comment Short link Share on other sites More sharing options...
seriych Posted May 29, 2016 Share Posted May 29, 2016 (edited) Проверил - точно, не работает.Уфф, обрадовал, а то я уж подумал, что зря столько мучился.Я дописываю неразрывные пробелы перед или после поля с текстом/картинкой, количество которых пропорционально разнице в HP. #kanat.py: @xvm.export('diff_hp_pic') def diff_hp_pic(a, b): st = '<img src="xvm://res/icons/kanat.png">' return full_string(a, b, st) @xvm.export('diff_hp') def diff_hp(a, b): st = '{{py:xvm.total_hp.text()}}' return full_string(a, b, st) def full_string(a, b, st1): st2 = '<font size="4" face="$FieldFont" alpha="#00">' + (' ' * int(450*abs(a - b)/max(a, b))) + '</font>' if b > a: st1, st2 = st2, st1 return st1 + st2 // battleLabelsTemplates.xc: "totalHP": { "enabled": true, "updateEvent": "ON_PLAYERS_HP_CHANGED", "x": 0, "y": 36, "width": 500, "height": 150, "autoSize": "center", "align": "center", "shadow": { "distance": 1, "angle": 90, "alpha": 80, "blur": 5, "strength": 4 }, "currentFieldDefaultStyle": { "color": "0xF4EFE8", "size": 15 }, "format": "{{py:diff_hp({{py:xvm.total_hp.ally()}},{{py:xvm.total_hp.enemy()}})}}" }, "totalHPpic": { "$ref": { "path": "def.totalHP"}, "y": 10, "format": "{{py:diff_hp_pic({{py:xvm.total_hp.ally()}},{{py:xvm.total_hp.enemy()}})}}" }, // battleLabels.xc: ${ "battleLabelsTemplates.xc":"def.totalHPpic" }, ${ "battleLabelsTemplates.xc":"def.totalHP" }, Для подобных вопросов надо бы раздел запилитьУгадай, кто там будет отвечать:-) Почему код выше работает, а если сделать так, то нет: тык @xvm.export('diff_hp') def diff_hp(): st = '{{py:xvm.total_hp.text()}}' return full_string(st) @xvm.export('diff_hp_pic') def diff_hp_pic(): st = '<img src="xvm://res/icons/kanat.png">' return full_string(st) def full_string(st1): import xvm_battle.python.fragCorrelationPanel as panel a = panel.teams_totalhp[0] b = panel.teams_totalhp[1] st2 = '<font size="12" alpha="#00">' + (' ' * int(100*abs(a - b)/max(a, b))) + '</font>' if b > a: st1, st2 = st2, st1 return st1 + st2 diff_hp() работает, а diff_hp_pic() выдает в начале правильный результат, но с течением боя результат не меняется. Разобрался: http://www.koreanrandom.com/forum/topic/31856-totalhp/?do=findComment&comment=329924 И как из .xc файла передать в питон строковый аргумент со спецсимволами. Например, те же '{{py:xvm.total_hp.text()}}' или '<img src="xvm://res/icons/kanat.png">'? Edited May 29, 2016 by seriych 1 @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted May 29, 2016 Share Posted May 29, 2016 (edited) наверное, не стоит трогать дефолтные файлы, лучше свой создавать, ибо если человек будут несколько конфигов пробовать, у него проблемы будут. В идеале грузить питон непосредственно из .xc файла конфига, но хз можно ли это по-нормальному сделать абсолютно верно. лучше вообще папку для своих макросов создать, как и в случае с конфигом UPD: подпапки не работают. Edited May 29, 2016 by sirmax @ Quote Link to comment Short link Share on other sites More sharing options...
Kapany3uk Posted May 29, 2016 Share Posted May 29, 2016 (edited) абсолютно верно. лучше вообще папку для своих макросов создать, как и в случае с конфигом а как назначить путь к своей папке? или имеется ввиду /xvm/py-macro/...(folder)...? просто хотелось бы вынести папку с .py файлами за пределы xvm/py_macro, как минимум внедрить в папку с .хс конфигом... Может по типу пути к иконке 6-го чувства и/или пути к иконкам кланов сделать настраиваемый параметр в battle.xc? Edited May 29, 2016 by Kapany3uk @ Quote Link to comment Short link Share on other sites More sharing options...
seriych Posted May 29, 2016 Share Posted May 29, 2016 или имеется ввиду /xvm/py-macro/...(folder)...? да @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted May 29, 2016 Share Posted May 29, 2016 (edited) просто хотелось бы вынести папку с .py файлами за пределы xvm/py_macro, как минимум внедрить в папку с .хс конфигом... Может по типу пути к иконке 6-го чувства и/или пути к иконкам кланов сделать настраиваемый параметр в battle.xc? Нельзя. Макросы грузятся исключительно из res_mods\configs\xvm\py_macro\ и подпапок, из-за соображений безопасности, а так же чтобы избежать конфликтов. Кстати, поддиректории тоже не поддерживаются сейчас, чтобы исключить конфликты экспорта в разных папках. Так что рекомендую делать префикс в названии файлов для своих макросов. Edited May 29, 2016 by sirmax @ Quote Link to comment Short link Share on other sites More sharing options...
seriych Posted May 29, 2016 Share Posted May 29, 2016 Почему код выше работает, а если сделать так, то нет:Ага, понял, "deterministic=True" по умолчанию прописали. Это для производительности надо? Иначе непонятно, зачем @neLeax, Соответственно, можно упростить: #kanat.py: import xvm_battle.python.fragCorrelationPanel as panel @xvm.export('diff_hp', deterministic=False) def diff_hp(): st = '{{py:xvm.total_hp.text()}}' return full_string(st) @xvm.export('diff_hp_pic', deterministic=False) def diff_hp_pic(): st = '<img src="xvm://res/icons/kanat.png">' return full_string(st) def full_string(st1): a = panel.teams_totalhp[0] b = panel.teams_totalhp[1] st2 = '<font size="4" alpha="#00">' + (' ' * int(450*abs(a - b)/max(a, b))) + '</font>' if b > a: st1, st2 = st2, st1 return st1 + st2 "totalHP": { "enabled": true, "updateEvent": "ON_PLAYERS_HP_CHANGED", "x": 0, "y": 36, "width": 500, "height": 150, "autoSize": "center", "align": "center", "shadow": { "distance": 1, "angle": 90, "alpha": 80, "blur": 5, "strength": 4 }, "currentFieldDefaultStyle": { "color": "0xF4EFE8", "size": 15 }, "format": "{{py:diff_hp()}}" }, "totalHPpic": { "$ref": { "path": "def.totalHP"}, "y": 10, "format": "{{py:diff_hp_pic()}}" }, // battleLabels.xc: ${ "battleLabelsTemplates.xc":"def.totalHPpic" }, ${ "battleLabelsTemplates.xc":"def.totalHP" }, 1 @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted May 29, 2016 Share Posted May 29, 2016 По умолчанию методы детерминированные, если значение может изменяться при тех же аргументах, то функция недетерминированная, и нужно это явно указать в методе. Это соответствует статическим и динамическим макросам. Статические быстрее, так как только раз вычисляются. @ Quote Link to comment Short link Share on other sites More sharing options...
yan-polonov Posted May 29, 2016 Share Posted May 29, 2016 (edited) *** > delete < *** Edited June 2, 2016 by yan-polonov @ Quote Link to comment Short link Share on other sites More sharing options...
wotunion Posted May 29, 2016 Share Posted May 29, 2016 Кстати, макросы на тоталхп и цвет по той самой формуле,что обсуждали, у меня готовые лежат, ждут поддержки импорта модулей в реализации py-макросов @ Quote Link to comment Short link Share on other sites More sharing options...
goodman Posted May 29, 2016 Author Share Posted May 29, 2016 Кстати, макросы на тоталхп и цвет по той самой формуле,что обсуждали, у меня готовые лежат, ждут поддержки импорта модулей в реализации py-макросов так включайся в тему, всё уже работает @ Quote Link to comment Short link Share on other sites More sharing options...
wotunion Posted May 29, 2016 Share Posted May 29, 2016 Что-то пропустил, я мало читал, с какой сборки? А, нашел, позавчера, ну тогда втопку @ Quote Link to comment Short link Share on other sites More sharing options...
demon2597 Posted May 29, 2016 Share Posted May 29, 2016 @wotunion, тени в полях карусели в диапазоне 0-100 когда ожидать?) @ Quote Link to comment Short link Share on other sites More sharing options...
wotunion Posted May 29, 2016 Share Posted May 29, 2016 (edited) @wotunion, тени в полях карусели в диапазоне 0-100 когда ожидать?) Сори, как время будет, занят еще, на форум и то на 2 мин захожу Upd.Хотя имплементация цвета совершенно не такая, какую обсуждали, остались градиенты Edited May 29, 2016 by wotunion @ Quote Link to comment Short link Share on other sites More sharing options...
demon2597 Posted May 29, 2016 Share Posted May 29, 2016 Хотя имплементация цвета совершенно не такая, какую обсуждали, остались градиенты а обсуждали чего, цветовые дипазоны в зависимости от разницы? а по мне вроде с градиентом хорошо, мне нравится @ Quote Link to comment Short link Share on other sites More sharing options...
wotunion Posted May 29, 2016 Share Posted May 29, 2016 а обсуждали чего, цветовые дипазоны в зависимости от разницы? а по мне вроде с градиентом хорошо, мне нравится Да @ Quote Link to comment Short link Share on other sites More sharing options...
anatoly999 Posted May 29, 2016 Share Posted May 29, 2016 (edited) @seriych, Спасибо, более-менее стал понимать как это все работает.Теперь не могу дойти до того, как вывести значение прочности команд на начало боя. На предыдущей странице говорилось, что для этого нужно задать глобальную переменную, все не пойму, как конкретно это сделать.И еще, можно ли с помощью питона выцепить нанесенный урон из хитлога? Хочу в дальнейшем прикрутить динамический расчет оставшегося урона до основного калибра. На сколько я понял, нужно в каком-то из этих файлов искать. Пока вот так получается. На расположение элементов не смотреть, все выведено на первые попавшиеся места. Edited May 29, 2016 by neLeax @ Quote Link to comment Short link Share on other sites More sharing options...
seriych Posted May 29, 2016 Share Posted May 29, 2016 Теперь не могу дойти до того, как вывести значение прочности команд на начало боя. На предыдущей странице говорилось, что для этого нужно задать глобальную переменную, все не пойму, как конкретно это сделать. А я сам не знаю, как это правильно сделать. Первое что пришло в голову сработало: import xvm_battle.python.fragCorrelationPanel as panel @xvm.export('thp') def total_hp_string(): try: type(total_hp_start) except: global total_hp_start, A, B A = panel.teams_totalhp[0] B = panel.teams_totalhp[1] total_hp_start = A + B #blablabla но может как-то адекватнее можно без проверки try type() @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
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.