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

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


Купить игры
 



Чат
 
500


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

Модератор форума: NikK  
Форум » Ад-доны для игр серии Корсары » FAQ по модам - "Сделай мод сам" » Кодинг квестов (Рассмотрим написание квестов)
Кодинг квестов
korsar01Дата: Вторник, 13.09.2016, 14:50 | Сообщение # 421
Мичман
Группа: Корсар
Сообщений: 186
Награды: 6
Репутация: 46
Статус: В открытом море
Blad45, все легко находится поиском. Для поиска по файлам я использую Notepad++. Можно начать с условия:
Код
if(startHeroType == 1)

Оно выведет на файл RPGUtilite.c
там уже видно, что для Блада запускается функция Blood_StartGame,ее тоже можно найти через поиск, находится она в файле reaction_functions.c, в ней и прописывается локация.
Если еще нужно убрать линейку Блада и просто загрузить его в нужной локации, то в файле RPGUtilite добавить строку:
Код
Pchar.questTemp.CapBloodLine = false;

в том месте, где идет вышеописанное условие.


Сообщение отредактировал korsar01 - Вторник, 13.09.2016, 15:09
korsar01Дата: Среда, 14.09.2016, 13:17 | Сообщение # 422
Мичман
Группа: Корсар
Сообщений: 186
Награды: 6
Репутация: 46
Статус: В открытом море
Цитата Blad45 ()
Я спрашивал как поменять место куда Блад перемещается после ролика

вот же ответ:
Цитата korsar01 ()
для Блада запускается функция Blood_StartGame,ее тоже можно найти через поиск, находится она в файле reaction_functions.c, в ней и прописывается локация.

Если нужны подробности, то вот те самые строки:
Код

pchar.quest.CureLordMovie.win_condition.l1.location = "EstateBadroom1";//id локации
pchar.quest.CureLordMovie.win_condition.l1.locator_group = "quest";//группа локатора, куда нужно поместить персонажа
pchar.quest.CureLordMovie.win_condition.l1.locator = "quest1";//имя самого локатора

комментариев там нет, я их подписал, чтобы было понятно, что к чему относится.
Blad45, и не нужно грубить никому.


Сообщение отредактировал korsar01 - Среда, 14.09.2016, 13:23
NathanielДата: Среда, 14.09.2016, 13:23 | Сообщение # 423
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата korsar01 ()
комментариев там нет, я их подписал, чтобы было понятно, что к чему относится

К сожалению, это не та категория пользователей, которым это поможет. Им требуется полностью написанный готовый код, за что в лучшем случае ничего не напишут в ответ... Привыкли, понимаешь ли, воровать с playground скрипты игр серии "Корсары".

Бесполезно... Не тратьте время на таких...


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
ЛамбадаДата: Понедельник, 20.03.2017, 22:19 | Сообщение # 424
Пороховая обезьяна
Группа: Пират
Сообщений: 7
Награды: 0
Репутация: 0
Статус: В открытом море
Приветствую! Возник вопрос. Как прописать 2 поочередных условия?
Методом научного тыка выяснил, что структура
Код
if()
    {    
text
    }
    if()
    {
text    
    }
    else
    {
text
    }

видит лишь последние строчки, а именно:
Код
if()
    {    
text
    }
    else
    {
text
    }

Что подскажете?
NathanielДата: Понедельник, 20.03.2017, 22:22 | Сообщение # 425
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата Ламбада ()
Как прописать 2 поочередных условия?

Почитайте!


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
ЛамбадаДата: Понедельник, 20.03.2017, 22:31 | Сообщение # 426
Пороховая обезьяна
Группа: Пират
Сообщений: 7
Награды: 0
Репутация: 0
Статус: В открытом море
Цитата Nathaniel ()
Почитайте!

Конструкция приобрела вид
Код
if()
    {
     text
    }
    else if()
    {
     text
    }
    else
    {
     text
    }

