Jump to content
Korean Random
goodman

Динамические макросы в Python

Recommended Posts

Дополнение: isColorBlind

Данная модификация добавляет py_macro:

  • {{py:isColorBlind}} - возвращает 'cb', если в настройках клиента включена опция "Режим цветовой слепоты", иначе возвращает пусто..
  • PY(ON_COLOR_CHANGED) - событие срабатывает при вкл/откл опции в клиенте.

Установка:

  1. Установить XVM
  2. Поместить скрипт в папку:
res_mods\configs\xvm\py_macro

Скрипт:

Edited by night_dragon_on
  • Upvote 4

Share this post


Link to post

Short link
Share on other sites
4/8/2020 at 6:11 PM, night_dragon_on said:

Addition: isColorBlind 

This modification adds py_macro:

  • {{py: isColorBlind}}  - returns  'cb' if the option “Color blindness mode” is enabled in the client's settings , otherwise it returns empty. .
  • PY (ON_COLOR_CHANGED) - the event is triggered when the option is turned on / off in the client.

Installation:

  1. Install XVM
  2. Put the script in the folder:


 

Script:

@ night_dragon_on

here is a suggestion.  read directly from the settings. 

work also in lobby

 

isColorBlind.py

Edited by Budyx69
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

У Протанки есть скрипт на кол-во пробитий за которое мы забираем танк противника при средней альфе, а нельзя ли запилить еще и скирпт с обраткой? За сколько шотов противник заберет нас?

Скрипт из Протанки: shell_damage.py

  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

@steaxch практическая полезность таких цифр не стоит  занятых  под её вывод пикселей. Писатели  такой бесполезняк обычно игнорят.

Картинку "спаси и Сохрани" как у таксистов можно просто в экстраполях прилепить. Польза такая же а реализовать куда проще.

Share this post


Link to post

Short link
Share on other sites

Хоть и глухо здесь... А вдруг )

 

Может, кто подскажет как эти XVMовские декораторы-хуки записать синтаксисом без собаки?

Share this post


Link to post

Short link
Share on other sites

@night_dragon_on @ktulho давайте определимся по поводу скрипта hideMessagePatterns.py  :hmm:

Скрипт нужный и соотв. нужно выделить определённое место для поддержки. А то народ уже пишет, что самостоятельно его обновляют :blink: ... непорядок.

Share this post


Link to post

Short link
Share on other sites
53 минуты назад, HEKPOMAHT сказал:

определённое место для поддержки


Если @ktulho захочет то поместит в теме со сборником py_macro.

Share this post


Link to post

Short link
Share on other sites

