Популярный пост Карласон Опубликовано 28 января, 2012 Популярный пост Жалоба Поделиться Опубликовано 28 января, 2012 BY oldwolf-Для начала поясню что же вообще это такое "Квестовое окно".Квестовое окно появилось в Renewal клиентах и активируется в игре сочетанием клавиш Alt+U. В нём мы можем увидеть информацию о полученном квесте, а также весь список квестов, к которым мы приступили.По умолчанию в клиентах квестовое окно настроено довольно криво и большинство квестов толком не отображается, так вот для тех, кто хочет улучшить свой сервер(а точнее клиент) красивой, правильной, а главное использующей все возможности работой квестового окна и предназначен этот гайд.Итак, приступим!Первое что нам предстоит это определиться с квестом.Квестом, который мы будем настраивать в квестовом окне может быть любой стандартный квест, а также любой придуманный вами сюжет,ивент или квест.Для того чтобы привязать квест к квестовому окну нам понядобятся следующие команды в скрипте самого квеста:- setquest- completequest- erasequest- changequest- checkquest- showeventПокажу на примере собственного квеста на зимний шарфик как это выглядит:CODEman_in01,72,189,4 script Джоннатан 713,{ if(countitem(1019)>99) goto NoCold; mes "[ ^0065DFДжоннатан^000000 ]"; mes "Бррррр!!! Как же холодно!"; mes "Даже печка не согревает."; next; mes "[ ^0065DFДжоннатан^000000 ]"; mes "О, а вы чего так легко одеты?"; switch(select("Мне и так отлично","Было бы чем утеплиться...")){ case 1: mes "[ ^0065DFДжоннатан^000000 ]"; mes "Ну это вы зря."; mes "На улице -35, а тут около нуля..."; next; mes "[ ^0065DFДжоннатан^000000 ]"; mes "Если замёрзли-грейтесь сколько угодно."; close; case 2: mes "[ ^0065DFДжоннатан^000000 ]"; mes "хм...Я могу вам в этом помочь, но и вы тогда помогите мне."; next; mes "Чем могу я помочь?"; next; mes "[ ^0065DFДжоннатан^000000 ]"; mes "Огонь в печах почти угас, по этому нужно принести дрова."; next; mes "[ ^0065DFДжоннатан^000000 ]"; mes "принесите мне 100 поленьев (TRUNK) "; mes "Так вы окажите мне очень большую услугу, потому что"; mes "я не могу пока покинуть свой пост."; next; mes "[ ^0065DFДжоннатан^000000 ]"; mes "Я должен содержать этот дом в тепле."; next; mes "[ ^0065DFДжоннатан^000000 ]"; mes "Не задерживайтесь, огонь уже угасает."; setquest 61001; close;}NoCold: mes "[ ^0065DFДжоннатан^000000 ]"; mes "давайте скорее сюда эти поленья."; mes "Ещё бы чуть-чуть и печи погасли."; delitem 1019,100; next; mes "[ ^0065DFДжоннатан^000000 ]"; mes "Уф... как же всё таки угнетают эти морозы."; mes "Совсем забыл, вас же надо одеть потеплее!"; next; mes "[ ^0065DFДжоннатан^000000 ]"; mes "Вот, возьмите этот тёплый вязаный шарф."; mes "Он согреет вас в любой холод."; getitem 9310,1; erasequest 61001; close;}На примере нам видно что в строчках setquest 61001; и erasequest 61001; мы сначала присоединяем скрипт квеста к квестовому окну, и затем убираем этот квест из списка. Притом 61001 это порядковый номер квеста - советую вам начинать именно с номера 61001 и идти дальше по возрастающей, чтобы не закрыть своим творчеством уже существующие номера стандартных квестов.После того как вы присвоили своему квесту порядковый номер и командами setquest/erasequest обозначили начало и окончание квеста в квестовом окошке, приступаем к настройке самого окошка.заходим на нашем сервере в .../db/quest_db.txt.Тут мы видим список квестов такого типа 61001,0,1776,100,1333,25,1865,3,"Winter Scarf" (естественно строчки с квестом 61001 у вас пока нет - не ищите её)Сразу поясню что тут у нас выставляется61001 - это порядковый номер квеста0 - временной лимит за который нужно выполнить квест1776 - цель номер 1100 - количество целей номер 1 которых нужно нам убить1333 - цель номер 225 - количество целей номер 2 которых нужно нам убить1865 - цель номер 33 - количество целей номер 3 которых нужно нам убить"Winter Scarf" - название квестаПосле того как всё тут сделали идём в папку с клиентом data\questid2display.txtdata\questid2display.txtТут также есть описание квестов, но уже немного в другом формате61001#Winter Scarf#beanie_skull#img_22#Убей всё что движется в радиусе километра!#И собери 20 Nine Tails, 10 Yarn, 10 Soft Silk, 20 Sea-otter Fur, 1 Spool#61001 - это порядковый номер квестаWinter Scarf - название квестаbeanie_skull - название мини-рисунка, который отображается в списке квестовimg_22 - название рисунка который отображается в самом квестовом окне(83x83 пикселя)Убей всё что движется в радиусе километра! - суть квестаИ собери 20 Nine Tails, 10 Yarn, 10 Soft Silk, 20 Sea-otter Fur, 1 Spool - требуемый лут/условиеРисунки для квестов (которые мы заранее приготовили) необходимо поместить в папку .../data/texture/АЇАъАОЕНЖдАМЅє/item/ Формат рисунков *.bmp Хочется также отметить что розовый фон рисунка как должно быть будет невидимым в игре. Таким образом для отображения квеста в списке я использовал рисунок кастомного головного убора с розовым фоном.и, наконец-то, после всей проделанной работы, мы можем насладиться результатами:(IMG:http://i016.radikal.ru/1107/cc/ea5d0eee94b2.jpg) -Для начала поясню что же вообще это такое "Квестовое окно".Квестовое окно появилось в Renewal клиентах и активируется в игре сочетанием клавиш Alt+U. В нём мы можем увидеть информацию о полученном квесте, а также весь список квестов, к которым мы приступили.По умолчанию в клиентах квестовое окно настроено довольно криво и большинство квестов толком не отображается, так вот для тех, кто хочет улучшить свой сервер(а точнее клиент) красивой, правильной, а главное использующей все возможности работой квестового окна и предназначен этот гайд.Итак, приступим!Первое что нам предстоит это определиться с квестом.Квестом, который мы будем настраивать в квестовом окне может быть любой стандартный квест, а также любой придуманный вами сюжет,ивент или квест.Для того чтобы привязать квест к квестовому окну нам понядобятся следующие команды в скрипте самого квеста:- setquest- completequest- erasequest- changequest- checkquest- showeventПокажу на примере собственного квеста на зимний шарфик как это выглядит:CODEman_in01,72,189,4 script Джоннатан 713,{ if(countitem(1019)>99) goto NoCold; mes "[ ^0065DFДжоннатан^000000 ]"; mes "Бррррр!!! Как же холодно!"; mes "Даже печка не согревает."; next; mes "[ ^0065DFДжоннатан^000000 ]"; mes "О, а вы чего так легко одеты?"; switch(select("Мне и так отлично","Было бы чем утеплиться...")){ case 1: mes "[ ^0065DFДжоннатан^000000 ]"; mes "Ну это вы зря."; mes "На улице -35, а тут около нуля..."; next; mes "[ ^0065DFДжоннатан^000000 ]"; mes "Если замёрзли-грейтесь сколько угодно."; close; case 2: mes "[ ^0065DFДжоннатан^000000 ]"; mes "хм...Я могу вам в этом помочь, но и вы тогда помогите мне."; next; mes "Чем могу я помочь?"; next; mes "[ ^0065DFДжоннатан^000000 ]"; mes "Огонь в печах почти угас, по этому нужно принести дрова."; next; mes "[ ^0065DFДжоннатан^000000 ]"; mes "принесите мне 100 поленьев (TRUNK) "; mes "Так вы окажите мне очень большую услугу, потому что"; mes "я не могу пока покинуть свой пост."; next; mes "[ ^0065DFДжоннатан^000000 ]"; mes "Я должен содержать этот дом в тепле."; next; mes "[ ^0065DFДжоннатан^000000 ]"; mes "Не задерживайтесь, огонь уже угасает."; setquest 61001; close;}NoCold: mes "[ ^0065DFДжоннатан^000000 ]"; mes "давайте скорее сюда эти поленья."; mes "Ещё бы чуть-чуть и печи погасли."; delitem 1019,100; next; mes "[ ^0065DFДжоннатан^000000 ]"; mes "Уф... как же всё таки угнетают эти морозы."; mes "Совсем забыл, вас же надо одеть потеплее!"; next; mes "[ ^0065DFДжоннатан^000000 ]"; mes "Вот, возьмите этот тёплый вязаный шарф."; mes "Он согреет вас в любой холод."; getitem 9310,1; erasequest 61001; close;}На примере нам видно что в строчках setquest 61001; и erasequest 61001; мы сначала присоединяем скрипт квеста к квестовому окну, и затем убираем этот квест из списка. Притом 61001 это порядковый номер квеста - советую вам начинать именно с номера 61001 и идти дальше по возрастающей, чтобы не закрыть своим творчеством уже существующие номера стандартных квестов.После того как вы присвоили своему квесту порядковый номер и командами setquest/erasequest обозначили начало и окончание квеста в квестовом окошке, приступаем к настройке самого окошка.заходим на нашем сервере в .../db/quest_db.txt.Тут мы видим список квестов такого типа 61001,0,1776,100,1333,25,1865,3,"Winter Scarf" (естественно строчки с квестом 61001 у вас пока нет - не ищите её)Сразу поясню что тут у нас выставляется61001 - это порядковый номер квеста0 - временной лимит за который нужно выполнить квест1776 - цель номер 1100 - количество целей номер 1 которых нужно нам убить1333 - цель номер 225 - количество целей номер 2 которых нужно нам убить1865 - цель номер 33 - количество целей номер 3 которых нужно нам убить"Winter Scarf" - название квестаПосле того как всё тут сделали идём в папку с клиентом data\questid2display.txtdata\questid2display.txtТут также есть описание квестов, но уже немного в другом формате61001#Winter Scarf#beanie_skull#img_22#Убей всё что движется в радиусе километра!#И собери 20 Nine Tails, 10 Yarn, 10 Soft Silk, 20 Sea-otter Fur, 1 Spool#61001 - это порядковый номер квестаWinter Scarf - название квестаbeanie_skull - название мини-рисунка, который отображается в списке квестовimg_22 - название рисунка который отображается в самом квестовом окне(83x83 пикселя)Убей всё что движется в радиусе километра! - суть квестаИ собери 20 Nine Tails, 10 Yarn, 10 Soft Silk, 20 Sea-otter Fur, 1 Spool - требуемый лут/условиеРисунки для квестов (которые мы заранее приготовили) необходимо поместить в папку .../data/texture/АЇАъАОЕНЖдАМЅє/item/ Формат рисунков *.bmp Хочется также отметить что розовый фон рисунка как должно быть будет невидимым в игре. Таким образом для отображения квеста в списке я использовал рисунок кастомного головного убора с розовым фоном.и, наконец-то, после всей проделанной работы, мы можем насладиться результатами:(IMG:http://i016.radikal.ru/1107/cc/ea5d0eee94b2.jpg) 23 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
GmDen Опубликовано 26 июля, 2012 Жалоба Поделиться Опубликовано 26 июля, 2012 Гайд хороший но зачем повторятся. Ссылка на комментарий Поделиться на другие сайты Поделиться
Satanetsky Опубликовано 17 сентября, 2014 Жалоба Поделиться Опубликовано 17 сентября, 2014 (изменено) Спасибо за гайд. А можно описать поподробней как пользоваться командами:- completequest- checkquest- showeventИбо в примере показаны только -setquest и -erasequest. Интуитивно я догадываюсь зачем они, но лучше знать точное значение. Изменено 19 сентября, 2014 пользователем Satanetsky Ссылка на комментарий Поделиться на другие сайты Поделиться
Fizik Опубликовано 19 сентября, 2015 Жалоба Поделиться Опубликовано 19 сентября, 2015 Интересно, если у вас есть 100 поленьев вы сдаёте кв) проверка понятна)) А если Квест не на лут а на монстра?! Как его тагда сдавать?) вот напримерМой кв на монстров) Нужно убить 1000 сиром, я кв выполнил, а как мне его сдавать?) Ссылка на комментарий Поделиться на другие сайты Поделиться
ocelote Опубликовано 19 сентября, 2015 Жалоба Поделиться Опубликовано 19 сентября, 2015 Переменные Ссылка на комментарий Поделиться на другие сайты Поделиться
Fizik Опубликовано 19 сентября, 2015 Жалоба Поделиться Опубликовано 19 сентября, 2015 ПеременныеНу и как мне сделать проверку на 1000 мобов?) Ссылка на комментарий Поделиться на другие сайты Поделиться
ocelote Опубликовано 19 сентября, 2015 Жалоба Поделиться Опубликовано 19 сентября, 2015 Шутишь что ли? -.-OnNPCKillEvent:if(killedrid == id_moba) {mob_killed ++;if(mob_killed == 1000) {kvest zavershen!}}end; 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Fizik Опубликовано 19 сентября, 2015 Жалоба Поделиться Опубликовано 19 сентября, 2015 (изменено) Шутишь что ли? -.-OnNPCKillEvent:if(killedrid == id_moba) {mob_killed ++;if(mob_killed == 1000) {kvest zavershen!}}end;туплю)) спасибопостойка а причём тут OnNPCKillEvent???? разве эта команда не для ивентов? Изменено 19 сентября, 2015 пользователем Fizik Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения