Инструменты пользователя

Инструменты сайта


stargateaddon
                               Star Gate
                          (C) CPD  1997-2006
                              Version 2.11
                           VGA Planets add-on

Небольшая предыстория.

Не о программе, нет. Об идее.

Стандартная карта для VGA Planets имеет размеры 2000 x 2000 LY. Это вроде бы не слишком много, особенно в начале, когда расе требуется сначала экономически развиться, и чем позже произойдет встреча с агрессивными соседями, тем лучше. Обычно это так. Но потом встает проблема переброски грузов и боевого флота на большие расстояния, что, во-первых, очень долго и, следовательно, снижает динамизм игры, а, во-вторых, дорого - впустую тратится много топлива. Бывает, что требуется перебросить большую группу кораблей с одного фронта на другой, или срочно подвезти кланы во вновь заселяемый район, или снабдить минералами новую базу, и т.д. И вот, начинаются великие передвижения кораблей. На это тратятся силы, нервы («да когда же они уже долетят!»), время играющего (ведь нельзя нагло послать корабль на большое расстояние - ему не хватит топлива, т.е. требуется следить за этим, а следовательно и за планетами, где происходит дозаправка, чтобы там было топливо, а значит нужны корабли-снабженцы и т.д.). В конце концов, перелет через всю карту для нормального корабля требует 47 ходов, без учета дозаправок, что явно неприемлемо. Поэтому всякие мечты о покорении всей галактики приходится оставить - надо играть одну партию годами. Уменьшение размеров карты, на первый взгляд, ослабляет эти проблемы, но зато рождает другие. Ввиду того, что скорость кораблей остается неизменной, расы соприкасаются слишком рано, не успев толком развиться. Сколь мне известно, далеко не всем такое нравится. Итак, как же можно устранить эти проблемы?

В разное время для преодоления всех этих трудностей вводились различные усовершенствования в HOST: 1. Появились корабли, способные выполнять HyperJump (B200, PL21, Falcon). Недостатки:

  • не у всех они есть;
  • небольшой объем перевозимого груза;
  • длина прыжка фиксирована и далеко не всегда совпадает с желаемой;
  • боевые возможности, практически, нулевые.

Можно продолжать критику, но лучше остановиться сейчас. Все дело в том, что эти корабли часто пытаются использовать не по назначению. Их заставляют заниматься снабжением, а ведь это просто быстрые дальние разведчики. 2. Появились WormHoles (PHOST). Вроде бы и хорошо, но:

  • использование связано с риском;
  • зачастую ведут не туда, куда нужно;
  • пользоваться может кто угодно, т.е. не только мы к ним, но ведь и они к нам могут прилететь.

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

  • только для одной расы (хотя именно ей это и нужно в первую очередь);
  • постоянно приходится маневрировать, чтобы передающий FireCloud не унес с собой свой обратный билет;
  • передача только в одну сторону за ход.

А нужна была следующая возможность. Построить на выбранной планете, на какой- нибудь базе, например, некоторое устройство (назовем его эдак оригинально - Star Gate :), которое позволяло бы быстро перебрасывать корабли к любому другому такому же устройству, находящемуся на какой-либо другой планете. Получаемые преимущества очевидны:

  • за один ход можно гонять корабли в обе стороны;
  • пользоваться можем только мы сами или только тот, кому мы разрешим;
  • Friendly Codes не затрагиваются и не приходится под них подстраиваться;
  • и, наконец, мы прыгаем туда, куда сами хотим, а не туда, куда можем.

Так что, идея не нова, она очевидна. Наконец, она реализована во множестве фантастических книг, а также в играх: Master of Orion, например. Вот, для того, чтобы реализовать ее и здесь, в VGA Planets, и тем поднять динамизм, а значит, и престиж игры, и была написана эта программа. Вот и вся предыстория.

File list.

STARGATE.EXE - исполняемый модуль STARGATE.RUS - данное описание на русском языке STARGATE.CFG - стандартный файл конфигурации

Hardware requirements.

IBM PC with:

  1. CPU 80186 and above
  2. FPU 8087 and above
  3. OS = DOS 5.0 and above
  4. Memory: Conventional only (~150K)
  5. Space: ~60K (with documentation).

Installation.

Никаких особенных требований нет. Программу можно поместить где угодно, лишь бы она могла быть найдена и выполнена HOST'ом, а потому лучше всего скопировать в каталог, где находится HOST.EXE (PHOST.EXE).

Command line syntax.

Примечание: Далее везде по тексту использование слова STARGATE подразумевает программу STARGATE.EXE, являющуюся add-on'ом к HOST. Слово StarGate относится собственно к строению на планете, исполняющему специальные функции.

Если запустить STARGATE -? , то можно увидеть следующую подсказку:

Usage: STARGATE [-G] [Host directory]
-G generate StarGate data

[Host directory] - каталог, с данными игры. Может отсутствовать, если это текущий каталог. -G - заставляет STARGATE сгенерировать файл начальных установок STARGATE.HST. Вызывается единожды для каждой новой партии с использованием этого addon'a.

Configuration file.

Файл имеет имя STARGATE.CFG и должен находиться в каталоге, содержащем данные партии. Именно там и только там он и ищется. Дело в том, что разные партии могут иметь разные настройки, поэтому конфигурация привязана к местоположению данных партии, а не к STARGATE.EXE. В настоящее время файл конфигурации может содержать следующие ключевые слова (в качестве примера взят файл со стандартными установками):

;StarGate 2.11 configuration file.
;Place it to game directory before game generation.

;StarGate configuration
StarGateEnable       = yes
StarGateCost         = 400
StarGateAddCost      = 1600
ClansForMaintenance  = 100
ExploreRange         = 50
ExploreActiveOnly    = yes
FuelBurnPer100kt     = 2
CaptureChance        = 0
ChaoticJumo          = no
ChaoticJumpRejectFor = 56

;Government level increase configuration
NatGovChangeEnable   = yes
NatGovChangeCostMC   = 60
NatGovChangeCostSU   = 30
NatGovLimit          = 9
GovUpPerTurn         = 1

;Mineral concentration increase configuration
MinConChangeCostMC   = 25
MinConChangeCostSU   = 20
MinUpPerTurn         = 10
  • StarGateEnable может принимать значения yes или no и, соответственно,разрешает или запрещает создание и использование StarGate'ов.
  • StarGateCost задает базовую стоимость постройки StarGate (см. раздел «Стоимость StarGate»). Может иметь значения в интервале 300…500.
  • StarGateAddCost задает масштаб расхода дополнительных ресурсов (см. раздел «Стоимость StarGate»). Может иметь значения в интервале 1000…3000.
  • ClansForMaintenance - регулирует минимальное количество кланов на планете, необходимых для нормального функционирования StarGate. В противном случае при нехватке людей для обслуживания, объект будет нести повреждения по 5% в ход, пока не достигнет уровня нормального обслуживания. При постройке недостаточным количеством людей, StarGate получится недоделанным, что отображается как повреждения, поскольку когда недостаток рабочих рук компенсируется только лозунгом «давай-давай!», качественной продукции не получается. ;) Может иметь значения в интервале 0…400.
  • ExploreRange задает расстояние, с которого может быть обнаружен StarGate. Как орбитальный объект, он не прячется дефенсами и потому может быть опознан несмотря на то, что сама планета не сканируется. Установка значения в 0 блокирует дальнее сканирование и требует явного прилета на планету, чтобы узрить StarGate в упор :) Максимальная дальность обнаружения - 70. Корабль должен иметь установленную миссию «Sensor Sweep» или «Dark Sense», если он надеется обнаружить StarGate. Подробности в разделе «Obtain conditions».
  • ExploreActiveOnly - StarGate может быть обнаружен с расстояния ExploreRange только в случае активности (если ExploreActiveOnly = yes).
  • FuelBurnPer100kt - задает количество топлива, сжигаемого при прыжке на каждые 100 кт массы корабя. Прыжок может быть бесплатный, :) если установлено значение 0. В качестве примера, при значении 10 Large Frighter с полной загрузкой (160 сам + 1200 карго + 100 в баке = 1460) сожжет 146 кт топлива. Обращаю Ваше внимание, что потребляются планетарые запасы топлива, а не корабельные. Округление расхода топлива, в случае необходимости, производится методом усечения до целого, поэтому корабли с массами 1460 и 1469 кт потребуют на переброску одинаковое количество топлива (для данного примера). Допустимый диапазон значений: 0..20.
  • CaptureChance. Вероятность захвата StarGate десантом. (по умолчанию 80)
  • ChaoticJump. Если разрешен, то корабли могут быть брошены StarGate в любое произвольное место карты. Поскольку в пересылке участвует только один StarGate (отправитель), то создание устойчивого гиперканала невозможно и точка выброски корабля непредсказуема. Кроме того, подобный вид работы требует от StarGate более значительных затрат энергии, что приводит к заметному росту потребления планетарного топлива. Во время прыжка существует 30% вероятность, что туннель потеряет стабильность и корабль получит некоторое количество повреждений. При этом возможно и полное разрушение корабля (с вероятностью ~23.8%). Системы маскировки корабля не могут работать в нестабильном гиперканале и потому отключаются (миссии Cloak и SuperSpy сбрасываются).
  • ChaoticJumpRejectFor - задает номер корпуса корабля, который не способен совершить Chaotic Jump (по умолчанию 56 - FireCloud).

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

  • GovUpPerTurn ограничивает количество апгрейдов строя на одной планете в течение хода (диапазон значений 1..8). Установка в 0 блокирует возможность изменения правительства.
  • NatGovChangeCostMC задает базовую стоимость улучшения правительства от «Anarchy» до «Pre-Tribal» в MegaCredits (диапазон значений 50…200).
  • NatGovChangeCostSU - то же самое, но в Supply Units (диапазон значений 25…100).

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