обновите пожалуйста скрипты neLeax-а / тема конфига закрыта ((

neLeax_py_macro.zip

 

или как  сделать фичу # Процент нанесенного урона от суммарной прочности техники противника.

без этих скриптов

 

стал ругаться сильно после последней обновы

 

2021-03-11 19:10:52: [ERROR] Traceback (most recent call last):


  File "res_mods/mods/xfw_packages\xvm_main\python\python_macro.py", line 165, in process_python_macro
    return (func(), deterministic)
  File "res_mods/mods/xfw_packages\xvm_main\python\python_macro.py", line 158, in <lambda>
    return (lambda: func(*args), deterministic)
  File "res_mods/configs/xvm/py_macro\neLeax.py", line 18, in nelx_damagePercent
    return total_hp.damagePercent(dmg_total)
  File "res_mods/configs/xvm/py_macro\neLeax_scripts\total_hp.py", line 63, in damagePercent
    result = 100. / max_hp_enemy * dmg_total
ZeroDivisionError: float division by zero
arg='nelx.damagePercent(239)'

Edited by tunut

Share this post


Link to post

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

как  сделать фичу # Процент нанесенного урона от суммарной прочности техники противника

({{py:div({{py:xvm.totalDamage(1000)}}, 10)%0.1f~%}})

насколько я помню:sceptic:

 

Share this post


Link to post

Short link
Share on other sites
04.04.2021 в 19:20, HEKPOMAHT сказал:

не нужно зажимать пкм, что бы осмотреться :blink:

04.04.2021 в 19:36, HEKPOMAHT сказал:

я собственно из-за "custom" и просил добавить

Сделай отдельный скрипт с включалкой - будет идеально

04.04.2021 в 19:24, night_dragon_on сказал:

Могу отдельно ру-макро выложить где будет custom

 

Дополнение: noCameraLimit

Совместимость: WoT-1.12.1.0 и выше

 

Установка:

  1. Установить XVM
  2. Добавить опцию в конфиг:
    • battle.xc/"camera"/"sniper"

    • "noCameraLimit": true

  3. Поместить скрипт в папку:
res_mods\configs\xvm\py_macro

Вариант №1

 

  • Screenshot-1.png
Если отключен автодоворот (галочка отмечена) в настройках клиента и опция в конфиге активна то отключается предел вращения камеры;
Иначе (галочка снята) и/или опция в конфиге отключена - поведение клиента по умолчанию.

Скрипт:

Вариант №2

 

  • Screenshot-1.png
Если опция в конфиге активна то отключается предел вращения камеры;
Настройка в клиенте при этом заблокирована.
Опция отключена - поведение клиента по умолчанию.

Скрипт:

Edited by night_dragon_on
📌 Обновление ...
  • Upvote 4

Share this post


Link to post

Short link
Share on other sites

@night_dragon_on если возможно, нужно сделать предопределение настройки клиента.

вкл    - камера вращается

выкл - используются настройки клиента

 

да и вернуть опцию в xvm :announce:

Share this post


Link to post

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

предопределение настройки клиента

 

Не совсем понятно зачем отрубать клиентский функционал (аналог режима full).

 

1 час назад, HEKPOMAHT сказал:

вернуть опцию в xvm

 

Я уже отвечал по этому вопросу не нужна она в моде больше, все что нужно массовому (рядовому) пользователю уже доступно в клиенте.

 

 

 

Если опираться на статистические данные, то никто из крупных модпакоделов не использует в сборках бывший режим "custom" от слова совсем, остальные два использовались. Некоторые поделились небольшим срезом данных за определенный период времени о том выбирают опцию при установке или нет и какую именно. Эти два режима на текущий момент полноценно добавлены в клиент.

 

Оставлять опцию в дефолте из-за custom-ма, того что особо никем не используется, лишь единицами кто решил сам залесть в конфиг и найти ее, глупо. То что кому то не хочется зажимать ПКМ или X и им лишь из-за этого необходим этот режим - не является весомым аргументом. Танки это не та игра в которой решают миллисекундные действия от игрока, прожать ту или иную горячую клавишу для того чтобы осмотреться не составит никакого труда и ни на что не повлияет в игровом процессе.

 

Хотя если углубится то и "custom" в клиенте реализован, достаточно отключить блокировку и нажать X.

 

Edited by night_dragon_on
📌 Обновление
  • Upvote 1

Share this post


Link to post

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

Не совсем понятно зачем отрубать клиентский функционал (аналог режима full).

аддон добавляет опцию "открепление камеры с сн.режиме". При "noCameraLimit": false - настройки берутся с клиента и работают без проблем.

 

При "noCameraLimit": true и снятой галке в клиенте "Откл. доворот корпуса" опция не работает и танк доворачивается вслед за камерой :hmm:

----

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

 

* в принципе в "зависимости опции от галки клиента" проблем не вижу - можно просто указать в конфиге, что галка должна быть поставлена снята (запутался уже, пока писал).

Share this post


Link to post

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

опция не работает и танк доворачивается вслед за камерой

 

Об этом и написано было в пояснении.

 

8 минут назад, HEKPOMAHT сказал:

если галка в клиенте была снята

 

По умолчанию в клиенте (после обновы 1.12.1) она установлена.

 

9 минут назад, HEKPOMAHT сказал:

Именно для этой цели я предложил сделать независимую от клиента настройку аддона

 

Блокировку клиентской настройки сделать можно.

Так мне кажется будет больше вопросов почему у меня танк не поворачивает :smile:

Share this post


Link to post

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

По умолчанию в клиенте (после обновы 1.12.1) она установлена.

да мало ли что там установлено по умолчанию... мало примеров что ли? Случайно поставил/снял да забыл.

----

8 минут назад, night_dragon_on сказал:

Об этом и написано было в пояснении.

если опция будет независимая от клиента - нужды в этом пояснении не будет

я имел ввиду описание своего конфига:

19 минут назад, HEKPOMAHT сказал:

* в принципе в "зависимости опции от галки клиента" проблем не вижу - можно просто указать в конфиге, что галка должна быть поставлена снята (запутался уже, пока писал).

 

----

13 минут назад, night_dragon_on сказал:

Так мне кажется будет больше вопросов почему у меня танк не поворачивает :smile:

куда не поворачивает? Игрок включает настройку для открепления только камеры - значит и ожидать от неё можно только открепление. Не нужно открепление - не пользуйся опцией ("noCameraLimit": false) - будут работать настройки клиента.

----

даже в конфиге, наверно нужно будет по умолчанию - false прописать, чтоб вопросов не было :hmm:

Share this post


Link to post

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

настройку для открепления только камеры - значит и ожидать от неё можно только открепление.

Не нужно открепление - не пользуйся опцией

Share this post


Link to post

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

а ты у себя проверял?

 

с галклй в клиенте - работает

без галки - корпус доворачивается

 

скрипт установлен новый:

from AvatarInputHandler.AimingSystems.SniperAimingSystem import SniperAimingSystem

from xfw.events import overrideMethod
import xvm_main.python.config as config

@overrideMethod(SniperAimingSystem, 'enableAutoRotation')
def enableAutoRotation(base, self, enable=None):
    if config.get('battle/camera/enabled') and config.get('battle/camera/sniper/noCameraLimit', False):
        self._SniperAimingSystem__autoRotationEnabled = False
        return
    base(self, enable)

@overrideMethod(SniperAimingSystem, '_SniperAimingSystem__clampToLimits')
def clampToLimits(base, self, turretYaw, gunPitch):
    res = base(self, turretYaw, gunPitch)
    if config.get('battle/camera/enabled') and config.get('battle/camera/sniper/noCameraLimit', False):
        if self._SniperAimingSystem__yawLimits is not None:
            return (turretYaw, res[1])
    return res

 

Share this post


Link to post

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

скрипт установлен новый

 

Только это не тот что нужен)

Перед тем как на смену убежать прикрепил к посту то что на рабочем столе было, а из папки с клиентом нормальный файл так и остался там лежать.

Перезалил ...

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
06.04.2021 в 22:29, night_dragon_on сказал:

Перезалил ...

с этим работает как положено :hmm:

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.
Note: Your post will require moderator approval before it will be visible.

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