dialog.text = "Ну что ж, в таком случае удачи и спасибо вам. Если разберетесь во всём то обещаю хорошо заплатить."; link.l1 = "Ну вот и отлично! Немедленно отправляюсь в Мариго."; link.l1.go = "exit"; NextDiag.CurrentNode = "Stop"; Dialog.Exit(); break;
Dialog.Exit(); убери. Если в файле не создан кайс exit, то создай его, и используй для выхода из диалога. Но в самом диалоге где есть реплики, нельзя писать Dialog.Exit();
case "dialog12": dialog.text = "Ну что ж, в таком случае удачи и спасибо вам. Если разберетесь во всём то обещаю хорошо заплатить."; link.l1 = "Ну вот и отлично! Немедленно отправляюсь в Мариго."; link.l1.go = "exit"; NextDiag.CurrentNode = "Stop"; break;
case "Stop": NextDiag.CurrentNode = "Stop"; dialog.text = "Вы что-то выяснили?"; link.l1 = "Ещё нет..."; link.l1.go = "exit"; break;
Единственное, что можно сказать об удаче с уверенностью — она изменит. --------
Всё заработало. Ошибка немного в другом была. The_Joker, korsary4, спасибо!
Добавлено (23.08.2012, 13:47) --------------------------------------------- Вот еще разок помогите пожалуйста... Я создал ветку диалога, для хозяина магазина в Мариго. Создал файл "Marigo_store.c" в папке dialogs/russian/store. Ветка добавилась, в игре диалог работает. Содержание файла следующее:
switch (Dialog.CurrentNode) { case "quests": dialog.text = NPCStringReactionRepeat("Спрашивай, чего ты хочешь?", "Мы только что поднимали это тему. Вы, вероятно, запамятовали...", "Сегодня вы уже третий раз говорите о каком-то вопросе...", "Послушай, это магазин, здесь люди покупают что-то. Не отвлекай меня!", "block", 1, npchar, Dialog.CurrentNode); link.l1 = HeroStringReactionRepeat("Знаешь, " + NPChar.name + ", как-нибудь в следующий раз.", "Точно, забыл что-то...", "Да уж, действительно в третий раз...", "Гм, не буду...", npchar, Dialog.CurrentNode); link.l1.go = "exit"; link.l2 = "Мой друг попросил меня разобраться в одном деле..."; link.l2.go = "raf"; break;
case "raf":
dialog.text = "Ну спрашивайте, помогу чем смогу."; link.l1 = "Дело в том, что моего друга ограбили... Совсем недавно. И сделали это, люди с вашего острова!"; link.l1.go = "raf2"; break;
case "raf2":
dialog.text = "Почему вы так решили?"; link.l1 = "Ну во-первых потому, что на корабле были одни голландцы! Уж вы поверьте моему опыту: не может в команде пиратского корабля быть столько голландцев. К тому же не походят они на пиратов совсем."; link.l1.go = "raf3"; break;
case "raf3":
dialog.text = "Вы их, что, видели?"; link.l1 = "Я - нет, а вот мой друг..."; link.l1.go = "raf4"; break;
case "raf4":
dialog.text = "Я не знаю что вам там наговорил ваш друг, и если у вас все, то прошу не отвлекать меня более!"; link.l1 = "Ну как знаешь..."; link.l1.go = "exit"; break;
} UnloadSegment(NPChar.FileDialog2); }
Имеется НПС прописанный в quest_reaction, после диалога с которым эта ветка должна появиться, а так она там постоянно висит... Help! Заранее спасибо!
Добавлено (23.08.2012, 13:49) --------------------------------------------- Ну и за одно, может быть объясните как потом эту ветку удалить, после прочтения.
Сообщение отредактировал WMC - Четверг, 23.08.2012, 13:38
А что надо прописать, чтобы когда ГГ начинает разговор с неписем во второй раз, был вызван другой диалог? Например: когда первый раз обращаешься к трактирщику, он раччказывает о себе. Когда начинаешь разговор во второй раз, то он это уже не произносит. Делай то, что велят тебе твои сердце и разум. И будь что будет!
А что надо прописать, чтобы когда ГГ начинает разговор с неписем во второй раз, был вызван другой диалог? Например: когда первый раз обращаешься к трактирщику, он раччказывает о себе. Когда начинаешь разговор во второй раз, то он это уже не произносит.
Если не ошибаюсь, то нужно: 1) в конце первой ветки указать следующий узел (NextDiag.TempNode = "..."); 2) написать ветку диалога с именем, указанным в кавычках выше; Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор. Но я не нашёл там никого, кто не был бы моим другом!
Сообщение отредактировал Nathaniel - Четверг, 17.01.2013, 20:20
У всех так, что диалоги готовые написаны сплошным текстом, просто неудобно. Нельзя ли чтонибудь сделать? И пачему после правке диалога по квесту Питер Блад стал умирать а не на плантацию переходить?
И пачему после правке диалога по квесту Питер Блад стал умирать а не на плантацию переходить?
Потому что вы нарушили скрипт и он перестал корректно отрабатывать! Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор. Но я не нашёл там никого, кто не был бы моим другом!
Добавлено (02.02.2013, 06:06) --------------------------------------------- Скачал Notepad++ 6.0, все удивительно замечательно. А сбил скрипты я наверно из-за того, что диалоги получились длиннее/короче а там все было сплошным текстом.
// диалог по городам void ProcessCommonDialogEvent(ref NPChar, aref Link, aref NextDiag) { switch (Dialog.CurrentNode) { case "quests": dialog.text = NPCStringReactionRepeat(RandPhraseSimple("Какие вопросы?", "Что вам угодно, " + GetAddress_Form(NPChar) + "?"), "Совсем недавно вы пытались задать мне вопрос, " + GetAddress_Form(NPChar) + "...", "В течение этого дня вы уже третий раз говорите о каком-то вопросе...", "Опять вопросы будем задавать?", "block", 1, npchar, Dialog.CurrentNode); link.l1 = HeroStringReactionRepeat(RandPhraseSimple("Я передумал...", "Сейчас мне не о чем говорить"), "Хм, что-то с памятью моей стало...", "Да уж, действительно в третий раз...", "Да нет, какие вопросы...", npchar, Dialog.CurrentNode); link.l1.go = "exit"; link.l3 ="Ты че нибуть слишал?.." ; link.l3.go ="Old1"; break;
} UnloadSegment(NPChar.FileDialog2); // }
Добавлено (17.02.2013, 01:10) --------------------------------------------- Проблема решена
Я не могу - я всё делаю нормально, но когда разговариваю с персонажем, у меня вылезает в диалоговом окне такое: Питер Эйс Невозможно найти: И путь к диалогу, что делать? За ветер добычи, за ветер удачи, чтоб зажили мы, ВЕСЕЛЕЙ И БОГАЧЕ))
Это значит, что скрипт не обрабатывается... Где-то в файле есть ошибка: скобки не совпадают, знаки ";" или другие не поставлены, кейсы неправильно закрыты и тому подобные ошибки... Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор. Но я не нашёл там никого, кто не был бы моим другом!
switch(Dialog.CurrentNode) { case "Exit": NextDiag.CurrentNode = NextDiag.TempNode; DialogExit(); break;
case "First time": dialog.text = LinkRandPhrase("Здраствуйте, капитан. Меня зовут "+ GetFullName(NPchar)+".", "Добро пожаловать в мои покои. Мое имя"+ GetFullName(NPchar)+".", "Здравствуйте, " + GetAddress_Form(NPChar) + "! Мое имя " + GetFullName(npchar) + ". Могу я узнать ваше имя?"); link.l1 = "Здравствуй, мое имя "+ GetFullName(Pchar)+". Я капитан судна " + PChar.Ship.Name + "."; link.l1.go = "dialog1"; break;
case "dialog1": dialog.text = "Я очень известная персона на всём архепелаге...Я генерал ангйлиской армии в новом свете. Я вижу вы тоже не промах, сэр. Буду рад вас увидеть снова у меня в резиденции."; link.l1 = "Сэр, а что вы делаете в этой колонии?, "+ GetFullName(NPchar)+"."; link.l1.go = "dialog2"; break;
case "dialog2": dialog.text = "Я прибыл сюда, по очень важному делу... Мы готовим нападение на испанский рудник, если всё обернётся для нас хорошо, казна этой колонии и Аегийских колоний поплнится очень хорошо. Мы не будем сильно нуждаться в деньгах."; link.l1 = "Хм... А могу я предложить свою помощь?; link.l2 = "Ну удачи вам в этом деле, я меня ждут дела"; link.l1.go = "dialog3"; link.l2.go = "exit"; break;
case "dialog3": dialog.text = "И вправду? Это очень хорошо! Нам нужны люди, которые могут нам помочь. Поговорите с Джоном, он отвечает за все эти сборы, он сидит вначале комнаты."; link.l1 = "Хорошо, сэр. Я поговорю с наим"; link.l1.go = "exit"; break; } }
Вот тут что я не так сделал скажите плиз? За ветер добычи, за ветер удачи, чтоб зажили мы, ВЕСЕЛЕЙ И БОГАЧЕ))
case "5_kolec": dialog.text = "Что вы хотите?"; link.l1 = "Бутылку рому."; link.l1.go = "5_kolec2"; break; case "5_kolec2": dialog.text = "Сей момент"; link.l1 = "Слушай, а что это за мужик там сидит подозрительный закрайним столиком?"; link.l1.go = "5_kolec3"; break; case "5_kolec3": dialog.text = "Я не знаю, я только видел что на руке у него очень странное кольцо, с ним сидел ещё один, с таким же кольцом но он ушёл."; link.l1 = "Пойду с ним поговорю."; link.l1.go = "Exit"; break;
case "5_kolec4": dialog.text = "Что тебе надо?"; link.l1 = "Эй, ты кто такой? Больше на пирата смахиваешь."; link.l1.go = "5_kolec5"; break; case "5_kolec5": dialog.text = "Что!?"; link.l1 = "Ты точно пират!"; link.l1.go = "5_kolec6"; break; case "5_kolec6": dialog.text = "Но если ты сейчас не замолчишь, то я…"; link.l1 = "Хм… Ты мне надоел, так умри же!"; link.l1.go = "Exit"; break;
Подскажите начинающей скриптерше есть ли функция на вывод полного имени персонажа в винительном падеже? И еще: ГГ у меня говорит с персонажем, который имеет индификатор "Solder"+i, имя персонажа и его номер (то есть i) каждый раз разные (мне так и надо). Как сделать, что бы во время диалога с другим персонажем вывелось имя "Solder"+i?
Сообщение отредактировал Loisomer - Четверг, 21.03.2013, 18:43