Recent changes Random page
GAMING
Gaming
 
WoWWiki
Halopedia
FFXIclopedia
Age of Conan
Warhammer Online
Grand Theft Wiki
See more...

Скрипты диалогов

Материал из Djinni Wiki

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

Написал Aidan Nutting, ведущий дизайнер.

Изображение:SoD_ru.jpg

[править] СКРИПТ СЛУЧАЙНОГО ДИАЛОГА.

/*
cn_rnd14
  Составляя условие диалога, есть вероятность 25% что это будет сказано.
  Убедитесь, что созданные условия размещены в начале диалога, чтобы поднять шанс до максимального.
  Создал Ghostdreamer для "NWN1", модифицировал Paul V для "Ведьмака".
*/
int StartingConditional ()
{
    int iResult;
    iResult = d100 () <26;
    return iResult;
}

Вышеприведенный скрипт - пример скрипта случайного диалога. В примере указан условный скрипт на первый диалоговый узел из четырех. Второму диалоговому узлу необходимо присвоить сходный условный скрипт, но вместо

iResult = d100 () <26;

должно быть:

iResult = d100 () <51;

Д'жинни прокручивает 100 возможностей, когда инициализирует диалог. Если результат <26, запускается данный диалоговый узел. Если результат >25, проверке подвергается следующий диалог.

Важно заметить, что скрипты должны быть размещены в порядке от наименьшей вероятности до наибольшей,
сверху вниз, в диалоговых узлах в .dlg. Это нужно затем, что Д'жинни читает сверху вниз, и если главный
узел будет iResult = d100 () <100; тогда этот диалог будет проигрываться все 100% времени и потеряется
общий смысл скрипта.


Более того, каждый диалоговый узел в .dlg-файле должен иметь отдельный условный скрипт с равными возможностями прокрутки каждого, обусловленными общим числом диалоговых узлов. Что это означает? Предположим, у вас есть 10 диалоговых узлов, которые должны случайным образом выбираться каждый раз при обращении Геральта к данному персонажу; тогда условный скрипт будет таким как показан выше, но со следующими показателями:

  • iResult = d100 () <11;
  • iResult = d100 () <21;
  • iResult = d100 () <31;
  • iResult = d100 () <41;
  • iResult = d100 () <51;
  • iResult = d100 () <61;
  • iResult = d100 () <71;
  • iResult = d100 () <81;
  • iResult = d100 () <91;
  • iResult = d100 () <100;


[править] СОГЛАШЕНИЕ О НАЗВАНИЯХ СКРИПТОВ.

В конце концов у вас на жестком диске наберется очень много сохраненных скриптов, и их поиск может занять много времени. Чтобы упростить поиск, и для удобства использования, было придумано следующее соглашение о названии скриптов.

cn_rnd14 (представляет собой условие-случай - 1-й из 4. iResult = <26)
cn_rnd24 (представляет собой условие-случай - 2-й из 4. iResult = <51)
cn_rnd15 (представляет собой условие-случай - 1-й из 5. iResult = <21)
и т.д.


Надеемся, вам это поможет.



СТАТЬИ
Руководства от REDFlame Interactive
Экспорт моделейСкрипты на практикеДиалог со звуковыми файламиСкрипты диалоговСобственные экраны загрузкиРолики с секс-карточкамиСобственные модели

Полный мануал по Экспорту моделей из 3DSMax9Скрипты анимацииОчередность в скриптах

Д'жинни

С чего начатьБазовые статьиМодулиПерсонажиДиалогиКвестыЗапуск и тестирование игрыРолики

Общая информация о скриптахПриложенияФанатские приложенияРуководства от REDFlame InteractiveРуководства других пользователей

Оцените: Share this article: