Классный квест !
!!! серверная часть HF, структура у серваков может отличатся !!!
Пример: 1) тупо копипастим в те же директории те же файлы/папки, и те же квест_строки:
\GameServer\data\scripts\quests\_624_TheFinestIngredientsPart1.java
переименовываем в
\GameServer\data\scripts\quests\_16000_SkillOfBooks.java (в моём случае)
\GameServer\data\html-ru\quests\_624_TheFinestIngredientsPart1\
переименовываем папку в
\GameServer\data\html-ru\quests\_16000_SkillOfBooks\
(копируем со всеми файлами, файлы в папке не переименовываем, вообще пока не трогаем)
в папке system клиента редактируем QuestName-ru.dat, тупо копируем все строки нужного
нам квеста. В моём случае это квест 624, вставляем их в самый конец и меняем:
ID квеста с 624 на 16000,
расположение НПС который будет выдовать квест,
ID стартового НПС (в моём случае НПС_32169),
ну можно для шика и флажки, квестовой локи и НПС выставить.
Рис.1, 2
https://yadi.sk/i/-lg0xf4F3a8si4
https://yadi.sk/i/Oj2LsyFf3a8skf
Скрыть
2) открываем файл _16000_SkillOfBooks.java и редактируем четыре строчки:
с public class _624_TheFinestIngredientsPart1 extends Quest implements ScriptFile {
на public class _16000_SkillOfBooks extends Quest implements ScriptFile {
с private static int JEREMY = 31521;
на private static int Mila = 32169;
с public _624_TheFinestIngredientsPart1() {
на public _16000_SkillOfBooks() {
с addStartNpc(JEREMY);
на addStartNpc(Mila);
3) Важно !!! перед манипуляциями с серверными библиотеками, с начало их за бекапить.
Открываем scripts.jar архиватором, из папки quests вытаскиваем:
_624_TheFinestIngredientsPart1.class
и сразу переименовываем в
_16000_SkillOfBooks.class
Рис.3
https://yadi.sk/i/oMjZFLW13a8spY
Скрыть
4) Открываем _16000_SkillOfBooks.class, меняем константу пути к папке нашего квеста,
для шика и имя НПСа
!!! не путать со ссылками на константу, все ссылки на константу заменятся сами !!!
Рис.4
https://yadi.sk/i/hErnIkt63a8srA
Скрыть
На вкладке Methods меняем ID стартового НПСа (формат числа: HEX), у которого
будем брать/сдавать квест.
Рис.5
https://yadi.sk/i/41VllSk73a8ssF
Скрыть
Сохраняем изменения в _16000_SkillOfBooks.class.
Запихиваем обратно в ту же папку тем же архиватором.
5) Теперь идём в папку \GameServer\data\html-ru\quests\_16000_SkillOfBooks\
и меняем линки в диалогах с НПС:
с [Quest _624_TheFinestIngredientsPart1 jeremy_q0624_0104.htm|Сказать, что Вы поможете.]
на [Quest _16000_SkillOfBooks jeremy_q0624_0104.htm|Сказать, что Вы поможете.]
с [Quest _624_TheFinestIngredientsPart1 jeremy_q0624_0201.htm|"Вот, пожалуйста."]
на [Quest _16000_SkillOfBooks jeremy_q0624_0201.htm|"Вот, пожалуйста."]
Базовое представление, как к любому НПС привязать один или множество квестов, если
квестов у НПС два и более, то вместо квестового диалога сначала будет список квестов,
из которого можно выбрать нужный.
Рис.6, 7, 8, 9, 10
https://yadi.sk/i/7MIToHGL3a8sw9
https://yadi.sk/i/gfZbN0UT3a8sxJ
https://yadi.sk/i/0BgtL5Kk3a8sya
https://yadi.sk/i/esA-zdOx3a8t2J
https://yadi.sk/i/joiOaZeI3a8t3C
Скрыть
Т.е. можно попросту взять шаблон любого квеста переписать идентификаторы/ссылки и
получить полноценно рабочий квест на любом НПС, и после всех манипуляций переходим
к марафету диалогов, квестовых вещей, шансов дропа, количества, мобов/ПНСов.