Перейти к содержимому
Strategium.ru

Смотрим этот ваш хвалёный ChatGPT в контексте моддинга Хойки


GBV

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

Как известно, создать мод для Хойки может даже школьник младших классов. А давайте посмотрим, насколько хорошо знаком со скриптовым языком парадоксов знаменитый чат-бот ChatGPT. Бота не сбила с толку опечатка в названии игры и он прямо рвётся в бой и просит давать ему конкретный задачи:

ты знаком со скриптовым языком для моддинга компьютерных стратегий от Paradox Interactive наподобие Hуarts of Iron 4?
 
 

Как и любой другой язык программирования, я могу изучать и работать с языком скриптовых моддинга игр, включая тот, который используется в игре Hearts of Iron IV от Paradox Interactive. Язык скриптов, используемый в этой игре, называется "интерпретируемый модификационный язык" (Modding Script Language), и он основан на языке программирования Lua.

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

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


Начнём с простенького национального фокуса:

хорошо, тогда попробуй написать код для национального фокуса в игре Hearts of Iron IV. При выполнении этого фокуса в стране должна меняться правящая партия на коммунистическую и отниматься 20% стабильности
Получим такой код:
Спойлер

# Файл: my_national_focus.txt

my_national_focus = {
    icon = GFX_goal_generic_political_advisor
    # Название фокуса
    name = "MY_FOCUS_NAME"
    
    # Описание фокуса
    desc = "MY_FOCUS_DESCRIPTION"
    
    # Длительность фокуса
    duration = 7
    
    # Открываем фокус только тогда, когда определенное условие выполнено
    prerequisite = {
        tag = MY_COUNTRY_TAG
    }

    # Эффекты фокуса
    effect = {
        # Изменяем правящую партию на коммунистическую
        set_politics = {
            ruling_party = MY_COMMUNIST_PARTY
        }
        
        # Отнимаем 20% стабильности
        stability = -0.2
    }
}

Оно конечно отдалённо похоже на правду, но многое перепутано. Возможно он берёт примеры из предыдущих версий Хойки или родственных игр. Укажем на пару ошибок и попросим исправить:

некоторые параметры ты неверно указал, вместо duration нужно использовать cost, а вместо effect - completion_reward. Попробуй исправить этот скрипт с учётом этой информации

Спойлер

# Файл: my_national_focus.txt

my_national_focus = {
    icon = GFX_goal_generic_political_advisor
    # Название фокуса
    name = "MY_FOCUS_NAME"
    
    # Описание фокуса
    desc = "MY_FOCUS_DESCRIPTION"
    
    # Стоимость фокуса
    cost = 10
    
    # Открываем фокус только тогда, когда определенное условие выполнено
    prerequisite = {
        tag = MY_COUNTRY_TAG
    }

    # Награда за выполнение фокуса
    completion_reward = {
        # Изменяем правящую партию на коммунистическую
        set_politics = {
            ruling_party = MY_COMMUNIST_PARTY
        }
        
        # Отнимаем 20% стабильности
        stability = -0.2
    }
}

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


(изменено)

Быстро глянем теперь умение работать с ивентами:

а теперь попробуй написать для этой же игры код для события, которое возникает в стране при падении уровня стабильности ниже 25%. В событии должно быть два варианта выбора, первый отнимает 100 очков политической власти, но прибавляет 10% стабильности, а второй вариант увеличивает поддержку войны в стране на 15%
Спойлер

# Файл: my_event.txt

country_event = {
    id = my_event.1
    title = "MY_EVENT_TITLE"
    desc = "MY_EVENT_DESCRIPTION"
    picture = GFX_report_event
    
    trigger = {
        tag = ROOT
        stability < 0.25
    }
    
    mean_time_to_happen = {
        months = 6
    }
    
    option = {
        name = "OPTION_1_NAME"
        add_political_power = -100
        add_stability = 0.1
    }
    
    option = {
        name = "OPTION_2_NAME"
        add_war_support = 0.15
    }
}

Вот с простым событием получилось уже получше, видимо из-за того что оно всё таки более самодостаточно, чем отдельный фокус на дереве с другими фокусами. В принципе здесь достаточно подставить свои ключи локализации и конкретное изображение и оно будет выполнять то, что и задумывалось (ну ладно, триггер для стабильности называется has_stability, но уверен бот найдёт эту ошибку, если подсказать). Пока хватит на сегодня, посмотрим потом ещё, на что он способен.

