|
Урок № 3. Пишем диалоги персонажам
| |
Myth | Дата: Среда, 29.02.2012, 14:25 | Сообщение # 41 |
Мичман
Группа: Пират
Сообщений: 146
Награды: 8
Репутация: -13
Статус: В открытом море
| korsar01, если я правильно тебя понял, то:
И игра будет выбирать из двух фраз любую. Поясню: кейсы "0" и "1" это части кейса "Skelet2", а не отдельные кейсы.
Myth: Make Your Thought Heard
Сообщение отредактировал Myth - Среда, 29.02.2012, 14:30 |
|
| |
korsar01 | Дата: Среда, 29.02.2012, 15:29 | Сообщение # 42 |
Мичман
Группа: Корсар
Сообщений: 186
Награды: 6
Репутация: 46
Статус: В открытом море
| Myth, спасибо!
|
|
| |
vaga | Дата: Понедельник, 05.03.2012, 19:32 | Сообщение # 43 |
Капитан I ранга
Группа: Команда Аддона
Сообщений: 715
Награды: 32
Репутация: 190
Статус: В открытом море
| а как делать что бы после диалога появлялась запись в СЖ и какой небудь предмет. Ещё что бы перед диалогом подошёл к тебе какой небуддь НПС например при входе в дом?
За ветер добычи, за ветер удачи, чтоб зажили мы, ВЕСЕЛЕЙ И БОГАЧЕ))
|
|
| |
mihas | Дата: Вторник, 06.03.2012, 14:44 | Сообщение # 44 |
Пороховая обезьяна
Группа: Корсар
Сообщений: 19
Награды: 2
Репутация: 4
Статус: В открытом море
| vaga, Quote (vaga) появлялась запись в СЖ Это было сказано в уроке по кодингу квестов
Quote (vaga) какой небудь предмет. GiveItem2Character(pchar, "id предмета"); тоже в уроке №10
Quote (vaga) Ещё что бы перед диалогом подошёл к тебе какой небуддь НПС например при входе в дом? при входе в дом, сначала узнай этот локатор.
здесь на примере, в городе Виллемстад, локатор quest1. когда зайдем на него выполнится myquest. Code pchar.quest.quest1.win_condition.l1 = "locator"; pchar.quest.quest1.win_condition.l1.location = "Villemstad_town"; pchar.quest.quest1.win_condition.l1.locator_group = "quest"; //группа локатора pchar.quest.quest1.win_condition.l1.locator = "quest1"; //название локатора pchar.quest.quest1.function = "myquest"; //что выполнять и в файле reaction_functions.c напишем : Code void myquest(string qName) { LAi_SetActorType(CharacterFromID("ID нпц с кем будем говорить")); //Это если у нпц какойлибо другой тип. LAi_ActorDialog(CharacterFromID("ID нпц с кем будем говорить"), pchar, "", 5.0, 1.0); }
надеюсь не ошибся. у себя не проверял)
Сообщение отредактировал mihas - Вторник, 06.03.2012, 15:17 |
|
| |
vaga | Дата: Четверг, 15.03.2012, 16:12 | Сообщение # 45 |
Капитан I ранга
Группа: Команда Аддона
Сообщений: 715
Награды: 32
Репутация: 190
Статус: В открытом море
| Спс) Добавлено (15.03.2012, 16:12) ---------------------------------------------
Вот смотрите указал файл диалога а при разговоре это.
makeref(ch,Characters[n]); // Джон Кок ch.name = "Джон"; ch.lastname = "Кок"; ch.id = "SentJons_Kok"; ch.model = "Albermal"; ch.model.animation = "man"; ch.sex = "man"; ch.location = "CommonResidence_2"; ch.location.group = "sit"; ch.location.locator = "sit2"; ch.Dialog.Filename = "Dreik.c"; GiveItem2Character(ch, GUN_COMMON); ch.equip.gun = GUN_COMMON; GiveItem2Character(ch, "blade7"); ch.equip.blade = "blade7"; ch.nation = FRANCE; ch.rank = 46; ch.reputation = "97"; SetSelfSkill(ch, 95, 95, 95, 95, 95); SetShipSkill(ch, 90, 90, 90, 90, 90, 90, 90, 90, 90); LAi_NoRebirthDisable(ch); // воскресть при убиении LAi_SetSitType(ch); // LAi_SetLoginTime(ch, 0.0, 24.0); LAi_SetHP(ch, 500.0, 500.0); LAi_SetImmortal(ch, true); ch.greeting = "GrFisherman"; LAi_group_MoveCharacter(ch, "ENGLAND_CITIZENS"); n = n + 1;
Вот указанно, в чём проблемма?
За ветер добычи, за ветер удачи, чтоб зажили мы, ВЕСЕЛЕЙ И БОГАЧЕ))
|
|
| |
Tormo | Дата: Четверг, 15.03.2012, 22:26 | Сообщение # 46 |
Мичман
Группа: Корсар
Сообщений: 65
Награды: 7
Репутация: 17
Статус: В открытом море
| Я не разбираюсь. Но возможно: 1. Проверь наличие файла, и правильность названия. 2. Возможно надо указать полный путь к файлу.
start the war cause we are on the floor
|
|
| |
The_Joker | Дата: Четверг, 15.03.2012, 23:03 | Сообщение # 47 |
Профессор-Икс
Группа: Корсар
Сообщений: 1532
Награды: 51
Репутация: 177
Статус: В открытом море
| Quote (vaga) Вот указанно, в чём проблемма? смотри error и compile, в них указан файл и строка ошибки. Ошибка гдето в диалоге, это я гарантирую, а вот где именно, ищи сам.
|
|
| |
vaga | Дата: Пятница, 16.03.2012, 16:32 | Сообщение # 48 |
Капитан I ранга
Группа: Команда Аддона
Сообщений: 715
Награды: 32
Репутация: 190
Статус: В открытом море
| а вот смотрите case "First time": dialog.text = "Чем обязан вашему визиту? Капитан?"; link.l1 = "Хм... Довольно странно, в резиденции Антигуа находитесь вы Адмирал, но как же дела в европе?"; link.l1.go = "dialog1"; link.l2 = "Нет ничем, я уже ухожу."; link.l2.go = "exit"; break;
вот как сделать что бы при link.l2 go диалог кончался? Добавлено (16.03.2012, 16:32) --------------------------------------------- makeref(ch,Characters[n]); // Джон Кок ch.name = "Джон"; ch.lastname = "Кок"; ch.id = "SentJons_Kok"; ch.model = "Albermal"; ch.model.animation = "man"; ch.sex = "man"; ch.location = "CommonResidence_2"; ch.location.group = "sit"; ch.location.locator = "sit2"; ch.Dialog.Filename = "Quest\Razorenie\Dreik.c"; GiveItem2Character(ch, GUN_COMMON); ch.equip.gun = GUN_COMMON; GiveItem2Character(ch, "blade7"); ch.equip.blade = "blade7"; ch.nation = FRANCE; ch.rank = 46; ch.reputation = "97"; SetSelfSkill(ch, 95, 95, 95, 95, 95); SetShipSkill(ch, 90, 90, 90, 90, 90, 90, 90, 90, 90); LAi_NoRebirthDisable(ch); // воскресть при убиении LAi_SetSitType(ch); // LAi_SetLoginTime(ch, 0.0, 24.0); LAi_SetHP(ch, 500.0, 500.0); LAi_SetImmortal(ch, true); ch.greeting = "GrFisherman"; LAi_group_MoveCharacter(ch, "ENGLAND_CITIZENS"); n = n + 1;
Вот ещё указал точный путь к файлу диалога. И всё равно как на скриншоте?
За ветер добычи, за ветер удачи, чтоб зажили мы, ВЕСЕЛЕЙ И БОГАЧЕ))
|
|
| |
mihas | Дата: Суббота, 17.03.2012, 12:54 | Сообщение # 49 |
Пороховая обезьяна
Группа: Корсар
Сообщений: 19
Награды: 2
Репутация: 4
Статус: В открытом море
| Quote (vaga) вот как сделать что бы при link.l2 go диалог кончался? создай case exit : Code case "exit": DialogExit(); break;
Сообщение отредактировал mihas - Суббота, 17.03.2012, 12:55 |
|
| |
CaptainBleikk | Дата: Суббота, 17.03.2012, 23:51 | Сообщение # 50 |
Капитан I ранга
Группа: Корсар
Сообщений: 1190
Награды: 81
Репутация: 511
Статус: В открытом море
| korsary4, я пробовал твой диалог вставить про Порт-Ройал сыщика... Этот: Code 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 = "exit"; break; } } И когда к концу подходит из него выйти нельзя, почему так? Если я правильно понял, то надо создать case "exit" да?Добавлено (17.03.2012, 23:50) --------------------------------------------- Что неправильно? Code case "First time": dialog.text = LinkRandPhrase("Здраствуйте, капитан.Что Вас привело сюда?"; link.l1 = "Здравствуйте, мое имя "+ GetFullName(Pchar)+". Я капитан судна " + PChar.Ship.Name + "Извините, не хотел Вас беспокоить. Разрешите идти."; link.l1.go = "dialog1"; break; case "dialog1": dialog.text = "Не торопитесь капитан! Мое имя "+ GetFullName(NPchar)+". У меня есть для Вас работа. Решать Вам."; link.l1 = "Так...Что за работа?"; link.l1.go = "dialog2"; break;
case "dialog2": dialog.text = "Вы слышали что-нибудь о Сергио Флоренсе?"; link.l1 = "Нет, что это за человек"; link.l1.go = "dialog3"; break; case "dialog3" dialog.text = "Так вот. Он прибыл из Испании. Ужасный человек. Он обманул многих и ему всегда удается ускользнуть. Вы должны убить его"; link.l1 = "Окей"; link.l1.go = "exit"; break; case "exit": DialogExit(); break; } } Добавлено (17.03.2012, 23:51) --------------------------------------------- P.S - это диалог, обычная проба Решил попробовать написать диалог, но что-то никак
Сообщение отредактировал CaptainBleikk - Суббота, 17.03.2012, 23:09 |
|
| |
Джон_Толсир | Дата: Воскресенье, 25.03.2012, 09:56 | Сообщение # 51 |
Мичман
Группа: Корсар
Сообщений: 118
Награды: 4
Репутация: 1
Статус: В открытом море
| А как называется диалог с дипломатом?
|
|
| |
korsar01 | Дата: Понедельник, 26.03.2012, 13:21 | Сообщение # 52 |
Мичман
Группа: Корсар
Сообщений: 186
Награды: 6
Репутация: 46
Статус: В открытом море
| Джон_Толсир,
|
|
| |
CaptainBleikk | Дата: Суббота, 31.03.2012, 21:04 | Сообщение # 53 |
Капитан I ранга
Группа: Корсар
Сообщений: 1190
Награды: 81
Репутация: 511
Статус: В открытом море
| А как сделать чтобы в определенный момент в диалоге, например: -Вот возми эту чашку. Чашка появлялась в предметах ГГ?
|
|
| |
Johnny-Depp | Дата: Суббота, 31.03.2012, 21:23 | Сообщение # 54 |
Пороховая обезьяна
Группа: Заблокированные
Награды: 0
Репутация: 0
Статус: В открытом море
| CaptainBleikk, Пишешь команду GiveItem2Character(pchar, "Blade23"); вместо Blade23, пишешь ID предмета
|
|
| |
CaptainBleikk | Дата: Суббота, 31.03.2012, 21:44 | Сообщение # 55 |
Капитан I ранга
Группа: Корсар
Сообщений: 1190
Награды: 81
Репутация: 511
Статус: В открытом море
| Johnny-Depp, спасибо
Добавлено (31.03.2012, 21:44) --------------------------------------------- т.е. так: Code case "First time": dialog.text = "Здраствуйте, капитан. Возьми чашку? GiveItem2Character(pchar, "Blade23")";
Сообщение отредактировал CaptainBleikk - Суббота, 31.03.2012, 21:44 |
|
| |
Johnny-Depp | Дата: Суббота, 31.03.2012, 21:47 | Сообщение # 56 |
Пороховая обезьяна
Группа: Заблокированные
Награды: 0
Репутация: 0
Статус: В открытом море
| CaptainBleikk, Да, только я всегда пишу команды в отдельных строчкахДобавлено (31.03.2012, 21:47) --------------------------------------------- Точнее это обязательно
|
|
| |
Джон_Толсир | Дата: Суббота, 31.03.2012, 22:09 | Сообщение # 57 |
Мичман
Группа: Корсар
Сообщений: 118
Награды: 4
Репутация: 1
Статус: В открытом море
| а что за команда: отдать предмет персонажу(ГГ отдаёт NPc)? Что за команда: поступить в оффицеры...?(NPc идёт к ГГ в офицеры)
|
|
| |
CaptainBleikk | Дата: Суббота, 31.03.2012, 22:15 | Сообщение # 58 |
Капитан I ранга
Группа: Корсар
Сообщений: 1190
Награды: 81
Репутация: 511
Статус: В открытом море
| Спасибо
Сообщение отредактировал CaptainBleikk - Воскресенье, 03.06.2012, 14:18 |
|
| |
Джон_Толсир | Дата: Пятница, 10.08.2012, 14:13 | Сообщение # 59 |
Мичман
Группа: Корсар
Сообщений: 118
Награды: 4
Репутация: 1
Статус: В открытом море
| А какая команда присудить титул? типа как во французкой и английской линейке?? и можно ли его потом убрать?
|
|
| |
WMC | Дата: Среда, 22.08.2012, 08:17 | Сообщение # 60 |
Матрос
Группа: Корсар
Сообщений: 53
Награды: 5
Репутация: 22
Статус: В открытом море
| А вот надо мне "заткнуть" нпс после диалога, типо он мне говорит: вы что-то выяснили? а я отвечаю: нет еще:
case "dialog12": dialog.text = "Ну что ж, в таком случае удачи и спасибо вам. Если разберетесь во всём то обещаю хорошо заплатить."; link.l1 = "Ну вот и отлично! Немедленно отправляюсь в Мариго."; link.l1.go = "exit"; NextDiag.CurrentNode = "Stop"; Dialog.Exit(); break;
case "Stop": dialog.text = "Вы что-то выяснили?"; link.l1 = "Ещё нет..."; link.l1.go = "exit_now"; break;
case "exit_now": NextDiag.CurrentNode = "Stop"; Dialog.Exit(); break; } } Что здесь неправильно? Игра пишет, что не может открыть файл диалога. До того как дописал эти команды всё работало.
|
|
| |
|