Jump to content
Korean Random
ktulho

Прицел (без сведения) средствами XVM

Recommended Posts

3 часа назад, ktulho сказал:

@SsSOtash прикрепите xvm.log. 

Объясните, что такое gunReloadTime ?

У меня xvm.log пустой нечего нету. А python.log многи текст есть

Как подключить reloading.py я не понял 

26.11.2019 в 15:03, HEKPOMAHT сказал:

проверял в воскресенье - все используемые в конфиге скрипты работали штатно, включая reloading.py :hmm:

Как подключить reloading py

24.01.2017 в 20:50, ktulho сказал:

В данной теме собраны скрипты, которые изменяют внешний вид прицела, и расширяют его функционал.

 

Список аддонов:

 

Пример файла конфигурации для всех аддонов данной темы:

sight.xc 4 kB · 39 скачиваний

Для подключения данного файла необходимо добавить ссылку в файл @xvm.xc:


"sight": $ {"sight.xc": "sight"},

 

 Сведение:

  • {{py:sight.timeAIM}} - время до полного сведения (в секундах);
  • PY(ON_AIMING) - событие для данного макроса.

Скрипт: aiming.py

 


 

 Точка прицеливания:

Данный скрипт добавляет следующие макросы:

  • {{py:sight.distance}} - дальность полета снаряда (в метрах);
  • {{py:sight.timeFlight}} - время полета снарядов (в секундах);
  • {{py:sight.cameraHeight}} - высота камеры относительно точки прицеливания;
  • PY(ON_MARKER_POSITION) - событие для перечисленных выше макросов.

Скрипт:  markerPosition.py 4 kB · 29 скачиваний

 


 

 Сфера разлета осколков ОФ снаряда:

Данный скрипт позволяет отображать сферу разлета осколков осколочно-фугасных снарядов. Отображение можно настроить в файле конфигурации sight.xc:


    // Сфера разлета осколков осколочно-фугасных снарядов
    "sphereDispersion": {
      // true - включить
      "enabled": true,
      // Для каких типов техники будет отображаться сфера. Возможные значения ["LT", "MT", "HT", "TD", "SPG"]
      "vtype": ["SPG"],
      // отображение сферы по нажатию клавиши
      "hotkey": {
        // true - включить
        "enabled": true,
        // коды клавиш можно посмотреть в файле \res_mods\mods\shared_resources\xvm\doc\keycodes.txt.
        "keyCode": 56,
        // onHold: false - произвести действие по разовому нажатию клавиши. true - по удержанию.
        "onHold": true }
    },

image.thumb.png.a80c5169ff81f3e520355428d8b675e8.png

 

Скрипт:  sphere.py 5 kB · 25 скачиваний

 


 

 Отображение элементов прицела:

Скрипт управляет скрытием\отображением стандартных элементов прицела с помощью параметров из файла конфигурации sight.xc:


    // true - не отображать прицел после смерти
    "hideSightAfterDeath": false,
    // true - не отображать сетку прицела
    "removeIndicator": false,
    // true - не отображать центральный маркер
    "removeCentralMarker": false,
    // true - не отображать полосу перезарядки
    "removeLoad": false,
    // true - не отображать полосу прочности
    "removeCondition": false,
    // true - не отображать кассеты
    "removeContainers": false,
    // true - не отображать таймер перезарядки
    "removeLoadingTimer": false,
    // true - не отображать индикатор кратности прицела
    "removeZoomIndicator": false,
    // true - не отображать дистанцию до цели
    "removeDistance": false,
    // true - не отображать количество снарядов
    "removeQuantityShells": true,

СкриптdisplayingItems.py

 


 

 Информация о захваченной цели:

  • {{py:sight.autoAimName}} - никнейм игрока находящегося в автоприцеле;
  • {{py:sight.autoAimVehicle}} - название техники находящейся в автоприцеле;
  • {{py:sight.autoAimHealth}} - количество очков прочности техники находящейся в автоприцеле.
  • PY(ON_AUTO_AIM) - событие срабатывает при захвате техники в автоприцел.

 

Выделение техники находящейся в автозахвате.

Настройка данного мода осуществляется в файле sight.xc:


    // Выделение цели находящейся в автозахвате
    "autoAim": {
      "enabled": true,
      // Способ выделения техники. Возможные значения: "arrow", "cylinder"
      // "arrow"    - стрелка над техникой 
      // "cylinder" - свечение вокруг техники
      // ""         - отключить выделение техники
      "markerType": "cylinder",
      // опция управляет отображением перекрестия при захвате цели (значение по умолчанию - "wheels")
      //"none" - скрыть для любой техники, "all" - показывать для любой техники, "wheels" - показывать для колёсной техники  
      "showAutoAimMarker": "wheels"
    }

