Elite Games - Свобода среди звезд!

X2 - Скрипты - Транспортный отдел

ОПИСАНИЕ

Скрипт: Транспортный отдел
Версия: 2.0 beta
Автор: DragonP



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

Внимание в управлении скриптом сделаны значительные изменения. Прежде чем использовать прочтите описание.

Кратко о том, что изменилось:
1. Транспорты начали использовать джампдрайв (при его наличии).
2. Появилась возможность не прерывая работы скрипта, изменить параметры его работы.
3. Добавлена возможность в любой момент получить отчет о текущих установках.
4. Улучшен механизм выбора необходимых ресурсов. В предыдущей версии, если в пределах досягаемости не было самого необходимого ресурса, корабли останавливались и ожидали его появления. Теперь при возникновении подобной ситуации корабль полетит за следующим по важности ресурсом.
5. Если не используется джампдрайв, то проверка наличия ресурса у продавца и цена проверяются по прохождении каждых врат. Если джамп используется, то эта проверка производится после прыжка.
6. В комплект к скрипту вошел скрипт корабль-склад ( я воспользовался идеей ув. Xenon Tomb), но учтите данный скрипт является приложением к ТО и отличается от скрипта Xenon Tomb’a. Хотя он может работать и без ТО. Описание читайте ниже.
7. Денежные транзакции теперь можно вести со счетом станции или игрока (по умолчанию счет станции). Данный параметр можно изменять в любой момент.

Что делает ТО:
1. ТО берет под свое управление все транспортные корабли приписанные к станции не выполняющие в данный момент никакие команды. Поступив в распоряжение ТО корабли приступают к снабжению станции ресурсами и реализации производимой продукции.
2. ТО приблизительно каждые 5 – 10 минут (зависит от количества открытых игроком секторов), обновляет список приписанных кораблей. Соответственно чтобы передать ТО новый транспорт достаточно приписать его к фабрике на которой запущен скрипт ТО и в течении нескольких минут корабль получит задание (если он пристыкован к Носителю, отстыкуйте его).
3. Если за время подлета к станции или по прохождении очередных врат изменяется порядок цен не в пользу игрока, то товар куплен/продан не будет, а корабль найдет другую станцию и полетит к ней.
4. Перед вылетом за ресурсами, рассчитывается сумма необходимая для закупки (в зависимости от установки, на счету станции или на счету игрока), если денег мало, то корабль не полетит. Если деньги были сняты со счета станции во время полета, то будет куплено столько ресурса на сколько хватит денег. Во избежание простоя из-за отсутствия денег, держите на счету станции миллион или переведите расчеты на счет игрока.
5. ТО отслеживает действия всех транспортных кораблей (в том числе работающих под стандартными торговыми скриптами) и старается исключит отправление для закупки или продажи к одной станции более чем одного транспорта. Также отслеживается какие товары и в каком количестве находятся на борту приписанных к станции кораблей занимающихся куплей-продажей и в зависимости от этого формируется необходимый список покупок или продаж.
6. Корабли находящиеся под управлением ТО выполнив очередную команду, будут ожидать следующую оставаясь пристыкованными к последней станции.
7. Регулировка цен продажи и покупки устанавливается в настройках станции.
8. Количество прыжков для покупки ресурсов и продажи продукции разделены. Для покупки устанавливаются в установках станции, для продажи специальным скриптом настройщиком. Также реализована возможность блокировать функции продажи, это сделано для удобства организации производственных цепочек.
9. Корабли под управлением ТО умеют продавать докам продукцию отсутствующую в списке. Это сделано в связи с тем, что прилетев на корабле сам игрок может смело продать любое оборудование, а вот корабли под управлением стандартных торговых скриптов сделать этого не могут. Я эту несправедливость устранил.
10. ТО отслеживает какие ресурсы уже куплены и находятся в трюмах кораблей возвращающихся на базу и те ресурсы за которыми только летят и исходя из этого рассчитывается следует отправлять корабли за этим ресурсом еще или нет.
11. ТО старается продавать продукцию отправляя ее обратным рейсом на транспортах привезших ресурсы. В случае переполнения складов продукцией все транспорты не занимающиеся в данный момент поставкой или выполнением какого-нибудь приказа будут отозваны и вернуться на базу для развоза продукции.
12. Станции-поставщики выбираются по критериям мин.количество прыжков, наличие продукции не менее 17% (этот параметр теперь настраиваемый) размера грузового трюма и цена не выше мин.цены установленной для покупки.
13. Станции-покупатели по критериям мин.количество прыжков, требуемое количество не менее 30% от загруженного в корабль продукта, цена не ниже заданной.