RequieredMC=NatGovLevel*NatGovChangeCostMC;
RequieredSU=NatGovLevel*NatGovChangeCostSU;

То есть, для перехода от «Representative» к «Participatory» потребуется заплатить 7*60 MC и 7*30 SU (для стандартных значений этих ключевых слов). Для того, чтобы достичь «Unity» потребуется еще 8*60 MC и 8*30 SU. Значит, если у нас «Representative», то от «Unity» нас отделяет 900mc и 450su. Легко видеть, что стоимость отдельного апгрейда невелика, но в сумме переход от «Anarchy» к «Unity» потребует заметных вложений средств даже при стандартных установках, что обеспечивает игровую живучесть такого механизма смены правительств.

Теперь, что касается ключевого слова NatGovLimit. По умолчанию оно имеет значение 9 и может находиться в пределах 5…20. Эта переменная задает максимальный уровень правительства, достижимый через данный механизм апгрейда. 9 - это «Unity» (180% налогов). То есть, Вы можете разгонять правительство до 400% налогов - одному богу известно, как оно при этом будет у Вас называться. PDV скромно именует такие виды общественного строя словом «Advanced». Использовать возможность достижения уровней Advanced допустимо только для HOST. PHOST гораздо умнее и сообщает о неизвестном типе правительства, сразу срезая его в Anarchy (20% налогов), поэтому STARGATE при работе под PHOST в любом случае проигнорирует установку NatGovLimit бОльшую 9-ти, сберегая Вам нервы и деньги.

О том, как использовать данный механизм со стороны игрока можно прочесть в разделе «Government level increase».

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

  • MinConChangeCostMC задает базовую стоимость улучшения концентрации в MegaCredits (диапазон значений 10..50). По умолчагию 25.
  • MinConChangeCostSU задает базовую стоимость улучшения концентрации в Supply Units (диапазон значений 10..50). По умолчагию 20.
  • MinUpPerTurn ограничивает количество ступеней апгрейда концентрации на одной планете в течение хода (диапазон значений 0..50). Установка в 0 блокирует возможность изменения концентрации.

Формулы, применяемые для расчета затрат MegaCredits и Supply Units тоже довольно просты и подчинены следующему параболлическому закону:

 MinConChangeCostMC*N*N-(N-1), где N - количество ступеней прироста концентрации минерала.

Данная формула позволяет с одной стороны достаточно дешево увеличивать степень концентрации по одному шагу (но медленно), а с другой можно поднять концентрацию быстро, но это будет очень дорого. Если при стандартной установке MinConChangeCostSU=20 подъем на одну ступень равен 20, то подъем на пять ступеней в ход уже равен 420 (и это только для одного минерала), дальше еще круче: 10 ступеней - 1820 SU, а по всем четырем минералам одновременно - 7280! И это только SU, а ведь нужно еще и 9100 MC. Так что базовые значения 20 и 25 это на самом деле не так халявно, как может показаться на первый взгляд.

Если значение в конфигурационном файле выходит за диапазон, то оно будет усечено автоматически до использования программой (в CFG-файле при этом, конечно, ничего не изменится). Ну и, как легко видеть в примере, строки, начинающиеся с ';' являются комментарием. То же самое касается и строк, начинающихся с '#'.

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

Obtain conditions.

Данный раздел разъясняет принцип обнаружения чужих StarGate. Были предприняты определенные усилия, чтобы с одной стороны предотвратить демаскировку планет (а зачастую баз - там обычно гнездятся старгейты), а с другой стороны все же предоставить возможность обнаружить чужой StarGate. При этом нужно было учесть не только свойства существующей игры, но и логику функционирования объектов марки StarGate. Практическая эксплуатация аддона привела к следующим правилам:

  1. Сканирование осуществляется после всех перемещений, т.е. и после гиперпереходов через StarGate включительно. Для аналогии с временем срабатывания миссии «Exploration». Почему так? Если Ваш корабль проходит на неотмеченный StarGate союзника, то весьма неплохо было бы сразу занести его в записную книжку, и очень странно, что корабль, находясь рядом с таким здоровенным объектом, мало того, только что воспользовавшись им, не может его заметить. :) А так очень похоже на обнаружение StarBase. Другие примеры не буду приводить, но из них тоже следует, что сканирование до гиперперехода противоречит здравому смыслу. Ну, и тормозит информацию на один ход без всякой высшей цели.
  2. Ваш корабль должен иметь установленную миссию «Sensor Sweep» или «Dark Sense». В этом случае StarGate может быть обнаружен на расстоянии ExploreRange (параметр конфигурации, по умолчанию равный 50) от корабля (при условии наличия активности этого объекта, если ExploreActiveOnly = yes). То есть, рассмотреть с расстояния в 50 ly, что делается на орбите планеты корабль не может, но способен засечь энергетический всплеск в момент открытия гипертуннеля.
  3. Ваш корабль с совершенно любой миссией способен увидеть StarGate, находясь на орбите той же планеты, что и он. И тут полная аналогия с обнаружением StarBase. Было бы странно не разглядеть такую бандуру (StarGate) в упор. :)

