YTDB

YTDB (http://ytdb.ru/index.php)
-   Корзина / Trash can (http://ytdb.ru/forumdisplay.php?f=21)
-   -   [Quest 9663] The Kessel Run (http://ytdb.ru/showthread.php?t=12804)

Ravie 04.11.2012 12:52

[Quest 9663] The Kessel Run
 
Задание Путь Кессела:
Не засчитывается киллкредит из-за того, что не появляется госсип меню...
Проверил таблицы conditions, gossip_scripts - везде всё правильно указано.
В чем же дело?
Mangos Rev. 12214
Scriptdev2 Rev. 2737

NeatElves 04.11.2012 14:11

В обработке условий госсипов если их больше двух.) Возможно надо указывать, что условие если взят квест 9663 и выполнен 9544

Ravie 04.11.2012 15:29

Кстати, у НПС засчитывается киллкредит, хотя и нету госсипа.

NeatElves 04.11.2012 15:45

Как нет ??? О_О
А 7370 кому принадлежит ????

Ravie 04.11.2012 16:03

Я имею в виду, что при взятии и прохождении квеста госсип не появляется

NeatElves 04.11.2012 16:08

Какой именно ?? У нпц стоит экстрафлаг 2048, что значит - нет срабатывания киллкредита при простом нажатии на этого нпц; есть госсип, есть госсип_скрипт(не опцион). При нажатии на нпц, судя по вашим словам, идет зачет, значит штатно отрабатывает госсип_скрипт 7370, что автоматом означает вывод текста 9040.

Не путайте госсип_меню и госсип_меню_опции.

Ravie 04.11.2012 16:18

Вложений: 1
Извините, не сразу заметил, какой текст там написан...
То есть Экзарх Менелаус работает правильно

NeatElves 04.11.2012 16:24

Ну и ??

Проснитесь пожалуйста...

Все правильно, не надо ничего в меню нажимать, текст прочитайте просто.)))

Если нет квеста, текст такой:
Цитата:

Взгляни на Экзодар, $gюный:юная:r; |3-6($r). Трудно представить, что мы пережили такую катастрофу.$B$B*Менелаус вздыхает.*$B$BПророчество говорит нам, что именно здесь мы узнаем нашу судьбу. Многие годы мы пытались убежать от безумия Пылающего Легиона... и здесь мы наконец-то остановимся.$B$BХватит бегать… Я готов к смерти.
При взятом квесте текст со скрина и идет автоматический киллкредит, КАК И НА ОФФ СЕРВЕРЕ.

Ravie 04.11.2012 17:41

Фуф...=)
Код:

INSERT INTO `conditions` (`condition_entry`, `type`, `value1`) VALUES ('1797', '1', '31973');
INSERT INTO `conditions` (`condition_entry`, `type`, `value1`, `value2`) VALUES ('1798', '-1', '388','1797');
UPDATE `gossip_menu` SET `cond_2`='1', `cond_2_val_1`='31973', `condition_id`='1798' WHERE (`entry`='7399') AND (`text_id`='9038') AND (`script_id`='17');
UPDATE `gossip_menu` SET `cond_2`='1', `cond_2_val_1`='31973', `condition_id`='1798' WHERE (`entry`='7434') AND (`text_id`='9039') AND (`script_id`='7434');

Второе условие это аура маунта...

NeatElves 04.11.2012 19:42

Чуть не то, квест можно и на грифоне сдать.))
Я имел ввиду, что если у нпц больше 2 госсипменю по текстам, а не по опциям:
Пример нпц Адмирал:
1 текст - всегда
2 текст - если выполнен квест 9544
3 текст - если взят квест 9663
вот тут то и затык в обработке, ядро видит, что игрок выполнил квест 9544 и подходит 2 текст, но нам нужен 3-й текст, а как ядру пояснить, что условия-то оба подходят, вот и надо скорее всего как-то это выделять, например:
1 текст - всегда
2 текст - если выполнен квест 9544
3 текст - если взят квест 9663 и игрок не выполнял или выполнял квест 9544(но тут по уровням видно, что игрок квест 9544 берет раньше)

Ravie 04.11.2012 20:04

Квест 9544 нельзя использовать - забронирован. В принципе и этот метод не хаковый и работает:
Код:

INSERT INTO `conditions` (`condition_entry`, `type`, `value1`) VALUES ('1797', '22', '9666');
INSERT INTO `conditions` (`condition_entry`, `type`, `value1`, `value2`) VALUES ('1798', '-1', '388','1797');
UPDATE `gossip_menu` SET `cond_2`='22', `cond_2_val_1`='9666', `condition_id`='1798' WHERE (`entry`='7399') AND (`text_id`='9038') AND (`script_id`='17');
UPDATE `gossip_menu` SET `cond_2`='22', `cond_2_val_1`='9666', `condition_id`='1798' WHERE (`entry`='7434') AND (`text_id`='9039') AND (`script_id`='7434');

Если игрок имеет в списке заданий 9663 и не проходил 9666...

NeatElves 04.11.2012 20:18

В мангосе есть такое понятие кондиции, как -3 - не выполнено первое условие.)

А почему нельзя 9544 ??

Ravie 04.11.2012 20:29

Ну до цели можно дойти разными способами=)
А нельзя, потому что 1062 - Duplicate entry '8-9544-0' for key 'unique_conditions' (389 кондиция - совпадение по уник. ключам я так понял)

NeatElves 04.11.2012 20:31

Так зачем 2-й раз заливать то, что есть в базе ??
Можно увидеть вашу наработку, так сказать в целом, всю, с ошибками ?

И да, поля cond_Х, cond_Х_val_Х больше не надо заполнять, они уже не используются вообще.)

Ravie 04.11.2012 20:33

Все, что делал, выложено...
P.S.: А я то думал, зачем дублировать одно и то же в conditions и gossip_menu =)

NeatElves 04.11.2012 22:36

Будет время и сервер - проверю, идея понятна, лепить следующий в цепочке...

Взял спецом триал и качнул на оффе до 10 сейчас, вообще непонятно, квесты у адмирала и вождя не выполнял, так вот при выполнении Кессела, у этих нпц даже госсипов не видно, висит текст своего квеста для взятия и идет киллкредит по Кесселу, видимо перемудрили, потому что на клизме текст был(но там я их квесты ранее выполнил).))

NeatElves 06.11.2012 18:50

Взял перса нового, качнул на квестах, стал проверять)
1. Не выполнял задания у нпц Одиссея, текст и кредит есть.
2. Выполнил задание 9506 у нпц Одиссея, текст и кредит есть.
3. Выполнил задание 9506 - 9537 у нпц Одиссея, текста и кредита нет.
Печальный итог, видимо в обработке ядра - если в списке кондиций есть 2 условия, то сортировка по последнему..))

Код:

REPLACE INTO `conditions` (`condition_entry`, `type`, `value1`, `value2`) VALUES
(1797, 22, 9666, 0),(1798, -1, 388, 1797);
UPDATE `gossip_menu` SET `condition_id`=1798 WHERE `entry`=7399 AND `text_id`=9038;
UPDATE `gossip_menu` SET `condition_id`=1798 WHERE `entry`=7434 AND `text_id`=9039;



Текущее время: 17:52. Часовой пояс GMT +4.

YTDB - MaNGOS DataBase