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

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


Купить игры
 



Чат
 
500


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

Модератор форума: NikK  
Вопросы по созданию модификаций
yodalikДата: Понедельник, 07.10.2013, 16:32 | Сообщение # 1121
Мичман
Группа: Корсар
Сообщений: 66
Награды: 5
Репутация: 13
Статус: В открытом море
Nathaniel, так я и скопировал эти кейсы из habitue! (естественно подправил по следующим/предыдущим) И в кейсы все вписал. Так и не могу понять куда конкретно вставлять эту функцию. Уже во всё строчки переставил(((((((((

Делай то, что велят тебе твои сердце и разум. И будь что будет!
Джин-БейнДата: Вторник, 08.10.2013, 02:35 | Сообщение # 1122
Капитан I ранга
Группа: Команда Аддона
Сообщений: 1073
Награды: 40
Репутация: 197
Статус: В открытом море
Цитата (Nathaniel)
Объясните, пожалуйста, какой функцией можно дать указание ГГ в игре "подождать N часов"? С перезагрузкой локации...

попробуй поискать в файле \PROGRAM\dialogs\russian\MainHero_dialog.c примерная строчка 116 и ниже если пользоваться прогой Notepad++ это отвечает за мысли в слух.




Сообщение отредактировал Джин-Бейн - Вторник, 08.10.2013, 02:36
NathanielДата: Вторник, 08.10.2013, 03:18 | Сообщение # 1123
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата (Джин-Бейн)
попробуй поискать в файле \PROGRAM\dialogs\russian\MainHero_dialog.c

Там есть только функции: "отдыхать до ночи...", "...до утра", "до следующего утра"; а конкретный пример задания интервала времени в 1.2.12 не запрограммирован!.. Во всяком случае, я ничего не нашёл даже в квестовых линейках...

Цитата (yodalik)
Так и не могу понять

Ну хорошо... А строка
Код
Diag.TempNode = "8";

что означает? Что это за "восьмёрка"?


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
yodalikДата: Вторник, 08.10.2013, 09:28 | Сообщение # 1124
Мичман
Группа: Корсар
Сообщений: 66
Награды: 5
Репутация: 13
Статус: В открытом море
Цитата (Nathaniel)
что означает? Что это за "восьмёрка"?

Это переход на кейс 8. А уже из кейса 8 идёт переход на кейс "вставания".


Делай то, что велят тебе твои сердце и разум. И будь что будет!
Джин-БейнДата: Вторник, 08.10.2013, 12:44 | Сообщение # 1125
Капитан I ранга
Группа: Команда Аддона
Сообщений: 1073
Награды: 40
Репутация: 197
Статус: В открытом море
Цитата (Nathaniel)
Там есть только функции: "отдыхать до ночи...", "...до утра", "до следующего утра";

Так вот и поразберай этот кусочек кода, там это должнобыть завязано на врем.


NathanielДата: Среда, 09.10.2013, 12:29 | Сообщение # 1126
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата (Джин-Бейн)
там это должно быть

Да, вы были правы, прошу прощения... Не нашёл функцию WaitDate(), которая и решила все мои вопросы!..


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
PhenixxДата: Пятница, 11.10.2013, 15:35 | Сообщение # 1127
Пороховая обезьяна
Группа: Пират
Сообщений: 7
Награды: 0
Репутация: 1
Статус: В открытом море
Цитата (Nathaniel)
Но что из себя представляют эти четыре числа?..

первые два - это координаты левого верхнего угла, а последние - нижнего правого (x,y соответственно)
NathanielДата: Пятница, 11.10.2013, 17:05 | Сообщение # 1128
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата Phenixx ()
первые два - это координаты левого верхнего угла, а последние - нижнего правого (x,y соответственно)

Спасибо! Я так и подумал, когда в первый раз заменил эти числа... Вторая пара, как я понял, должна рассчитываться на основе первой?


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
PhenixxДата: Пятница, 11.10.2013, 18:07 | Сообщение # 1129
Пороховая обезьяна
Группа: Пират
Сообщений: 7
Награды: 0
Репутация: 1
Статус: В открытом море
Цитата Nathaniel ()
Вторая пара, как я понял, должна рассчитываться на основе первой?

нет, от первой она вообще не зависит. Например, в данном случае чтобы передвинуть левый край таблицы влево, нужно уменьшить первое число.


Сообщение отредактировал Phenixx - Пятница, 11.10.2013, 18:08
NathanielДата: Суббота, 12.10.2013, 03:50 | Сообщение # 1130
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата Phenixx ()
от первой она вообще не зависит

Согласен, на сегодняшних тестах в этом убедился...

-----------
Ещё один вопрос... Пишу в кейсе процедуру промотки времени с заставкой на экране: "Прошло 3 часа..."

Код
SetLaunchFrameFormParam("Прошло три часа...", "", 0, 5);
LaunchFrameForm();
WaitDate("", 0, 0, 0, 3, 10); //крутим время
RecalculateJumpTable();

Но штука в том, что эти 3 часа проматываются, а заставки нет!
Что я делаю не так?

И что означают в процедуре SetLaunchFrameFormParam() последние два числовые параметра?


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


Сообщение отредактировал Nathaniel - Суббота, 12.10.2013, 03:54
Джин-БейнДата: Суббота, 12.10.2013, 10:53 | Сообщение # 1131
Капитан I ранга
Группа: Команда Аддона
Сообщений: 1073
Награды: 40
Репутация: 197
Статус: В открытом море
Цитата Nathaniel ()
Но штука в том, что эти 3 часа проматываются, а заставки нет! Что я делаю не так?

Поищи в подобном дэфолтном коде (например в ленейке ЛГ), как прописана отсылка на эту текстурку (как ты говоришь заставку).


PhenixxДата: Суббота, 12.10.2013, 13:15 | Сообщение # 1132
Пороховая обезьяна
Группа: Пират
Сообщений: 7
Награды: 0
Репутация: 1
Статус: В открытом море
Цитата Nathaniel ()
Что я делаю не так?

Возможно, нужно в одном кейсе прописать заставку, а в другом время и вызвать второй кейс функцией
Код
LAi_QuestDelay("имя кейса", 2.0);

где 2.0 - это время в секундах, после которого запустится кейс. Иными словами, столько времени будет висеть заставка.


Сообщение отредактировал Phenixx - Суббота, 12.10.2013, 13:15
MettДата: Суббота, 12.10.2013, 13:36 | Сообщение # 1133
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 91
Репутация: 565
Статус: В открытом море
Nathaniel, для начала я бы рекомедовал проверить такой вариант:
SetLaunchFrameFormParam("Прошло три часа...", "", 1.5, 5.0);
и вот еще что - числа на концах это тип float, их желательно писать с дробной частью на конце, но я это не вызовет критических ошибок, как мне думается :)

я у себя в коде писал функции в другом порядке и все работало
например так:
Код

WaitDate("", 0, 0, 0, 3, 10); //крутим время   
RecalculateJumpTable();
SetLaunchFrameFormParam("Прошло три часа...", "", 0, 5);   
LaunchFrameForm();   


Что толку, если не можешь сделать мир лучше.

Сообщение отредактировал Mett - Воскресенье, 13.10.2013, 03:35
NathanielДата: Воскресенье, 13.10.2013, 12:22 | Сообщение # 1134
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата Mett ()
числа на концах это тип float

Это верно! Но что это за числа? Почему в одних случаях нужно ставить 1.5, а в других - 5.0?

--------

Ребята, я пишу вот так...
Код
case "TalkSelf_select":
dialog.text = "Сколько часов потребуется на отдых?";
link.l1.edit = 1;
link.l1.go = "Select_Time";
break;

case "Select_Time":
iSelectTime = GetStrSmallRegister(dialogEditStrings[1]);
SetLaunchFrameFormParam("Прошло время...", "", 1.5, 5.0);

// этот код я взял из аналогичного квестового куска, ничего не менял
LaunchFrameForm();
WaitDate("", 0, 0, 0, iSelectTime, 0);
RecalculateJumpTable();

// перезагрузка локации
DoQuestReloadToLocation(pchar.location, pchar.location.group, pchar.location.locator, "");
break;


Всё работает, кроме появления интерфейса таблички с надписью...

Цитата Phenixx ()
Возможно, нужно в одном кейсе прописать заставку, а в другом время и вызвать второй кейс функцией

Попробовал... На указанном примере. Не получается...


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


Сообщение отредактировал Nathaniel - Воскресенье, 13.10.2013, 12:52
MettДата: Воскресенье, 13.10.2013, 14:55 | Сообщение # 1135
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 91
Репутация: 565
Статус: В открытом море
2 Nathaniel,
Код
// Инициация таблички В это время на Беде  -->
// _FrameText - текст  Перенос строки делать "текст"+ NewStr() +"текст"
// _FrameQuest - квест после завершения таблички, если == "Reload_To_Location" см. SetLaunchFrameReloadLocationParam
// если же будет == "Run_Function" см. SetLaunchFrameRunFunctionParam
// _delay - время в с. отложения вызова таблички (нужно для неконфликта с заставкой загрузки локаций, где-то 0.1-1.5с)
// _autoEnd - время в с. автозавершения показа таблички, 4-6с на фразу
void SetLaunchFrameFormParam(string _FrameText, string _FrameQuest, float _delay, float _autoEnd)
{
       pchar.AutoQuest.FrameText    = _FrameText;
       pchar.AutoQuest.FrameQuest   = _FrameQuest;
       pchar.AutoQuest.FrameDelay   = _delay;
       pchar.AutoQuest.FrameAutoEnd = _autoEnd;
}


так же я бы посоветовал сменить твой код на такой:
Код
case "Select_Time":   
       iSelectTime = GetStrSmallRegister(dialogEditStrings[1]);   
       SetLaunchFrameFormParam("Прошло время...", "Reload_To_Location", 1.5, 5.0);   
       SetLaunchFrameReloadLocationParam(pchar.location, pchar.location.group, pchar.location.locator, "");
       LaunchFrameForm();   
       WaitDate("", 0, 0, 0, iSelectTime, 0);   
       RecalculateJumpTable();   
break;


Что толку, если не можешь сделать мир лучше.

Сообщение отредактировал Mett - Воскресенье, 13.10.2013, 16:09
NathanielДата: Воскресенье, 13.10.2013, 15:00 | Сообщение # 1136
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Спасибо, разберёмся!..

Цитата Mett ()
я бы посоветовал сменить твой код на такой



Этот вообще не работает. Диалог зависает намертво и приходится убивать процесс в диспетчере задач...


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


Сообщение отредактировал Nathaniel - Понедельник, 14.10.2013, 01:23
MettДата: Понедельник, 14.10.2013, 01:44 | Сообщение # 1137
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 91
Репутация: 565
Статус: В открытом море
Nathaniel, странно, я у себя только что проверил - все работает..

Что толку, если не можешь сделать мир лучше.
NathanielДата: Понедельник, 14.10.2013, 14:09 | Сообщение # 1138
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата Mett ()
странно, все работает...

Ну, не получается - и не получается, Бог с ним... Зато у меня кое-что другое заработало! :))


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
StrimellДата: Понедельник, 14.10.2013, 15:17 | Сообщение # 1139
Мичман
Группа: Корсар
Сообщений: 146
Награды: 0
Репутация: 5
Статус: В открытом море
Куда нужно прописать вызов функции, чтобы та каждый раз выполнялась когда герой выходит на боевую карту в море?

Корсары - лучшая игра всех времён!
Дик_ДжонсанДата: Понедельник, 14.10.2013, 20:25 | Сообщение # 1140
Пороховая обезьяна
Группа: Пират
Сообщений: 4
Награды: 0
Репутация: 0
Статус: В открытом море
у меня есть модель Дейви джонса, но что бы у меня 77 главных героев. а если я поставлю Джонза, то там будут новые ГГ. как этого избежать?

Кто-то-пират
А я-корсар!


Сообщение отредактировал Дик_Джонсан - Понедельник, 14.10.2013, 21:00
Поиск:

Copyright Pirates-Life.Ru © 2008-2024


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