В каждом из двух вариантов, Вы получите сообщение об обнаружении чужого StarGate. Кроме того, в итоговом сообщении (с заголовком «Scanner summary») номер этого StarGate так же будет присутствовать. Вот тут есть некоторая хитрость. Итоговое сообщение будет содержать этот номер, независимо от того, видите ли Вы данный StarGate на текущем ходу или нет (просто вместо записывания на бумажке Вы видите эту информацию в клиенте). Вы получаете эту информацию каждым ходом, независимо от повторного сканирования подозрительного на StarGate района. Но на самом деле Ваша записная бумажка не знает ничего о том, действительно ли еще существует там StarGate. Если StarGate противника был уничтожен в результате действий некоторой третьей расы, то достоверно убедиться в этом Вы можете только посетив планету, где он находился. В случае отсутствия там StarGate, Вы получите сообщение о его исчезновении и список «Scanner summary» более не будет показывать Вам этот StarGate. Понимаю, что есть визуальные способы, иногда позволяющие уверенно заявить, что планета поменяла владельца и притом насильственно. Но даже в этом случае Вы никак не можете знать, стояло там разрешение использования StarGate на расу агрессора или нет, то есть 100% уверенности уничтожения StarGate в результате атаки у Вас быть не может. Правило смены владельца StarGate можно поглядеть далее в разделе «Принадлежность StarGate». Таким образом, Вы не можете косвенно узнать о смене власти на планете XXX, просто глядя в записную книжку (сообщение «Scanner summary»).

For GameMaster.

Для подключения STARGATE к новой или уже имеющейся партии нужно выполнить следующие операции:

Произвести запуск STARGATE.EXE с параметром -G и именем каталога с данными хоста. В указанном каталоге появится небольшой файл STARGATE.HST. (для версии 2.10 его длина составляет 2550 байт)

а) При использовании HOST.

Добавить строку запуска STARGATE.EXE в файл AUXHOST2.BAT (или AXWHOST2.BAT для WHOST):

   STARGATE.EXE %1 

Как Вы можете видеть, запуск STARGATE.EXE должен производиться во второй фазе поиска Shell.

б) При использовании PHOST ниже v3.

Изменить стартовый BAT-файл и привести зону запуска хоста к следующему виду:

   PHOST.EXE -1 %1
   PHOST.EXE -2 %1
   STARGATE.EXE %1
   PHOST.EXE -3 %1 

в предположении, что %1 есть имя каталога с данными хоста. Как легко заметить, запуск STARGATE.EXE также должен производиться во второй фазе поиска Shell, т.е. после второй фазы работы PHOST.

в) При использовании PHOST v3 и выше.

Вставить вызов STARGATE.EXE %1 в AUXHOST2.INI.

Замечание. Если игра идет на карте с уменьшенным числом планет, то при ChaoticJump=yes нет нужды беспокоиться о кораблях проказниках. Они не смогут добраться до запрещенных планет таким способом.

Operation precedence.

  1. Производится ремонт повреждений StarGate.
  2. Контролируется уровень повреждений StarGate, зависящий от качества обслуживания, т.е. от количества кланов.
  3. Контролируется участие StarGate в бою, определяется наличие и величина полученных повреждений.
  4. Выполняется контроль существования StarGate на планете. Если она поменяла владельца и он не числился среди пользователей данного StarGate, то:
    • смена владельца вызвана атакой корабля - StarGate уничтожается;
    • смена владельца вызвана захватом десантом - StarGate может быть поврежден или уничтожен.
  5. Производится отработка команд присваивания прав пользования StarGate.
  6. Открываются гипертуннели и происходит перемещение кораблей.
  7. Постройка StarGate.
  8. Корабли сканируют на предмет обнаружения чужих StarGate.
  9. Улучшение правительств.
  10. Увеличение концентрации минералов.

