Космическая кухня
Космическая кухня

Как зажигаются звёзды

Здравствуйте, гость ( Вход | Регистрация )

entry Oct 16 2010, 16:15
Давно хотел сделать. Некоторые опции сервера («контейнеры», «гравицапа») требуют специальных типов кораблей. Исторически сложилось, что для этого используется хак — разрабатываются специальные классы, реализующие интерфейс производства (хотя никакого нового производства на самом деле не определяют), и ссылка на них указывается в настройках партии, в списке производства. Конструкция этих кораблей зашита в код. Это затрудняет введение новых специальных типов кораблей и изменение их параметров (необходима перекомпиляция сервера).

Поэтому я объединил разные классы в один класс objects.production.SpecialShipType_Production. Для определения нового специального типа корабля нужно:
  • Определить новый «тип производства»:
    Galaxy.ProductionType.имя=objects.production.SpecialShipType_Production
  • Указать параметры типа корабля (по умолчанию 0):
    ShipType.имя.Drive=...
    ShipType.имя.Attacks=...
    ShipType.имя.Weapons=...
    ShipType.имя.Shields=...
    ShipType.имя.Cargo=...
  • Добавить имя в список производства (в дополнение к стандартным):
    Galaxy.ProductionTypes=... имя ...

Эти типы кораблей есть у каждой расы, их нельзя удалить или переименовать.

Классы для «контейнеров» и «гравицапы» остались пока для совместимости, но сами «контейнеры» и «гравицапа» теперь могут определяться иначе:
Galaxy.ProductionType._container=objects.production.SpecialShipType_Production
ShipType._container.Cargo=1.0
Galaxy.ProductionType.gravicappa=objects.production.SpecialShipType_Production
ShipType.gravicappa.Drive=495.0

Сервер теперь имеет встроенные файлы с настройками, поэтому стандартные специальные типы будут определяться там и не нужно изменять внешние настройки сервера.

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

 
« Предыдущий · Космическая кухня · Следующий »
 
ВПВСЧПС
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30


Ссылки моего Блога


Поиск по моему Блогу