Гайд по тому как вообще создать мод. - Учебники по моддингу - Strategium.ru Перейти к содержимому

Гайд по тому как вообще создать мод.

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

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

И я вам поведаю как легко и просто создать свой мод.

 

Что такое мод. Мод - модификация(ваш кэп), изменяюшая игру как нибудь. Не затрагивает движок, иначе это уже будет отдельной игрой.

Для чего они нужны. Догадайтесь сами.

ПРОГРАММЫ

Текстовый редактор (блокнот не подходит, лучше Notepad++ или тот редактор от самих парадоксов, но он у меня не работает)

Стэлларис

 

ШАГ 1

Открой меня  

0e6bd54dbb02.png

443eb94c9b87.png

853dea43679c.png

Hide  

Каталог писать лучше на английском или транслитом с нижними подчёркиваниями вместо пробелов.

 

Что же мы сделали? Мы создали каталог(ваш кэп) мода и его файл загрузки в (имя пользователя)/Документы/Paradox Interective/Stellaris/mod Внизу будет написан путь до файла.

Вот они  

051f08bc0775.png

Hide  

Можем открыть файл с расширением .mod и видим

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

Можете подправить необходимые веши.

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

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

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

ШАГ 2

Наполнение папки контентом. Абсолютно все файлы, появляющиеся здесь будут в приоритете (если вы конечно включите модификацию в лаунчере).

Вам может потребоваться создание папок common(основная папка) gfx(графика) event(евенты) localisation(локализация мода).

Что вы можете добавлять узнаете в других гайдах.

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

Я забыл упомянуть как архивировать моды.

в файле мода вместо path пишем archive

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

и запаковываем мод в архив (чтобы там были сразу его файлы, а не сначала папка в архиве, а потом файлы)

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

Aristocrat
В 13.10.2016 в 15:15, gtym33 сказал:

Я забыл упомянуть как архивировать моды.

Добрый вечер, не могли бы Вы уточнить с помощью какой программы и каким образом осуществлять архивирование файла, потому как у меня ни с помощью 7-zip ни с помощью WinRar не получилось это сделать, к сожалению. Я для начала решил поэкспериментировать внося изменения в существующие моды, чтобы разобраться как это работает. Взял за основу мод, добавляющий в игру новую расу, распаковал его-снова запаковал и запустил, но игра не увидела мод. Я повторил это, при этом не внося в мод никаких изменений, однако тоже ничего не вышло... Обратил внимание, что даже по размеру файлы отличаются от первоначального, т.е. работоспособного варианта после архивации.

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

В 13.10.2016 в 21:15, gtym33 сказал:

Я забыл упомянуть как архивировать моды.

в файле мода вместо path пишем archive

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

и запаковываем мод в архив (чтобы там были сразу его файлы, а не сначала папка в архиве, а потом файлы)

Спасибо тебе за твои учебники, стало понятнее, что да как там устроено.

Можешь подсказать касательно создания эвента, пару часов уже копаюсь в файлах!

Как сделать так, что-бы правителю империи под управлением человека давался мой трейт, который я создал (спс твоему учебнику)?

Вот, что получилось:

Мой эвент  

event = {
    id = game_start.808    
    title = "undead"
    
    
    desc = {
        trigger = { has_global_flag = game_started }
        limit = { is_ai = no }
        trigger = {
            hidden:fromfrom = {
                switch = {
                    trigger = has_leader_flag
                    gained_leader_trait_undead = { text = leader.newtrait }
                }
            }
        }
    }
    location = event_target:current_planet
    picture = GFX_evt_throne_room
    is_triggered_only = yes

    trigger = {
        exists = capital_scope
    }

    immediate = {
        capital_scope = {
            save_event_target_as = current_planet
        }
    }

    option = {
        name = OK
        tooltip = {
            fromfrom = {
                if = { 
                    limit = { has_leader_flag = gained_leader_trait_undead }
                    add_trait = leader_trait_undead
                }
            }
        }
    }
}

Hide  

За основу брал это:

#Ruler gains new trait  

country_event = {
    id = leader.25
    title = leader.25.name
    desc = {
        trigger = {
            hidden:fromfrom = {
                switch = {
                    trigger = has_leader_flag
                    gained_leader_trait_adaptable = { text = leader.newtrait }
                    gained_leader_trait_resilient = { text = leader.newtrait }
                    gained_leader_trait_stubborn = { text = leader.stubborn }
                    gained_leader_trait_substance_abuser = { text = leader.substanceabuser }
                    gained_leader_trait_arrested_development = { text = leader.arresteddevelopment }
                    gained_trait_ruler_corvette_focus = { text = leader.newtrait }
                    gained_trait_ruler_destroyer_focus = { text = leader.newtrait }
                    gained_trait_ruler_cruiser_focus = { text = leader.newtrait }
                    gained_trait_ruler_battleship_focus = { text = leader.newtrait }
                    gained_trait_ruler_recruiter = { text = leader.newtrait }
                    gained_trait_ruler_fortifier = { text = leader.newtrait }
                    gained_trait_ruler_logistic_understanding = { text = leader.newtrait }
                    gained_trait_ruler_military_pioneer = { text = leader.newtrait }
                    gained_trait_ruler_warlike = { text = leader.newtrait }
                    gained_trait_ruler_architectural_sense = { text = leader.newtrait }
                    gained_trait_ruler_frontier_spirit = { text = leader.newtrait }
                    gained_trait_ruler_world_shaper = { text = leader.newtrait }
                    gained_trait_ruler_home_in_the_sky = { text = leader.newtrait }
                    gained_trait_ruler_industrialist = { text = leader.newtrait }
                    gained_trait_ruler_eye_for_talent = { text = leader.newtrait }
                    gained_trait_ruler_deep_connections = { text = leader.newtrait }
                    gained_trait_ruler_charismatic = { text = leader.newtrait }
                    gained_trait_ruler_champion_of_the_people = { text = leader.newtrait }
                    gained_trait_ruler_expansionist = { text = leader.newtrait }
                    gained_trait_ruler_fertility_preacher = { text = leader.newtrait }
                    gained_trait_ruler_investor = { text = leader.newtrait }
                    gained_trait_ruler_explorer = { text = leader.newtrait }
                    gained_leader_trait_fleet_organizer = { text = leader.newtrait }
                    default = { text = "leader.21.fallback" }
                }
            }
        }
    }
    location = event_target:current_planet
    picture = GFX_evt_throne_room
    is_triggered_only = yes

    trigger = {
        exists = capital_scope
    }

    immediate = {
        capital_scope = {
            save_event_target_as = current_planet
        }
    }

    option = {
        name = OK
        tooltip = {
            fromfrom = {
                if = { 
                    limit = { has_leader_flag = gained_leader_trait_adaptable }
                    add_trait = leader_trait_adaptable
                }
                if = { 
                    limit = { has_leader_flag = gained_leader_trait_resilient }
                    add_trait = leader_trait_resilient
                }
                if = { 
                    limit = { has_leader_flag = gained_leader_trait_stubborn }
                    add_trait = leader_trait_stubborn
                }
                if = { 
                    limit = { has_leader_flag = gained_leader_trait_substance_abuser }
                    add_trait = leader_trait_substance_abuser
                }
                if = { 
                    limit = { has_leader_flag = gained_leader_trait_arrested_development }
                    add_trait = leader_trait_arrested_development
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_corvette_focus }
                    add_trait = trait_ruler_corvette_focus
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_destroyer_focus }
                    add_trait = trait_ruler_destroyer_focus
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_cruiser_focus }
                    add_trait = trait_ruler_cruiser_focus
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_battleship_focus }
                    add_trait = trait_ruler_battleship_focus
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_recruiter }
                    add_trait = trait_ruler_recruiter
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_fortifier }
                    add_trait = trait_ruler_fortifier
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_logistic_understanding }
                    add_trait = trait_ruler_logistic_understanding
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_military_pioneer }
                    add_trait = trait_ruler_military_pioneer
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_warlike }
                    add_trait = trait_ruler_warlike
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_architectural_sense }
                    add_trait = trait_ruler_architectural_sense
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_frontier_spirit }
                    add_trait = trait_ruler_frontier_spirit
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_world_shaper }
                    add_trait = trait_ruler_world_shaper
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_home_in_the_sky }
                    add_trait = trait_ruler_home_in_the_sky
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_industrialist }
                    add_trait = trait_ruler_industrialist
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_eye_for_talent }
                    add_trait = trait_ruler_eye_for_talent
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_deep_connections }
                    add_trait = trait_ruler_deep_connections
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_charismatic }
                    add_trait = trait_ruler_charismatic
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_champion_of_the_people }
                    add_trait = trait_ruler_champion_of_the_people
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_expansionist }
                    add_trait = trait_ruler_expansionist
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_fertility_preacher }
                    add_trait = trait_ruler_fertility_preacher
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_investor }
                    add_trait = trait_ruler_investor
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_explorer }
                    add_trait = trait_ruler_explorer
                }
                if = { 
                    limit = { has_leader_flag = gained_leader_trait_fleet_organizer }
                    add_trait = leader_trait_fleet_organizer
                }
            }
        }
    }
}

