Jump to content
Korean Random
ktulho

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

Recommended Posts

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

Share this post


Link to post

Short link
Share on other sites

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

Всмысле придумать? Или нарисовать? 

Share this post


Link to post

Short link
Share on other sites

Всмысле придумать? Или нарисовать? 

нарисовать. гемор какой-то, я всю голову сломал. во флеше-то заполнение легко делается анимацией, а тут надо нарисовать 100 картинок, в каждой надо отрезать по равному куску от исходной заполненной. так она еще и кривая, фиг знает вообще как её поделить...

Edited by demon2597

Share this post


Link to post

Short link
Share on other sites

нарисовать. гемор какой-то, я всю голову сломал. во флеше-то заполнение легко делается анимацией, а тут надо нарисовать 100 картинок, в каждой надо отрезать по равному куску от исходной заполненной. так она еще и кривая, фиг знает вообще как её поделить...

Вроде, если менять размер поля, то картинка будет обрезаться. Поэтому не надо рисовать 100 картинок.

Share this post


Link to post

Short link
Share on other sites

Вроде, если менять размер поля, то картинка будет обрезаться. Поэтому не надо рисовать 100 картинок.

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

post-6084-0-92758300-1486033440.png

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

Edited by demon2597

Share this post


Link to post

Short link
Share on other sites

 

 

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

Share this post


Link to post

Short link
Share on other sites
типа, будет критично, если обрежется не по нормали?

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

Edited by demon2597

Share this post


Link to post

Short link
Share on other sites

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

 

Немного поэкспериментировав получилось настроить чтобы картинка отображалась частично в зависимости от снарядов в барабане:

post-30084-0-62512400-1486073235_thumb.png

battleLabelsTemplates:

{
  "Shells": {
    "enabled": true,
    "updateEvent": "PY(ON_AMMO_CHANGED), PY(ON_CAMERA_MODE)",
    "x": -160,
    "y": "{{py:math.sum( {{py:sight.sight_y}}, -{{py:math.sub(100, {{py:math.div( {{py:math.sub( {{py:math.sum( {{py:math.sub( {{py:math.mul( 40, {{py:sight.quantityInClipShells>5?5|{{py:sight.quantityInClipShells}}}} )}}, 3 )}}, 4 )}}, 1 )}}, 2 )}} )}} )}}",
    "width": 44, //40+4
    "height": "{{py:math.sum({{py:math.sub({{py:math.mul(40 , {{py:sight.quantityInClipShells>5?5|{{py:sight.quantityInClipShells}}}} )}} , 3)}} , 4)}}",
    "screenHAlign": "center",
    "screenVAlign": "center",
//    "borderColor": "0xFF00FF",
    "format": "<img src='xvm://res/temp.png'>"
  },
  "Shell_1": { // 1 снаряд в касете
    "$ref": { "path":"Shells" },
    "y": "{{py:math.sum( {{py:sight.sight_y}}, -{{py:math.sub(100, {{py:math.div( {{py:math.sub( {{py:math.sum( {{py:math.sub( {{py:math.mul( 40, 1 )}}, 3 )}}, 4 )}}, 1 )}}, 2 )}} )}} )}}",
    "height": "{{py:math.sum({{py:math.sub({{py:math.mul(40 , 1 )}} , 3)}} , 4)}}"
  },
  "Shell_2": { // 2 снаряд в касете
    "$ref": { "path":"Shells" },
    "y": "{{py:math.sum( {{py:sight.sight_y}}, -{{py:math.sub(100, {{py:math.div( {{py:math.sub( {{py:math.sum( {{py:math.sub( {{py:math.mul( 40, 2 )}}, 3 )}}, 4 )}}, 1 )}}, 2 )}} )}} )}}",
    "height": "{{py:math.sum({{py:math.sub({{py:math.mul(40 , 2 )}} , 3)}} , 4)}}"
  },
  "Shell_3": { // 3 снаряд в касете
    "$ref": { "path":"Shells" },
    "y": "{{py:math.sum( {{py:sight.sight_y}}, -{{py:math.sub(100, {{py:math.div( {{py:math.sub( {{py:math.sum( {{py:math.sub( {{py:math.mul( 40, 3 )}}, 3 )}}, 4 )}}, 1 )}}, 2 )}} )}} )}}",
    "height": "{{py:math.sum({{py:math.sub({{py:math.mul(40 , 3 )}} , 3)}} , 4)}}"
  },
  "Shell_4": { // 4 снаряд в касете
    "$ref": { "path":"Shells" },
    "y": "{{py:math.sum( {{py:sight.sight_y}}, -{{py:math.sub(100, {{py:math.div( {{py:math.sub( {{py:math.sum( {{py:math.sub( {{py:math.mul( 40, 4 )}}, 3 )}}, 4 )}}, 1 )}}, 2 )}} )}} )}}",
    "height": "{{py:math.sum({{py:math.sub({{py:math.mul(40 , 4 )}} , 3)}} , 4)}}"
  },
  "Shell_5": { // 5 снаряд в касете
    "$ref": { "path":"Shells" },
    "y": "{{py:math.sum( {{py:sight.sight_y}}, -{{py:math.sub(100, {{py:math.div( {{py:math.sub( {{py:math.sum( {{py:math.sub( {{py:math.mul( 40, 5 )}}, 3 )}}, 4 )}}, 1 )}}, 2 )}} )}} )}}",
    "height": "{{py:math.sum({{py:math.sub({{py:math.mul(40 , 5 )}} , 3)}} , 4)}}"
  }
}

post-30084-0-19590900-1486065874.png

Edited by xenus

Share this post


Link to post

Short link
Share on other sites

 

 

battleLabelsTemplates
мда, координата Y- ужыс

Share this post


Link to post

Short link
Share on other sites

 