Установка: (не забудьте сделать сейв игры)

Для тех, кто использовал предыдущую версию скрипта:
(Это важно прочтите)
1. Остановить ТО на всех станциях его использующих и сохраниться. Учтите, должны остановиться все транспорты работающие под скриптом ТО вер.1 (бета), т.е текущая команда должна стать «Нет команд».
2. Выйти из игры (полностью, закрыть ее)
3. Скопировать файлы по одноименным папкам и запустить игру.
4. Загрузить сейв и наслаждаться. :)
Не выполнение этих инструкций может привести к зависанию при загрузке сейва.

Для тех, кто устанавливает скрипт впервые:
1.Скопировать файлы скрипта по одноименным папкам.
2.Запустить игру и загрузить сейв.

Запуск:

После установки скрипта в командном меню станций появятся две команды:

1. Работа с транспортным отделом. [ТранспортОтдел]
2. Изменение установок транспортного отдела. [TO_setup]

Перед запуском убедитесь, что станция на которой вы запускаете скрипт, имеет приписанные к ней транспортные корабли. Корабли не должны быть загружены каким либо товаром (иначе эффективной работы не получиться) и на них установлены Торговые программные модули МК1 и МК2. Если ваши корабли пристыкованы к носителю отстыкуйте их (это относится только к кораблям пристыкованным к носителям, отстыковывать от станций не надо).


Работа с транспортным отделом. [ТранспортОтдел]

Запуск производится из командной консоли станции. Пункт «Работа с транспортным отделом» Эта команда имеет один параметр, который может принимать значения от 0 до 2.

Первый параметр :
За этим параметром сохранилось прежнее назначение и добавилось еще одно.
Значение Функция
0 Расформировать ТО.
1 Создать ТО.
2 Вывести отчет о текущих установках ТО.

1- Создать ТО.
Вызов этой команды приводит к созданию ТО на станции. Станция находит все приписанные к ней корабли и берет их под свое управление.
После старта ТО, корабли стартуют не сразу, а в течении 1-8 игровых минут. Это связано с тем, что ТО будет производиться поиск приписанных корабле, а эта процедура выполняется в фоновом режиме во избежание затормаживания игры, т.к. список обновляется каждые 3-5 минут, а под скриптом может работать много фабрик пришлось пойти на эти меры, но не волнуйтесь подобная задержка только один раз при создании отдела, далее тормозов не будет. Вообще, скорость зависит от количества открытых секторов, максимальное значение это когда открыта вся карта.

Когда приписываете корабли к станции, обращайте внимание на класс контейнеров которые они могут перевозить. Например, если приписать к «кристалке» кучу боронских мант, то фабрика так и не получит ни одной кремневой пластины. Лучший выбор на мой взгляд «Сплитский крокодил», но каждому свое. Главное апгрейды скорости и грузовых отсеков по максимуму.
Еще, если все приписанные корабли стоят в режиме ожидания, а ресурсы на станции почти на нуле, не спешите ругать скрипт проверти цены и наличие денег. Возможно нет требуемого товара в пределе указанных прыжков или на базе приписки нет денег (это для варианта денежных транзакций со счета базы приписки).

