Перейти к содержимому
Для публикации в этом разделе необходимо провести 50 боёв.
AutoSpy

[ALL] Боевой эксперт (Battle Expert)

В этой теме 117 комментариев

Рекомендуемые комментарии

5 645
[MRDRS]
Мододел
3 069 публикаций
1 598 боёв

Всем привет!

 

Предлагаю вашему вниманию мод, который является симбиозом уже известных модов "Угломер" и "Светофор" от автора W03L0BED.

Данный мод написан в коде разметки Unbound2, что дает высокую устойчивость и быструю адаптацию к изменениям в новых патчах.

 

Особенности мода (при настройках по умолчанию):

- Куклы кораблей имеют индикаторы углов относительно друг друга. Значения углов расположены на кукле внутри окружности.

- Кукла корабля противника окрашивается в цвета красный, желтый и зеленый соответственно углу по отношению к нашему кораблю: 0–30⁰ — это рикошет, 30–45⁰ — вероятность рикошета, 45–90⁰ — отсутствие рикошета. В настройках мода можно включить тоже самое для куклы своего корабля.

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

 

Скриншоты:

Скрытый текст

shot-21_09.15_11_12.37-0465.jpg.26d03bdcda8eff204040695836f3204b.jpgshot-21_09.15_11_11.28-0423.jpg.cda072876ebb365d3872ae2dd3acd996.jpgshot-21_09.15_11_08.48-0150.jpg.3bbb81039cafb79ce11e864eaed3a850.jpg

 

Мод имеет некоторые настройки, правда пока в файле самого мода (в планах вынести настройки в меню в бою):

Скрытый текст

# Settings
# Настройки
(def constant MOD_BE_SETTINGS {
	# position offset X/Y
	# сдвиг позиции по Х и Y
	positionYOffset: 0,
	positionXOffset: 0,
	# cross lines length from center, 0 - disable
	# размер перекрестия в центре основного круга, 0 - отключить
	crossSize: 3,
	# font size for relative angle text
	# размер шрифта значений углов
	fontSize: 13,
	# show mod always (w/o target)
	# всегда отображать мод (без захваченной цели)
	alwaysShowMod: false,

	# own ship doll settings:
	# настройки куклы своего корабля:
	# masked by main range
	# обрезать куклу
	ownShipDollMasked: true,
	# colored own ship doll with armor penetration colors
	# закрашивать куклу цветами шанса бронепробития (см. корабельную вики)
	ownShipDollColored: false,
	# show relative angle on own ship doll
	# отображать угол расположения своего корабля относительно цели
	ownShipDollAngleEnabled: true,
	# show guns markers on own ship doll
	# отображать маркеры орудий
	ownShipDollGunsEnabled: false,
	# show guns rotator markers
	# отображать маркеры наведения орудий
	ownShipDollGunsRotatorEnabled: false,
	# camera direction clip
	# отображать сектор направления камеры
	ownShipDollCameraEnabled: false,

	# target ship doll settings:
	# настройки куклы цели:
	# colored ship doll with armor penetration colors
	# закрашивать куклу цветами шанса бронепробития (см. корабельную вики)
	targetShipDollColored: true,
	# show relative angle on ship doll
	# отображать угол расположения цели относительно своего корабля
	targetShipDollAngleEnabled: true,
	# enable motion indicator
	# включить (true)/отключить (false) индикатор направления движения цели ("светофор"):
	motionIndicatorEnabled: true,
	# colors for motion type [stop, forward, backward]
	# цвета "светофора" [стоп, вперед, назад]
	motionColors: [0xFFFF00, 0x50FF50, 0xFF5050],
	# motion indicator alpha
	# прозрачность светофора
	motionIndicatorAlpha: 0.6,


	# Внимание. Не рекомендуется менять параметры после этой строки
	# ATTENTION. It is not recommended to change the parameters below
	mainRadius: 60,
	scale: 0.7
})

 

 

Выражаю огромную благодарность @DarthBurko и @Stiv372 за помощь в подготовке мода.

 

Установка мода:

1. СКАЧАТЬ АРХИВ С МОДОМ

2. Распаковать содержимое архива в папку модификаций клиента игры, к примеру в C:\Games\Korabli\bin\ABCD\res_mods\, где ABCD - номер актуального билда игры.

 

Мод не конфликтует с другими модами.

 

Удаление мода:

1. Зайти в папку игровых модификаций, например в С:\Games\Korabli\bin\ABCD\res_mods\, далее \gui\unbound2\mods\devs\autospy

2. Удалить папку battle_expert

 

Оставляйте свои отзывы и предложения, а также сообщения об ошибках.

 

Удачи в боях на просторах Мира Кораблей!

Изменено пользователем AutoSpy
  • Плюс 30
  • Круто 5

Рассказать о публикации


Ссылка на публикацию
127
[VVV]
Старший бета-тестер, Коллекционер
183 публикации
13 666 боёв

