• Страница 1 из 1
  • 1
Модератор форума: FanG, Аdmin, FantomICW, Overfirst  
Форум » S.T.A.L.K.E.R. Модификации » Помощь в моддинге » Скрипты, конфиги, логика, движок » Установка функций в диаолги (Для начинающих) (Рассмотрю установку функций в диалог тип выдача оружия и тд.)
Установка функций в диаолги (Для начинающих)
Украина  Cobalt32
Вторник, 19.12.2017, 15:37 | Сообщение # 1
Статус:
Гость:
Сообщений: 39
Награды: 1
Регистрация: 12.12.2017

Это мой первый урок.
Большинство начинающих модмейкеров, создав своего нпс, прописав для него диалог, хотели ,например, чтобы он выдавал оружие, как волк, или деньги либо делал что-то ещё(рассматривать инфопоршни и создание диалогов я не буду). Давайте ознакомимся с самой функцией. Функция должна находится в папке scripts/escape_dialog.
Код
function give_weapon_to_actor (trader, actor) -- (give_weapon_to_actor) это название функции, через него она будет вызываться;
    dialogs.relocate_item_section(trader, "wpn_pm", "in") -- ("wpn_pm") это название предмета, "in",3) -- так можно указать количество предметов;
    dialogs.relocate_item_section(trader, "ammo_9x18_fmj", "in")
    dialogs.relocate_item_section(trader, "ammo_9x18_fmj", "in")
    dialogs.relocate_item_section(trader, "wpn_knife", "in")     
end -- конец функции

Теперь посмотрим как все это реализовано в диалоге. Заходим в папку config/gameplay и ищем файл dialogs_escape. Ищем нашу функцию.
Код
         <phrase id="1111111111"> -- номер фразы;
                <text>escape_lager_volk_talk_1111111111</text> -- текст фразы;
                <action>escape_dialog.give_weapon_to_actor</action> -- (<action>) вызывает действие, в данном случае
  --функцию. (escape_dialog.)  Это название файла в котором содержится наша функция, точка значит, что внутри
  --данного файла нужно искать  give_weapon_to_actor  — это и есть функция.
         </phrase>

То есть при переходе на фразу 1111111111 осуществляется выполнение данной функции. Ещё одно, функция должна вписываться после <text>...</text>.
Не ставьте вызов функции после next или инфопоршня.
Ещё один момент что может вызвать вопрос. Функция не обязательно должна называться give_weapon_to_actor, это название функции и оно используется только при её вызове.
Функция
Код
function give_money_bro (trader, actor)
    dialogs.relocate_item_section(trader, "wpn_pm", "in")
    dialogs.relocate_item_section(trader, "ammo_9x18_fmj", "in")
    dialogs.relocate_item_section(trader, "ammo_9x18_fmj", "in")
    dialogs.relocate_item_section(trader, "wpn_knife", "in")     
end

Будет делать то же самое, но прописывать в диалог её нужно будет уже так:
Код
<action>escape_dialog.give_money_bro</action>

(Конечно же прописав её предварительно в escape_dialog)
Вот примеры функций(взято из другой статьи на этом же сайте.)


Ещё

<b></b>
Сообщение отредактировал Cobalt32 - Вторник, 19.12.2017, 19:13
  Злобная реклама
Вторник, 19.12.2017, 15:37
Статус:
Сообщений: 666
Регистрация: 12.12.2017
Российская Федерация  Overfirst
Вторник, 19.12.2017, 15:56 | Сообщение # 2
Статус:
Бывалый:
Сообщений: 784
Награды: 13
Регистрация: 11.06.2015

Доведи до ума оформление, пожалуйста.
Украина  PROFFESIONAL
Вторник, 19.12.2017, 16:23 | Сообщение # 3
Пространственная Аномалия
Статус:
Новичок:
Сообщений: 300
Награды: 4
Регистрация: 24.01.2014

Вы бы название темы без ошибки написали для начала, да и оформление мягко говоря хромает, не порядок.
Украина  Cobalt32
Вторник, 19.12.2017, 16:37 | Сообщение # 4
Статус:
Гость:
Сообщений: 39
Награды: 1
Регистрация: 12.12.2017

Правил
Форум » S.T.A.L.K.E.R. Модификации » Помощь в моддинге » Скрипты, конфиги, логика, движок » Установка функций в диаолги (Для начинающих) (Рассмотрю установку функций в диалог тип выдача оружия и тд.)
  • Страница 1 из 1
  • 1
Поиск: