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

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


Купить игры
 



Чат
 
500


Статистика
 
Пользователи, посетившие сайт за текущий день:
korsary4, turbo_gad, Miky, MrDjon, каперр, Sersh37, AndryKrol, Maxmontana, Andrey__3010, Yaauhen, Badgert, LAPPA, bazilius, ukdouble1, Walgreid, daedro_war, AldarS, Bendiiiiik, wellnemo7
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Модератор форума: NikK  
Форум » Ад-доны для игр серии Корсары » FAQ по модам - "Сделай мод сам" » Урок № 3. Пишем диалоги персонажам
Урок № 3. Пишем диалоги персонажам
DesBalДата: Воскресенье, 26.10.2014, 13:41 | Сообщение # 181
Матрос
Группа: Корсар
Сообщений: 50
Награды: 1
Репутация: 10
Статус: В открытом море
Nathaniel, С логами беда если те что с расширением ini то их у меня 2 но я в логах валенок)

Добавлено (26.10.2014, 13:35)
---------------------------------------------
Reboroda, Да существует!Он работал полностью вот пока ожидание не вставил...

Добавлено (26.10.2014, 13:41)
---------------------------------------------
Работает


Не работает
Значит где-то в этой вставке то есть


Готовность даньки 87% (суммарно,временный фриз)

Стартовый квест 10% (Суммарно)


Сообщение отредактировал DesBal - Воскресенье, 26.10.2014, 13:41
ReborodaДата: Воскресенье, 26.10.2014, 14:02 | Сообщение # 182
Мичман
Группа: Корсар
Сообщений: 146
Награды: 10
Репутация: 111
Статус: В открытом море
Хм... Да, затык видимо где-то в коде временной задержки. Error.log обязателен к ознакомлению. Включи создание логов. Сделай бэкап engine.ini (сохрани с другим именем для последующего восстановления). Затем открой его в текстовике.

1. Перед tracefilesoff = 1 поставь знак ";" (то бишь отруби эту строку).

2. Далее, в разделе ниже:

Код
[script]
debuginfo = 0
codefiles = 0
runtimelog = 0
;tracefiles = 0


Пропиши вместо нуля единицу напротив debuginfo = и runtimelog =. Тоесть так:

Код
[script]
debuginfo = 1
codefiles = 0
runtimelog = 1
;tracefiles = 0


Когда стартанешь гаму, у тебя в директории игры появятся нужные логи. Тебе понадобится Error.log

Добавлено (26.10.2014, 14:02)
---------------------------------------------
ЗЫ. Не забудь, когда закончишь работу над всем своим делом, верни все обратно. Самое простое - восстанови ранее сохраненный бэкап, либо подставь назад нули и вруби строку tracefilesoff = 1 (удалив ";" перед строкой). Иначе игра будет жутко тупить, обрабатывая все дела на предмет ошибок и прочей фигни. Как-то так.


- Бизнесмен убъет в вас зрителя, но ты... Билли... Неужели тебе это могло понравиться?
- Да я вообще только одним глазком...
DesBalДата: Воскресенье, 26.10.2014, 14:15 | Сообщение # 183
Матрос
Группа: Корсар
Сообщений: 50
Награды: 1
Репутация: 10
Статус: В открытом море
Reboroda, Не не показывает эрор

Добавлено (26.10.2014, 14:15)
---------------------------------------------
Reboroda, А ещё есть какие тайминги?


Готовность даньки 87% (суммарно,временный фриз)

Стартовый квест 10% (Суммарно)
ReborodaДата: Воскресенье, 26.10.2014, 15:15 | Сообщение # 184
Мичман
Группа: Корсар
Сообщений: 146
Награды: 10
Репутация: 111
Статус: В открытом море
DesBal, есть еще функция

SetTimerCondition("имя квеста", 0, 0, 1, false);

Тут первое число = год, второе = месяц, третье = день, ну а true либо false в конце = повторять или нет спустя такой-же срок квест снова. Эта функция оч часто юзается в кодах квестов. Но она тоже не учитывается при ожидании. Я как-то пробовал подождать время в один день с интерфейса промотки времени - нифига не стартануло.


- Бизнесмен убъет в вас зрителя, но ты... Билли... Неужели тебе это могло понравиться?
- Да я вообще только одним глазком...
DesBalДата: Воскресенье, 26.10.2014, 15:31 | Сообщение # 185
Матрос
Группа: Корсар
Сообщений: 50
Награды: 1
Репутация: 10
Статус: В открытом море
Reboroda, Тоесть,ждал-ждал и бестолку?

Добавлено (26.10.2014, 15:31)
---------------------------------------------
Reboroda, Пытыюсь сейчас через вайт дату!


Готовность даньки 87% (суммарно,временный фриз)

Стартовый квест 10% (Суммарно)
ReborodaДата: Воскресенье, 26.10.2014, 15:36 | Сообщение # 186
Мичман
Группа: Корсар
Сообщений: 146
Награды: 10
Репутация: 111
Статус: В открытом море
DesBal, Погоди, ща попробую разобраться.

Вот еще функция с часами, устроена она похоже, только добавлены часы. Надо пробить, как она работает. Она то и задействована в коде дуэлей!

Код
void SetTimerConditionParam(string _name, string _quest, int _year, int _month, int _day, int _hour, bool _again)
{
      while (_hour > 23)
   {
    _hour -= 23;
    _day += 1;
   }
   PChar.quest.(_name).win_condition.l1            = "Timer";
      PChar.quest.(_name).win_condition.l1.date.day   = GetAddingDataDay(_year, _month, _day);
      PChar.quest.(_name).win_condition.l1.date.month = GetAddingDataMonth(_year, _month, _day);
      PChar.quest.(_name).win_condition.l1.date.year  = GetAddingDataYear(_year, _month, _day);
      PChar.quest.(_name).win_condition.l1.date.hour  = _hour;
      PChar.quest.(_name).win_condition               = _quest;
      if (_again)
      {
          PChar.quest.(_name).again = true;
      }
      else
      {
          DeleteAttribute(Pchar, "quest."+_name+".again");
      }
}


Да да, вот так она там заюзана:

Код
SetTimerConditionParam("duel_move_opponentBack", "Duel_Move_OpponentBack", 0, 0, 0, sti(GetTime() + 0.5) + sti(pchar.questTemp.Duel.WaitTime) + 1, false);


Попробуй ее и сообщи как все заработало.

Добавлено (26.10.2014, 15:36)
---------------------------------------------
Пропиши функцию и подставь свое так, попробуй:

Код
SetTimerConditionParam("имя квеста", "имя квеста", 0, 0, 0, время в часах, false);


- Бизнесмен убъет в вас зрителя, но ты... Билли... Неужели тебе это могло понравиться?
- Да я вообще только одним глазком...


Сообщение отредактировал Reboroda - Воскресенье, 26.10.2014, 15:38
DesBalДата: Воскресенье, 26.10.2014, 15:43 | Сообщение # 187
Матрос
Группа: Корсар
Сообщений: 50
Награды: 1
Репутация: 10
Статус: В открытом море
Reboroda, Имеешь в виду нижний код или всё адаптировать?

Готовность даньки 87% (суммарно,временный фриз)

Стартовый квест 10% (Суммарно)
ReborodaДата: Воскресенье, 26.10.2014, 15:44 | Сообщение # 188
Мичман
Группа: Корсар
Сообщений: 146
Награды: 10
Репутация: 111
Статус: В открытом море
DesBal, только строку ниже канеш, зачем тебе весь код из функции? Она то у тебя и так имеется в скриптах.

- Бизнесмен убъет в вас зрителя, но ты... Билли... Неужели тебе это могло понравиться?
- Да я вообще только одним глазком...


Сообщение отредактировал Reboroda - Воскресенье, 26.10.2014, 15:46
DesBalДата: Воскресенье, 26.10.2014, 15:49 | Сообщение # 189
Матрос
Группа: Корсар
Сообщений: 50
Награды: 1
Репутация: 10
Статус: В открытом море
Reboroda, Сек щя заценим подумай куда впихать её
я пока проверю текст откроет или нет


Готовность даньки 87% (суммарно,временный фриз)

Стартовый квест 10% (Суммарно)
ReborodaДата: Воскресенье, 26.10.2014, 15:51 | Сообщение # 190
Мичман
Группа: Корсар
Сообщений: 146
Награды: 10
Репутация: 111
Статус: В открытом море
Напиши типа такого:

Код
case "wait_hour1":
chrDisableReloadToLocation = false;//открыть локацию
pchar.questTemp.Anna = "wait";
DialogExit();
SetTimerConditionParam("Anna", "Anna", 0, 0, 0, время в часах, false);
AddQuestRecord("Anna", "5");
break;


Это если что, я для твоего первого диалога писал. Ну а тут соответственно.


- Бизнесмен убъет в вас зрителя, но ты... Билли... Неужели тебе это могло понравиться?
- Да я вообще только одним глазком...


Сообщение отредактировал Reboroda - Воскресенье, 26.10.2014, 15:53
DesBalДата: Воскресенье, 26.10.2014, 16:04 | Сообщение # 191
Матрос
Группа: Корсар
Сообщений: 50
Награды: 1
Репутация: 10
Статус: В открытом море
Reboroda, Сейчас текст пашет,осталось сделать тайм...

Добавлено (26.10.2014, 15:54)
---------------------------------------------
Reboroda, Так у тебя время 0 стоит так не проверишь)Хотя проверить переходку а там тайминг выставлять...

Добавлено (26.10.2014, 16:04)
---------------------------------------------
Reboroda, Откидывает к 7 выбору



Готовность даньки 87% (суммарно,временный фриз)

Стартовый квест 10% (Суммарно)
ReborodaДата: Воскресенье, 26.10.2014, 16:05 | Сообщение # 192
Мичман
Группа: Корсар
Сообщений: 146
Награды: 10
Репутация: 111
Статус: В открытом море
DesBal, вместо "время в часах" пропиши цифру, сколько требуется задержки. Старт следующего диалога (нода диалога "dialog с нужной цифрой") пропиши уже в теле квеста "Анна". Есть код специальный, позволяющий вернуться к диалогу, я плохо помню, надо в скриптах рыться. Кажись этот:

Код
npchar.Dialog.CurrentNode = npchar.BackUp.DialogNode;


Короче теперь тебе надо повозиться с продолжением диалога из квеста. Примеры - в скриптах.


- Бизнесмен убъет в вас зрителя, но ты... Билли... Неужели тебе это могло понравиться?
- Да я вообще только одним глазком...


Сообщение отредактировал Reboroda - Воскресенье, 26.10.2014, 16:07
DesBalДата: Воскресенье, 26.10.2014, 16:10 | Сообщение # 193
Матрос
Группа: Корсар
Сообщений: 50
Награды: 1
Репутация: 10
Статус: В открытом море
DesBal, Даже если час выстовить...то не срабатывает...

Добавлено (26.10.2014, 16:10)
---------------------------------------------
Reboroda, Типа так?

Или не?Я же скриптами всего 4 день занимаюсь ещё на уровне любителя...


Готовность даньки 87% (суммарно,временный фриз)

Стартовый квест 10% (Суммарно)
ReborodaДата: Воскресенье, 26.10.2014, 16:14 | Сообщение # 194
Мичман
Группа: Корсар
Сообщений: 146
Награды: 10
Репутация: 111
Статус: В открытом море
DesBal, не, вот так:

Код
case "wait_hour1":
chrDisableReloadToLocation = false;//открыть локацию
pchar.questTemp.Anna = "wait";
DialogExit();
SetTimerConditionParam("Anna", "Anna", 0, 0, 0, 1, false);
AddQuestRecord("Anna", "5");
break;

case "dialog12":
AddQuestRecord("Anna", "6");
AddDialogExitQuest("dialog13");
dialog.text = "" + PChar.Name + " я уже начала скучать!";
link.l1 = "" + npchar.name + " неужели так сильно ждала?";
link.l1.go = "dialog13";
Break;


- Бизнесмен убъет в вас зрителя, но ты... Билли... Неужели тебе это могло понравиться?
- Да я вообще только одним глазком...


Сообщение отредактировал Reboroda - Воскресенье, 26.10.2014, 16:15
DesBalДата: Воскресенье, 26.10.2014, 16:18 | Сообщение # 195
Матрос
Группа: Корсар
Сообщений: 50
Награды: 1
Репутация: 10
Статус: В открытом море
Reboroda, Вообще откат к началу разговора,после закрытия диалога 1 встречи)

Готовность даньки 87% (суммарно,временный фриз)

Стартовый квест 10% (Суммарно)
ReborodaДата: Воскресенье, 26.10.2014, 16:18 | Сообщение # 196
Мичман
Группа: Корсар
Сообщений: 146
Награды: 10
Репутация: 111
Статус: В открытом море
строку: npchar.Dialog.CurrentNode = npchar.BackUp.DialogNode; прописывай не здесь, а в квесте "Анна", который у тебя вероятнее всего должен быть написан в файле "quest_reaction.c" (я, например, пишу свои квесты в этом файле).

- Бизнесмен убъет в вас зрителя, но ты... Билли... Неужели тебе это могло понравиться?
- Да я вообще только одним глазком...
DesBalДата: Воскресенье, 26.10.2014, 16:29 | Сообщение # 197
Матрос
Группа: Корсар
Сообщений: 50
Награды: 1
Репутация: 10
Статус: В открытом море
Reboroda, У меня весь квест тут х)

Добавлено (26.10.2014, 16:22)
---------------------------------------------
Reboroda, Я вообще хз зачем делать там всё и тут норм работает...

Единственное только у меня перс в другом месте)А всё остальное тут)

Добавлено (26.10.2014, 16:25)
---------------------------------------------
Reboroda, Мне вообще порой кажется как-то так надо делать тайминг


Выполнил условие по таймингу вот и продолжение квеста а не выполнил,повторный диалог)

Добавлено (26.10.2014, 16:29)
---------------------------------------------
Reboroda, ничего найдём как сделать) ещё надо текст дописать+ ГГ старт локу сменить и ему ещё ветку писать)


Готовность даньки 87% (суммарно,временный фриз)

Стартовый квест 10% (Суммарно)


Сообщение отредактировал DesBal - Воскресенье, 26.10.2014, 16:27
ReborodaДата: Воскресенье, 26.10.2014, 16:30 | Сообщение # 198
Мичман
Группа: Корсар
Сообщений: 146
Награды: 10
Репутация: 111
Статус: В открытом море
А я кстати и не гуру в скриптах, я вообще 3д модельер больше. Просто ковыряюсь по нужде и тд и тп...

строка NextDiag.TempNode = "dialog7"; , которую ты прописывал в своем коде

Код
case "AnnaNo":
dialog.text = "Жаль,а я надеялась ты сможешь мне помочь!";
link.l1 = "Не переживай я найду нужную сумму.";
link.l1.go = "exit";
NextDiag.TempNode = "dialog7";
break;


означает что следующая нода диалога, при встрече, будет "dialog7". Это я точно помню. Поэтому учитывай это.
А моя npchar.Dialog.CurrentNode = npchar.BackUp.DialogNode; может и не работать, я на вскид припомнил. Возможно дико ошибаюсь, уж извини.)

Можешь попробовать и с условием поколдовать, тут все средства хороши.


- Бизнесмен убъет в вас зрителя, но ты... Билли... Неужели тебе это могло понравиться?
- Да я вообще только одним глазком...
DesBalДата: Воскресенье, 26.10.2014, 16:32 | Сообщение # 199
Матрос
Группа: Корсар
Сообщений: 50
Награды: 1
Репутация: 10
Статус: В открытом море
Reboroda, Слух как скрин вставить?

Готовность даньки 87% (суммарно,временный фриз)

Стартовый квест 10% (Суммарно)
NathanielДата: Воскресенье, 26.10.2014, 16:32 | Сообщение # 200
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата DesBal ()
как-то так надо делать тайминг

DesBal, это всего лишь диалог на прокрутку времени!.. С одним только диалогом вы далеко не уедете: диалог отработает, а время не промотается. Поэтому нужна процедура, которая отмотает время и процедура, которая проверит - а действительно ли время прошло?


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
Форум » Ад-доны для игр серии Корсары » FAQ по модам - "Сделай мод сам" » Урок № 3. Пишем диалоги персонажам
Поиск:

Copyright Pirates-Life.Ru © 2008-2024


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