Если очень хочется захватить какой-то редкий истребитель, а тот никак не сдается, имеет смысл сначала найти подобный корабль с самой низкой моралью пилота. Привожу текст скрипта, который я сделал для себя (в виде "как есть" и без комментариев - даже начинающий скриптописатель, к которым я причисляю и себя, разберется). Сразу оговорюсь, что скрипт наверняка можно оптимизировать, сообщения выдавать на русском, подключить "горячую клавишу". Можно даже заранее сформировать список существующих в игре кораблей, и предлагать выбирать только из них (не включать в список для выбора Вотан и прочие корабли, которых нет в игре). Можно включать в поиск только захватываемые без абордажа классы кораблей (M5, M4, M3, M8, TS, TP). Все это могут сделать желающие, которых заинтересует эта тема. Может быть, я и сам займусь, только не в ближайшее время.
Только один комментарий:
| Код:- $cr= read text: page=8551 id=50
|
| | Эта строка загружает в переменную $cr символ перевода строки. Используется файл 8551-L007.xml (из скрипта Vudu Pilot Info v2.0) - у вас его может и не быть. Наверняка можно сделать проще, но у меня во встроенном редакторе пока не получилось вбить \n или как-то еще. Делать свой текстовый ресурс пока не стал, да из-за одного символа перевода строки как-то и не рационально. Подскажите, пожалуйста, кто знает. Как только узнаю, отредактирую этот текст.
| Код:- 001 if$type == null
- 002 |return null
- 003 end
- 004 $cr= read text: page=8551 id=50
- 005 $found=0
- 006 $text='Found: %s' + $cr
- 007 $race=Аргон
- 008 gosub checkrace
- 009 $race=Борон
- 010 gosub checkrace
- 011 $race=Сплит
- 012 gosub checkrace
- 013 $race=Паранид
- 014 gosub checkrace
- 015 $race=Телади
- 016 gosub checkrace
- 017 $race=Ксенон
- 018 gosub checkrace
- 019 $race=Хаак
- 020 gosub checkrace
- 021 $race=Пират
- 022 gosub checkrace
- 023 $race=Гонер
- 024 gosub checkrace
- 025 $race=Player
- 026 gosub checkrace
- 027 $race=АОГ
- 028 gosub checkrace
- 029 $race=Земляне
- 030 gosub checkrace
- 031 $race=Яки
- 032 gosub checkrace
- 033 $race=Неизвестно
- 034 gosub checkrace
- 035 $text=sprintf: fmt=$text, $found, null, null, null, null
- 036 *write to player logbook $text
- 037 @ =wait 200 ms
- 038 send incoming message $text to player: display it=[TRUE]
- 039 return null
- 040
- 041 checkrace:
- 042 $ship.array= get ship array: of race $race class/type=$type
- 043 $n= size of array $ship.array
- 044 $count=0
- 045 while$n
- 046 |$ship=$ship.array[$count]
- 047 |inc $count=
- 048 |dec $n=
- 049 |$sector=$ship -> get sector
- 050 |$x=$sector -> get universe x index
- 051 |$y=$sector -> get universe y index
- 052 |$race=$ship -> get owner race
- 053 |$name=$ship -> get name
- 054 |$morale=$ship -> get pilot morale
- 055 |$temp=sprintf: fmt='(%s, %s)', $x, $y, null, null, null
- 056 |$msg=sprintf: fmt='%s %s, pilot morale %s, sector %s %s', $race, $name, $morale, $sector, $temp
- 057 |$text=$text + $msg + $cr
- 058 |inc $found=
- 059 end
- 060 endsub
|
| |
Несколько слов по применению скрипта на практике. Можно поискать Хаакский истребитель с наиболее низкой моралью и попробовать захватить именно его. В моем случае захват получился без всяких проблем при морали пилота 13 (см. тут). У большинства мораль оказалась далеко за 20 - у многих даже 30. Проверял также на истребителях Яки, которые обычно сдаются не слишком часто - тактика также работает. Однако не стоит надеяться захватить ряд кораблей, которые создаются в сюжетных миссиях (например, Фенриры в Альдрине, Эвр в Аргонском секторе M148 и т.д.). Насколько я смог понять, они не захватываются в принципе, независимо от морали пилота. Это уже ставится в Mission Director'е (флаг capturable), и как его наличие проверить в Script Editor, пока понять не удалось. Буду рад принять любые поправки, уточнения. |