Ten
 | p2ambassador |
Faction: Стражи Садов Кадеша
Join Date: Feb 2004
Location: Great Nebula
Posts: 2,551
|
Re: Как менять точность выстрелов?
Не, раскоппилированый скрипт у тебя  А там они вполне текстовые и компилируются на лету.
Итак, Омега. Такой корабль нашёлся в папке <ХВ2>\Data\Ship\EAR_Omega (вообще, их там несколько, но принцип один и тот же). Открываем .ship-файл в поисках вызова функции StartShipWeaponConfig, т.к. именно она навешивает на корабль соответствующие орудия. Получаем целую россыпь:
Lua-код под катом
Lua:
StartShipWeaponConfig(NewShipType, "Ear_OmegaPulseFront", "Weapon_FrontTurret01", "Weapon_FrontTurret01")
StartShipWeaponConfig(NewShipType, "Ear_OmegaPulseFront", "Weapon_FrontTurret02", "Weapon_FrontTurret02")
StartShipWeaponConfig(NewShipType, "Ear_OmegaBeamFront", "Weapon_FrontTurret01", "Weapon_FrontTurret01Slave")
StartShipWeaponConfig(NewShipType, "Ear_OmegaBeamFront", "Weapon_FrontTurret02", "Weapon_FrontTurret02Slave")
StartShipWeaponConfig(NewShipType, "Ear_OmegaPulseSideFrontRight", "Weapon_SmallTurret01", "Weapon_SmallTurret01")
StartShipWeaponConfig(NewShipType, "Ear_OmegaPulseSideFrontLeft", "Weapon_SmallTurret02", "Weapon_SmallTurret02")
StartShipWeaponConfig(NewShipType, "Ear_OmegaPulseSideFrontLeft", "Weapon_SmallTurret03", "Weapon_SmallTurret03")
StartShipWeaponConfig(NewShipType, "Ear_OmegaPulseSideFrontRight", "Weapon_SmallTurret04", "Weapon_SmallTurret04")
StartShipWeaponConfig(NewShipType, "Ear_OmegaPulseSideMidRight", "Weapon_SmallTurret05", "Weapon_SmallTurret05")
StartShipWeaponConfig(NewShipType, "Ear_OmegaPulseSideMidLeft", "Weapon_SmallTurret06", "Weapon_SmallTurret06")
StartShipWeaponConfig(NewShipType, "Ear_OmegaPulseSideMidLeft", "Weapon_SmallTurret07", "Weapon_SmallTurret07")
StartShipWeaponConfig(NewShipType, "Ear_OmegaPulseSideMidRight", "Weapon_SmallTurret08", "Weapon_SmallTurret08")
StartShipWeaponConfig(NewShipType, "Ear_OmegaPulseSideBackRight", "Weapon_SmallTurret09", "Weapon_SmallTurret09")
StartShipWeaponConfig(NewShipType, "Ear_OmegaPulseSideBackLeft", "Weapon_SmallTurret10", "Weapon_SmallTurret10")
StartShipWeaponConfig(NewShipType, "Ear_OmegaPulseSideBackLeft", "Weapon_SmallTurret11", "Weapon_SmallTurret11")
StartShipWeaponConfig(NewShipType, "Ear_OmegaPulseSideBackRight", "Weapon_SmallTurret12", "Weapon_SmallTurret12")
StartShipWeaponConfig(NewShipType, "Ear_OmegaPulseRear", "Weapon_Rear01", "Weapon_Rear01")
StartShipWeaponConfig(NewShipType, "Ear_OmegaPulseRear", "Weapon_Rear02", "Weapon_Rear02")
StartShipWeaponConfig(NewShipType, "Ear_OmegaPulseRear", "Weapon_Rear03", "Weapon_Rear03")
StartShipWeaponConfig(NewShipType, "Ear_OmegaPulseRear", "Weapon_Rear04", "Weapon_Rear04")
Я не зря выделил второй параметр – собственно, это и есть подпапки в папке <ХВ2>\Data\Weapon. В подпапках живёт единственный .wepn-файл с конфигурацией заданого оружия.
Отсеиваем дубли из кода выше и получаем 9 разных с точки зрения игры типов орудий: - Ear_OmegaPulseFront
- Ear_OmegaBeamFront
- Ear_OmegaPulseSideFrontLeft
- Ear_OmegaPulseSideFrontRight
- Ear_OmegaPulseSideMidLeft
- Ear_OmegaPulseSideMidRight
- Ear_OmegaPulseSideBackRight
- Ear_OmegaPulseSideBackLeft
- Ear_OmegaPulseRear
Хмык... Ладно, качаем. Выясняется, что все файлы <ХВ2>\Data\Weapon\EAR_OmegaPulseSide*\EAR_OmegaPulseSide*.wepn имеют одинаковые вызовы setAccuracy, а именно:
Lua-код под катом
Lua:
setAccuracy(NewWeaponType, 1,
{
Fighter = 0.027, -- Prob(hit/s) = 0.06
damage = 1,
},
{
Corvette = 0.4, -- Prob(hit/s) = 0.133
damage = 1,
},
{
munition = 0.18, -- Prob(hit/s) = 0.4
damage = 1,
},
{
Frigate = 0.78,
damage = 1,
},
{
SmallCapitalShip = 0.88,
damage = 1,
},
{
BigCapitalShip = 0.96,
damage = 1,
},
{
Mothership = 1.0,
damage = 1,
},
{
Capturer = 0.5,
damage = 1,
},
{
Resource = 0.5,
damage = 1,
},
{
ResourceLarge = 0.75,
damage = 1,
},
{
SubSystem = 0.5,
damage = 1,
})
Конечно, можно всё это записать одной строкой, но так гораздо нагляднее. Например, сразу видим, что против семейства SmallCapitalShip точность боковых орудий составляет 88% (0.88), а против BigCapitalShip – 96% соответственно. Если это много – корректируем  Настройки точности против других семейств также не кусаются при изменении. Я практически ничего не знаю о сериале и понятия не имею, кто и как должен стрелять, но думаю, что с этим у вас трудностей точно не возникнет  В других .wepn-файлах иные настройки точности, но правятся они аналогичным образом.
Чтобы узнать, к какому семейству принадлежит тот или иной корабль, нужно открыть его файл и глянуть на строчку NewShipType.AttackFamily. Для Омеги, например, она выглядит следующим образом:
Lua:
NewShipType.AttackFamily = "BigCapitalShip"
umka01, как видишь, ничего тут сложного нет  Успехов!
|