Написал Aidan Nutting, ведущий дизайнер.
СКРИПТ СЛУЧАЙНОГО ДИАЛОГА.[]
/*
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