Для подключение данного функционала необходимо скопировать содержимое архива markers.zip скопировать в папку res_mods\mods\shared_resources\xvm\res\

image.thumb.png.c9dc42e8cb96d0c93a6c0250a4ad07dc.pngimage.thumb.png.101537cf415b10db2e7293dd7ab4a510.png

Архив с маркером:markers.zip

Скрипт:  infoAutoAim.py 6 kB · 171 скачивание


 

 Информация о технике в прицеле:

  • {{py:sight.nameTarget}} - никнейм игрока находящегося в прицеле;
  • {{py:sight.vehicleTarget}} - название техники находящейся в прицеле;
  • {{py:sight.vehNameTarget}} - название техники находящейся в прицеле в системе (usa-M24_Chaffee);
  • {{py:sight.vtypeTarget}} - тип техники находящейся в прицеле (текстовые подстановки из секции vtype файла texts.xc);
  • {{py:sight.c_vtypeTarget}} - цвет по типу техники находящейся в прицеле (текстовые подстановки из секции vtype файла colors.xc);
  • {{py:sight.reloadTarget}} - время перезарядки техники находящейся в прицеле;
  • {{py:sight.visionRadiusTarget}} - обзор техники находящейся в прицеле;
  • {{py:sight.distanceTarget}} - расстояние до цели;
  • {{py:sight.allyTarget}} - возвращает 'al', если в прицеле союзник, возвращает 'en', если в прицеле противник. В остальных случаях возвращает пусто;
  • PY(ON_TARGET) - событие срабатывает при наведении на цель.

 

Время отображения данных макросов настраивается в файле sight.xc:


    // время отображения макросов {{py:....Target}} после потери цели
    "delayHideTarget": 3,

Скрипт:  targetInfo.py 6 kB · 85 скачиваний

 


 Информация о текущем снаряде:

  • {{py:sight.shellType}} - тип заряженного снаряда;
  • {{py:sight.goldShell}} - возвращает 'gold' если снаряд можно купить за золото, иначе - пусто;
  • {{py:sight.shellSpeed}} - скорость полета снаряда;
  • {{py:sight.piercingShell}} - бронепробиваемость снаряда;
  • {{py:sight.explosionRadiusShell}} - радиус разлета осколков снаряда;
  • {{py:sight.damageShell}} - урон снарядом;
  • {{py:sight.caliberShell}} - калибр снаряда.
  • PY(ON_AMMO_CHANGED) - событие срабатывает при смене слота снарядов.

 

Значения, возвращаемые макросом {{py:sight.shellType}}, настраиваются в файле sight.xc:


    // Тип снаряда (макрос {{py:sight.shellType}}).
    "shellType": {
      "armor_piercing":    "{{l10n:armor_piercing}}",    // armor piercing / бронебойный
      "high_explosive":    "{{l10n:high_explosive}}",    // high explosive / осколочно-фугасный
      "armor_piercing_cr": "{{l10n:armor_piercing_cr}}", // armor piercing composite rigid / бронебойный подкалиберный
      "armor_piercing_he": "{{l10n:armor_piercing_he}}", // armor piercing high explosive / бронебойно-фугасный
      "hollow_charge":     "{{l10n:hollow_charge}}",     // high explosive anti-tank / кумулятивный
      "not_shell":         "Netu"
    },

Скрипт:  infoChargedShell.py 5 kB · 45 скачиваний

 


 Количество снарядов:

  • {{py:sight.quantityShells}} - количество оставшихся снарядов;
  • {{py:sight.quantityInClipShells}} - количество оставшихся снарядов в барабане;
  • {{py:sight.quantityInClipShellsMax}} - максимальное количество снарядов в барабане;
  • {{py:sight.burst}} - количество снарядов, выстреливаемых за одну очередь;
  • {{py:sight.isFullClipShells}} - возвращает 'full' если барабан полностью заряжен, иначе пусто;
  • PY(ON_AMMO_COUNT) - при изменении количества снарядов в активном слоте.

 

Скрипт:  quantityShells.py 2 kB · 36 скачиваний

 


 Перезарядка орудия:

  • {{py:sight.leftTime(norm)}} - если параметр 'norm' не задан, то возвращается время оставшееся до конца перезарядки (в секундах). Иначе возвращается нормализованное значение. Для техники с механизмом дозарядки снаряда, возвращается время (нормализованное значение) оставшееся до конца перезарядки текущего снаряда.
  • {{py:sight.reloadTime}} - время перезарядки (в секундах) Для техники с механизмом дозарядки снаряда, возвращается время перезарядки текущего снаряда.
  • {{py:sight.reloadTimeClip}} - время перезарядки между снарядами в барабане (в секундах).
  • {{py:sight.isIncreasedReload}} - возвращает #FF0000, если увеличено время перезарядки орудия (крит боеукладки, заряжающего и т.д.), иначе пусто.
  • {{py:sight.isAutoReload}} - возвращает 'auto' для техники с механизмом дозарядки, иначе пусто.

Макросы для техники с механизмом дозарядки (для другой техники макросы возвращают пусто):

  • {{py:sight.aLeftTime(norm)}} - если параметр 'norm' не задан, то возвращается время оставшееся до конца перезарядки всего барабана (в секундах). Иначе возвращается нормализованное значение. 
  • {{py:sight.aReloadTime}} - время перезарядки всего барабана (в секундах). 
  • {{py:sight.leftTimeShot}} - время, через которое орудие будет готово к выстрелу (в секундах).
  • PY(ON_RELOAD) -  пока орудие перезаряжается срабатывает с частотой 10 раз в секунду.

 

Скрипт:  reloading.py 13 kB · 115 скачиваний

 


 Вероятность пробития:

  • {{py:sight.piercingActual}} - пробивающая способность снаряда при подлете к цели;
  • {{py:sight.armorActual}} - приведенная броня в точке прицеливания;
  • {{py:sight.piercingChance(norm)}} - если 'norm' не задан, то возвращается вероятность пробития в процентах. Иначе возвращается нормализованное значение;
  • {{py:sight.c_piercingChance}} - цвет связанный с шансом на пробитие;
  • {{py:sight.hitAngle}} - угол вхождение снаряда в броню в точке прицеливания (в градусах);
  • {{py:sight.normHitAngle}} - нормализованный угол вхождение снаряда в броню в точке прицеливания (в градусах). Если будет рикошет, то возвращает -1.0 ;
  • PY(ON_CALC_ARMOR) - срабатывает, если в прицел наведен на противника.

 

Цвета для макроса {{py:sight.c_piercingChance}} настраиваются в файле sight.xc:


    //цвет шанса на пробитие ({{py:sight.c_piercingChance}})
    "c_piercingChance": {
      "not_pierced":    "#E82929",
      "little_pierced": "#E1C300",
      "great_pierced":  "#2ED12F",
      "not_target":     ""
    },

Скрипт:  chancePenetration.py 9 kB · 198 скачиваний

 


 Спидометр:

Скрипт управляет отображением спидометра с помощью параметра "showSpeedometer" из файла конфигурации sight.xc:


    // опция управляет отображением спидометра (значение по умолчанию - "wheels")
    //"none" - скрыть для любой техники, "all" - показывать для любой техники, "wheels" - показывать для колёсной техники
    "showSpeedometer": "wheels",

Скриптspeedometer.py


 Режим техники (скоростной, осадный):

  • {{py:mode.siege}} - для техники имеющий осадный режим возвращает 'siege' в осадном режиме, иначе 'normal'. Для остальной техники - пусто;
  • {{py:mode.autoSiege}} - для техники имеющий автоматический осадный режим возвращает 'siege' в осадном режиме, иначе 'normal'. Для остальной техники - пусто;
  • {{py:mode.speed}} - для техники имеющий скоростной режим езды возвращает 'speed' в скоростном режиме, иначе 'normal'. Для остальной техники - пусто.
  • PY(ON_VEHICLE_MODE) - событие предназначено для обновления данных макросов.

СкриптmodesVehicle.py


 

Пример использования (у меня хватило сил сделать только аркадный режим))):

  Показать содержимое

1) В файл battleLabels.xc добавить:



      ${ "battleLabelSight.xc":"def.cameraMode"},
      ${ "battleLabelSight.xc":"def.timeReload"},
      ${ "battleLabelSight.xc":"def.baseTimeReload"},
      ${ "battleLabelSight.xc":"def.reloadBar"},
      ${ "battleLabelSight.xc":"def.healthBar"},
      ${ "battleLabelSight.xc":"def.healthPercent"},
      ${ "battleLabelSight.xc":"def.health"},
      ${ "battleLabelSight.xc":"def.shells"} 

