Обсуждение участника:95.188.88.217 — S.T.A.L.K.E.R. Inside Wiki

Обсуждение участника:95.188.88.217

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск

Создание селекции артефактов при помощи простых скриптов от GSC Game World. Уровень сложности: Средний Платформа: Shadow of Chernobyl Тестировалось на версии: 1.0004 Что необходимо: • Умение создать простой диалог • Умение создавать новые артефакты • Небольшие навыки работы со скриптами ( Не обязательно! ).

1 -- -- -- -- -- -- -- -- -- Для начала нам потребуется создать простой, но рабочий диалог. Предлагаю свой. Прописываем его в dialog_xxxx.xml и вставляем его туда.

<dialog id="update_snowink">

       <phrase_list>
           <phrase id="0">
update_snowink_0
       <next>1</next>
           </phrase>
           <phrase id="1">
update_snowink_1
       <next>2</next>
       <next>3</next>
           </phrase>
           <phrase id="2">
update_snowink_2
           <phrase id="3">
update_snowink_3
           </phrase>
       </phrase_list>
   </dialog>

-- Создали! Теперь нам необходимо создать в папке « scripts » новый документ Ваше_название.script и пишем там необходимые скрипты на проверку наличия предмета у ГГ, выдачу и отдачу предмета и проверку на наличие необходимой суммы. Вот вам готовые. Автор: GSC Game World


Функция отдачи простой «Медузы» и получение улучшенной
Вставим это как в action

function update_medusa(first_speaker, second_speaker)

dialogs.relocate_item_section(second_speaker, "af_medusa", "out") -- Отдаём простую медуза
dialogs.relocate_item_section(second_speaker, "Название_арта_в_конфиге", "in") -- Получаем ----------улучшенную
dialogs.relocate_money(second_speaker, 850, "out") -- Отдаём селекционеру  850 руб.

end



Функция на проверку у ГГ артефакта «Медуза».
Вставляем это как *precondition*

function have_medusa() if db.actor:object("af_medusa") then

      return true
  end
  return false

end


Функция проверяющая наличие у ГГ 850 руб
Вставляем это как *precondition*

function have_money(first_speaker, second_speaker)

  return first_speaker:money() >= 850

end

Только перед этим создайте новый артефакт и впишите его в скрипт. Вот как должен быть выглядеть диалог после проделанной работы

<dialog id="update_snowink"> <precondition>ваше_название_скрипта.have_medusa</precondition>

       <phrase_list>
           <phrase id="0">
update_snowink_0
       <next>1</next>
           </phrase>
           <phrase id="1">
update_snowink_1
       <next>2</next>
       <next>3</next>
           </phrase>
           <phrase id="2">
update_snowink_2

<precondition>ваше_название_скрипта.have_money</precondition> <action>ваше_название_скрипта.update_medusa</action>

           </phrase>
           <phrase id="3">
update_snowink_3
           </phrase>
       </phrase_list>
   </dialog>		

После этого вставляем наш диалог в character_desc_xxx.xml и определённом персу. Я взял Сидоровича. Прописываем ему след. строки <actor_dialog.update_snowink</actor_dialog>

-- Работа завершена и можно идти проверять –- -- Если я где-то оказался неправ, поправьте -- Автор статьи: __Jonathan__ ( Old Nickname: ShanobY ) Вопросы можете задать по Skype: Shanoby49 @mail.ru --- shanoby_online@mail.ru Адрес ВК: http://vk.com/id171380390

-- Заметка – При помощи данных скриптов, вы сможете сделать такие фишки как «Заказ брони у NPC» и т.д. -- Извиняюсь за столь скудное оформление, просто это моя первая статья.


Эта страница обсуждения принадлежит анонимному участнику, который ещё не создал учётной записи, или не использует её.

Поэтому для идентификации используется цифровой IP-адрес. Этот же адрес может соответствовать нескольким другим участникам. Если вы анонимный участник и полагаете, что получили сообщения, адресованные не вам, пожалуйста, создайте учётную запись или представьтесь системе, чтобы впредь избежать возможной путаницы с другими анонимными участниками.

Другие места
LANGUAGE