TEDIT, v3.05 (тестовая)


Изменения в версии 3.05:
 - появилась кнопа "Отзвониться диспетчеру" (Call dispatcher).

 Пояснения к версии 3.05
-------------------------
Теперь диспетчер отвязан от игровых заданий и генерит загрузки, сканируя сейв, т.е. для каждой компании 
вычисляет все возможные исходящие грузы и все возможные входящие грузы. 

Принцип работы в игре:
 1) жму "Call dispatcher"
 2) задание приходит в Job log
 3) запоминаю место погрузки, переключаюсь в игру, еду к месту погрузки, сохраняюсь
 4) переключаюсь в прогу, жму двойной клик на присланном диспетчером задании - и поля автоматически заполняются
 5) далее как обычно - Sign contract, GPS, Notebook, Save game.sii
 6) если надо догрузить прицеп - снова на шаг (1)
 7) ну и всё развожу по местам :)
   

Версия 2.82.2 адаптирована для ETS2 v1.25. 
Изменения:
 1) в tedit.ini добавлена секция [paint] (можно и без неё, но тогда вписывать деф скина нужно вручную);
 2) в проге добавлена кнопка "Paint +/-", добавляющая секцию скина (если её нет) или удаляющая секцию скина
    (если она есть). При этом автоматически перезагружается сейв (жмётся кнопа Reload);
 3) в папке mods обновлены файлы ноутбуков для ATS и ETS2.

                                         * * * 

Редактор собственных прицепов - показывает имеющиеся в собственности прицепы, 
какой из них в данный момент активен, сколько в нём грузов, сколько их, их масса, 
откуда и куда их надо отвезти. Также имеется возможность купить прицеп в собственность 
или продать собственный прицеп.

В данной версии расширен функционал программы и скорректированы уже имеющиеся функции:
 - появился "диспетчер" - он ищет подходящие для прицепа загрузки и шлёт их на почту (игровую);
 - несколько режимов работы диспетчера ("доставки внутри одной компании", "доставки только в одну компанию");
 - введено расписание разгрузок;
 - введена рандомная очередь на погрузку;
 - скорректирован gps (сортировка по расстоянию до базы);
 - скорректирован ноутбук (если кол-во загрузок меньше 5, то к пункту выгрузки добавляется наименование и
   масса груза);
 - поддержка "очерёдных (стековых)" прицепов ("последним загрузил - первым выгрузил") - типа реф, изотерм;
 - работа с нестандартными базами (описание и привязка нестандартной базы к существующей) - при загрузке 
   вас могут отправить забирать груз из другого склада, а на выгрузке может быть сразу указана нестандартная
   база;
 - для "открытых" прицепов теперь не нужно вручную менять аксессуары - в зависимости от груза при загрузке 
   автоматически пропишется нужный аксессуар и поставится нужная (плюс-минус "чуть-чуть") масса, а при 
   выгрузке аксессуар автоматически уберётся;
 - в конфиг вынесена скорость загрузки/разгрузки (кг в час);
 - при загрузке сейва в поле "Откуда" автоматически подставляется ближайшая к игроку база.


 Установка
-----------

1. В главном config.cfg параметр g_save_format должен быть установлен в "2"!
2. Все файлы, за исключением папки "mods", поместить в папку с сейвом.
3. Нужные файлы из папки "mods" поместить к модам (описание файлов см. ниже).


 Благодарности
---------------

Сергею (Supric) - за отличные идеи, советы и тестирование проги
Олегу (oq37) - за вдохновение, идеи и тестирование проги
Дмитрию (EasyBoss) - за советы и идеи
Вадику (vad&k) - за идеи и тестирование проги
Александру (Александр86) - за информацию o дальнобое
Евгению (DJON 96rus) - за информацию о дальнобое
Sniper - за адаптацию декодировщика к Object Pascal
JohnnyGuitar - за декодировщик сейва
Максу из SCS - за техническую информацию
... и многим другим людям!


 Полезная информация
---------------------

При запуске программа автоматически декодирует сейв, открывает его и сохраняет его копию 
в файле game.sii.bak.

Если в игре было выбрано задание из предложения компаний, то при запуске программы данные
выбранного задания автоматически подставятся в нужные поля.

В нижнем левом углу программы указана игровая дата, рядом указан игровой опыт (XP).

При закрытии программа НЕ сохраняет сейв! Для сохранения нужно нажать кнопку "Save game.sii".
				  
Под "открытыми" прицепами подразумеваются прицепы, грузы на которых визуально видны
пользователю (лесовоз, низкорамник, самосвал, контейнеровоз, автовоз и т.п.). Соответственно,
в "закрытых" прицепах грузов визуально не видно (Krone Profiliner, Schmitz Universal и т.п.).

Вторая часть имени файла псевдонима берётся из выбранного в игре языка. Если файл псевдонима не
найден, то по умолчанию используется английский (aliases_en_gb.txt).


 Описание файлов программы
---------------------------

tedit*.exe - сама программа

tedit.ini - файл настроек, который можно дополнять какими-то своими дефами шасси, колёс и грузов.
Содержит секции:
[chassis] - дефы шасси;
[wheels] - дефы колёс;
[accessories] - дефы дополнительных аксессуаров;
[cargo] - дефы грузов для определённого вида шасси. 
Формат у секции [cargo] таков: <шасси>,<груз>,<масса> (т.е. деф шасси, деф груза и масса груза).
ВНИМАНИЕ! До или после запятых не должны быть пробелы!

aliases_*.txt - псевдонимы для игровых названий. 
Формат: <игровое название>;<псевдоним>

bases.txt - нестандартные базы и их привязка к стандартным. 
Формат: <нестандартная база>=<стандартная база>[,<описание нестандартной базы>]

config.cfg - файл конфигурации программы и диспетчера (описание см. ниже)

countries.txt - страны и их города. 
Формат: <страна>=<список городов> (города именуются также, как в базе игры!)

dispatcher_cargoes.txt - привязка прицепа к грузам. 
Формат: <часть имени прицепа>=<список грузов> (имена грузов - как в базе игры!)

gps.txt - GPS координаты баз в игре. В основном заполняется через программу, а не вручную.
Формат: [<город>,] <база>, <координаты>
Параметр <город> не обязателен для указания.
Пробелы после запятой должны быть!

gps_beacon.ini - (задел на будущее)
   
job.txt - хранит информацию о текущем задании

job.log.txt - лог всех погрузок и выгрузок

license_plates.txt - шаблоны для генерации номеров

schedule.txt - расписание работы баз. Имеет две секции: [days] - дни, и [hours] - часы.
Формат: <наименование>=<цифровое обозначение>

special_cargoes.txt - дефы "открытых" грузов.
Формат: <груз>,<деф груза>,<масса груза>

trailers.txt - список доступных прицепов при покупке прицепа. Одна строка - один прицеп.
Формат строки таков:
<название прицепа>,<деф шасси>,<кол-во осей>,<деф колёс>,<цена прицепа>[,<доп. аксессуар>]
"Доп. аксессуар" - дополнительный аксессуар, необязательный параметр.
Тоже без пробелов до и после запятой!
   
Папка "mods" содержит мод на открытые ворота (плюс убирает барьеры-ленты) и два мода на модифицированный 
ноутбук: один - для ATS, другой - для ETS2. Размещать в папке \mod\ соответствующей игры и подключить в 
мод-менеджере. На экран ноутбука и на экран карты будет выводится информация о местах разгрузки.


 Описание программы
--------------------

"Money account" - денежные средства.

"Assigned trailer" - назначенный (активный в данный момент) прицеп.

"Connected" - прицеплен или отцеплен ли прицеп.

"Dispatcher" - услуги диспетчера (см. ниже).

"Owned trailers" - список собственных прицепов. Двойной клик - и выбранный прицеп становится активным.

"Accessories" - аксессуары выбранного прицепа. Обычно, самый первый аксессуар - шасси. Затем
идут колёса. А в конце - один аксессуар груза, необязателен (присутствует у так называемых "открытых" 
прицепов). Выбрав аксессуар, ниже можно его изменить вручную, либо выбрать из выпадающего списка. 

"Add/remove last accessory (cargo)" - кнопка для добавления или удаления последнего аксессуара (обычно 
это груз). Если последний аксессуар есть, он удалится; если его нет - он добавится и его можно будет
выбрать из выпадающего списка.

"Wear" - степень износа/повреждений прицепа. 0 - нет повреждений, 1 - 100% повреждений. Учитывается
при расчёте гонорара и при продаже собственного прицепа.

"Cargo mass" - общая масса всех грузов в прицепе.

"Buy trailer" - купить прицеп в собственность. Откроется окно покупки прицепа (см. ниже).

"Sell trailer" - продать собственный прицеп. При продаже берётся 70% от расчётной стоимости прицепа.
Если прицеп не из дефолтных, за расчётную стоимость прицепа берётся 30 000 евро. Также учитывается
степень износа/повреждений прицепа.

"Available cargoes" - список доступных грузов для "открытых" прицепов с указанием массы груза.
Двойной клик - и выбранный груз и его масса автоматически прописываются в поля "Cargo name" и
"Cargo weight, kg".

"Departure point" - пункт отправления. Можно вписать вручную, либо выбрать из списка. Заполнять 
не обязательно.

"Destination" - пункт назначения. Можно вписать вручную, либо выбрать из списка.

"Cargo name" - наименование груза. Можно вписать вручную, либо выбрать из списка.

"Cargo weight, kg" - масса груза в килограммах.

"Mileage, km" - расчётная длина маршрута в километрах. Заполнять не обязательно. Если не заполнено,
то берутся показания одометра на момент погрузки и на момент разгрузки того или иного груза.

"Cost per km" - цена за километр пути. Заполнять не обязательно. По дефолту установлено 15 евро/км.

"Payment" - гонорар за доставку. Заполнять не обязательно. Если не заполнено, рассчитывается как 
произведение длины маршрута и цены за километр пути.

"Sign contract" - подписать контракт. Для этого нужно, чтобы поля "Cargo name", "Cargo weight" и 
"Destination" были заполнены, а также чтобы выбранный прицеп был активным, иначе подписание контракта 
не произойдёт. Также в подписании контракта может быть отказано, если не подошло ваше время загрузки. 
После успешного подписания контракта груз загружается в прицеп, общая масса "Cargo mass" 
увеличивается на значение "Cargo weight", а в список "Current job" добавляется информация о задании. 
На загрузку уходит некоторое время.

"Current job" - текущее задание. В нём указаны характеристики груза (откуда, куда, наименование, масса), 
а также служебная информация. Одна строка - один груз.

"Unload cargo" - выгрузить выбранный из списка "Current job" груз. Если время выгрузки данного груза 
не наступило, то выгрузиться неудастся. При успешной выгрузке общая масса всех грузов в прицепе 
уменьшается на массу выбранного груза, а груз удаляется из списка "Current job". На выгрузку уходит 
некоторое время.

"GPS" - стирает существующий маршрут и прокладывает новый ко всем базам выгрузки из списка "Current job".
Если у базы нет координат, маршрут к ней не прокладывается. Точки маршрута отсортированы по расстоянию до 
базы выгрузки. В случае прицепов с задней загрузкой, точки маршрута выставляются в обратном порядке из 
списка "Current job".

"Notebook" - передаёт информацию о пунктах выгрузки в ноутбук и на экран карты. ВНИМАНИЕ! Для
корректной работы ноутбука необходимо наличие в папке \mod\ мода на модифицированный ноутбук!

"Dispatcher config" - конфигурация диспетчера (о диспетчере см. ниже).

"Alert on arrival" - создаёт файл gps_beacon.ini, в котором указаны координаты всех точек установленного 
маршрута. Впоследствии этот файл будет использоваться плагином, оповещающим игрока о приближении к точке 
маршрута на заданный радиус звуковым сигналом и/или строкой в логе игры.

"Job log" - лог погрузки и разгрузки в более наглядном виде.

"Log" - лог программы.

"Store GPS" - показывает записанные в сейве координаты точек маршрута. Behind 1 - начало маршрута (иногда
в игре это зелёный треугольничек). Ahead 1..10 - установленные точки маршрута. Справа от координат находится
закреплённая за этими координатами база (берётся из gps.txt). Если поле базы пустое, значит данные координаты
не были найдены в gps.txt и можно вручную написать имя базы (желательно в формате: <город>, <база>), либо
выбрать базу из выпадающего списка. При нажатии на кнопку "Store" все ранее неизвестные координаты вносятся 
в gps.txt, а для неизвестных баз откроется окно, в котором нужно указать привязку неизвестной базы к имеющейся
и, при необходимости, дать описание этой базы.

"Reload" - заново загружает в программу сейв и все файлы конфигурации. Полезно, если программу держать постоянно 
открытой.

"Save game.sii" - сохраняет сейв game.sii и файлы конфигурации.


 Использование услуг диспетчера
--------------------------------

Если установлена галка "Dispatcher", то при каждом сохранении сейва будет задействован диспетчер. Его задача -
найти подходящие для вашего прицепа грузы. Найденные загрузки диспетчер отправляет на ваш e-mail (в игре). 

Поиск происходит в некотором радиусе от текущего положения трака. При первой загрузке (когда прицеп пуст) 
местоположение базы получателя выбирается случайно. Если место в прицепе ещё есть, то последующие загрузки 
ищутся диспетчером так, чтобы базы выгрузки находились в некотором радиусе от уже имеющихся (в списке Current 
job) баз выгрузки. В расчёт также берётся то, успеет ли водитель доехать до места загрузки. 

Загрузки, истёкшие по времени, удаляются из почтового ящика. Исключение составляют те загрузки, которые в данный
момент взяты (они в почтовом ящике помечены символом "(*)"). 


Имеются следующие настройки диспетчера:
 * Maximum total cargo mass - максимальная разрешённая общая масса груза в прицепе (полезно при работе в странах 
   с разными максимально допустимыми массами).
 * Radius from truck - радиус от трака, в котором диспетчером ищутся базы загрузки.
 * Radius from target base - радиус от базы выгрузки, в котором диспетчером ищутся базы выгрузки.
   Оба радиуса задаются в "метрах редактора карт", ниже показан нормальный километраж с учётом масштаба карты.
 * Maximum mails count - максимальное кол-во писем, присылаемых диспетчером.
 * Non-default base probability - вероятность появления нестандартной базы (если таковые имеются).
 * Search nearest base - поиск ближайшей базы. Если не выбрано, то ищется любая база загрузки.
 * Countries - фильтр по странам.
 * Companies - фильтр по компаниям. Оба фильтра - одновременно и на загрузку, и на выгрузку.
   Если выбрана только одна компания, то включается режим "Одной компании" (подробнее о режимах см. ниже).
 * Employer - если поле не пустое, то включается режим "работодателя" (подробнее о режимах см. ниже).


 Режимы диспетчера
-------------------

Режим "Одной компании" - включается, когда в фильтре выбрана только одна компания. В этом случае диспетчер 
будет искать перевозки только внутри одной компании. Например, если выбрана Eurogoodies, то будут искаться 
перевозки между всеми компаниями Eurogoodies и только.

Режим "Работодателя" - включается, когда поле Employer не пустое. В этом случае загрузки будут искаться только 
в указанную компанию, независимо откуда. Например, указав "Lyon, Kaarfor" - будут искаться загрузки только в 
компанию Kaarfor, расположенную в Лионе. Если же указать просто "Kaarfor", то загрузки диспетчером будут 
искаться во все компании Kaarfor. В данном режиме параметр Radius from truck не учитывается, а берётся 
максимальный радиус (практически охватывающий всю карту).


 Покупка собственного прицепа
------------------------------

При нажатии на кнопку "Buy trailer" откроется окно покупки, где будут указаны тип прицепа (Trailer type), 
деф шасси (Chassis), количество осей (Number of axles), деф колёс (Wheels), доп. аксессуары (Additional 
accessories), цена прицепа (Price), страна регистрации (Country), и номерной знак (License plate). Номерной 
знак генерируется по шаблонам в зависимости от страны. ВНИМАНИЕ! Номерно знак при работе с собственным 
прицепом не отображается! Так что будем считать его заделом на будущее :)

Практически каждое поле (Chassis, Number of axles, Wheels, ...) можно изменять вручную. Т.е. если имеется 
какой-то сторонний, не дефолтный прицеп, можно вручную вписать деф шасси, деф колёс и прочее.

Кнопка "Buy trailer" служит для покупки выбранного прицепа. Если средств на счёте будет недостаточно, то 
эта кнопка будет недоступна. Если же достаточно, то со счёта спишется денежка за прицеп.


 Примеры использования программы
---------------------------------

Пример 1. Для "закрытого" прицепа, сборный груз.

Приезжаю на базу со своим пустым прицепом. Просматриваю список грузов из этой базы. Выбираю подходящий груз 
и запоминаю его. Становлюсь на погрузку к рампе. Сохраняюсь. Переключаюсь из игры в программу. При запуске 
программы, из списка собственных прицепов автоматически выбирается активный в данный момент прицеп. Ввожу в 
поле "Cargo name" наименование груза, в поле "Cargo weight" - его массу, если надо, задаю километраж, тариф 
или же сразу оговариваю гонорар. Затем в поле "Departure point" ввожу пункт отправления, а в поле "Destination" 
- пункт назначения. Жму "Sign contract" (подписать контракт). Список "Current job" пополнился первым грузом.
Жму в программе "Save game.sii" и переключаюсь обратно в игру. Загружаю последний сохранённый сейв - всё,
прицеп загружен. 

Допустим, есть ещё место. Поступаю таким же образом: приезжаю на базу, выбираю груз, становлю к рампе, 
переключаюсь в программу (она так и осталась открытой), жму в ней кнопку "Reload game.sii" (прога заново 
читает свежесохранённый сейв), опять ввожу данные груза и пункты отправления/назначения (читай - "заполняю 
накладную" :)), жму "Sign contract", затем "Save game.sii", переключаюсь в игру, загружаю сейв - всё, второй 
груз загружен.

Маршрут проставляю на карте сразу после первой загрузки. Если есть ещё загрузки, дополняю маршрут в другой город.

По приезду на базу поступаю аналогично: в игре сохраняюсь, переключаюсь на прогу, жму "Reload game.sii", из
списка "Current job" выбираю груз, который надо разгрузить и жму "Unload cargo", получив денежку за перевозку.
Затем жму "Save game.sii", переключаюсь в игру и загружаю сохранку - всё, я разгрузился на первой базе. Таким же
макаром еду на вторую базу, третью, n-ную...


Пример 2. Для "открытого" прицепа, одиночный груз.

Допустим, у меня сейчас автовоз (пустой). Приезжаю на базу для погрузки автомобилей. Становлюсь к месту погрузки,
сохраняюсь, переключаюсь в прогу. В списке собственных и активным выбран автовоз. Автоматически для автовоза
заполняется список доступных для его шасси грузов (Available cargoes). Дважды кликаю в этом списке на нужный 
мне груз и наименование груза автоматически заполняется дефом этого груза, и также автоматически проставляется 
его масса. Поле "Cargo name" не трогаю, так как оно заполнено дефом груза и пойдёт в сейв! Далее как обычно -
ввожу, если надо, километраж, тариф, гонорар, затем пункты отправления и назначения, затем "Sign contract" и
"Save game.sii". Переключаюсь в игру, загружаю сейв - всё, я уже загружен автомобилями. Прокладываю маршрут и
чешу к месту выгрузки. По приезду всё также: в игре сохраняюсь, переключаюсь в прогу, жму "Reload game.sii",
выбираю из списка "Current job" груз и жму "Unload cargo" (разгрузить). Жму "Save game.sii", переключаюсь в игру,
загружаю сохранку - всё, я выгрузился.


 Описание параметров config.cfg
--------------------------------

Некоторые параметры задаются непосредственно в программе.

load_kg_per_hour - скорость загрузки, в килограммах в час
cost_per_km - стоимость километра пути
search_nearest_base - если не ноль, то диспетчером будет искаться ближайшая база загрузки
stack_trailers - прицепы стекового типа (у которых загрузка только задняя)
fast_loading_cargoes - грузы "быстрой" (от 15 минут до 1 часа) погрузки
auto_gps - если "1", то при сохранении сейва автоматически будет нажиматься кнопка GPS
auto_notebook - если "1", то при сохранении сейва автоматически будет нажиматься кнопка Notebook
auto_arrival_alert - если "1", то при сохранении сейва автоматически будет нажиматься кнопка Alert on arrival
use_dispatcher - если "1", то режим "диспетчера" включен
max_total_cargo_mass - максимальная разрешённая общая масса груза в прицепе, в кг
min_cargo_mass - минимальная масса груза, генерируемая в режиме "диспетчер", в кг
max_mails_count - максимальное кол-во новых писем, присылаемых диспетчером (прочитанные в счёт не идут)
mail_timer_min - минимальное время прихода письма, в секундах реального времени
mail_timer_max - максимальное время прихода письма, в секундах реального времени
mail_delay_max - максимальное время задержки письма, в секундах реального времени
map_scale - масштаб карты
radius_truck - радиус от трака, в котором диспетчером ищутся базы загрузки, в метрах редактора карт
radius_base - радиус от базы выгрузки, в котором диспетчером ищутся базы выгрузки, в метрах редактора карт
nondefault_base_prob - вероятность появления нестандартной базы (если таковая имеется), в процентах от 0 до 100
countries - фильтр по странам
companies - фильтр по компаниям
employer - работодатель


Copyright © 2016 by Alex (Knox_xss)
