Форма входа
 
Приветствуем тебя, корсар Юнга!

Гость, мы рады вас видеть. Пожалуйста зарегистрируйтесь или авторизуйтесь!


Купить игры
 



Чат
 
500


Статистика
 
Пользователи, посетившие сайт за текущий день:
korsary4, Maydg, Danila130, Andrey__3010, Ramaloce, Kriogener, Bruno898
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Модератор форума: NikK  
Урок № 3. Пишем диалоги персонажам
korsar01Дата: Четверг, 03.04.2014, 17:01 | Сообщение # 141
Мичман
Группа: Корсар
Сообщений: 186
Награды: 6
Репутация: 46
Статус: В открытом море
ecio_audit, Я не понял вопроса.
NathanielДата: Четверг, 03.04.2014, 17:08 | Сообщение # 142
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата ecio_audit ()
Если бы понять в чём ошибка...


Так включите отладчик, он вам конкретно укажет, где у вас ошибка!


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!


Сообщение отредактировал Nathaniel - Четверг, 03.04.2014, 17:20
korsar328Дата: Четверг, 03.04.2014, 17:20 | Сообщение # 143
Мичман
Группа: Корсар
Сообщений: 102
Награды: 5
Репутация: 30
Статус: В открытом море
Цитата korsar01 ()
Я не понял вопроса.

Ну я скачал игру и в корренной папке лежат два файла в которых прописан весь судовой журнал. вот я и хотел узнать может они где то прописаны (в PROGRAM).

Добавлено (03.04.2014, 17:20)
---------------------------------------------

Цитата Nathaniel ()
Так включите отладчик

Пробовал, не отображается мой файлик.


Жизнь - как божественная комедия...
NathanielДата: Четверг, 03.04.2014, 17:22 | Сообщение # 144
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата ecio_audit ()
вот я и хотел узнать может они где то прописаны

\program\interface\questbook.c
\resource\ini\interface\QuestBook.ini


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
korsar328Дата: Пятница, 04.04.2014, 16:05 | Сообщение # 145
Мичман
Группа: Корсар
Сообщений: 102
Награды: 5
Репутация: 30
Статус: В открытом море
Цитата Nathaniel ()
\program\interface\questbook.c
\resource\ini\interface\QuestBook.ini

Спасибо me

Добавлено (03.04.2014, 17:27)
---------------------------------------------
А почему [img] теги запрещены?

Добавлено (03.04.2014, 19:28)
---------------------------------------------

Цитата korsar01 ()
if (npchar.quest.meeting == "0")

надо будет попробовать с предметами

Добавлено (04.04.2014, 16:05)
---------------------------------------------
korsar01, я нашёл ошибку в коде. Вся ошибка скорее всего вот здесь

Цитата korsar01 ()
if (npchar.quest.meeting == "0")

Я попробовал написать условие с предметом
Код

case "sabel":
dialog.text = "ты принёс мне саблю?";
if (GetCharacterItem(pchar,"blade32") >= 0)
{
link.l1 = "Да. Вот возьми.";
link.l1.go = "Exit";
TakeItemFromCharacter(Pchar, "blade32");
Log_Info("Вы отдали предмет");
NextDiag.TempNode = "OJStep_1";
}
else
{
link.l1 = "нет";
link.l1.go = "Exit";
NextDiag.TempNode = "sabel";
}
break;

и всё работает


Жизнь - как божественная комедия...
MettДата: Пятница, 04.04.2014, 21:45 | Сообщение # 146
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 91
Репутация: 565
Статус: В открытом море
вообще то файлы квестбука прописаны тут
program/ interfaces/ baseinterface.c


Что толку, если не можешь сделать мир лучше.
korsar328Дата: Суббота, 05.04.2014, 12:50 | Сообщение # 147
Мичман
Группа: Корсар
Сообщений: 102
Награды: 5
Репутация: 30
Статус: В открытом море
Mett, я имел в виду те текстовые документы где текст который пишется в СЖ.

Жизнь - как божественная комедия...
korsar01Дата: Суббота, 05.04.2014, 13:23 | Сообщение # 148
Мичман
Группа: Корсар
Сообщений: 186
Награды: 6
Репутация: 46
Статус: В открытом море
Цитата ecio_audit ()
текстовые документы где текст который пишется в СЖ.

quest_book_an1.txt
quest_book_an2.txt
в папке с игрой
korsar328Дата: Суббота, 05.04.2014, 14:07 | Сообщение # 149
Мичман
Группа: Корсар
Сообщений: 102
Награды: 5
Репутация: 30
Статус: В открытом море
Цитата korsar01 ()
в папке с игрой

я знаю. а если их переместить?