Hide  
Подскажи пожалуйста как его правильно создать):wall::sdayus:
Ссылка на комментарий

4 часа назад, Makc1ms сказал:

Спасибо тебе за твои учебники, стало понятнее, что да как там устроено.

Можешь подсказать касательно создания эвента, пару часов уже копаюсь в файлах!

Как сделать так, что-бы правителю империи под управлением человека давался мой трейт, который я создал (спс твоему учебнику)?

Вот, что получилось:

Мой эвент

event = {
    id = game_start.808    
    title = "undead"
    
    
    desc = {
        trigger = { has_global_flag = game_started }
        limit = { is_ai = no }
        trigger = {
            hidden:fromfrom = {
                switch = {
                    trigger = has_leader_flag
                    gained_leader_trait_undead = { text = leader.newtrait }
                }
            }
        }
    }
    location = event_target:current_planet
    picture = GFX_evt_throne_room
    is_triggered_only = yes

    trigger = {
        exists = capital_scope
    }

    immediate = {
        capital_scope = {
            save_event_target_as = current_planet
        }
    }

    option = {
        name = OK
        tooltip = {
            fromfrom = {
                if = { 
                    limit = { has_leader_flag = gained_leader_trait_undead }
                    add_trait = leader_trait_undead
                }
            }
        }
    }
}

Hide

За основу брал это:

#Ruler gains new trait

country_event = {
    id = leader.25
    title = leader.25.name
    desc = {
        trigger = {
            hidden:fromfrom = {
                switch = {
                    trigger = has_leader_flag
                    gained_leader_trait_adaptable = { text = leader.newtrait }
                    gained_leader_trait_resilient = { text = leader.newtrait }
                    gained_leader_trait_stubborn = { text = leader.stubborn }
                    gained_leader_trait_substance_abuser = { text = leader.substanceabuser }
                    gained_leader_trait_arrested_development = { text = leader.arresteddevelopment }
                    gained_trait_ruler_corvette_focus = { text = leader.newtrait }
                    gained_trait_ruler_destroyer_focus = { text = leader.newtrait }
                    gained_trait_ruler_cruiser_focus = { text = leader.newtrait }
                    gained_trait_ruler_battleship_focus = { text = leader.newtrait }
                    gained_trait_ruler_recruiter = { text = leader.newtrait }
                    gained_trait_ruler_fortifier = { text = leader.newtrait }
                    gained_trait_ruler_logistic_understanding = { text = leader.newtrait }
                    gained_trait_ruler_military_pioneer = { text = leader.newtrait }
                    gained_trait_ruler_warlike = { text = leader.newtrait }
                    gained_trait_ruler_architectural_sense = { text = leader.newtrait }
                    gained_trait_ruler_frontier_spirit = { text = leader.newtrait }
                    gained_trait_ruler_world_shaper = { text = leader.newtrait }
                    gained_trait_ruler_home_in_the_sky = { text = leader.newtrait }
                    gained_trait_ruler_industrialist = { text = leader.newtrait }
                    gained_trait_ruler_eye_for_talent = { text = leader.newtrait }
                    gained_trait_ruler_deep_connections = { text = leader.newtrait }
                    gained_trait_ruler_charismatic = { text = leader.newtrait }
                    gained_trait_ruler_champion_of_the_people = { text = leader.newtrait }
                    gained_trait_ruler_expansionist = { text = leader.newtrait }
                    gained_trait_ruler_fertility_preacher = { text = leader.newtrait }
                    gained_trait_ruler_investor = { text = leader.newtrait }
                    gained_trait_ruler_explorer = { text = leader.newtrait }
                    gained_leader_trait_fleet_organizer = { text = leader.newtrait }
                    default = { text = "leader.21.fallback" }
                }
            }
        }
    }
    location = event_target:current_planet
    picture = GFX_evt_throne_room
    is_triggered_only = yes

    trigger = {
        exists = capital_scope
    }

    immediate = {
        capital_scope = {
            save_event_target_as = current_planet
        }
    }

    option = {
        name = OK
        tooltip = {
            fromfrom = {
                if = { 
                    limit = { has_leader_flag = gained_leader_trait_adaptable }
                    add_trait = leader_trait_adaptable
                }
                if = { 
                    limit = { has_leader_flag = gained_leader_trait_resilient }
                    add_trait = leader_trait_resilient
                }
                if = { 
                    limit = { has_leader_flag = gained_leader_trait_stubborn }
                    add_trait = leader_trait_stubborn
                }
                if = { 
                    limit = { has_leader_flag = gained_leader_trait_substance_abuser }
                    add_trait = leader_trait_substance_abuser
                }
                if = { 
                    limit = { has_leader_flag = gained_leader_trait_arrested_development }
                    add_trait = leader_trait_arrested_development
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_corvette_focus }
                    add_trait = trait_ruler_corvette_focus
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_destroyer_focus }
                    add_trait = trait_ruler_destroyer_focus
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_cruiser_focus }
                    add_trait = trait_ruler_cruiser_focus
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_battleship_focus }
                    add_trait = trait_ruler_battleship_focus
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_recruiter }
                    add_trait = trait_ruler_recruiter
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_fortifier }
                    add_trait = trait_ruler_fortifier
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_logistic_understanding }
                    add_trait = trait_ruler_logistic_understanding
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_military_pioneer }
                    add_trait = trait_ruler_military_pioneer
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_warlike }
                    add_trait = trait_ruler_warlike
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_architectural_sense }
                    add_trait = trait_ruler_architectural_sense
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_frontier_spirit }
                    add_trait = trait_ruler_frontier_spirit
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_world_shaper }
                    add_trait = trait_ruler_world_shaper
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_home_in_the_sky }
                    add_trait = trait_ruler_home_in_the_sky
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_industrialist }
                    add_trait = trait_ruler_industrialist
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_eye_for_talent }
                    add_trait = trait_ruler_eye_for_talent
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_deep_connections }
                    add_trait = trait_ruler_deep_connections
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_charismatic }
                    add_trait = trait_ruler_charismatic
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_champion_of_the_people }
                    add_trait = trait_ruler_champion_of_the_people
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_expansionist }
                    add_trait = trait_ruler_expansionist
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_fertility_preacher }
                    add_trait = trait_ruler_fertility_preacher
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_investor }
                    add_trait = trait_ruler_investor
                }
                if = { 
                    limit = { has_leader_flag = gained_trait_ruler_explorer }
                    add_trait = trait_ruler_explorer
                }
                if = { 
                    limit = { has_leader_flag = gained_leader_trait_fleet_organizer }
                    add_trait = leader_trait_fleet_organizer
                }
            }
        }
    }
}

Hide
Подскажи пожалуйста как его правильно создать):wall::sdayus:

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

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

48 минут назад, gtym33 сказал:

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

Я думал, что эта часть отвечает за добавление: обычно же //условие// //действие если да// //действие если нет//, но видимо нет)

Кусок кода  

option = {
        name = OK
        tooltip = {
            fromfrom = {
                if = { 
                    limit = { has_leader_flag = gained_leader_trait_undead }
                    add_trait = leader_trait_undead
                }
            }
        }
    }

Hide  

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

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

В 09.12.2017 в 20:57, Makc1ms сказал:

Я думал, что эта часть отвечает за добавление: обычно же //условие// //действие если да// //действие если нет//, но видимо нет)

Кусок кода

option = {
        name = OK
        tooltip = {
            fromfrom = {
                if = { 
                    limit = { has_leader_flag = gained_leader_trait_undead }
                    add_trait = leader_trait_undead
                }
            }
        }
    }

Hide

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

tooltip
означает  появление такой всплывающей надписи, где можно написать что угодно, надписи не будут действовать, а только показывать что они есть. Такое может понадобится если нужно сделать эвент, который уже после действия показывает что произошло, а в триггере написано, что он УЖЕ должен был получить этот трейт. Как привязать новый трейт к существующей системе получения трейтов я не знаю так как моддингом стеллариса не занимался более полугода.

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

В 12.12.2017 в 05:23, gtym33 сказал:

tooltip
означает  появление такой всплывающей надписи, где можно написать что угодно, надписи не будут действовать, а только показывать что они есть. Такое может понадобится если нужно сделать эвент, который уже после действия показывает что произошло, а в триггере написано, что он УЖЕ должен был получить этот трейт. Как привязать новый трейт к существующей системе получения трейтов я не знаю так как моддингом стеллариса не занимался более полугода.

Спасибо, я с этим уже разобрался) Все получилось. Ну ток я не не стал заморачиваться выводом на экран уведомления и давания возможности получить/не получить этот трэйт. Просто сделал эту часть как отдельный мод. Модульная система получается, так сказать.

З.ы.

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

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

Caerwyn VI

Здравствуйте. Хочу попробовать себя в моддинге и создать на первых порах музыкальный мод. Подскажите как добавить музыку в каталог мода? какие расширения должны быть у файлов?

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

balabasuu

А можно мне задать вопрос, точнее попросить пример?

Как модом поменять стартовое количество звёздных баз с 3 на 33?

Лучше примером мода.

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

Legenda 1

Я хотел бы руссифицировать мод,подскажите пожалуйста как это правильно сделать

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

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

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

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

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

  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

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