Немного поэкспериментировав получилось настроить чтобы картинка отображалась частично в зависимости от снарядов в барабане:

attachicon.gifБезымянный.png

battleLabelsTemplates:

{
  "Shells": {
    "enabled": true,
    "updateEvent": "PY(ON_AMMO_CHANGED), PY(ON_CAMERA_MODE)",
    "x": -160,
    "y": "{{py:math.sum( {{py:sight.sight_y}}, -{{py:math.sub(100, {{py:math.div( {{py:math.sub( {{py:math.sum( {{py:math.sub( {{py:math.mul( 40, {{py:sight.quantityInClipShells>5?5|{{py:sight.quantityInClipShells}}}} )}}, 3 )}}, 4 )}}, 1 )}}, 2 )}} )}} )}}",
    "width": 44, //40+4
    "height": "{{py:math.sum({{py:math.sub({{py:math.mul(40 , {{py:sight.quantityInClipShells>5?5|{{py:sight.quantityInClipShells}}}} )}} , 3)}} , 4)}}",
    "screenHAlign": "center",
    "screenVAlign": "center",
//    "borderColor": "0xFF00FF",
    "format": "<img src='xvm://res/temp.png'>"
  },
  "Shell_1": { // 1 снаряд в касете
    "$ref": { "path":"Shells" },
    "y": "{{py:math.sum( {{py:sight.sight_y}}, -{{py:math.sub(100, {{py:math.div( {{py:math.sub( {{py:math.sum( {{py:math.sub( {{py:math.mul( 40, 1 )}}, 3 )}}, 4 )}}, 1 )}}, 2 )}} )}} )}}",
    "height": "{{py:math.sum({{py:math.sub({{py:math.mul(40 , 1 )}} , 3)}} , 4)}}"
  },
  "Shell_2": { // 2 снаряд в касете
    "$ref": { "path":"Shells" },
    "y": "{{py:math.sum( {{py:sight.sight_y}}, -{{py:math.sub(100, {{py:math.div( {{py:math.sub( {{py:math.sum( {{py:math.sub( {{py:math.mul( 40, 2 )}}, 3 )}}, 4 )}}, 1 )}}, 2 )}} )}} )}}",
    "height": "{{py:math.sum({{py:math.sub({{py:math.mul(40 , 2 )}} , 3)}} , 4)}}"
  },
  "Shell_3": { // 3 снаряд в касете
    "$ref": { "path":"Shells" },
    "y": "{{py:math.sum( {{py:sight.sight_y}}, -{{py:math.sub(100, {{py:math.div( {{py:math.sub( {{py:math.sum( {{py:math.sub( {{py:math.mul( 40, 3 )}}, 3 )}}, 4 )}}, 1 )}}, 2 )}} )}} )}}",
    "height": "{{py:math.sum({{py:math.sub({{py:math.mul(40 , 3 )}} , 3)}} , 4)}}"
  },
  "Shell_4": { // 4 снаряд в касете
    "$ref": { "path":"Shells" },
    "y": "{{py:math.sum( {{py:sight.sight_y}}, -{{py:math.sub(100, {{py:math.div( {{py:math.sub( {{py:math.sum( {{py:math.sub( {{py:math.mul( 40, 4 )}}, 3 )}}, 4 )}}, 1 )}}, 2 )}} )}} )}}",
    "height": "{{py:math.sum({{py:math.sub({{py:math.mul(40 , 4 )}} , 3)}} , 4)}}"
  },
  "Shell_5": { // 5 снаряд в касете
    "$ref": { "path":"Shells" },
    "y": "{{py:math.sum( {{py:sight.sight_y}}, -{{py:math.sub(100, {{py:math.div( {{py:math.sub( {{py:math.sum( {{py:math.sub( {{py:math.mul( 40, 5 )}}, 3 )}}, 4 )}}, 1 )}}, 2 )}} )}} )}}",
    "height": "{{py:math.sum({{py:math.sub({{py:math.mul(40 , 5 )}} , 3)}} , 4)}}"
  }
}

 

мда, координата Y- ужыс

Надо сдвигать координату Y на половину изменения высоты картинки. То есть, если высота изменилась на 10 пикселей, то Y надо изменить на 5.

Edited by ktulho

Share this post


Link to post

Short link
Share on other sites

 

 

Все нормально отображает, кроме времени до конца перезарядки. ktulho, подскажите где я ошибся, plz.

 

в реплее, снятом вчера на старом скрипте, сегодня при просмотре со скриптом из шапки - нули...
, добавил отображение перезарядки в риплеях, правда в некоторых случаях наверно будет не верно показывать оставшееся время перезарядки.
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

добавил макрос:

{{py:sight.timeAIM}} - время до полного сведения (в секундах).
  • 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

что то сделать можно чтобы на реплеях можно было проверять? ...хотя может быть только у меня не воспроизводит, поэтому в тренировочном бою приходится проверять все счетчики

какие именно в риплеях не работают макросы?

Share this post


Link to post

Short link
Share on other sites

какие именно в риплеях не работают макросы?

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

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

Edited by fgcwsxjegcbk2014

Share this post


Link to post

Short link
Share on other sites

 

 

в этом посте выкладывал свои поделки, возможно именно у меня не работает 
, в этом посте только картинки. Что там не работает?  

Share this post


Link to post

Short link
Share on other sites

, в этом посте только картинки. Что там не работает?  

сорри , счетчики зарядки и  перезарядки не работали

Share this post


Link to post

Short link
Share on other sites

@fgcwsxjegcbk2014, скрипт когда последний раз обновляли?

 

 

, добавил отображение перезарядки в риплеях, правда в некоторых случаях наверно будет не верно показывать оставшееся время перезарядки.
 
  • Upvote 1

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.

×