Другой подход к созданию диалогов |
Здравствуйте, гость ( Вход | Регистрация )
Другой подход к созданию диалогов |
Jan 3 2008, 20:03
Сообщение
#1
|
|
Level 3 Класс: Обыватель Характер: Lawful Good Раса: Человек |
Недавно была необходимость сделать диалоги для большого кол-ва NPC. Понял наскоко это неудобно(надо каждого НПС создавать диалог, а что если ему надо сказать просто "Здрасте", а игрок всего лишь должен ответить "Здраствуй"). Или надо использовать скрипты, а в них что-то вроде:
Neverwinter Script Source if( GetTag( OBJECT_SELF=="1" ) ) { return TRUE; } else if ... Думаю вы знаете как это делается=). А что если нужно создать диалог с проверками/действиями? Приходится использовать скрипты... причем коль-во скриптов может резко увеличится, в зависимости от кол-ва проверок/действий. Пример создать диалог в котором в зависимости от лвл игрока давалась 100 или 300 или 400 экспы, при этом были бы разные ответы НПС и игрока. Экспа должна даваться при ответе игрока. Это довольно простой пример, но даже здесь надо создать больше чем 1 скрипт. А что если я вообще не знаю как обращаться со скриптами? Я предлагаю создавать диалоги иначе. Как, смотрите ЗДЕСЬ. Все что приведено, - работает и проверено. Для того чтобы добавить систему к вашему модулю, надо включить в него 1 erf. Если тем что здесь описано заинтересуется кто нить(прошу напишите об этом), то добавлю эту .erf'ку, буду объяснять непонятные моменты и совершенствовать систему. На данный момент тестил в НВН1, но легко можно перенести и в НВН2. зы сори за грамотность. Добавлено через 13 минуты 30 Добавил ссылку, а то читать так не удобно... пройдите по ссылке, там тепереь все что надо=) Сообщение отредактировал san - Jan 3 2008, 20:02 |
Jan 3 2008, 21:26
Сообщение
#2
|
|
Level 3 Класс: Обыватель Характер: Lawful Good Раса: Человек |
Подразумевает, просто действительно об этом не написано. А сложно кажется, имхо лишь на первый взгляд. Просто когда стока всего написано, все кажется сложным.
Посмотри примеры. Что там сложного? Да, текст вносится ч/з CustomToken'ы. Вот еще 1 пример диалога, с проверкой и "действием". Цель дать игроку квест, и если он выполнен, награду: Neverwinter Script Source StartCD( GetObjectByTag( "CR_caerpost_GUARDIAN1" ) ); //это просто объект, который вызывает диалог SetHeaderCD( "Эта фраза появится если игрок берет квест#IF={( PL[quest]=0 )}", TRUE ); SetAnswerCD( "Да, я беру квест#A=( PL[quest]=1 )" ); SetAnswerCD( "Не, не хачу брать", TRUE ); SetHeaderCD( "Эта фраза появится если игрок взял квест, но не выполнил#IF={( PL[quest]=1 )}", TRUE ); SetAnswerCD( "Хорошо, хорошо, бегу выполнять", TRUE ); SetHeaderCD( "Эта фраза появится если выполнил квест#IF={( PL[quest]=2 )}", TRUE ); SetAnswerCD( "Круто, давай награду#A=( PL[quest]=0 );A=( XP=1000 )", TRUE ); //и. т. д //а в конце StopCD( ); Теперь просто сравни с тем же, но с использованием скриптов. Мало того ты знаешь скритпы... а те кто не знают=)? Сообщение отредактировал san - Jan 3 2008, 21:29 |
Текстовая версия | Сейчас: 1st June 2024 - 08:39 |