0 — Расформировать ТО.
Данная команда производит роспуск ТО на станции. Для достижения завершенности процесса, либо подождите несколько минут пока корабли перевозящие уже купленный ресурс достигнут станции, либо после запуска ТО с этим параметром, можно вручную дать кораблям команду «Нет команд», но в этом случае в трюмах может остаться купленный или непроданный товар. Останавливайте работу ТО только используя команду «Работа с транспортным отделом» с параметром 0. Если вы просто дадите команду «Нет команд» в слоте станции из которого запускали ТО, то остановка скрипта не произойдет.

2 — Вывести отчет о текущих установках ТО.
Это новая функция ТО. Теперь в процессе игры вы можете посмотреть все важные настройки ТО на текущей станции. Вызвав команду с этим параметром, вы получаете сообщение с полным отчетом о установках станции.

Все указанные в отчете параметры могут быть изменены игроком, не прерывая работы ТО.


Изменение установок транспортного отдела. [TO_setup]

Прежде чем рассматривать работу настроечного скрипта, давайте рассмотрим настройки которые производятся из меню «Настойки станции» клавиша «d».
Из этого меню стандартно настраиваются цены продажи и покупки. Немного изменено функциональное значение для параметра «Кол-во прыжков». Этот параметр теперь отвечает за количество прыжков для закупа ресурсов, на кол-во прыжков для продажи он не влияет. Все остальные параметры также имеют свои стандартные функции и учитываются ТО при работе. Далее рассмотрим работу настроечного скрипта:
Имя этого пункта в командном меню станции говорит само за себя. Вызвав этот пункт вы приступаете к изменению настроек ТО. Внимательно изучите все пункты настроек, т.к. неправильное изменение настроек может привести к неправильной работе ТО (в смысле экономической работы, а не работы самого скрипта). Рассмотрим каждый пункт по порядку:


Максимальное количество прыжков для продажи.

Как и в предыдущей версии скрипта, кол-во прыжков для продажи и покупки ресурсов разделены. Данный параметр отвечает за максимальное количество прыжков для реализации продукции станции. Он может принимать следующие значения:
Отрицательное число – запретить ТО заниматься реализацией продукции.
0-99 – воспринимается как кол-во прыжков для реализации продукции.
100 и более – не менять текущее значение.
Значение при запуске по умолчанию, соответствует кол-ву прыжков для закупа ресурсов.

Запас места под Батареи для прыжкового двигателя.

Лимит места в трюме транспортного корабля под батареи для прыжкового двигателя. Указывается в процентах от общего объема трюма корабля. В случае, если прыжковый двигатель не установлен, то место резервироваться не будет. Значения:
0 – не изменять текущего значения.
1-100 – процент зарезервированного места.
Значение по умолчанию – 10%.

Минимальный запас продукции на складе.

Минимальное количество продукции на складе, до достижения которого не будет производиться реализация. То есть, если количество продукции меньше этого значения, то транспорт не будет заниматься реализацией до тех пор, пока количество не превысит этого значения. Указывается в процентах, от максимально-возможного количества продукции на складе.
0 – не изменять текущего значения.
1-100 – процент минимального запаса продукции на складе.
Значение по умолчанию – 20%.
Рекомендация:

Максимальный запас продукции на складе.

Максимальное количество продукции на складе в процентах от максимально-возможного, после которого всем свободным транспортам будет отдан приказ «Вернуться на базу» для реализации накопившейся продукции.
0 – не изменять текущего значения.
1-100 – процент максимального запаса продукции на складе.
Значение по умолчанию – 70%.
Рекомендация: Это значение имеет очень важное значение и должно настраиваться в зависимости от производимой фабрикой продукции, кол-во за цикл и времени производства, а также от скорости и количества приписанных к станции кораблей. Чем больше кол-во продукции производимой за цикл и меньше кол-во транспортов, тем меньше должно быть это число. И соответственно наоборот. 70% — значение более-менее универсальное и подходит для большинства станций, но на «батареичницах» и подобных станциях возможны кратковременные простои из-за переполнения склада. О решении этой проблемы ниже.

Минимальный запас ресурса на складе.