Там просили "Светофор" из ModStsation удалить - думаю, теперь можно пойти навстречу просьбе ширнармасс ! :Smile_trollface:

  • Плюс 1
  • Ха-Ха 3
  • Плохо 1

Рассказать о публикации


Ссылка на публикацию
5 759
[WRHD]
Старший бета-тестер
4 689 публикаций
27 519 боёв

@AutoSpy а можно ещё один модик сварганить, чтобы тушка противника в захвате окрашивалась зелёным если ты пробиваешь фугасами без ив, жёлтым если с ив и красным если фугасы не пробивают? А то сложно все это запоминать.

  • Плюс 1
  • Круто 1
  • Ха-Ха 1

Рассказать о публикации


Ссылка на публикацию
202 879
[9-MAY]
Коллекционер, Участник, Бета-тестер, Лоцман
44 946 публикаций
30 988 боёв
Сегодня в 12:41:08 пользователь AutoSpy сказал:

Всем привет!

Приветствую !

Саша , ну ты и монстр !!! 

Честь.gif

Сегодня в 12:41:08 пользователь AutoSpy сказал:

(в планах вынести настройки в меню в бою):

Ваще !!! 

Взрыв.gif

  • Плюс 5

Рассказать о публикации


Ссылка на публикацию
Гость
Гость
0 публикаций
Сегодня в 19:00:47 пользователь Agnitus сказал:

а можно ещё один модик сварганить, чтобы тушка противника в захвате окрашивалась зелёным если ты пробиваешь фугасами без ив, жёлтым если с ив и красным если фугасы не пробивают?

Вам не всё ли равно, кто от вашего Смоленска будет гореть? :cap_rambo: :cap_haloween:

Сегодня в 19:16:51 пользователь BETEPAH_OKCBA сказал:

Саша , ну ты и монстр !!! 

Это точно комплимент? :cap_hmm:

  • Плюс 2

Рассказать о публикации


Ссылка на публикацию
202 879
[9-MAY]
Коллекционер, Участник, Бета-тестер, Лоцман
44 946 публикаций
30 988 боёв
Сегодня в 19:34:17 пользователь artemon749 сказал:

 

Это точно комплимент? :cap_hmm:

Двух мнений быть не может ! 

Гут.gif

  • Плюс 3

Рассказать о публикации


Ссылка на публикацию
5 645
[MRDRS]
Мододел
3 069 публикаций
1 598 боёв
Сегодня в 19:00:47 пользователь Agnitus сказал:

@AutoSpy а можно ещё один модик сварганить, чтобы тушка противника в захвате окрашивалась зелёным если ты пробиваешь фугасами без ив, жёлтым если с ив и красным если фугасы не пробивают? А то сложно все это запоминать.

Нет, это слишком сложно. Надо учитывать с десяток параметров, которые не все доступны в бою, например броня цели. Еще и всякие шансы рандомные. В общем перебор :)

В этом моде, если кто не понял, окраска зависит только от угла цели по отношению к нашему кораблю. Никакие другие расчеты не применяются. То есть если мы на 8ми уровневом КР и против нас Ямато с 90 градусным углом, то кукла цели будет зеленой. Но это не говорит о том, что мы пробьем цель. 

  • Плюс 6

Рассказать о публикации


Ссылка на публикацию
202 879
[9-MAY]
Коллекционер, Участник, Бета-тестер, Лоцман
44 946 публикаций
30 988 боёв
Сегодня в 19:56:14 пользователь AutoSpy сказал:

 

В этом моде, если кто не понял, окраска зависит только от угла цели по отношению к нашему кораблю. Никакие другие расчеты не применяются. То есть если мы на 8ми уровневом КР и против нас Ямато с 90 градусным углом, то кукла цели будет зеленой. Но это не говорит о том, что мы пробьем цель. 

Мод проверен ; вердикт : просто шикарен !!!

Ни отнять , ни прибавить .

Ещё раз огромное СПАСИБО за труд !!!

(ммм ... ну может быть (?) периметр куклы сделать не абсолютно гладким а , например , с рисками ; по подобию компаса)

  • Плюс 5

Рассказать о публикации


Ссылка на публикацию
2 119
[T_U_R]
Бета-тестер, Участник, Коллекционер
1 698 публикаций

Возможно сдвинуть в настройках?

Да. Разобрался.

Изменено пользователем turc3rus

Рассказать о публикации


Ссылка на публикацию
2 119
[T_U_R]
Бета-тестер, Участник, Коллекционер
1 698 публикаций

Подскажите, как сделать контуры окружеости  чётче?

 

Рассказать о публикации


Ссылка на публикацию
5 645
[MRDRS]
Мододел
3 069 публикаций
1 598 боёв
В 15.09.2021 в 20:05:05 пользователь BETEPAH_OKCBA сказал:

(ммм ... ну может быть (?) периметр куклы сделать не абсолютно гладким а , например , с рисками ; по подобию компаса)

А мне кажется лучше оставить как есть. Риски если и делать, то только со смыслом. Под прицелом и так куча всего :)

 

Сегодня в 13:21:11 пользователь turc3rus сказал:

Подскажите, как сделать контуры окружеости  чётче?

Какой именно окружности? Основной? Пока никак без ковыряния в коде, может со временем вынесу в настройки и этот параметр.

  • Плюс 5

Рассказать о публикации


Ссылка на публикацию
5 645
[MRDRS]
Мододел
3 069 публикаций
1 598 боёв

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

Эти данные помогут мне для составления драфта дефолтных настроек в будущем обновлении эксперта, а остальным игрокам - посмотреть примеры как можно сделать. Заранее спасибо! 

Изменено пользователем AutoSpy
  • Плюс 2

Рассказать о публикации


Ссылка на публикацию
2 119
[T_U_R]
Бета-тестер, Участник, Коллекционер
1 698 публикаций
Скрытый текст

359132586_WorldofWarships18_09.202111_27_02.thumb.png.a7bbdd632da1f6d30b22bf43d6142ef7.png654110114_WorldofWarships18_09.202111_44_37.thumb.png.35b44fa02e028472fdaa4a2da0e9efe7.png

 

 

#
# Battle Expert by AutoSpy
#

# Settings
# Настройки
(def constant MOD_BE_SETTINGS {
    # position offset X/Y
    # сдвиг позиции по Х и Y
    positionYOffset: 30,
    positionXOffset: 110,
    # cross lines length from center, 0 - disable
    # размер перекрестия в центре основного круга, 0 - отключить
    crossSize: 3,
    # font size for relative angle text
    # размер шрифта значений углов
    fontSize: 18,
    # show mod always (w/o target)
    # всегда отображать мод (без захваченной цели)
    alwaysShowMod: false,

    # own ship doll settings:
    # настройки куклы своего корабля:
    # masked by main range
    # обрезать куклу
    ownShipDollMasked: false,
    # colored own ship doll with armor penetration colors
    # закрашивать куклу цветами шанса бронепробития (см. корабельную вики)
    ownShipDollColored: true,
    # show relative angle on own ship doll
    # отображать угол расположения своего корабля относительно цели
    ownShipDollAngleEnabled: true,
    # show guns markers on own ship doll
    # отображать маркеры орудий
    ownShipDollGunsEnabled: false,
    # show guns rotator markers
    # отображать маркеры наведения орудий
    ownShipDollGunsRotatorEnabled: false,
    # camera direction clip
    # отображать сектор направления камеры
    ownShipDollCameraEnabled: true,

    # target ship doll settings:
    # настройки куклы цели:
    # colored ship doll with armor penetration colors
    # закрашивать куклу цветами шанса бронепробития (см. корабельную вики)
    targetShipDollColored: true,
    # show relative angle on ship doll
    # отображать угол расположения цели относительно своего корабля
    targetShipDollAngleEnabled: true,
    # enable motion indicator
    # включить (true)/отключить (false) индикатор направления движения цели ("светофор"):
    motionIndicatorEnabled: true,
    # colors for motion type [stop, forward, backward]
    # цвета "светофора" [стоп, вперед, назад]
    motionColors: [0xFFFF00, 0x50FF50, 0xFF5050],
    # motion indicator alpha
    # прозрачность светофора
    motionIndicatorAlpha: 0.6,


    # Внимание. Не рекомендуется менять параметры после этой строки
    # ATTENTION. It is not recommended to change the parameters below
    mainRadius: 90,
    scale: 0.9
})

##################################
# !!! Остальной код не изменяйте #
# !!! Do not edit code below     #
##################################

(def constant MOD_BE_TRANSFORM_COLORS {
    GREEN:          { redMultiplier:0,greenMultiplier:0,blueMultiplier:0,alphaMultiplier:1,redOffset:0,greenOffset:128,blueOffset:0,alphaOffset:0 },
    YELLOW:         { redMultiplier:1,greenMultiplier:1,blueMultiplier:1,alphaMultiplier:1,redOffset:255,greenOffset:-10,blueOffset:-255,alphaOffset:0 },
    RED:            { redMultiplier:0,greenMultiplier:0,blueMultiplier:0,alphaMultiplier:1,redOffset:255,greenOffset:0,blueOffset:0,alphaOffset:0 }
})

(def macro MOD_BE_MASK_RANGE (enabled:expression=true)
    (block
        (controller $Sector
            (arc=360)
            (radius = "MOD_BE_SETTINGS.mainRadius + 1")
        )

        (bind isMask "enabled")
    )
)

(def macro MOD_BE_SCALE_STYLE ()
    (style (scaleX = "MOD_BE_SETTINGS.scale") (scaleY = "MOD_BE_SETTINGS.scale"))
)