Изменено пользователем GBV

ололош Чингисханович

Страшно... Оно теперь сделает хойку в реальности и захватит мир за люксембург.....


1 час назад, ололош Чингисханович сказал:

Страшно... Оно теперь сделает хойку в реальности и захватит мир за люксембург.....

Отставить панику, до сильного ИИ ему ещё как до Луны :D


Помучаем ещё сегодня немного нашего бота такой специфической темой, как моддинг Хойки. Зададим ещё раз ему задание на написание фокуса:

Напиши для этой игры код национального фокуса, при выполнении которого прибавляется 100 политической власти, увольняется персонаж TAG_vasya_pupkin и вызывается для тега SOV событие my_event.1

Спойлер

focus_tree = {
    country = {
        my_focus = {
            icon = GFX_goal_generic_research
            tooltip = "My Focus"
            picture = GFX_goal_generic_research
            
            prerequisite = { focus = some_other_focus }
            
            completion_reward = {
                add_political_power = 100
                remove_country_leader = TAG_vasya_pupkin
                country_event = { id = my_event.1 hours = 1 }
            }
        }
    }
}
 

Тут видим что бот на этот раз правильно указал секцию выполнения completion_reward, но пропустил cost и другие параметры. С персонажами он работать явно не умеет, база 21-го года всё таки даёт о себе знать.  Событие вызывается не у заданного тега, попробуем ему указать на это:

событие my_event.1 в твоём примере будет выполняться у нашей страны, а нужно чтобы оно вызывалось у страны с тегом SOV. Исправь фокус с учётом этого

Спойлер

focus_tree = {
    country = {
        my_focus = {
            icon = GFX_goal_generic_research
            tooltip = "My Focus"
            picture = GFX_goal_generic_research
            
            prerequisite = { focus = some_other_focus }
            
            completion_reward = {
                add_political_power = 100
                remove_country_leader = TAG_vasya_pupkin
                country_event = { id = my_event.1 target = SOV hours = 1 }
            }
        }
    }
}
 

target = SOV - это не то, что нам нужно, попробуем более явно подсказать, как нужно делать:

это не совсем так исправляется. Чтобы событие выполнялось для другого тега, нужно указать его область видимости, например SOV = { ... } - и в фигурных скобках указать тот код, который для этого тега выполняется. Попробуй ещё исправить по этим рекомендациям

Спойлер

focus_tree = {
    country = {
        my_focus = {
            icon = GFX_goal_generic_research
            tooltip = "My Focus"
            picture = GFX_goal_generic_research
            
            prerequisite = { focus = some_other_focus }
            
            completion_reward = {
                add_political_power = 100
                remove_country_leader = TAG_vasya_pupkin
                country_event = {
                    id = my_event.1 
                    target = ROOT 
                    immediate = yes
                    is_triggered_only = yes
                    SOV = {
                        # Код, который будет выполняться для страны с тегом SOV
                    }
                }
            }
        }
    }
}
 

Да уж, много строк кода - мало толку. С каждым разом получался скорее всё менее корректный вариант фокуса.


(изменено)

Пусть хотя бы ивент теперь напишет:

Напиши код для этого события my_event.1, при выборе в нём первого варианта страна присоединяется к альянсу отправителя с тегом TAG, а при выборе второго варианта - тег TAG получает повод для войны против текущей страны

Спойлер

country_event = {
    id = my_event.1
    title = "My Event Title"
    desc = "My Event Description"
    
    trigger = {
        # Условия триггера, если нужно
    }
    
    option = {
        name = "Option 1"
        ai_chance = { factor = 100 }
        add_to_war = {
            tag = ROOT
            alliance_with = TAG
        }
    }
    
    option = {
        name = "Option 2"
        ai_chance = { factor = 100 }
        custom_effect_tooltip = "TAG gains a CB against ROOT"
        TAG = {
            add_wargoal = {
                type = humiliate
                target = ROOT
            }
        }
    }
}
 

Приглашение в альянс не то, что нужно. С поводом для войны тоже неправильно, хоть конечно с тегами всё норм указал, но нужно create_wargoal, а не add_wargoal. Ну и как вишенка на торте цель войны humiliate :no-no: Не, ну а что, начнём войну просто чтобы унизить противника. Впрочем, по моим наблюдениям, всякие начинающие мододелы-люди тоже иногда начинают что-то выдумывать из головы, в странной надежде, что движок игры всё поймёт и выполнит. Хотя, может быть то были не люди? :unknw:

Изменено пользователем GBV

(изменено)

Попробуем ещё дать задание на английском, раз уж этот язык более приоритетный для бота:

write code for national focus in game Hearts of Iron 4. As a result of this focus in 70 days we get 100 political power, our country leader get new trait my_first_trait and starting mission SOV_new_mission

Спойлер

focus_tree = root_focus.add_focus("my_national_focus")
focus_tree.set_icon("GFX_goal_generic_political_spread")

# Set the localization for the focus
focus_tree.add_prerequisite("focus = my_previous_focus")
focus_tree.set_name("My National Focus")
focus_tree.set_description("This is my national focus.")

# Set the requirements and effects of the focus
focus_tree.add_effect("add_political_power = 100")
focus_tree.add_effect("add_country_leader_trait = my_first_trait")
focus_tree.add_effect("start_mission = { mission = SOV_new_mission }")

# Set the time and cost of the focus
focus_tree.set_days(70)
focus_tree.set_cost(10)

Тут Остапа вообще понесло в другую степь почему-то. По-моему русский он понимал лучше, вроде я ничего серьёзно не должен был напутать в переводе :prava: Так что навряд ли английский язык для данной сферы будет панацеей, всё равно бот в таких узких темах ещё сильно плавает и неизвестно, когда сможет стабильно выдавать более корректный код для модов.

Изменено пользователем GBV

LeahBarrett
(изменено)
В 19/2/2023 в 22:48, GBV сказал:

Как известно, создать мод для Хойки может даже школьник младших классов. А давайте посмотрим, насколько хорошо знаком со скриптовым языком парадоксов знаменитый чат-бот ChatGPT. Бота не сбила с толку опечатка в названии игры и он прямо рвётся в бой и просит давать ему конкретный задачи:

ты знаком со скриптовым языком для моддинга компьютерных стратегий от Paradox Interactive наподобие Hуarts of Iron 4?
 
 
 

Как и любой другой язык программирования, я могу изучать и работать с языком скриптовых моддинга игр, включая тот, который используется в игре Hearts of Iron IV от Paradox Interactive. Язык скриптов, используемый в этой игре, называется "интерпретируемый модификационный язык" (Modding Script Language), и он основан на языке программирования Lua.

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

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

Use Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. with a variety of languages fluently, completely free

Изменено пользователем LeahBarrett

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

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

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

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

  Only 75 emoji are allowed.

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

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

×   Вы не можете вставлять картинки напрямую. Загрузите или вставьте их через URL.

  • Ответы 8
  • Создано
  • Последний ответ
  • Просмотры 2114

Лучшие авторы в этой теме

  • GBV

    7

  • ололош Чингисханович

    1

  • LeahBarrett

    1

Лучшие авторы в этой теме

Популярные сообщения

GBV

Как известно, создать мод для Хойки может даже школьник младших классов. А давайте посмотрим, насколько хорошо знаком со скриптовым языком парадоксов знаменитый чат-бот ChatGPT. Бота не сбила с толку

GBV

Отставить панику, до сильного ИИ ему ещё как до Луны 

GBV

Попробуем ещё дать задание на английском, раз уж этот язык более приоритетный для бота: write code for national focus in game Hearts of Iron 4. As a result of this focus in 70 days we get 100 pol

GBV

Начнём с простенького национального фокуса: хорошо, тогда попробуй написать код для национального фокуса в игре Hearts of Iron IV. При выполнении этого фокуса в стране должна ме

GBV

Быстро глянем теперь умение работать с ивентами: а теперь попробуй написать для этой же игры код для события, которое возникает в стране при падении уровня стабильности ниже 25%

ололош Чингисханович

Страшно... Оно теперь сделает хойку в реальности и захватит мир за люксембург.....

GBV

Помучаем ещё сегодня немного нашего бота такой специфической темой, как моддинг Хойки. Зададим ещё раз ему задание на написание фокуса: Напиши для этой игры код национального фокуса, при выполнен

GBV

Пусть хотя бы ивент теперь напишет: Напиши код для этого события my_event.1, при выборе в нём первого варианта страна присоединяется к альянсу отправителя с тегом TAG, а при выборе второго вариан

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

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

    • alexis
    • СУЛАРИУС
    • Alex Верховный
×
×
  • Создать...