gtym33

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

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

gtym33

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

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

 

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

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

ПРОГРАММЫ

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

Стэлларис

 

ШАГ 1

Открой меня  

0e6bd54dbb02.png

443eb94c9b87.png

853dea43679c.png

Hide  

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

 

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

Вот они  

051f08bc0775.png

Hide  

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

ШАГ 2

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

gtym33

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Makc1ms
В 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:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

gtym33
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 с командой, который говорит вам, что трейт был получен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Makc1ms
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  

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

gtym33
В 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
означает  появление такой всплывающей надписи, где можно написать что угодно, надписи не будут действовать, а только показывать что они есть. Такое может понадобится если нужно сделать эвент, который уже после действия показывает что произошло, а в триггере написано, что он УЖЕ должен был получить этот трейт. Как привязать новый трейт к существующей системе получения трейтов я не знаю так как моддингом стеллариса не занимался более полугода.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

З.ы.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Caerwyn VI

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

  Only 75 emoji are allowed.

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

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

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


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

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

  • Модераторы онлайн

    • simonov-89
    • Александрович
    • alexis
    • Adjudicator