|
Addon Maker. Урок № 2. Добавить НПС-игрока
| |
korsary4 | Дата: Пятница, 03.06.2011, 19:26 | Сообщение # 81 |
Адмирал
Группа: Администратор
Сообщений: 5204
Награды: 496
Репутация: 1935
Статус: В бухте
| Quote (Ybrbnf19962009) новичок в этом деле помогите когда создаешь НПС куда нужно диалог прописывать? Читай подробнее этот урок, все рассказано.
Единственное, что можно сказать об удаче с уверенностью — она изменит. --------
|
|
| |
Ybrbnf19962009 | Дата: Пятница, 03.06.2011, 19:36 | Сообщение # 82 |
Пороховая обезьяна
Группа: Пират
Сообщений: 8
Награды: 0
Репутация: 0
Статус: В открытом море
| Quote (korsary4) Читай подробнее этот урок, все рассказано. может я что то не понял korsary4, но я не увидел в этом уроке как привязывать диалог к персонажу диалог то я создал, а что дальше не знаю!
|
|
| |
korsary4 | Дата: Пятница, 03.06.2011, 19:39 | Сообщение # 83 |
Адмирал
Группа: Администратор
Сообщений: 5204
Награды: 496
Репутация: 1935
Статус: В бухте
| Quote (Ybrbnf19962009) как привязывать диалог к персонажу диалог то я создал В коде нпс прописываешь путь к файлу диалога Code ch.Dialog.Filename = "Quest\MainLine\Fergus_Bolter.c"; где Quest\MainLine это папка в котором находится файл, а Fergus_Bolter.c название диалога. Соотвественно меняешь на своё.
Единственное, что можно сказать об удаче с уверенностью — она изменит. --------
|
|
| |
Ybrbnf19962009 | Дата: Пятница, 03.06.2011, 20:13 | Сообщение # 84 |
Пороховая обезьяна
Группа: Пират
Сообщений: 8
Награды: 0
Репутация: 0
Статус: В открытом море
| и последний вопрос, как сделать так что бы после диалога можно было переместить персонажей, например в таверну, и там продолжить разговор?
|
|
| |
korsary4 | Дата: Пятница, 03.06.2011, 20:21 | Сообщение # 85 |
Адмирал
Группа: Администратор
Сообщений: 5204
Награды: 496
Репутация: 1935
Статус: В бухте
| Quote (Ybrbnf19962009) переместить персонажей, например в таверну Code sld = CharacterFromID("Foreteller"); sld.dialog.currentnode = "Girl_Damyan_dialog_inPortoBello_1"; ChangeCharacterAddressGroup(sld, "PortoBello_tavern", "goto", "goto3");
CharacterFromID - указывает ID перса. sld.dialog.currentnode - устанавливаем новую ветку диалога ChangeCharacterAddressGroup - перемещаем в локацию в указанные локаторы.
если нужно посадить нпс, тогда не забудь сменить его тип Code sld = CharacterFromID("Foreteller"); LAi_SetSitType(sld);
Единственное, что можно сказать об удаче с уверенностью — она изменит. --------
|
|
| |
Ybrbnf19962009 | Дата: Пятница, 03.06.2011, 22:02 | Сообщение # 86 |
Пороховая обезьяна
Группа: Пират
Сообщений: 8
Награды: 0
Репутация: 0
Статус: В открытом море
| можешь написать пример диалога пожалуйста просто у меня ошибка вылетает потому что я не туда пихаю то что ты выложил заранее спасибо?
|
|
| |
korsary4 | Дата: Пятница, 03.06.2011, 22:05 | Сообщение # 87 |
Адмирал
Группа: Администратор
Сообщений: 5204
Награды: 496
Репутация: 1935
Статус: В бухте
| Quote (Ybrbnf19962009) пример диалога куча диалогов уже есть в папке программ)
Единственное, что можно сказать об удаче с уверенностью — она изменит. --------
|
|
| |
Ybrbnf19962009 | Дата: Суббота, 04.06.2011, 11:30 | Сообщение # 88 |
Пороховая обезьяна
Группа: Пират
Сообщений: 8
Награды: 0
Репутация: 0
Статус: В открытом море
| а можно сделать вот так:case "dialog3"; sld = CharacterFromID("John_Silver"); sld.dialog.currentnode = "Girl_Damyan_dialog_inVillemstad_1"; ChangeCharacterAddressGroup(sld, "Villemstad_tavern", "tables", LAi_FindNearestFreeLocator("tables", locx, locy, locz));
Сообщение отредактировал Ybrbnf19962009 - Суббота, 04.06.2011, 11:31 |
|
| |
Brayan_Rezak | Дата: Суббота, 04.06.2011, 20:55 | Сообщение # 89 |
Пороховая обезьяна
Группа: Пират
Сообщений: 9
Награды: 0
Репутация: 0
Статус: В открытом море
| Здравствуйте я здесь впервые скажите пожалуйста как сделать релоад вместе с НПС с которым ведешь диалог например вот: Code void ProcessDialogEvent() { ref NPChar; aref Link, NextDiag;
DeleteAttribute(&Dialog,"Links");
makeref(NPChar,CharacterRef); makearef(Link, Dialog.Links); makearef(NextDiag, NPChar.Dialog); switch(Dialog.CurrentNode) { // case "First time": dialog.text = RandPhraseSimple("Здравствуйте, капитан! Вижу, вы здесь недавно. У нас редко встретишь отважного капитана. Что привело вас в здешние края?",": Вам что-то нужно?"; link.l1 = "Не ваше дело! Идите куда шли, и не мешайтесь!"; link.l1.go = "dialog1"; link.l2 = "Тут я по делам." link.l2.go = "dialog2"; break;
case "Exit": NextDirentNode = NextDiag.TempNode; DialogExit(); break;
case "dialog1": dialog.text = " Прощайте." link.l1.go = "Exit" break;
case "dialog2"; dialog text = "Обсудим это в таверне за кружкой эля?"; link.l1 = " я согласен, пойдёмте."; link.l1.go = "exit"; LocatorReloadEnterDisable("Villemstad_town", "tavern", false); //ставим Браян Резак sld = GetCharacter(NPC_GenerateCharacter("Brayan", "BaynesDaughter", "man", "man2", 10, HOLLAND, -1, false)); sld.name = "Браян"; sld.lastname = "Резак"; sld.dialog.filename = "Quest\Brayan.c"; sld.dialog.currentnode = "Edvbigin"; LAi_SetCitizenType(sld); LAi_group_MoveCharacter(sld, "ENGLAND_CITIZENS"); ChangeCharacterAddressGroup(sld, "Charles_PirateHouse", "goto", "goto1"); break; Добавлено (04.06.2011, 20:55) --------------------------------------------- Заранее спасибо!
Сообщение отредактировал Brayan_Rezak - Суббота, 04.06.2011, 20:54 |
|
| |
korsary4 | Дата: Суббота, 04.06.2011, 21:31 | Сообщение # 90 |
Адмирал
Группа: Администратор
Сообщений: 5204
Награды: 496
Репутация: 1935
Статус: В бухте
| Brayan_Rezak, лучше в кейсе dialog2 сделай так:
Code case "dialog2"; dialog text = "Обсудим это в таверне за кружкой эля?"; link.l1 = " я согласен, пойдёмте."; link.l1.go = "dialog3"; break;
case "dialog3"; NextDirentNode = NextDiag.TempNode; DialogExit(); LocatorReloadEnterDisable("Villemstad_town", "tavern", false); //ставим Браян Резак sld = GetCharacter(NPC_GenerateCharacter("Brayan", "BaynesDaughter", "man", "man2", 10, HOLLAND, -1, false)); sld.name = "Браян"; sld.lastname = "Резак"; sld.dialog.filename = "Quest\Brayan.c"; sld.dialog.currentnode = "Edvbigin"; LAi_SetCitizenType(sld); LAi_group_MoveCharacter(sld, "ENGLAND_CITIZENS"); ChangeCharacterAddressGroup(sld, "Charles_PirateHouse", "goto", "goto1"); break;
Quote (Brayan_Rezak) релоад вместе с НПС с которым ведешь диалог Для перемещения ГГ используй вот это: Code DoReloadCharacterToLocation("SentJons_town","reload","reload1"); локацию и локаторы подправь на нужные тебе. Пропиши в dialog3 и все должно работать как ты хочешь- после разговора переместится НПС и ГГ)
Quote (Ybrbnf19962009) а можно сделать вот так: case "dialog3"; sld = CharacterFromID("John_Silver"); sld.dialog.currentnode = "Girl_Damyan_dialog_inVillemstad_1"; ChangeCharacterAddressGroup(sld, "Villemstad_tavern", "tables", LAi_FindNearestFreeLocator("tables", locx, locy, locz)); В какой-то мере можно, код правильный. Только куда ты его там прописываешь я не знаю.
Единственное, что можно сказать об удаче с уверенностью — она изменит. --------
|
|
| |
Brayan_Rezak | Дата: Воскресенье, 05.06.2011, 12:06 | Сообщение # 91 |
Пороховая обезьяна
Группа: Пират
Сообщений: 9
Награды: 0
Репутация: 0
Статус: В открытом море
| Получается что не нужно после РЕЛОАДА прописывать в диалоге3 прописывать это: ChangeCharacterAddressGroup(sld, "Charles_PirateHouse", "goto", "goto1");
|
|
| |
korsary4 | Дата: Понедельник, 06.06.2011, 08:00 | Сообщение # 92 |
Адмирал
Группа: Администратор
Сообщений: 5204
Награды: 496
Репутация: 1935
Статус: В бухте
| Quote (Brayan_Rezak) ChangeCharacterAddressGroup(sld, "Charles_PirateHouse", "goto", "goto1"); Так ты перемещаешь НПС, записанного в переменную sld. А вот это, перемещает ГГ. Code DoReloadCharacterToLocation("SentJons_town","reload","reload1");
Единственное, что можно сказать об удаче с уверенностью — она изменит. --------
|
|
| |
The_Joker | Дата: Понедельник, 06.06.2011, 10:37 | Сообщение # 93 |
Профессор-Икс
Группа: Корсар
Сообщений: 1532
Награды: 51
Репутация: 177
Статус: В открытом море
| Ybrbnf19962009, естественно что у тебя не запуститься диалог. - после кайса надо ставить двоеточие а не точка с запятой.
|
|
| |
korsary4 | Дата: Понедельник, 06.06.2011, 13:28 | Сообщение # 94 |
Адмирал
Группа: Администратор
Сообщений: 5204
Награды: 496
Репутация: 1935
Статус: В бухте
| Quote (Aragon) после кайса надо ставить двоеточие а не точка с запятой. а я и не заметил)) он же сначала спросил про релоад ГГ) а потом использовал его диалог))
Единственное, что можно сказать об удаче с уверенностью — она изменит. --------
|
|
| |
Brayan_Rezak | Дата: Вторник, 07.06.2011, 19:41 | Сообщение # 95 |
Пороховая обезьяна
Группа: Пират
Сообщений: 9
Награды: 0
Репутация: 0
Статус: В открытом море
| у меня опять что то не так добавил НПС написал к нему диалог а его нигде в городе нет
|
|
| |
The_Joker | Дата: Среда, 08.06.2011, 00:19 | Сообщение # 96 |
Профессор-Икс
Группа: Корсар
Сообщений: 1532
Награды: 51
Репутация: 177
Статус: В открытом море
| Brayan_Rezak, значит не правильно НПС прописал.
|
|
| |
Vitek5 | Дата: Среда, 08.06.2011, 12:44 | Сообщение # 97 |
Матрос
Группа: Корсар
Сообщений: 58
Награды: 3
Репутация: 4
Статус: В открытом море
| Brayan_Rezak, Напиши сдесь код своего нпк, помогу...
|
|
| |
Brayan_Rezak | Дата: Среда, 08.06.2011, 16:04 | Сообщение # 98 |
Пороховая обезьяна
Группа: Пират
Сообщений: 9
Награды: 0
Репутация: 0
Статус: В открытом море
| makeref(ch,Characters[n]); // Билли Бонс ch.name = "Билли"; ch.lastname = "Бонс"; ch.id = "Billy_Bons"; ch.model = "officer_11"; ch.model.animation = "man2"; ch.sex = "man"; ch.location = "Villemstad_town"; ch.location.group = "stay"; ch.location.locator = "goto"; ch.Dialog.Filename = "Quest\Billy.c"; GiveItem2Character(ch, "blade3"); ch.equip.blade = "blade3"; ch.nation = HOLLAND; ch.rank = 20; ch.reputation = "45"; SetSelfSkill(ch, 10, 10, 10, 20, 20); SetShipSkill(ch, 20, 90, 10, 10, 10, 20, 10, 10, 50); LAi_NoRebirthDisable(ch); // воскресть при убиении LAi_SetCitizenType(ch); //Ходит как горожанин LAi_SetLoginTime(ch, 0.0, 24.0); LAi_SetHP(ch, 200.0, 200.0); LAi_SetImmortal(ch, true); LAi_group_MoveCharacter(ch, "HOLLAND_CITIZENS"); n = n + 1; return n; }
|
|
| |
korsary4 | Дата: Среда, 08.06.2011, 16:14 | Сообщение # 99 |
Адмирал
Группа: Администратор
Сообщений: 5204
Награды: 496
Репутация: 1935
Статус: В бухте
| Quote (Brayan_Rezak) ch.location.group = "stay"; ch.location.locator = "goto"; Сомневаюсь, что такой локатор существует в городе....Пропиши нормальный, который там есть.
Quote (Brayan_Rezak) ch.model.animation = "man2"; У officer_11 обычная man-анимация. Эта строка не нужна.
Quote (Brayan_Rezak) return n; } Надеюсь, это просто конец файла, а не просто так ты после кода нпс вписал)))
Единственное, что можно сказать об удаче с уверенностью — она изменит. --------
|
|
| |
Brayan_Rezak | Дата: Среда, 08.06.2011, 16:47 | Сообщение # 100 |
Пороховая обезьяна
Группа: Пират
Сообщений: 9
Награды: 0
Репутация: 0
Статус: В открытом море
| Я просто не пойму где находится файл для включения бета-теста
|
|
| |
|