Ивенты на трейты. - Моды и моддинг - Strategium.ru Перейти к содержимому

Ивенты на трейты.

Рекомендованные сообщения

Кецаль

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

__________________________________________________________________

На форуме один из пользователей озаботился невозможностью добавить картинку к созданному им трейту персонажа.

Сам я до этого особо не вникал в тему, дал пользователю общий совет, а через пару часов, узнав, что ничего не вышло, решил уделить этому вопросу внимание. После недолгих плясок с бубном добавить картинку к трейту у меня получилось. Да и ещё кое-что вышло. Решил расписать «технологию», вдруг кому пригодится.

Хотел загнать всё под спойлер, но форум "бычит" :001:

Сразу поясню, что сделал всё в виде модификации, что и всем советую. Никаких конфликтов файлов.

шаг №1Нажмите здесь!
 

Для начала создаём в папке \mod папку с модом. Я назвал её \robot.

Чтобы мод запускался через лаунчер, необходимо в папке \mod создать текстовый файл robot.txt. Открываем его и пишем:

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Как видно из кода, имя мода должно совпадать с именем созданной нами ранее папки. Сохраняем текстовый файл и выходим из него. Переименовывая, меняем расширение файла с robot.txt на robot.mod.

[Cкрыть]

Теперь наш мод уже видно в лаунчере, но этого мало для его работы.

Для придания трейта ( черты характера) персонажу, необходимо ввести в игру какое-либо событие.

шаг №2Нажмите здесь!
 

Создаём в папке \robot папку \events, а в ней – текстовый файл robot_event.txt. В нём пишем:

#######################################

#

# Robot! Этот блок в комментариях - просто описание, для удобства работы, не обращайте внимания.

#

# Event ID robot.1 reserved

#

#######################################

namespace = robot Это – важная часть кода, она позволяет использовать игре id ивента вида id = robot.1, id = robot.2, id = robot.3 и так далее.

### Robot Название ивента под комментарием, для удобства, можно и не писать.

character_event = { Строка говорит, что событие произойдёт с одним из игровых персонажей .

id = robot.1 id события, по которому игра его идентифицирует

title = "EVTNAMErobot.1" Имя события, будет вписано над картинкой. Набор букв в кавычках нужно будет перевести в файле локализации. Чуть позже об этом.

desc = "EVTDESCrobot.1" Описание события – то, что мы обычно видим на титульном листе ивента. Стена текста, короче. Нужно будет перевести в файле локализации

picture = GFX_evt_robot Картинка между именем события и стеной текста, особо не мудрствовал, взял первую попавшуюся из папки «корневая папка»\gfx\event_pictures, подробнее – позже.

only_men = no строка говорит о том, что событие будет происходить и с мужскими и с женскими персонажами

trigger = { строка с условиями, при которых возможно событие. В нашем случае их минимум – одно, но важное.

ai = no Событие будет происходить только с персонажем под управлением игрока.

}

mean_time_to_happen = {

months = 240 строка определяет частоту события. В нашем случае это ОЧЕНЬ НЕ частое событие ( но мы ведь умеем работать с консолью?)

}

immediate = { здесь можно указать, что произойдёт в любом случае при наступлении события ( до нажатия вами кнопки «ок», или «да»-«нет») в нашем случае - ничего

}

option = { Ниже – описание события, происходящего после нажатия кнопки.

name = "EVTOPTArobot.1" Текст, который будет на кнопке. Нужно будет перевести в файле локализации

if = { Тут стоит условие

limit = { на предел

NOT = { наличия трейта

trait = robot Робот

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

} но уже без эффекта

random = { А тут лежит вероятность

chance = 90 в 90%, того, что вы действительно

add_trait = robot Робот

} Вероятность появится только в том случае, если трейта Робот ещё нет.

}

}

}

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

[Cкрыть]

Теперь посмотрим, без чего наш ивент не будет работать.

Ну во-первых это сам трейт. Он ещё не создан, а уже используется в ивенте.

шаг №3Нажмите здесь!
 

Я не стал особо разбираться в плюсах, просто взял трейт «Гений»( genius ) из файла «корневая папка»\common\traits \00_traits.txt и усилил его плюсы.

Создаём в папке \mod\robot\common\traits файл robot_traits.txt и пишем в нём

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Как прошлый код разбирать не буду, просто знайте, что Робот – сила и мошчЪ. С ним не балуй. Персонаж получает +15 всего.

[Cкрыть]

Идём дальше.

В нашем ивенте используются картинки.

Одна – изображение персонажа, которым мы играем. Его игра подставит сама, без нашего руководящего момента, а вот изображение трейта и титульная зарисовка ( между названием ивента и стеной текста) – дело рук самих утопающих.

Попытаемся изобразить картинку трейта.

шаг №4Нажмите здесь!
 Все имеющиеся изображения трейтов лежат в папке «корневая папка»\gfx\traits. Можно сделать и своё по аналогии ( но это долго), я же беру готовое и опять –гения. Копируем genius.dds в папку \mod\robot\gfx\traits (созданную заранее) и просто переименовываем в robot.dds.

Теперь нам нужно, чтобы игра воспринимала эту картинку. В папке «корневая папка»\interface лежит файл traits.gfx, прописывающий игре какие картинки для трейтов брать и где это делать. Как ни странно, файл прекрасно открывается и редактируется простым блокнотом. Хотя, чего там удивляться… Создаём по аналогии директорию \mod\robot\interfacе. Копируем в неё файл из корневой папки, удаляем в нём всё и сохраняем пустым, после чего переименовываем в robot_trait.gfx.

Теперь пишем в нём следующее:

spriteTypes = {

spriteType = {

name = "GFX_trait_robot" Текст, выделенный красным, должен совпадать с именем предполагаемой картинки robot.dds Это первое условие.

texturefile = "gfx/traits/robot.tga" Текст, выделенный красным, должен совпадать с именем предполагаемой картинки robot.dds Это второе условие.

noOfFrames = 1

norefcount = yes

effectFile = "gfx/FX/buttonstate.lua"

}

}

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

[Cкрыть]

Теперь обратим внимание на картинку между заголовком ивента и стеной текста.

шаг №5Нажмите здесь!
 

Все имеющиеся изображения подобного рода лежат в папке «корневая папка»\gfx\ event_pictures. Можно сделать и своё по аналогии, но это долго. Я подобрал себе какого-то алкаша на картинке. Копируем Drunk.dds в папку \mod\robot\gfx\ event_pictures (созданную заранее) и просто переименовываем в robot.dds ( да, опять robot.dds, это не страшно)

Теперь нам нужно, чтобы игра воспринимала эту картинку. В папке «корневая папка»\interface лежит файл eventwindow.gfx, прописывающий игре какие картинки для ивентов брать и где это делать. Создаём по аналогии директорию \mod\robot\interfacе. Копируем в неё файл из корневой папки, удаляем в нём всё и сохраняем пустым, после чего переименовываем в robot_eventwindow.gfx.

Теперь пишем в нём следующее:

spriteTypes =

{

spriteType = {

name = "GFX_evt_ robot " Текст, выделенный красным, должен совпадать с именем предполагаемой картинки robot.dds Это первое условие.

texturefile = "gfx\\event_pictures\\ robot.tga" Текст, выделенный красным, должен совпадать с именем предполагаемой картинки robot.dds Это второе условие.

allwaystransparent = yes

}

}

Есть и третье условие для картинок под названием . В ивенте, написанном в самом начале, и в этом скрипте, код после знака «равно» должен быть идентичен:

picture = GFX_evt_robot

name = "GFX_evt_ robot "

Только в ивенте не используются кавычки

Аналогично трейтам, соблюдая эти три условия можно «пхать» в игру всё что угодно, используя этот единственный скрипт и соблюдая требования к картинке.

[Cкрыть]

Добавлено Кастилиусом:

Кроме того, как в данном случае, когда Вы создаете отдельный мини мод, то в папке GFX мода нужно создать папку FX и туда вложить ванильный файл buttonstate.lua. Без него иконки не станут отображаться!

Ну и остались мелочи – пишем локализацию.

шаг №6Нажмите здесь!
 

Создаём папку \mod\robot\localisation, в ней файл robot_localisation.csv ( лучше скопировать откуда-нибудь любой .csv -файл, открыть текстовым редактором ( не экселем) и, всё там удалив, сохранить пустой, переименовав) и смотрим, что нам нужно локализовать.

Во-первых очевидные EVTNAMErobot.1, EVTDESCrobot.1 и EVTOPTArobot.1 из скрипта ивента.

Во-вторых – отнюдь не очевидные robot ( перевод же самого трейта!) и robot_desc ( эта строка будет описывать трейт при наведении на него мышью в игре). Чтож, приступим.

Открываем уже пустой файл robot_localisation.csv ( удалили всё?) текстовым редактором ( категорически настаиваю именно на нём, эксель может повредить файл при сохранении, проверено). Пишем в нём следующее

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

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

[Cкрыть]

Вроде всё.

результат. осторожно - скриншотНажмите здесь!
 

C8182P5k.png

[Cкрыть]

Уфф, а описывать всё это в сто раз дольше, чем сделать, однако.

Дополнение:

.dds-картинки легко редактируются бесплатным PaintNet от мелкософта.

Все остальные файлы ( .txt, .gfx, csv) открывались и редактировались простым блокнотом.

Дополнение 2:

Введение своей ивентовой графики в игру не сложно, важно помнить - формат картинок должен соответствовать тому, что использует игра.

______________

С уважением, Кецаль.

Изменено пользователем Кастилиус
Добавил необходимую информацию для отображения новых иконок
Ссылка на комментарий

Закреплённые сообщения

Не нашла кнопку "поблагодарить".)) Скажу словами - спасибо большое!

