Назад

Настройка квестового окна (Renewal клиент)

Автор: ??????? ????: Дата: 07.06.2011

-Для начала поясню что же вообще это такое "Квестовое окно".
Квестовое окно появилось в Renewal клиентах и активируется в игре сочетанием клавиш Alt+U. В нём мы можем увидеть информацию о полученном квесте, а также весь список квестов, к которым мы приступили.
По умолчанию в клиентах квестовое окно настроено довольно криво и большинство квестов толком не отображается, так вот для тех, кто хочет улучшить свой сервер(а точнее клиент) красивой, правильной, а главное использующей все возможности работой квестового окна и предназначен этот гайд.

Итак, приступим!
[list]
[*]Первое что нам предстоит это определиться с квестом.
Квестом, который мы будем настраивать в квестовом окне может быть любой стандартный квест, а также любой придуманный вами сюжет,ивент или квест.
Для того чтобы привязать квест к квестовому окну нам понядобятся следующие команды в скрипте самого квеста:
- setquest
- completequest
- erasequest
- changequest
- checkquest
- showevent

Покажу на примере собственного квеста на зимний шарфик как это выглядит:

man_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 - цель номер 1
100 - количество целей номер 1 которых нужно нам убить
1333 - цель номер 2
25 - количество целей номер 2 которых нужно нам убить
1865 - цель номер 3
3 - количество целей номер 3 которых нужно нам убить
"Winter Scarf" - название квеста

После того как всё тут сделали идём в папку с клиентом data\questid2display.txt

[*]data\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
Хочется также отметить что розовый фон рисунка как должно быть будет невидимым в игре. Таким образом для отображения квеста в списке я использовал рисунок кастомного головного убора с розовым фоном.
[*] и, наконец-то, после всей проделанной работы, мы можем насладиться результатами:
[/list]

P.S. Огромная благодарность за советы следующим людям:
Heler
Starrk
Anafem


[right]Для всех поклонников самой лучшей в мире игры - Ragnarok Onkine ^_^
С уважением Хитрюга Джэк (aka Barumank)[/right]

Автор: : Дата: 01.01.1970