Все верно? Заменил второе if на else if. Произошел вылет игры
NathanielДата: Понедельник, 20.03.2017, 22:38 | Сообщение # 427
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата Ламбада ()
Все верно?

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


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
kb31Дата: Вторник, 21.03.2017, 04:12 | Сообщение # 428
Матрос
Группа: Корсар
Сообщений: 28
Награды: 1
Репутация: 17
Статус: В открытом море
else if вроде не работает. могу ошибаться
NathanielДата: Вторник, 21.03.2017, 12:44 | Сообщение # 429
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата kb31 ()
else if вроде не работает

У меня всё прекрасно работает. Если соблюдать вложенность условий и правильную расстановку скобок... Именно неверная расстановка скобок в 99% случаев и приводит к вылетам и отказе обработки всего файла.


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
kb31Дата: Вторник, 21.03.2017, 14:58 | Сообщение # 430
Матрос
Группа: Корсар
Сообщений: 28
Награды: 1
Репутация: 17
Статус: В открытом море
Цитата Nathaniel ()
У меня всё прекрасно работает. Если соблюдать вложенность условий и правильную расстановку скобок... Именно неверная расстановка скобок в 99% случаев и приводит к вылетам и отказе обработки всего файла.

Конструкция else-if не подразумевает вложенность, и я не смог заставить ее работать у себя в коде. Поиск по коду выдал только 2 использования else if - оба закомментированные, отсюда и предположение

UPD:
Код
    if (0)
    {
  Log_Info("1");
    }
    else if (1)
    {
  Log_Info("2");
    }

Цитата
syntax error


Сообщение отредактировал kb31 - Вторник, 21.03.2017, 15:08
NathanielДата: Вторник, 21.03.2017, 15:56 | Сообщение # 431
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата kb31 ()
Конструкция else-if не подразумевает вложенность, и я не смог заставить ее работать у себя в коде. Поиск по коду выдал только 2 использования else if - оба закомментированные, отсюда и предположение

Я автору вопроса сегодня отправлял своё видение решения этой проблемы. У меня всё работает, тем не менее... Более того, я сам "строчу" многоэтажные разветвления по своим квестам. В обычном текстовом редакторе я однажды едва не повесился от того, что игра не работала как следует. А ещё у меня была однажды проблема - в одном диалоге при копировании из Microsoft Word произошла смена символа двойной кавычки при закрытии строки. То есть как бы внешне - двойные кавычки, всё естественно. Но строка не обрабатывалась, ибо кавычки оказались просто "нарисованы" в файле. Я просидел с этой бедой несколько часов и просто весь извёлся.

Отсюда вывод... Пробуйте разные варианты, перебирайте методом проб и ошибок. И лучше - в редакторе с подсветкой синтаксиса.


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
kb31Дата: Вторник, 21.03.2017, 16:47 | Сообщение # 432
Матрос
Группа: Корсар
Сообщений: 28
Награды: 1
Репутация: 17
Статус: В открытом море
Цитата Nathaniel ()
своё видение решения этой проблемы

Так то оно безусловно работает, я и говорил о том, что парсер не видит привычный "else-if" =)
Кстати, примечательно, что в большинстве случаев в коде это решается не пирамидой вложений, а игнорированием "else" вообще
А еще в ГПК 1.3.2 есть-таки один else-if, но я не проверял как там это (не)работает
NathanielДата: Вторник, 21.03.2017, 23:25 | Сообщение # 433
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата kb31 ()
в большинстве случаев в коде это решается не пирамидой вложений, а игнорированием "else" вообще...

Вот я автору вопроса тоже написал по этому поводу. Если приходится иметь дело с числовыми или строковыми переменными - я просто пишу "switch... case... break", мне привычно его использовать. Но и от "if... else..." тоже не вижу смысла отказываться. Проблема ещё и в том, что в скриптах "Корсаров" не работают некоторые привычные функции С/С++ и мы немного ограничены в выборе средств.

Цитата kb31 ()
есть-таки один else-if, но я не проверял как там это (не)работает...