Изменено пользователем Антипа
Ссылка на комментарий

Кецаль
Не нашла кнопку "поблагодарить".)) Скажу словами - спасибо большое!

Главное - чтобы польза была (С)

С уважением, Кецаль.

Ссылка на комментарий

Огнезвезд
Главное - чтобы польза была (С)

С уважением, Кецаль.

А почему не работает показатель увеличения ресурсов гвардии?

Ссылка на комментарий

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

Изменено пользователем DrKhatz
Ссылка на комментарий

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

Я лично вот как делал: брал эвент на получение какой-нибудь боевой характеристики и потом редактировал его (подгонял так сказать) под другой трейт.

А вообще есть параметр:

weight_multiplier = {

days = 1

(дальше ниже уже идут модификаторы на шансы выпадения эвента)

С него начинает шанс выпадения боевого эвента после и во время битв.

Изменено пользователем Кастилиус
Ссылка на комментарий

Господа, подскажите, где определяется фон (Background) у событий (Eventов), не могу понять. Я просмотрел все и стандартные ивенты и различные из модов - всё облазил - не нашёл. Хочу поставить длинный фон, текст весь не влезает.

Ссылка на комментарий

Захар Б

Помогите, пожалуйста! Когда я создал собственный мод со своими картинами они не отображаются. (Разрешение картин 450*150 и 24*24) Я пробовал добавить ванильный buttonstate.lua , но со равно не отображается! Подскажите

Ссылка на комментарий

Габриэль

Странно, что никто ещё не ответил, но ладно, отвечу я.

В 26.08.2014 at 03:16, DrKhatz сказал:

Как сделать трейты привязанными к боевым действиям?

Через добавление on_actions. В папке common находите on_actions и дублируете себе в мод, теперь переименуйте текстовый файлик как-нибудь вроде "memod_on_actions", теперь откройте его и найдите там строку on_battle_won_leader, это значит, что эвент будет возникать, как только вы одержите победу возглавляя армию. и подставьте эвент, который хотите, чтобы выскакивал после битвы, например,

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Больше Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

 

В 28.09.2014 at 03:03, Maks415 сказал:

 

Господа, подскажите, где определяется фон (Background) у событий (Eventов), не могу понять. Я просмотрел все и стандартные ивенты и различные из модов - всё облазил - не нашёл. Хочу поставить длинный фон, текст весь не влезает.

 

long_character_event если хотите сделать по-больше строк.

Ссылка на комментарий

Присоединиться к обсуждению

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

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Only 75 emoji are allowed.

×   Ваша ссылка автоматически преображена.   Отображать как простую ссылку

×   Предыдущее содержимое было восстановлено..   Очистить текст в редакторе

×   You cannot paste images directly. Upload or insert images from URL.

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу


Copyright © 2008-2024 Strategium.ru Powered by Invision Community

×
×
  • Создать...