Обсуждение терраформинга

Самостоятельная настройка параметров игры и создание модификаций.
Аватара пользователя
Artos
Frigate
Сообщения: 480

Обсуждение терраформинга

Сообщение Artos » 18 окт 2018, 22:03

Ufnv, большое спасибо за оперативность с новым патчем! Теперь есть чем занять мозги&руки... ;)
Просьба пояснить применение новой функции UFChangePlanetType, а конкретно что/когда нужно использовать в качестве 2-го аргумента "int Reason" при её вызове?
Аватара пользователя
Ufnv
Senior Developer
Сообщения: 1138

Патчи к игре.

Сообщение Ufnv » 18 окт 2018, 22:41

Reason:

0 - Nova
1 - Destroy
2 - Degrade
3 - Upgrade

В какой именно тип делается Upgrade или Degrade, прописывается в PlanType.ini так же как сейчас Nova/Destroy.

Например, Degrade "Exhausted2"
Аватара пользователя
Artos
Frigate
Сообщения: 480

Патчи к игре.

Сообщение Artos » 18 окт 2018, 23:53

Еще раз спасибо за патч и ответ.
Предложение: Может быть стОит внести в файл МодКит'а (const.a) что-то типа:

Код: Выделить всё

// ChangePlanetType [+]added in v1.06g
def const cpNova = 0
def const cpDestroy = 1
def const cpDegrade = 2
def const cpUpgrade = 3
- чтобы не в "голове" держать, а использовать как штатные константы?!
Аватара пользователя
Artos
Frigate
Сообщения: 480

Патчи к игре.

Сообщение Artos » 06 ноя 2018, 09:20

Ufnv, отказывается работать функция userfunc UFChangePlanetType(int Handle, int Reason)
1. Внес необходимые типы для Upgrade или Degrade в файл PlanType.ini (добавив строки сразу после Nova/Destroy);
2. Восстановил планетарную политику TerraformingProject (в простейшем виде);
3. Запускаю политику -> стартует таймер... По окончании запускается функция UFChangePlanetType(PlanetHandle, 3) и ... НИЧЕГО не происходит. Тип планет остается неизменным. Хотя вроде бы и окно подтверждения изменения типа планеты должно появляться, судя по наличию ? Yes_ : No_ внутри функции...

Для проверки попробовал использовать мод "Star System Destroyer", в котором вместо UFDestroyPlanet(PlanetHandle) попробовал использовать UFChangePlanetType(PlanetHandle, 2) или UFChangePlanetType(PlanetHandle, 3) - результат нулевой, т.е. планеты НЕ деградируют и не апгрейдятся. :(
Что делаю не так?

---
Дополнительно вопрос:
Как все же при бомбардировке планет воспользоваться функцией деградации? Ведь нигде в доступных кодах ModKit'а, связанных с бомбардировками, нет доступа к PlanetHandle, чтобы передать этот аргумент в UFChangePlanetType(PlanetHandle, 2).

Вернуться в «Настройка/модификации»