ФЭНДОМ


Написал 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