Jump to content
Korean Random
ktulho

BattleTimer средствами XVM.

Recommended Posts

Пару раз просили сделать таймер боя. Добавил три макроса:

  • {{py:xvm.critTimeBT(time)}} - возвращает '#FF0000', если до конца боя осталось меньше времени, чем указано в параметре time (задается в секундах), иначе возвращает пусто. Если параметр time не указан, то считается, что он равен 120 секундам.
  • {{py:xvm.minutesBT}} - возвращает минуты.
  • {{py:xvm.secondsBT}} - возвращает секунды.

Так же добавлено событие PY(ON_BATTLE_TIMER).

 

Файл battleTimer.py скопировать в \res_mods\configs\xvm\py_macro\.

Скрипт: battleTimer.py

 

'Пример использования'

 

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


${ "battleLabelsTemplates.xc":"def.battleTimer"} 

В файл battleLabelsTemplates.xc добавить:


    "battleTimer": { 
      "enabled": true,
      "updateEvent": "PY(ON_BATTLE_TIMER)",
      "x": 450,
      "y": -5,
      "width": 90,
      "height": 45,
      "screenHAlign": "center",
      "shadow": { "distance": 1, "angle": 90, "alpha": 80, "blur": 3, "strength": 2 },
      "textFormat": { "size": 36 },
      "format": "<font color='{{py:xvm.critTimeBT?#FE4D4D}}'>{{py:xvm.minutesBT%02d~:}}{{py:xvm.secondsBT%02d}}</font>"
    }, 

Стандартный таймер я просто передвинул за границы экрана. Для этого, в файле elements.xc нужно добавить:


      "battleTimer": {
        "y": -30
      } 

на всякий случай прикреплю сам файл elements.xc

 

Пример от @HEKPOMAHT

Edited by ktulho
  • Upvote 11

Share this post


Link to post

Short link
Share on other sites

xvm.critTimeBT-это крайняя минута,чтоб цвет менялся?

Это не минута, а сколько укажите. Задается в секундах. Например {{py:xvm.critTimeBT(180)}} это за 3 минуты до конца. Можно менять не только цвет, но и размер, положение, текст и т.д.

Share this post


Link to post

Short link
Share on other sites

Это не минута, а сколько укажите. Задается в секундах. Например {{py:xvm.critTimeBT(180)}} это за 3 минуты до конца. Можно менять не только цвет, но и размер, положение, текст и т.д.

Ага,понял,спасибо.Раньше через сниппеты таймер увеличивал,менял цвет,теперь это сделать проще.

Share this post


Link to post

Short link
Share on other sites

Теоретически можно настроить, чтобы за пять минут до конца боя секунд на 5 появлялась надпись "Осталось 05:00", потом за 2 минуты.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Теоретически можно настроить, чтобы за пять минут до конца боя секунд на 5 появлялась надпись "Осталось 05:00", потом за 2 минуты.

 

Добавте пожалуйста.

Share this post


Link to post

Short link
Share on other sites

Добавте пожалуйста.

Это можно настроить в battleLabelsTemplates.xc, например так:

    "battleTimer": { 
      "enabled": true,
      "updateEvent": "PY(ON_BATTLE_TIMER)",
      "x": "{{py:xvm.critTimeBT(300)?{{py:xvm.critTimeBT(295)?{{py:xvm.critTimeBT(120)?{{py:xvm.critTimeBT(115)?450|0}}|450}}|0}}|450}}",
      "y": "{{py:xvm.critTimeBT(300)?{{py:xvm.critTimeBT(295)?{{py:xvm.critTimeBT(120)?{{py:xvm.critTimeBT(115)?-5|100}}|-5}}|100}}|-5}}",
      "width": 140,
      "height": 110,
      "screenHAlign": "center",
      "shadow": { "distance": 1, "angle": 90, "alpha": 80, "blur": 3, "strength": 2 },
      "textFormat": { "size": 36 },
      "format": "<font color='{{py:xvm.critTimeBT?#FE4D4D}}'>{{py:xvm.critTimeBT(300)?{{py:xvm.critTimeBT(295)?{{py:xvm.critTimeBT(120)?{{py:xvm.critTimeBT(115)? |Осталось \n   }}| }}|Осталось \n   }}| }}{{py:xvm.minutesBT%02d~:}}{{py:xvm.secondsBT%02d}}</font>"
    },
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

 

