Jump to content
Korean Random

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
Link to comment
Short link
Share on other sites

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

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

Link to comment
Short link
Share on other sites

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

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

Link to comment
Short link
Share on other sites

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

 

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

Link to comment
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
Link to comment
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
Link to comment
Short link
Share on other sites

  • 1 month later...

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

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

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

 

Link to comment
Short link
Share on other sites

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

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

Исправил.

  • Upvote 1
Link to comment
Short link
Share on other sites

Исправил.

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

Link to comment
Short link
Share on other sites

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

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

Link to comment
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_
Link to comment
Short link
Share on other sites

 

 

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

 

 

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

  • 2 months later...

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