Минимальный запас ресурса на складе, указанный в процентах от максимально-возможного. Пока количество ресурса на складе превышает это значение, транспорты не будут осуществлять поиск и доставку этого ресурса.
0 – не изменять текущего значения.
1-100 – процент максимального запаса ресурса на складе.
Значение по умолчанию – 70%.
Рекомендации: Если среди ресурсов станции есть дефицитный ресурс и постоянно ощущается его нехватка или происходит большой расход ресурса за цикл, то следует немного снизить это значение.

Минимальный запас ресурса на складе у продавца.

Кол-во ресурса которое должно быть в наличии у продавца, указанное в процентах от требуемого кол-ва ресурса на базе приписки. Если кол-во ресурса меньше, то транспорт на эту станцию на полетит.
0 – не изменять текущего значения.
1-100 – процент минимального запаса ресурса на складе у продавца.
Значение по умолчанию – 15%.
Рекомендации: Значение 15% подобранно экспериментальным путем и подходит для всех типов станции, но для особых ситуаций сделал его изменяемым.

Денежные операции со счетом -

Теперь в ТО предусмотрены два варианта денежных транзакций. По умолчанию работа ведется со счетом базы приписки, но изменив это значение вы укажите ТО вести расчеты со счета игрока. Соответственно, если производится закуп или продажа продукции со станций игрока, так же работающей со счетом игрока, то деньги не переводятся, а просто осуществляется перегрузка продукции. Если данная операция производиться со станциями AL или станциями игрока работающими с собственными счетами, то переводы осуществляются стандартно со счета на счет.
0 – Используется счет станции.
1 – Используется счет игрока.
Значение по умолчанию – счет станции.

Если вы сбили установки и хотите восстановить значения по умолчанию, то перезапустите ТО с параметром «1», без предварительной остановки ТО.


Как используется джамп двигатель.

Если на вашем транспорте установлен джамп, то корабль начнет его использовать. В грузовом трюме будет оставлено место необходимое для батареек. Количество места устанавливается игроком. Заправляться корабль будет в основном на базе приписки, вот варианты заправок в порядке их приоритетности.
1.Заправка на базе приписки или любой вашей станции, если корабль к ней пристыкован и на станции нет энергетического кризиса, то есть запас батареек на складе более 500.
2.Заправка при перевозе батарей. Корабль пополнит лимит батарей, из перевозимого количества, независимо от того продает или доставляет на станцию как ресурс.
3.Найдет ближайшую станцию продающую батареи и заправится на ней.


Для чего нужен скрипт склада.

Идея этого скрипта взята у Xenon Tomb’a (надеюсь он не в обиде за плагиат), но скрипт написан другой, т.к. он и рассчитан на поддержку высокой эффективности работы ТО (хотя, может работать сам по себе).

Что делает скрипт «Корабль-склад» ( DrP.TO.Warehouse.xml )
1. Стыкуется со станцией и складирует либо пополняет продукцию или ресурсы.
2. Если кол-во продукции превышает 90 % от максимально-возможного, то в трюм склада перегружается 20% от максимально-возможного количества на складе станции.
3. Если кол-во продукции на складе станции падает ниже 50% и она имеется на корабле-складе, то кол-во продукции на складе повышается до 85%
4. Если количество ресурса на станции выше 95% от максимально-возможного, то в трюм корабля склада перегружается 20 % от максимально-возможного кол-ва на станции.
5. Если кол-во ресурса на станции падает ниже 75% и при этом этот ресурс имеется на корабле-складе, то кол-во ресурса на станции пополняется до 90% от максимально возможного.

Наличие корабля склада на вашей станции предупреждает возникновение следующих ситуаций:

1. Если к станции приписаны более одного транспорта и оба находятся в режиме «Ожидания» (т.е. есть все ресурсы и продавать еще нечего) при появлении потребности в каком либо ресурсе, не смотря на все мои старания исключить одинаковую работу скриптов на двух разных кораблях (примерно в 20% случаев, это происходит), может сложиться ситуация когда транспорты одновременно находят этот ресурс на разных станциях и вылетают за ним. Складывается ситуация, когда станции требуется 200 единиц ресурса и каждый транспорт привозит по 200, то есть разгружается только первый прилетевший на базу транспорт, а второй при отсутствии корабля-склада прилетев надолго прилипнет в доке, пока не выгрузит купленный ресурс. Корабль-склад прекрасно разруливает подобную ситуацию.
2. Подобная ситуация может возникнуть, когда приписанный к станции корабль купил необходимый станции ресурс, что бы набить склад станции под завязку. Но пока он летит к станции, нарисовавшийся откуда то, AL корабль и втарил станцию, а прилетевший собственный корабль в такой ситуации мог бы простоять очень, очень долго (если он приписан к станции один), т.к. у него куча ресурса, а станция встала из-за переполнения склада готовой продукции. И ждал бы пока AL купят кучу продукции и станция израсходует такое кол-во ресурсов чтобы он смог разгрузиться.
Я описал те ситуации на которые натыкался лично тестируя ТО, но вариаций может быть много всего не предусмотришь. И не маловажно, что при использовании Корабля-склада простоев фабрик не наблюдалось вообще. Для склада лучше всего подходит «Дельфин» с полным апгрейдом трюма, по причине его большого размера (3000). Но нужен доп.склад Вашей фабрике или нет решайте сами.

Если вы хотите установить на фабрике склад, то необходимо сделать следующее:
1. Купить корабль, из которого вы хотите сделать склад и произвести соответствующие апгрейды этого корабля (на самом деле, единственный апгрейд который ему нужен – это максимальное расширение грузового отсека.
2. Приписать корабль к соответствующей фабрике.
3. Через редактор скриптов, вручную запустить скрипт DrP.TO.Warehouse, на этом корабле.
После этих действий корабль полетит на базу приписки, стыкуется с ней и пристыпит к работе.


Техническая часть:

О скорости работы скрипта.
В связи с тем последнее время идет много разговоров о тормозах в игре, ТО оптимизовался по принципу «лишние 10-15 секунд ничего не решают», поэтому может показаться что транспорты немного тугодумны. На самом деле большинство вспомогательных скриптов набиты задержками и работают в полуфоновом режиме, за то данный скрипт даже запущенный на большом количестве станций практически не дает тормозов игре.
Еще один важный фактор влияющий на скорость – это сложность поиска. ТО использует собственную процедуру поиска, т.к. стандартные торговые поиски не позволяют находить массив станций, а ТО он необходим. Так что чем больше количество прыжков тем дольше производится выборка, т.к. увеличивая расстояние на один прыжок количество секторов которые придется просканировать увеличивается в геометрической прогрессии. Чем выше цена, например на реализуемый продукт, тем больше станций придется просканировать, чтобы найти покупающую продукт по этой цене. Так что не пугайтесь. Вот время на поиск на моем компьютере 2 прыжка 4 секунды, 9 пыжков 55 – 65 секунд.
Давайте будем считать, что это время уходит на погрузку-разгруку, тем более если транспортов на станции достаточное количество или они оснащены джампами простоев на фабриках не будет.


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

Скрипт состоит из двух пользовательских:
DrP.TO.START.Manadger – Скрипт отвечающий за запуск, остановку и формирование отчетов. Связан с командой COMMAND_TYPE_STATION_10
DrP.TO.ChangeInstallations — Скрипт отвечающий за изменение настроек ТО. Связан с командой COMMAND_TYPE_STATION_9

Двух основных скриптов:
DrP.station.TRservice — скрипт постоянно работающий на станции (в 25 стеке)
DrP.transsport.manager – скрипт постоянно работающий на транспортных кораблях

Вспомогательные скрипты:
DrP.search.attributed.ships – поиск приписанных кораблей
DrP.resource.filter – выбор приоритетных к поставке ресурсов
DrP.find.productORresource – Собственная процедура поиска станции подающих или покупающих товар
DrP.movetostation.jump – Полет к станции, заправка джампа.
DrP.ST.nearest.gate.GreyWolf – процедура написанная Grey Wolf’ом.

Инициализирующий:
init.DrP.TRservice – инициализация консоли станции.

Дополнительный:
DrP.TO.Warehouse – Корабль-склад.

Языковой файл:
70348.xml – тексты для скрипта, page 1 id 705-717
440348.xml – то же самое на английском, page 1 id 705-717

Надеюсь вы обратили внимание на то, что данная версия является beta. Я выкладываю ее для тестирования всех заложенных на данный момент алгоритмов. В основном интересует торговый механизм и транзакции средств. И особенно, чего не хватает, но в пределах разумного (не забывайте о ресурсах компа и скрипт нагрузке)

То что будет добавлено к полной версии.

1. Уход от врагов и охрана транспортов истребителями AL (за деньги)
2. Отчеты распечатывающиеся в лог-файл о настройках всех ваших станций в галактике, отдельном секторе и более полное информативное наполнение (какие данные в этих отчетах вы хотите увидеть пишите в личку).

Чето больше вспомнить не могу, а еще че-то было. Ладно потом допишу.


Все по скрипту в личку или dragonp@narod.ru

ЗЫ Так совпало, в конце недели снова командировка на пару недель, так что если будут вопросы задавайте скорее :)