Это можно настроить в battleLabelsTemplates.xc, например так:

   [spoiler] "battleTimer": {
"enabled": true,
"updateEvent": "PY(ON_BATTLE_TIMER)",
"x": "{{py:xvm.critTimeBT(300)?{{py:xvm.critTimeBT(295)?{{py:xvm.critTimeBT(120)?{{py:xvm.critTimeBT(115)?450|0}}|450}}|0}}|450}}",
"y": "{{py:xvm.critTimeBT(300)?{{py:xvm.critTimeBT(295)?{{py:xvm.critTimeBT(120)?{{py:xvm.critTimeBT(115)?-5|100}}|-5}}|100}}|-5}}",
"width": 140,
"height": 110,
"screenHAlign": "center",
"shadow": { "distance": 1, "angle": 90, "alpha": 80, "blur": 3, "strength": 2 },
"textFormat": { "size": 36 },
"format": "<font color='{{py:xvm.critTimeBT?#FE4D4D}}'>{{py:xvm.critTimeBT(300)?{{py:xvm.critTimeBT(295)?{{py:xvm.critTimeBT(120)?{{py:xvm.critTimeBT(115)? |Осталось \n }}| }}|Осталось \n }}| }}{{py:xvm.minutesBT%02d~:}}{{py:xvm.secondsBT%02d}}</font>"
},[/spoiler]

 

Научите пожалуйста чтобы сместить в право,где редактировать нужно  ?

 

post-15320-0-94417400-1484471503_thumb.png

Edited by vizhu

Share this post


Link to post

Short link
Share on other sites

 

 

Научите пожалуйста чтобы сместить в право,где редактировать нужно  ?
, поменяйте везде 450 на нужное вам число, например 550.
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Небольшое обновление скрипта. Таймер теперь появляется за 29 секунд до начала боя, а не за 28.

  • Upvote 3

Share this post


Link to post

Short link
Share on other sites

Небольшое обновление скрипта. Таймер теперь появляется за 29 секунд до начала боя, а не за 28.

В реплее норм показывает. В бою при надписи "Ожидание игроков..." отсчёт начинается с 00.50

после 00.44 сразу перескакивает на 00.28.

 

Share this post


Link to post

Short link
Share on other sites

В реплее норм показывает. В бою при надписи "Ожидание игроков..." отсчёт начинается с 00.50

после 00.44 сразу перескакивает на 00.28.

Исправил.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Исправил.

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

Share this post


Link to post

Short link
Share on other sites

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

А другие battleLabels нормально отображаются?

Share this post


Link to post

Short link
Share on other sites

А другие battleLabels нормально отображаются?

Другие без изменений всё норм грузится

при таком формате

"format": "<font color='{{py:xvm.critTimeBT?#F50800}}'>{{py:xvm.minutesBT%02d~:|00:}}{{py:xvm.secondsBT%02d|00}}</font>"

00:00 показывает

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

При перемотке назад реплея - та же картина.

Edited by H_E_K_P_O_M_A_H_T_

Share this post


Link to post

Short link
Share on other sites

 

 

При перемотке назад реплея - та же картина.
, исправил.

 

 

Ещё один момент по таймеру. В ситуации, когда во время боя закрываешь клиент , после перезапуска попадаешь снова в этот же бой, таймера уже нет. Можно ли это исправить ?
наверно тоже исправил. Шапку обновил. 
  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

Проверил на реплеях (старые, новые), проверил ситуацию с закрытием клиента - работает, показывает как положено 

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.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...