(def css $AS_BETextBold ()
    (fontFamily='$WWSDefaultFontBold')
    (extends $FontSizeDefault)
    (extends $FontColorWhite)
    (filters
        (dropShadow
            (distance=1)
            (angle=90)
            (color=0x000000)
            (alpha=0.8)
            (blurX=3.0)
            (blurY=3.0)
            (strength=1.5)
            (quality=1)
        )
    )
)

(def element BattleStatsContainer () layout=true dispatch_size_change=true
    (scope
        (var avatarEntity:gfx = "$datahub.getSingleEntity(CC.playerAvatar)")
        (var isAlive:bool = "avatarEntity && avatarEntity.hasComponent(CC.health) && avatarEntity.health.isAlive" (event "avatarEntity.health.evIsAliveChanged"))
        (var shipType:str = "avatarEntity.avatar.ship.ref.ship.subtype")
        (var isAircarrier:bool = "shipType == ShipTypes.AIRCARRIER")
        (var camera:gfx = "$datahub.getSingleEntity(CC.camera).camera")
        (var isTacticalCam:bool = "camera.isTactical" (event "camera.evTacticalStateChanged"))
    )

    (element TeamResourcesIndicatorsWrapper)

    (controller $Instance renderer='AS_BattleExpert'
        (bind enabled "isAlive && !(isAircarrier) && !(isTacticalCam)")
    )
)

