diff --git a/modules/azerothshard/data/sql/db-extra/hearthstone_criteria_credits.sql b/modules/azerothshard/data/sql/db-extra/hearthstone_criteria_credits.sql new file mode 100644 index 0000000000..79dea2f477 --- /dev/null +++ b/modules/azerothshard/data/sql/db-extra/hearthstone_criteria_credits.sql @@ -0,0 +1,59 @@ +DROP TABLE IF EXISTS `hearthstone_criteria_credits`; +CREATE TABLE `hearthstone_criteria_credits`( + `type` INT(10) NOT NULL DEFAULT 0 COMMENT 'criteria type (column 3)', + `data0` INT(10) DEFAULT 0 COMMENT 'column 4', + `data1` INT(10) DEFAULT 0 COMMENT 'column 5', + `creature` BIGINT(10) DEFAULT 0 COMMENT 'linked creature', + `comment` TEXT +); + +-- honorable kill at area 31, areatable.db, count + +INSERT INTO `hearthstone_criteria_credits` (`type`, `data0`, `data1`, `creature`,`comment`) VALUES +-- Bg wins +(1, 30, 1, 110001, "Alterac Valley Victory"), +(1, 489, 1, 110002, "Warsong Gulch Victory"), +(1, 529, 1, 110003, "Arathi Basin Victory"), +(1, 566, 1, 110004, "Eye of the Storm Victory"), +(1, 607, 1, 110005, "Strand of the Ancients Victory"), +(1, 628, 1, 110006, "Isle of Conquest Victory"), +-- Bg Objectives +(30, 122, 1, 110007, "Arathi Basin Flag Capture "), +(30, 42, 1, 110008, "Warsong Gulch Flag Capture"), +(30, 44, 1, 110009, "Warsong Gulch Flag Recover"), +(30, 183, 1, 110010, "Eye of the Storm Flag Capture"), +(30, 63, 1, 110011, "Alterac Valley Graveyard Capture"), +(30, 64, 1, 110012, "Alterac Valley Tower Defense"), +(30, 61, 1, 110013, "Alterac Valley Tower Capture"), +(30, 123, 1, 110014, "Arathi Basin Base Defense"), +(30, 65, 1, 110015, "Alterac Valley Graveyard Capture"), -- need test!! not sure +(30, 245, 1, 110016, "Isle of Conquest Base Capture"), -- not sure, maybe this is defend +(30, 246, 1, 110017, "Isle of Conquest Base Defend"), -- not sure, maybe this is capture +-- Kill Class +(52, 1, 1, 110018, "Kill a Warrior"), +(52, 2, 1, 110019, "Kill a Paladin"), +(52, 3, 1, 110020, "Kill a Hunter"), +(52, 4, 1, 110021, "Kill a Rogue"), +(52, 5, 1, 110022, "Kill a Priest"), +(52, 6, 1, 110023, "Kill a Death Knight"), +(52, 7, 1, 110024, "Kill a Shaman"), +(52, 8, 1, 110025, "Kill a Mage"), +(52, 9, 1, 110026, "Kill a Warlock"), +(52, 11, 1, 110027, "Kill a Druid"), +-- Kill Race +(53, 1, 1, 110028, "Kill a Human"), +(53, 2, 1, 110029, "Kill an Orc"), +(53, 3, 1, 110030, "Kill a Dwarf"), +(53, 4, 1, 110031, "Kill a Night Elf"), +(53, 5, 1, 110032, "Kill an Undead"), +(53, 6, 1, 110033, "Kill a Tauren"), +(53, 7, 1, 110034, "Kill a Gnome"), +(53, 8, 1, 110035, "Kill a Troll"), +(53, 10, 1, 110036, "Kill a Blood Elf"), +(53, 11, 1, 110037, "Kill a Draenei"), +-- Get Kills +(56, 0, 1, 110038, "Get a Killing Blow"), +(113, 0, 1, 110039, "Earn Honorable Kill"), +-- Win Duel +(76, 0, 1, 110040, "Win Duel") +; \ No newline at end of file diff --git a/modules/azerothshard/data/sql/db-world/hearthstone/02_pve_quests.sql b/modules/azerothshard/data/sql/db-world/hearthstone/02_pve_quests.sql new file mode 100644 index 0000000000..be2d4fdb55 --- /dev/null +++ b/modules/azerothshard/data/sql/db-world/hearthstone/02_pve_quests.sql @@ -0,0 +1,84 @@ +DELETE FROM quest_template WHERE id >= 100000 AND id <= 100100; +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100000','2','3840','4290','Uccidi Illidan','Han\'al vuole che tu uccida Illidan ancora una volta.','Uccidi Illidan','Ritorna da Han\'al','22917','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100001','2','3845','4290','Uccidi Kael\'Thas','Han\'al vuole che tu uccida Kael\'Thas ancora una volta.','Uccidi Kael\'Thas','Ritorna da Han\'al','19622','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100002','2','3845','4290','Uccidi Solarian','Han\'al vuole che tu uccida Solarian ancora una volta.','Uccidi Solarian','Ritorna da Han\'al','18805','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100003','2','3607','4290','Uccidi Morogrim','Han\'al vuole che tu uccida Morogrim ancora una volta.','Uccidi Morogrim','Ritorna da Han\'al','21213','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100004','2','3607','4290','Uccidi Lady Vashj','Han\'al vuole che tu uccida Lady Vashj ancora una volta.','Uccidi Lady Vashj','Ritorna da Han\'al','21212','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100005','2','3607','4290','Uccidi Leotheras','Han\'al vuole che tu uccida Leotheras ancora una volta.','Uccidi Leotheras','Ritorna da Han\'al','21215','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100006','2','3607','4290','Uccidi The Lurker Below','Han\'al vuole che tu uccida The Lurker Below ancora una volta.','Uccidi The Lurker Below','Ritorna da Han\'al','21217','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100007','2','3836','4290','Uccidi Magtheridon','Han\'al vuole che tu uccida Magtheridon ancora una volta.','Uccidi Magtheridon','Ritorna da Han\'al','17257','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100008','2','3923','4290','Uccidi Gruul','Han\'al vuole che tu uccida Gruul ancora una volta.','Uccidi Gruul','Ritorna da Han\'al','19044','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100009','2','3805','4290','Uccidi Zul\'Jin','Han\'al vuole che tu uccida Zul\'Jin ancora una volta.','Uccidi Zul\'Jin','Ritorna da Han\'al','23863','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100010','2','3805','4290','Uccidi Malacrass','Han\'al vuole che tu uccida Malacrass ancora una volta.','Uccidi Malacrass','Ritorna da Han\'al','24239','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100011','2','3805','4290','Uccidi Jan\'Alai','Han\'al vuole che tu uccida Jan\'Alai ancora una volta.','Uccidi Jan\'Alai','Ritorna da Han\'al','23578','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100012','2','3805','4290','Uccidi Halazzi','Han\'al vuole che tu uccida Halazzi ancora una volta.','Uccidi Halazzi','Ritorna da Han\'al','23577','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100013','2','3457','4290','Uccidi Moroes','Han\'al vuole che tu uccida Moroes ancora una volta.','Uccidi Moroes','Ritorna da Han\'al','15687','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100014','2','3457','4290','Uccidi Terestian','Han\'al vuole che tu uccida Terestian ancora una volta.','Uccidi Terestian','Ritorna da Han\'al','15688','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100015','2','3457','4290','Uccidi Netherspite','Han\'al vuole che tu uccida Netherspite ancora una volta.','Uccidi Netherspite','Ritorna da Han\'al','15689','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100016','2','3457','4290','Uccidi Nightbane','Han\'al vuole che tu uccida Nightbane ancora una volta.','Uccidi Nightbane','Ritorna da Han\'al','17225','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100017','2','3457','4290','Uccidi Prince Malchezaar','Han\'al vuole che tu uccida Prince Malchezaar ancora una volta.','Uccidi Prince Malchezaar','Ritorna da Han\'al','15690','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100018','2','616','4290','Uccidi Anetheron','Han\'al vuole che tu uccida Anetheron ancora una volta.','Uccidi Anetheron','Ritorna da Han\'al','17808','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100019','2','616','4290','Uccidi Azgalor','Han\'al vuole che tu uccida Azgalor ancora una volta.','Uccidi Azgalor','Ritorna da Han\'al','17842','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100020','2','616','4290','Uccidi Archimonde','Han\'al vuole che tu uccida Archimonde ancora una volta.','Uccidi Archimonde','Ritorna da Han\'al','17968','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100021','2','3840','4290','Uccidi Gurtogg','Han\'al vuole che tu uccida Gurtogg ancora una volta.','Uccidi Gurtogg','Ritorna da Han\'al','22948','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100022','2','3840','4290','Uccidi Shahraz','Han\'al vuole che tu uccida Shahraz ancora una volta.','Uccidi Shahraz','Ritorna da Han\'al','22947','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100023','2','3840','4290','Uccidi Teron','Han\'al vuole che tu uccida Teron ancora una volta.','Uccidi Teron','Ritorna da Han\'al','22871','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100024','2','4080','4290','Uccidi Felmyst','Han\'al vuole che tu uccida Felmyst ancora una volta.','Uccidi Felmyst','Ritorna da Han\'al','25038','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100025','2','4080','4290','Uccidi Kil\'Jaeden','Han\'al vuole che tu uccida Kil\'Jaeden ancora una volta.','Uccidi Kil\'Jaeden','Ritorna da Han\'al','25315','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100026','2','1977','4290','Uccidi Arlokk','Han\'al vuole che tu uccida Arlokk ancora una volta.','Uccidi Arlokk','Ritorna da Han\'al','14515','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100027','2','1977','4290','Uccidi Jin\'do','Han\'al vuole che tu uccida Jin\'do ancora una volta.','Uccidi Jin\'do','Ritorna da Han\'al','11380','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100028','2','1977','4290','Uccidi Hakkar','Han\'al vuole che tu uccida Hakkar ancora una volta.','Uccidi Hakkar','Ritorna da Han\'al','14834','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100029','2','1583','4290','Uccidi Gyth','Han\'al vuole che tu uccida Gyth ancora una volta.','Uccidi Gyth','Ritorna da Han\'al','10339','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100030','2','1583','4290','Uccidi The Beast','Han\'al vuole che tu uccida The Beast ancora una volta.','Uccidi The Beast','Ritorna da Han\'al','10430','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100031','2','1583','4290','Uccidi Lord Valthalak','Han\'al vuole che tu uccida Lord Valthalak ancora una volta.','Uccidi Lord Valthalak','Ritorna da Han\'al','16042','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100032','2','1583','4290','Uccidi Drakkisath','Han\'al vuole che tu uccida Drakkisath ancora una volta.','Uccidi Drakkisath','Ritorna da Han\'al','10363','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100033','2','3429','4290','Uccidi Ayamiss','Han\'al vuole che tu uccida Ayamiss ancora una volta.','Uccidi Ayamiss','Ritorna da Han\'al','15369','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100034','2','3429','4290','Uccidi Ossirian','Han\'al vuole che tu uccida Ossirian ancora una volta.','Uccidi Ossirian','Ritorna da Han\'al','15339','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100035','2','2717','4290','Uccidi Golemagg','Han\'al vuole che tu uccida Golemagg ancora una volta.','Uccidi Golemagg','Ritorna da Han\'al','11988','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100036','2','2717','4290','Uccidi Sulfuron Harbinger','Han\'al vuole che tu uccida Sulfuron Harbinger ancora una volta.','Uccidi Sulfuron Harbinger','Ritorna da Han\'al','12098','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100037','2','2717','4290','Uccidi Ragnaros','Han\'al vuole che tu uccida Ragnaros ancora una volta.','Uccidi Ragnaros','Ritorna da Han\'al','11502','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100038','2','2677','4290','Uccidi Ebonroc','Han\'al vuole che tu uccida Ebonroc ancora una volta.','Uccidi Ebonroc','Ritorna da Han\'al','14601','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100039','2','2677','4290','Uccidi Firemaw','Han\'al vuole che tu uccida Firemaw ancora una volta.','Uccidi Firemaw','Ritorna da Han\'al','11983','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100040','2','2677','4290','Uccidi Chromaggus','Han\'al vuole che tu uccida Chromaggus ancora una volta.','Uccidi Chromaggus','Ritorna da Han\'al','14020','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100041','2','2677','4290','Uccidi Nefarian','Han\'al vuole che tu uccida Nefarian ancora una volta.','Uccidi Nefarian','Ritorna da Han\'al','11583','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100042','2','3428','4290','Uccidi Princess Huhuran','Han\'al vuole che tu uccida Princess Huhuran ancora una volta.','Uccidi Princess Huhuran','Ritorna da Han\'al','15509','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100043','2','3428','4290','Uccidi i Twin Emperor','Han\'al vuole che tu uccida i Twin Emperor ancora una volta.','Uccidi i Twin Emperor','Ritorna da Han\'al','15276','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100044','2','3428','4290','Uccidi Viscidus','Han\'al vuole che tu uccida Viscidus ancora una volta.','Uccidi Viscidus','Ritorna da Han\'al','15299','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100045','2','3428','4290','Uccidi Ouro','Han\'al vuole che tu uccida Ouro ancora una volta.','Uccidi Ouro','Ritorna da Han\'al','15517','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100046','2','3428','4290','Uccidi C\'Thun','Han\'al vuole che tu uccida C\'Thun ancora una volta.','Uccidi C\'Thun','Ritorna da Han\'al','15727','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100047','2','2557','4290','Uccidi Immol\'thar','Han\'al vuole che tu uccida Immol\'thar ancora una volta.','Uccidi Immol\'thar','Ritorna da Han\'al','11496','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100048','2','2557','4290','Uccidi Tortheldrin','Han\'al vuole che tu uccida Tortheldrin ancora una volta.','Uccidi Tortheldrin','Ritorna da Han\'al','11486','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100049','2','2557','4290','Uccidi Gordok','Han\'al vuole che tu uccida Gordok ancora una volta.','Uccidi Gordok','Ritorna da Han\'al','11501','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100050','2','2557','4290','Uccidi Alzzin','Han\'al vuole che tu uccida Alzzin ancora una volta.','Uccidi Alzzin','Ritorna da Han\'al','11492','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100051','2','2057','4290','Uccidi Ras Frostwhisper','Han\'al vuole che tu uccida Ras Frostwhisper ancora una volta.','Uccidi Ras Frostwhisper','Ritorna da Han\'al','10508','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100052','2','2057','4290','Uccidi Darkmaster Gandling','Han\'al vuole che tu uccida Darkmaster Gandling ancora una volta.','Uccidi Darkmaster Gandling','Ritorna da Han\'al','1853','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100053','2','722','4290','Uccidi Amnennar the Cold','Han\'al vuole che tu uccida Amnennar the Cold ancora una volta.','Uccidi Amnennar the Cold','Ritorna da Han\'al','7358','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100054','2','2100','4290','Uccidi Celebras','Han\'al vuole che tu uccida Celebras ancora una volta.','Uccidi Celebras','Ritorna da Han\'al','12225','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100055','2','2100','4290','Uccidi Theradras','Han\'al vuole che tu uccida Theradras ancora una volta.','Uccidi Theradras','Ritorna da Han\'al','12201','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100056','2','719','4290','Uccidi Lorgus Jett','Han\'al vuole che tu uccida Lorgus Jett ancora una volta.','Uccidi Lorgus Jett','Ritorna da Han\'al','12902','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100057','2','719','4290','Uccidi Old Serra\'kis','Han\'al vuole che tu uccida Old Serra\'kis ancora una volta.','Uccidi Old Serra\'kis','Ritorna da Han\'al','4830','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100058','2','719','4290','Uccidi Aku\'mai','Han\'al vuole che tu uccida Aku\'mai ancora una volta.','Uccidi Aku\'mai','Ritorna da Han\'al','4829','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100059','2','978','4290','Uccidi Nekrum Gutchewer','Han\'al vuole che tu uccida Nekrum Gutchewer ancora una volta.','Uccidi Nekrum Gutchewer','Ritorna da Han\'al','7796','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100060','2','978','4290','Uccidi Ukorz Sandscalp','Han\'al vuole che tu uccida Ukorz Sandscalp ancora una volta.','Uccidi Ukorz Sandscalp','Ritorna da Han\'al','7267','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100061','2','2017','4290','Uccidi Balnazzar','Han\'al vuole che tu uccida Balnazzar ancora una volta.','Uccidi Balnazzar','Ritorna da Han\'al','10813','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100062','2','2017','4290','Uccidi Titus Rivendare','Han\'al vuole che tu uccida Titus Rivendare ancora una volta.','Uccidi Titus Rivendare','Ritorna da Han\'al','10440','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100063','2','1584','4290','Uccidi Thaurissan','Han\'al vuole che tu uccida Thaurissan ancora una volta.','Uccidi Thaurissan','Ritorna da Han\'al','9019','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100064','2','1584','4290','Uccidi Flamelash','Han\'al vuole che tu uccida Flamelash ancora una volta.','Uccidi Flamelash','Ritorna da Han\'al','9156','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100065','2','1477','4290','Uccidi Jammal\'an','Han\'al vuole che tu uccida Jammal\'an ancora una volta.','Uccidi Jammal\'an','Ritorna da Han\'al','5710','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100066','2','1477','4290','Uccidi Shade of Eranikus','Han\'al vuole che tu uccida Shade of Eranikus ancora una volta.','Uccidi Shade of Eranikus','Ritorna da Han\'al','5709','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100067','2','1583','4290','Uccidi Mother Smolderweb','Han\'al vuole che tu uccida Mother Smolderweb ancora una volta.','Uccidi Mother Smolderweb','Ritorna da Han\'al','10596','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100068','2','1583','4290','Uccidi Overlord Wyrmthalak','Han\'al vuole che tu uccida Overlord Wyrmthalak ancora una volta.','Uccidi Overlord Wyrmthalak','Ritorna da Han\'al','9568','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100069','2','3848','4290','Uccidi Harbinger Skyriss','Han\'al vuole che tu uccida Harbinger Skyriss ancora una volta.','Uccidi Harbinger Skyriss','Ritorna da Han\'al','20912','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100070','2','3715','4290','Uccidi Kalithresh','Han\'al vuole che tu uccida Kalithresh ancora una volta.','Uccidi Kalithresh','Ritorna da Han\'al','17798','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100071','2','3789','4290','Uccidi Murmur','Han\'al vuole che tu uccida Murmur ancora una volta.','Uccidi Murmur','Ritorna da Han\'al','18708','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100072','2','3714','4290','Uccidi Kargath Bladefist','Han\'al vuole che tu uccida Kargath Bladefist ancora una volta.','Uccidi Kargath Bladefist','Ritorna da Han\'al','16808','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100073','2','1941','4290','Uccidi Aeonus','Han\'al vuole che tu uccida Aeonus ancora una volta.','Uccidi Aeonus','Ritorna da Han\'al','17881','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100074','2','4131','4290','Uccidi Priestess Delrissa','Han\'al vuole che tu uccida Priestess Delrissa ancora una volta.','Uccidi Priestess Delrissa','Ritorna da Han\'al','24560','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100075','2','4100','4290','Uccidi Infinite Corruptor','Han\'al vuole che tu uccida Infinite Corruptor completando l\'evento dell\'instance.','Uccidi Infinite Corruptor','Ritorna da Han\'al','32273','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100076','2','4228','4290','Uccidi Ley-Guardian Eregos','Han\'al vuole che tu uccida Ley-Guardian Eregosancora una volta.','Uccidi Ley-Guardian Eregos','Ritorna da Han\'al','27656','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100077','2','4416','4290','Uccidi Gal\'darah','Han\'al vuole che tu uccida Gal\'darah ancora una volta.','Uccidi Gal\'darah','Ritorna da Han\'al','29306','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100078','2','4196','4290','Uccidi Tharon\'ja','Han\'al vuole che tu uccida Tharon\'ja ancora una volta.','Uccidi Tharon\'ja','Ritorna da Han\'al','26632','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100079','2','4494','4290','Uccidi Volazj','Han\'al vuole che tu uccida Volazj ancora una volta.','Uccidi Volazj','Ritorna da Han\'al','29311','1'); +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`) VALUES('100080','2','2159','4290','Uccidi Onyxia','Han\'al vuole che tu uccida Onyxia ancora una volta.','Uccidi Onyxia','Ritorna da Han\'al','10184','1'); + +UPDATE quest_template SET `level` = 80, minlevel = 80, maxlevel = 80, SpecialFlags = 1, OfferRewardText = "Bravo, $N", RequestItemsText = "Si, $N?" WHERE id >= 100000 AND id <= 100100; \ No newline at end of file diff --git a/modules/azerothshard/data/sql/db-world/hearthstone/08_pvp_quests.sql b/modules/azerothshard/data/sql/db-world/hearthstone/08_pvp_quests.sql new file mode 100644 index 0000000000..849b1a61b3 --- /dev/null +++ b/modules/azerothshard/data/sql/db-world/hearthstone/08_pvp_quests.sql @@ -0,0 +1,91 @@ +DELETE FROM creature_template WHERE entry >= 110000 AND entry <= 120000; +INSERT INTO creature_template (entry, killcredit1, modelid1, `name`, minlevel, maxlevel, faction, npcflag, unit_flags, unit_flags2, dynamicflags, flags_extra) VALUES +-- (110000, 110000, 17519, "Template", 1, 1, 14, 0, 0, 0, 0, 0), +(110001, 110001, 17519, "Alterac Valley Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110002, 110002, 17519, "Warsong Gulch Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110003, 110003, 17519, "Arathi Basin Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110004, 110004, 17519, "Eye of the Storm Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110005, 110005, 17519, "Strand of the Ancients Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110006, 110006, 17519, "Isle of Conquest Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110007, 110007, 17519, "Arathi Basin Flag Capture Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110008, 110008, 17519, "Warsong Gulch Flag Capture Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110009, 110009, 17519, "Warsong Gulch Flag Recover Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110010, 110010, 17519, "Eye of the Storm Flag Capture Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110011, 110011, 17519, "Alterac Valley Graveyard Capture Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110012, 110012, 17519, "Alterac Valley Tower Defense Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110013, 110013, 17519, "Alterac Valley Tower Capture Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110014, 110014, 17519, "Arathi Basin Base Defense Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110015, 110015, 17519, "Alterac Valley Graveyard Capture Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110016, 110016, 17519, "Isle of Conquest Base Capture Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110017, 110017, 17519, "Isle of Conquest Base Defend Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110018, 110018, 17519, "Kill a Warrior Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110019, 110019, 17519, "Kill a Paladin Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110020, 110020, 17519, "Kill a Hunter Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110021, 110021, 17519, "Kill a Rogue Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110022, 110022, 17519, "Kill a Priest Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110023, 110023, 17519, "Kill a Death Knight Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110024, 110024, 17519, "Kill a Shaman Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110025, 110025, 17519, "Kill a Mage Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110026, 110026, 17519, "Kill a Warlock Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110027, 110027, 17519, "Kill a Druid Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110028, 110028, 17519, "Kill a Human Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110029, 110029, 17519, "Kill an Orc Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110030, 110030, 17519, "Kill a Dwarf Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110031, 110031, 17519, "Kill a Night Elf Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110032, 110032, 17519, "Kill an Undead Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110033, 110033, 17519, "Kill a Tauren Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110034, 110034, 17519, "Kill a Gnome Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110035, 110035, 17519, "Kill a Troll Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110036, 110036, 17519, "Kill a Blood Elf Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110037, 110037, 17519, "Kill a Draenei Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110038, 110038, 17519, "Get a Killing Blow Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110039, 110039, 17519, "Earn Honorable Kill Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0), +(110040, 110040, 17519, "Win Duel Kill Credit", 1, 1, 14, 0, 0, 0, 0, 0) +; + + +DELETE FROM quest_template WHERE id >= 110000 AND id <= 110100; +INSERT INTO `quest_template` (`id`, `Type`, `ZoneOrSort`, `Flags`, `Title`, `Objectives`, `Details`, `CompletedText`, `RequiredNpcOrGo1`, `RequiredNpcOrGoCount1`, ObjectiveText1) VALUES +('110000','2','3840','12482','Vinci Alterac Valley','Vinci Alterac Valley','Vinci Alterac Valley','Ritorna da Han\'al','110001','1', "Vinci Alterac Valley"), +('110001','2','3840','12482','Vinci Warsong Gulch','Vinci Warsong Gulch','Vinci Warsong Gulch','Ritorna da Han\'al','110002','1', "Vinci Warsong Gulch"), +(110002, '2','3840','12482', 'Vinci Arathi Basin', 'Vinci Arathi Basin', 'Vinci Arathi Basin', 'Ritorna da Han\'al', 110003, 1, 'Vinci Arathi Basin'), +(110003, '2','3840','12482', 'Vinci Eye of the Storm', 'Vinci Eye of the Storm', 'Vinci Eye of the Storm', 'Ritorna da Han\'al', 110004, 1, 'Vinci Eye of the Storm'), +(110004, '2','3840','12482', 'Vinci Strand of the Ancients', 'Vinci Strand of the Ancients', 'Vinci Strand of the Ancients', 'Ritorna da Han\'al', 110005, 1, 'Vinci Strand of the Ancients'), +(110005, '2','3840','12482', 'Vinci Isle of Conquest', 'Vinci Isle of Conquest', 'Vinci Isle of Conquest', 'Ritorna da Han\'al', 110006, 1, 'Vinci Isle of Conquest'), +(110006, '2','3840','12482', 'Arathi Basin Flag Capture', 'Arathi Basin Flag Capture', 'Arathi Basin Flag Capture', 'Ritorna da Han\'al', 110007, 1, 'Arathi Basin Flag Capture'), +(110007, '2','3840','12482', 'Warsong Gulch Flag Capture', 'Warsong Gulch Flag Capture', 'Warsong Gulch Flag Capture', 'Ritorna da Han\'al', 110008, 1, 'Warsong Gulch Flag Capture'), +(110008, '2','3840','12482', 'Warsong Gulch Flag Recover', 'Warsong Gulch Flag Recover', 'Warsong Gulch Flag Recover', 'Ritorna da Han\'al', 110009, 1, 'Warsong Gulch Flag Recover'), +(110009, '2','3840','12482', 'Eye of the Storm Flag Capture', 'Eye of the Storm Flag Capture', 'Eye of the Storm Flag Capture', 'Ritorna da Han\'al', 110010, 1, 'Eye of the Storm Flag Capture'), +(110010, '2','3840','12482', 'Alterac Valley Graveyard Capture', 'Alterac Valley Graveyard Capture', 'Alterac Valley Graveyard Capture', 'Ritorna da Han\'al', 110011, 1, 'Alterac Valley Graveyard Capture'), +(110011, '2','3840','12482', 'Alterac Valley Tower Defense', 'Alterac Valley Tower Defense', 'Alterac Valley Tower Defense', 'Ritorna da Han\'al', 110012, 1, 'Alterac Valley Tower Defense'), +(110012, '2','3840','12482', 'Alterac Valley Tower Capture', 'Alterac Valley Tower Capture', 'Alterac Valley Tower Capture', 'Ritorna da Han\'al', 110013, 1, 'Alterac Valley Tower Capture'), +(110013, '2','3840','12482', 'Arathi Basin Base Defense', 'Arathi Basin Base Defense', 'Arathi Basin Base Defense', 'Ritorna da Han\'al', 110014, 1, 'Arathi Basin Base Defense'), +(110014, '2','3840','12482', 'Alterac Valley Graveyard Capture', 'Alterac Valley Graveyard Capture', 'Alterac Valley Graveyard Capture', 'Ritorna da Han\'al', 110015, 1, 'Alterac Valley Graveyard Capture'), +(110015, '2','3840','12482', 'Isle of Conquest Base Capture', 'Isle of Conquest Base Capture', 'Isle of Conquest Base Capture', 'Ritorna da Han\'al', 110016, 1, 'Isle of Conquest Base Capture'), +(110016, '2','3840','12482', 'Isle of Conquest Base Defend', 'Isle of Conquest Base Defend', 'Isle of Conquest Base Defend', 'Ritorna da Han\'al', 110017, 1, 'Isle of Conquest Base Defend'), +(110017, '2','3840','12482', 'Kill a Warrior', 'Kill a Warrior', 'Kill a Warrior', 'Ritorna da Han\'al', 110018, 1, 'Kill a Warrior'), +(110018, '2','3840','12482', 'Kill a Paladin', 'Kill a Paladin', 'Kill a Paladin', 'Ritorna da Han\'al', 110019, 1, 'Kill a Paladin'), +(110019, '2','3840','12482', 'Kill a Hunter', 'Kill a Hunter', 'Kill a Hunter', 'Ritorna da Han\'al', 110020, 1, 'Kill a Hunter'), +(110020, '2','3840','12482', 'Kill a Rogue', 'Kill a Rogue', 'Kill a Rogue', 'Ritorna da Han\'al', 110021, 1, 'Kill a Rogue'), +(110021, '2','3840','12482', 'Kill a Priest', 'Kill a Priest', 'Kill a Priest', 'Ritorna da Han\'al', 110022, 1, 'Kill a Priest'), +(110022, '2','3840','12482', 'Kill a Death Knight', 'Kill a Death Knight', 'Kill a Death Knight', 'Ritorna da Han\'al', 110023, 1, 'Kill a Death Knight'), +(110023, '2','3840','12482', 'Kill a Shaman', 'Kill a Shaman', 'Kill a Shaman', 'Ritorna da Han\'al', 110024, 1, 'Kill a Shaman'), +(110024, '2','3840','12482', 'Kill a Mage', 'Kill a Mage', 'Kill a Mage', 'Ritorna da Han\'al', 110025, 1, 'Kill a Mage'), +(110025, '2','3840','12482', 'Kill a Warlock', 'Kill a Warlock', 'Kill a Warlock', 'Ritorna da Han\'al', 110026, 1, 'Kill a Warlock'), +(110026, '2','3840','12482', 'Kill a Druid', 'Kill a Druid', 'Kill a Druid', 'Ritorna da Han\'al', 110027, 1, 'Kill a Druid'), +(110027, '2','3840','12482', 'Kill a Human', 'Kill a Human', 'Kill a Human', 'Ritorna da Han\'al', 110028, 1, 'Kill a Human'), +(110028, '2','3840','12482', 'Kill an Orc', 'Kill an Orc', 'Kill an Orc', 'Ritorna da Han\'al', 110029, 1, 'Kill an Orc'), +(110029, '2','3840','12482', 'Kill a Dwarf', 'Kill a Dwarf', 'Kill a Dwarf', 'Ritorna da Han\'al', 110030, 1, 'Kill a Dwarf'), +(110030, '2','3840','12482', 'Kill a Night Elf', 'Kill a Night Elf', 'Kill a Night Elf', 'Ritorna da Han\'al', 110031, 1, 'Kill a Night Elf'), +(110031, '2','3840','12482', 'Kill an Undead', 'Kill an Undead', 'Kill an Undead', 'Ritorna da Han\'al', 110032, 1, 'Kill an Undead'), +(110032, '2','3840','12482', 'Kill a Tauren', 'Kill a Tauren', 'Kill a Tauren', 'Ritorna da Han\'al', 110033, 1, 'Kill a Tauren'), +(110033, '2','3840','12482', 'Kill a Gnome', 'Kill a Gnome', 'Kill a Gnome', 'Ritorna da Han\'al', 110034, 1, 'Kill a Gnome'), +(110034, '2','3840','12482', 'Kill a Troll', 'Kill a Troll', 'Kill a Troll', 'Ritorna da Han\'al', 110035, 1, 'Kill a Troll'), +(110035, '2','3840','12482', 'Kill a Blood Elf', 'Kill a Blood Elf', 'Kill a Blood Elf', 'Ritorna da Han\'al', 110036, 1, 'Kill a Blood Elf'), +(110036, '2','3840','12482', 'Kill a Draenei', 'Kill a Draenei', 'Kill a Draenei', 'Ritorna da Han\'al', 110037, 1, 'Kill a Draenei'), +(110037, '2','3840','12482', 'Get a Killing Blow', 'Get a Killing Blow', 'Get a Killing Blow', 'Ritorna da Han\'al', 110038, 1, 'Get a Killing Blow'), +(110038, '2','3840','12482', 'Earn Honorable Kill', 'Earn Honorable Kill', 'Earn Honorable Kill', 'Ritorna da Han\'al', 110039, 1, 'Earn Honorable Kill'), +(110039, '2','3840','12482', 'Win Duel', 'Win Duel', 'Win Duel', 'Ritorna da Han\'al', 110040, 1, 'Win Duel') +; + +UPDATE quest_template SET `level` = 80, minlevel = 80, maxlevel = 80, SpecialFlags = 1, OfferRewardText = "Bravo, $N", RequestItemsText = "Si, $N?" WHERE id >= 110000 AND id <= 110100; \ No newline at end of file diff --git a/modules/azerothshard/src/server/game/AzthPlayer.cpp b/modules/azerothshard/src/server/game/AzthPlayer.cpp index ae24d0278c..76888459df 100644 --- a/modules/azerothshard/src/server/game/AzthPlayer.cpp +++ b/modules/azerothshard/src/server/game/AzthPlayer.cpp @@ -45,4 +45,69 @@ uint8 AzthPlayer::getGroupLevel() { return groupLevel; } +// Send a kill credit, skipping the normal checks on raid/battleground and pvp quests. +void AzthPlayer::ForceKilledMonsterCredit(uint32 entry, uint64 guid) +{ + uint16 addkillcount = 1; + uint32 real_entry = entry; + if (guid) + { + Creature* killed = player->GetMap()->GetCreature(guid); + if (killed && killed->GetEntry()) + real_entry = killed->GetEntry(); + } + + player->StartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_CREATURE, real_entry); // MUST BE CALLED FIRST + player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE, real_entry, addkillcount, guid ? player->GetMap()->GetCreature(guid) : NULL); + + for (uint8 i = 0; i < MAX_QUEST_LOG_SIZE; ++i) + { + uint32 questid = player->GetQuestSlotQuestId(i); + if (!questid) + continue; + + Quest const* qInfo = sObjectMgr->GetQuestTemplate(questid); + if (!qInfo) + continue; + + QuestStatusData& q_status = player->m_QuestStatus[questid]; + if (q_status.Status == QUEST_STATUS_INCOMPLETE) + { + if (qInfo->HasSpecialFlag(QUEST_SPECIAL_FLAGS_KILL) /*&& !qInfo->HasSpecialFlag(QUEST_SPECIAL_FLAGS_CAST)*/) + { + for (uint8 j = 0; j < QUEST_OBJECTIVES_COUNT; ++j) + { + // skip GO activate objective or none + if (qInfo->RequiredNpcOrGo[j] <= 0) + continue; + + uint32 reqkill = qInfo->RequiredNpcOrGo[j]; + + if (reqkill == real_entry) + { + uint32 reqkillcount = qInfo->RequiredNpcOrGoCount[j]; + uint16 curkillcount = q_status.CreatureOrGOCount[j]; + if (curkillcount < reqkillcount) + { + q_status.CreatureOrGOCount[j] = curkillcount + addkillcount; + + player->m_QuestStatusSave[questid] = true; + + player->SendQuestUpdateAddCreatureOrGo(qInfo, guid, j, curkillcount, addkillcount); + } + if (player->CanCompleteQuest(questid)) + player->CompleteQuest(questid); + else + player->AdditionalSavingAddMask(ADDITIONAL_SAVING_QUEST_STATUS); + + // same objective target can be in many active quests, but not in 2 objectives for single quest (code optimization). + break; + } + } + } + } + } +} + + AzthPlayer::~AzthPlayer() {} diff --git a/modules/azerothshard/src/server/game/AzthPlayer.h b/modules/azerothshard/src/server/game/AzthPlayer.h index 3eb1ad4744..b49f3bb9d7 100644 --- a/modules/azerothshard/src/server/game/AzthPlayer.h +++ b/modules/azerothshard/src/server/game/AzthPlayer.h @@ -46,6 +46,8 @@ class AzthPlayer { uint8 getGroupLevel(); + void ForceKilledMonsterCredit(uint32 entry, uint64 guid); + private: Player *player; uint32 arena1v1Info[7]; // ARENA_TEAM_END diff --git a/modules/azerothshard/src/server/plugins/AzthPlayerPlg.cpp b/modules/azerothshard/src/server/plugins/AzthPlayerPlg.cpp index f0fe522e19..5c52325de0 100644 --- a/modules/azerothshard/src/server/plugins/AzthPlayerPlg.cpp +++ b/modules/azerothshard/src/server/plugins/AzthPlayerPlg.cpp @@ -11,6 +11,7 @@ #include "AchievementMgr.h" #include "AzthGroupMgr.h" #include "AzthPlayer.h" +#include "azth_custom_hearthstone_mode.cpp" enum achievementStatsType { ACHIEVEMENT_TYPE, @@ -72,6 +73,9 @@ public: AzthPlayer::AzthAchiData& it = player->azthPlayer->m_completed_criteria_map[criteria->ID]; it.level = player->getLevel(); it.levelParty = player->azthPlayer->getGroupLevel(); + + // hearthstone mode + sendQuestCredit(player, criteria); } // Following 2 functions save our temporary maps inside the db diff --git a/modules/azerothshard/src/server/plugins/Hearthstone/azth_custom_hearthstone_mode.cpp b/modules/azerothshard/src/server/plugins/Hearthstone/azth_custom_hearthstone_mode.cpp index caa704815f..963cf436d1 100644 --- a/modules/azerothshard/src/server/plugins/Hearthstone/azth_custom_hearthstone_mode.cpp +++ b/modules/azerothshard/src/server/plugins/Hearthstone/azth_custom_hearthstone_mode.cpp @@ -516,6 +516,161 @@ public: } }; +int returnData0(AchievementCriteriaEntry const* criteria) +{ + int value = -1; + switch (criteria->requiredType) + { + case 0: + value = criteria->kill_creature.creatureID; + case 1: + value = criteria->win_bg.bgMapID; + case 8: + value = criteria->complete_achievement.linkedAchievement; + break; + case 30: + value = criteria->bg_objective.objectiveId; + case 31: + value = criteria->honorable_kill_at_area.areaID; + break; + case 32: // win arena - no use of column 4 + break; + case 33: + value = criteria->play_arena.mapID; + break; + case 37: // win rated arena unsed column 4 + break; + case 38: + value = criteria->highest_team_rating.teamtype; + break; + case 39: + // MISSING !! + break; + case 52: + value = criteria->hk_class.classID; + break; + case 53: + value = criteria->hk_race.raceID; + break; + case 56: // unused + break; + case 76: // unused + break; + case 113: //unused + break; + + default: + value = -1; + + } + return value; +} + +int returnData1(AchievementCriteriaEntry const* criteria) +{ + int value = -1; + switch (criteria->requiredType) + { + case 0: + value = criteria->kill_creature.creatureCount; + case 1: + value = criteria->win_bg.winCount; + case 8: // no column 5 + break; + case 30: + value = criteria->bg_objective.completeCount; + case 31: + value = criteria->honorable_kill_at_area.killCount; + break; + case 32: // win arena - no use of column 4 + break; + case 33: // unused + break; + case 37: // win rated arena unsed column 4 + value = criteria->win_rated_arena.count; + break; + case 38: //unused + break; + case 39: + // MISSING !! + break; + case 52: + value = criteria->hk_class.count; + break; + case 53: + value = criteria->hk_race.count; + break; + case 56: + value = criteria->get_killing_blow.killCount; + break; + case 76: + value = criteria->win_duel.duelCount; + break; + case 113: + // MISSING !! + break; + + default: + value = -1; + + } + return value; +} + +int SUPPORTED_CRITERIA[] = { 0,1,8,30,31,32,33,37,38,39,52,53,56,76,113 }; +int SUPPORTED_CRITERIA_NUMBER = 15; + +bool isInArray(int val){ + int i; + for (i = 0; i < SUPPORTED_CRITERIA_NUMBER; i++) { + if (SUPPORTED_CRITERIA[i] == val) + return true; + } + return false; +} + + +void sendQuestCredit(Player *player, AchievementCriteriaEntry const* criteria) +{ + uint32 entry = 0; + + if (!isInArray(criteria->requiredType)) + return; + + std::string part1 = "SELECT data0, data1, creature FROM hearthstone_criteria_credits WHERE type = "; + std::string part2 = " LIMIT 0, 5000; "; + char type[10]; + snprintf(type, 10, "%d", criteria->requiredType); + std::string temp = part1 + type + part2; + const char *query = temp.c_str(); + + QueryResult result = ExtraDatabase.Query(query); + + if (result.null()) + entry = 0; + else + { + do + { + Field* fields = result->Fetch(); + uint32 data0 = fields[0].GetUInt32(); + uint32 data1 = fields[1].GetUInt32(); + uint32 creature = fields[2].GetUInt32(); + + if ((data0 == returnData0(criteria)) || (data1 == returnData1(criteria))) + { + entry = creature; + break; + } + + } while (result->NextRow()); + } + + + if (entry) + player->azthPlayer->ForceKilledMonsterCredit(entry, NULL); +} + void AddSC_hearthstone() { new npc_han_al(); diff --git a/modules/azerothshard/src/server/plugins/Hearthstone/azth_custom_new_vendor.cpp b/modules/azerothshard/src/server/plugins/Hearthstone/azth_custom_new_vendor.cpp index 4bf0fe19f7..0565a9e7a8 100644 --- a/modules/azerothshard/src/server/plugins/Hearthstone/azth_custom_new_vendor.cpp +++ b/modules/azerothshard/src/server/plugins/Hearthstone/azth_custom_new_vendor.cpp @@ -101,4 +101,4 @@ void AzthSendListInventory(uint64 vendorGuid, WorldSession * session, uint32 ext data.put(countPos, count); session->SendPacket(&data); -} +} \ No newline at end of file