ktulho Posted February 5, 2017 Author Share Posted February 5, 2017 (edited) - круг разлета осколков (для классического арт-прицела, для БА - не уверен) текущего фугаса , добавил пузырь разлета осколков. Edited February 5, 2017 by ktulho 9 @ Quote Link to comment Short link Share on other sites More sharing options...
vlad_cs_sr Posted February 5, 2017 Share Posted February 5, 2017 Круть) @ Quote Link to comment Short link Share on other sites More sharing options...
ktulho Posted February 5, 2017 Author Share Posted February 5, 2017 Исправил ошибку. @ Quote Link to comment Short link Share on other sites More sharing options...
fgcwsxjegcbk2014 Posted February 6, 2017 Share Posted February 6, 2017 (edited) , добавил пузырь разлета осколков. shot_073.jpg shot_072.jpg на ЛТ с фугасницей как сделать чтобы все ограничивалось только артой ? Edited February 6, 2017 by fgcwsxjegcbk2014 @ Quote Link to comment Short link Share on other sites More sharing options...
ktulho Posted February 6, 2017 Author Share 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 Link to comment Short link Share on other sites More sharing options...
refaol Posted February 6, 2017 Share Posted February 6, 2017 как сделать чтобы все ограничивалось только артой ? например, так: "alpha": "{{py:sight.cameraMode=str?0|100}}", @ Quote Link to comment Short link Share on other sites More sharing options...
ktulho Posted February 6, 2017 Author Share Posted February 6, 2017 например, так: , это не поможет. @ Quote Link to comment Short link Share on other sites More sharing options...
Kapany3uk Posted February 6, 2017 Share Posted February 6, 2017 , это не поможет. напрашивается макрос определения типа техники :)) @ Quote Link to comment Short link Share on other sites More sharing options...
ktulho Posted February 8, 2017 Author Share 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 Link to comment Short link Share on other sites More sharing options...
Kapany3uk Posted February 8, 2017 Share Posted February 8, 2017 Добавил макросы для динамического изменение цвета. Здорово!можно чуть расширенную версию? если мне, к примеру, нужно будет менять цвет в заданных диапазонах процентов от 50 до 95% (и не в прицеле :)) чтобы выглядело как-то так: {{py:sight.dynamic_colorGRB(0x00FFFF, 0xFF0000, {{macro}}, 50, 95)}} @ Quote Link to comment Short link Share on other sites More sharing options...
ktulho Posted February 8, 2017 Author Share 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 Link to comment Short link Share on other sites More sharing options...
Kapany3uk Posted February 8, 2017 Share 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 Link to comment Short link Share on other sites More sharing options...
ktulho Posted February 8, 2017 Author Share Posted February 8, 2017 хз. надо попробовать. , при 50 и ниже какой цвет должен быть? При 95 и выше какой должен быть цвет? @ Quote Link to comment Short link Share on other sites More sharing options...
Kapany3uk Posted February 8, 2017 Share Posted February 8, 2017 , при 50 и ниже какой цвет должен быть? При 95 и выше какой должен быть цвет? условно говоря, меньше 50 - всегда плохо, предположим красным, выше 95 - всегда хорошо, предположим зеленый @ Quote Link to comment Short link Share on other sites More sharing options...
ktulho Posted February 8, 2017 Author Share Posted February 8, 2017 @Kapany3uk, покажи еще поле из battleLabelsTemplates.xc. @ Quote Link to comment Short link Share on other sites More sharing options...
Kapany3uk Posted February 8, 2017 Share 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 Link to comment Short link Share on other sites More sharing options...
demon2597 Posted February 8, 2017 Share Posted February 8, 2017 Добавил макросы для динамического изменение цвета... крутяк! в шапку бы этот пост и программку, чтобы не затерялось @ Quote Link to comment Short link Share on other sites More sharing options...
ktulho Posted February 8, 2017 Author Share 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 Link to comment Short link Share on other sites More sharing options...
Kapany3uk Posted February 8, 2017 Share 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 Link to comment Short link Share on other sites More sharing options...
ktulho Posted February 8, 2017 Author Share 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 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.