(def element AS_BattleExpert () layout=true dispatch_size_change=false
    (scope
        (var avatarCollection:gfx = "$datahub.getCollection(CC.avatar)")
        (var collection:gfx = "avatarCollection.getChildByPath('team.enemy')" (event "avatarCollection.evChildAdded") (event "avatarCollection.evChildRemoved"))
        (var collectionItems:gfx = "collection.items" (event "collection.evAdded") (event "collection.evRemoved"))

        (event evBattleExpertTargetChanged)
        (var enabled:bool = "$event.enabled" watch=false init=false (event "evBattleExpertTargetChanged"))
        (var targetEntityId:number = "$event.entityId" watch=false init=false (event "evBattleExpertTargetChanged"))

        (var targetEntity:gfx = "$datahub.getEntity(targetEntityId)")
        (var targetMapPosition:gfx = "targetEntity.mapPosition")
        (var targetYaw:number = "radToGrad(targetMapPosition.yaw)" (event "evEnterFrame"))

        (var targetWorldVisible:bool = "targetEntity && targetEntity.hasComponent(CC.visibility) && targetEntity.visibility.visible" (event "targetEntity.visibility.evChanged"))
        (var targetMapVisible:bool = "targetEntity && targetEntity.hasComponent(CC.visibility) && targetEntity.visibility.mapVisible" (event "targetEntity.visibility.evChanged"))
        (var targetVisible:bool = "targetWorldVisible && targetMapVisible" (event "targetEntity.visibility.evChanged"))

        (var targetPosition:gfx = "targetMapPosition.position")
        (var targetPosX:number = "targetPosition.x" (event "evEnterFrame"))
        (var targetPosY:number = "targetPosition.y" (event "evEnterFrame"))

        (var avatarEntity:gfx = "$datahub.getSingleEntity(CC.playerAvatar)")

        (var mapPosition:gfx = "avatarEntity.mapPosition")
        (var yaw:number = "radToGrad(mapPosition.yaw)" (event "evEnterFrame"))

        (var position:gfx = "mapPosition.position")
        (var posX:number = "position.x" (event "evEnterFrame"))
        (var posY:number = "position.y" (event "evEnterFrame"))

        (var deltaX:number = "targetPosX - posX")
        (var deltaY:number = "targetPosY - posY")

        (var __angle:number = "round(180 + yaw + radToGrad(atan2(deltaX, deltaY)))")
        (var angle:number = "__angle + ((__angle > 540) ? -720 : (__angle > 180) ? -360 :  (__angle < -180) ? 360 : 0)" (bind trigger "__angle"))
        (bind angle "0" (bind enabled "!(enabled && targetVisible)") (bind trigger "(enabled && targetVisible)"))

        (var __targetAngle:number = "round(radToGrad(atan2(deltaY, deltaX)) - targetYaw - 90)")
        (var targetAngle:number = "__targetAngle + ((__targetAngle > 180) ? -360 : (__targetAngle < -180) ? 360 : (__angle < -540) ? 720 : 0)" (bind trigger "__targetAngle"))

        # Course calculation 0-stop, 1-forward, 2-backward
        (event evCourseUpdate)
        (var posXCur:number = "round(targetPosX * 100000)" watch=false)
        (bind posXCur "$event.posXCur" init=false watch=false (event "evCourseUpdate"))
        (var posYCur:number = "round(targetPosY * 100000)" watch=false)
        (bind posYCur "$event.posYCur" init=false watch=false (event "evCourseUpdate"))

        (var battleTimer:gfx = "$datahub.getSingleComponent(CC.battleTimer)")
        (dispatch evCourseUpdate args = "{posXCur: round(targetPosX * 100000), posYCur: round(targetPosY * 100000)}" (event "battleTimer.evBattleTimeLeftTextChanged"))

        (event evCourseChanged)
        (var posXPrev:number = "posXCur" watch=false)
        (bind posXPrev "$event.posXPrev" init=false watch=false (event "evCourseChanged"))
        (var posXDiff:number = "posXCur - posXPrev")

        (var posYPrev:number = "posYCur" watch=false)
        (bind posYPrev "$event.posYPrev" init=false watch=false (event "evCourseChanged"))
        (var posYDiff:number = "posYCur - posYPrev")

        (var sqrDistDiff:number = "pow(posXDiff, 2) + pow(posYDiff, 2)")

        (var currentYawAngle:number = "abs(radToGrad(atan2(posXDiff, -posYDiff)) - round(targetYaw))")

        (var course:number=-1)
        (bind course "$event.course" init=false watch=false (event "evCourseChanged"))

        (var targetVisiblePrev:bool=false watch=false)
        (bind targetVisiblePrev "$event.targetVisiblePrev" init=false watch=false (event "evCourseChanged"))

        (dispatch evCourseChanged args = "{course: !(targetVisiblePrev && targetVisible)
                                                    ?    -1
                                                    :    (sqrDistDiff <= 100)
                                                            ?    0
                                                            :    (sqrDistDiff >= 1000000)
                                                                ?    -1
                                                                :    ((currentYawAngle <= 50) || (currentYawAngle >= 310))
                                                                    ?    1
                                                                    :    ((currentYawAngle >= 130) && (currentYawAngle <= 230))
                                                                        ?    2
                                                                        :    -1,
                                        targetVisiblePrev: targetVisible, posXPrev: posXCur, posYPrev: posYCur}"
                                        dir=0 (event "evCourseUpdate")
        )
        # # End of Course calculation

        (var dollMarginTop:number = "MOD_BE_SETTINGS.mainRadius - 15")

        (macro STAGE_SIZE)
    )

    (bind visible "(enabled && targetVisible) || MOD_BE_SETTINGS.alwaysShowMod")

    (class $FullsizeAbsolute)
    (style
        (hitTest=false)
        (bind top "(stageHeight / 2) + 20 + MOD_BE_SETTINGS.mainRadius + MOD_BE_SETTINGS.positionYOffset")
        (bind left "MOD_BE_SETTINGS.positionXOffset")
    )

    (controller $Repeat renderer='AS_BattleExpertGetParams'
        (bind count "collectionItems.length")
        (args entities = "collectionItems")
    )

    # Enemy ship doll
    (block
        (bind visible "enabled && targetVisible")

        (element AS_BattleExpertShipDoll _rotation = "180 - targetAngle" _angle = "abs(targetAngle)" _course = "course"
            (style (top = "-dollMarginTop"))
        )

        (macro MOD_BE_MASK_RANGE)
    )

    # Own ship doll
    (block
        (element AS_BattleExpertShipDoll _isTarget=false _rotation = "angle" _angle = "abs(angle)"
            (style (top = "dollMarginTop"))
        )

        (macro MOD_BE_MASK_RANGE "MOD_BE_SETTINGS.ownShipDollMasked")
    )

    # Main range
    (block
        (controller $Sector
            (bind arc "MOD_BE_SETTINGS.ownShipDollMasked ? 360 : 220")
            (offset=-200)
            (radius = "MOD_BE_SETTINGS.mainRadius")
            (lineThickness=1)
            (lineColor=0x999999)
            (lineAlpha=0.7)
        )
    )

    # cross
    (controller $Instance renderer='AS_BattleExpertCross'
        (bind enabled "MOD_BE_SETTINGS.crossSize > 0")
    )
)