STARGATE производит свои действия во второй фазе поиска shell, следовательно уже после перемещения кораблей и боев между ними. Отсюда, хочу обратить внимание на следующие моменты:

  • Вы не можете увести свой корабль из под атаки, пользуясь StarGate, в расчете на то, что Ваш прыгнет, а вражеский - нет. Ваш, конечно, прыгнет, если от него чего-нибудь останется. :)
  • Подъем строя аборигенов на отбитой у Вас этим ходом планете выполнен не будет, так же как и постройка StarGate.
  • Если корабль-сканнер будет сбит в районе StarGate, Вы не узнаете о наличии на планете данного объекта.
  • Если Вы строите StarGate и Вам немного не хватает ресурсов, то помните, что постройка пойдет уже после того, как на планете добудутся минералы и появятся деньги от налогов, то есть Вы можете использовать новые ресурсы прямо по ходу их производства.

For Players.

Общение с программой STARGATE реализовано на принципе отправки команд в сообщениях самому себе. Форматы команд следующие: 1. Постройка StarGate:

   SG build <ID> <TDM$>

<ID> - ID планеты, на которой нужно построить старгейт.
<TDM$> - литералы имен дополнительных ресурсов, используемых для постройки расход будет идти в том порядке, как написано.

   Пример: SG build 253 $MTD

Задает постройку StarGate на планете #253. При этом дополнительные ресурсы расходуются в следующем порядке: Megacredits, Molybdenium, Tritanium, Duranium.

Обратите внимание, что изначально по умолчанию потребляются минералы (установка TDM$). Не ошибитесь при наборе команды постройки. В примере умалчиваемый порядок изменен!

2. Открытие гиперканала:

   SG open <ID> to <TO_ID>

<ID> - StarGate отправитель
<TO_ID> - StarGate приемник

   Пример: SG open 253 to 413

Происходит открытие гиперканала с планеты 253 на планету 413. Все корабли, удовлетворяющие условиям прохода будут отправлены.

Условия прохода:

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

Если StarGate открывается на хаотический прыжок (Chaotic Jump), то в качестве ID приемника следует установить число 9000.

   Пример: SG open 253 to 9000

3. Установка прав на использование StarGate другими расами:

   SG allow <ID> for <LIST>

<ID> - StarGate, для которого устанавливаются права
<LIST> - список рас, которым разрешено использование

   Пример: SG allow 253 for 147B

Разрешает пользоваться StarGate на планете #253 следующим расам: Fed, Fascist, Crystal, Colonial. Если Вы при этом, например, Lizard, то Вам все равно разрешается пользоваться своим StarGate, хоть Вы и не указали этого явно. :)

4. Улучшение правительства аборигенов:

   SG upgov <ID> by <NUMBER>

<ID> - ID планеты, на которой будет повышаться уровень првительства аборигенов
<NUMBER> - на сколько уровней производится повышение

   Пример: SG up 253 by 3

Пусть уровень правительства сейчас = Anarchy. Тогда произойдет повышение до Tribal, если конечно имеется достаточно ресурсов.

Примечание. STARGATE не хранит данные об уровне правительства в каких-либо внутренних структурах, а производит изменения непосредственно в данных хоста. Поэтому, даже снятие этого add'она на каком-то ходу ничего уже не изменит в планетарных данных - количество получаемых денег не упадет, т.е., программа честно вкладывает Ваши средства! :)

5. Маркировка StarGate:

   SG mark <ID>

<ID> - ID планеты, которую Вы хотите пометить, как имеющую StarGate.

С момента выполнения команды итоговое сообщение о сканировании («Scanner summary») будет содержать и этот StarGate.Данная команда предоставляет возможность отметить чужой старгейт, базируясь не на собственной информации (полученной от своих кораблей), а на косвенных данных личных наблюдений или по информации от союзников.

6. Размаркировка StarGate:

   SG unmark <ID>

<ID> - ID планеты, которую Вы хотите пометить, как неимеющую StarGate.

С момента выполнения команды итоговое сообщение о сканировании («Scanner summary») более не будет содержать этот StarGate. Данная команда предоставляет возможность снять отметку о наличии чужого старгейта на планете <ID>. Введена, как и предыдущая команда, для возможности управления списком «Scanner summary» в случае наличия косвенных данных об уничтожении StarGate.

7. Ремонт StarGate:

   SG repair <ID>

<ID> - ID планеты, на которой будет производиться ремонт StarGate

8. Увеличение концентрации минералов

   SG upmin <ID> by <NUMBER> for <NTDM>

<ID> - ID планеты, на которой будет повышаться концентрация
<NUMBER> - на сколько уровней производится повышение
<NTDM> - список минералов, концентрацию которых надо поднять (соответственно Neutronium, Tritanium, Duranium, Molibdenium).

Если после слова «for» не указан ни один флаг, то будет увеличена концентрация всех минералов. Тот же эффект будет и в том случае, если кроме списка флагов опущено и само слово «for».

Подъем концентрации выполняется в том порядке, как выше были перечислены минералы, порядок следования самих флагов роли не играет.

   Пример 1: SG up 253 by 3 for DN 

Поднимется уровень концентрации сначала для Neutronium, потом для Duranium (при условии, что хватит планетарных ресурсов MC и SU). Tritanium и Molibdenium не изменятся.

Примечание. STARGATE не хранит данные о концентрации минералов в каких-либо внутренних структурах, а производит изменения непосредственно в данных хоста.

Все эти команды полностью регистронезависимы.

Если, используемый Вами коммандер, не PDV, то скорее всего Вам придется набирать команды вручную. В этом случае не забудьте, что для PHOST 3 требуется в первой строке ввести символ '<', который сообщает командному процессору PHOST, что команда предназначена не ему, что воспрепятствует удалению сообщения на этапе просмотра TRN.

Проще конечно использовать PDV, который может генерировать команды сам по результатам ввода в диалоговые окна, либо по горячим клавишам. Например, команда «SG upgov» может быть подана из окна планеты клавишей Shift-F4.

Программа STARGATE всегда присылает Вам хотя бы одно письмо в ход. Это письмо содержит текущую конфигурацию addon'а (не обязательно совпадает с файлом STARGATE.CFG у Вашего ГМ) и является, в том числе, признаком работы STARGATE. Вы можете узнать по письму, производились ли какие-нибудь изменения в конфигу- рации STARGATE.

Коммандер может использовать этот момент для установления факта наличия в партии данного addon'а.

В случае использования в качестве коммандера PDV, все объекты, приходящие от STARGATE в сообщениях, будут подсвечиваться на карте. Список всех StarGate можно получить клавишей Alt-G, подсветить на карте клавишей Ctrl-G и еще многое другое.

STARGATE все равно, сколько одинаковых команд Вы подадите для каждого объекта. Дейтвительной является только одна - последняя. Все предыдущие будут проигнорированы. Например, если Вы пытаетесь открыть StarGate #21 на планету #215

 SG OPEN 21 to 215

а позже подаете еще и команду на открытие на #317

 SG OPEN 21 to 317

то первая команда будет игнорирована и StarGate откроется на 317-ю планету.

Стоимость StarGate.

При постройке StarGate Вы должны затратить некоторые ресурсы, а именно:

 Tritanium  : cost
 Duranium   : cost
 Molibdenium: cost
 Megacredits: cost

Параметр «cost» по умолчанию равен 400 и может изменяться в пределах от 300 до 500 при помощи ключевого слова StarGateCost.

Кроме того, Вы должны предусмотреть, что постройка StarGate потребует дополнительные ресурсы, которые могут представлять собой любую комбинацию из вышеуказанных компонент в любом процентном соотношении в суммарном размере addcost. Параметр addcost по умолчанию равен 1600 и может изменяться в пределах от 1000 до 3000 при помощи ключевого слова StarGateAddCost.

Таким образом, Вы имеете возможность использовать при постройке излишки любого минерала, что придает дополнительную гибкость расходу ресурсов и сокращает залежи «бесполезных» минералов. Говоря проще, Вы можете расплатиться с рабочими не только деньгами, но и «натурой», в смысле минералами. :)

Следовательно, постройка StarGate потребует: 400 Tritanium + 400 Duranium + 400 Molibdenium + 400 Megacredits + 1600 любых заданных ресурсов. Эти величины позволяют Вам просто привезти все необходимые ресурсы при помощи стандартного Large Frighter'а (конечно, при условии, что дополнительным ресурсом являются Megacredits). Данные ценовые характеристики могут быть изменены Game Master'ом при генерации игры, а также в процессе игры в любой момент, о чем игроки сразу же получат соответствующее уведомление. Но! Смена цены StarGate в ходе партии нежелательна по чисто психологическим соображениям, поскольку вряд ли участни- кам понравится, что StarGate неожиданно подешевел и теперь «соперник сможет строить их дешевле, чем мы строили их сами». Подобные аргументы могут быть выдвинуты и при подорожании StarGate. Так что, скорее всего, нужно будет или достигнуть всеобщего согласия или отказаться от смены начальных установок, иначе могут возникнуть конфликты между игроками. Следовательно, Game Master должен изначально отнестись к вопросу настройки цены очень внимательно.

Может показаться, что цена StarGate очень завышена. Ну, во-первых, она не так уж и велика, как может показаться на первый взгляд, сравнивая ее со стоимостью StarBase - ведь после постройки StarGate ничего, кроме топлива, не потребляет, в отличие от базы, которую надо постоянно кормить минералами и деньгами для ее развития, защиты и постройки кораблей. А, во-вторых, такая цена ставит барьер на пути превращения игры в сплошное прыгание. Дешевизна позволит Вам построить StarGate почти на всех планетах и вообще прекратить летать. Это не совсем то, чего планировалось достичь в данном проекте. StarGate - это региональный объект, т.е. тот, к которому Вы свозите грузы для отправки, тот, который помогает Вашим кораблям быстро перемещаться к угрожаемым участкам, тот, который дает возможность быстро снабжать выпускающие базы, когда все окрестные запасы минералов подошли к своему логическому концу, и т.п. Это не объект для каждой планеты Вашей империи. Помните это, и тогда цена перестанет казаться Вам чрезмерной. Вы почуствуете, что она наоборот, слишком мала. Один StarGate на 20-30 планет - это вполне нормально при среднепланетных расстояниях порядка 90 LY (для стандартных размеров карт). Неужели для ресурсов стольких планет цена StarGate кажется большой? Ведь за эту цену Вы получаете то, что вообще цены не имеет - время! Вы быстро развиваетесь, быстро расселяетесь и быстро строите боевой флот. По-моему, оно того стоит.

