View Single Post
Old 12-10-2008, 06:21 PM   #5
Ten
Главнокомандующийp2ambassador
 
Ten's Avatar
 
Faction:
Стражи Садов Кадеша

Join Date: Feb 2004
Location: Great Nebula
Posts: 2,514
Re: Как менять точность выстрелов?

Не, раскоппилированый скрипт у тебя А там они вполне текстовые и компилируются на лету.

Итак, Омега. Такой корабль нашёлся в папке <ХВ2>\Data\Ship\EAR_Omega (вообще, их там несколько, но принцип один и тот же). Открываем .ship-файл в поисках вызова функции StartShipWeaponConfig, т.к. именно она навешивает на корабль соответствующие орудия. Получаем целую россыпь:

Lua-код под катом

Я не зря выделил второй параметр – собственно, это и есть подпапки в папке <ХВ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-код под катом

Конечно, можно всё это записать одной строкой, но так гораздо нагляднее. Например, сразу видим, что против семейства SmallCapitalShip точность боковых орудий составляет 88% (0.88), а против BigCapitalShip – 96% соответственно. Если это много – корректируем Настройки точности против других семейств также не кусаются при изменении. Я практически ничего не знаю о сериале и понятия не имею, кто и как должен стрелять, но думаю, что с этим у вас трудностей точно не возникнет В других .wepn-файлах иные настройки точности, но правятся они аналогичным образом.

Чтобы узнать, к какому семейству принадлежит тот или иной корабль, нужно открыть его файл и глянуть на строчку NewShipType.AttackFamily. Для Омеги, например, она выглядит следующим образом:

Lua:
NewShipType.AttackFamily = "BigCapitalShip"

umka01, как видишь, ничего тут сложного нет Успехов!
Ten is offline   Reply With Quote