HearthStone mode

This commit is contained in:
Gargarensis
2016-07-16 12:30:04 +02:00
committed by Yehonal
parent c6a489091b
commit 15a3af5dff
8 changed files with 25289 additions and 2 deletions
Binary file not shown.
+66
View File
@@ -0,0 +1,66 @@
-- FULL `creature_template` of entry 100000
DELETE FROM `creature_template` WHERE (entry = 100000);
INSERT INTO `creature_template` (`entry`, `difficulty_entry_1`, `difficulty_entry_2`, `difficulty_entry_3`, `KillCredit1`, `KillCredit2`, `modelid1`, `modelid2`, `modelid3`, `modelid4`, `name`, `subname`, `IconName`, `gossip_menu_id`, `minlevel`, `maxlevel`, `exp`, `faction`, `npcflag`, `speed_walk`, `speed_run`, `scale`, `rank`, `dmgschool`, `BaseAttackTime`, `RangeAttackTime`, `unit_class`, `unit_flags`, `unit_flags2`, `dynamicflags`, `family`, `trainer_type`, `trainer_spell`, `trainer_class`, `trainer_race`, `type`, `type_flags`, `lootid`, `pickpocketloot`, `skinloot`, `resistance1`, `resistance2`, `resistance3`, `resistance4`, `resistance5`, `resistance6`, `spell1`, `spell2`, `spell3`, `spell4`, `spell5`, `spell6`, `spell7`, `spell8`, `PetSpellDataId`, `VehicleId`, `mingold`, `maxgold`, `AIName`, `MovementType`, `InhabitType`, `HoverHeight`, `Health_mod`, `Mana_mod`, `Armor_mod`, `RacialLeader`, `movementId`, `RegenHealth`, `mechanic_immune_mask`, `flags_extra`, `ScriptName`, `VerifiedBuild`) VALUES
(100000, 0, 0, 0, 0, 0, 23055, 0, 0, 0, 'Han\'al', 'Master Lorekeeper', NULL, 30000, 83, 83, 0, 2007, 3, 1.1, 1.5, 1.2, 1, 0, 0, 0, 8, 33536, 2048, 0, 0, 0, 0, 0, 0, 7, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'SmartAI', 0, 3, 0, 10, 10, 1, 0, 0, 1, 0, 2, 'npc_han_al', 12341);
-- VENDORS
-- NEUTRAL
DELETE FROM `creature_template` WHERE (entry = 100002);
INSERT INTO `creature_template` (`entry`, `difficulty_entry_1`, `difficulty_entry_2`, `difficulty_entry_3`, `KillCredit1`, `KillCredit2`, `modelid1`, `modelid2`, `modelid3`, `modelid4`, `name`, `subname`, `IconName`, `gossip_menu_id`, `minlevel`, `maxlevel`, `exp`, `faction`, `npcflag`, `speed_walk`, `speed_run`, `scale`, `rank`, `dmgschool`, `BaseAttackTime`, `RangeAttackTime`, `unit_class`, `unit_flags`, `unit_flags2`, `dynamicflags`, `family`, `trainer_type`, `trainer_spell`, `trainer_class`, `trainer_race`, `type`, `type_flags`, `lootid`, `pickpocketloot`, `skinloot`, `resistance1`, `resistance2`, `resistance3`, `resistance4`, `resistance5`, `resistance6`, `spell1`, `spell2`, `spell3`, `spell4`, `spell5`, `spell6`, `spell7`, `spell8`, `PetSpellDataId`, `VehicleId`, `mingold`, `maxgold`, `AIName`, `MovementType`, `InhabitType`, `HoverHeight`, `Health_mod`, `Mana_mod`, `Armor_mod`, `RacialLeader`, `movementId`, `RegenHealth`, `mechanic_immune_mask`, `flags_extra`, `ScriptName`, `VerifiedBuild`) VALUES
(100002, 0, 0, 0, 0, 0, 22439, 0, 0, 0, 'Azth Neutral Vendor', 'AzerothShard', '', 0, 70, 70, 1, 35, 128, 1, 1.14286, 1, 0, 0, 2000, 2000, 1, 33555202, 2048, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 1, 1, 4, 1, 1, 0, 0, 1, 0, 128, '', 12340);
-- FRIENDLY
DELETE FROM `creature_template` WHERE (entry = 100003);
INSERT INTO `creature_template` (`entry`, `difficulty_entry_1`, `difficulty_entry_2`, `difficulty_entry_3`, `KillCredit1`, `KillCredit2`, `modelid1`, `modelid2`, `modelid3`, `modelid4`, `name`, `subname`, `IconName`, `gossip_menu_id`, `minlevel`, `maxlevel`, `exp`, `faction`, `npcflag`, `speed_walk`, `speed_run`, `scale`, `rank`, `dmgschool`, `BaseAttackTime`, `RangeAttackTime`, `unit_class`, `unit_flags`, `unit_flags2`, `dynamicflags`, `family`, `trainer_type`, `trainer_spell`, `trainer_class`, `trainer_race`, `type`, `type_flags`, `lootid`, `pickpocketloot`, `skinloot`, `resistance1`, `resistance2`, `resistance3`, `resistance4`, `resistance5`, `resistance6`, `spell1`, `spell2`, `spell3`, `spell4`, `spell5`, `spell6`, `spell7`, `spell8`, `PetSpellDataId`, `VehicleId`, `mingold`, `maxgold`, `AIName`, `MovementType`, `InhabitType`, `HoverHeight`, `Health_mod`, `Mana_mod`, `Armor_mod`, `RacialLeader`, `movementId`, `RegenHealth`, `mechanic_immune_mask`, `flags_extra`, `ScriptName`, `VerifiedBuild`) VALUES
(100003, 0, 0, 0, 0, 0, 22439, 0, 0, 0, 'Azth Friendly Vendor', 'AzerothShard', '', 0, 70, 70, 1, 35, 128, 1, 1.14286, 1, 0, 0, 2000, 2000, 1, 33555202, 2048, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 1, 1, 4, 1, 1, 0, 0, 1, 0, 128, '', 12340);
-- HONORED
DELETE FROM `creature_template` WHERE (entry = 100004);
INSERT INTO `creature_template` (`entry`, `difficulty_entry_1`, `difficulty_entry_2`, `difficulty_entry_3`, `KillCredit1`, `KillCredit2`, `modelid1`, `modelid2`, `modelid3`, `modelid4`, `name`, `subname`, `IconName`, `gossip_menu_id`, `minlevel`, `maxlevel`, `exp`, `faction`, `npcflag`, `speed_walk`, `speed_run`, `scale`, `rank`, `dmgschool`, `BaseAttackTime`, `RangeAttackTime`, `unit_class`, `unit_flags`, `unit_flags2`, `dynamicflags`, `family`, `trainer_type`, `trainer_spell`, `trainer_class`, `trainer_race`, `type`, `type_flags`, `lootid`, `pickpocketloot`, `skinloot`, `resistance1`, `resistance2`, `resistance3`, `resistance4`, `resistance5`, `resistance6`, `spell1`, `spell2`, `spell3`, `spell4`, `spell5`, `spell6`, `spell7`, `spell8`, `PetSpellDataId`, `VehicleId`, `mingold`, `maxgold`, `AIName`, `MovementType`, `InhabitType`, `HoverHeight`, `Health_mod`, `Mana_mod`, `Armor_mod`, `RacialLeader`, `movementId`, `RegenHealth`, `mechanic_immune_mask`, `flags_extra`, `ScriptName`, `VerifiedBuild`) VALUES
(100004, 0, 0, 0, 0, 0, 22439, 0, 0, 0, 'Azth Honored Vendor', 'AzerothShard', '', 0, 70, 70, 1, 35, 128, 1, 1.14286, 1, 0, 0, 2000, 2000, 1, 33555202, 2048, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 1, 1, 4, 1, 1, 0, 0, 1, 0, 128, '', 12340);
-- REVERED
DELETE FROM `creature_template` WHERE (entry = 100005);
INSERT INTO `creature_template` (`entry`, `difficulty_entry_1`, `difficulty_entry_2`, `difficulty_entry_3`, `KillCredit1`, `KillCredit2`, `modelid1`, `modelid2`, `modelid3`, `modelid4`, `name`, `subname`, `IconName`, `gossip_menu_id`, `minlevel`, `maxlevel`, `exp`, `faction`, `npcflag`, `speed_walk`, `speed_run`, `scale`, `rank`, `dmgschool`, `BaseAttackTime`, `RangeAttackTime`, `unit_class`, `unit_flags`, `unit_flags2`, `dynamicflags`, `family`, `trainer_type`, `trainer_spell`, `trainer_class`, `trainer_race`, `type`, `type_flags`, `lootid`, `pickpocketloot`, `skinloot`, `resistance1`, `resistance2`, `resistance3`, `resistance4`, `resistance5`, `resistance6`, `spell1`, `spell2`, `spell3`, `spell4`, `spell5`, `spell6`, `spell7`, `spell8`, `PetSpellDataId`, `VehicleId`, `mingold`, `maxgold`, `AIName`, `MovementType`, `InhabitType`, `HoverHeight`, `Health_mod`, `Mana_mod`, `Armor_mod`, `RacialLeader`, `movementId`, `RegenHealth`, `mechanic_immune_mask`, `flags_extra`, `ScriptName`, `VerifiedBuild`) VALUES
(100005, 0, 0, 0, 0, 0, 22439, 0, 0, 0, 'Azth Revered Vendor', 'AzerothShard', '', 0, 70, 70, 1, 35, 128, 1, 1.14286, 1, 0, 0, 2000, 2000, 1, 33555202, 2048, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 1, 1, 4, 1, 1, 0, 0, 1, 0, 128, '', 12340);
-- EXALTED
DELETE FROM `creature_template` WHERE (entry = 100006);
INSERT INTO `creature_template` (`entry`, `difficulty_entry_1`, `difficulty_entry_2`, `difficulty_entry_3`, `KillCredit1`, `KillCredit2`, `modelid1`, `modelid2`, `modelid3`, `modelid4`, `name`, `subname`, `IconName`, `gossip_menu_id`, `minlevel`, `maxlevel`, `exp`, `faction`, `npcflag`, `speed_walk`, `speed_run`, `scale`, `rank`, `dmgschool`, `BaseAttackTime`, `RangeAttackTime`, `unit_class`, `unit_flags`, `unit_flags2`, `dynamicflags`, `family`, `trainer_type`, `trainer_spell`, `trainer_class`, `trainer_race`, `type`, `type_flags`, `lootid`, `pickpocketloot`, `skinloot`, `resistance1`, `resistance2`, `resistance3`, `resistance4`, `resistance5`, `resistance6`, `spell1`, `spell2`, `spell3`, `spell4`, `spell5`, `spell6`, `spell7`, `spell8`, `PetSpellDataId`, `VehicleId`, `mingold`, `maxgold`, `AIName`, `MovementType`, `InhabitType`, `HoverHeight`, `Health_mod`, `Mana_mod`, `Armor_mod`, `RacialLeader`, `movementId`, `RegenHealth`, `mechanic_immune_mask`, `flags_extra`, `ScriptName`, `VerifiedBuild`) VALUES
(100006, 0, 0, 0, 0, 0, 22439, 0, 0, 0, 'Azth Exalted Vendor', 'AzerothShard', '', 0, 70, 70, 1, 35, 128, 1, 1.14286, 1, 0, 0, 2000, 2000, 1, 33555202, 2048, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 1, 1, 4, 1, 1, 0, 0, 1, 0, 128, '', 12340);
-- vendor
-- FULL `creature_template` of entry 100007
-- DELETE FROM `creature_template` WHERE (entry = 100007);
-- INSERT INTO `creature_template` (`entry`, `difficulty_entry_1`, `difficulty_entry_2`, `difficulty_entry_3`, `KillCredit1`, `KillCredit2`, `modelid1`, `modelid2`, `modelid3`, `modelid4`, `name`, `subname`, `IconName`, `gossip_menu_id`, `minlevel`, `maxlevel`, `exp`, `faction`, `npcflag`, `speed_walk`, `speed_run`, `scale`, `rank`, `dmgschool`, `BaseAttackTime`, `RangeAttackTime`, `unit_class`, `unit_flags`, `unit_flags2`, `dynamicflags`, `family`, `trainer_type`, `trainer_spell`, `trainer_class`, `trainer_race`, `type`, `type_flags`, `lootid`, `pickpocketloot`, `skinloot`, `resistance1`, `resistance2`, `resistance3`, `resistance4`, `resistance5`, `resistance6`, `spell1`, `spell2`, `spell3`, `spell4`, `spell5`, `spell6`, `spell7`, `spell8`, `PetSpellDataId`, `VehicleId`, `mingold`, `maxgold`, `AIName`, `MovementType`, `InhabitType`, `HoverHeight`, `Health_mod`, `Mana_mod`, `Armor_mod`, `RacialLeader`, `movementId`, `RegenHealth`, `mechanic_immune_mask`, `flags_extra`, `ScriptName`, `VerifiedBuild`) VALUES
-- (100007, 0, 0, 0, 0, 0, 19707, 0, 0, 0, 'Halduron Brightwing', 'Ranger General', NULL, 0, 70, 70, 1, 1602, 129, 1, 1.14286, 1, 1, 0, 2000, 2000, 2, 32832, 2048, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 1, 3, 1, 100, 8, 1, 0, 0, 1, 0, 0, 'npc_azth_vendor', 12340);
UPDATE creature_template SET resistance2 = 0 WHERE entry = 100002;
UPDATE creature_template SET resistance2 = 3000 WHERE entry = 100003;
UPDATE creature_template SET resistance2 = 6000 WHERE entry = 100004;
UPDATE creature_template SET resistance2 = 12000 WHERE entry = 100005;
UPDATE creature_template SET resistance2 = 21000 WHERE entry = 100006;
UPDATE creature_template SET `npcflag` = 129, `unit_flags` = 514, `type_flags` = 0, `flags_extra` = 0, scriptname = "npc_azth_vendor" WHERE entry IN (100002, 100003, 100004, 100005, 100006);
SELECT entry, resistance2 FROM creature_template WHERE entry >= 100002;
DELETE FROM npc_text WHERE ID IN (100000, 100001, 100002, 100003);
INSERT INTO npc_text (ID, text0_0, text0_1, lang0, Prob0, em0_0) VALUES
(100000, "È bello che tu voglia aiutarmi $N, la storia dev'essere scrupolosamente registrata... nulla deve andar perso!", 0, 1,100, 0),
(100001, "Hai già delle missioni da completare, ritorna quando sarai riuscito a portarle a termine o quando avrai rinunciato...\nNonostante il fallimento potrei avere ancora bisogno di te, $R", 0, 1,100, 0),
(100002, "Grazie del tuo aiuto, $C, per oggi mi hai aiutato a sufficienza!\nRitorna domani.", 0, 1,100, 0),
(100003, "Hai già molto lavoro da fare, $N. Non vorrei che ti affaticassi troppo... torna da me quando avrai concluso un po' del tuo lavoro.", 0, 1,100, 0);
UPDATE `item_template` SET `Flags` = 64, `ScriptName` = 'item_azth_hearthstone_loot_sack', stackable = 1, `spellid_1` = 36177, maxcount = 5 WHERE (entry = 32558);
-- DEBUG ONLY
DELETE FROM npc_vendor WHERE entry IN (100002, 100003, 100004, 100005, 100006, 100007);
INSERT INTO npc_vendor (entry, item, extendedcost) VALUES
(100002, 1388, 0),
(100003, 1159, 0),
(100004, 2132, 100010),
(100004, 5393, 100001),
(100005, 5581, 0),
(100006, 20839, 0),
(100007, 5393, 0);
File diff suppressed because it is too large Load Diff
+84
View File
@@ -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;
+2 -2
View File
@@ -1243,7 +1243,7 @@ void AddBattlegroundScripts()
/* This is where custom scripts' loading functions should be declared. */
//[AZTH]
void AddSC_hearthstone();
//[/AZTH]
#endif
@@ -1252,6 +1252,6 @@ void AddCustomScripts()
{
#ifdef SCRIPTS
/* This is where custom scripts should be added. */
AddSC_hearthstone();
#endif
}
+2
View File
@@ -10,6 +10,8 @@
set(scripts_STAT_SRCS
${scripts_STAT_SRCS}
Hearthstone/azth_custom_hearthstone_mode.cpp
Hearthstone/azth_custom_new_vendor.cpp
)
message(" -> Prepared: Custom")
@@ -0,0 +1,313 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "Player.h"
#include "WorldSession.h"
#include "azth_custom_new_vendor.cpp"
#include "WorldPacket.h"
#define GOSSIP_ITEM_GIVE_PVE_QUEST "Vorrei ricevere la mia missione PVE giornaliera."
#define GOSSIP_ITEM_GIVE_PVP_QUEST "Vorrei ricevere la mia missione PVP giornaliera."
#define GOSSIP_ITEM_GIVE_EXTRA_QUEST "Vorrei una missione extra!"
#define GOSSIP_ITEM_CHANGE_QUEST "Vorrei cambiare la mia missione." // unused
int BITMASK_PVE = 1;
int BITMASK_PVP = 2;
int BITMASK_EXTRA = 4;
int PVE_LOWER_RANGE = 100000;
int PVE_UPPER_RANGE = 100080;
int PVE_QUEST_NUMBER = 1;
int MAX_PVE_QUEST_NUMBER = 3;
int PVE_RANGE = PVE_UPPER_RANGE - PVE_LOWER_RANGE;
/*
int WHISPER_CHANCE = 50;
std::vector<std::string> whispersList =
{
"Uccidere --NAME--, non sarà facile... buona fortuna!",
"Povero --NAME--... la sua fine è segnata!",
"--NAME--? Sarà un gioco da ragazzi ucciderlo.",
"Buona fortuna!",
"--NAME-- deve morire!"
};*/
class npc_han_al : public CreatureScript
{
public:
npc_han_al() : CreatureScript("npc_han_al") { }
/*
void whisperPlayer(std::string creatureName, Player * player, Creature * creature)
{
double random = rand_chance();
if (random <= WHISPER_CHANCE)
{
int index = rand() % whispersList.size() - 1;
std::string whisperText = whispersList[index];
replaceAll(whisperText, "--NAME--", creatureName);
creature->Whisper(whisperText, LANG_UNIVERSAL, player, false);
}
}
void replaceAll(std::string& str, const std::string& from, const std::string& to) {
if (from.empty())
return;
size_t start_pos = 0;
while ((start_pos = str.find(from, start_pos)) != std::string::npos) {
str.replace(start_pos, from.length(), to);
start_pos += to.length();
}
}
*/
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
{
time_t t = time(NULL);
tm *lt = localtime(&t);
int seed = lt->tm_mday + lt->tm_mon + 1 + lt->tm_year + 1900;
srand(seed);
//int id = rand() % PVE_RANGE;
int id = PVE_LOWER_RANGE + (rand() % PVE_RANGE);
Quest const * questPve = sObjectMgr->GetQuestTemplate(id);
player->PlayerTalkClass->ClearMenus();
switch (action)
{
case GOSSIP_ACTION_INFO_DEF:
// uint16 id = (player->GetGUID().GetEntry() * id) % PVE_RANGE;
if (!questPve)
return false;
if (player->CanAddQuest(questPve, false) && player->CanTakeQuest(questPve, false))
{
player->AddQuest(questPve, NULL);
//CreatureTemplate const * objective = sObjectMgr->GetCreatureTemplate(questPve->RequiredNpcOrGo[0]);
//whisperPlayer(objective->Name, player, creature);
// simply close gossip or send something else?
player->PlayerTalkClass->SendCloseGossip();
}
break;
case GOSSIP_ACTION_INFO_DEF + 1:
break;
case GOSSIP_ACTION_INFO_DEF + 2:
break;
}
return true;
}
bool OnGossipHello(Player* player, Creature* creature) override
{
unsigned char bitmask = 0;
int gossip = 100000;
time_t t = time(NULL);
tm *lt = localtime(&t);
int seed = lt->tm_mday + lt->tm_mon + 1 + lt->tm_year + 1900;
srand(seed);
//int id = rand() % PVE_RANGE;
int idPve = PVE_LOWER_RANGE + (rand() % PVE_RANGE);
Quest const * questPve = sObjectMgr->GetQuestTemplate(idPve);
int PveMaxCheck = 0;
int i = PVE_LOWER_RANGE;
while (i <= PVE_UPPER_RANGE && PveMaxCheck <= MAX_PVE_QUEST_NUMBER)
{
if (player->GetQuestStatus(i) != QUEST_STATUS_NONE)
{
PveMaxCheck = PveMaxCheck + 1;
}
i = i + 1;
}
if (player->CanAddQuest(questPve, false) && player->CanTakeQuest(questPve, false) && PveMaxCheck < MAX_PVE_QUEST_NUMBER)
{
bitmask = bitmask | BITMASK_PVE;
}
if ((bitmask & BITMASK_PVE) == BITMASK_PVE)
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_GIVE_PVE_QUEST, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
}
if ((bitmask & BITMASK_PVP) == BITMASK_PVP)
{
// player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_GIVE_PVP_QUEST, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
}
if ((bitmask & BITMASK_EXTRA) == BITMASK_EXTRA)
{
// player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_GIVE_EXTRA_QUEST, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
}
if (bitmask == 0)
{
if (player->hasQuest(idPve)) // and id pvp and id extra
gossip = 100001;
else { gossip = 100002; }
}
if (PveMaxCheck >= MAX_PVE_QUEST_NUMBER)
gossip = 100003;
player->SEND_GOSSIP_MENU(gossip, creature->GetGUID());
return true;
}
bool OnQuestComplete(Player* pPlayer, Creature* pCreature, Quest const* pQuest)
{
return true;
}
};
int AZTH_REPUTATION_ID = 1082;
class npc_azth_vendor : public CreatureScript
{
public:
npc_azth_vendor() : CreatureScript("npc_azth_vendor") { }
bool OnGossipHello(Player* player, Creature* creature) override
{
uint32 rep = player->GetReputation(AZTH_REPUTATION_ID);
if ((rep >= creature->GetResistance(SPELL_SCHOOL_FIRE)) || player->IsGameMaster()) // resistance 2
AzthSendListInventory(creature->GetGUID(), player->GetSession(), 100000);
return true;
}
};
std::vector<int> items[8]; // <---- THIS
void getItems()
{
items[0].clear();
items[1].clear();
items[2].clear();
items[3].clear();
items[4].clear();
items[5].clear();
items[6].clear();
items[7].clear();
QueryResult result = WorldDatabase.Query("SELECT entry, quality FROM item_template WHERE entry >= 100017 LIMIT 0, 200000");
do
{
Field* fields = result->Fetch();
uint32 entry = fields[0].GetUInt32();
uint32 quality = fields[1].GetUInt32();
items[quality].push_back(entry);
} while (result->NextRow());
}
float CHANCES[8] = { 10.f, 30.f, 20.f, 15.f, 5.f, 0.01f, 0.01f, 10.f };
int QUALITY_TO_FILL_PERCENTAGE = 1;
int ONLY_COMMON = 2;
int NOT_COMMON = 1;
int EVERYTHING = 2;
int TIME_TO_RECEIVE_MAIL = 0;
int getQuality()
{
double c = rand_chance();
float chance = (float) c;
float i = CHANCES[0];
int quality = 0;
while (i < c)
{
quality = quality + 1;
i = i + CHANCES[quality];
}
if (quality > 7)
quality = QUALITY_TO_FILL_PERCENTAGE;
return quality;
}
class item_azth_hearthstone_loot_sack : public ItemScript
{
public:
item_azth_hearthstone_loot_sack() : ItemScript("item_azth_hearthstone_loot_sack") {}
bool OnUse(Player* player, Item* item, SpellCastTargets const& /*target*/)
{
getItems();
SQLTransaction trans = CharacterDatabase.BeginTransaction();
int16 deliverDelay = TIME_TO_RECEIVE_MAIL;
MailDraft* draft = new MailDraft("Sacca Hearthstone", "");
int i = 1;
time_t t = time(NULL);
tm *lt = localtime(&t);
int seed = lt->tm_mday + lt->tm_mon + 1 + lt->tm_year + 1900 + lt->tm_sec + player->GetGUID() + player->GetItemCount(item->GetEntry(), true, 0);
while (i <= EVERYTHING)
{
srand(seed);
int quality = 0;
quality = getQuality();
uint32 id = 0;
id = rand() % items[quality].size();
if (Item* item = Item::CreateItem(items[quality][id], 1, 0))
{
item->SaveToDB(trans);
draft->AddItem(item);
}
i = i + 1;
seed = seed + i;
}
i = 1;
while (i <= ONLY_COMMON)
{
srand(seed);
int quality = 1;
if (rand_chance() > 80)
{
quality = 0;
}
uint32 id;
id = rand() % items[quality].size();
if (Item* item = Item::CreateItem(items[quality][id], 1, 0))
{
item->SaveToDB(trans);
draft->AddItem(item);
}
i = i + 1;
seed = seed + i;
}
i = 1;
while (i <= NOT_COMMON)
{
srand(seed);
int quality = 0;
quality = getQuality();
while (quality < 2)
{
quality = getQuality();
}
uint32 id;
id = rand() % items[quality].size();
if (Item* item = Item::CreateItem(items[quality][id], 1, 0))
{
item->SaveToDB(trans);
draft->AddItem(item);
}
i = i + 1;
seed = seed + i;
}
draft->SendMailTo(trans, MailReceiver(player), MailSender(player), MAIL_CHECK_MASK_RETURNED, deliverDelay);
CharacterDatabase.CommitTransaction(trans);
player->DestroyItem(item->GetBagSlot(), item->GetSlot(), true);
return true;
}
};
void AddSC_hearthstone()
{
new npc_han_al();
new npc_azth_vendor();
new item_azth_hearthstone_loot_sack();
}
@@ -0,0 +1,104 @@
#include "Common.h"
#include "WorldPacket.h"
#include "WorldSession.h"
#include "Opcodes.h"
#include "Log.h"
#include "ObjectMgr.h"
#include "Player.h"
void AzthSendListInventory(uint64 vendorGuid, WorldSession * session, uint32 extendedCostStartValue)
{
;//sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Sent SMSG_LIST_INVENTORY");
Creature* vendor = session->GetPlayer()->GetNPCIfCanInteractWith(vendorGuid, UNIT_NPC_FLAG_VENDOR);
if (!vendor)
{
;//sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: SendListInventory - Unit (GUID: %u) not found or you can not interact with him.", uint32(GUID_LOPART(vendorGuid)));
session->GetPlayer()->SendSellError(SELL_ERR_CANT_FIND_VENDOR, NULL, 0, 0);
return;
}
// remove fake death
if (session->GetPlayer()->HasUnitState(UNIT_STATE_DIED))
session->GetPlayer()->RemoveAurasByType(SPELL_AURA_FEIGN_DEATH);
// Stop the npc if moving
if (vendor->HasUnitState(UNIT_STATE_MOVING))
vendor->StopMoving();
VendorItemData const* items = vendor->GetVendorItems();
if (!items)
{
WorldPacket data(SMSG_LIST_INVENTORY, 8 + 1 + 1);
data << uint64(vendorGuid);
data << uint8(0); // count == 0, next will be error code
data << uint8(0); // "Vendor has no inventory"
session->SendPacket(&data);
return;
}
uint8 itemCount = items->GetItemCount();
uint8 count = 0;
WorldPacket data(SMSG_LIST_INVENTORY, 8 + 1 + itemCount * 8 * 4);
data << uint64(vendorGuid);
size_t countPos = data.wpos();
data << uint8(count);
float discountMod = session->GetPlayer()->GetReputationPriceDiscount(vendor);
for (uint8 slot = 0; slot < itemCount; ++slot)
{
if (VendorItem const* item = items->GetItem(slot))
{
if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(item->item))
{
if (!(itemTemplate->AllowableClass & session->GetPlayer()->getClassMask()) && itemTemplate->Bonding == BIND_WHEN_PICKED_UP && !session->GetPlayer()->IsGameMaster())
continue;
// Only display items in vendor lists for the team the
// player is on. If GM on, display all items.
if (!session->GetPlayer()->IsGameMaster() && ((itemTemplate->Flags2 & ITEM_FLAGS_EXTRA_HORDE_ONLY && session->GetPlayer()->GetTeamId() == TEAM_ALLIANCE) || (itemTemplate->Flags2 == ITEM_FLAGS_EXTRA_ALLIANCE_ONLY && session->GetPlayer()->GetTeamId() == TEAM_HORDE)))
continue;
// Items sold out are not displayed in list
uint32 leftInStock = !item->maxcount ? 0xFFFFFFFF : vendor->GetVendorItemCurrentCount(item);
if (!session->GetPlayer()->IsGameMaster() && !leftInStock)
continue;
ConditionList conditions = sConditionMgr->GetConditionsForNpcVendorEvent(vendor->GetEntry(), item->item);
if (!sConditionMgr->IsObjectMeetToConditions(session->GetPlayer(), vendor, conditions))
{
sLog->outError("SendListInventory: conditions not met for creature entry %u item %u", vendor->GetEntry(), item->item);
continue;
}
// reputation discount
uint32 ExtendedToGold = item->ExtendedCost > extendedCostStartValue ? (item->ExtendedCost - extendedCostStartValue) : 0;
int32 price = item->IsGoldRequired(itemTemplate) ? uint32(floor(itemTemplate->BuyPrice * discountMod)) : ExtendedToGold;
data << uint32(slot + 1); // client expects counting to start at 1
data << uint32(item->item);
data << uint32(itemTemplate->DisplayInfoID);
data << int32(leftInStock);
data << uint32(price);
data << uint32(itemTemplate->MaxDurability);
data << uint32(itemTemplate->BuyCount);
data << uint32(item->ExtendedCost);
if (++count >= MAX_VENDOR_ITEMS)
break;
}
}
}
if (count == 0)
{
data << uint8(0);
session->SendPacket(&data);
return;
}
data.put<uint8>(countPos, count);
session->SendPacket(&data);
}