(def element AS_BattleExpertShipDoll (_isTarget:bool=true, _rotation:number=0, _angle:number=0, _course:number=-1) layout=true
    (scope
        (var weapons:gfx = "$datahub.getCollection(CC.weapon)")
        (var motionColor:number = "(!(_isTarget) || (_course < 0)) ? 0x808080 : MOD_BE_SETTINGS.motionColors[_course]")
        (var showAngleText:bool = "_isTarget ? MOD_BE_SETTINGS.targetShipDollAngleEnabled : MOD_BE_SETTINGS.ownShipDollAngleEnabled")
        (var showRanges:bool = "(_isTarget && MOD_BE_SETTINGS.motionIndicatorEnabled) || showAngleText")
        (var compassComponent:gfx = "$datahub.getSingleComponent(CC.compass)")
        (var shipDollRotation:number = "compassComponent.shipDollRotation" (event "compassComponent.evShipDollRotationChanged"))
    )

    (class $FullsizeAbsolute)

    # ship doll
    (block
        (style (bind rotation "_rotation"))
        (macro MOD_BE_SCALE_STYLE)

        (block
            (bind visible "_isTarget ? MOD_BE_SETTINGS.targetShipDollColored : MOD_BE_SETTINGS.ownShipDollColored")

            (style
                (backgroundImage='symbol:compass_default_doll')
            )

            (bind colorTransform "((_angle > 45) && (_angle < 135)) ? MOD_BE_TRANSFORM_COLORS.GREEN
                                                                    : ((_angle > 30)  && (_angle < 150)) ? MOD_BE_TRANSFORM_COLORS.YELLOW
                                                                                                         : MOD_BE_TRANSFORM_COLORS.RED")
        )

        (block
            (style
                (backgroundImage='symbol:compass_default_doll')
            )
        )
    )

    # ship guns
    (block
        (bind visible "!(_isTarget)")

        (macro MOD_BE_SCALE_STYLE)

        (block
            (bind visible "MOD_BE_SETTINGS.ownShipDollCameraEnabled")

            (element AS_BattleExpertCamera _angle = "_rotation")
        )

        (block
            (bind visible "MOD_BE_SETTINGS.ownShipDollGunsEnabled")

            (style (position = "absolute") (bind rotation "_rotation"))

            (controller $Repeat renderer='ShipDollGunsList'
                (bind count "weapons.items.length")
                (args collection = "weapons")
            )
        )

        (block
            (bind visible "MOD_BE_SETTINGS.ownShipDollGunsRotatorEnabled")

            (style (bind rotation "_rotation - shipDollRotation"))

            (controller $Repeat renderer='GunsRotatorList' count = "weapons.items.length")
        )
    )

    # motion indicator fill
    (block
        (bind visible "showRanges")

        (controller $Sector
            (arc=360)
            (radius=11)
            (bind colors "[motionColor]")
            (alphas = "[MOD_BE_SETTINGS.motionIndicatorAlpha]")
            (ratios=[255])
        )
    )

    # inner range (motion + angle)
    (block
        (bind visible "showRanges")
        (controller $Sector
            (arc=360)
            (radius=11)
            (lineThickness=1)
            (lineAlpha=0.7)
            (lineColor=0xFFFFFF)
        )
    )

    # angle text
    (block
        (bind visible "showAngleText")

        (class $FullsizeAbsolute)
        (style
            (top=-11px)
            (align = "center")
        )

        (tf
            (class $AS_BETextBold)
            (style
                (fontSize = "MOD_BE_SETTINGS.fontSize")
                (textAlign = "center")
            )

            (bind text "_angle")
        )
    )
)

(def element AS_BattleExpertCamera (_angle:number=0) layout=true
    (scope
        (var camera:gfx = "$datahub.getSingleEntity(CC.camera).camera")
        (var isTacticalCam:bool = "camera.isTactical" (event "camera.evTacticalStateChanged"))

        (var visibilityRangeRadius:number = "camera.visibilityRangePerc" (event "camera.evVisibilityRangeChanged"))
        (var visibilityVectorRadius:number = "max(visibilityRangeRadius, 0.5)" (event "camera.evVisibilityRangeChanged"))
        (var cameraFrustumAngle:number = "radToGrad(camera.frustumAngle)" (event "camera.evFrustumAngleChanged"))

        (var compassComponent:gfx = "$datahub.getSingleComponent(CC.compass)")
        (var shipDollRotation:number = "compassComponent.shipDollRotation" (event "compassComponent.evShipDollRotationChanged"))
    )

    (controller $Animation
        (bindcall play  duration=0.15
                        delay=0
                        to={alpha: 0}
                        easing="Easing.cubic_in"
                        (bind enabled "isTacticalCam")
        )
        (bindcall play  duration=0.15
                        delay=0
                        to={alpha: 1}
                        easing="Easing.cubic_out"
                        (bind enabled "!(isTacticalCam)")
        )
    )

    (block
        (block
            (isMask=true)
            (macro BIND_FAIR_SCALE "visibilityVectorRadius")
            (style
                (position = "absolute")
                (backgroundImage='symbol:minimap_observe_mask')
            )
        )
        (style
            (position = "absolute")
            (width=1px)
            (height=1px)
            (backgroundImage='symbol:minimap_frustum_edge_vector')
            (bind rotation "_angle - shipDollRotation")
        )
        (alpha=0.7)
    )


    (block
        (block
            (isMask = true)
            (macro BIND_FAIR_SCALE "visibilityRangeRadius")
            (style
                (position = "absolute")
                (backgroundImage='symbol:minimap_observe_mask')
            )
        )
        (bind alpha "0.2")
        (style
            (bind rotation "_angle - shipDollRotation - cameraFrustumAngle / 2")
        )
        (controller $Sector
            (color=0x7DFFFF)
            (bind arc "cameraFrustumAngle")
            (offset=-90)
            (radius = "MOD_BE_SETTINGS.mainRadius * 1.7")
        )
    )
)

(def element AS_BattleExpertGetParams (entities:gfx=0) layout=false
    (scope
        (var entity:gfx = "entities[$index]")
        (var targetEntity:gfx = "$datahub.getEntity(entity.id)")
        (var targetEntityComponent:gfx = "targetEntity.target" (event "targetEntity.evAdded") (event "targetEntity.evRemoved"))
        (var targetFlags:number = "targetEntityComponent ? targetEntityComponent.flags : 0" (event "targetEntityComponent.evChanged") (event "targetEntityComponent.evFlagsChanged"))
        (var isTargetLocked:bool = "(targetFlags & LOCKABLE_WEAPONS) > 0")

        (var targetIsAlive:bool = "targetEntity && targetEntity.hasComponent(CC.health) && targetEntity.health.isAlive" (event "targetEntity.health.evIsAliveChanged"))

        (var enabled:bool = "isTargetLocked && targetIsAlive")

        (dispatch evBattleExpertTargetChanged args="{entityId: enabled ? entity.id : -1, enabled: enabled}" dir=1 (bind trigger "enabled"))
    )
)

(def element AS_BattleExpertCross () layout=true
    (controller $Repeat count=2 layout=true
        (bind enabled "MOD_BE_SETTINGS.crossSize > 0")
        (exprs
            # bg horizontal line
            (block (style (position = "absolute") (height=3px) (top=-1px) (bind width "MOD_BE_SETTINGS.crossSize") (bind scaleX "-1" (bind enabled "$index == 0")) (bind left "1" (bind enabled "$index == 0")) (backgroundColor=0x50333333)))
            # bg vertical line
            (block (style (position = "absolute") (width=3px) (left=-1px) (bind height "MOD_BE_SETTINGS.crossSize") (bind scaleY "-1" (bind enabled "$index == 0")) (bind top "1" (bind enabled "$index == 0")) (backgroundColor=0x50333333)))
            # horizontal line
            (block (style (position = "absolute") (height=1px) (bind width "MOD_BE_SETTINGS.crossSize") (bind scaleX "-1" (bind enabled "$index == 0")) (bind left "1" (bind enabled "$index == 0")) (backgroundColor=0xF0999999)))
            # vertical line
            (block (style (position = "absolute") (width=1px) (bind height "MOD_BE_SETTINGS.crossSize") (bind scaleY "-1" (bind enabled "$index == 0")) (bind top "1" (bind enabled "$index == 0")) (backgroundColor=0xF0999999)))
        )
    )
)

 

 

 

  • Плюс 1

Рассказать о публикации


Ссылка на публикацию
127
[VVV]
Старший бета-тестер, Коллекционер
183 публикации
13 666 боёв

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

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

 

 

Рассказать о публикации


Ссылка на публикацию
2 513
[KKZ50]
Участник
2 815 публикаций
22 186 боёв

Спасибо, здорово! (версия через модстэйшн)

Пожелания:

1) убрать раскраску кораблей вообще, цвет оставить только для светофора.

-- для минимализма. А цвет куклы+светофор вообще попугаисто - плохо воспринимается.

2) может быть стоит красить НАШ корабль красным, когда он становится бортом к врагу - для привлечения внимания.

А может и не стоит.

 

-- Может уже есть такие настройки?- не понял как.

  • Плохо 1

Рассказать о публикации


Ссылка на публикацию
202 879
[9-MAY]
Коллекционер, Участник, Бета-тестер, Лоцман
44 946 публикаций
30 988 боёв
Сегодня в 14:08:05 пользователь ru1719 сказал:

Спасибо, здорово! (версия через модстэйшн)

Пожелания:

1) убрать раскраску кораблей вообще, цвет оставить только для светофора.

-- для минимализма. А цвет куклы+светофор вообще попугаисто - плохо воспринимается.

2) может быть стоит красить НАШ корабль красным, когда он становится бортом к врагу - для привлечения внимания.

А может и не стоит.

 

-- Может уже есть такие настройки?- не понял как.

Приветствую. 

Ну а я категорически против! 

На мой вкус автор как раз и сделал всё как необходимо именно подавляющему больенству пользователей мода. 

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

В 15.09.2021 в 12:41:08 пользователь AutoSpy сказал:

Мод имеет некоторые настройки, правда пока в файле самого мода :

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


