Урок № 3. Пишем диалоги персонажам
|
|
Nathaniel | Дата: Четверг, 21.03.2013, 23:22 | Сообщение # 81 |
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
| Цитата (Loisomer) есть ли функция на вывод полного имени персонажа в винительном падеже? Есть!.. GetMainCharacterNameGen()
Цитата (Loisomer) Как сделать, что бы во время диалога с другим персонажем вывелось имя "Solder"+i? Как вариант, забить это имя предварительно во временную переменную...
Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор. Но я не нашёл там никого, кто не был бы моим другом!
|
|
| |
PeterPan | Дата: Пятница, 16.08.2013, 14:46 | Сообщение # 82 |
Пороховая обезьяна
Группа: Пират
Сообщений: 2
Награды: 0
Репутация: 0
Статус: В открытом море
| Добрый день всем. В диалоге с мэром появляется фраза: "Это есть баг, известите Эдди о наличие оного" Можно ли как-то поправить скрипт, чтобы устранить причину появления оной ? Откат к ранним сэйвам помогает ненадолго.
|
|
| |
Nathaniel | Дата: Суббота, 17.08.2013, 14:03 | Сообщение # 83 |
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
| Цитата (PeterPan) Можно ли как-то поправить скрипт, чтобы устранить причину появления оной ? Попробуйте просто удалить (закомментировать) эту ветку из диалога!..
Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор. Но я не нашёл там никого, кто не был бы моим другом!
Сообщение отредактировал Nathaniel - Суббота, 17.08.2013, 14:03 |
|
| |
PeterPan | Дата: Суббота, 17.08.2013, 23:45 | Сообщение # 84 |
Пороховая обезьяна
Группа: Пират
Сообщений: 2
Награды: 0
Репутация: 0
Статус: В открытом море
| Цитата (Nathaniel) Попробуйте просто удалить (закомментировать) эту ветку из диалога!.. Пробовал, только комментированием ограничиться не проходит. Вообще вопрос снят. Нашел варианты. Благодаря этой ветке, поразбирался с диалогом. Есть непроверенные предположения: 1) Ветка с case "work" глючит. Удалить её нельзя, там собственно все основные миниквесты мера. Поэтому некто в начало ветки поместил диалог с фразой о баге. С одной стороны как бы предупреждение для разработчика Эдди (?!), а с другой принудительный exit из глючной ветки. 2) Вероятная причина глюка (глубоко не копал): Квесты мера по switch(i) c кейсами от 0 до 4 (числовые) Ни один не отрабатывает, т.е. в i либо вообще не число, либо число не из диапазона 0-4 Как проверить, что возвращает функция i = CheckAvailableTaskForNPC(NPChar, PGG_TASK_WORKONMAYOR), не соображу. Как вариант, можно рандомно устанавливать i, либо вообще добавить диалог, в котором сам будешь выбирать задание мера. Пока тупо поставил i=4 (нравится мне задание про пиратский корабль) Насколько правильный такой обход ситуации, время покажет. Пока устраивает. Во всяком случае разбираться с функцией CheckAvailableTaskForNPC знаний не хватает.
Сообщение отредактировал PeterPan - Воскресенье, 18.08.2013, 21:26 |
|
| |
JQeen | Дата: Вторник, 17.09.2013, 16:00 | Сообщение # 85 |
Матрос
Группа: Корсар
Сообщений: 26
Награды: 5
Репутация: 46
Статус: В открытом море
| Доброго времени суток. Подскажите пожалуйста что нужно прописать в кейсе, что бы НПС присоединился к ГГ вместе с кораблем.
P.S. - Пытался сделать по аналогии с диалогом ПГГ, ничего дельного не получилось.
|
|
| |
Phenixx | Дата: Вторник, 17.09.2013, 16:37 | Сообщение # 86 |
Пороховая обезьяна
Группа: Пират
Сообщений: 7
Награды: 0
Репутация: 1
Статус: В открытом море
| Цитата (JQeen) НПС присоединился к ГГ вместе с кораблем. корабль в порт: SetCharacterShipLocation("перс", "локация"); в компаньоны: SetCompanionIndex(к кому добавили, -1, GetCharacterIndex("компаньон"));
|
|
| |
JQeen | Дата: Вторник, 17.09.2013, 16:43 | Сообщение # 87 |
Матрос
Группа: Корсар
Сообщений: 26
Награды: 5
Репутация: 46
Статус: В открытом море
| Цитата (Phenixx) корабль в порт: SetCharacterShipLocation("перс", "локация"); в компаньоны: SetCompanionIndex(к кому добавили, -1, GetCharacterIndex("компаньон"));
Я как понимаю "перс" - это ID НПС "к кому добавили" - это писать ch или blaze? "компаньон" - это ID НПС "локация" - это ID локации где находиться НПС
Сообщение отредактировал JQeen - Вторник, 17.09.2013, 16:58 |
|
| |
Mett | Дата: Вторник, 17.09.2013, 17:07 | Сообщение # 88 |
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 91
Репутация: 565
Статус: В открытом море
| Цитата "к кому добавили" - это писать ch или blaze? в данном случае лучше написать pchar
Цитата "локация" - это ID локации где находиться НПС это локация из которой будет виден корабль НПС, пиши ту, в которой стоит судно ГГ
Что толку, если не можешь сделать мир лучше.
|
|
| |
JQeen | Дата: Вторник, 17.09.2013, 18:01 | Сообщение # 89 |
Матрос
Группа: Корсар
Сообщений: 26
Награды: 5
Репутация: 46
Статус: В открытом море
| Mett Огромное спасибо!!
Добавлено (17.09.2013, 17:37) --------------------------------------------- case "011": AddMoneyToCharacter(pchar, -300000); dialog.text = "Я буду служить вам верой и честью!"; link.l1 = "Я верю вам Джеймс Баллантре."; link.l1.go = "exit_hire"; NPChar.Dialog.FileName = "Enc_Officer_dialog.c"; NPChar.Money = 0; SetCharacterShipLocation("heroJQ_02", "santacatalina_town"); SetCompanionIndex(pchar, -1, GetCharacterIndex("heroJQ_02")); break;
case "exit_hire": Pchar.questTemp.HiringOfficerIDX = GetCharacterIndex(Npchar.id); AddDialogExitQuestFunction("LandEnc_OfficerHired"); NextDiag.CurrentNode = NextDiag.TempNode; NPChar.quest.meeting = true; DialogExit(); break;
Подскажите что здесь изменить, что бы не было одновременно компаньена и его копии офицера??
Сообщение отредактировал JQeen - Вторник, 17.09.2013, 19:59 |
|
| |
Mett | Дата: Вторник, 17.09.2013, 21:38 | Сообщение # 90 |
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 91
Репутация: 565
Статус: В открытом море
| 2 JQeen, Код case "011": AddMoneyToCharacter(pchar, -300000); dialog.text = "Я буду служить вам верой и честью!"; link.l1 = "Я верю вам Джеймс Баллантре."; link.l1.go = "exit_hire"; NPChar.Dialog.FileName = "Enc_Officer_dialog.c"; NPChar.Money = 0; break;
case "exit_hire": SetCharacterShipLocation(CharacterFromID("heroJQ_02"), "santacatalina_town"); SetCompanionIndex(pchar, -1, GetCharacterIndex("heroJQ_02")); NextDiag.CurrentNode = NextDiag.TempNode; NPChar.quest.meeting = true; DialogExit(); break;
Что толку, если не можешь сделать мир лучше.
|
|
| |
JQeen | Дата: Четверг, 19.09.2013, 17:20 | Сообщение # 91 |
Матрос
Группа: Корсар
Сообщений: 26
Награды: 5
Репутация: 46
Статус: В открытом море
| Mett
Тогда получается что следующий диалог начинается со слов "Офицер не нужен капитан?"
|
|
| |
Mett | Дата: Четверг, 19.09.2013, 18:44 | Сообщение # 92 |
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 91
Репутация: 565
Статус: В открытом море
| Цитата Подскажите что здесь изменить, что бы не было одновременно компаньена и его копии офицера?? ну так копии офицера теперь же нет, а вопрос стоял именно так ;)
Цитата Тогда получается что следующий диалог начинается со слов "Офицер не нужен капитан?" а чтоб диалог был не "офицеркий" убери это: NPChar.Dialog.FileName = "Enc_Officer_dialog.c"; и если не секрет, зачем тебе нуление денег (NPChar.Money = 0;)? это ж тоже отрывок из "офицерского" кода
Что толку, если не можешь сделать мир лучше.
|
|
| |
Phenixx | Дата: Четверг, 19.09.2013, 20:43 | Сообщение # 93 |
Пороховая обезьяна
Группа: Пират
Сообщений: 7
Награды: 0
Репутация: 1
Статус: В открытом море
| создал ветку для своего ответа: link.l1.edit = 1; link.l1 = ""; link.l1.go = "222"; Как потом сохранить в переменную то, что написал?
|
|
| |
JQeen | Дата: Среда, 08.01.2014, 18:04 | Сообщение # 94 |
Матрос
Группа: Корсар
Сообщений: 26
Награды: 5
Репутация: 46
Статус: В открытом море
| Спасибо Добавлено (08.01.2014, 18:04) --------------------------------------------- Доброго времени суток. Немогли бы вы мне подсказать нужна функция диалога на проверку в кармане ГГ определенного кол-ва предметов (например алмазов)
и функция собственно убирающая определенное кол-во предметов из кармана ГГ
|
|
| |
korsar01 | Дата: Среда, 08.01.2014, 19:14 | Сообщение # 95 |
Мичман
Группа: Корсар
Сообщений: 186
Награды: 6
Репутация: 46
Статус: В открытом море
| Цитата JQeen ( ) нужна функция диалога на проверку в кармане ГГ определенного кол-ва предметов (например алмазов)
и функция собственно убирающая определенное кол-во предметов из кармана ГГ
Вот проверка Код if (GetCharacterItem(Pchar, "ID предмета")=количество)
А эта функция убирает предмет Код TakeItemFromCharacter(pchar, "id item")
если нужно убрать несколько предметов, то Код TakeNItems(pchar, "ID", -количество);
Сообщение отредактировал korsar01 - Среда, 08.01.2014, 19:18 |
|
| |
Mett | Дата: Среда, 08.01.2014, 21:48 | Сообщение # 96 |
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 91
Репутация: 565
Статус: В открытом море
| только лучше будет использовать такую проверку Код if(GetCharacterItem(Pchar, "ID предмета") >= количество) а потом просто удалить нужное кол-во этих самых итемов
Что толку, если не можешь сделать мир лучше.
|
|
| |
JQeen | Дата: Четверг, 09.01.2014, 19:38 | Сообщение # 97 |
Матрос
Группа: Корсар
Сообщений: 26
Награды: 5
Репутация: 46
Статус: В открытом море
| Большое человеческое тебе спасибо за такой довольно быстрый ответ!
И тебе большое спасибо, эта проверка у меня работает!Добавлено (09.01.2014, 19:01) ---------------------------------------------
Цитата Есть еще один вопрос!
Есть ли такая функция (если да то пожалуйста напишите ее) что бы ветка диалога появилась после достижения определенного ранга ГГ?Добавлено (09.01.2014, 19:38) ---------------------------------------------
Цитата case "Имя кейса": dialog.text = "Тест1"; if(PChar.rank <= 35) { link.l1 = "Текст до 35 ранга"; link.l1.go = "exit1"; } else { link.l1 = "тест после 35 ранга"; link.l1.go = "exit2"; } break;
Вопрос отменяю, тк нашел ответ
|
|
| |
IvanCorsair29GL | Дата: Вторник, 14.01.2014, 20:03 | Сообщение # 98 |
Матрос
Группа: Корсар
Сообщений: 58
Награды: 5
Репутация: 35
Статус: В открытом море
| Всем привет корсары! :-) Подскажите, что не так… Написал диалог (ПКМ). По другому образцу, но перс при диалоге выдаёт, что не возможно открыть (Название диалога.с) Перепроверял все раз 100. Не меньше... Сравнивал с другими, тоже ничего отрицательного не заметил…
Из-за чего это может быть? Если не трудно,можете скинуть пример диалога (ПКМ) хотя врятли у кого есть:) ….
05
|
|
| |
Mett | Дата: Среда, 15.01.2014, 00:15 | Сообщение # 99 |
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 91
Репутация: 565
Статус: В открытом море
| что пишет лог error?
Что толку, если не можешь сделать мир лучше.
|
|
| |
IvanCorsair29GL | Дата: Среда, 15.01.2014, 00:52 | Сообщение # 100 |
Матрос
Группа: Корсар
Сообщений: 58
Награды: 5
Репутация: 35
Статус: В открытом море
| "что пишет лог error"
Mett, уж не помню, вобщем по русски, что невозможно открыть файл с диалогом. А по английски не помню…
05
|
|
| |