2) Файлы battleLabelSight.xc и sight.xc скопировать в папку с вашим кофигом (например в \res_mods\configs\xvm\default\)

 

 

3)В файле @xvm.xc нужно добавить ссылку на файл sight.xc:



"sight": ${"sight.xc":"sight"},

4) Файлы aimingSystem.pyreloading.pyquantityShells.pysight.py скопировать в \res_mods\configs\xvm\py_macro\

config.zip 3 kB · 10 скачиваний

 

5) Установить шрифт используемый в данном примере:

7fonts.ru_DS-DIGIT.rar 8 kB · 115 скачиваний

 

6) Файл arcSight.png скопировать в \res_mods\mods\shared_resources\xvm\res\:

arcSight.rar 124 kB · 178 скачиваний

 

В примере использован макрос {{py:my_hp.health}} из скрипта myHP.py. Скрипт искать в этой теме.

 

В результате у вас должно получиться следующее:

post-17624-0-26437000-1485272949_thumb.jpg


 

Конфигурация прицела от @fgcwsxjegcbk2014.

Конфигурация прицела от @WarDogs_Alex.

Конфигурация прицела от @andreyvazmtp.

 

Откуда надо изменить LeftTime и куда надо сохранять

Edited by SsSOtash

Share this post


Link to post

Short link
Share on other sites

Дайте готовый конфиг на "бронепробитие/приведенная броня" как на скрине

image.png.145a28d5dc0def39983ea4933c76293f.png

Share this post


Link to post

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

Дайте готовый конфиг на "бронепробитие/приведенная броня" как на скрине

Скинь свои @xvm.xc и battleLabels.xc.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

ktulho Саш,а таймер сведения py:sight.timeAIM сейчас не работает как раньше в общем sight.py,был такой код,показывал оставшееся время сведения в реальном времени,название вроде бы то же,а работает не так.

    // Таймер сведения


    "timerAIM": {
      "enabled": true, 
      "updateEvent": "PY(ON_AIM_MODE), PY(ON_MARKER_POSITION), PY(ON_BEGIN_BATTLE), ON_CURRENT_VEHICLE_DESTROYED",
      "x": "{{py:aim.mode(-144,-159,200)}}",
      "y": "{{py:aim.mode(-43,-18,48)}}",
      "width": 60,
      "height": 25,
      "screenHAlign": "center",
      "screenVAlign": "center",
      "shadow": { "distance": 0, "angle": 0, "alpha": 70, "blur": 3, "strength": 3, "color": "0x000000" },
      "textFormat": { "font": "Archangelsk", "size": 17, "align": "left", "color": "0x{{py:sight.timeAIM=0?2DC822|FF0000}}" },
      "format": "{{py:isBattle?{{alive?{{py:sight.timeAIM=0?Сведен|{{py:sight.timeAIM%2.01f}}}}}}}}"
    },

Показывает просто фиксированное значение,не таймер как раньше.Может я чего не добавил или просто этой функции сейчас нет?

Share this post


Link to post

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

а работает не так

 

05.10.2019 в 22:01, ktulho сказал:

для макроса {{py:sight.timeAIM}} теперь надо использовать событие PY(ON_AIMING)

 

Скрипт: aiming.py

Share this post


Link to post

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

 

 

Скрипт: aiming.py

а,он аиминг,ясно,спасибо:great:

  • Upvote 1

Share this post


Link to post

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

Работает! .. если убрать лишнюю строчку

 

Блин, редактировал, убирал её, но не сохранил и перенёс в папки. При повторном редактировании просмотрел её. Хорошо что ты сам заметил.

1659941818_.png.08f3b935fa855fc7e84e93a59ab2a5de.png

Edited by Arni Ex

Share this post


Link to post

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

Как удалять sight.py где он скажите пж

в папке py_macro

путь: \Gamas\World_of_Tanks_RU\res_mods\configs\xvm\py_macro

Share this post


Link to post

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

спс, скажите перезарядку как исправить reloading.py не работаеть Вставить медиа

где я ошибался

xvm.log 9 kB · 1 скачивание

Нужен другой лог python.log  а не то что вы прислали

Если хотите что бы вам починили  . пришлите полностью свою папку или res_mods  или configs

Edited by P.S.Enot

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.

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.


×
×
  • Create New...