# Settings
# Настройки
(def constant MOD_BE_SETTINGS {
	# position offset X/Y
	# сдвиг позиции по Х и Y
	positionYOffset: 0,
	positionXOffset: 0,
	# cross lines length from center, 0 - disable
	# размер перекрестия в центре основного круга, 0 - отключить
	crossSize: 3,
	# font size for relative angle text
	# размер шрифта значений углов
	fontSize: 13,
	# show mod always (w/o target)
	# всегда отображать мод (без захваченной цели)
	alwaysShowMod: false,

	# own ship doll settings:
	# настройки куклы своего корабля:
	# masked by main range
	# обрезать куклу
	ownShipDollMasked: true,
	# colored own ship doll with armor penetration colors
	# закрашивать куклу цветами шанса бронепробития (см. корабельную вики)
	ownShipDollColored: false,
	# show relative angle on own ship doll
	# отображать угол расположения своего корабля относительно цели
	ownShipDollAngleEnabled: true,
	# show guns markers on own ship doll
	# отображать маркеры орудий
	ownShipDollGunsEnabled: false,
	# show guns rotator markers
	# отображать маркеры наведения орудий
	ownShipDollGunsRotatorEnabled: false,
	# camera direction clip
	# отображать сектор направления камеры
	ownShipDollCameraEnabled: false,

	# target ship doll settings:
	# настройки куклы цели:
	# colored ship doll with armor penetration colors
	# закрашивать куклу цветами шанса бронепробития (см. корабельную вики)
	targetShipDollColored: true,
	# show relative angle on ship doll
	# отображать угол расположения цели относительно своего корабля
	targetShipDollAngleEnabled: true,
	# enable motion indicator
	# включить (true)/отключить (false) индикатор направления движения цели ("светофор"):
	motionIndicatorEnabled: true,
	# colors for motion type [stop, forward, backward]
	# цвета "светофора" [стоп, вперед, назад]
	motionColors: [0xFFFF00, 0x50FF50, 0xFF5050],
	# motion indicator alpha
	# прозрачность светофора
	motionIndicatorAlpha: 0.6,


	# Внимание. Не рекомендуется менять параметры после этой строки
	# ATTENTION. It is not recommended to change the parameters below
	mainRadius: 60,
	scale: 0.7
})

 

 

К тому же 

 

В 15.09.2021 в 12:41:08 пользователь AutoSpy сказал:

(в планах вынести настройки в меню в бою):

 

  • Плюс 2
  • Круто 2

Рассказать о публикации


Ссылка на публикацию
127
[VVV]
Старший бета-тестер, Коллекционер
183 публикации
13 666 боёв
Сегодня в 18:08:05 пользователь ru1719 сказал:

 

1) убрать раскраску кораблей вообще, цвет оставить только для светофора.

 

-- Может уже есть такие настройки?- не понял как.

Скрытый текст

# Settings
# Настройки
(def constant MOD_BE_SETTINGS {
	# position offset X/Y
	# сдвиг позиции по Х и Y
	positionYOffset: 0,
	positionXOffset: 0,
	# cross lines length from center, 0 - disable
	# размер перекрестия в центре основного круга, 0 - отключить
	crossSize: 3,
	# font size for relative angle text
	# размер шрифта значений углов
	fontSize: 13,
	# show mod always (w/o target)
	# всегда отображать мод (без захваченной цели)
	alwaysShowMod: false,

	# own ship doll settings:
	# настройки куклы своего корабля:
	# masked by main range
	# обрезать куклу
	ownShipDollMasked: true,
	# colored own ship doll with armor penetration colors
	# закрашивать куклу цветами шанса бронепробития (см. корабельную вики)
	ownShipDollColored: false,
	# show relative angle on own ship doll
	# отображать угол расположения своего корабля относительно цели
	ownShipDollAngleEnabled: true,
	# show guns markers on own ship doll
	# отображать маркеры орудий
	ownShipDollGunsEnabled: false,
	# show guns rotator markers
	# отображать маркеры наведения орудий
	ownShipDollGunsRotatorEnabled: false,
	# camera direction clip
	# отображать сектор направления камеры
	ownShipDollCameraEnabled: false,

	# target ship doll settings:
	# настройки куклы цели:
	# colored ship doll with armor penetration colors
	# закрашивать куклу цветами шанса бронепробития (см. корабельную вики)
	targetShipDollColored: false,
	# show relative angle on ship doll
	# отображать угол расположения цели относительно своего корабля
	targetShipDollAngleEnabled: true,
	# enable motion indicator
	# включить (true)/отключить (false) индикатор направления движения цели ("светофор"):
	motionIndicatorEnabled: true,
	# colors for motion type [stop, forward, backward]
	# цвета "светофора" [стоп, вперед, назад]
	motionColors: [0xFFFF00, 0x50FF50, 0xFF5050],
	# motion indicator alpha
	# прозрачность светофора
	motionIndicatorAlpha: 0.6,


	# Внимание. Не рекомендуется менять параметры после этой строки
	# ATTENTION. It is not recommended to change the parameters below
	mainRadius: 60,
	scale: 0.7
})

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

Изменено пользователем DeD_Shurik
  • Плюс 3

Рассказать о публикации


Ссылка на публикацию

×