Ремонт StarGate.

Стоимость ремонта напрямую связана со стоимостью StarGate, а именно с параметром StarGateCost. Формула расчета следующая:

   RepairCost = StarGateCost / 100 * 3

(3 - поскольку на постройку затрачивалось 3 минерала)

Т.о. ремонт 1% повреждений обойдется при установках по умолчанию в 12 SU.

Для ремонта достаточно указать команду SG repair <ID>. Количество выделяемых на ремонт SU не задается, поскольку вроде бы незачем.

Принадлежность StarGate.

Полное право управления StarGate принадлежит только владельцу планеты, на кото- рой он расположен. Если Вы подали команды, а планета была отбита, то команды естественно выполнены не будут.

Теперь о правилах перехода прав владения. :) Будем считать, что StarGate ранее принадлежал расе Feds, а на текущем ходу планета уже чмслится в рядах расы Lizard. Какие тут возможны варианты.

  1. StarGate передается вместе с планетой расе Lizard без каких-либо повреждений только в том случае, если раса Lizard числилась среди пользователей данного StarGate, то есть для нее когда-то была дана команда «SG ALLOW <ID> for 2». Поскольку контроль существования StarGate опережает команду разрешения использования, то ее нужно дать заблаговременно, т.е. хотя бы за ход до передачи планеты, иначе… (см. следующие варианты). Хочу отметить, что в этом случае способ смены владельца планеты не играет никакой роли. Вы можете передать ее сами командой «Give Planet ### to ##» (на PHOST), либо ее могут взять десантом или боем (так что будьте осторожны, разрешая кому-то использовать Ваш StarGate).
  2. Если первое правило не выполнено, то есть, новый владелец планеты со StarGate не имел разрешения на использование данного StarGate, тогда производится проверка возможности захвата планеты десантом. Вероятность успешного захвата зависит от параметра конфигурации CaptureChance. Если количество дефенсов планеты 90 или более, то при высадке десанта StarGate не получает повреждений, в противном случае, их тем больше, чем меньше осталось дефенсов.
  3. Если в результате атаки десанта или боя с кораблем планета поменяла владельца и не имеет дефенсов, StarGate уничтожается безусловно. В бою с кораблем StarGate так же может получить повреждения, даже если при этом планета не была захвачена.

Из последних двух правил можно сделать простой вывод: если дефенсов на планете нет, то захватить десантом ее StarGate невозможно. Но помните, что при нуле дефенсов даже бой с фрейтером окажется для StarGate фатальным. Выбор за Вами.

Использование StarGate.

При помощи диалогового окна (для PDV) Вы указываете планету с целевым StarGate. Это все! В другом коммандере Вы набираете команду в окне исходящих сообщений самостоятельно, что тоже достаточно просто.

Все Ваши корабли, которые к концу фазы движения окажутся на орбите планеты- отправителя и при этом не будут иметь точки назначения, переместятся к планете- цели. Последняя оговорка подразумевает следующее: если разрешены Gravity Wells, а обычно это так, то Вы можете направить корабль не прямо на планету, а в ее гравитационный колодец. В этом случае корабль все равно будет находиться на планете, но при этом он имеет точку назначения в пределах ее гравитационного колодца, а следовательно, не отправится в путешествие через StarGate. Это позволяет Вам отправить только часть своих кораблей с данной планеты, а часть оставить на месте.

Обратите внимание, что Ваши корабли, не имеющие топлива, не будут отправлены. Это сделано специально, во избежание неожиданного отлета только что построенных на базе кораблей.

Важное замечание, касающееся прицепов.

Практическая эксплуатация аддона выявила еще одну несовместимость THOST и PHOST, вобщем-то неважную, но существенную для STARGATE. Корабль-прицеп (которого тянут миссией Tow) ведет себя по разному на этих хостах. В том случае, если ваш тягач идет в гравитационный колодец планеты, то:

  • для THOST: прицеп попадает на планету без точки назначения и может уйти по гиперканалу, открытому StarGate;
  • для PHOST: прицеп попадает на планету с точкой назначения, как и тягач, а следовательно, по гиперканалу не пойдет. Возможен впрочем случай, когда на варпе товера, идущего прямо на планету, прицеп не доходит до планеты, тогда его точка назначения тоже находится в колодце, хотя товер на планете и без точки назначения.

Ну, со своими-то все просто. А как обстоит дело с кораблями других рас? Тут несколько посложнее. Чужой корабль может воспользоваться Вашим StarGate только, если Вы дадите соответствующее разрешение этой конкретной расе использовать данный StarGate. При этом перемещение может производиться к любому другому Вашему StarGate, в том смысле, что разрешение на планете-цели не требуется. Саму цель по-прежнему задаете Вы. Этого никто другой сделать не может. Будьте внимательны, отправляя по чьей-то просьбе чужой корабль. С ним могут нежданно отправиться и Ваши.

Чужие корабли перебрасываются независимо от наличия на них топлива, т.о. Вы можете быстро доставить безтопливных бродяг к себе на базу, где их принудят к сдаче (Важно: не забывайте про разрешение использования!).

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

В общем случае правила таковы:

  1. Корабли одной расы могут перемещаться между своими Stargate в любое время.
  2. Чужие корабли могут перемещаться между Stargate, принадлежащими другой расе только, если Stargate-отправитель разрешает это.
  3. Любые корабли могут перемещаться между Stargate, принадлежащими разным расам только если оба, и Stargate-отправитель, и Stargate-цель, разрешают это.

Третий момент, по совету от Alexander Babakov, поясню на расах.

Пусть Ваша раса - Феды. Через Ваш StarGate-отправитель корабль Лизарда идет на StarGate-цель Птицы. Для успешного прохода нужно, чтобы не только Вы, Фед, разрешили проход, но и StarGate-цель был согласен принять Лизардовский рейдер, что от Вас уже никак не зависит :) Hа цели тоже должно стоять разрешение на Лизарда. Hе на феда! Цель полета для StarGate-отправителя указывается Федом. Не лизардом!

Приведенные выше три правила гарантируют, что, во-первых, никто не сможет воспользоваться Вашим StarGate для отлета и, во-вторых, никто не сможет неожиданно свалиться Вам на голову всей ударной мощью без Вашего разрешения. Чужие корабли могут перемещаться через Ваш StarGate только с Вашего разрешения и никак иначе.

Разрешения StarGate отправителя недостаточно для прихода чужого флота к Вам! Поэтому, Ваш хитрый союзник, обладающий правом пользования Вашим StarGate, не может, пользуясь этим, обрушить Вам на голову флот третьей расы на основе только своих прав, а сам как бы постоять в сторонке и ни при чем. :) Т.о., третье правило использования StarGate гарантирует Вас от «случайного» визита Вашего противника, имеющего право пользования StarGate Вашего союзника.

Вы можете легко установить связь с Вашим отдаленным союником, просто разрешив ему использовать Ваш StarGate. Тогда его корабли с его собственного StarGate смогут в любое время прибыть к Вам.

Некоторые замечания по физике процессов гиперперехода. :)

Подчиняясь команде игрока об открытии туннеля, StarGate-отправитель начинает зарядку энергонакопителей, потребляя при этом планетарные запасы топлива. Поисковые системы пытаются установить связной туннель со StarGate'ом-целью, необходимый для согласования пространственно-временных координат. Напряженный процесс заряда продолжается целый месяц, к концу которого StarGate-отправитель высвобождает чудовищный импульс энергии, мгновенно пробивающий канал перехода для кораблей и происходит их отправка. В силу большой энергоемкости процесса, от обслуживающего персонала требуется очень тщательно следить за исправностью всех компонент StarGate, поскольку малейшая неустойчивость канала способна привести к серьезным повреждениям, а то и к гибели пересылаемого корабля. К тому же, неисправный StarGate-отправитель может не удержать наводку туннеля на гипермаяк StarGate-цели, что часто приводит к отклонениям точки выхода кораблей из гиперканала от расчетной. Но важно отличное техническое состояние не только StarGate-отправителя. От неисправности StarGate-цели, конечно, в меньшей степени зависят жизни членов экипажей кораблей, но вот качество передаваемого им сигнала позиционирования может очень существенно повлиять на точность и стабильность наводки гипертуннеля. Корабли могут вываливаться из перехода в самых разнообразных местах, причем разброс точек выхода стремительно нарастает пропорционально уровню неполадок StarGate-цели. Вывод: всегда протирайте контакты чистым спиртом! Толстым слоем :)

Требования к версии.

Согласовано работать со STARGATE 2.10 может PDV 4.53. Он имеет весь необходимый набор шаблонов для распознавания ответов STARGATE, а также возможности по правильной автогенерации команд.

Замечания мыльте сюда:

Oleg Shpakov 2:5036/31

              pdvc ЭТ mail.ru
stargateaddon.txt · Последние изменения: 2008/01/02 14:28 — xxela