Первое же письмо, уазало на необходимость FAQ (вот ответы на основные вопросы):
FAQ

Вопрос: я тут ппочитал апдейт.. ну е мае ты нагрузил, даж чет желание тестить не появилось
Ответ: Запуск скрипта, стал проще, то что появилась возможность менять установки вовсе не говорит о том, что делать это обязательно. Для того чтобы скрипт приступил к работе достаточно выполнить пункт «Работа с транспортным отделом» с пар. 1 . Установки которые делаются автоматически при старте, по сути универсальны для любых фабрик. А настройщик, это для тех кто желает настроить ТО под конкретную фабрику.

Вопрос:- корабль склад, ну дела, кстати можно купить несколько складов а ?
Ответ: Количество складов на фабрике ограничивается количеством посадочных мест в доку. Но смысла набивать фабрику таким кол-вом складов нет. А чисто технически проблем это не вызовет.

Вопрос:делали же BPH и че тем намутили тормоза тока.
Ответ: Скорость работы скрипта занижена исскуственно для исключения нагрузки на процесор. Если не брать это в учет, то скорость легко поднимаеся приблезительно в 5-6 раз.

Вопрос:Установка скрипта вызывает зависание при старте сейва.
Ответ: Это из разряда ответов для тех кто не любит внимательно читать документацию, а предпочитает русский «авось». И если у вас сложилась такая ситуация сделайте следующее строго соблюдая последовательность:
1. Вернуть на место скрипты ТО версии 1.
2. Загружаем игру и сейв.
3. Отключаем скрипт ТО-1 на всех своих фабриках. Обязательно на всех (оставите хоть на одной опять получишь зависание).
4. Дождитесь пока транспортные корабли работающие под его управлением остановятся, т.е текущая команда будет «Нет команд». Ваша проблема именно в этом месте.
5. Теперь сохраните игру и выйди из нее.
6. Меняйте файлы скрипта ТО-1 на ТО-2 и не забудь заменить в файл 70348.xml в папке t.
7. Загружайтесь и играйте.

 

Выловил один баг, возникает достаточно редко. Иногда траспорты долго стоят на базе хотя уже требуются ресурсы, тек.команда «Ожидать».
Исправляется следующим образом:
замените файл DrP.transport.manadger распакованным их этого архива
и дайте транспорту команду «Нет команд», через консоль. Через несколько минут он снова приступит к работе.
DragonP
К началу раздела | Наверх страницы Сообщить об ошибке
X2 - Скрипты - Транспортный отдел
Все документы раздела: Главная |


Дизайн Elite Games V5 beta.18
EGM Elite Games Manager v5.17 02.05.2010