Жизнь - как божественная комедия...
korsar01Дата: Суббота, 05.04.2014, 14:17 | Сообщение # 150
Мичман
Группа: Корсар
Сообщений: 186
Награды: 6
Репутация: 46
Статус: В открытом море
Цитата ecio_audit ()
а если их переместить?

Тогда надо будет указать к ним путь в файле PROGRAM\interface\BaseInterface.c
строки:
Код

questTextFileName[0] = "quest_book_an1.txt";
questTextFileName[1] = "quest_book_an2.txt";

Только вот зачем это нужно?
korsar328Дата: Суббота, 05.04.2014, 14:42 | Сообщение # 151
Мичман
Группа: Корсар
Сообщений: 102
Награды: 5
Репутация: 30
Статус: В открытом море
Цитата korsar01 ()
вот зачем это нужно?

чтобы перенетсти, а что?


Жизнь - как божественная комедия...

Сообщение отредактировал ecio_audit - Суббота, 05.04.2014, 14:58
korsar01Дата: Суббота, 05.04.2014, 15:02 | Сообщение # 152
Мичман
Группа: Корсар
Сообщений: 186
Награды: 6
Репутация: 46
Статус: В открытом море
Цитата ecio_audit ()
чтобы перенетсти

это я понял. А для чего перемещать-то?
MettДата: Воскресенье, 06.04.2014, 00:31 | Сообщение # 153
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 91
Репутация: 565
Статус: В открытом море
так-с, тема из вопросов по диалогам переросла в вопросы по интерфейсу, поэтому предлагаю продолжить это обсуждение в теме "Вопросы по созданию модификаций"

Что толку, если не можешь сделать мир лучше.
korsar328Дата: Пятница, 11.04.2014, 15:53 | Сообщение # 154
Мичман
Группа: Корсар
Сообщений: 102
Награды: 5
Репутация: 30
Статус: В открытом море
такой вопрос: например я через диалог сгенерировал НПЦ в определённом доме.
Код

sld = GetCharacter(NPC_GenerateCharacter("Mary", "Mary", "woman", "Mary", 7, ENGLAND, 3, false));
             sld.dialog.filename = "MainLine/dev.c";
             sld.name = "Mary";
             sld.lastname = "";
             sld.greeting = "Mary";
    sld.nation = "ENGLAND";
             sTemp = GetNationNameByType(ENGLAND) + "_citizens";
             LAi_group_MoveCharacter(sld, sTemp);
    FantomMakeCoolFighter(sld, 7, 100, 50, "blade7", "", 10);
    ChangeCharacterAddressGroup(sld, "CommonFlamHouse", "barmen","stay");
             LAi_SetActorTypeNoGroup(sld);
             LAi_ActorDialog(sld, pchar, "", 2.0, 0);
             sld.dialog.currentnode = "Mary";
             Pchar.questTemp.CapBloodLine.stat = "Dev";

Как сделать чтобы после диалога с ГГ он побежал в определённый дом и когда ГГ бы в этот дом зашел то тот человек который попросил ГГ позвать этого человека подошёл бы и сказал спасибо или попросил бы кого - нибудь ещё найти?


Жизнь - как божественная комедия...
NathanielДата: Пятница, 11.04.2014, 16:02 | Сообщение # 155
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата ecio_audit ()
Как сделать чтобы после диалога с ГГ он побежал в определённый дом и когда ГГ бы в этот дом зашел

Слишком много задач в одном предложении... Предлагаю по порядку, ведь алгоритмизация строится исключительно всегда пошагово. Тогда и выполнять поставленную задачу значительно проще...
1) разговор с NPC;
2) создание видимости того, что NPC убегает в заданный дом;
3) помещение NPC в локацию заданного дома;
4) создание второго персонажа;
5) подход к ГГ и начало диалога;
6) новые инструкции для второго персонажа;

Пример пунктов 1 и 2 - это разговор со многими квестовыми персонажами (тот же Эдвард Гудли в пиратской линейке после разговора убегает в таверну, а затем там разговаривает с ГГ); если конкретнее, там есть одна процедура: в первом случае персонаж бежит, во втором - идёт в заданный локатор. Различия в названии и скорости перемещения NPC... С третьим вы разобрались сами. Дальше - уже дело техники...


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!


Сообщение отредактировал Nathaniel - Пятница, 11.04.2014, 16:05
korsar328Дата: Пятница, 11.04.2014, 16:45 | Сообщение # 156
Мичман
Группа: Корсар
Сообщений: 102
Награды: 5
Репутация: 30
Статус: В открытом море
Цитата Nathaniel ()
2) создание видимости того, что NPC убегает в заданный дом;

Можно по подробнее?
Например, в каком файле эту функцию искать, я просто писал что то вроде
Код

ActorGoToLokation(или как то так)

Не помогло.

Добавлено (11.04.2014, 16:45)
---------------------------------------------
korsar01, Может хоть ты мне поможешь в этом?


Жизнь - как божественная комедия...

Сообщение отредактировал ecio_audit - Пятница, 11.04.2014, 16:43
NathanielДата: Пятница, 11.04.2014, 16:55 | Сообщение # 157
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата ecio_audit ()
Например, в каком файле эту функцию искать

Ну раз я написал про пиратскую линейку, значит и искать нужно в файлах пиратской линейки! В диалогах, quest_reactions.c и reaction_functions.c.

Ну вот я, например, почему-то сразу нашёл требуемое:



------
Если уж вы решились взяться за написание квестов, то для начала не мешало бы познакомиться тщательнее со скриптами, общими принципами построения квестов, функциями и процедурами... В противном случае интерес от этого занятия быстро улетучится...


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!


Сообщение отредактировал Nathaniel - Пятница, 11.04.2014, 16:58
korsar328Дата: Суббота, 12.04.2014, 13:42 | Сообщение # 158
Мичман
Группа: Корсар
Сообщений: 102
Награды: 5
Репутация: 30
Статус: В открытом море
Цитата Nathaniel ()
  LAi_ActorRunToLocation(npchar, "reload", "reload5", "PuertoPrincipe_tavern", "sit", "sit3", "PiratesLine_toTavern", -1);

Я уже находил такую строчку, но не в пиратской линейке а в квесте Изабеллы но никак не разберусь что и куда вписывать. Можете объяснить по подробнее вот эту строчку
Код

LAi_ActorRunToLocation(npchar, "reload", "reload5", "PuertoPrincipe_tavern", "sit", "sit3", "PiratesLine_toTavern", -1);

особенно вот эту часть кода
Код
"PiratesLine_toTavern"
например что это и откуда можно взять или где это можно прописать

Добавлено (12.04.2014, 13:42)
---------------------------------------------
Nathaniel, а если моему НПЦ нужно:
1) сначала выйти из той локации(дома) в которой он находился;
2) когда ГГ выйдет из данной локации то чтобы было видно как НПЦ убегает в заданную локацию;
то что нужно прописывать? или разницы нет?


Жизнь - как божественная комедия...

Сообщение отредактировал ecio_audit - Суббота, 12.04.2014, 13:37
NathanielДата: Суббота, 12.04.2014, 13:43 | Сообщение # 159
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата ecio_audit ()
Можете объяснить по подробнее вот эту строчку

Более подробные описания всех (или почти всех) функций есть в мини-мануале от ALexusB (_doc_scripts). Если нет там её, попытаюсь объяснить:

Ищем и находим:
Цитата
Код
//Указать актёру бежать в заданную локацию, лочиться
void LAi_ActorRunToLocation(aref chr, string groupExit, string locatorExit, string locID, string groupEnter, string locatorEnter, string quest, float timeout);

С первым аргументом, я думаю, всё понятно... Второй и третий ("reload" и "reload5") - это группа локаторов и сам локатор на выходе из таверны, в который попадает каждый раз и ГГ, "выходя" из таверны, затем - локаторы группа локаторов и сам локатор внутри локации, в которую персонаж "вошёл". Их можно посмотреть в отладчике, включив наглядное отображение (опция "Locator Show") локаторов и телепортируясь по локациям. Квест - это квест, который стартует сразу после убегания NPC в локацию. Поищите по названию в поиске. Когда найдёте его - поймёте что это такое... Таймаут - это я точно не знаю что такое, но, вероятно, время-задержка до начала следующего квеста.

Обращаю внимание на то, что все локаторы необходимо указывать очень точно, иначе в случае ошибки игра или вообще не будет работать, или вас ждёт чёрный экран. Или, что ещё хуже, попав в заданный локатор, персонаж не сможет сдвинуться с места!

И не ленитесь искать неизвестные вам термины и названия в самой папке со скриптами. В одном из постов этого раздела я писал, как искать нужный фрагмент или строку в поиске Windows. Очень надёжное и удобное средство!


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!


Сообщение отредактировал Nathaniel - Суббота, 12.04.2014, 13:48
korsar328Дата: Суббота, 12.04.2014, 13:48 | Сообщение # 160
Мичман
Группа: Корсар
Сообщений: 102
Награды: 5
Репутация: 30
Статус: В открытом море
Цитата Nathaniel ()
_doc_scripts

не разу не встречал, можете скинуть?


Жизнь - как божественная комедия...
Поиск:

Copyright Pirates-Life.Ru © 2008-2024


Семь Футов под Килем - Бухта Корсаров и Пиратов!