ktulho 5,790 #378634 Posted February 5, 2017 (edited) - круг разлета осколков (для классического арт-прицела, для БА - не уверен) текущего фугаса , добавил пузырь разлета осколков. Edited February 5, 2017 by ktulho 9 Quote Share this post Link to post Short link Share on other sites
vlad_cs_sr 1,575 #378636 Posted February 5, 2017 Круть) Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #378663 Posted February 5, 2017 Исправил ошибку. Quote Share this post Link to post Short link Share on other sites
fgcwsxjegcbk2014 34 #378720 Posted February 6, 2017 (edited) , добавил пузырь разлета осколков. shot_073.jpg shot_072.jpg на ЛТ с фугасницей как сделать чтобы все ограничивалось только артой ? Edited February 6, 2017 by fgcwsxjegcbk2014 Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #378726 Posted February 6, 2017 (edited) как сделать чтобы все ограничивалось только артой ? , надо конфиг делать. Кстати, если хотите изменить цвет или прозрачность "пузыря", то редактируем файл half_transparent.dds и копируем его в \res_mods\0.9.17.0.3\objects\misc\ half_transparent.rar Edited February 6, 2017 by ktulho 1 Quote Share this post Link to post Short link Share on other sites
refaol 223 #378732 Posted February 6, 2017 как сделать чтобы все ограничивалось только артой ? например, так: "alpha": "{{py:sight.cameraMode=str?0|100}}", Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #378741 Posted February 6, 2017 например, так: , это не поможет. Quote Share this post Link to post Short link Share on other sites
Kapany3uk 948 #378758 Posted February 6, 2017 , это не поможет. напрашивается макрос определения типа техники :)) Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #378900 Posted February 8, 2017 (edited) Добавил макросы для динамического изменение цвета. Так как, существует не один способ перейти от одного цвета к другому, я сделал шесть макросов: {{sight.dynamic_colorRGB(color_100, color_0, percent, maximum)}} {{sight.dynamic_colorRBG(color_100, color_0, percent, maximum)}} {{sight.dynamic_colorGRB(color_100, color_0, percent, maximum)}} {{sight.dynamic_colorGBR(color_100, color_0, percent, maximum)}} {{sight.dynamic_colorBRG(color_100, color_0, percent, maximum)}} {{sight.dynamic_colorBGR(color_100, color_0, percent, maximum)}} color_100 - цвет, возвращаемый, если percent == maximum; color_0 - цвет, возвращаемый, если percent == 0; percent - значение от 0 до maximum; maximum - максимально значение percent, если параметр не указан, то он равен 100. Макросы возвращают цвет в шестнадцатеричной системе, например "FF00FF" 'Пример' "healthBar": { "enabled": true, "updateEvent": "PY(ON_PLAYER_HEALTH), PY(ON_CAMERA_MODE)", // "scaleX": -1, "x": 160, "y": "{{py:math.sum({{py:sight.sight_y}}, 92)}}", "rotation": 9, // "borderColor": "0x000000", "width": 85, "height": 80, "screenHAlign": "center", "screenVAlign": "center", "alpha" : "{{py:sight.cameraMode=arc?80|0}}", "shadow": { "distance": 3, "angle": 315, "alpha": 70, "blur": 1.5, "strength": 4 }, "textFormat": { "color": "0x{{py:sight.dynamic_colorGRB(0x57CAFF, 0xFF0000, {{py:sight.health(100)}})}}" }, "format": "<font face='dynamic2' size='80'>{{py:sight.health(100)%.335a}}</font>" }, Данные макросы будут работать только с последней версией ночников XVM для клиента 0.9.17.0 (build 7139) Скрипт: sight.rar Для облегчения выбора нужного вам макроса, накидал программку. Программа показывает, как будет менять цвет тот или иной макрос. Color.rar Edited February 8, 2017 by ktulho 4 Quote Share this post Link to post Short link Share on other sites
Kapany3uk 948 #378903 Posted February 8, 2017 Добавил макросы для динамического изменение цвета. Здорово!можно чуть расширенную версию? если мне, к примеру, нужно будет менять цвет в заданных диапазонах процентов от 50 до 95% (и не в прицеле :)) чтобы выглядело как-то так: {{py:sight.dynamic_colorGRB(0x00FFFF, 0xFF0000, {{macro}}, 50, 95)}} Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #378904 Posted February 8, 2017 (edited) Здорово! можно чуть расширенную версию? если мне, к примеру, нужно будет менять цвет в заданных диапазонах процентов от 50 до 95% (и не в прицеле :)) чтобы выглядело как-то так: {{py:sight.dynamic_colorGRB(0x00FFFF, 0xFF0000, {{macro}}, 50, 95)}} А так не получится? {{py:sight.dynamic_colorGRB(0x00FFFF, 0xFF0000, {{math.sub({{macro}} , 50)}}, 45)}} Edited February 8, 2017 by ktulho Quote Share this post Link to post Short link Share on other sites
Kapany3uk 948 #378905 Posted February 8, 2017 (edited) А так не получится? {{py:sight.dynamic_colorGRB(0x00FFFF, 0xFF0000, {{math.sub({{macro}} , 50)}}, 45)}} хз. надо попробовать. '?' я не понял, что с maximum, почему не 95, а 45 (50+45)? что-то с математикой у меня не ладно в предложенном: если {{macro}} принимает значения от 0 до 100, при которых нам надо взять диапазон от 50 до 95, то иначе как задать пороговые значения в скрипте у меня никак не выходит - ведь при math.sub мы всего лишь сдвигаем исходный диапазон 0-100 до 50-150, нет? 'UPD' делал себе динамическую окраску для соотношения сил команд на базе окраски ХП из xvm_battle.python.fragCorrelationPanel по типу # Addons: "dynamic coloring" based on "xvm.colors/totalHp" def isfloat(value): try: float(value) return True except ValueError: return False maxRatio = 95 minRatio = 65 def dynColoring(ally, enemy): if not isfloat(ally) or not isfloat(enemy): return '' a = 100. * float(ally) + 0.01 e = 100. * float(enemy) + 0.01 if a < e: ratio = max(min((100. * a / e - minRatio) / (maxRatio - minRatio), 1), 0) color = panel.color_gradient(panel.hp_colors['neutral'], panel.hp_colors['bad'], ratio) sign = '<' elif a > e: ratio = max(min((100. * e / a - minRatio) / (maxRatio - minRatio), 1), 0) color = panel.color_gradient(panel.hp_colors['neutral'], panel.hp_colors['good'], ratio) sign = '>' else: color = panel.color_gradient(panel.hp_colors['neutral'], panel.hp_colors['neutral'], 1) sign = '=' value = '<font color="#{}">{}{}{}</font>'.format(color, ally, sign, enemy) return value вдруг показалось, что ты хотел добавить что-то подобное в основу хвм :) Edited February 8, 2017 by Kapany3uk Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #378906 Posted February 8, 2017 хз. надо попробовать. , при 50 и ниже какой цвет должен быть? При 95 и выше какой должен быть цвет? Quote Share this post Link to post Short link Share on other sites
Kapany3uk 948 #378907 Posted February 8, 2017 , при 50 и ниже какой цвет должен быть? При 95 и выше какой должен быть цвет? условно говоря, меньше 50 - всегда плохо, предположим красным, выше 95 - всегда хорошо, предположим зеленый Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #378908 Posted February 8, 2017 @Kapany3uk, покажи еще поле из battleLabelsTemplates.xc. Quote Share this post Link to post Short link Share on other sites
Kapany3uk 948 #378909 Posted February 8, 2017 (edited) @Kapany3uk, покажи еще поле из battleLabelsTemplates.xc. "winChance": { // Динамический шанс на победу. "enabled": true, "updateEvent": "ON_VEHICLE_DESTROYED", "x": -145, "y": 29, "screenHAlign": "center", "textFormat": { "color": "0xF4EFE8", "size": 16, "bold": true }, "format": "{{py:my_dynamic_coloring('{{allyStrengthLive}}','{{enemyStrengthLive}}')}} ({{chancesLive}})" }, Edited February 8, 2017 by Kapany3uk Quote Share this post Link to post Short link Share on other sites
demon2597 5,468 #378910 Posted February 8, 2017 Добавил макросы для динамического изменение цвета... крутяк! в шапку бы этот пост и программку, чтобы не затерялось Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #378912 Posted February 8, 2017 (edited) @Kapany3uk, замени это: def isfloat(value): try: float(value) return True except ValueError: return False maxRatio = 95 minRatio = 65 def dynColoring(ally, enemy): if not isfloat(ally) or not isfloat(enemy): return '' a = 100. * float(ally) + 0.01 e = 100. * float(enemy) + 0.01 if a < e: ratio = max(min((100. * a / e - minRatio) / (maxRatio - minRatio), 1), 0) color = panel.color_gradient(panel.hp_colors['neutral'], panel.hp_colors['bad'], ratio) sign = '<' elif a > e: ratio = max(min((100. * e / a - minRatio) / (maxRatio - minRatio), 1), 0) color = panel.color_gradient(panel.hp_colors['neutral'], panel.hp_colors['good'], ratio) sign = '>' else: color = panel.color_gradient(panel.hp_colors['neutral'], panel.hp_colors['neutral'], 1) sign = '=' value = '<font color="#{}">{}{}{}</font>'.format(color, ally, sign, enemy) return value на это; from xvm import utils def dynColoring(ally, enemy): if not (isinstance(ally, float) and isinstance(enemy, float)): return sign = '>' if float(ally) > float(enemy) else '<' if float(ally) < float(enemy) else '=' precent = float(ally) / float(ally + enemy) color = utils.smooth_transition_color('RGB', 0x00FF00, 0xFF0000, precent, 100) value = '<font color="#{}">{}{}{}</font>'.format(color, ally, sign, enemy) return value И замени файл \res_mods\configs\xvm\py_macro\xvm\utils.py на utils.rar P.S. Изменил это сообщение P.P.S. @Kapany3uk, ты не молчи). Я же могу и ошибаться (при чем часто). Поправил код. Edited February 8, 2017 by ktulho Quote Share this post Link to post Short link Share on other sites
Kapany3uk 948 #378915 Posted February 8, 2017 (edited) Kapany3uk, замени это так ничего не показывает. заменил проверку ally/enemy на float() предыдущим способом - начал показывать, но цвет не меняется: красный. поменял местами color_100 и color_0 в формуле: цвет неизменно зеленый. логи чистые. 'attach' код def isfloat(value): try: float(value) return True except ValueError: return False @xvm.export('my_dynamic_coloring', deterministic=False) def dynColoring(ally, enemy): if not isfloat(ally) or not isfloat(enemy): return '' # if not (isinstance(ally, float) and isinstance(enemy, float)): # return '' sign = '>' if float(ally) > float(enemy) else '<' if float(ally) < float(enemy) else '=' precent = float(ally) / ( float(ally) + float(enemy) ) color = utils.smooth_transition_color('RGB', 0xFF0000, 0x00FF00, precent, 100) value = '<font color="#{}">{}{}{}</font>'.format(color, ally, sign, enemy) return value P.P.S. Kapany3uk, ты не молчи) ну так надо же вписать, погонять реплеи, понять что не так, попробовать исправить своими силами, и только когда все вышеперечисленное не сработало - постить мольбы о помощи :) зы. сорь, время вышло: до вечера офлайн Edited February 8, 2017 by Kapany3uk Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #378918 Posted February 8, 2017 (edited) так ничего не показывает. заменил проверку ally/enemy на float() предыдущим способом - начал показывать, но цвет не меняется: красный. поменял местами color_100 и color_0 в формуле: цвет неизменно зеленый. логи чистые. , так и знал. Сидел, молчал, всякую .... про меня думал )). Попробуй с этим: def dynColoring(ally, enemy): if ally.isdigit() and enemy.isdigit(): a = int(ally) e = int(enemy) else: return sign = '>' if a > e else '<' if a < e else '=' percent = a * 100 / float(a + e) color = utils.smooth_transition_color('GRB', 0x00FF00, 0xFF0000, percent, 100) value = '<font color="#{}">{}{}{}</font>'.format(color, ally, sign, enemy) return value На этот раз проверил у себя: P.S. Поправил код. Обновил это сообщение. крутяк! в шапку бы этот пост и программку, чтобы не затерялось , скрипт работает только с последним ночником. На других версиях XVM он будет выдавать ошибки. Может эти макросы включить в default, раз они востребованы не только в прицеле? Если включать, то где разместить программу Color.exe? Кстати, можно сделать макросы плавного перехода цветов для рейтингов и любых других динамических цветов их color.xc. Edited February 8, 2017 by ktulho Quote Share this post Link to post Short link Share on other sites