Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
> Другой подход к созданию диалогов
san
сообщение 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
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
 
Открыть новую тему
Ответов
san
сообщение Jan 4 2008, 02:08
Сообщение #2


Level 3
*

Класс: Обыватель
Характер: Lawful Good
Раса: Человек



QUOTE
зы: кстати это гоуту в твоей структуре понятно, а в диалоге оно как обеспечено? Неужели линковка от каждой фразы есть во все узлы?

Нет. Все работает несколько иначе. Вы ведь поняли что можно создавать диалоги любого уровня вложенности? То что дано в структуре лишь пример. Я бы не смог описать полную структуру, т.к вложенность бесконечна=). От каждого ответа может быть скоко угодно хидеров, и от каждого из хидеров может быть скоко угодно ответов(только есть ограничение на максимальное кол-во одновременно отображаемых ответов = 4, не знаю почему я выбрал 4, но число это можно легко увеличить, просто мне кажется что хватает и 4ых вариантов(ОТОБРАЖАЕМЫХ!)).
Neverwinter Script Source
return ( GetLocalInt( GetPCSpeker( ), "quest" )==1 );

Тут ты прав, почти что сравнимо. Но я предпочитаю так не делать. И во вторых мы оба указали лишь 1 скрипт, а нужно то 3=) Пусть в НВН2 можно обойтись 1 скриптом, но тогда он точно будет выглядеть не так просто=)
QUOTE
зы: у меня есть похожая система для квестов
у меня такая же для условных триггеров biggrin.gif biggrin.gif Тока синтаксис чуть другой, а идея та же. Условие в текстовые локалки/имени триггера, а в скрипте парсер и проверка smile.gif

Тут все зависит от задач... если игроку юзеру нафиг не нужны диалоги, то ему не зачем что-то придумывать. И пользоваться тем что есть. Я поэтому и назвал тему "Другой подход к созданию диалогов". Я назвал преимущества данного метода, вы назвали главный недостаток(ненаглядность). У стандартного метода тоже куча недостатков. Если вы прочитали про Шаблоны, то могли бы заметить как легко вставить какой-то параметр в текст диалога... Раз вам удобно делать так как вы привыкли, я не буду(да и не смогу) вас переубеждать. Но раз уж вы обратили на этот топик внимание(а это значит что тема вам в каком то образе близка) я просто прошу посмотреть на плюсы данного способа, и если они перевешивают минусы(а я в этом уверен=)) вседаки попробывать им пользоваться(уж для вас то это не проблема).
QUOTE
хм, а почему бы не делать диалоги через диалоги? если весь смысл в том, чтобы заменить несколько мелких скриптов одним о-хо-хо и с ним возиться на уровне некомпилицо\строкиперепутал, когда в диалоге всё видно. а модмейкеру проще разобраться в скриптах, а не сначала в скриптах и потом в какой-то системе

Я еще раз говорю, если кто нить захочет юзать эту систему, то ее тоже можно сделать наглядной. И ведь прикол даже не в том чтобы модмейкеру проще разобраться в скриптах, а в том что приходится создавать кучу "ненужных" скриптов. Я привел пример, диалога, посчитай скоко в нем должно быть скриптов, чтобы он работал как надо(по моим подсчетам 4). Хорошо, если такой диалог 1, а если их много? Количество "лишних" скриптов очень сильно возрастает, и немудрено, как вы правильно говорите "запутаться" уже в них=) Так же, вы почему то не хотите обращать внимание, на другую функцию этой "системы", это то когда надо, создать много мелких диалогов. Например дилаог для всех второстепенных NPC в городе. Удобно ли для каждой пустяковой фразы создовать по диалогу? Или опять таки надо юзать скрипты... "некомпилицо\строкиперепутал", такая возможность есть и когда вы создаете диалог с помощью скриптов и редактора диалогов. А разобраться в "какой-то системе" можно за минут 20(если вы знаете на хотябы минимальном уровне скрипты, даже не скрипты, а просто логику), врядли нужно больше времени. Имо, ничего сложного тут нет. Если в НВН2 есть диалоги с параметрами, то это несколько уменьшает проблему, но все равно, она есть.
QUOTE
я боюсь размеры будут поражать воображение. + такой диалог будет труден для разбора автору спустя пару недель. Стороннего обозревателя он вообще в кому вгонит

С чего ты взял что он будет большим? 1) То что все диалоге будут находится в одном скрипте удобно для меня. Если кто-то захочет использовать больше чем 1 скрипт, он легко сможет это сделать, если он хочет чтобы даже каждый диалог находился в отдельном скрипте, он сможет это сделать. Можно также, например, несложные диалоги помещать в 1 скрипт, а сложные в отдельные. 2)Даже если все диалоге в одном скрипт разобраться в них будет так же просто как в отдельно взятом диалоге. Ведь начало и конец диалога легко узнаваемы. Пример:
Neverwinter Script Source

//Вот первый диалог его будет говорить НПС с тагом CR_caerpost_GUARDIAN1.
StartCD( GetObjectByTag( "CR_caerpost_GUARDIAN1" ) );
        SetHeaderCD( "Эта фраза НПС с тагомCR_caerpost_GUARDIAN1", TRUE );
              SetAnswerCD( "А это ответ НПС", TRUE );