Если я не помню или не знаю синтаксис какой-либо стандартной функции или оператора, я просто вбиваю и смотрю. Сам с институтских лет кое-что начинаю подзабывать, а профессионально программированием я не занимаюсь. Так что в этом мне очень сильно помогает подсветка синтаксиса, не перестану об этом повторять. Если, например, введённые операторы не подсвечиваются белым цветом (ключевые слова) - значит написано неверно.


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
Jack94Дата: Четверг, 15.06.2017, 14:47 | Сообщение # 434
Матрос
Группа: Пират
Сообщений: 21
Награды: 2
Репутация: 2
Статус: В открытом море
А как сделать чтобы гг перекидывало на палубу какого нибудь корабля во время квеста?
korsar01Дата: Суббота, 17.06.2017, 08:17 | Сообщение # 435
Мичман
Группа: Корсар
Сообщений: 186
Награды: 6
Репутация: 46
Статус: В открытом море
Jack94,
Код
DoReloadCharacterToLocation("SentJons_town","reload","reload1");//SentJons_town - id локации, reload - имя группы локаторов, reload1 - имя локатора, куда поместить персонажа


Сообщение отредактировал korsar01 - Суббота, 17.06.2017, 08:17
Jack94Дата: Суббота, 17.06.2017, 13:01 | Сообщение # 436
Матрос
Группа: Пират
Сообщений: 21
Награды: 2
Репутация: 2
Статус: В открытом море
korsar01, уже не надо, я решил не связываться больше с корсарами, уроков нормальных нету. Лучше не тратить время на это.
EBNДата: Суббота, 17.06.2017, 17:27 | Сообщение # 437
Пороховая обезьяна
Группа: Корсар
Сообщений: 14
Награды: 0
Репутация: 7
Статус: В открытом море
Цитата Jack94 ()
korsar01, уже не надо, я решил не связываться больше с корсарами, уроков нормальных нету. Лучше не тратить время на это.

Уроков более чем достаточно, необходимо лишь для минимума проштудировать вопросник. Например, как можно было найти функцию телепорта персонажа в локу палубы? Вспомнить квест из игры, где встречается телепорт, пройти, и в program посмотреть код. Тем более, что код хорошо прокомментирован.
Jack94Дата: Суббота, 17.06.2017, 18:50 | Сообщение # 438
Матрос
Группа: Пират
Сообщений: 21
Награды: 2
Репутация: 2
Статус: В открытом море
Я бы не сказал что достаточно.

Сообщение отредактировал Jack94 - Воскресенье, 18.06.2017, 08:05
korsar01Дата: Воскресенье, 18.06.2017, 09:57 | Сообщение # 439
Мичман
Группа: Корсар
Сообщений: 186
Награды: 6
Репутация: 46
Статус: В открытом море
Jack94, Есть тема специальная "Чего не хватает разделу". Туда и можно написать, какие хотелось бы увидеть уроки.
Цитата Jack94 ()
уроков нормальных нету
А вот тут не согласен, уроков полно, просто видимо кому-то лень разбираться. Например, как переместить ГГ, обсуждалось уже много раз. Если изучить все уроки, можно понять, как устроена игра, дальше в общем-то и без уроков можно будет разобраться в чем-то.
Jack94Дата: Воскресенье, 18.06.2017, 11:20 | Сообщение # 440
Матрос
Группа: Пират
Сообщений: 21
Награды: 2
Репутация: 2
Статус: В открытом море
korsar01, это бесполезно, особенно если учесть запрет обсуждения скриптов, и то что администрация и им подобные заняты лишь своим аддоном, который уже какой год не может выйти.

Сообщение отредактировал Jack94 - Воскресенье, 18.06.2017, 15:48
Форум » Ад-доны для игр серии Корсары » FAQ по модам - "Сделай мод сам" » Кодинг квестов (Рассмотрим написание квестов)
Поиск:

Copyright Pirates-Life.Ru © 2008-2024


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