//А это уже диалог для НПС с тагом ANOTHER_DIALOG
StartCD( GetObjectByTag( "ANOTHER_DIALOG" ) );
        SetHeaderCD( "Эта фраза НПС с тагомCR_caerpost_GUARDIAN1", TRUE );
              SetAnswerCD( "А это ответ НПС", TRUE );
//И что, здесь разве можно спутать кто из NPC какой диалог говорит?

QUOTE
зы: у меня есть похожая система для квестов
у меня такая же для условных триггеров biggrin.gif biggrin.gif Тока синтаксис чуть другой, а идея та же. Условие в текстовые локалки/имени триггера, а в скрипте парсер и проверка smile.gif

Может не стоит прятать подобные системы? А наоборот, стараться чтобы народ узнал о них, и если они облегчают жизнь начал использовать? Забавно, вы сами придумываете кое-что чтобы облегчить себе жизнь, а я вам предлагаю, что-то чтобы облегчить вам жизнь, а вы отказываетесь=) Вместо того чтобы поддержать говорите что вам это не надо=)

Сообщение отредактировал san - Jan 4 2008, 02:18
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

Сообщений в этой теме
- san   Другой подход к созданию диалогов   Jan 3 2008, 20:03
- - Lex   имхо слишком сложно, проще разобраться со скриптам...   Jan 3 2008, 20:14
- - san   Подразумевает, просто действительно об этом не нап...   Jan 3 2008, 21:26
- - Lex   SetHeaderCD( "Эта фраза появится если игрок в...   Jan 3 2008, 21:46
- - san   QUOTEЦиклы внутри тут тоже не предусмотрены? Да, м...   Jan 3 2008, 22:09
- - Lex   Цитата(san @ Jan 3 2008, 22:09) object oP...   Jan 3 2008, 23:11
- - azathoth   хм, а почему бы не делать диалоги через диалоги? е...   Jan 3 2008, 23:12
- - Lex   Цитата(san @ Jan 3 2008, 22:09) Мне прост...   Jan 3 2008, 23:15
- - azathoth   а вот .ерф интересно посмотреть на предмет метода ...   Jan 3 2008, 23:29
- - san   QUOTEзы: кстати это гоуту в твоей структуре понятн...   Jan 4 2008, 02:08
- - Lex   Цитата(san @ Jan 4 2008, 02:08) но тогда ...   Jan 4 2008, 02:45
- - san   Самый элементарный способ сделать приложение на AJ...   Jan 4 2008, 12:17
|- - virusman   Цитата(san @ Jan 4 2008, 12:17) Самый эле...   Jan 4 2008, 13:48
- - Белатрис   Я написал за все свое время с тулсетом кучу разных...   Jan 4 2008, 13:13
- - Lex   Цитата(Белатрис @ Jan 4 2008, 13:13) В об...   Jan 4 2008, 13:38
- - san   QUOTEВ общем, ты зря убил время. В целом, по ходу,...   Jan 4 2008, 14:29
|- - virusman   Цитата(san @ Jan 4 2008, 14:29) Раз это н...   Jan 4 2008, 14:40
- - Lex   Цитата(san @ Jan 4 2008, 14:29) И скоко ж...   Jan 4 2008, 14:53
- - azathoth   san, если ты это писал для себя -- молодец, а вот ...   Jan 4 2008, 15:23
- - Белатрис   Цитата(san @ Jan 4 2008, 22:29) И че прик...   Jan 5 2008, 03:39
- - gennady   San, для уменьшения количества скриптов нужно прос...   Jan 5 2008, 09:12
- - Aiwan   Пять юаней. Периодически у многих возникает желани...   Jan 5 2008, 12:02
- - Sairilias   У нас в сейчас активно используется около 30 униве...   Jan 5 2008, 12:24
- - Lex   Цитата(gennady @ Jan 5 2008, 09:12) Мне к...   Jan 5 2008, 12:56
- - san   QUOTEПять юаней. Периодически у многих возникает ж...   Jan 5 2008, 13:12
- - Lex   Цитата(san @ Jan 5 2008, 13:12) что удобн...   Jan 5 2008, 20:07
- - darkrain   Всем здрасте) Извините что не в тему,просто я обыч...   Jan 11 2011, 10:25
- - Griffon   darkrain, Попробуй поискать ответ в разделе скри...   Jan 11 2011, 10:44
- - darkrain   Спасибо) Цитата(darkrain @ Jan 11 2011, 10...   Jan 11 2011, 10:55
- - Griffon   Цитата(darkrain @ Jan 11 2011, 10:55) или...   Jan 11 2011, 12:30
- - darkrain   А по подробнее можно?) и можешь пожалуйста обьясни...   Jan 11 2011, 15:20
- - Griffon   Цитата(darkrain @ Jan 11 2011, 15:20) OnE...   Jan 11 2011, 16:38
- - darkrain   А вот еще один вопрос...тоже не втему но мне очень...   Jan 13 2011, 18:06
- - wirTUS   Руссификатор, имхо, не нужен (ибо гораздо менее уд...   May 24 2011, 19:16


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 6th June 2024 - 10:47