Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts: src/server/game/Accounts/AccountMgr.cpp src/server/game/Entities/Player/Player.h src/server/game/Server/WorldSocket.cpp src/server/game/World/World.cpp
This commit is contained in:
commit
d8234bed42
65 files changed
+4489
-67
No files matched your search
@@ -34,6 +34,7 @@ CREATE TABLE `account` (
|
||||
`reg_mail` varchar(255) NOT NULL DEFAULT '',
|
||||
`joindate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`last_ip` varchar(15) NOT NULL DEFAULT '127.0.0.1',
|
||||
`last_attempt_ip` varchar(15) NOT NULL DEFAULT '127.0.0.1',
|
||||
`failed_logins` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`locked` tinyint(3) unsigned NOT NULL DEFAULT '0',
|
||||
`lock_country` varchar(2) NOT NULL DEFAULT '00',
|
||||
@@ -382,6 +383,36 @@ LOCK TABLES `logs` WRITE;
|
||||
/*!40000 ALTER TABLE `logs` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `logs_ip_actions`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `logs_ip_actions`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `logs_ip_actions` (
|
||||
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Unique Identifier',
|
||||
`account_id` INT(10) UNSIGNED NOT NULL COMMENT 'Account ID',
|
||||
`character_guid` INT(10) UNSIGNED NOT NULL COMMENT 'Character Guid',
|
||||
`type` TINYINT(3) UNSIGNED NOT NULL,
|
||||
`ip` VARCHAR(15) NOT NULL DEFAULT '127.0.0.1',
|
||||
`systemnote` TEXT NULL COMMENT 'Notes inserted by system',
|
||||
`unixtime` INT(10) UNSIGNED NOT NULL COMMENT 'Unixtime',
|
||||
`time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Timestamp',
|
||||
`comment` TEXT NULL COMMENT 'Allows users to add a comment',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `logs_ip_actions`
|
||||
--
|
||||
|
||||
LOCK TABLES `logs_ip_actions` WRITE;
|
||||
/*!40000 ALTER TABLE `logs_ip_actions` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `logs_ip_actions` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `rbac_account_permissions`
|
||||
--
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
ALTER TABLE `account`
|
||||
ADD COLUMN `last_attempt_ip` VARCHAR(15) NOT NULL DEFAULT '127.0.0.1' AFTER `last_ip`;
|
||||
|
||||
CREATE TABLE `logs_ip_actions` (
|
||||
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Unique Identifier',
|
||||
`account_id` INT(10) UNSIGNED NOT NULL COMMENT 'Account ID',
|
||||
`character_guid` INT(10) UNSIGNED NOT NULL COMMENT 'Character Guid',
|
||||
`type` TINYINT(3) UNSIGNED NOT NULL,
|
||||
`ip` VARCHAR(15) NOT NULL DEFAULT '127.0.0.1',
|
||||
`systemnote` TEXT NULL COMMENT 'Notes inserted by system',
|
||||
`unixtime` INT(10) UNSIGNED NOT NULL COMMENT 'Unixtime',
|
||||
`time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Timestamp',
|
||||
`comment` TEXT NULL COMMENT 'Allows users to add a comment',
|
||||
PRIMARY KEY (`id`)
|
||||
)
|
||||
COMMENT='Used to log ips of individual actions'
|
||||
COLLATE='utf8_general_ci'
|
||||
ENGINE=InnoDB;
|
||||
@@ -0,0 +1,88 @@
|
||||
-- QUEST The Plains of Nasam
|
||||
SET @GUID := 76299; -- set the guid for spawning 6 are required
|
||||
DELETE FROM `creature` WHERE id =25334;
|
||||
|
||||
INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `MovementType`) VALUES
|
||||
(@GUID, 25334, 571, 1, 1, 2792.044, 6738.573, 7.797749, 4.34587, 120, 0, 0), -- 25334 (Area: 4130)
|
||||
(@GUID+1, 25334, 571, 1, 1, 2798.961, 6735.21, 7.625851, 4.276057, 120, 0, 0), -- 25334 (Area: 4130)
|
||||
(@GUID+2, 25334, 571, 1, 1, 2784.335, 6742.207, 7.92973, 4.29351, 120, 0, 0), -- 25334 (Area: 4130)
|
||||
(@GUID+3, 25334, 571, 1, 1, 2766.58, 6751.198, 7.29528, 4.258604, 120, 0, 0), -- 25334 (Area: 4130)
|
||||
(@GUID+4, 25334, 571, 1, 1, 2777.034, 6745.713, 7.899116, 4.29351, 120, 0, 0), -- 25334 (Area: 4130)
|
||||
(@GUID+5, 25334, 571, 1, 1, 2807.21, 6730.922, 7.841674, 4.433136, 120, 0, 0); -- 25334 (Area: 4130)
|
||||
|
||||
UPDATE `creature_template` SET `faction`=1981, `unit_flags`=4096, `dynamicflags`=0,`speed_walk`=1.2, `speed_run`=2 WHERE `entry`=25334;
|
||||
|
||||
DELETE FROM `spell_area` WHERE `spell`=47917 AND `area` IN(4027,4130);
|
||||
INSERT INTO `spell_area` (`spell`, `area`, `quest_start`, `quest_end`, `aura_spell`, `racemask`, `gender`, `autocast`, `quest_start_status`, `quest_end_status`) VALUES
|
||||
(47917, 4027, 11652, 11652, 0, 0, 2, 0, 64, 11),
|
||||
(47917, 4130, 11652, 11652, 0, 0, 2, 0, 64, 11);
|
||||
|
||||
UPDATE `creature_template` SET `spell1`=50672, `spell2`=45750,`spell3`=50677, `spell4`=47849, `spell5`=47962, `Health_mod`=5, `Mana_mod`=5 WHERE `entry`=25334;
|
||||
DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=25334 AND `spell_id`=46598;
|
||||
INSERT INTO `npc_spellclick_spells` (`npc_entry`,`spell_id`,`cast_flags`) VALUES (25334, 46598, 1);
|
||||
|
||||
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (27106, 27107, 27108, 27110);
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (27106, 27107, 27108, 27110) AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(27106, 0, 0, 1, 8, 0, 100, 1, 47962, 0, 0, 0, 85, 47967, 1, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Injured Warsong Warrior - On Spell hit - Cast Killcredit on Invoker'),
|
||||
(27106, 0, 1, 0, 61, 0, 100, 1, 47962, 0, 0, 0, 41, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Injured Warsong Warrior - On Spell hit - Despawn after 1sec'),
|
||||
(27107, 0, 0, 1, 8, 0, 100, 1, 47962, 0, 0, 0, 85, 47967, 1, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Injured Warsong Mage - On Spell hit - Cast Killcredit on Invoker'),
|
||||
(27107, 0, 1, 0, 61, 0, 100, 1, 47962, 0, 0, 0, 41, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Injured Warsong Mage - On Spell hit - Despawn after 1sec'),
|
||||
(27108, 0, 0, 1, 8, 0, 100, 1, 47962, 0, 0, 0, 85, 47967, 1, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Injured Warsong Shaman - On Spell hit - Cast Killcredit on Invoker'),
|
||||
(27108, 0, 1, 0, 61, 0, 100, 1, 47962, 0, 0, 0, 41, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Injured Warsong Shaman - On Spell hit - Despawn after 1sec'),
|
||||
(27110, 0, 0, 1, 8, 0, 100, 1, 47962, 0, 0, 0, 85, 47967, 1, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Injured Warsong Ingenieur - On Spell hit - Cast Killcredit on Invoker'),
|
||||
(27110, 0, 1, 0, 61, 0, 100, 1, 47962, 0, 0, 0, 41, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Injured Warsong Ingenieur - On Spell hit - Despawn after 1sec');
|
||||
|
||||
-- NPC Scourge Plague Spreader
|
||||
UPDATE `creature_template` SET `faction`=974, `unit_flags`=`unit_flags`|2|33554432 WHERE `entry`=25349;
|
||||
UPDATE `creature_template` SET `flags_extra`=`flags_extra`|64 WHERE `entry` IN (25333, 25469, 25332);
|
||||
-- NPC Abandoned Fuel Tank
|
||||
UPDATE `creature_template` SET `faction`=2022, `unit_flags`=`unit_flags`|2|4|33554432, `AIName`='SmartAI' WHERE `entry`=27064;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=27064 AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(27064, 0, 0, 1, 9, 0, 100, 0, 0, 5, 30000, 35000, 85, 47916, 2, 0, 0, 0, 0, 11, 25334, 5, 0, 0, 0, 0, 0, 'Abandoned Fuel Tank - On Range 2yd - Cast Fuel'),
|
||||
(27064, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 19, 25334, 0, 0, 0, 0, 0, 0, 'Abandoned Fuel Tank - Linked with Previous Event - Say'),
|
||||
(27064, 0, 2, 3, 11, 0, 100, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Abandoned Fuel Tank - On Respawn - Disable Auto Attack'),
|
||||
(27064, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Abandoned Fuel Tank - On Respawn - Disable Combat Movement');
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=27064 AND `SourceId`=0;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(22, 1, 27064, 0, 1, 29, 0, 25334, 5, 0, 0, 0, 0, '', 'Execute SAI only if there is Horde Siege Tank within 2 yards');
|
||||
|
||||
|
||||
UPDATE `creature_template` SET `npcflag`=16777216 WHERE `entry`=25334;
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=16 AND `SourceEntry`=25334;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(16, 0, 25334, 0, 0, 23, 0, 4027, 0, 0, 0, 0, 0, '', 'Horde Siege Tank (Vehicle) Allowed in Coast of Echoes'),
|
||||
(16, 0, 25334, 0, 1, 23, 0, 4130, 0, 0, 0, 0, 0, '', 'Horde Siege Tank (Vehicle) Allowed in Plains of Nasam');
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=18 AND `SourceGroup`=25334;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(18, 25334, 46598, 0, 0, 9, 0, 11652, 0, 0, 0, 0, 0, '', 'Player must have The Plains of Nasam taken but not completed to use Horde Siege tank');
|
||||
|
||||
DELETE FROM `creature_template_addon` WHERE `entry` IN(25334,27064);
|
||||
INSERT INTO `creature_template_addon` (`entry`, `mount`, `bytes1`, `bytes2`, `auras`) VALUES
|
||||
(25334, 0, 0x0, 0x101, ''), -- 25334
|
||||
(27064, 0, 0x0, 0x1, '50162'); -- 27064 - 50162
|
||||
|
||||
-- Updated 14-06-22 - Kinzcool
|
||||
DELETE FROM `creature_text` WHERE `entry`=25334;
|
||||
INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES
|
||||
(25334, 0, 0, '%s gains fuel.', 41, 0, 100, 0, 0, 0, 'Horde Siege Tank', 26171);
|
||||
|
||||
DELETE FROM `spell_linked_spell` WHERE `spell_trigger`=45750;
|
||||
INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comment`) VALUES
|
||||
(45750, 45749, 0, 'Land Mine Barrier'), -- Front
|
||||
(45750, 45751, 0, 'Land Mine Barrier'), -- Front, Right
|
||||
(45750, 45752, 0, 'Land Mine Barrier'), -- Front, Left
|
||||
(45750, 45753, 0, 'Land Mine Barrier'), -- Back
|
||||
(45750, 45754, 0, 'Land Mine Barrier'), -- Back, Left
|
||||
(45750, 45755, 0, 'Land Mine Barrier'), -- Back, Right
|
||||
(45750, 45756, 0, 'Land Mine Barrier'), -- Left
|
||||
(45750, 47839, 0, 'Land Mine Barrier'); -- Right
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`IN(50674);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(13, 1, 50674, 0, 0, 31, 0, 3, 0, 0, 0, 0, 0, '', 'The Demoralizer only hits unit'),
|
||||
(13, 1, 50674, 0, 0, 31, 0, 3, 25334, 0, 1, 0, 0, '', 'The Demoralizer does not hit horde siege tank');
|
||||
@@ -0,0 +1,8 @@
|
||||
--
|
||||
UPDATE `creature_template` SET `ainame`='SmartAI' WHERE `entry` IN (18734,18735,18736,18737);
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (18734,18735,18736,18737) AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(18734,0,0,0,1,0,100,0,0,0,0,0,11,32787,0,0,0,0,0,23,0,0,0,0,0,0,0,'Coarse Stone Statue - OOC - Cast ''Stone Healing'''),
|
||||
(18735,0,0,0,1,0,100,0,0,0,0,0,11,32788,0,0,0,0,0,23,0,0,0,0,0,0,0,'Heavy Stone Statue - OOC - Cast ''Stone Healing'''),
|
||||
(18736,0,0,0,1,0,100,0,0,0,0,0,11,32790,0,0,0,0,0,23,0,0,0,0,0,0,0,'Solid Stone Statue - OOC - Cast ''Stone Healing'''),
|
||||
(18737,0,0,0,1,0,100,0,0,0,0,0,11,32791,0,0,0,0,0,23,0,0,0,0,0,0,0,'Dense Stone Statue - OOC - Cast ''Stone Healing''');
|
||||
@@ -0,0 +1,13 @@
|
||||
--
|
||||
UPDATE `creature_template` SET `AIName` = 'SmartAI',`npcflag`=`npcflag`|1 WHERE `entry` =26809;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=26809 AND `event_type`IN (25,61,64);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(26809, 0, 0, 0, 25, 0, 100, 0, 0, 0, 0, 0, 11, 31261, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Ravaged Crystalline Ice Giant - On Spawn - Cast Permanent Feign Death (Root) on self'),
|
||||
(26809, 0, 1, 2, 64, 0, 100, 0, 0, 0, 0, 0, 56, 36765, 1, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Ravaged Crystalline Ice Giant - On Hello - Add Sample of Rockflesh'),
|
||||
(26809, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Ravaged Crystalline Ice Giant - Linked with Previous Event - Close Gossip'),
|
||||
(26809, 0, 3, 0, 64, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Ravaged Crystalline Ice Giant - Linked with Previous Event - Close Gossip - On No quest or complete');
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry` =26809;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
|
||||
(22,2,26809,0,0,9,0,12075,0,0,0,0,'','Ravaged Crystalline Ice Giant - Add Sample of Rockflesh only if player is on and has not completed slim pickings');
|
||||
@@ -0,0 +1,6 @@
|
||||
--
|
||||
UPDATE `creature_template` SET `npcflag`=`npcflag`|1 WHERE `entry`=29344;
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=9806;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(15,9806,0,0,0,9,0,12807,0,0,0,0,0,'','Show gossip menu option only if player has quest(12807) ''The Story Thus Far...''');
|
||||
@@ -0,0 +1,62 @@
|
||||
-- Assign queststarter
|
||||
DELETE FROM `creature_queststarter` WHERE `id`=39675 AND `quest`=25199;
|
||||
INSERT INTO `creature_queststarter` (`id`, `quest`) VALUES
|
||||
(39675,25199);
|
||||
|
||||
-- Assign questender
|
||||
DELETE FROM `creature_questender` WHERE `id`=39675 AND `quest`=25199;
|
||||
INSERT INTO `creature_questender` (`id`, `quest`) VALUES
|
||||
(39675,25199);
|
||||
|
||||
-- Update creatures to use SAI
|
||||
UPDATE `creature_template` SET `ainame`='SmartAI' WHERE `entry` IN (39349,39368);
|
||||
|
||||
-- Gnomeregan Trainee SAI
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=39349 AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(39349,0,0,0,38,0,100,0,0,1,0,0,5,66,0,0,0,0,0,1,0,0,0,0,0,0,0,'Gnomeregan Trainee - On Data 0 1 Set - Emote Salute'),
|
||||
(39349,0,1,0,38,0,100,0,0,2,0,0,5,15,0,0,0,0,0,1,0,0,0,0,0,0,0,'Gnomeregan Trainee - On Data 0 2 Set - Emote Roar'),
|
||||
(39349,0,2,0,38,0,100,0,0,3,0,0,5,4,0,0,0,0,0,1,0,0,0,0,0,0,0,'Gnomeregan Trainee - On Data 0 3 Set - Emote Cheer'),
|
||||
(39349,0,3,0,38,0,100,0,0,4,0,0,5,94,0,0,0,0,0,1,0,0,0,0,0,0,0,'Gnomeregan Trainee - On Data 0 4 Set - Emote Dance'),
|
||||
(39349,0,4,0,38,0,100,0,0,5,0,0,5,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Gnomeregan Trainee - On Data 0 5 Set - Emote None');
|
||||
|
||||
-- Drill Sergeant Steamcrank SAI
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=39368 AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(39368,0,0,0,11,0,100,0,0,0,0,0,1,0,4000,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - On Respawn - Say Line 0'),
|
||||
(39368,0,1,0,52,0,100,0,0,39368,0,0,1,1,3000,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - On Text Over - Say Line 1'),
|
||||
(39368,0,2,0,52,0,100,0,1,39368,0,0,1,2,3000,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - On Text Over - Say Line 2'),
|
||||
(39368,0,3,0,52,0,100,0,2,39368,0,0,1,3,4000,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - On Text Over - Say Line 3'),
|
||||
(39368,0,4,5,52,0,100,0,3,39368,0,0,1,4,6000,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - On Text Over - Say Line 4'),
|
||||
(39368,0,5,6,61,0,100,0,0,0,0,0,45,0,1,0,0,0,0,11,39349,30,0,0,0,0,0,'Drill Sergeant Steamcrank - Link With Previous - Set data 0 1'),
|
||||
(39368,0,6,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - Link With Previous - Set Phase 1'),
|
||||
(39368,0,7,0,22,1,100,0,78,0,0,0,11,73771,2,0,0,0,0,7,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - Emote Received ''Salute'' - Cast ''[DND] Salute Quest Credit'' (phase 1)'),
|
||||
(39368,0,8,9,52,0,100,0,4,39368,0,0,1,5,4000,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - On Text Over - Say Line 5'),
|
||||
(39368,0,9,0,61,0,100,0,0,0,0,0,22,5,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - Link With Previous - Set Phase 5'),
|
||||
(39368,0,10,0,52,0,100,0,5,39368,0,0,1,6,4000,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - On Text Over - Say Line 6'),
|
||||
(39368,0,11,0,52,0,100,0,6,39368,0,0,1,7,4000,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - On Text Over - Say Line 7'),
|
||||
(39368,0,12,13,52,0,100,0,7,39368,0,0,1,8,6000,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - On Text Over - Say Line 8'),
|
||||
(39368,0,13,14,61,0,100,0,0,0,0,0,45,0,2,0,0,0,0,11,39349,30,0,0,0,0,0,'Drill Sergeant Steamcrank - Link With Previous - Set data 0 2'),
|
||||
(39368,0,14,0,61,0,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - Link With Previous - Set Phase 2'),
|
||||
(39368,0,15,0,22,2,100,0,75,0,0,0,11,73832,2,0,0,0,0,7,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - Emote Received ''Roar'' - Cast ''[DND] Cheer Quest Credit'' (phase 2)'),
|
||||
(39368,0,16,17,52,0,100,0,8,39368,0,0,1,9,4000,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - On Text Over - Say Line - Say Line 9'),
|
||||
(39368,0,17,0,61,0,100,0,0,0,0,0,22,5,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - Link With Previous - Set Phase 5'),
|
||||
(39368,0,18,0,52,0,100,0,9,39368,0,0,1,10,4000,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - On Text Over - Say Line 10'),
|
||||
(39368,0,19,0,52,0,100,0,10,39368,0,0,1,11,4000,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - On Text Over - Say Line 11'),
|
||||
(39368,0,20,21,52,0,100,0,11,39368,0,0,1,12,6000,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - On Text Over - Say Line 12'),
|
||||
(39368,0,21,22,61,0,100,0,0,0,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - Link With Previous - Set Phase 3'),
|
||||
(39368,0,22,0,61,0,100,0,0,0,0,0,45,0,3,0,0,0,0,11,39349,30,0,0,0,0,0,'Drill Sergeant Steamcrank - Link With Previous - Set data 0 3'),
|
||||
(39368,0,23,0,22,4,100,0,21,0,0,0,11,73833,2,0,0,0,0,7,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - Emote Received ''Cheer'' - Cast ''[DND] Cheer Quest Credit'' (phase 3)'),
|
||||
(39368,0,24,25,52,0,100,0,12,39368,0,0,1,13,4000,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - On Text Over - Say Line 13'),
|
||||
(39368,0,25,0,61,0,100,0,0,0,0,0,22,5,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - Link With Previous - Set Phase 5'),
|
||||
(39368,0,26,0,52,0,100,0,13,39368,0,0,1,14,4000,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - On Text Over - Say Line 14'),
|
||||
(39368,0,27,0,52,0,100,0,14,39368,0,0,1,15,4000,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - On Text Over - Say Line 15'),
|
||||
(39368,0,28,29,52,0,100,0,15,39368,0,0,1,16,6000,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - On Text Over - Say Line 16'),
|
||||
(39368,0,29,30,61,0,100,0,0,0,0,0,45,0,4,0,0,0,0,11,39349,30,0,0,0,0,0,'Drill Sergeant Steamcrank - Link With Previous - Set data 0 4'),
|
||||
(39368,0,30,0,61,0,100,0,0,0,0,0,22,4,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - Link With Previous - Set Phase 4'),
|
||||
(39368,0,31,32,52,0,100,0,16,39368,0,0,1,17,4000,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - On Text Over - Say Line 17'),
|
||||
(39368,0,32,33,61,0,100,0,0,0,0,0,22,5,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - Link With Previous - Set Phase 5'),
|
||||
(39368,0,33,0,61,0,100,0,0,0,0,0,45,0,5,0,0,0,0,11,39349,30,0,0,0,0,0,'Drill Sergeant Steamcrank - Link With Previous - Set data 0 5'),
|
||||
(39368,0,34,0,22,8,100,0,34,0,0,0,11,73830,2,0,0,0,0,7,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - Emote Received ''Dance'' - Cast ''[DND] Dance Quest Credit'' (phase 4)'),
|
||||
(39368,0,35,0,52,0,100,0,17,39368,0,0,1,18,4000,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - On Text Over - Say Line 18'),
|
||||
(39368,0,36,0,52,0,100,0,18,39368,0,0,1,0,4000,0,0,0,0,1,0,0,0,0,0,0,0,'Drill Sergeant Steamcrank - On Text Over - Say Line 0');
|
||||
@@ -0,0 +1,48 @@
|
||||
SET @GUID := 68282; -- Needs 3
|
||||
|
||||
-- Add Ahn'kahar Watcher's Corpse to heroic loot for Ahn'kahar Watcher
|
||||
DELETE FROM `creature_loot_template` WHERE `entry`=31449 AND `item`=43494;
|
||||
INSERT INTO `creature_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `lootmode`, `groupid`, `mincountOrRef`, `maxcount`) VALUES
|
||||
(31449, 43494, 100, 1, 0, 1, 1); -- Ahn'kahar Watcher's Corpse
|
||||
|
||||
-- Condition to ensure item only drops if player on quest since we cant use negative chance here since item is not requirement to complete quest
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=1 AND `SourceGroup`=31449 AND `SourceEntry`=43494;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(1, 31449, 43494, 0, 1, 9, 0, 13190, 0, 0, 0, 0, 0, '', 'Ahn kahar Watchers Corpse drops if player has taken (13190) All Things in Good Time');
|
||||
|
||||
-- Add Ahn'kahet Brazier KC Bunny and Ahn'Kahar Watchers
|
||||
DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+2;
|
||||
INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `MovementType`) VALUES
|
||||
(@GUID, 31105, 619, 3, 173, 520.7055, -352.9016, 47.92243, 2.234021, 7200, 0, 0), -- 31105 (Area: 4627)
|
||||
(@GUID+1, 31104, 619, 3, 1, 454.1534, -1024.992, 30.43521, 5.218534, 7200, 5, 1), -- 31104 (Area: 4623) (possible waypoints or random movement)
|
||||
(@GUID+2, 31104, 619, 3, 1, 460.0319, -1034.93, 30.33384, 1.972222, 7200, 5, 1); -- 31104 (Area: 4623) (possible waypoints or random movement)
|
||||
|
||||
UPDATE `creature_template` SET `flags_extra`=130 WHERE `entry`=31105;
|
||||
DELETE FROM `creature_template_addon` WHERE `entry` =31104;
|
||||
INSERT INTO `creature_template_addon` (`entry`, `mount`, `bytes1`, `bytes2`, `auras`) VALUES
|
||||
(31104, 0, 0x0, 0x1, '18950'); -- 31104 - 18950
|
||||
|
||||
-- Condition for spellhit
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`IN(58515);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(13, 1, 58515, 0, 0, 31, 0, 3, 31105, 0, 0, 0, 0, '', 'Burn Corpse hits Ahn kahet Brazier KC Bunny');
|
||||
|
||||
-- Script for Ahn'kahet Brazier KC Bunny
|
||||
UPDATE `creature_template` SET `ainame`='SmartAI' WHERE `entry` =31105;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` =31105 AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(31105,0,0,1,8,0,100,4,58515,0,0,0,11,58518,2,0,0,0,0,16,0,0,0,0,0,0,0,'Ahn kahet Brazier KC Bunny - On Spell Hit (Burn Corpse) - Give Quest Credit (Heroic Only)'),
|
||||
(31105,0,1,0,61,0,100,4,0,0,0,0,11,58522,2,0,0,0,0,1,0,0,0,0,0,0,0,'Ahn kahet Brazier KC Bunny - Linked with Previous Event - Cast Ahn kahet Brazier Effect');
|
||||
|
||||
-- Script for Ahn'Kahar Watcher
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=31104 AND `source_type`=0;
|
||||
UPDATE creature_template SET AIName="SmartAI" WHERE entry =31104;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(31104, 0, 0, 0, 9, 0, 100, 0, 0, 5, 14000, 17000, 11, 42746, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Ahn kahar Watcher - In Combat - Cast Cleave'),
|
||||
(31104, 0, 1, 0, 0, 0, 100, 0, 9000, 12000, 15000, 18000, 11, 56643, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Ahn kahar Watcher - In Combat - Cast Triple Slash'),
|
||||
(31104, 0, 2, 0, 2, 0, 100, 0, 0, 30, 8000, 10000, 11, 56646, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Ahn kahar Watcher - Between 0-30% Health - Cast Enrage');
|
||||
|
||||
DELETE FROM `disables` WHERE `sourceType`=0 AND `entry`IN(58515,58518);
|
||||
INSERT INTO `disables` (`sourceType`, `entry`, `flags`, `params_0`, `params_1`, `comment`) VALUES
|
||||
(0, 58515, 64, '', '', 'Ignore LOS on Burn Corpse'),
|
||||
(0, 58518, 64, '', '', 'Ignore LOS on Ahn kahet Brazier Kill Credit');
|
||||
@@ -0,0 +1,90 @@
|
||||
--
|
||||
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (29368, 29801, 30152);
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (29368, 29801, 30152, 2936800, 2980100, 3015200);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(29368, 0, 0, 0, 4, 0, 100, 1, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Set Phase 1 on Aggro'),
|
||||
(29368, 0, 1, 0, 4, 1, 100, 1, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Stop Moving on Aggro'),
|
||||
(29368, 0, 2, 0, 4, 1, 100, 1, 0, 0, 0, 0, 11, 56326, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Cast bolt on Aggro'),
|
||||
(29368, 0, 3, 0, 9, 1, 100, 0, 0, 40, 3400, 4700, 11, 56326, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Cast bolt'),
|
||||
(29368, 0, 4, 0, 9, 1, 100, 0, 40, 100, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Start Moving when not in bolt Range'),
|
||||
(29368, 0, 5, 0, 9, 1, 100, 0, 10, 15, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Stop Moving at 15 Yards'),
|
||||
(29368, 0, 6, 0, 9, 1, 100, 0, 0, 40, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Stop Moving when in bolt Range'),
|
||||
(29368, 0, 7, 0, 3, 1, 100, 0, 0, 15, 0, 0, 22, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Set Phase 2 at 15% Mana'),
|
||||
(29368, 0, 8, 0, 3, 2, 100, 0, 0, 15, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Start Moving at 15% Mana'),
|
||||
(29368, 0, 9, 0, 3, 2, 100, 0, 30, 100, 100, 100, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Set Phase 1 When Mana is above 30%'),
|
||||
(29368, 0, 10, 0, 0, 1, 100, 0, 15000, 18000, 29000, 33000, 11, 56322, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Cast Spark Frenzy'),
|
||||
(29368, 0, 11, 0, 0, 1, 100, 0, 3000, 8000, 23000, 26000, 11, 56319, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 'Cast Ball Lightning'),
|
||||
(29368, 0, 12, 13, 8, 0, 100, 0, 56189, 0, 0, 0, 11, 44762, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'On spellhit - Cast Camera Shake'),
|
||||
(29368, 0, 13, 14, 61, 0, 100, 0, 0, 0, 0, 0, 28, 56220, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'On link - Remove aura'),
|
||||
(29368, 0, 14, 0, 61, 0, 100, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'On link - Stop emote'),
|
||||
(29368, 0, 15, 0, 38, 0, 100, 0, 0, 1, 0, 0, 80, 2936800, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'On data - Run script'),
|
||||
(29368, 0, 16, 0, 25, 0, 100, 0, 0, 0, 0, 0, 60, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'On Reset - Set fly'),
|
||||
(29368, 0, 17, 18, 6, 0, 100, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 11, 29801, 20, 0, 0, 0, 0, 0, 'On Death - Set data'),
|
||||
(29368, 0, 18, 0, 61, 0, 100, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 11, 30152, 20, 0, 0, 0, 0, 0, 'On link - Set data'),
|
||||
(2936800, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Timed - Talk'),
|
||||
(2936800, 9, 1, 0, 0, 0, 100, 0, 4000, 4000, 4000, 4000, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Timed - Talk'),
|
||||
(2936800, 9, 2, 0, 0, 0, 100, 0, 5000, 5000, 5000, 5000, 60, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Timed - Remove hover'),
|
||||
(2936800, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 11, 61361, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Timed - Cast teleport'),
|
||||
(2936800, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 99, 3, 0, 0, 0, 0, 0, 20, 191510, 10, 0, 0, 0, 0, 0, 'Timed - Set gob state'),
|
||||
(2936800, 9, 5, 0, 0, 0, 100, 0, 0, 0, 0, 0, 2, 2102, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Timed - Set faction'),
|
||||
(2936800, 9, 6, 0, 0, 0, 100, 0, 1000, 1000, 1000, 1000, 19, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Timed - Remove flags'),
|
||||
(29801, 0, 0, 0, 2, 0, 100, 1, 0, 30, 0, 0, 11, 56330, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Cast Iron''s Bane at 30% HP'),
|
||||
(29801, 0, 1, 2, 54, 0, 100, 0, 0, 0, 0, 0, 53, 0, 29801, 0, 12984, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 'On summoned - Start WP'),
|
||||
(29801, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 83, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'On link - Remove npc flags'),
|
||||
(29801, 0, 3, 4, 58, 0, 100, 0, 0, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'On WP end - Set orientation'),
|
||||
(29801, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 80, 2980100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'On link - Start script'),
|
||||
(29801, 0, 5, 6, 38, 0, 100, 0, 1, 1, 0, 0, 41, 1000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'On data - Despawn'),
|
||||
(29801, 0, 6, 0, 61, 0, 100, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'On data - Talk'),
|
||||
(2980100, 9, 0, 0, 0, 0, 100, 0, 1000, 1000, 1000, 1000, 1, 0, 2000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Timed - Talk'),
|
||||
(2980100, 9, 1, 0, 0, 0, 100, 0, 4000, 4000, 4000, 4000, 17, 333, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Timed - Play emote'),
|
||||
(2980100, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 2, 1770, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Timed - Set faction'),
|
||||
(2980100, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 45, 0, 1, 0, 0, 0, 0, 11, 30152, 20, 0, 0, 0, 0, 0, 'Timed - Set data'),
|
||||
(30152, 0, 0, 1, 54, 0, 100, 0, 0, 0, 0, 0, 53, 0, 30152, 0, 12984, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 'On summoned - Start WP'),
|
||||
(30152, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 83, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'On link - Remove npc flags'),
|
||||
(30152, 0, 2, 0, 58, 0, 100, 0, 0, 0, 0, 0, 66, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'On summoned - Set orintation'),
|
||||
(30152, 0, 3, 0, 38, 0, 100, 0, 0, 1, 0, 0, 80, 3015200, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'On data - Run script'),
|
||||
(30152, 0, 4, 5, 38, 0, 100, 0, 1, 1, 0, 0, 41, 1000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'On data - Despawn'),
|
||||
(30152, 0, 5, 0, 61, 0, 100, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'On link - Talk'),
|
||||
(3015200, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Timed - Talk'),
|
||||
(3015200, 9, 1, 0, 0, 0, 100, 0, 4000, 4000, 4000, 4000, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Timed - Talk'),
|
||||
(3015200, 9, 2, 0, 0, 0, 100, 0, 2000, 2000, 2000, 2000, 17, 333, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Timed - Play emote'),
|
||||
(3015200, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 2, 1770, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Timed - Set faction'),
|
||||
(3015200, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 45, 0, 1, 0, 0, 0, 0, 11, 29368, 20, 0, 0, 0, 0, 0, 'Timed - Set data');
|
||||
|
||||
DELETE FROM `creature_text` WHERE `entry` IN (29368, 29801, 30152);
|
||||
INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES
|
||||
(29368, 0, 0, 'How predictable! But then, who would expect a rock to think like anything other than one?', 12, 0, 100, 11, 0, 0, '', 30895),
|
||||
(29368, 1, 0, 'If you''re so eager to fight, I''ll oblige you. But know that nothing you do here can prevent the completion of the iron colossus!', 12, 0, 100, 274, 0, 0, '', 30896),
|
||||
(29801, 0, 0, 'At last, the tyranny of the stormforged is at its end!', 12, 0, 100, 25, 0, 0, '', 30891),
|
||||
(29801, 1, 0, 'We''ve defeated Valduran and we''ll fell his colossus.', 12, 0, 100, 0, 25, 0, '', 33052),
|
||||
(30152, 0, 0, 'No more will your minions assail the creatures of stone and their allies.', 12, 0, 100, 1, 0, 0, '', 30893),
|
||||
(30152, 1, 0, 'I am your doom, Valduran!', 12, 0, 100, 15, 0, 0, '', 30894),
|
||||
(30152, 2, 0, 'Well fought! The day is ours, but the war goes on!', 12, 0, 100, 4, 0, 0, '', 33053);
|
||||
|
||||
DELETE FROM `waypoints` WHERE `entry` IN (29801, 30152);
|
||||
INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES
|
||||
(29801, 1, 7749.77, 77.0172, 1009.29, ''),
|
||||
(29801, 2, 7729.19, 107.101, 1010.16, ''),
|
||||
(29801, 3, 7725.79, 106.92, 1010.64, ''),
|
||||
(30152, 1, 7752.48, 79.0734, 1009.24, ''),
|
||||
(30152, 2, 7730.57, 108.277, 1010.05, ''),
|
||||
(30152, 3, 7732.23, 111.521, 1010.64, '');
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=56189;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(13, 1, 56189, 0, 0, 31, 0, 3, 29368, 0, 0, 0, 0, '', 'Horn target Valduran');
|
||||
|
||||
DELETE FROM `creature_template_addon` WHERE `entry` =29368;
|
||||
INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
|
||||
(29368, 0, 0, 0, 1, 382, '56220');
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry` IN (29801, 30152);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(22, 1, 29801, 0, 0, 23, 0, 4434, 0, 0, 0, 0, 0, '', 'execute sai only if npc in area Nidavelir(4434)'),
|
||||
(22, 1, 30152, 0, 0, 23, 0, 4434, 0, 0, 0, 0, 0, '', 'execute sai only if npc in area Nidavelir(4434)');
|
||||
|
||||
DELETE FROM `event_scripts` WHERE `id`=19576;
|
||||
INSERT INTO `event_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`,`z`,`o`) VALUES
|
||||
(19576, 0, 10, 29801, 300000, 0, 7750.35, 76.9334, 1009.43, 1.69),
|
||||
(19576, 0, 10, 30152, 300000, 0, 7752.38, 78.3693, 1009.43, 2.71);
|
||||
@@ -0,0 +1,5 @@
|
||||
-- Fixes these two spells avoiding crit reduction
|
||||
DELETE FROM `spell_custom_attr` WHERE `entry` IN (7268, 47666);
|
||||
INSERT INTO `spell_custom_attr` (`entry`, `attributes`) VALUES
|
||||
(7268, 4096), -- Arcane Missiles
|
||||
(47666, 4096); -- penance damage
|
||||
@@ -0,0 +1,28 @@
|
||||
--
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=1 AND `entryorguid`=190695;
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid`=19069500;
|
||||
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(190695, 1, 0, 1, 70, 0, 100, 0, 2, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Heb\'Jin\'s Drum - On state changed - Store targetlist'),
|
||||
(190695, 1, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 80, 19069500, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Heb\'Jin\'s Drum - Linked with Previous Event - Run Script'),
|
||||
(19069500, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 10, 98562, 23837, 0, 0, 0,0,0, 'Heb\'Jin\'s Drum - Script - Set Data ELM General Purpose Bunny'),
|
||||
(19069500, 9, 1, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 100, 1, 0, 0, 0, 0, 0, 19, 28636, 100, 0, 0, 0, 0, 0, 'Heb\'Jin\'s Drum - Script - Send Target list to heb jin');
|
||||
|
||||
UPDATE `smart_scripts` SET `action_param2`=2, `action_param3`=300000 WHERE `entryorguid`=2863600 AND `source_type`=9 AND `id`=3 AND `link`=0;
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=28636 AND `id`=9;
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=28639 AND `id`=10;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(28636, 0, 9, 0, 7, 0, 100, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Heb Jin - On Evade - Despawn'),
|
||||
(28639, 0, 10, 0, 7, 0, 100, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Heb Jins Bat - On Evade - Despawn');
|
||||
|
||||
DELETE FROM `event_scripts` WHERE `id`=18773;
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=-98562;
|
||||
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(-98562, 0, 0, 1, 38, 0, 100, 0, 1, 1, 0, 0, 45, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny - On Data Set - Set Data'),
|
||||
(-98562, 0, 1, 0, 61, 0, 100, 0, 1, 1, 0, 0, 12, 28636, 2, 300000, 0, 0, 0, 8, 0, 0, 0, 5988.71, -3878.04, 417.15, 2.35619, 'ELM General Purpose Bunny - Linked with Previous Event - Spawn Heb Jin');
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 and `SourceId`=0 and `SourceEntry`=-98562;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(22, 1, -98562, 0, 0, 29, 1, 28636, 200, 0, 1, 0, 0, '', 'Only run SAI if no heb jin nearby'),
|
||||
(22, 1, -98562, 0, 0, 29, 1, 28639, 200, 0, 1, 0, 0, '', 'Only run SAI if no heb jins bat nearby');
|
||||
@@ -0,0 +1,19 @@
|
||||
--
|
||||
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` =28413;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` =28413 AND `source_type`=0;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` =2841300 AND `source_type`=9;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` =2841301 AND `source_type`=9;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` =2841302 AND `source_type`=9;
|
||||
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(28413, 0, 0, 1, 11, 0, 100, 1, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Nerubian Cocoon - On Respawn - Disable Combat Movement (No Repeat)'),
|
||||
(28413, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 18, 2097152, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Nerubian Cocoon - On Respawn - Set Flag Disarmed (No Repeat)'),
|
||||
(28413, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 42, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Nerubian Cocoon - On Respawn - Set Invincibility HP'),
|
||||
(28413, 0, 3, 0, 4, 0, 100, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Nerubian Cocoon - On Death - Store Target List (No Repeat)'),
|
||||
(28413, 0, 4, 0, 2, 0, 100, 1, 0, 2, 0, 0, 87, 2841300, 2841301, 2841300, 2841302, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Nerubian Cocoon - On Death - Run Random Script (No Repeat)'),
|
||||
(2841300, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 11, 51599, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Nerubian Cocoon - Script 1 - Cast Summon Captive Footman'),
|
||||
(2841300, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 33, 28415, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Nerubian Cocoon - Script 1 - Give Kill Cedit'),
|
||||
(2841300, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Nerubian Cocoon - Script 1 - Despawn'),
|
||||
(2841301, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 11, 51597, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Nerubian Cocoon - Script 2 - Cast Summon Summon Scourged Captive'),
|
||||
(2841301, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Nerubian Cocoon - Script 2 - Despawn'),
|
||||
(2841302, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Nerubian Cocoon - Script 3 - Despawn');
|
||||
@@ -0,0 +1,19 @@
|
||||
--
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=23689;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(22, 4, 23689, 0, 0, 29, 1, 24170, 75, 0, 0, 0, 0, '', 'Protodrake Only execute SAI if there is Draconis Gasritus Bunny');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=23689 AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(23689, 0, 1, 2, 65, 0, 100, 0, 0, 0, 0, 0, 11, 36809, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Proto-Drake - On Follow Complete - Cast \'Overpowering Sickness\''),
|
||||
(23689, 0, 2, 7, 61, 0, 100, 0, 0, 0, 0, 0, 11, 43174, 0, 0, 0, 0, 0, 18, 35, 0, 0, 0, 0, 0, 0, 'Proto-Drake - On Follow Complete - Cast \'Draconis Gastritis: Kill Credit\''),
|
||||
(23689, 0, 3, 5, 1, 0, 100, 0, 10000, 10000, 10000, 10000, 29, 0, 0, 24170, 1, 1, 0, 19, 24170, 75, 0, 0, 0, 0, 0, 'Proto-Drake - Out of Combat - Start Follow Closest Creature \'Draconis Gastritis Bunny\''),
|
||||
(23689, 0, 4, 0, 65, 0, 100, 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 19, 24170, 5, 0, 0, 0, 0, 0, 'Proto-Drake - On Follow Complete - Kill Target'),
|
||||
(23689, 0, 5, 0, 61, 0, 100, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Proto-Drake - Out of Combat - Set Event Phase 1'),
|
||||
(23689, 0, 6, 0, 1, 1, 100, 0, 45000, 45000, 45000, 45000, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Proto-Drake - Out of Combat - Despawn Instant'),
|
||||
(23689, 0, 7, 0, 61, 0, 100, 0, 0, 0, 0, 0, 33, 24170, 0, 0, 0, 0, 0, 18, 35, 0, 0, 0, 0, 0, 0, 'Proto-Drake - On Death - Quest Reward'),
|
||||
(23689, 0, 8, 0, 8, 0, 100, 0, 40969, 0, 120000, 120000, 69, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Proto-Drake - On Spellhit - Move to Position'),
|
||||
(23689, 0, 9, 0, 9, 0, 100, 1, 0, 20, 0, 0, 101, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Proto-Drake - On Range - Set Home Position'),
|
||||
(23689, 0, 10, 0, 9, 0, 100, 0, 0, 5, 2000, 3500, 11, 51219, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Proto-Drake - On Range - Cast Flame Breath'),
|
||||
(23689, 0, 11, 0, 0, 0, 100, 0, 3000, 9000, 30000, 45000, 11, 42362, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Proto-Drake - IC - Cast Flames of Birth'),
|
||||
(23689, 0, 12, 0, 9, 0, 100, 0, 0, 20, 10000, 15000, 11, 41572, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Proto-Drake - On Range - Cast Wing Buffet');
|
||||
@@ -0,0 +1,11 @@
|
||||
--
|
||||
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=2230;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` IN(2274,2275) AND `source_type`=0;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` =227400 AND `source_type`=9;
|
||||
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(2274, 0, 0, 1, 20, 0, 100, 0, 502, 0, 0, 0, 36, 2275, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Stanley - On Quest Complete "Elixir of Pain" - Update Template To "Enraged Stanley"'),
|
||||
(2274, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Stanley - On Quest Complete "Elixir of Pain" - Attack Invoker'),
|
||||
(2274, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 80, 227400, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Stanley - On Quest Complete "Elixir of Pain" - Run Script'),
|
||||
(2274, 0, 3, 0, 6, 0, 100, 0, 0, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Stanley - On Death - Reset All Scripts'),
|
||||
(227400, 9, 0, 0, 0, 0, 100, 0, 120000, 120000, 0, 0, 36, 2274, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Stanley - Script - Update Entry to Stanley');
|
||||
@@ -0,0 +1,18 @@
|
||||
--
|
||||
UPDATE `smart_scripts` SET `event_type`=11 WHERE `entryorguid`=24788 AND `source_type`=0 AND `id`=0 AND `link`=0;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=24639 AND `id`>2;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(24639, 0, 3, 0, 40, 0, 100, 0, 3, 246390, 0, 0, 66, 5.07, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 'Olga, the Scalawag Wench - On Waypoint 3 (Return) Reached - Set Orientation'),
|
||||
(24639, 0, 4, 5, 38, 0, 100, 0, 4, 4, 0, 0, 45, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Olga, the Scalawag Wench - On Data set 4 4 - Set Data 1 0'),
|
||||
(24639, 0, 5, 0, 61, 0, 100, 0, 0, 0, 0, 0, 81, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Olga, the Scalawag Wench - On Data set 4 4 - Set NPC Flags');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=24788 AND `id`>7;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(24788, 0, 8, 9, 25, 0, 100, 0, 0, 0, 0, 0, 28, 58806, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Jack Adams - On Reset - Remove permanent feign death'),
|
||||
(24788, 0, 9, 0, 61, 0, 100, 0, 0, 0, 0, 0, 45, 4, 4, 0, 0, 0, 0, 19, 24639, 0, 0, 0, 0, 0, 0, 'Jack Adams - On Reset - Set Data 4 4');
|
||||
|
||||
UPDATE `smart_scripts` SET `action_param1`=58806 WHERE `entryorguid`=2478800 AND `source_type`=9 AND `id`=6 AND `link`=0;
|
||||
|
||||
DELETE FROM `waypoints` WHERE `entry`=246390 AND `pointid`=3;
|
||||
INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES
|
||||
(246390, 3, -91.8194, -3532.71, 7.7126, 'Olga, the Scalawag Wench');
|
||||
@@ -0,0 +1,37 @@
|
||||
-- Gurgthock SAI
|
||||
SET @ENTRY := 18471;
|
||||
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(@ENTRY,0,0,1,19,0,100,0,9962,0,0,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurgthock - On Quest 'The Ring of Blood: Brokentoe' Taken - Say Line 0"),
|
||||
(@ENTRY,0,1,20,61,0,100,0,9962,0,0,0,80,1847100,2,0,0,0,0,1,0,0,0,0,0,0,0,"Gurgthock - On Quest 'The Ring of Blood: Brokentoe' Taken - Run Script"),
|
||||
(@ENTRY,0,2,3,19,0,100,0,9967,0,0,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurgthock - On Quest 'The Ring of Blood: The Blue Brothers' Taken - Say Line 0"),
|
||||
(@ENTRY,0,3,20,61,0,100,0,9967,0,0,0,80,1847101,2,0,0,0,0,1,0,0,0,0,0,0,0,"Gurgthock - On Quest 'The Ring of Blood: The Blue Brothers' Taken - Run Script"),
|
||||
(@ENTRY,0,4,5,19,0,100,0,9970,0,0,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurgthock - On Quest 'The Ring of Blood: Rokdar the Sundered Lord' Taken - Say Line 0"),
|
||||
(@ENTRY,0,5,20,61,0,100,0,9970,0,0,0,80,1847102,2,0,0,0,0,1,0,0,0,0,0,0,0,"Gurgthock - On Quest 'The Ring of Blood: Rokdar the Sundered Lord' Taken - Run Script"),
|
||||
(@ENTRY,0,6,7,19,0,100,0,9972,0,0,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurgthock - On Quest 'The Ring of Blood: Skra'gath' Taken - Say Line 0"),
|
||||
(@ENTRY,0,7,20,61,0,100,0,9972,0,0,0,80,1847103,2,0,0,0,0,1,0,0,0,0,0,0,0,"Gurgthock - On Quest 'The Ring of Blood: Skra'gath' Taken - Run Script"),
|
||||
(@ENTRY,0,8,9,19,0,100,0,9973,0,0,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurgthock - On Quest 'The Ring of Blood: The Warmaul Champion' Taken - Say Line 0"),
|
||||
(@ENTRY,0,9,20,61,0,100,0,9973,0,0,0,80,1847104,2,0,0,0,0,1,0,0,0,0,0,0,0,"Gurgthock - On Quest 'The Ring of Blood: The Warmaul Champion' Taken - Run Script"),
|
||||
(@ENTRY,0,10,11,19,0,100,0,9977,0,0,0,1,11,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurgthock - On Quest 'The Ring of Blood: The Final Challenge' Taken - Say Line 11"),
|
||||
(@ENTRY,0,11,20,61,0,100,0,9977,0,0,0,45,1,1,0,0,0,0,19,18069,0,0,0,0,0,0,"Gurgthock - On Quest 'The Ring of Blood: The Final Challenge' Taken - Set Data 1 1"),
|
||||
(@ENTRY,0,12,22,38,0,100,0,10,10,0,0,1,2,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurgthock - On Data Set 10 10 - Say Line 2"),
|
||||
(@ENTRY,0,13,22,38,0,100,0,11,11,0,0,1,4,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurgthock - On Data Set 11 11 - Say Line 4"),
|
||||
(@ENTRY,0,14,15,38,0,100,0,12,12,0,0,1,6,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurgthock - On Data Set 12 12 - Say Line 6"),
|
||||
(@ENTRY,0,15,22,61,0,100,0,0,0,0,0,45,12,12,0,0,0,0,19,18069,0,0,0,0,0,0,"Gurgthock - On Data Set 12 12 - Set Data 12 12"),
|
||||
(@ENTRY,0,16,17,38,0,100,0,13,13,0,0,1,8,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurgthock - On Data Set 13 13 - Say Line 8"),
|
||||
(@ENTRY,0,17,22,61,0,100,0,0,0,0,0,45,13,13,0,0,0,0,19,18069,0,0,0,0,0,0,"Gurgthock - On Data Set 13 13 - Set Data 13 13"),
|
||||
(@ENTRY,0,18,19,38,0,100,0,14,14,0,0,1,10,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurgthock - On Data Set 14 14 - Say Line 10"),
|
||||
(@ENTRY,0,19,22,61,0,100,0,0,0,0,0,45,14,14,0,0,0,0,19,18069,0,0,0,0,0,0,"Gurgthock - On Data Set 14 14 - Set Data 14 14"),
|
||||
(@ENTRY,0,20,21,61,0,100,0,0,0,0,0,81,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gurgthock - On Data Set 14 14 - Set Npc Flag Gossip"),
|
||||
(@ENTRY,0,21,0,61,0,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gurgthock - Link - Set Event Phase 2"),
|
||||
(@ENTRY,0,22,23,61,0,100,0,0,0,0,0,81,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gurgthock - Link - Set Npc Flags Gossip & Questgiver"),
|
||||
(@ENTRY,0,23,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gurgthock - Link - Set Event Phase 0"),
|
||||
(@ENTRY,0,24,25,1,2,100,0,300000,300000,300000,300000,81,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gurgthock - Out of Combat - Set Npc Flags Gossip & Questgiver (Phase 2)"),
|
||||
(@ENTRY,0,25,0,61,2,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gurgthock - Out of Combat - Set Event Phase 0 (Phase 2)"),
|
||||
(@ENTRY,0,26,22,38,0,100,0,15,15,0,0,70,0,0,0,0,0,0,19,18471,0,0,0,0,0,0,"Gurgthock - On Data Set 15 15 - Respawn Mogor");
|
||||
|
||||
UPDATE `smart_scripts` SET `link`=15 WHERE `entryorguid`=18069 AND `source_type`=0 AND `id`=14 AND `link`=0;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=18069 AND `id`=15 AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(18069, 0, 15, 0, 61, 0, 100, 0, 0, 0, 0, 0, 45, 15, 15, 0, 0, 0, 0, 19, 18471, 0, 0, 0, 0, 0, 0, 'Mogor - Linked with Previous Event - Say Data');
|
||||
@@ -0,0 +1,12 @@
|
||||
--
|
||||
SET @ENTRY := 18399;
|
||||
|
||||
UPDATE `smart_scripts` SET `event_phase_mask`=1 WHERE `entryorguid`=18399 AND `source_type`=0 AND `id` IN(4,5);
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0 AND `id` BETWEEN 6 AND 10;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(@ENTRY,0,6,7,25,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Twin - On Reset - Set Event Phase 0"),
|
||||
(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,70,0,0,0,0,0,0,9,18399,0,100,0,0,0,0,"Murkblood Twin - On Reset - Respawn "),
|
||||
(@ENTRY,0,8,0,6,0,100,0,0,0,0,0,45,1,1,0,0,0,0,9,18399,0,100,0,0,0,0,"Murkblood Twin - On Just Died - Set Data 1 1"),
|
||||
(@ENTRY,0,9,10,38,0,100,0,1,1,0,0,45,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Twin - On Data Set 1 1 - Set Data 1 0"),
|
||||
(@ENTRY,0,10,0,61,0,100,0,1,1,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkblood Twin - Linked with Previous Event - Increment Phase");
|
||||
@@ -0,0 +1,12 @@
|
||||
--
|
||||
SET @GUID = 13278;
|
||||
|
||||
DELETE FROM `gameobject` WHERE guid BETWEEN @GUID+0 AND @GUID+6;
|
||||
INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
|
||||
(@GUID+0,194955,571,1,1,5988.04,4473.78,-87.3617,1.74533,0,0,0.766045,0.642787,180,255,1),
|
||||
(@GUID+1,194955,571,1,1,6073.83,4463.66,-84.9872,-0.820303,0,0,-0.398748,0.91706,180,255,1),
|
||||
(@GUID+2,194955,571,1,1,6130.8,4462.61,-84.544,2.75761,0,0,0.981626,0.190814,180,255,1),
|
||||
(@GUID+3,194955,571,1,1,6075.99,4523.62,-81.0092,0.698132,0,0,0.34202,0.939693,180,255,1),
|
||||
(@GUID+4,194955,571,1,1,6012.03,4517.3,-86.8614,0.872664,0,0,0.422618,0.906308,180,255,1),
|
||||
(@GUID+5,194955,571,1,1,6092.64,4425.49,-83.9704,-2.72271,0,0,-0.978147,0.207914,180,255,1),
|
||||
(@GUID+6,194955,571,1,1,6102.15,4497.03,-81.3401,-2.63544,0,0,-0.968147,0.250383,180,255,1);
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1 @@
|
||||
UPDATE `creature_text` `A` INNER JOIN `broadcast_text` `B` ON `A`.`BroadcastTextID`=`B`.`ID` SET `A`.`Language`=`B`.`Language`;
|
||||
@@ -0,0 +1,57 @@
|
||||
DELETE FROM `areatrigger_scripts` WHERE `entry` IN (5082,5083,5084);
|
||||
INSERT INTO `areatrigger_scripts` (`entry`, `ScriptName`) VALUES
|
||||
(5082,'SmartTrigger'),
|
||||
(5083,'SmartTrigger'),
|
||||
(5084,'SmartTrigger');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (5082,5083,5084) AND `source_type`=2;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(5082,2,0,1,46,0,100,0,5082,0,0,0,45,1,1,0,0,0,0,10,126866,15214,0,0,0,0,0,"On Trigger - Set Data"),
|
||||
(5083,2,0,1,46,0,100,0,5083,0,0,0,45,1,2,0,0,0,0,10,126866,15214,0,0,0,0,0,"On Trigger - Set Data"),
|
||||
(5084,2,0,1,46,0,100,0,5084,0,0,0,45,1,3,0,0,0,0,10,126866,15214,0,0,0,0,0,"On Trigger - Set Data");
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` =-126866 AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(-126866,0,0,1,38,0,100,0,1,1,60000,60000,45,1,1,0,0,0,0,10,126860,28965,0,0,0,0,0,"Invisible Stalker - On Data Set - Set Data"),
|
||||
(-126866,0,1,2,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126848,28965,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,2,3,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126851,28965,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,3,4,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126836,28961,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,4,5,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126847,28961,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,5,6,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126846,28961,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,6,7,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126844,28961,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,7,28,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126845,28961,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,8,9,38,0,100,0,1,2,60000,60000,45,1,1,0,0,0,0,10,126837,28961,0,0,0,0,0,"Invisible Stalker - On Data Set - Set Data"),
|
||||
(-126866,0,9,10,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126852,28965,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,10,11,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126861,28965,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,11,12,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126838,28961,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,12,13,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126843,28961,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,13,14,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126841,28961,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,14,15,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126849,28965,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,15,29,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126862,28965,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,16,17,38,0,100,0,1,3,60000,60000,45,1,1,0,0,0,0,10,126857,28965,0,0,0,0,0,"Invisible Stalker - On Data Set - Set Data"),
|
||||
(-126866,0,17,18,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126855,28965,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,18,19,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126859,28965,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,19,20,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126854,28965,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,20,21,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126853,28965,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,21,22,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126858,28965,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,22,23,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126856,28965,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,23,24,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126850,28965,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,24,25,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126835,28961,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,25,26,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126840,28961,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,26,27,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126839,28961,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data"),
|
||||
(-126866,0,27,0,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,10,126842,28961,0,0,0,0,0,"Invisible Stalker - Linked with Previous Event - Set Data");
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (28961,28965) AND `id`>3;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(28961, 0, 4, 0, 4, 0, 100, 0, 0, 0, 0, 0, 28, 16245, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Titanium Siegebreaker - On Aggro - Remove Freeze Animation'),
|
||||
(28965, 0, 4, 0, 4, 0, 100, 0, 0, 0, 0, 0, 28, 16245, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Titanium Thunderer - On Aggro - Remove Freeze Animation'),
|
||||
(28961, 0, 5, 8,38, 0, 35, 0, 1, 1, 0, 0, 19, 33555200, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Titanium Siegebreaker - On Data Set - Remove Unattackable Flags'),
|
||||
(28965, 0, 5, 10,38, 0, 35, 0, 1, 1, 0, 0, 19, 33555200, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Titanium Thunderer - On Data Set - Remove Unattackable Flags'),
|
||||
(28961, 0, 6, 0, 2, 0, 100, 1, 0, 20, 0, 0, 11, 19134, 2, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 'Titanium Siegebreaker - On Death - Cast Frightening Shout'),
|
||||
(28961, 0, 7, 0, 9, 0, 100, 0, 0, 5, 10000, 15000, 11, 52890, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Titanium Siegebreaker - On Range - Cast Penetrating Strike'),
|
||||
(28965, 0, 6, 0,13, 0, 100, 3, 45000, 60000, 0, 0, 11, 52885, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Titanium Thunderer - On Target Casting - Cast Deadly Throw'),
|
||||
(28965, 0, 7, 0,13, 0, 100, 5, 45000, 60000, 0, 0, 11, 59180, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Titanium Thunderer - On Target Casting - Cast Deadly Throw (Heroic)'),
|
||||
(28965, 0, 8, 0,0, 0, 100, 2, 0, 5000, 7000, 15000, 11, 52904, 2, 0, 0, 0, 0,5, 0, 0, 0, 0, 0, 0, 0, 'Titanium Thunderer - IC - Cast Throw'),
|
||||
(28965, 0, 9, 0,0, 0, 100, 4, 0, 5000, 7000, 15000, 11, 59179, 2, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 'Titanium Thunderer - IC - Cast Throw (Heroic)'),
|
||||
(28961, 0, 8, 0,61, 0, 100, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 21, 80, 0, 0, 0, 0, 0, 0, 'Titanium Siegebreaker - Linked with Previous Event - Attack closest player'),
|
||||
(28965, 0, 10, 0,61, 0, 100, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 21,80, 0, 0, 0, 0, 0, 0, 'Titanium Thunderer - Linked with Previous Event - Attack closest player');
|
||||
@@ -0,0 +1,6 @@
|
||||
--
|
||||
SET @GUID1 := 5380; -- Set by TDB team
|
||||
|
||||
DELETE FROM `gameobject` WHERE (`guid`=@GUID1);
|
||||
INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
|
||||
(@GUID1, 180659, 1, 1, 1, 5086.19, -5116.32, 931.162, 4.78877, 0, 0, 0.679593, -0.733589, -150, 0, 1);
|
||||
@@ -0,0 +1,2 @@
|
||||
--
|
||||
UPDATE `creature_template` SET `exp`=2 WHERE `entry` IN(23564,24198);
|
||||
@@ -0,0 +1,6 @@
|
||||
--
|
||||
UPDATE `smart_scripts` SET `target_param2`=30 WHERE `entryorguid`=22444 AND `source_type`=0 AND `id`=1;
|
||||
UPDATE `gameobject_template` SET `ainame`='SmartGameObjectAI' WHERE `entry`=185298;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=185298 AND `source_type`=1;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(185298,1,0,0,70,0,100,0,2,0,0,0,41,0,0,0,0,0,0,19,22444,5,0,0,0,0,0,'Anchorite Relic - On State Changed - Despawn Anchorite Relic Bunny');
|
||||
@@ -0,0 +1,55 @@
|
||||
-- Texts needs to be updated for cata (no BroadcastTextID because this reason)
|
||||
UPDATE `gameobject_template` SET `AIName`= 'SmartGameObjectAI' WHERE `entry`=148498;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` =148498;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(148498,1,0,1,62,0,100,0,1282,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Altar of Suntara - On Gossip Select - Close gossip'),
|
||||
(148498,1,1,0,61,0,100,0,0,0,0,0,12,8391,3,300000,0,0,0,8,0,0,0,-6460.528,-1267.63,180.7818,1.89,'Altar of Suntara - Linked with previous event - spawn Lathoric the Black');
|
||||
|
||||
|
||||
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=8391;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` =8391;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(8391, 0,0,1,11,0,100,0,0,0,0,0,69,0,0,0,0,0,0,8,0,0,0,-6475.467285,-1242.283203,180.190109,3.58,'Lathoric the Black - On Spawn - Move to Altar of Suntara'),
|
||||
(8391, 0,1,0,61,0,100,1,0,0,0,0,12,8421,3,45000,0,0,0,8,0,0,0,-6481.127441,-1237.451538,180.067535,5.104429,'Lathoric the Black - Linked with Previous Event - Spawn Dorius'),
|
||||
(8391, 0,2,0,1 ,0,100,1,8000,8000,0,0,1,0,5000,0,0,0,0,9,8421,0,100,0,0,0,0,'Lathoric the Black - OOC - Say (Dorius)'),
|
||||
(8391, 0,3,0,52,0,100,0,0,8421,0,0,1,1,5000,0,0,0,0,9,8421,0,100,0,0,0,0,'Lathoric the Black - On Text Over - Say (Dorius)'),
|
||||
(8391, 0,4,0,52,0,100,0,1,8421,0,0,1,2,5000,0,0,0,0,9,8421,0,100,0,0,0,0,'Lathoric the Black - On Text Over - Say (Dorius)'),
|
||||
(8391, 0,5,0,52,0,100,0,2,8421,0,0,1,3,5000,0,0,0,0,9,8421,0,100,0,0,0,0,'Lathoric the Black - On Text Over - Say (Dorius)'),
|
||||
(8391, 0,6,0,52,0,100,0,3,8421,0,0,1,4,5000,0,0,0,0,9,8421,0,100,0,0,0,0,'Lathoric the Black - On Text Over - Say (Dorius)'),
|
||||
(8391, 0,7,0,52,0,100,0,4,8421,0,0,1,0,5000,0,0,0,0,1,0,0,0,0,0,0,0,'Lathoric the Black - On Text Over - Say'),
|
||||
(8391, 0,8,0,52,0,100,0,0,8391,0,0,1,1,2000,0,0,0,0,1,0,0,0,0,0,0,0,'Lathoric the Black - On Text Over - Say'),
|
||||
(8391, 0,9,10,52,0,100,0,1,8391,0,0,45,1,1,0,0,0,0,10,5799,8400,0,0,0,0,0,'Lathoric the Black - OOC - Send Data to Obsidion'),
|
||||
(8391, 0,10,11,61,0,100,1,0,0,0,0,101,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lathoric the Black - Linked with Previous Event - Set Home Position'),
|
||||
(8391, 0,11,0,61,0,100,1,0,0,0,0,49,0,0,0,0,0,0,21,100,0,0,0,0,0,0,'Lathoric the Black - Linked with Previous Event - Attack'),
|
||||
(8391, 0,12,0,7,0,100,1,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lathoric the Black - On Evade - Despawn'),
|
||||
(8391, 0,13,0,11,0,100,1,0,0,0,0,8,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lathoric the Black - On Spawn - Set React State Defensive');
|
||||
|
||||
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=8400;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` =8400;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(8400, 0,0,1,38,0,100,0,1,1,0,0,19,256,0,0,0,0,0,8,0,0,0,0,0,0,0,'Obsidion - On Data Set - Remove Unattackable Flags'),
|
||||
(8400, 0,1,2,61,0,100,0,0,0,0,0,91,7,0,0,0,0,0,1,0,0,0,0,0,0,0,'Obsidion - Linked with Previous Event - Set Bytes_1'),
|
||||
(8400, 0,2,0,61,0,100,0,0,0,0,0,49,0,0,0,0,0,0,21,100,0,0,0,0,0,0,'Obsidion - Linked with Previous Event - Attack'),
|
||||
(8400, 0,3,4,7,0,100,0,0,0,0,0,90,7,0,0,0,0,0,1,0,0,0,0,0,0,0,'Obsidion - On Evade - Set Bytes_1'),
|
||||
(8400, 0,4,0,61,0,100,0,0,0,0,0,18,256,0,0,0,0,0,1,0,0,0,0,0,0,0,'Obsidion - On Evade - Set Unit Flags'),
|
||||
(8400, 0,5,0,9,0,100,0,0,10,20000,30000,11,12734,2,0,0,0,0,1,0,0,0,0,0,0,0,'Obsidion - On Range - Cast Floor Smash'),
|
||||
(8400, 0,6,0,9,0,100,0,0,5,15000,30000,11,10101,2,0,0,0,0,7,0,0,0,0,0,0,0,'Obsidion - On Range - Cast Knock Away');
|
||||
|
||||
DELETE FROM `creature_text` WHERE `entry` IN (8391,8421);
|
||||
INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
|
||||
(8421,0,0,'Fools. I knew that if I played upon my brother''s feeble emotions, he would send ''rescuers.''',12,0,100,0,0,0,'Dorius'),
|
||||
(8421,1,0,'How easy it was to manipulate you into recovering the last Suntara stone from those imbeciles of the Twilight''s Hammer.',12,0,100,0,0,0,'Dorius'),
|
||||
(8421,2,0,'When I stumbled upon the Suntara stones at the Grimesilt Digsite, the power of Ragnaros surged through my being. It was Ragnaros that gave me a purpose.',12,0,100,0,0,0,'Dorius'),
|
||||
(8421,3,0,'It was the will of Ragnaros that Obsidion be built. Obsidion will destroy the Blackrock orcs of Blackrock Spire, uniting us with our bretheren in the fiery depths.',12,0,100,0,0,0,'Dorius'),
|
||||
(8421,4,0,'And ultimately, it was Ragnaros that named me when I was reborn as an acolyte of fire: Lathoric... Lathoric the Black.',12,0,100,0,0,0,'Dorius'),
|
||||
(8391,0,0,'Your task is complete. Prepare to meet your doom.',12,0,100,0,0,0,'Lathoric the Black'),
|
||||
(8391,1,0,'Obsidion, Rise and Serve your Master!',12,0,100,0,0,0,'Lathoric the Black');
|
||||
|
||||
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=8417;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` =8417;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(8417,0,0,0,19,0,100,0,3566,0,0,0,12,8391,3,300000,0,0,0,8,0,0,0,-6460.528,-1267.63,180.7818,1.89,' Dying Archaeologist - On Quest Accept - spawn Lathoric the Black');
|
||||
@@ -0,0 +1,2 @@
|
||||
--
|
||||
UPDATE `gameobject_loot_template` SET `ChanceOrQuestChance`=100 WHERE `entry`=13580 AND `item`=12845;
|
||||
@@ -0,0 +1,15 @@
|
||||
--
|
||||
UPDATE `gameobject_template` SET `AIName`='SmartGameObjectAI' WHERE `entry`=185928;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=185928 AND `source_type`=1;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(185928, 1, 0, 1, 62, 0, 100, 0, 8687, 0, 0, 0, 85, 41004, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Ancient Skull Pile - On Gossip Option 0 Selected - Invoker Cast Summon Terokk'),
|
||||
(185928, 1, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Ancient Skull Pile - On Gossip Option 0 Selected - Close Gossip');
|
||||
|
||||
DELETE FROM `event_scripts` WHERE `id` =15014;
|
||||
INSERT INTO `event_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) VALUES
|
||||
(15014, 0, 10, 21838, 3000000, 0, -3789.4, 3507.63, 286.982, -0.994838);
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=8687 AND `ConditionTypeOrReference`=29;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(15, 8687, 0, 0, 0, 29, 0, 21838, 200, 0, 1, 0, 0, '', 'Only show gossip if no terokk nearby');
|
||||
@@ -0,0 +1,24 @@
|
||||
--
|
||||
UPDATE `creature_template` SET `AIName`= 'SmartAI', `ScriptName`= '' WHERE `entry`=4979;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` =4979 AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(4979,0,0,1,62,0,100,0,8851,0,0,0,81,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Theramore Guard - on Gossip option select - set NPC Flags'),
|
||||
(4979,0,1,2,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Theramore Guard - Linked with Previous Event - Close Gossip'),
|
||||
(4979,0,2,3,61,0,100,0,0,0,0,0,1,0,3000,0,0,0,0,1,0,0,0,0,0,0,0,'Theramore Guard - Linked with Previous Event - Say Line 0'),
|
||||
(4979,0,3,0,61,0,100,0,0,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0,'Theramore Guard - Linked with Previous Event - Store Targetlist'),
|
||||
(4979,0,4,0,52,0,100,0,0,4979,0,0,11,42725,0,0,0,0,0,1,0,0,0,0,0,0,0,'Theramore Guard - Linked with Previous Event - Cast Doctored Leaflet'),
|
||||
(4979,0,5,6,23,0,100,0,42246,1,121000,121000,1,1,3000,0,0,0,0,1,0,0,0,0,0,0,0,'Theramore Guard - On Has Aura Propagandized! - Say Line 1'),
|
||||
(4979,0,6,0,61,0,100,0,0,0,0,0,33,4979,0,0,0,0,0,12,1,0,0,0,0,0,0,'Theramore Guard - Linked with Previous Event - Give Kill Credit'),
|
||||
(4979,0,7,8,52,0,100,0,1,4979,0,0,1,2,4000,0,0,0,0,1,0,0,0,0,0,0,0,'Theramore Guard - On Text Over Line 1 - Say line 2'),
|
||||
(4979,0,8,0,61,0,100,0,0,0,0,0,5,11,0,0,0,0,0,1,0,0,0,0,0,0,0,'Theramore Guard - Linked with Previous Event - Play Emote ONESHOT_LAUGH'),
|
||||
(4979,0,9,0,52,0,100,0,2,4979,0,0,81,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Theramore Guard - On Text Over Line 2 - Set NPC Flags');
|
||||
|
||||
DELETE FROM `gossip_menu_option` WHERE `menu_id` in(8851);
|
||||
INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `OptionBroadcastTextID`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`, `BoxBroadcastTextID`) VALUES
|
||||
(8851, 0, 0, 'You look like an intelligent person. Why don''t you read one of these leaflets and give it some thought?', 22549, 1, 1, 21084, 0, 0, 0, NULL, 0);
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup` IN(8851);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(15, 8851, 0, 0, 0, 9, 0, 11133, 0, 0, 0, 0, 0, '', 'Gossip Option requires Discrediting the Deserters Taken'),
|
||||
(15, 8851, 0, 0, 0, 1, 1, 42246, 0, 0, 1, 0, 0, '', 'Gossip Option requires NPC does not have aura Propagandized!');
|
||||
@@ -0,0 +1,22 @@
|
||||
--
|
||||
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=27353;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=27353;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(27353, 0, 0, 0, 11, 0, 100, 0, 0, 0, 0, 0, 12, 27238, 2, 120000, 0, 0, 0, 8, 0, 0, 0, 2802.381836,-199.922272,139.160980,3.575861, 'Levine Family Termite Bunny - On Spawn - Summon Foreman Kaleiki');
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry` =27353;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
|
||||
(22,1,27353,0,0,29,1,27238,40,0,1,0,'',' Foreman Kaleiki only spawns if not present');
|
||||
|
||||
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=27238;
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=27238;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(27238, 0, 0, 0, 9, 0, 100, 0, 0, 5, 14000, 18000, 11, 9080, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Foreman Kaleiki - On Range - Cast Hamstring'),
|
||||
(27238, 0, 1, 0, 0, 0, 100, 0, 8000, 11000, 8000, 11000, 11, 43673, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Foreman Kaleiki - IC - Cast Mighty Blow'),
|
||||
(27238, 0, 2, 3,11, 0, 100, 0, 0, 0, 0, 0, 2, 14, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Foreman Kaleiki - On Spawn - Set Faction'),
|
||||
(27238, 0, 3, 0,61, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Foreman Kaleiki - Linked with Previous Event - Say');
|
||||
|
||||
DELETE FROM `creature_text` WHERE `entry` =27238;
|
||||
INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES
|
||||
(27238, 0, 0, 'My beautiful mill. You! You\'ll die for this!', 12, 0, 100, 0, 0, 0, 'Foreman Kaleiki', 26418);
|
||||
@@ -0,0 +1,128 @@
|
||||
-- Quest 12467: Chasing Icestorm: Thel'zan's Phylactery
|
||||
-- Icestorm SAI
|
||||
SET @ENTRY := 26287;
|
||||
SET @SPELL1 := 47425; -- Frost Breath
|
||||
SET @SPELL2 := 49695; -- Summon Thel'zan's Phylactery
|
||||
|
||||
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=@ENTRY;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid`=@ENTRY*100;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(@ENTRY,0,0,1,11,0,100,0,0,0,0,0,3,0,24165,0,0,0,0,1,0,0,0,0,0,0,0,'Icestorm - Just created - set model'),
|
||||
(@ENTRY,0,1,2,61,0,100,0,0,0,0,0,60,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Icestorm - Just created - turn fly on'),
|
||||
(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,53,1,@ENTRY*100,0,0,0,0,1,0,0,0,0,0,0,0,'Icestorm - Just created - load path'),
|
||||
(@ENTRY,0,3,0,0,0,100,0,1000,3000,3000,5000,11,@SPELL1,0,0,0,0,0,5,0,0,0,0,0,0,0,'Icestorm - Combat - Cast Frost Breath'),
|
||||
(@ENTRY,0,4,11,6,0,100,0,0,0,0,0,11,@SPELL2,3,0,0,0,0,1,0,0,0,0,0,0,0,'Icestorm - On death - Cast Summon Thel''zan''s Phylactery'),
|
||||
(@ENTRY,0,5,6,4,0,100,0,0,0,0,0,45,0,1,0,0,0,0,11,27843,100,0,0,0,0,0,'Wyrmbait - reach waypoint path 1 wp 5 - set data'),
|
||||
(@ENTRY,0,6,7,61,0,100,0,0,0,0,0,60,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Wyrmbait - reach waypoint path 1 wp 5 - Run Script'),
|
||||
(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,80,@ENTRY*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Wyrmbait - reach waypoint path 1 wp 5 - Run Script'),
|
||||
(@ENTRY,0,8,0,4,0,100,0,0,0,0,0,91,50331648,0,0,0,0,0,1,0,0,0,0,0,0,0,'Icestorm - Just created - turn fly on'),
|
||||
(@ENTRY,0,9,0,40,0,100,0,0,0,0,0,101,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Icestorm - On WP - Set Home Position'),
|
||||
(@ENTRY,0,10,0,40,0,100,0,5,@ENTRY*100,0,0,1,0,0,0,0,0,0,19,27844,0,0,0,0,0,0,'Wyrmbait - reach waypoint path 1 wp 5 - Say'),
|
||||
(@ENTRY,0,11,0,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Icestorm - On Death - Say'),
|
||||
(@ENTRY*100,9,0,0,0,0,100,0,0,0,0,0,60,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Wyrmbait - reach waypoint path 2 wp 1 - turn fly off'),
|
||||
(@ENTRY*100,9,1,0,0,0,100,0,0,0,0,0,53,0,@ENTRY*100+1,2,0,0,0,1,0,0,0,0,0,0,0,'Icestorm - script - load path');
|
||||
|
||||
-- waypoints for Icestorm
|
||||
DELETE FROM `waypoints` WHERE `entry` IN (@ENTRY*100,@ENTRY*100+1);
|
||||
INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES
|
||||
(@ENTRY*100,5,4543.821,45.72195,104.5742, 'Icestorm'),
|
||||
(@ENTRY*100,4,4551.378,94.04321,127.0742, 'Icestorm'),
|
||||
(@ENTRY*100,3,4561.495,200.4222,139.8242, 'Icestorm'),
|
||||
(@ENTRY*100,2,4560.903,224.9135,135.4687, 'Icestorm'),
|
||||
(@ENTRY*100,1,4561.007,225.9081,135.4687, 'Icestorm'),
|
||||
(@ENTRY*100+1,1,4543.458,46.66932,82.14817, 'Icestorm');
|
||||
|
||||
-- Update Model info for Icestorm
|
||||
UPDATE `creature_model_info` SET `bounding_radius`=1.5,`combat_reach`=7.5 WHERE `modelid`=16919;
|
||||
|
||||
DELETE FROM `creature_model_info` WHERE `modelid`=24165;
|
||||
INSERT INTO `creature_model_info` (`modelid`,`bounding_radius`,`combat_reach`,`gender`) VALUES
|
||||
(24165,1.5,7.5,2);
|
||||
|
||||
-- Add creature_template_addon for Icestorm
|
||||
DELETE FROM `creature_template_addon` WHERE `entry`=26287;
|
||||
INSERT INTO `creature_template_addon` (`entry`,`bytes1`,`bytes2`) VALUES (26287,50331648,1);
|
||||
|
||||
-- 7th Legion Harpoon Gun SAI
|
||||
SET @ENTRY := 27839;
|
||||
SET @SPELL1 := 49679; -- Harpoon Chain
|
||||
SET @SPELL2 := 49682; -- Harpoon Chain
|
||||
SET @SPELL3 := 49683; -- Harpoon Chain
|
||||
SET @SPELL4 := 49684; -- Harpoon Chain
|
||||
|
||||
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=@ENTRY;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(@ENTRY,0,0,0,1,1,100,0,2000,2000,2000,2000,11,@SPELL1,0,0,0,0,0,11,26287,100,0,0,0,0,0,'7th Legion Harpoon Gun - OOC - Cast spell (phase 1)'),
|
||||
(@ENTRY,0,1,0,38,0,100,0,0,1,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'7th Legion Harpoon Gun - on dataset 0 1 - set phase 1');
|
||||
|
||||
-- Spell Conditions
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry` IN (49679,49682,49683,49684);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
|
||||
(13,1,49679,0,31,3,26287,0,0,'','Spell 49679 can only target Icestorm'),
|
||||
(13,1,49682,0,31,3,26287,0,0,'','Spell 49682 can only target Icestorm'),
|
||||
(13,1,49683,0,31,3,26287,0,0,'','Spell 49683 can only target Icestorm'),
|
||||
(13,1,49684,0,31,3,26287,0,0,'','Spell 49684 can only target Icestorm');
|
||||
|
||||
-- Gossip option
|
||||
DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (9603);
|
||||
INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `OptionBroadcastTextID`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`, `BoxBroadcastTextID`) VALUES
|
||||
(9603, 0, 0, 'Wyrmbait, eh? Welp, go fetch us Icestorm!', 27137, 1, 1, 0, 0, 0, 0, '', 0);
|
||||
|
||||
-- Conditions for the gossip options
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceGroup` IN (9603);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`comment`) VALUES
|
||||
(15,9603,0,0,9,12467,'Gossip option 0 requires quest 12467 active');
|
||||
|
||||
-- Wyrmbait SAI
|
||||
SET @ENTRY := 27843;
|
||||
SET @SPELL1 := 15620; -- Shoot
|
||||
|
||||
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=@ENTRY;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY AND `id`>13;
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid` IN (@ENTRY*100,@ENTRY*100+1);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(@ENTRY,0,14,0,62,0,100,0,9603,0,0,0,80,@ENTRY*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Wyrmbait - gossip option select - Run Script'),
|
||||
(@ENTRY,0,15,0,0,0,100,1,0,0,0,0,39,100,0,0,0,0,0,1,0,0,0,0,0,0,0,'Wyrmbait - combat - call for help'),
|
||||
(@ENTRY,0,17,0,7,0,100,0,0,0,0,0,81,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Wyrmbait - on reset - add npcflag'),
|
||||
(@ENTRY,0,18,0,40,0,100,0,5,@ENTRY*100,0,0,12,26287,6,14000,0,1,0,8,0,0,0,4561.007,225.9081,135.4687,4.939622,'Wyrmbait - reach waypoint path 0 wp 4 - spawn Icestorm'),
|
||||
(@ENTRY,0,19,0,40,0,100,0,8,@ENTRY*100,0,0,60,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Wyrmbait - reach waypoint path 1 wp 4 - turn fly off'),
|
||||
(@ENTRY,0,20,0,40,0,100,0,9,@ENTRY*100,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,1.67552,'Wyrmbait - reach waypoint path 1 wp 9 - turn to'),
|
||||
(@ENTRY,0,21,0,38,0,100,0,0,1,0,0,80,@ENTRY*100+1,2,0,0,0,0,1,0,0,0,0,0,0,0,'7th Legion Harpoon Gun - on dataset 0 1 - run script'),
|
||||
(@ENTRY*100,9,0,0,0,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Wyrmbait - script - close gossip'),
|
||||
(@ENTRY*100,9,1,0,0,0,100,0,0,0,0,0,18,33280,0,0,0,0,0,1,0,0,0,0,0,0,0,'Wyrmbait - script - set unit flags'),
|
||||
(@ENTRY*100,9,2,0,0,0,100,0,0,0,0,0,83,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Wyrmbait - script - remove npc flag'),
|
||||
(@ENTRY*100,9,3,0,0,0,100,0,500,500,0,0,5,66,0,0,0,0,0,1,0,0,0,0,0,0,0,'Wyrmbait - script - emote'),
|
||||
(@ENTRY*100,9,4,0,0,0,100,0,4000,4000,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Wyrmbait - script - say 0'),
|
||||
(@ENTRY*100,9,5,0,0,0,100,0,5000,5000,0,0,60,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Wyrmbait - script - turn fly on'),
|
||||
(@ENTRY*100,9,6,0,0,0,100,0,0,0,0,0,53,1,@ENTRY*100,0,0,0,0,1,0,0,0,0,0,0,0,'Wyrmbait - script - load path'),
|
||||
(@ENTRY*100,9,7,0,0,0,100,0,0,0,0,0,45,0,1,0,0,0,0,11,27839,100,0,0,0,0,0,'Wyrmbait - script - set data on 7th Legion Harpoon Gun'),
|
||||
(@ENTRY*100+1,9,0,0,0,0,100,0,0,0,0,0,18,32768,0,0,0,0,0,1,0,0,0,0,0,0,0,'Wyrmbait - script - set unit flags'),
|
||||
(@ENTRY*100+1,9,1,0,0,0,100,0,0,0,0,0,19,768,0,0,0,0,0,1,0,0,0,0,0,0,0,'Wyrmbait - script - set unit flags'),
|
||||
(@ENTRY*100+1,9,2,0,0,0,100,0,0,0,0,0,43,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Wyrmbait - script - Dismount'),
|
||||
(@ENTRY*100+1,9,3,0,0,0,100,0,0,0,0,0,8,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Wyrmbait - script - Set Agressive'),
|
||||
(@ENTRY*100+1,9,6,0,0,0,100,0,0,0,0,0,49,0,0,0,0,0,0,11,26287,100,0,0,0,0,0,'Wyrmbait - script - attack start');
|
||||
|
||||
-- waypoints for Wyrmbait
|
||||
DELETE FROM `waypoints` WHERE `entry` IN (@ENTRY*100,@ENTRY*100+1,@ENTRY*100+2);
|
||||
INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES
|
||||
(@ENTRY*100,1,4534.954,32.78271,88.17386, 'Wyrmbait'),
|
||||
(@ENTRY*100,2,4537.267,76.02501,97.88784, 'Wyrmbait'),
|
||||
(@ENTRY*100,3,4544.147,147.8844,108.8601, 'Wyrmbait'),
|
||||
(@ENTRY*100,4,4549.169,196.2009,121.7767, 'Wyrmbait'),
|
||||
(@ENTRY*100,5,4568.908,150.4734,113.5349, 'Wyrmbait'),
|
||||
(@ENTRY*100,6,4552.6,67.66856,92.95158, 'Wyrmbait'),
|
||||
(@ENTRY*100,7,4541.015,34.2519,88.31277, 'Wyrmbait'),
|
||||
(@ENTRY*100,8,4548.401,3.602159,71.40673, 'Wyrmbait'),
|
||||
(@ENTRY*100,9,4548.401,3.60216,70.40673, 'Wyrmbait'),
|
||||
(@ENTRY*100+1,1,4545.04,34.41992,80.48003, 'Wyrmbait');
|
||||
|
||||
DELETE FROM `creature_text` WHERE `entry`IN(27843,27844,26287);
|
||||
INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES
|
||||
(26287, 0, 0, 'Thel\'zan\'s phylactery drops to the ground beneath Icestorm', 41, 0, 100, 0, 0, 0, 'Icestorm', 27125),
|
||||
(27843, 0, 0, 'I\'ll flush her out, $N! You just be ready for her when she comes in!', 12, 0, 100, 1, 0, 0, 'Wyrmbait', 27120),
|
||||
(27844, 0, 0, 'FIRE! FIRE! BRING HER DOWN!', 14, 0, 100, 0, 0, 0, 'Legion Commander Tyralion', 27123);
|
||||
@@ -0,0 +1,2 @@
|
||||
--
|
||||
DELETE FROM `spell_group` WHERE id=2 AND spell_id=11364;
|
||||
@@ -0,0 +1,54 @@
|
||||
-- Fix quest 11879 "Kaw the Mammoth Destroyer"
|
||||
-- Set to SAI and delete CAIS
|
||||
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`='25802';
|
||||
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`='25881';
|
||||
|
||||
-- Wooly Mammoth Bull SAI
|
||||
UPDATE `creature_template` SET `npcflag`=16777216 WHERE `entry`=25743;
|
||||
|
||||
UPDATE `creature_template` SET `spell1`=46317,`spell2`=46315,`spell3`=46316,`Health_mod`=2 WHERE `entry`=25743;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=25743 AND `source_type`=0 AND `id` IN (2,3);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(25743,0,2,0,27,0,100,0,0,0,0,0,8,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Wooly Mammoth Bull - On Passenger board - Set react state passive'),
|
||||
(25743,0,3,0,28,0,100,0,0,0,0,0,41,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Wooly Mammoth Bull - On Passenger remove - Despawn');
|
||||
|
||||
-- Wooly Mammoth Bull Vehicle condition
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=16 AND `SourceEntry`=25743;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
|
||||
(16,0,25743,0,0,9,0,11879,0,0,0,0,'','Vehicle Wooly Mammoth Bull requires quest 11879');
|
||||
|
||||
-- Apply rep aura on quest accept
|
||||
DELETE FROM `spell_area` WHERE `spell`=46234;
|
||||
INSERT INTO `spell_area` (`spell`, `area`, `quest_start`, `quest_end`, `aura_spell`, `racemask`, `gender`, `autocast`, `quest_start_status`, `quest_end_status`) VALUES
|
||||
(46234, 3537, 11879, 0, 0, 0, 2, 1, 74, 11);
|
||||
|
||||
-- Kaw speach on event start
|
||||
DELETE FROM `creature_text` WHERE `entry`='25802';
|
||||
INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES
|
||||
(25802, 0, 0, 'You challenge Kaw, destroyer of mammoths? Then face me and feel my thunder!', 14, 0, 100, 0, 0, 0, 'Kaw the Mammoth Destroyer', 25071);
|
||||
|
||||
-- Kaw SAI
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`='25802' and `source_type`=0;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`='2580200' and `source_type`=9;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(25802,0,0,0,1,0,100,1,0,0,0,0,18,33024,0,0,0,0,0,1,0,0,0,0,0,0,0,'Kaw - OOC - Make self unattackable'),
|
||||
(25802,0,1,0,38,0,100,0,1,1,0,0,80,2580200,2,0,0,0,0,1,0,0,0,0,0,0,0,'Kaw - On Data Set 1 1 - Run Script'),
|
||||
(25802,0,2,0,6,0,100,0,0,0,0,0,11,46310,2,0,0,0,0,1,0,0,0,0,0,0,0,'Kaw - On Death - Cast Drop War Halberd'),
|
||||
(2580200,9,0,0,0,0,100,1,0,0,0,0,1,0,2000,0,0,0,0,1,0,0,0,0,0,0,0,'Kaw - Timed - Yell'),
|
||||
(2580200,9,1,0,0,0,100,1,0,0,0,0,59,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Kaw - Timed - Enable Running'),
|
||||
(2580200,9,2,0,0,0,100,1,3000,3000,0,0,69,0,0,0,0,0,0,8,0,0,0,3974.17,5476.31,35.602,5.564,'Kaw - Timed - Move to Moria'),
|
||||
(2580200,9,3,0,0,0,100,1,2500,2500,0,0,11,46260,2,0,0,0,0,19,25881,100,0,0,0,0,0,'Kaw - Timed - Mount to Moria');
|
||||
|
||||
-- Moria SAI
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`='25881';
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`='2588100';
|
||||
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(25881,0,0,0,8,0,100,1,46317,0,0,0,80,2588100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Moria - On spell hit - Start Event'),
|
||||
(25881,0,1,0,6,0,100,1,0,0,0,0,19,33024,0,0,0,0,0,19,25802,100,0,0,0,0,0,'Moria - On death - Make Kaw attackable'),
|
||||
(25881,0,2,0,1,0,100,1,0,0,0,0,8,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Moria - OOC - Set passive'),
|
||||
(25881,0,3,0,1,0,100,1,0,0,0,0,28,46260,0,0,0,0,0,1,0,0,0,0,0,0,0,'Moria - OOC - Dismount Kaw'),
|
||||
(2588100,9,0,0,0,0,100,1,0,0,0,0,11,17683,2,0,0,0,0,1,0,0,0,0,0,0,0,'Moria - Timed - Heal self'),
|
||||
(2588100,9,1,0,0,0,100,1,0,0,0,0,45,1,1,0,0,0,0,19,25802,100,0,0,0,0,0,'Moria - Timed - Set Data 1 1 on Kaw'),
|
||||
(2588100,9,2,0,0,0,100,1,5500,5500,0,0,8,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Moria - Timed - Set aggresive'),
|
||||
(2588100,9,3,0,0,0,100,1,0,0,0,0,11,17683,2,0,0,0,0,1,0,0,0,0,0,0,0,'Moria - Timed - Heal self');
|
||||
@@ -0,0 +1,203 @@
|
||||
UPDATE `quest_template` SET `SpecialFlags`=2 WHERE `Id`=12473;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=27857 AND `source_type`=0;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=26780 AND `source_type`=0;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=27713 AND `source_type`=0;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=27851 AND `source_type`=0 AND `id`>1;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=27383 AND `source_type`=0;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=27858 AND `source_type`=0;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=2785700 AND `source_type`=9;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=2785701 AND `source_type`=9;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=2738300 AND `source_type`=9;
|
||||
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(27383, 0, 0, 0, 11, 0, 100, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - On Spawn - Disable Combat Movement'),
|
||||
(27383, 0, 1, 0, 11, 0, 100, 0, 0, 0, 0, 0, 11, 31256, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - On Spawn - Cast Frost Armor'),
|
||||
(27383, 0, 2, 0, 9, 1, 100, 0, 0, 40, 3400, 4800, 11, 42719, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Within 0-40 Range - Cast Frostbolt (No Repeat)'),
|
||||
(27383, 0, 3, 0, 3, 1, 100, 1, 0, 7, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Between 0-7% Mana - Enable Combat Movement (Phase 1) (No Repeat)'),
|
||||
(27383, 0, 4, 0, 4, 0, 100, 0, 0, 0, 0, 0, 11, 49735, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - On Agro - Cast Terrifying Countenance'),
|
||||
(27383, 0, 5, 0, 9, 1, 100, 1, 35, 80, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Within 35-80 Range - Enable Combat Movement (Phase 1) (No Repeat)'),
|
||||
(27383, 0, 6, 0, 9, 1, 100, 1, 5, 15, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Within 5-15 Range - Disable Combat Movement (Phase 1) (No Repeat)'),
|
||||
(27383, 0, 7, 0, 9, 1, 100, 1, 0, 5, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Within 0-5 Range - Enable Combat Movement (Phase 1) (No Repeat)'),
|
||||
(27383, 0, 8, 0, 2, 0, 100, 1, 0, 50, 0, 0, 11, 50497, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Between 0-50% Health - Cast Scream of Chaos (Phase 1) (No Repeat)'),
|
||||
(27383, 0, 9, 0, 2, 0, 100, 1, 0, 15, 0, 0, 11, 50497, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Between 0-15% Health - Cast Scream of Chaos (Phase 1) (No Repeat)'),
|
||||
(27383, 0, 10, 0, 9, 1, 100, 0, 0, 10, 15000, 20000, 11, 22643, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Within 0-10 Range - Cast Frostbolt Volley (Phase 1) (No Repeat)'),
|
||||
(27383, 0, 11, 0, 0, 1, 100, 0, 7000, 11000, 14000, 18000, 11, 39268, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - In Combat - Cast Chains of Ice (Phase 1) (No Repeat)'),
|
||||
(27383, 0, 12, 13, 11, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - On Spawn - Say'),
|
||||
(27383, 0, 13, 0, 61, 0, 100, 0, 0, 0, 0, 0, 53, 0, 27383, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - On Spawn - Start WP'),
|
||||
(27383, 0, 14, 15, 40, 0, 100, 0, 1, 27383, 0, 0, 19, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - On Reached WP1 - Run Script'),
|
||||
(27383, 0, 15, 16, 61, 0, 100, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 19, 27713, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - On Reached WP1 - Run Script'),
|
||||
(27383, 0, 16, 17, 61, 0, 100, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 19, 27857, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - On Reached WP1 - Set Data'),
|
||||
(27383, 0, 17, 0, 61, 0, 100, 0, 0, 0, 0, 0, 80, 2738300, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - On Reached WP1 - Run Script'),
|
||||
(27383, 0, 18, 0, 7, 0, 100, 0, 0, 0, 0, 0, 19, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - On Evade- Set Unit Flags'),
|
||||
(27383, 0, 19, 20, 6, 0, 100, 0, 0, 0, 0, 0, 15, 12473, 0, 0, 0, 0, 0, 17, 0, 100, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - On Death - Quest Credit'),
|
||||
(27383, 0, 20, 0, 61, 0, 100, 0, 0, 0, 0, 0, 45, 3, 3, 0, 0, 0, 0, 19, 27857, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - On Death - Set Data'),
|
||||
(27851, 0, 2, 0, 38, 0, 100, 0, 1, 1, 0, 0, 22, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan Spell Dummy - On Data Set - Set Phase 2'),
|
||||
(27851, 0, 3, 0, 1, 2, 100, 0, 90000, 90000, 90000, 90000, 22, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan Spell Dummy - OOC (Phase 2) - Set Phase 0'),
|
||||
(27851, 0, 4, 0, 1, 2, 100, 0, 0, 300, 300, 500, 11, 49734, 0, 0, 0, 0, 0, 9, 27851, 5, 30, 0, 0, 0, 0, 'Thel zan Spell Dummy - Cast Thel zan Intro Beams'),
|
||||
(27851, 0, 5, 0, 38, 0, 100, 0, 3, 3, 0, 0, 12, 27383, 1, 900000, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan Spell Dummy - On Data Set - Spawn Thel zan the Duskbringer'),
|
||||
(27851, 0, 6, 0, 38, 0, 100, 0, 5, 5, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan Spell Dummy - On Data Set - Set Phase 1'),
|
||||
(27851, 0, 7, 0, 38, 0, 100, 0, 6, 6, 0, 0, 12, 27868, 1, 60000, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan Spell Dummy - On Data Set - Spawn Thel zan s Phylactery'),
|
||||
(27851, 0, 8, 0, 1, 1, 100, 0, 0, 0, 1000, 1000, 11, 45849, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan Spell Dummy - OOC (Phase 1) - Cast Cast Camera Shake - Tremor'),
|
||||
(27851, 0, 9, 0, 1, 1, 100, 0, 5000, 5000, 5000, 5000, 22, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan Spell Dummy - OOC (Phase 1) - Set Phase 0'),
|
||||
(27857, 0, 0, 1, 1, 0, 100, 1, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Out of Combat - Disable Combat Movement (No Repeat)'),
|
||||
(27857, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Out of Combat - Stop Attacking (No Repeat)'),
|
||||
(27857, 0, 2, 3, 4, 0, 100, 0, 0, 0, 0, 0, 11, 15620, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - On Aggro - Cast \'Shoot\' (No Repeat)'),
|
||||
(27857, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - On Aggro - Set Phase 1'),
|
||||
(27857, 0, 4, 5, 9, 1, 100, 0, 5, 30, 2300, 3900, 11, 15620, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Within 5-30 Range - Cast \'Shoot\' (Phase 1)'),
|
||||
(27857, 0, 5, 0, 61, 1, 100, 0, 0, 0, 0, 0, 40, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Within 5-30 Range - Set Sheath Ranged (Phase 1)'),
|
||||
(27857, 0, 6, 7, 9, 1, 100, 0, 25, 80, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Within 25-80 Range - Enable Combat Movement (Phase 1)'),
|
||||
(27857, 0, 7, 0, 61, 1, 100, 0, 0, 0, 0, 0, 20, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Within 25-80 Range - Start Attacking (Phase 1)'),
|
||||
(27857, 0, 8, 9, 9, 1, 100, 0, 0, 5, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Within 0-5 Range - Enable Combat Movement (Phase 1)'),
|
||||
(27857, 0, 9, 10, 61, 1, 100, 0, 0, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Within 0-5 Range - Set Sheath Melee (Phase 1)'),
|
||||
(27857, 0, 10, 0, 61, 1, 100, 0, 0, 0, 0, 0, 20, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Within 0-5 Range - Start Attacking (Phase 1)'),
|
||||
(27857, 0, 12, 0, 61, 1, 100, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Within 5-15 Range - Stop Attacking (Phase 1)'),
|
||||
(27857, 0, 11, 12, 9, 1, 100, 0, 5, 15, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Within 5-15 Range - Disable Combat Movement (Phase 1)'),
|
||||
(27857, 0, 13, 0, 7, 0, 100, 1, 0, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - On Evade - Set Sheath Melee (Phase 1)'),
|
||||
(27857, 0, 14, 0, 11, 0, 100, 0, 0, 0, 0, 0, 22, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - OOC - Set Phase 2'),
|
||||
(27857, 0, 15, 0, 1, 2, 100, 0, 6000, 19000, 27000, 32000, 1, 0, 0, 0, 0, 0, 0, 10, 133302, 27713, 0, 0, 0, 0, 0, 'Legion Commander Yorik - OOC - Say (Phase 2)'),
|
||||
(27857, 0, 16, 0, 1, 2, 100, 0, 12000, 16000, 35000, 40000, 1, 0, 0, 0, 0, 0, 0, 10, 133303, 27713, 0, 0, 0, 0, 0, 'Legion Commander Yorik - OOC - Say (Phase 2)'),
|
||||
(27857, 0, 17, 0, 1, 2, 100, 0, 23000, 37000, 48000, 53000, 1, 0, 0, 0, 0, 0, 0, 10, 133304, 27713, 0, 0, 0, 0, 0, 'Legion Commander Yorik - OOC - Say (Phase 2)'),
|
||||
(27857, 0, 18, 0, 1, 2, 100, 0, 10000, 14000, 21000, 34000, 1, 0, 0, 0, 0, 0, 0, 10, 133305, 27713, 0, 0, 0, 0, 0, 'Legion Commander Yorik - OOC - Say (Phase 2)'),
|
||||
(27857, 0, 19, 20, 19, 0, 100, 0, 12473, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - On Quest 12473 Accepted - Store Targetlist'),
|
||||
(27857, 0, 20, 21, 61, 0, 100, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - On Quest 12473 Accepted - Set NPC Flags'),
|
||||
(27857, 0, 21, 22, 61, 0, 100, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - On Quest 12473 Accepted - Set Phase 0'),
|
||||
(27857, 0, 22, 0, 61, 0, 100, 0, 0, 0, 0, 0, 80, 2785700, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - On Quest 12473 Accepted - Run Script'),
|
||||
(27857, 0, 23, 24, 38, 0, 100, 0, 2, 2, 0, 0, 8, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - On Data Set - Set Agressive'),
|
||||
(27857, 0, 24, 25, 61, 0, 100, 0, 0, 0, 0, 0, 28, 49735, 0, 0, 0, 0, 0, 17, 0, 200, 0, 0, 0, 0, 0, 'Legion Commander Yorik - On Data Set - Remove Aura'),
|
||||
(27857, 0, 25, 26, 61, 0, 100, 0, 0, 0, 0, 0, 28, 49735, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - On Data Set - Remove Aura'),
|
||||
(27857, 0, 26, 27, 61, 0, 100, 0, 0, 0, 0, 0, 28, 49735, 0, 0, 0, 0, 0, 11, 27713, 200, 0, 0, 0, 0, 0, 'Legion Commander Yorik - On Data Set - Remove Aura'),
|
||||
(27857, 0, 27, 28, 61, 0, 100, 0, 0, 0, 0, 0, 28, 49735, 0, 0, 0, 0, 0, 11, 26780, 200, 0, 0, 0, 0, 0, 'Legion Commander Yorik - On Data Set - Remove Aura'),
|
||||
(27857, 0, 28, 0, 61, 0, 100, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 19, 27383, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - On Data Set - Attack'),
|
||||
(27857, 0, 29, 0, 38, 0, 100, 0, 3, 3, 0, 0, 80, 2785701, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - On Data Set - Run Script'),
|
||||
(27857, 0, 30, 0, 1, 0, 100, 0, 120000, 120000, 120000, 120000, 22, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - OOC - S'),
|
||||
(27857, 0, 31, 0, 40, 0, 100, 0, 1, 27857, 0, 0, 45, 6, 6, 0, 0, 0, 0, 10, 133697, 27851, 0, 0, 0, 0, 0, 'Legion Commander Yorik - On Reached WP1 - Set Data'),
|
||||
(27857, 0, 32, 33, 38, 0, 100, 0, 1, 1, 0, 0, 8, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - On Data Set - Set Agressive'),
|
||||
(27857, 0, 33, 0, 61, 0, 100, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 19, 27383, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - On Data Set - Attack'),
|
||||
(27858, 0, 0, 0, 11, 0, 100, 0, 0, 0, 0, 0, 53, 0, 27858, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Highlord Bolvar Fordragon - On Spawn - Start WP'),
|
||||
(27858, 0, 1, 2, 38, 0, 100, 0, 1, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Highlord Bolvar Fordragon - On Data Set - Say'),
|
||||
(27858, 0, 2, 3, 61, 0, 100, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Highlord Bolvar Fordragon - On Data Set - Set Home Position'),
|
||||
(27858, 0, 3, 4, 61, 0, 100, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Highlord Bolvar Fordragon - On Data Set - Set Agressive'),
|
||||
(27858, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 19, 27383, 0, 0, 0, 0, 0, 0, 'Highlord Bolvar Fordragon - On Data Set Attack'),
|
||||
(27858, 0, 5, 0, 4, 0, 100, 0, 0, 0, 0, 0, 11, 49765, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Highlord Bolvar Fordragon - On Agro - Cast Fordragons resolve '),
|
||||
(27858, 0, 6, 0, 40, 0, 100, 0, 1, 27858, 0, 0, 54, 10000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Highlord Bolvar Fordragon - On reached WP1 -Pause WP 10 seconds'),
|
||||
(26780, 0, 0, 0, 1, 0, 100, 1, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Cleric - Out of Combat - Disable Combat Movement (Phase 1)'),
|
||||
(26780, 0, 1, 2, 4, 0, 100, 1, 0, 0, 0, 0, 11, 25054, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, '7th Legion Cleric - On Aggro - Cast \'Holy Smite\' (No Repeat)'),
|
||||
(26780, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Cleric - On Aggro - Increment Phase By 1 (No Repeat)'),
|
||||
(26780, 0, 3, 0, 9, 1, 100, 0, 0, 40, 3400, 4800, 11, 25054, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, '7th Legion Cleric - Within 0-40 Range - Cast \'Holy Smite\' (No Repeat)'),
|
||||
(26780, 0, 4, 5, 3, 1, 100, 1, 0, 7, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Cleric - Between 0-7% Mana - Enable Combat Movement (Phase 1) (No Repeat)'),
|
||||
(26780, 0, 5, 0, 61, 1, 100, 0, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Cleric - Between 0-7% Mana - Increment Phase By 1 (Phase 1) (No Repeat)'),
|
||||
(26780, 0, 6, 0, 9, 1, 100, 1, 35, 80, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Cleric - Within 35-80 Range - Enable Combat Movement (Phase 1) (No Repeat)'),
|
||||
(26780, 0, 7, 0, 9, 1, 100, 1, 5, 15, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Cleric - Within 5-15 Range - Disable Combat Movement (Phase 1) (No Repeat)'),
|
||||
(26780, 0, 8, 0, 9, 1, 100, 1, 0, 5, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Cleric - Within 0-5 Range - Enable Combat Movement (Phase 1) (No Repeat)'),
|
||||
(26780, 0, 9, 0, 3, 2, 100, 0, 15, 100, 100, 100, 22, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Cleric - Between 15-100% Mana - Decrement Phase By 1 (Phase 1) (No Repeat)'),
|
||||
(26780, 0, 10, 0, 14, 0, 100, 0, 7000, 40, 17000, 24000, 11, 31739, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, '7th Legion Cleric - Friendly At 7000 Health - Cast \'Heal\' (Phase 1) (No Repeat)'),
|
||||
(26780, 0, 11, 12, 2, 0, 100, 1, 0, 15, 0, 0, 22, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Cleric - Between 0-15% Health - Set Event Phase 3 (No Repeat)'),
|
||||
(26780, 0, 12, 13, 61, 0, 100, 0, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Cleric - Between 0-15% Health - Enable Combat Movement (No Repeat)'),
|
||||
(26780, 0, 13, 0, 61, 0, 100, 0, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '7th Legion Cleric - Between 0-15% Health - Flee For Assist (No Repeat)'),
|
||||
(26780, 0, 14, 15,38, 0, 100, 0, 1, 1, 0, 0, 11, 25054, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, '7th Legion Cleric - On Data Set - Cast \'Holy Smite\' (No Repeat)'),
|
||||
(26780, 0, 15, 0, 61, 0, 100, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Cleric - On Data Set - Increment Phase By 1 (No Repeat)'),
|
||||
(27713, 0, 0, 1, 1, 0, 100, 1, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Elite - Out of Combat - Disable Combat Movement (No Repeat)'),
|
||||
(27713, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Elite - Out of Combat - Stop Attacking (No Repeat)'),
|
||||
(27713, 0, 2, 3, 4, 0, 100, 1, 0, 0, 0, 0, 11, 50092, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, '7th Legion Elite - On Aggro - Cast \'Shoot\' (No Repeat)'),
|
||||
(27713, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Elite - On Aggro - Increment Phase By 1 (No Repeat)'),
|
||||
(27713, 0, 4, 5, 9, 1, 100, 0, 5, 30, 2300, 3900, 11, 50092, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, '7th Legion Elite - Within 5-30 Range - Cast \'Shoot\' (Phase 1)'),
|
||||
(27713, 0, 5, 0, 61, 1, 100, 0, 0, 0, 0, 0, 40, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Elite - Within 5-30 Range - Set Sheath Ranged (Phase 1)'),
|
||||
(27713, 0, 6, 7, 9, 1, 100, 0, 25, 80, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Elite - Within 25-80 Range - Enable Combat Movement (Phase 1)'),
|
||||
(27713, 0, 7, 0, 61, 1, 100, 0, 0, 0, 0, 0, 20, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Elite - Within 25-80 Range - Start Attacking (Phase 1)'),
|
||||
(27713, 0, 8, 9, 9, 1, 100, 0, 0, 5, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Elite - Within 0-5 Range - Enable Combat Movement (Phase 1)'),
|
||||
(27713, 0, 9, 10, 61, 1, 100, 0, 0, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Elite - Within 0-5 Range - Set Sheath Melee (Phase 1)'),
|
||||
(27713, 0, 10, 0, 61, 1, 100, 0, 0, 0, 0, 0, 20, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Elite - Within 0-5 Range - Start Attacking (Phase 1)'),
|
||||
(27713, 0, 12, 0, 61, 1, 100, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Elite - Within 5-15 Range - Stop Attacking (Phase 1)'),
|
||||
(27713, 0, 11, 12, 9, 1, 100, 0, 5, 15, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Elite - Within 5-15 Range - Disable Combat Movement (Phase 1)'),
|
||||
(27713, 0, 13, 0, 9, 1, 100, 0, 0, 20, 9000, 12000, 11, 62312, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, '7th Legion Elite - Within 0-20 Range - Cast \'Net\' (Phase 1)'),
|
||||
(27713, 0, 14, 0, 7, 0, 100, 1, 0, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Elite - On Evade - Set Sheath Melee (Phase 1)'),
|
||||
(27713, 0, 15, 16 ,38, 0, 100, 0, 1, 1, 0, 0, 11, 50092, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, '7th Legion Elite - On Data Set - Cast \'Shoot\' (No Repeat)'),
|
||||
(27713, 0, 16, 0, 61, 0, 100, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '7th Legion Elite - On Aggro - Increment Phase By 1 (No Repeat)'),
|
||||
(2738300, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 19, 27857, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Script - Say'),
|
||||
(2738300, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Script - Set Home Position'),
|
||||
(2738300, 9, 2, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 22, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Script - Set Phase 0'),
|
||||
(2738300, 9, 3, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Script - Say'),
|
||||
(2738300, 9, 4, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 1, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Script - Say'),
|
||||
(2738300, 9, 5, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 1, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Script - Say'),
|
||||
(2738300, 9, 6, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 1, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Script - Say'),
|
||||
(2738300, 9, 7, 0, 0, 0, 100, 0, 0, 0, 0, 0, 12, 27858, 1, 900000, 0, 0, 0, 8, 0, 0, 0, 3678.688965,-951.346069,90.707184,1.534565, 'Thel zan the Duskbringer - Script - Say'),
|
||||
(2738300, 9, 8, 0, 0, 0, 100, 0, 10000, 10000, 0, 0, 1, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Script - Say'),
|
||||
(2738300, 9, 9, 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 19, 27858, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Script - Say'),
|
||||
(2738300, 9, 10, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 19, 27713, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Script - Say'),
|
||||
(2738300, 9, 11, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 19, 27858, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Script - Say'),
|
||||
(2738300, 9, 12, 0, 0, 0, 100, 0, 10000, 10000, 0, 0, 1, 2, 0, 0, 0, 0, 0, 19, 27858, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Script - Say'),
|
||||
(2738300, 9, 13, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 1, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Script - Say'),
|
||||
(2738300, 9, 14, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 1, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Script - Say'),
|
||||
(2738300, 9, 15, 0, 0, 0, 100, 0, 0, 0, 0, 0, 11, 49808, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Script - Cast Minions of Thel zan'),
|
||||
(2738300, 9, 16, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 28, 49735, 0, 0, 0, 0, 0, 19, 27857, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Script - Set Data'),
|
||||
(2738300, 9, 17, 0, 0, 0, 100, 0, 0, 0, 0, 0, 45, 2, 2, 0, 0, 0, 0, 19, 27857, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Script - Set Data'),
|
||||
(2738300, 9, 18, 0, 0, 0, 100, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 19, 27858, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Script - Set Data'),
|
||||
(2738300, 9, 19, 0, 0, 0, 100, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 11, 27713, 200, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Script - Set Data'),
|
||||
(2738300, 9, 20, 0, 0, 0, 100, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 11, 26780, 200, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Script - Set Data'),
|
||||
(2738300, 9, 21, 0, 0, 0, 100, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Script - Set Phase 1'),
|
||||
(2738300, 9, 22, 0, 0, 0, 100, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 21, 100, 0, 0, 0, 0, 0, 0, 'Thel zan the Duskbringer - Script - Attack'),
|
||||
(2785700, 9, 0, 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Script - Say'),
|
||||
(2785700, 9, 1, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 53, 0, 27857, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Script - Start WP'),
|
||||
(2785700, 9, 2, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 45, 5, 5, 0, 0, 0, 0, 10, 133697, 27851, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Script - Set Data'),
|
||||
(2785700, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 10, 133700, 27851, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Script - Set Data'),
|
||||
(2785700, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 10, 133701, 27851, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Script - Set Data'),
|
||||
(2785700, 9, 5, 0, 0, 0, 100, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 10, 133702, 27851, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Script - Set Data'),
|
||||
(2785700, 9, 6, 0, 0, 0, 100, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 10, 133694, 27851, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Script - Set Data'),
|
||||
(2785700, 9, 7, 0, 0, 0, 100, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 10, 133698, 27851, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Script - Set Data'),
|
||||
(2785700, 9, 8, 0, 0, 0, 100, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 10, 133699, 27851, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Script - Set Data'),
|
||||
(2785700, 9, 9, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Script - Say'),
|
||||
(2785700, 9, 10, 0, 0, 0, 100, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Script - Set Home Position'),
|
||||
(2785700, 9, 11, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 45, 3, 3, 0, 0, 0, 0, 10, 133695, 27851, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Script - Set Data'),
|
||||
(2785701, 9, 0, 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 1, 4, 0, 0, 0, 0, 0, 19, 27858, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Script 2 - Say'),
|
||||
(2785701, 9, 1, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 1, 5, 0, 0, 0, 0, 0, 19, 27858, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Script 2 - Say'),
|
||||
(2785701, 9, 2, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 41, 0, 0, 0, 0, 0, 0, 19, 27858, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Script 2 - Despawn'),
|
||||
(2785701, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Legion Commander Yorik - Script 2 - Despawn');
|
||||
|
||||
INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES
|
||||
(27383, 0, 0, 'I was... once like you. Mortal. Soft. Only flesh and bone. WEAK AND TIMID!', 14, 0, 100, 0, 0, 0, 'Thel zan the Duskbringer', 27157),
|
||||
(27383, 1, 0, 'Our lord, Arthas saw in me the frailty of man.', 14, 0, 100, 0, 0, 0, 'Thel zan the Duskbringer', 27159),
|
||||
(27383, 2, 0, '"Serve me in life and I will promise to rend the weakness from your soul. To erase it from existence!" To be chosen... blessed by the Lich King in such a way.', 14, 0, 100, 0, 0, 0, 'Thel zan the Duskbringer', 27160),
|
||||
(27383, 3, 0, 'So serve him I did... Were it not for me the glorious dread citadel of Naxxramas may never have returned to Northrend.', 14, 0, 100, 0, 0, 0, 'Thel zan the Duskbringer', 27161),
|
||||
(27383, 4, 0, 'But enough talk... You have fought hard and come from the distant reaches of this world to face the Duskbringer. I shall not disappoint...', 14, 0, 100, 0, 0, 0, 'Thel zan the Duskbringer', 27162),
|
||||
(27383, 5, 0, 'Just as our lord saved me, so too shall I save you!', 14, 0, 100, 0, 0, 0, 'Thel zan the Duskbringer', 27163),
|
||||
(27383, 6, 0, 'THIS WILL BE THE LAST TIME YOU UTTER THAT NAME, PALADIN! Breathe your dying breath!', 14, 0, 100, 0, 0, 0, 'Thel zan the Duskbringer', 27176),
|
||||
(27383, 7, 0, 'Rise, my minions! Your master commands it!', 14, 0, 100, 0, 0, 0, 'Thel zan the Duskbringer', 27164),
|
||||
(27713, 0, 0, 'What is it?', 12, 0, 100, 0, 0, 0, '7th Legion Elite', 27143),
|
||||
(27713, 0, 1, 'Is this the end? If we stop this bastard now, is victory assured at the Wrathgate?', 12, 0, 100, 0, 0, 0, '7th Legion Elite', 27146),
|
||||
(27713, 0, 2, 'Let it be known that it has been an honor and a privilege fighting alongside all of you.', 12, 0, 100, 0, 0, 0, '7th Legion Elite', 27148),
|
||||
(27713, 0, 3, 'Death comes for us all eventually, but sometimes it comes a little faster than anticipated. Today we call that blind heroics... Tomorrow someone may call it stupidity.', 12, 0, 100, 0, 0, 0, '7th Legion Elite', 27150),
|
||||
(27713, 0, 4, 'Come on... Let\'s get this over with!', 12, 0, 100, 0, 0, 0, '7th Legion Elite', 27149),
|
||||
(27713, 0, 5, 'It looks like a gateway to hell!', 12, 0, 100, 0, 0, 0, '7th Legion Elite', 27144),
|
||||
(27713, 0, 6, 'I\'m getting a little worried. Where is this hero that is supposed to lead us into battle?', 12, 0, 100, 0, 0, 0, '7th Legion Elite', 27147),
|
||||
(27713, 0, 7, 'If I don\'t make it back to Wintergarde, let my family know that I did my best and that I love them...', 12, 0, 100, 0, 0, 0, '7th Legion Elite', 27145),
|
||||
(27713, 1, 0, 'It\'s the Highlord!', 12, 0, 100, 0, 0, 0, '7th Legion Elite', 27178),
|
||||
(27857, 0, 0, 'Steel yourselves, soldiers. $N has provided us us with the final piece of this puzzle. The dread lich, Thel\'zan, will soon come out of hiding, only to be rendered powerless against us!', 12, 0, 100, 0, 0, 0, 'Legion Commander Yorik', 27155),
|
||||
(27857, 1, 0, 'It is this phylactery, Thel\'zan\'s phylactery - that is the key to this victory!', 12, 0, 100, 0, 0, 0, 'Legion Commander Yorik', 27156),
|
||||
(27857, 2, 0, 'LEGION, STEADY YOURSELVES!', 12, 0, 100, 0, 0, 0, 'Legion Commander Yorik', 27158),
|
||||
(27858, 0, 0, 'Honor, courage, compassion and justice! Those were once the virtues you fought for as a cleric of the Argent Dawn, Thel\'zan.', 14, 0, 100, 0, 0, 0, 'Highlord Bolvar Fordragon', 27173),
|
||||
(27858, 1, 0, 'You dedicated your whole life to fighting the Scourge. You saw what they did to our beloved Lordaeron. The Lich King took everything from you!', 14, 0, 100, 0, 0, 0, 'Highlord Bolvar Fordragon', 27174),
|
||||
(27858, 2, 0, 'So how, then, did Father Inigo Montoy, bastion of virtue for the Argent Dawn, become the embodiment of that which he hated most?', 12, 0, 100, 0, 0, 0, 'Highlord Bolvar Fordragon', 27175),
|
||||
(27858, 3, 0, 'Now, be free and join the battle! Let us end this together!', 12, 0, 100, 0, 0, 0, 'Highlord Bolvar Fordragon', 27182),
|
||||
(27858, 4, 0, 'Victory for the Alliance!', 14, 0, 100, 0, 0, 0, 'Highlord Bolvar Fordragon', 27180),
|
||||
(27858, 5, 0, 'You have saved Wintergarde! With Thel\'zan\'s filth washed away, the 7th Legion will easily clean up the remaining Scourge. When you are done here, report to Angrathar!', 12, 0, 100, 0, 0, 0, 'Highlord Bolvar Fordragon', 27181);
|
||||
|
||||
DELETE FROM `waypoints` WHERE `entry`IN(27383,27857,27858);
|
||||
INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES
|
||||
(27857, 1, 3681.841309,-917.651672,76.984685, 'Legion Commander Yorik'),
|
||||
(27858, 1, 3681.391113,-930.485779,78.656433, 'Highlord Bolvar Fordragon'),
|
||||
(27858, 2, 3679.555664,-914.486389,77.093231, 'Highlord Bolvar Fordragon'),
|
||||
(27383, 1, 3681.604, -912.2283, 77.64017, 'Thel zan the Duskbringer');
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`IN(49734,49735);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(13, 1, 49734, 0, 0, 31, 0, 3, 27851, 0, 0, 0, 0, '', 'Thel zan Intro Beams targets Thel zan Spell Dummy'),
|
||||
(13, 3, 49735, 0, 0, 31, 0, 3, 27713, 0, 0, 0, 0, '', 'Terrifying Countenance targets 7th Legion Elite'),
|
||||
(13, 3, 49735, 0, 1, 31, 0, 3, 27857, 0, 0, 0, 0, '', 'Terrifying Countenance targets Legion Commander Yorik'),
|
||||
(13, 3, 49735, 0, 2, 31, 0, 3, 26780, 0, 0, 0, 0, '', 'Terrifying Countenance targets 7th Legion Clerick'),
|
||||
(13, 3, 49735, 0, 3, 31, 0, 4, 0, 0, 0, 0, 0, '', 'Terrifying Countenance targets Player');
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry` IN(27713,26780);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(22, 3, 27713, 0, 0, 29, 0, 27383, 200, 0, 1, 0, 0, '', 'Only run SAI if no Thel zan the Duskbringer near'),
|
||||
(22, 2, 26780, 0, 0, 29, 0, 27383, 200, 0, 1, 0, 0, '', 'Only run SAI if no Thel zan the Duskbringer near');
|
||||
@@ -0,0 +1,24 @@
|
||||
--
|
||||
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=32236;
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=5513;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` =32236;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(32236, 0, 0, 0, 0, 0, 100, 0, 0, 0, 3000, 5000, 11, 32000, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Dark Subjugator - IC - Cast Mind Seer'),
|
||||
(32236, 0, 1, 0, 0, 0, 100, 0, 0, 3000, 5000, 6000, 11, 32026, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Dark Subjugator - IC - Cast Pain Spike'),
|
||||
(32236, 0, 3, 4, 8, 0, 100, 0, 5513, 0, 60000, 60000, 11, 4329, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Dark Subjugator - On Spellhit Orb of Illusion - Cast Drag and Drop: Dark Subjugator Transform'),
|
||||
(32236, 0, 4, 5,61, 0, 100, 0, 0, 0, 0, 0, 11, 4328, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Dark Subjugator - Linked with Previous Event - Cast Drag and Drop: Summon Aldur''thar Sentry'),
|
||||
(32236, 0, 5, 6,61, 0, 100, 0, 0, 0, 0, 0, 1, 0, 3000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Dark Subjugator - Linked with Previous Event - Say'),
|
||||
(32236, 0, 6, 0,61, 0, 100, 0, 0, 0, 0, 0, 33, 32229, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Dark Subjugator - Linked with Previous Event - Kill Credit'),
|
||||
(32236, 0, 7, 8,52, 0, 100, 0, 0, 32236, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Dark Subjugator - On Text Over - Say'),
|
||||
(32236, 0, 8, 0,61, 0, 100, 0, 0, 0, 0, 0, 41, 30000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Dark Subjugator - Linked with Previous Event - Despawn After 10 seconds');
|
||||
|
||||
DELETE FROM `creature_text` WHERE `entry` =32236;
|
||||
INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES
|
||||
(32236, 1, 1, 'You\'ve got it all wrong. I\'m a subjugator!', 12, 0, 100, 0, 0, 0, 'Dark Subjugator', 32636),
|
||||
(32236, 1, 0, 'It was an accident. I was framed. Don\'t drop me!', 12, 0, 100, 0, 0, 0, 'Dark Subjugator', 32637),
|
||||
(32236, 0, 2, 'What?!', 12, 0, 100, 0, 0, 0, 'Dark Subjugator', 32630),
|
||||
(32236, 0, 1, 'Okay, who\'s the joker that threw an orb at me?', 12, 0, 100, 0, 0, 0, 'Dark Subjugator', 32633),
|
||||
(32236, 0, 0, 'I feel funny all of a sudden. Er?!', 12, 0, 100, 0, 0, 0, 'Dark Subjugator', 32632),
|
||||
(32236, 1, 2, 'NOOOOOO!', 12, 0, 100, 0, 0, 0, 'Dark Subjugator', 32634);
|
||||
@@ -0,0 +1,11 @@
|
||||
--
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=28752 AND `source_type`=0 AND `id`IN(14,15);
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=28754 AND `source_type`=0 AND `id`IN(9,10);
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=28756 AND `source_type`=0 AND `id`=6;
|
||||
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(28752, 0, 14, 0, 6, 0, 100, 0, 0, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'High Priest Mu funu - On Death - Reset All Scripts'),
|
||||
(28752, 0, 15, 0, 11, 0, 100, 0, 0, 0, 0, 0, 19, 256, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'High Priest Mu funu - On Respawn - Set Unit Flags'),
|
||||
(28754, 0, 9, 0, 6, 0, 100, 0, 0, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'High Priest Tua-Tua - On Death - Reset All Scripts'),
|
||||
(28754, 0, 10, 0, 11, 0, 100, 0, 0, 0, 0, 0, 19, 256, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'High Priest Tua-Tua - On Respawn - Set Unit Flags'),
|
||||
(28756, 0, 6, 0, 6, 0, 100, 0, 0, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'High Priest Hawinni - On Death - Reset All Scripts');
|
||||
@@ -0,0 +1,4 @@
|
||||
--
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=11032 AND `source_type`=0 AND `id`=5;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(11032, 0, 5, 0, 6, 0, 100, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 14, 47278, 176112, 0, 0, 0, 0, 0, 'Malor the Zealous - On Death - Set Malors Strongbox Selectable');
|
||||
@@ -0,0 +1,51 @@
|
||||
--
|
||||
SET @CGUID := 76305;
|
||||
|
||||
UPDATE `creature_template` SET `AIName`= 'SmartAI',`flags_extra`=`flags_extra`|128,`unit_flags`=33554432 WHERE `entry` IN(23040,23081);
|
||||
|
||||
DELETE FROM `creature` WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+5;
|
||||
INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `VerifiedBuild`) VALUES
|
||||
(@CGUID, 23040, 530, 1, 1, 0, 0, 3261.86, 4625.63, 216.751, 0.680678, 120, 0, 0, 1, 0, 0, 0, 0, 0, 0),
|
||||
(@CGUID+1, 23040, 530, 1, 1, 0, 0, 3257.33, 4653.79, 216.73, 5.75959, 120, 0, 0, 1, 0, 0, 0, 0, 0, 0),
|
||||
(@CGUID+2, 23040, 530, 1, 1, 0, 0, 3304.42, 4643.83, 217.281, 3.28122, 120, 0, 0, 1, 0, 0, 0, 0, 0, 0),
|
||||
(@CGUID+3, 23040, 530, 1, 1, 0, 0, 3279.39, 4664.33, 216.778, 4.76475, 120, 0, 0, 1, 0, 0, 0, 0, 0, 0),
|
||||
(@CGUID+4, 23040, 530, 1, 1, 0, 0, 3292.61, 4619.95, 217.272, 2.1293, 120, 0, 0, 1, 0, 0, 0, 0, 0, 0),
|
||||
(@CGUID+5, 23081, 530, 1, 1, 0, 0, 3279.73, 4640.09, 216.526, 4.08274, 120, 0, 0, 1, 0, 0, 0, 0, 0, 0);
|
||||
|
||||
UPDATE `creature_template` SET `AIName`='SmartAI', `flags_extra`=130 WHERE `entry`=23081;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` = 23040;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(23040, 0, 0, 0, 1, 0, 100, 0, 0, 0, 4000, 4000, 11, 39853, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Vim gols Circle Bunny - On Update OOC - Cast Vim gol: Summon Circle Popluation Tester D'),
|
||||
(23040, 0, 1, 0, 31, 0, 100, 0, 39853, 0, 0, 0, 45, 1 , 1, 0, 0, 0, 0, 19, 23081, 50, 0, 0, 0, 0, 0, 'Vim gols Circle Bunny: On SpellHitTester A - set data for summon bunny');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` = 23081;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(23081, 0, 0, 1, 38, 0, 100, 0, 1, 1, 60000, 60000, 11, 39921, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Vim gols Summon Bunny - On data set - Cast pentagram beam'),
|
||||
(23081, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 67, 23081, 30000, 30000, 0, 0, 100, 1, 0, 0, 0, 0, 0, 0, 0, 'Linked with previous event - Create timed event'),
|
||||
(23081, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Linked with previous event - Create timed event'),
|
||||
(23081, 0, 3, 0, 59, 0, 100, 0, 23081, 0, 0, 0, 12, 22911, 2, 300000, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Timed event - Summon Vimgol');
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry` = 39921;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(13, 1, 39921, 0, 0, 31, 0, 3, 23081, 0, 0, 0, 0, '', 'pentagram only hits summon bunny'),
|
||||
(13, 1, 39921, 0, 1, 31, 0, 3, 23040, 0, 0, 0, 0, '', 'pentagram only hits circle bunny');
|
||||
|
||||
DELETE FROM `creature_text` WHERE `entry`=22911;
|
||||
INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES
|
||||
(22911, 0, 0, 'You dare summon me?', 14, 0, 100, 15, 0, 0, 'Vim\'gol the Vile', 20733),
|
||||
(22911, 1, 0, 'Now me grow bigger and crush you!', 14, 0, 100, 0, 0, 0, 'Vim\'gol the Vile', 21264);
|
||||
|
||||
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=22911;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` = 22911;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(22911, 0, 0, 0, 4, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Vim'gol the Vile - On Agro Say"),
|
||||
(22911, 0, 1, 0, 6, 0, 100, 0, 0, 0, 0, 0, 11, 39862, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Vim'gol the Vile - On Death - Cast Vim'gol: Summon Vim'gol's Vile Grimoire Chest"),
|
||||
(22911, 0, 2, 0, 2, 0, 100, 1, 0, 50, 60000, 60000, 11, 40545, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Vim'gol the Vile - On 50% HP - Cast Unholy Growth (No repeat)"),
|
||||
(22911, 0, 3, 0, 23, 0, 100, 1, 40545, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Vim'gol the Vile - On 50% HP - Cast Unholy Growth (No repeat)");
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=23040;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(22, 2, 23040, 0, 0, 9, 0, 10998, 0, 0, 0, 0, 0, '', 'Execute SAI only if player is on Grim(oire) Business'),
|
||||
(22, 2, 23040, 0, 0, 29, 1, 22911, 200, 0, 1, 0, 0, '', 'Execute SAI only if Vim Gol is not already spawned');
|
||||
@@ -0,0 +1,134 @@
|
||||
--
|
||||
DELETE FROM `areatrigger_involvedrelation` WHERE `id` = 4987;
|
||||
INSERT INTO `areatrigger_involvedrelation` (`id`,`quest`) VALUES
|
||||
(4987,12274);
|
||||
|
||||
DELETE FROM `areatrigger_scripts` WHERE `entry` = 4987;
|
||||
INSERT INTO `areatrigger_scripts` (`entry`, `ScriptName`) VALUES
|
||||
(4987,'SmartTrigger');
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=4987 AND `SourceId`=2;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
|
||||
(22,1,4987,2,0,9,0,12274,0,0,0,0,'','High Abbot Landgren trigger only activates if player is on A Fall from Grace'),
|
||||
(22,1,4987,2,0,1,0,48753,0,0,0,0,'','High Abbot Landgren trigger only activates if player Has A Fall from Grace: Bell Rung Dummy Aura'),
|
||||
(22,1,4987,2,0,1,0,48756,0,0,0,0,'','High Abbot Landgren trigger only activates if player Has A Fall from Grace: Ring Kissed Dummy Aura');
|
||||
|
||||
UPDATE `creature_template` SET `minlevel`=73, `maxlevel`=73, `exp`=2,`AIName`= 'SmartAI' WHERE `entry`=27439;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` =4987 AND `source_type`=2;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(4987,2,0,1,46,0,100,0,4987,0,0,0,45,1,1,0,0,0,0,10,98593,23837,0,0,0,0,0,"On Trigger - Set Data");
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` IN(27350,-98593);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(-98593, 0, 0, 1, 38, 0, 100, 0, 1, 1, 90000, 90000, 45, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny - On Data Set - Set Data'),
|
||||
(-98593, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 11, 48757, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny - Linked with Previous Event - Cast A Fall from Grace: Summon High Abbot Landgren'),
|
||||
(27350, 0, 0, 0, 19, 0, 100, 0, 12274, 0, 0, 0, 85, 48763, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Agent Skully - On Quest Accept - Spellcast A Fall from Grace: Scarlet Raven Priest Image (Male)'),
|
||||
(27350, 0, 1, 0, 62, 0, 100, 0, 9501, 0, 0, 0, 85, 48763, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Agent Skully - On gossip option select - Spellcast A Fall from Grace: Scarlet Raven Priest Image (Male)'),
|
||||
(27350, 0, 2, 0, 19, 0, 100, 0, 12274, 0, 0, 0, 85, 48761, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Agent Skully - On Quest Accept - Spellcast A Fall from Grace: Scarlet Raven Priest Image (Female)'),
|
||||
(27350, 0, 3, 0, 62, 0, 100, 0, 9501, 0, 0, 0, 85, 48761, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Agent Skully - On gossip option select - Spellcast A Fall from Grace: Scarlet Raven Priest Image (Female)'),
|
||||
(27350, 0, 4, 0, 20, 0, 100, 0, 12274, 0, 0, 0, 85, 48765, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Agent Skully - On Quest Complete - Cast A Fall from Grace: Quest Completion');
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=9532;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(15, 9532, 0, 0, 0, 9, 0, 12274, 0, 0, 0, 0, 0, '', 'High Abbot Landgren - Show gossip option only if player has taken A Fall from Grace'),
|
||||
(15, 9532, 0, 0, 0,29, 0, 27247, 30, 0, 1, 0, 0, '', 'High Abbot Landgren - Show gossip option only if There is no devout Bodyguard'),
|
||||
(15, 9532, 0, 0, 0, 1, 0, 48753, 0, 0, 0, 0, 0, '', 'High Abbot Landgren - Show gossip option only if player has A Fall from Grace: Bell Rung Dummy Aura');
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=27350;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(22, 1, 27350, 0, 0,20, 0, 0, 0, 0, 0, 0, 0, '', 'execute sai only if male character'),
|
||||
(22, 2, 27350, 0, 0,20, 0, 0, 0, 0, 0, 0, 0, '', 'execute sai only if male character'),
|
||||
(22, 3, 27350, 0, 0,20, 0, 1, 0, 0, 0, 0, 0, '', 'execute sai only if female character'),
|
||||
(22, 4, 27350, 0, 0,20, 0, 1, 0, 0, 0, 0, 0, '', 'execute sai only if female character');
|
||||
|
||||
UPDATE `gameobject_template` SET `AIName`='SmartGameObjectAI', `ScriptName`='' WHERE `entry`=188713;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=1 AND `entryorguid`=188713;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(188713, 1, 0 ,1, 70, 0, 100, 0, 2, 0, 0,0,45,1,1,0,0,0,0,10,105877,27245,0,0,0,0,0, 'Abbey Bell Rope - On Activate - Set Data High Abbot Landgren'),
|
||||
(188713, 1, 1 ,0, 61, 0, 100, 0, 0, 0, 0,0,85,48753,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Abbey Bell Rope - Linked with Previous Event - Invoker Cast A Fall from Grace: Bell Rung Dummy Aura');
|
||||
|
||||
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry` IN(27439,27245);
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` IN(27439,27245);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(27245, 0, 0 ,1,38, 0, 100, 0, 1,1,0,0,45,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'High Abbot Landgren - On Data Set - Set Data'),
|
||||
(27245, 0, 1 ,0,61, 0, 100, 0, 0,0,0,0,45,1,1,0,0,0,0,9,27247,0,30,0,0,0,0,'High Abbot Landgren - Linked with Previous Event - Set Data'),
|
||||
(27245, 0, 2, 3,62, 0, 100, 0, 9536, 0, 0, 0, 85,48756,0,0,0,0,0,7, 0, 0, 0, 0, 0, 0, 0, 'High Abbot Landgren - On gossip option select - Cast Invoker Cast A Fall from Grace: Ring Kissed Dummy Aura'),
|
||||
(27439, 0, 0, 0,11, 0, 100, 0, 0, 0, 0, 0, 53,0,27439,0,0,0,0,1, 0, 0, 0, 0, 0, 0, 0, 'High Abbot Landgren - On Spawn - Start WP'),
|
||||
(27439, 0, 1, 2,40, 0, 100, 0, 2, 0, 0, 0, 1,0,0,0,0,0,0,1, 0, 0, 0, 0, 0, 0, 0, 'High Abbot Landgren - On Reached WP2 - Say'),
|
||||
(27439, 0, 2, 0,61, 0, 100, 0, 0, 0, 0, 0, 54,6000,0,0,0,0,0,1, 0, 0, 0, 0, 0, 0, 0, 'High Abbot Landgren - Linked with Previous Event - Pause WP'),
|
||||
(27439, 0, 3, 4,40, 0, 100, 0,9, 0, 0, 0, 66,0,0,0,0,0,0,1, 0, 0, 0, 0, 0, 0, 4.5, 'High Abbot Landgren - On Reached WP10 - Set Orientation'),
|
||||
(27439, 0, 4, 0,61, 0, 100, 0,0, 0, 0, 0, 1,1,10000,0,0,0,0,21, 50, 0, 0, 0, 0, 0, 0, 'High Abbot Landgren - Linked with Previous Event - Say'),
|
||||
(27439 ,0, 5, 0,52,0,100,0,1,27439,0,0,1,2,10000,0,0,0,0,21,50,0,0,0,0,0,0, 'High Abbot Landgren - On Text Over Say - Say'),
|
||||
(27439 ,0, 6, 0,52,0,100,0,2,27439,0,0,1,3,10000,0,0,0,0,21,50,0,0,0,0,0,0, 'High Abbot Landgren - On Text Over Say - Say'),
|
||||
(27439 ,0, 7, 0,52,0,100,0,3,27439,0,0,1,4,10000,0,0,0,0,21,50,0,0,0,0,0,0, 'High Abbot Landgren - On Text Over Say - Say'),
|
||||
(27439 ,0, 8, 9,52,0,100,0,4,27439,0,0,1,5,10000,0,0,0,0,21,50,0,0,0,0,0,0, 'High Abbot Landgren - On Text Over Say - Say'),
|
||||
(27439 ,0, 9,10,61,0,100,0,0,0,0,0,11,48771,0,0,0,0,0,21,50,0,0,0,0,0,0, 'High Abbot Landgren - Linked with Previous Event - Cast A Fall from Grace: Kill Credit'),
|
||||
(27439 ,0,10,11,61,0,100,0,0,0,0,0,15,12274,0,0,0,0,0,21,50,0,0,0,0,0,0, 'High Abbot Landgren - Linked with Previous Event - Call Areaexploredoreventhappens'),
|
||||
(27439 ,0,11,12,61,0,100,0,0,0,0,0,11,48773,0,0,0,0,0,1,0,0,0,0,0,0,0, 'High Abbot Landgren - Linked with Previous Event - Cast A Fall from Grace: High Abbot Ride Vehicle'),
|
||||
(27439 ,0,12,13,61,0,100,0,0,0,0,0,11,66733,2,0,0,0,0,1,0,0,0,0,0,0,0, 'High Abbot Landgren - Linked with Previous Event - Cast Jump Back'),
|
||||
(27439 ,0,13,0,61,0,100,0,0,0,0,0,41,2000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'High Abbot Landgren - Linked with Previous Event - Despawn After 2 Seconds');
|
||||
|
||||
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`= 27247;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=27247;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(27247,0,0,0,0,0,100,0,4000,7000,10000,15000,11,38256,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Devout Bodyguard - IC - Cast Piercing Howl'),
|
||||
(27247,0,1,2,38,0,100,0,1,1,0,0,45,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Devout Bodyguard - On Data Set - Set Data'),
|
||||
(27247,0,2,3,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Devout Bodyguard - Linked with Previous Event - Say'),
|
||||
(27247,0,3,4,61,0,100,0,0,0,0,0,53,1,27247,0,0,0,1,1,0,0,0,0,0,0,0, 'Devout Bodyguard - Linked with Previous Event - Start WP'),
|
||||
(27247,0,4,0,61,0,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Devout Bodyguard - Linked with Previous Event - Set Phase 2'),
|
||||
(27247,0,5,0,40,0,100,0,14,27247,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Devout Bodyguard - On Reached WP 14 - Say'),
|
||||
(27247,0,6,7,40,0,100,0,27,27247,0,0,55,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Devout Bodyguard - On Reached WP 27 - Stop WP'),
|
||||
(27247,0,7,0,61,0,100,0,0,0,0,0,24,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Devout Bodyguard - Linked with Previous Event - Evade'),
|
||||
(27247,0,8,0,11,0,100,0,0,0,0,0,101,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Devout Bodyguard - On Spawn - Set Home Position');
|
||||
|
||||
DELETE FROM `creature_text` WHERE `entry` IN (27245,27247,27439);
|
||||
INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES
|
||||
(27247, 0, 0, 'Hey, who rang the bell?', 12, 0, 100, 0, 0, 0, 'Devout Bodyguard', 26610),
|
||||
(27439, 0, 0, 'I know a place nearby where we can speak in private, my child. Follow me.', 12, 0, 100, 0, 0, 0, 'High Abbot Landgren', 26629),
|
||||
(27439, 1, 0, 'Did you think that I could not see through your flimsy disguise, $N?', 12, 0, 100, 0, 0, 0, 'High Abbot Landgren', 26631),
|
||||
(27439, 2, 0, 'There is much that you do not understand, $R. The Master sees all.', 12, 0, 100, 0, 0, 0, 'High Abbot Landgren', 26632),
|
||||
(27439, 3, 0, 'He told me that you would come for me. I won\'t die by your hand, though. I have seen what you have done to my compatriots.', 12, 0, 100, 0, 0, 0, 'High Abbot Landgren', 26633),
|
||||
(27439, 4, 0, 'No. I will leave this world in a manner of my own choosing. And I will return, the grand admiral\'s will permitting!', 12, 0, 100, 0, 0, 0, 'High Abbot Landgren', 26634),
|
||||
(27439, 5, 0, 'AAAEEEEIIIiiiiiiiiiiiiiiiiiiiiiiiiiiii........................................', 12, 0, 100, 0, 0, 0, 'High Abbot Landgren', 26636);
|
||||
|
||||
DELETE FROM `waypoints` WHERE `entry`IN(27247,27439);
|
||||
INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES
|
||||
(27247, 1, 2799.233154,-479.702179,119.616562, 'Devout Bodyguard'),
|
||||
(27247, 2, 2814.937500,-465.844482,119.613434, 'Devout Bodyguard'),
|
||||
(27247, 3, 2823.792236,-472.341522,125.244446, 'Devout Bodyguard'),
|
||||
(27247, 4, 2830.335205,-472.019501,131.034653, 'Devout Bodyguard'),
|
||||
(27247, 5, 2836.603760,-468.373047,135.362701, 'Devout Bodyguard'),
|
||||
(27247, 6, 2839.449219,-459.743408,135.362701, 'Devout Bodyguard'),
|
||||
(27247, 7, 2835.552002,-451.271088,135.362701, 'Devout Bodyguard'),
|
||||
(27247, 8, 2824.675049,-447.810760,135.362701, 'Devout Bodyguard'),
|
||||
(27247, 9, 2817.437744,-468.281036,135.361267, 'Devout Bodyguard'),
|
||||
(27247,10, 2821.199707,-471.310425,138.636017, 'Devout Bodyguard'),
|
||||
(27247,11, 2827.012695,-472.998871,143.907898, 'Devout Bodyguard'),
|
||||
(27247,12, 2830.540771,-472.438110,147.174271, 'Devout Bodyguard'),
|
||||
(27247,13, 2837.653076,-467.185547,150.836685, 'Devout Bodyguard'),
|
||||
(27247,14, 2828.407227,-458.208435,153.165573, 'Devout Bodyguard'),
|
||||
(27247,15, 2837.653076,-467.185547,150.836685, 'Devout Bodyguard'),
|
||||
(27247,16, 2830.540771,-472.438110,147.174271, 'Devout Bodyguard'),
|
||||
(27247,17, 2827.012695,-472.998871,143.907898, 'Devout Bodyguard'),
|
||||
(27247,18, 2821.199707,-471.310425,138.636017, 'Devout Bodyguard'),
|
||||
(27247,19, 2817.437744,-468.281036,135.361267, 'Devout Bodyguard'),
|
||||
(27247,20, 2824.675049,-447.810760,135.362701, 'Devout Bodyguard'),
|
||||
(27247,21, 2835.552002,-451.271088,135.362701, 'Devout Bodyguard'),
|
||||
(27247,22, 2839.449219,-459.743408,135.362701, 'Devout Bodyguard'),
|
||||
(27247,23, 2836.603760,-468.373047,135.362701, 'Devout Bodyguard'),
|
||||
(27247,24, 2830.335205,-472.019501,131.034653, 'Devout Bodyguard'),
|
||||
(27247,25, 2823.792236,-472.341522,125.244446, 'Devout Bodyguard'),
|
||||
(27247,26, 2814.937500,-465.844482,119.613434, 'Devout Bodyguard'),
|
||||
(27247,27, 2799.233154,-479.702179,119.616562, 'Devout Bodyguard'),
|
||||
(27439, 1, 2827.939941,-424.861115,119.889359, 'High Abbot Landgren'),
|
||||
(27439, 2, 2827.616455,-419.490265,118.196106, 'High Abbot Landgren'),
|
||||
(27439, 3, 2826.310303,-411.833801,118.196106, 'High Abbot Landgren'),
|
||||
(27439, 4, 2812.848633,-411.278259,118.196106, 'High Abbot Landgren'),
|
||||
(27439, 5, 2785.380371,-438.162445,118.204048, 'High Abbot Landgren'),
|
||||
(27439, 6, 2776.644775,-465.078369,116.134209, 'High Abbot Landgren'),
|
||||
(27439, 7, 2765.220703,-488.269043,113.898613, 'High Abbot Landgren'),
|
||||
(27439, 8, 2738.468262,-524.502625,103.381577, 'High Abbot Landgren'),
|
||||
(27439, 9, 2738.541748,-523.856567,103.497971, 'High Abbot Landgren');
|
||||
@@ -0,0 +1,119 @@
|
||||
--
|
||||
SET @CGUID := 143068;
|
||||
|
||||
UPDATE `creature_template` SET `flags_extra`=130 WHERE `entry`=23308;
|
||||
|
||||
DELETE FROM `creature` WHERE `id`=23308;
|
||||
INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `MovementType`) VALUES
|
||||
(@CGUID, 23308, 530, 1, 1, -4908.303, 693.3235, 68.30413, 2.408554, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+1, 23308, 530, 1, 1, -4896.176, 713.5862, 67.87032, 2.827433, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+2, 23308, 530, 1, 1, -4983.288, 621.2392, 82.10828, 0.418879, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+3, 23308, 530, 1, 1, -4996.269, 636.3649, 86.29096, 3.01942, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+4, 23308, 530, 1, 1, -5016.054, 648.3438, 86.95547, 3.822271, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+5, 23308, 530, 1, 1, -4978.723, 717.5042, 82.54941, 5.340707, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+6, 23308, 530, 1, 1, -4989.105, 732.9637, 81.77202, 5.61996, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+7, 23308, 530, 1, 1, -5044.638, 693.0281, 83.74966, 0.5235988, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+8, 23308, 530, 1, 1, -4942.709, 706.844, 79.96068, 4.24115, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+9, 23308, 530, 1, 1, -5006.096, 711.0118, 82.39001, 3.106686, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+10, 23308, 530, 1, 1, -4953.565, 785.4227, 65.59765, 4.729842, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+11, 23308, 530, 1, 1, -5025.283, 697.3306, 82.73563, 1.972222, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+12, 23308, 530, 1, 1, -4924.706, 690.315, 67.63488, 5.078908, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+13, 23308, 530, 1, 1, -4905.923, 742.5164, 68.57097, 1.22173, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+14, 23308, 530, 1, 1, -5052.508, 628.3175, 87.42931, 3.717551, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+15, 23308, 530, 1, 1, -5067.49, 688.6788, 86.85928, 5.899213, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+16, 23308, 530, 1, 1, -4983.404, 512.5572, 83.9359, 3.979351, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+17, 23308, 530, 1, 1, -4968.315, 520.0115, 80.42331, 3.612832, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+18, 23308, 530, 1, 1, -4937.222, 518.8829, 75.19988, 2.617994, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+19, 23308, 530, 1, 1, -4890.038, 527.1823, 54.81821, 2.617994, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+20, 23308, 530, 1, 1, -4891.44, 499.8959, 65.88749, 0.3141593, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+21, 23308, 530, 1, 1, -4979.627, 570.6924, 80.22912, 1.308997, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+22, 23308, 530, 1, 1, -4892.874, 546.2031, 44.15915, 2.70526, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+23, 23308, 530, 1, 1, -4867.34, 538.803, 44.58378, 1.989675, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+24, 23308, 530, 1, 1, -4876.236, 457.1823, 67.08725, 0.8377581, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+25, 23308, 530, 1, 1, -4840.593, 453.3032, 55.7324, 3.298672, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+26, 23308, 530, 1, 1, -4891.821, 415.4812, 66.3935, 5.550147, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+27, 23308, 530, 1, 1, -4916.999, 406.5264, 80.99642, 5.009095, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+28, 23308, 530, 1, 1, -4915.446, 264.3689, 58.88093, 4.747295, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+29, 23308, 530, 1, 1, -4975.813, 389.8158, 86.52158, 1.256637, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+30, 23308, 530, 1, 1, -4967.235, 321.069, 83.20417, 0.5061455, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+31, 23308, 530, 1, 1, -4933.402, 362.5087, 86.51894, 4.921828, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+32, 23308, 530, 1, 1, -4918.094, 365.6369, 78.95168, 1.239184, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+33, 23308, 530, 1, 1, -4879.875, 285.0746, 61.36743, 4.276057, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+34, 23308, 530, 1, 1, -4873.12, 293.9718, 59.86099, 4.363323, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+35, 23308, 530, 1, 1, -4942.391, 406.8, 83.6211, 4.607669, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+36, 23308, 530, 1, 1, -4974.749, 265.1832, 83.14781, 3.717551, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+37, 23308, 530, 1, 1, -4938.747, 255.7843, 74.29904, 2.75762, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+38, 23308, 530, 1, 1, -4889.052, 176.1976, 38.7179, 4.729842, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+39, 23308, 530, 1, 1, -4928.201, 255.8155, 70.39934, 6.178465, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+40, 23308, 530, 1, 1, -4931.203, 204.9994, 67.36839, 0.2617994, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+41, 23308, 530, 1, 1, -4884.356, 184.6242, 39.38375, 3.839724, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+42, 23308, 530, 1, 1, -4932.659, 148.9238, 61.47393, 3.892084, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+43, 23308, 530, 1, 1, -5014.475, 185.911, 82.53312, 2.897247, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+44, 23308, 530, 1, 1, -5003.236, 221.8654, 82.21045, 0.7504916, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+45, 23308, 530, 1, 1, -5008.961, 149.1531, 79.27936, 6.091199, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+46, 23308, 530, 1, 1, -4995.528, 242.3916, 80.93876, 1.361357, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+47, 23308, 530, 1, 1, -4984.791, 149.5906, 81.97713, 3.612832, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+48, 23308, 530, 1, 1, -4971.141, 221.0043, 80.24613, 1.256637, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+49, 23308, 530, 1, 1, -4990.53, 183.5518, 82.90385, 1.239184, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+50, 23308, 530, 1, 1, -4997.024, 307.7875, 83.69817, 1.570796, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+51, 23308, 530, 1, 1, -5017.297, 127.4287, 78.72571, 1.22173, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+52, 23308, 530, 1, 1, -4964.592, 122.5244, 72.23752, 3.001966, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+53, 23308, 530, 1, 1, -4975.979, 124.5532, 78.93584, 4.729842, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+54, 23308, 530, 1, 1, -4940.289, 135.1879, 60.06425, 4.694936, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+55, 23308, 530, 1, 1, -4981.198, 72.68598, 69.87347, 1.605703, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+56, 23308, 530, 1, 1, -4969.753, 83.70248, 65.03466, 0.4014257, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+57, 23308, 530, 1, 1, -4939.698, -12.05306, 59.29105, 5.253441, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+58, 23308, 530, 1, 1, -5035.422, -5.432726, 79.19983, 0.8028514, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+59, 23308, 530, 1, 1, -5051.713, 6.357422, 79.31741, 3.979351, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+60, 23308, 530, 1, 1, -4978.996, -61.19228, 61.58137, 3.612832, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+61, 23308, 530, 1, 1, -4973.253, -45.63737, 64.77574, 2.86234, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+62, 23308, 530, 1, 1, -4960.074, -29.78125, 64.1563, 2.635447, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+63, 23308, 530, 1, 1, -4967.127, -96.59397, 47.67604, 0.4886922, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+64, 23308, 530, 1, 1, -5048.987, -73.93305, 69.95586, 0.9773844, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+65, 23308, 530, 1, 1, -5041.511, -64.20345, 73.23809, 1.762783, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+66, 23308, 530, 1, 1, -5063.868, -93.08073, 66.99087, 0.8377581, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+67, 23308, 530, 1, 1, -5083.502, -102.5659, 68.22646, 0.05235988, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+68, 23308, 530, 1, 1, -5108.661, -99.04417, 70.57713, 4.991642, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+69, 23308, 530, 1, 1, -5119.431, -88.93848, 72.73511, 5.67232, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+70, 23308, 530, 1, 1, -5143.607, -81.98828, 72.99616, 1.396263, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+71, 23308, 530, 1, 1, -5179.469, -155.4261, 47.33661, 4.834562, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+72, 23308, 530, 1, 1, -5165.681, -40.96343, 75.41945, 4.956735, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+73, 23308, 530, 1, 1, -5206.374, -107.9088, 67.12513, 1.780236, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+74, 23308, 530, 1, 1, -5218.771, -95.07346, 55.70053, 0.3839724, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+75, 23308, 530, 1, 1, -5171.434, -31.30295, 77.34641, 5.166174, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+76, 23308, 530, 1, 1, -5173.663, -7.456272, 77.66401, 0.715585, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+77, 23308, 530, 1, 1, -5237.753, 34.42166, 51.42384, 1.727876, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+78, 23308, 530, 1, 1, -5146.234, 22.66222, 77.81999, 1.780236, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+79, 23308, 530, 1, 1, -5162.378, 8.383246, 77.74229, 5.445427, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+80, 23308, 530, 1, 1, -5109.182, 30.77496, 79.53506, 4.520403, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+81, 23308, 530, 1, 1, -5240.278, 46.92209, 52.11669, 3.351032, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+82, 23308, 530, 1, 1, -5105.193, 65.56229, 81.26714, 5.393067, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+83, 23308, 530, 1, 1, -5088.723, 26.12283, 79.81441, 0.6457718, 120, 0, 0), -- 23308 (Area: 3759)
|
||||
(@CGUID+84, 23308, 530, 1, 1, -5151.453, 67.02604, 80.27014, 3.769911, 120, 0, 0); -- 23308 (Area: 3759)
|
||||
|
||||
UPDATE `creature_template` SET `ainame`='SmartAI' WHERE `entry` =23311;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` =23311 AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(23311,0,0,1,8,0,100,1,40742,0,0,0,33,23311,0,0,0,0,0,7,0,0,0,0,0,0,0,'Disobedient Dragonmaw Peon - On Spell Hit (Booterang) - Give Kill Credit'),
|
||||
(23311,0,1,2,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Disobedient Dragonmaw Peon - Linked with Previous Event - Say'),
|
||||
(23311,0,2,3,61,0,100,0,0,0,0,0,59,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Disobedient Dragonmaw Peon - Linked with Previous Event - Set Run'),
|
||||
(23311,0,3,4,61,0,100,0,0,0,0,0,69,0,0,0,0,0,0,19,23308,200,0,0,0,0,0,'Disobedient Dragonmaw Peon - Linked with Previous Event - Move to closest Dragonmaw Peon Work Node'),
|
||||
(23311,0,4,0,61,0,100,0,0,0,0,0,41,30000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Disobedient Dragonmaw Peon - Linked with Previous Event - Despawn After 30 seconds'),
|
||||
(23311,0,5,6,38,0,100,0,1,1,0,0,45,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Disobedient Dragonmaw Peon - On Data Set - Set Data'),
|
||||
(23311,0,6,0,61,0,100,0,0,0,0,0,5,233,0,0,0,0,0,1,0,0,0,0,0,0,0,'Disobedient Dragonmaw Peon - Linked with Previous Event - Play emote');
|
||||
|
||||
UPDATE `creature_template` SET `ainame`='SmartAI' WHERE `entry` =23308;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` =23308 AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(23308,0,0,0,1,0,100,0,1000,1000,1000,1000,45,1,1,0,0,0,0,11,23311,10,0,0,0,0,0,'Dragonmaw Peon Work Node - OOC - Set Data Disobedient Dragonmaw Peon');
|
||||
|
||||
DELETE FROM `creature_text` WHERE `entry` =23311;
|
||||
INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES
|
||||
(23311, 0, 0, 'ARGH! BOOTERANG!', 12, 0, 100, 0, 0, 0, 'Disobedient Dragonmaw Peon', 21335),
|
||||
(23311, 0, 1, 'AYAYA! One day me have dat booterang...', 12, 0, 100, 0, 0, 0, 'Disobedient Dragonmaw Peon', 21336),
|
||||
(23311, 0, 2, 'HEY! No more booterang! Me sorry! Me work!', 12, 0, 100, 0, 0, 0, 'Disobedient Dragonmaw Peon', 21332),
|
||||
(23311, 0, 3, 'OOF! Booterang hurted me! Me tink work better den booterang!', 12, 0, 100, 0, 0, 0, 'Disobedient Dragonmaw Peon', 21333),
|
||||
(23311, 0, 4, 'OWWWW! Ok, ok, me go back to work!', 12, 0, 100, 0, 0, 0, 'Disobedient Dragonmaw Peon', 21331),
|
||||
(23311, 0, 5, 'WHY IT PUT DA BOOTERANG ON DA SKIN?? WHY??', 12, 0, 100, 0, 0, 0, 'Disobedient Dragonmaw Peon', 21334),
|
||||
(23311, 0, 6, 'You is bad orc... baaad... or... argh!', 12, 0, 100, 0, 0, 0, 'Disobedient Dragonmaw Peon', 21223);
|
||||
@@ -704,13 +704,25 @@ bool AuthSocket::_HandleLogonProof()
|
||||
char data[4] = { AUTH_LOGON_PROOF, WOW_FAIL_UNKNOWN_ACCOUNT, 3, 0 };
|
||||
socket().send(data, sizeof(data));
|
||||
|
||||
TC_LOG_DEBUG("server.authserver", "'%s:%d' [AuthChallenge] account %s tried to login with invalid password!", socket().getRemoteAddress().c_str(), socket().getRemotePort(), _login.c_str ());
|
||||
TC_LOG_DEBUG("server.authserver", "'%s:%d' [AuthChallenge] account %s tried to login with invalid password!", socket().getRemoteAddress().c_str(), socket().getRemotePort(), _login.c_str());
|
||||
|
||||
uint32 MaxWrongPassCount = sConfigMgr->GetIntDefault("WrongPass.MaxCount", 0);
|
||||
|
||||
// We can not include the failed account login hook. However, this is a workaround to still log this.
|
||||
if (sConfigMgr->GetBoolDefault("Additional.IP.Based.Login.Logging", false))
|
||||
{
|
||||
PreparedStatement* logstmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_FALP_IP_LOGGING);
|
||||
logstmt->setString(0, _login);
|
||||
logstmt->setString(1, socket().getRemoteAddress());
|
||||
logstmt->setString(2, "Logged on failed AccountLogin due wrong password");
|
||||
|
||||
LoginDatabase.Execute(logstmt);
|
||||
}
|
||||
|
||||
if (MaxWrongPassCount > 0)
|
||||
{
|
||||
//Increment number of failed logins by one and if it reaches the limit temporarily ban that account or IP
|
||||
PreparedStatement *stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_FAILEDLOGINS);
|
||||
PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_FAILEDLOGINS);
|
||||
stmt->setString(0, _login);
|
||||
LoginDatabase.Execute(stmt);
|
||||
|
||||
|
||||
@@ -147,6 +147,13 @@ LoginDatabaseInfo = "127.0.0.1;3306;trinity;trinity;auth"
|
||||
|
||||
LoginDatabase.WorkerThreads = 1
|
||||
|
||||
#
|
||||
# Wrong.Password.Login.Logging
|
||||
# Description: Additionally log attempted wrong password logging
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
Wrong.Password.Login.Logging = 0
|
||||
#
|
||||
###################################################################################################
|
||||
|
||||
|
||||
@@ -944,7 +944,7 @@ class SmartTrigger : public AreaTriggerScript
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_SmartSCripts()
|
||||
void AddSC_SmartScripts()
|
||||
{
|
||||
new SmartTrigger();
|
||||
}
|
||||
@@ -21,6 +21,7 @@
|
||||
#include "DatabaseEnv.h"
|
||||
#include "ObjectAccessor.h"
|
||||
#include "Player.h"
|
||||
#include "ScriptMgr.h"
|
||||
#include "Util.h"
|
||||
#include "SHA1.h"
|
||||
#include "WorldSession.h"
|
||||
@@ -166,10 +167,16 @@ AccountOpResult AccountMgr::ChangePassword(uint32 accountId, std::string newPass
|
||||
std::string username;
|
||||
|
||||
if (!GetName(accountId, username))
|
||||
{
|
||||
sScriptMgr->OnFailedPasswordChange(accountId);
|
||||
return AccountOpResult::AOR_NAME_NOT_EXIST; // account doesn't exist
|
||||
}
|
||||
|
||||
if (utf8length(newPassword) > MAX_ACCOUNT_STR)
|
||||
{
|
||||
sScriptMgr->OnFailedPasswordChange(accountId);
|
||||
return AccountOpResult::AOR_PASS_TOO_LONG;
|
||||
}
|
||||
|
||||
Utf8ToUpperOnlyLatin(username);
|
||||
Utf8ToUpperOnlyLatin(newPassword);
|
||||
@@ -189,6 +196,7 @@ AccountOpResult AccountMgr::ChangePassword(uint32 accountId, std::string newPass
|
||||
|
||||
LoginDatabase.Execute(stmt);
|
||||
|
||||
sScriptMgr->OnPasswordChange(accountId);
|
||||
return AccountOpResult::AOR_OK;
|
||||
}
|
||||
|
||||
@@ -197,10 +205,16 @@ AccountOpResult AccountMgr::ChangeEmail(uint32 accountId, std::string newEmail)
|
||||
std::string username;
|
||||
|
||||
if (!GetName(accountId, username))
|
||||
{
|
||||
sScriptMgr->OnFailedEmailChange(accountId);
|
||||
return AccountOpResult::AOR_NAME_NOT_EXIST; // account doesn't exist
|
||||
}
|
||||
|
||||
if (utf8length(newEmail) > MAX_EMAIL_STR)
|
||||
{
|
||||
sScriptMgr->OnFailedEmailChange(accountId);
|
||||
return AccountOpResult::AOR_EMAIL_TOO_LONG;
|
||||
}
|
||||
|
||||
Utf8ToUpperOnlyLatin(username);
|
||||
Utf8ToUpperOnlyLatin(newEmail);
|
||||
@@ -212,6 +226,7 @@ AccountOpResult AccountMgr::ChangeEmail(uint32 accountId, std::string newEmail)
|
||||
|
||||
LoginDatabase.Execute(stmt);
|
||||
|
||||
sScriptMgr->OnEmailChange(accountId);
|
||||
return AccountOpResult::AOR_OK;
|
||||
}
|
||||
|
||||
@@ -223,7 +238,10 @@ AccountOpResult AccountMgr::ChangeRegEmail(uint32 accountId, std::string newEmai
|
||||
return AccountOpResult::AOR_NAME_NOT_EXIST; // account doesn't exist
|
||||
|
||||
if (utf8length(newEmail) > MAX_EMAIL_STR)
|
||||
{
|
||||
sScriptMgr->OnFailedEmailChange(accountId);
|
||||
return AccountOpResult::AOR_EMAIL_TOO_LONG;
|
||||
}
|
||||
|
||||
Utf8ToUpperOnlyLatin(username);
|
||||
Utf8ToUpperOnlyLatin(newEmail);
|
||||
@@ -235,6 +253,7 @@ AccountOpResult AccountMgr::ChangeRegEmail(uint32 accountId, std::string newEmai
|
||||
|
||||
LoginDatabase.Execute(stmt);
|
||||
|
||||
sScriptMgr->OnEmailChange(accountId);
|
||||
return AccountOpResult::AOR_OK;
|
||||
}
|
||||
|
||||
|
||||
@@ -988,7 +988,7 @@ class PlayerTaxi
|
||||
bool SetTaximaskNode(uint32 nodeidx)
|
||||
{
|
||||
uint8 field = uint8((nodeidx - 1) / 8);
|
||||
uint32 submask = 1 << ((nodeidx-1) % 8);
|
||||
uint32 submask = 1 << ((nodeidx- 1) % 8);
|
||||
if ((m_taximask[field] & submask) != submask)
|
||||
{
|
||||
m_taximask[field] |= submask;
|
||||
@@ -1021,7 +1021,7 @@ class PlayerTaxi
|
||||
std::deque<uint32> m_TaxiDestinations;
|
||||
};
|
||||
|
||||
std::ostringstream& operator<< (std::ostringstream& ss, PlayerTaxi const& taxi);
|
||||
std::ostringstream& operator << (std::ostringstream& ss, PlayerTaxi const& taxi);
|
||||
|
||||
class Player;
|
||||
|
||||
@@ -2890,8 +2890,8 @@ class Player : public Unit, public GridObject<Player>
|
||||
uint32 _maxPersonalArenaRate;
|
||||
};
|
||||
|
||||
void AddItemsSetItem(Player*player, Item* item);
|
||||
void RemoveItemsSetItem(Player*player, ItemTemplate const* proto);
|
||||
void AddItemsSetItem(Player* player, Item* item);
|
||||
void RemoveItemsSetItem(Player* player, ItemTemplate const* proto);
|
||||
|
||||
// "the bodies of template functions must be made available in a header file"
|
||||
template <class T> T Player::ApplySpellMod(uint32 spellId, SpellModOp op, T &basevalue, Spell* spell)
|
||||
|
||||
@@ -264,26 +264,43 @@ void WorldSession::HandleCalendarAddEvent(WorldPacket& recvData)
|
||||
}
|
||||
else
|
||||
{
|
||||
// client limits the amount of players to be invited to 100
|
||||
const uint32 MaxPlayerInvites = 100;
|
||||
|
||||
uint32 inviteCount;
|
||||
recvData >> inviteCount;
|
||||
uint64 invitee[MaxPlayerInvites];
|
||||
uint8 status[MaxPlayerInvites];
|
||||
uint8 rank[MaxPlayerInvites];
|
||||
|
||||
memset(invitee, 0, sizeof(invitee));
|
||||
memset(status, 0, sizeof(status));
|
||||
memset(rank, 0, sizeof(rank));
|
||||
|
||||
try
|
||||
{
|
||||
recvData >> inviteCount;
|
||||
|
||||
for (uint32 i = 0; i < inviteCount && i < MaxPlayerInvites; ++i)
|
||||
{
|
||||
recvData.readPackGUID(invitee[i]);
|
||||
recvData >> status[i] >> rank[i];
|
||||
}
|
||||
}
|
||||
catch (ByteBufferException const&)
|
||||
{
|
||||
delete calendarEvent;
|
||||
calendarEvent = NULL;
|
||||
throw;
|
||||
}
|
||||
|
||||
SQLTransaction trans;
|
||||
if (inviteCount > 1)
|
||||
trans = CharacterDatabase.BeginTransaction();
|
||||
|
||||
// client limits the amount of players to be invited to 100
|
||||
const uint32 MaxPlayerInvites = 100;
|
||||
|
||||
for (uint32 i = 0; i < inviteCount && i < MaxPlayerInvites; ++i)
|
||||
{
|
||||
uint64 invitee = 0;
|
||||
uint8 status = 0;
|
||||
uint8 rank = 0;
|
||||
recvData.readPackGUID(invitee);
|
||||
recvData >> status >> rank;
|
||||
|
||||
// 946684800 is 01/01/2000 00:00:00 - default response time
|
||||
CalendarInvite* invite = new CalendarInvite(sCalendarMgr->GetFreeInviteId(), calendarEvent->GetEventId(), invitee, guid, 946684800, CalendarInviteStatus(status), CalendarModerationRank(rank), "");
|
||||
CalendarInvite* invite = new CalendarInvite(sCalendarMgr->GetFreeInviteId(), calendarEvent->GetEventId(), invitee[i], guid, 946684800, CalendarInviteStatus(status[i]), CalendarModerationRank(rank[i]), "");
|
||||
sCalendarMgr->AddInvite(calendarEvent, invite, trans);
|
||||
}
|
||||
|
||||
|
||||
@@ -721,10 +721,15 @@ void WorldSession::HandleCharDeleteOpcode(WorldPacket& recvData)
|
||||
{
|
||||
uint64 guid;
|
||||
recvData >> guid;
|
||||
// Initiating
|
||||
uint32 initAccountId = GetAccountId();
|
||||
|
||||
// can't delete loaded character
|
||||
if (ObjectAccessor::FindPlayer(guid))
|
||||
{
|
||||
sScriptMgr->OnPlayerFailedDelete(guid, initAccountId);
|
||||
return;
|
||||
}
|
||||
|
||||
uint32 accountId = 0;
|
||||
uint8 level = 0;
|
||||
@@ -733,6 +738,7 @@ void WorldSession::HandleCharDeleteOpcode(WorldPacket& recvData)
|
||||
// is guild leader
|
||||
if (sGuildMgr->GetGuildByLeader(guid))
|
||||
{
|
||||
sScriptMgr->OnPlayerFailedDelete(guid, initAccountId);
|
||||
WorldPacket data(SMSG_CHAR_DELETE, 1);
|
||||
data << uint8(CHAR_DELETE_FAILED_GUILD_LEADER);
|
||||
SendPacket(&data);
|
||||
@@ -742,6 +748,7 @@ void WorldSession::HandleCharDeleteOpcode(WorldPacket& recvData)
|
||||
// is arena team captain
|
||||
if (sArenaTeamMgr->GetArenaTeamByCaptain(guid))
|
||||
{
|
||||
sScriptMgr->OnPlayerFailedDelete(guid, initAccountId);
|
||||
WorldPacket data(SMSG_CHAR_DELETE, 1);
|
||||
data << uint8(CHAR_DELETE_FAILED_ARENA_CAPTAIN);
|
||||
SendPacket(&data);
|
||||
@@ -760,12 +767,18 @@ void WorldSession::HandleCharDeleteOpcode(WorldPacket& recvData)
|
||||
}
|
||||
|
||||
// prevent deleting other players' characters using cheating tools
|
||||
if (accountId != GetAccountId())
|
||||
if (accountId != initAccountId)
|
||||
{
|
||||
sScriptMgr->OnPlayerFailedDelete(guid, initAccountId);
|
||||
return;
|
||||
}
|
||||
|
||||
std::string IP_str = GetRemoteAddress();
|
||||
TC_LOG_INFO("entities.player.character", "Account: %d, IP: %s deleted character: %s, GUID: %u, Level: %u", accountId, IP_str.c_str(), name.c_str(), GUID_LOPART(guid), level);
|
||||
sScriptMgr->OnPlayerDelete(guid);
|
||||
|
||||
// To prevent hook failure, place hook before removing reference from DB
|
||||
sScriptMgr->OnPlayerDelete(guid, initAccountId); // To prevent race conditioning, but as it also makes sense, we hand the accountId over for successful delete.
|
||||
// Shouldn't interfere with character deletion though
|
||||
|
||||
if (sLog->ShouldLog("entities.player.dump", LOG_LEVEL_INFO)) // optimize GetPlayerDump call
|
||||
{
|
||||
|
||||
@@ -1325,6 +1325,10 @@ void WorldSession::HandleItemRefund(WorldPacket &recvData)
|
||||
return;
|
||||
}
|
||||
|
||||
// Don't try to refund item currently being disenchanted
|
||||
if (_player->GetLootGUID() == guid)
|
||||
return;
|
||||
|
||||
GetPlayer()->RefundItem(item);
|
||||
}
|
||||
|
||||
|
||||
@@ -347,7 +347,8 @@ void WorldSession::DoLootRelease(uint64 lguid)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (pItem->loot.isLooted()) // Only delete item if no loot or money (unlooted loot is saved to db)
|
||||
// Only delete item if no loot or money (unlooted loot is saved to db) or if it isn't an openable item
|
||||
if (pItem->loot.isLooted() || !(proto->Flags & ITEM_PROTO_FLAG_OPENABLE))
|
||||
player->DestroyItem(pItem->GetBagSlot(), pItem->GetSlot(), true);
|
||||
}
|
||||
return; // item can be looted only single player
|
||||
|
||||
@@ -191,6 +191,10 @@ bool WaypointMovementGenerator<Creature>::DoUpdate(Creature* creature, uint32 di
|
||||
}
|
||||
else
|
||||
{
|
||||
// Set home position at place on waypoint movement.
|
||||
if (!creature->GetTransGUID())
|
||||
creature->SetHomePosition(creature->GetPosition());
|
||||
|
||||
if (creature->IsStopped())
|
||||
Stop(STOP_TIME_FOR_PLAYER);
|
||||
else if (creature->movespline->Finalized())
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
*/
|
||||
|
||||
#include "ScriptLoader.h"
|
||||
#include "World.h"
|
||||
|
||||
//examples
|
||||
void AddSC_example_creature();
|
||||
@@ -41,7 +42,7 @@ void AddSC_item_spell_scripts();
|
||||
void AddSC_example_spell_scripts();
|
||||
void AddSC_holiday_spell_scripts();
|
||||
|
||||
void AddSC_SmartSCripts();
|
||||
void AddSC_SmartScripts();
|
||||
|
||||
//Commands
|
||||
void AddSC_account_commandscript();
|
||||
@@ -98,6 +99,7 @@ void AddSC_npc_innkeeper();
|
||||
void AddSC_npcs_special();
|
||||
void AddSC_npc_taxi();
|
||||
void AddSC_achievement_scripts();
|
||||
void AddSC_action_ip_logger();
|
||||
|
||||
//eastern kingdoms
|
||||
void AddSC_alterac_valley(); //Alterac Valley
|
||||
@@ -701,6 +703,7 @@ void AddSC_outdoorpvp_zm();
|
||||
|
||||
// player
|
||||
void AddSC_chat_log();
|
||||
void AddSC_action_ip_logger();
|
||||
|
||||
#endif
|
||||
|
||||
@@ -708,7 +711,7 @@ void AddScripts()
|
||||
{
|
||||
AddExampleScripts();
|
||||
AddSpellScripts();
|
||||
AddSC_SmartSCripts();
|
||||
AddSC_SmartScripts();
|
||||
AddCommandScripts();
|
||||
#ifdef SCRIPTS
|
||||
AddWorldScripts();
|
||||
@@ -811,7 +814,10 @@ void AddWorldScripts()
|
||||
AddSC_npcs_special();
|
||||
AddSC_npc_taxi();
|
||||
AddSC_achievement_scripts();
|
||||
AddSC_chat_log();
|
||||
AddSC_chat_log(); // location: scripts\World\chat_log.cpp
|
||||
// To avoid duplicate code, we check once /*ONLY*/ if logging is permitted or not.
|
||||
if (sWorld->getBoolConfig(CONFIG_IP_BASED_ACTION_LOGGING))
|
||||
AddSC_action_ip_logger(); // location: scripts\World\action_ip_logger.cpp
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -224,6 +224,7 @@ void ScriptMgr::Unload()
|
||||
SCR_CLEAR(TransportScript);
|
||||
SCR_CLEAR(AchievementCriteriaScript);
|
||||
SCR_CLEAR(PlayerScript);
|
||||
SCR_CLEAR(AccountScript);
|
||||
SCR_CLEAR(GuildScript);
|
||||
SCR_CLEAR(GroupScript);
|
||||
SCR_CLEAR(UnitScript);
|
||||
@@ -1257,9 +1258,14 @@ void ScriptMgr::OnPlayerCreate(Player* player)
|
||||
FOREACH_SCRIPT(PlayerScript)->OnCreate(player);
|
||||
}
|
||||
|
||||
void ScriptMgr::OnPlayerDelete(uint64 guid)
|
||||
void ScriptMgr::OnPlayerDelete(uint64 guid, uint32 accountId)
|
||||
{
|
||||
FOREACH_SCRIPT(PlayerScript)->OnDelete(guid);
|
||||
FOREACH_SCRIPT(PlayerScript)->OnDelete(guid, accountId);
|
||||
}
|
||||
|
||||
void ScriptMgr::OnPlayerFailedDelete(uint64 guid, uint32 accountId)
|
||||
{
|
||||
FOREACH_SCRIPT(PlayerScript)->OnFailedDelete(guid, accountId);
|
||||
}
|
||||
|
||||
void ScriptMgr::OnPlayerSave(Player* player)
|
||||
@@ -1277,6 +1283,37 @@ void ScriptMgr::OnPlayerUpdateZone(Player* player, uint32 newZone, uint32 newAre
|
||||
FOREACH_SCRIPT(PlayerScript)->OnUpdateZone(player, newZone, newArea);
|
||||
}
|
||||
|
||||
// Account
|
||||
void ScriptMgr::OnAccountLogin(uint32 accountId)
|
||||
{
|
||||
FOREACH_SCRIPT(AccountScript)->OnAccountLogin(accountId);
|
||||
}
|
||||
|
||||
void ScriptMgr::OnFailedAccountLogin(uint32 accountId)
|
||||
{
|
||||
FOREACH_SCRIPT(AccountScript)->OnFailedAccountLogin(accountId);
|
||||
}
|
||||
|
||||
void ScriptMgr::OnEmailChange(uint32 accountId)
|
||||
{
|
||||
FOREACH_SCRIPT(AccountScript)->OnEmailChange(accountId);
|
||||
}
|
||||
|
||||
void ScriptMgr::OnFailedEmailChange(uint32 accountId)
|
||||
{
|
||||
FOREACH_SCRIPT(AccountScript)->OnFailedEmailChange(accountId);
|
||||
}
|
||||
|
||||
void ScriptMgr::OnPasswordChange(uint32 accountId)
|
||||
{
|
||||
FOREACH_SCRIPT(AccountScript)->OnPasswordChange(accountId);
|
||||
}
|
||||
|
||||
void ScriptMgr::OnFailedPasswordChange(uint32 accountId)
|
||||
{
|
||||
FOREACH_SCRIPT(AccountScript)->OnFailedPasswordChange(accountId);
|
||||
}
|
||||
|
||||
// Guild
|
||||
void ScriptMgr::OnGuildAddMember(Guild* guild, Player* player, uint8& plRank)
|
||||
{
|
||||
@@ -1539,6 +1576,12 @@ PlayerScript::PlayerScript(const char* name)
|
||||
ScriptRegistry<PlayerScript>::AddScript(this);
|
||||
}
|
||||
|
||||
AccountScript::AccountScript(const char* name)
|
||||
: ScriptObject(name)
|
||||
{
|
||||
ScriptRegistry<AccountScript>::AddScript(this);
|
||||
}
|
||||
|
||||
GuildScript::GuildScript(const char* name)
|
||||
: ScriptObject(name)
|
||||
{
|
||||
@@ -1581,6 +1624,7 @@ template class ScriptRegistry<PlayerScript>;
|
||||
template class ScriptRegistry<GuildScript>;
|
||||
template class ScriptRegistry<GroupScript>;
|
||||
template class ScriptRegistry<UnitScript>;
|
||||
template class ScriptRegistry<AccountScript>;
|
||||
|
||||
// Undefine utility macros.
|
||||
#undef GET_SCRIPT_RET
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
#include "World.h"
|
||||
#include "Weather.h"
|
||||
|
||||
class AccountMgr;
|
||||
class AuctionHouseObject;
|
||||
class AuraScript;
|
||||
class Battleground;
|
||||
@@ -752,7 +753,10 @@ class PlayerScript : public UnitScript
|
||||
virtual void OnCreate(Player* /*player*/) { }
|
||||
|
||||
// Called when a player is deleted.
|
||||
virtual void OnDelete(uint64 /*guid*/) { }
|
||||
virtual void OnDelete(uint64 /*guid*/, uint32 /*accountId*/) { }
|
||||
|
||||
// Called when a player delete failed
|
||||
virtual void OnFailedDelete(uint64 /*guid*/, uint32 /*accountId*/) { }
|
||||
|
||||
// Called when a player is about to be saved.
|
||||
virtual void OnSave(Player* /*player*/) { }
|
||||
@@ -767,6 +771,33 @@ class PlayerScript : public UnitScript
|
||||
virtual void OnMapChanged(Player* /*player*/) { }
|
||||
};
|
||||
|
||||
class AccountScript : public ScriptObject
|
||||
{
|
||||
protected:
|
||||
|
||||
AccountScript(const char* name);
|
||||
|
||||
public:
|
||||
|
||||
// Called when an account logged in succesfully
|
||||
virtual void OnAccountLogin(uint32 /*accountI*/d) {}
|
||||
|
||||
// Called when an account login failed
|
||||
virtual void OnFailedAccountLogin(uint32 /*accountI*/) {}
|
||||
|
||||
// Called when Email is successfully changed for Account
|
||||
virtual void OnEmailChange(uint32 /*accountI*/) {}
|
||||
|
||||
// Called when Email failed to change for Account
|
||||
virtual void OnFailedEmailChange(uint32 /*accountI*/) {}
|
||||
|
||||
// Called when Password is successfully changed for Account
|
||||
virtual void OnPasswordChange(uint32 /*accountI*/) {}
|
||||
|
||||
// Called when Password failed to change for Account
|
||||
virtual void OnFailedPasswordChange(uint32 /*accountI*/) {}
|
||||
};
|
||||
|
||||
class GuildScript : public ScriptObject
|
||||
{
|
||||
protected:
|
||||
@@ -1036,11 +1067,21 @@ class ScriptMgr
|
||||
void OnPlayerLogin(Player* player, bool firstLogin);
|
||||
void OnPlayerLogout(Player* player);
|
||||
void OnPlayerCreate(Player* player);
|
||||
void OnPlayerDelete(uint64 guid);
|
||||
void OnPlayerDelete(uint64 guid, uint32 accountId);
|
||||
void OnPlayerFailedDelete(uint64 guid, uint32 accountId);
|
||||
void OnPlayerSave(Player* player);
|
||||
void OnPlayerBindToInstance(Player* player, Difficulty difficulty, uint32 mapid, bool permanent);
|
||||
void OnPlayerUpdateZone(Player* player, uint32 newZone, uint32 newArea);
|
||||
|
||||
public: /* AccountScript */
|
||||
|
||||
void OnAccountLogin(uint32 accountId);
|
||||
void OnFailedAccountLogin(uint32 accountId);
|
||||
void OnEmailChange(uint32 accountId);
|
||||
void OnFailedEmailChange(uint32 accountId);
|
||||
void OnPasswordChange(uint32 accountId);
|
||||
void OnFailedPasswordChange(uint32 accountId);
|
||||
|
||||
public: /* GuildScript */
|
||||
|
||||
void OnGuildAddMember(Guild* guild, Player* player, uint8& plRank);
|
||||
|
||||
@@ -1037,10 +1037,11 @@ class WorldSession
|
||||
// characters who failed on Player::BuildEnumData shouldn't login
|
||||
std::set<uint32> _legitCharacters;
|
||||
|
||||
uint32 m_GUIDLow; // set loggined or recently logout player (while m_playerRecentlyLogout set)
|
||||
uint32 m_GUIDLow; // set logined or recently logout player (while m_playerRecentlyLogout set)
|
||||
Player* _player;
|
||||
WorldSocket* m_Socket;
|
||||
std::string m_Address;
|
||||
std::string m_Address; // Current Remote Address
|
||||
// std::string m_LAddress; // Last Attempted Remote Adress - we can not set attempted ip for a non-existing session!
|
||||
|
||||
AccountTypes _security;
|
||||
uint32 _accountId;
|
||||
|
||||
@@ -276,7 +276,7 @@ int WorldSocket::open (void *a)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int WorldSocket::close (u_long)
|
||||
int WorldSocket::close(u_long)
|
||||
{
|
||||
shutdown();
|
||||
|
||||
@@ -287,7 +287,7 @@ int WorldSocket::close (u_long)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int WorldSocket::handle_input (ACE_HANDLE)
|
||||
int WorldSocket::handle_input(ACE_HANDLE)
|
||||
{
|
||||
if (closing_)
|
||||
return -1;
|
||||
@@ -323,7 +323,7 @@ int WorldSocket::handle_input (ACE_HANDLE)
|
||||
ACE_NOTREACHED(return -1);
|
||||
}
|
||||
|
||||
int WorldSocket::handle_output (ACE_HANDLE)
|
||||
int WorldSocket::handle_output(ACE_HANDLE)
|
||||
{
|
||||
ACE_GUARD_RETURN (LockType, Guard, m_OutBufferLock, -1);
|
||||
|
||||
@@ -369,7 +369,7 @@ int WorldSocket::handle_output (ACE_HANDLE)
|
||||
ACE_NOTREACHED (return 0);
|
||||
}
|
||||
|
||||
int WorldSocket::handle_output_queue (GuardType& g)
|
||||
int WorldSocket::handle_output_queue(GuardType& g)
|
||||
{
|
||||
if (msg_queue()->is_empty())
|
||||
return cancel_wakeup_output(g);
|
||||
@@ -430,7 +430,7 @@ int WorldSocket::handle_output_queue (GuardType& g)
|
||||
ACE_NOTREACHED(return -1);
|
||||
}
|
||||
|
||||
int WorldSocket::handle_close (ACE_HANDLE h, ACE_Reactor_Mask)
|
||||
int WorldSocket::handle_close(ACE_HANDLE h, ACE_Reactor_Mask)
|
||||
{
|
||||
// Critical section
|
||||
{
|
||||
@@ -630,7 +630,7 @@ int WorldSocket::handle_input_missing_data (void)
|
||||
return size_t(n) == recv_size ? 1 : 2;
|
||||
}
|
||||
|
||||
int WorldSocket::cancel_wakeup_output (GuardType& g)
|
||||
int WorldSocket::cancel_wakeup_output(GuardType& g)
|
||||
{
|
||||
if (!m_OutActive)
|
||||
return 0;
|
||||
@@ -650,7 +650,7 @@ int WorldSocket::cancel_wakeup_output (GuardType& g)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int WorldSocket::schedule_wakeup_output (GuardType& g)
|
||||
int WorldSocket::schedule_wakeup_output(GuardType& g)
|
||||
{
|
||||
if (m_OutActive)
|
||||
return 0;
|
||||
@@ -803,6 +803,7 @@ int WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
|
||||
std::string account;
|
||||
SHA1Hash sha;
|
||||
BigNumber k;
|
||||
bool wardenActive = sWorld->getBoolConfig(CONFIG_WARDEN_ENABLED);
|
||||
WorldPacket addonsData;
|
||||
|
||||
recvPacket.read_skip<uint32>();
|
||||
@@ -877,6 +878,7 @@ int WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
|
||||
// Stop if the account is not found
|
||||
if (!result)
|
||||
{
|
||||
// We can not log here, as we do not know the account. Thus, no accountId.
|
||||
SendAuthResponseError(AUTH_UNKNOWN_ACCOUNT);
|
||||
TC_LOG_ERROR("network", "WorldSocket::HandleAuthSession: Sent Auth Response (unknown account).");
|
||||
return -1;
|
||||
@@ -889,19 +891,34 @@ int WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
|
||||
if (expansion > world_expansion)
|
||||
expansion = world_expansion;
|
||||
|
||||
// For hook purposes, we get Remoteaddress at this point.
|
||||
std::string address = GetRemoteAddress();
|
||||
|
||||
// As we don't know if attempted login process by ip works, we update last_attempt_ip right away
|
||||
stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_LAST_ATTEMPT_IP);
|
||||
|
||||
stmt->setString(0, address);
|
||||
stmt->setString(1, account);
|
||||
|
||||
LoginDatabase.Execute(stmt);
|
||||
// This also allows to check for possible "hack" attempts on account
|
||||
|
||||
// id has to be fetched at this point, so that first actual account response that fails can be logged
|
||||
id = fields[0].GetUInt32();
|
||||
|
||||
///- Re-check ip locking (same check as in realmd).
|
||||
if (fields[3].GetUInt8() == 1) // if ip is locked
|
||||
{
|
||||
if (strcmp (fields[2].GetCString(), GetRemoteAddress().c_str()))
|
||||
if (strcmp (fields[2].GetCString(), address.c_str()))
|
||||
{
|
||||
SendAuthResponseError(AUTH_FAILED);
|
||||
TC_LOG_DEBUG("network", "WorldSocket::HandleAuthSession: Sent Auth Response (Account IP differs).");
|
||||
TC_LOG_DEBUG("network", "WorldSocket::HandleAuthSession: Sent Auth Response (Account IP differs. Original IP: %s, new IP: %s).", fields[2].GetCString(), address.c_str());
|
||||
// We could log on hook only instead of an additional db log, however action logger is config based. Better keep DB logging as well
|
||||
sScriptMgr->OnFailedAccountLogin(id);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
id = fields[0].GetUInt32();
|
||||
|
||||
k.SetHexStr(fields[1].GetCString());
|
||||
|
||||
int64 mutetime = fields[5].GetInt64();
|
||||
@@ -926,10 +943,10 @@ int WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
|
||||
std::string os = fields[8].GetString();
|
||||
|
||||
// Must be done before WorldSession is created
|
||||
if (sWorld->getBoolConfig(CONFIG_WARDEN_ENABLED) && os != "Win" && os != "OSX")
|
||||
if (wardenActive && os != "Win" && os != "OSX")
|
||||
{
|
||||
SendAuthResponseError(AUTH_REJECT);
|
||||
TC_LOG_ERROR("network", "WorldSocket::HandleAuthSession: Client %s attempted to log in using invalid client OS (%s).", GetRemoteAddress().c_str(), os.c_str());
|
||||
TC_LOG_ERROR("network", "WorldSocket::HandleAuthSession: Client %s attempted to log in using invalid client OS (%s).", address.c_str(), os.c_str());
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -953,7 +970,7 @@ int WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
|
||||
stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_BANS);
|
||||
|
||||
stmt->setUInt32(0, id);
|
||||
stmt->setString(1, GetRemoteAddress());
|
||||
stmt->setString(1, address);
|
||||
|
||||
PreparedQueryResult banresult = LoginDatabase.Query(stmt);
|
||||
|
||||
@@ -961,6 +978,7 @@ int WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
|
||||
{
|
||||
SendAuthResponseError(AUTH_BANNED);
|
||||
TC_LOG_ERROR("network", "WorldSocket::HandleAuthSession: Sent Auth Response (Account banned).");
|
||||
sScriptMgr->OnFailedAccountLogin(id);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -971,6 +989,7 @@ int WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
|
||||
{
|
||||
SendAuthResponseError(AUTH_UNAVAILABLE);
|
||||
TC_LOG_INFO("network", "WorldSocket::HandleAuthSession: User tries to login but his security level is not enough");
|
||||
sScriptMgr->OnFailedAccountLogin(id);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -985,8 +1004,6 @@ int WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
|
||||
sha.UpdateBigNumbers(&k, NULL);
|
||||
sha.Finalize();
|
||||
|
||||
std::string address = GetRemoteAddress();
|
||||
|
||||
if (memcmp(sha.GetDigest(), digest, 20))
|
||||
{
|
||||
SendAuthResponseError(AUTH_FAILED);
|
||||
@@ -1009,8 +1026,7 @@ int WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
|
||||
if (result)
|
||||
isRecruiter = true;
|
||||
|
||||
// Update the last_ip in the database
|
||||
|
||||
// Update the last_ip in the database as it was successful for login
|
||||
stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_LAST_IP);
|
||||
|
||||
stmt->setString(0, address);
|
||||
@@ -1028,8 +1044,11 @@ int WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
|
||||
m_Session->ReadAddonsInfo(addonsData);
|
||||
m_Session->LoadPermissions();
|
||||
|
||||
// At this point, we can safely hook a successful login
|
||||
sScriptMgr->OnAccountLogin(id);
|
||||
|
||||
// Initialize Warden system only if it is enabled by config
|
||||
if (sWorld->getBoolConfig(CONFIG_WARDEN_ENABLED))
|
||||
if (wardenActive)
|
||||
m_Session->InitWarden(&k, os);
|
||||
|
||||
// Sleep this Network thread for
|
||||
@@ -1040,7 +1059,7 @@ int WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int WorldSocket::HandlePing (WorldPacket& recvPacket)
|
||||
int WorldSocket::HandlePing(WorldPacket& recvPacket)
|
||||
{
|
||||
uint32 ping;
|
||||
uint32 latency;
|
||||
|
||||
@@ -700,10 +700,10 @@ void Spell::EffectTriggerSpell(SpellEffIndex effIndex)
|
||||
{
|
||||
// remove all harmful spells on you...
|
||||
SpellInfo const* spell = iter->second->GetBase()->GetSpellInfo();
|
||||
if ((spell->DmgClass == SPELL_DAMAGE_CLASS_MAGIC // only affect magic spells
|
||||
|| ((spell->GetDispelMask()) & dispelMask))
|
||||
if (((spell->DmgClass == SPELL_DAMAGE_CLASS_MAGIC && spell->GetSchoolMask() != SPELL_SCHOOL_MASK_NORMAL) // only affect magic spells
|
||||
|| (spell->GetDispelMask() & dispelMask)) &&
|
||||
// ignore positive and passive auras
|
||||
&& !iter->second->IsPositive() && !iter->second->GetBase()->IsPassive())
|
||||
!iter->second->IsPositive() && !iter->second->GetBase()->IsPassive())
|
||||
{
|
||||
m_caster->RemoveAura(iter);
|
||||
}
|
||||
|
||||
@@ -1297,6 +1297,10 @@ void World::LoadConfigSettings(bool reload)
|
||||
|
||||
m_int_configs[CONFIG_PACKET_SPOOF_BANDURATION] = sConfigMgr->GetIntDefault("PacketSpoof.BanDuration", 86400);
|
||||
|
||||
m_bool_configs[CONFIG_IP_BASED_ACTION_LOGGING] = sConfigMgr->GetBoolDefault("Allow.IP.Based.Action.Logging", false);
|
||||
|
||||
m_bool_configs[CONFIG_IP_BASED_LOGIN_LOGGING] = sConfigMgr->GetBoolDefault("Wrong.Password.Login.Logging", false);
|
||||
|
||||
// call ScriptMgr if we're reloading the configuration
|
||||
if (reload)
|
||||
sScriptMgr->OnConfigLoad(reload);
|
||||
|
||||
@@ -162,6 +162,8 @@ enum WorldBoolConfigs
|
||||
CONFIG_EVENT_ANNOUNCE,
|
||||
CONFIG_STATS_LIMITS_ENABLE,
|
||||
CONFIG_INSTANCES_RESET_ANNOUNCE,
|
||||
CONFIG_IP_BASED_ACTION_LOGGING,
|
||||
CONFIG_IP_BASED_LOGIN_LOGGING,
|
||||
BOOL_CONFIG_VALUE_COUNT
|
||||
};
|
||||
|
||||
|
||||
@@ -376,6 +376,7 @@ public:
|
||||
if (!AccountMgr::CheckEmail(handler->GetSession()->GetAccountId(), std::string(oldEmail)))
|
||||
{
|
||||
handler->SendSysMessage(LANG_COMMAND_WRONGEMAIL);
|
||||
sScriptMgr->OnFailedEmailChange(handler->GetSession()->GetAccountId());
|
||||
handler->SetSentErrorMessage(true);
|
||||
TC_LOG_INFO("entities.player.character", "Account: %u (IP: %s) Character:[%s] (GUID: %u) Tried to change email, but the provided email [%s] is not equal to registration email [%s].",
|
||||
handler->GetSession()->GetAccountId(), handler->GetSession()->GetRemoteAddress().c_str(),
|
||||
@@ -387,6 +388,7 @@ public:
|
||||
if (!AccountMgr::CheckPassword(handler->GetSession()->GetAccountId(), std::string(password)))
|
||||
{
|
||||
handler->SendSysMessage(LANG_COMMAND_WRONGOLDPASSWORD);
|
||||
sScriptMgr->OnFailedEmailChange(handler->GetSession()->GetAccountId());
|
||||
handler->SetSentErrorMessage(true);
|
||||
TC_LOG_INFO("entities.player.character", "Account: %u (IP: %s) Character:[%s] (GUID: %u) Tried to change email, but the provided password is wrong.",
|
||||
handler->GetSession()->GetAccountId(), handler->GetSession()->GetRemoteAddress().c_str(),
|
||||
@@ -397,6 +399,7 @@ public:
|
||||
if (strcmp(email, oldEmail) == 0)
|
||||
{
|
||||
handler->SendSysMessage(LANG_OLD_EMAIL_IS_NEW_EMAIL);
|
||||
sScriptMgr->OnFailedEmailChange(handler->GetSession()->GetAccountId());
|
||||
handler->SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
@@ -404,6 +407,7 @@ public:
|
||||
if (strcmp(email, emailConfirmation) != 0)
|
||||
{
|
||||
handler->SendSysMessage(LANG_NEW_EMAILS_NOT_MATCH);
|
||||
sScriptMgr->OnFailedEmailChange(handler->GetSession()->GetAccountId());
|
||||
handler->SetSentErrorMessage(true);
|
||||
TC_LOG_INFO("entities.player.character", "Account: %u (IP: %s) Character:[%s] (GUID: %u) Tried to change email, but the provided password is wrong.",
|
||||
handler->GetSession()->GetAccountId(), handler->GetSession()->GetRemoteAddress().c_str(),
|
||||
@@ -417,6 +421,7 @@ public:
|
||||
{
|
||||
case AccountOpResult::AOR_OK:
|
||||
handler->SendSysMessage(LANG_COMMAND_EMAIL);
|
||||
sScriptMgr->OnEmailChange(handler->GetSession()->GetAccountId());
|
||||
TC_LOG_INFO("entities.player.character", "Account: %u (IP: %s) Character:[%s] (GUID: %u) Changed Email from [%s] to [%s].",
|
||||
handler->GetSession()->GetAccountId(), handler->GetSession()->GetRemoteAddress().c_str(),
|
||||
handler->GetSession()->GetPlayer()->GetName().c_str(), handler->GetSession()->GetPlayer()->GetGUIDLow(),
|
||||
@@ -424,6 +429,7 @@ public:
|
||||
break;
|
||||
case AccountOpResult::AOR_EMAIL_TOO_LONG:
|
||||
handler->SendSysMessage(LANG_EMAIL_TOO_LONG);
|
||||
sScriptMgr->OnFailedEmailChange(handler->GetSession()->GetAccountId());
|
||||
handler->SetSentErrorMessage(true);
|
||||
return false;
|
||||
default:
|
||||
@@ -468,6 +474,7 @@ public:
|
||||
if (!AccountMgr::CheckPassword(handler->GetSession()->GetAccountId(), std::string(oldPassword)))
|
||||
{
|
||||
handler->SendSysMessage(LANG_COMMAND_WRONGOLDPASSWORD);
|
||||
sScriptMgr->OnFailedPasswordChange(handler->GetSession()->GetAccountId());
|
||||
handler->SetSentErrorMessage(true);
|
||||
TC_LOG_INFO("entities.player.character", "Account: %u (IP: %s) Character:[%s] (GUID: %u) Tried to change password, but the provided old password is wrong.",
|
||||
handler->GetSession()->GetAccountId(), handler->GetSession()->GetRemoteAddress().c_str(),
|
||||
@@ -480,6 +487,7 @@ public:
|
||||
&& !AccountMgr::CheckEmail(handler->GetSession()->GetAccountId(), std::string(emailConfirmation))) // ... and returns false if the comparison fails.
|
||||
{
|
||||
handler->SendSysMessage(LANG_COMMAND_WRONGEMAIL);
|
||||
sScriptMgr->OnFailedPasswordChange(handler->GetSession()->GetAccountId());
|
||||
handler->SetSentErrorMessage(true);
|
||||
TC_LOG_INFO("entities.player.character", "Account: %u (IP: %s) Character:[%s] (GUID: %u) Tried to change password, but the entered email [%s] is wrong.",
|
||||
handler->GetSession()->GetAccountId(), handler->GetSession()->GetRemoteAddress().c_str(),
|
||||
@@ -492,6 +500,7 @@ public:
|
||||
if (strcmp(newPassword, passwordConfirmation) != 0)
|
||||
{
|
||||
handler->SendSysMessage(LANG_NEW_PASSWORDS_NOT_MATCH);
|
||||
sScriptMgr->OnFailedPasswordChange(handler->GetSession()->GetAccountId());
|
||||
handler->SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
@@ -502,12 +511,14 @@ public:
|
||||
{
|
||||
case AccountOpResult::AOR_OK:
|
||||
handler->SendSysMessage(LANG_COMMAND_PASSWORD);
|
||||
sScriptMgr->OnPasswordChange(handler->GetSession()->GetAccountId());
|
||||
TC_LOG_INFO("entities.player.character", "Account: %u (IP: %s) Character:[%s] (GUID: %u) Changed Password.",
|
||||
handler->GetSession()->GetAccountId(), handler->GetSession()->GetRemoteAddress().c_str(),
|
||||
handler->GetSession()->GetPlayer()->GetName().c_str(), handler->GetSession()->GetPlayer()->GetGUIDLow());
|
||||
break;
|
||||
case AccountOpResult::AOR_PASS_TOO_LONG:
|
||||
handler->SendSysMessage(LANG_PASSWORD_TOO_LONG);
|
||||
sScriptMgr->OnFailedPasswordChange(handler->GetSession()->GetAccountId());
|
||||
handler->SetSentErrorMessage(true);
|
||||
return false;
|
||||
default:
|
||||
|
||||
@@ -8,8 +8,11 @@
|
||||
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
# file(GLOB_RECURSE sources_Custom Custom/*.cpp Custom/*.h)
|
||||
|
||||
set(scripts_STAT_SRCS
|
||||
${scripts_STAT_SRCS}
|
||||
# ${sources_Custom}
|
||||
)
|
||||
|
||||
message(" -> Prepared: Custom")
|
||||
@@ -8,9 +8,11 @@
|
||||
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
file(GLOB_RECURSE sources_Events Events/*.cpp Events/*.h)
|
||||
|
||||
set(scripts_STAT_SRCS
|
||||
${scripts_STAT_SRCS}
|
||||
Events/childrens_week.cpp
|
||||
${sources_Events}
|
||||
)
|
||||
|
||||
message(" -> Prepared: Events")
|
||||
@@ -8,20 +8,11 @@
|
||||
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
file(GLOB_RECURSE sources_World World/*.cpp World/*.h)
|
||||
|
||||
set(scripts_STAT_SRCS
|
||||
${scripts_STAT_SRCS}
|
||||
World/achievement_scripts.cpp
|
||||
World/areatrigger_scripts.cpp
|
||||
World/boss_emerald_dragons.cpp
|
||||
World/chat_log.cpp
|
||||
World/go_scripts.cpp
|
||||
World/guards.cpp
|
||||
World/item_scripts.cpp
|
||||
World/mob_generic_creature.cpp
|
||||
World/npc_innkeeper.cpp
|
||||
World/npc_professions.cpp
|
||||
World/npc_taxi.cpp
|
||||
World/npcs_special.cpp
|
||||
${sources_World}
|
||||
)
|
||||
|
||||
message(" -> Prepared: World")
|
||||
@@ -0,0 +1,315 @@
|
||||
/*
|
||||
* Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "ScriptMgr.h"
|
||||
#include "Channel.h"
|
||||
#include "Guild.h"
|
||||
#include "Group.h"
|
||||
|
||||
enum IPLoggingTypes
|
||||
{
|
||||
|
||||
// AccountActionIpLogger();
|
||||
ACCOUNT_LOGIN = 0,
|
||||
ACCOUNT_FAIL_LOGIN = 1,
|
||||
ACCOUNT_CHANGE_PW = 2,
|
||||
ACCOUNT_CHANGE_PW_FAIL = 3, // Only two types of account changes exist...
|
||||
ACCOUNT_CHANGE_EMAIL = 4,
|
||||
ACCOUNT_CHANGE_EMAIL_FAIL = 5, // ...so we log them individually
|
||||
// OBSOLETE - ACCOUNT_LOGOUT = 6, /* Can not be logged. We still keep the type however */
|
||||
// CharacterActionIpLogger();
|
||||
CHARACTER_CREATE = 7,
|
||||
CHARACTER_LOGIN = 8,
|
||||
CHARACTER_LOGOUT = 9,
|
||||
// CharacterDeleteActionIpLogger();
|
||||
CHARACTER_DELETE = 10,
|
||||
CHARACTER_FAILED_DELETE = 11,
|
||||
// AccountActionIpLogger(), CharacterActionIpLogger(), CharacterActionIpLogger();
|
||||
UNKNOWN_ACTION = 12
|
||||
};
|
||||
|
||||
class AccountActionIpLogger : public AccountScript
|
||||
{
|
||||
public:
|
||||
AccountActionIpLogger() : AccountScript("AccountActionIpLogger") { }
|
||||
|
||||
// We log last_ip instead of last_attempt_ip, as login was successful
|
||||
// ACCOUNT_LOGIN = 0
|
||||
void OnAccountLogin(uint32 accountId)
|
||||
{
|
||||
AccountIPLogAction(accountId, ACCOUNT_LOGIN);
|
||||
}
|
||||
|
||||
// We log last_attempt_ip instead of last_ip, as failed login doesn't necessarily mean approperiate user
|
||||
// ACCOUNT_FAIL_LOGIN = 1
|
||||
void OnFailedAccountLogin(uint32 accountId)
|
||||
{
|
||||
AccountIPLogAction(accountId, ACCOUNT_FAIL_LOGIN);
|
||||
}
|
||||
|
||||
// ACCOUNT_CHANGE_PW = 2
|
||||
void OnPasswordChange(uint32 accountId)
|
||||
{
|
||||
AccountIPLogAction(accountId, ACCOUNT_CHANGE_PW);
|
||||
}
|
||||
|
||||
// ACCOUNT_CHANGE_PW_FAIL = 3
|
||||
void OnFailedPasswordChange(uint32 accountId)
|
||||
{
|
||||
AccountIPLogAction(accountId, ACCOUNT_CHANGE_PW_FAIL);
|
||||
}
|
||||
|
||||
// Registration Email can NOT be changed apart from GM level users. Thus, we do not require to log them...
|
||||
// ACCOUNT_CHANGE_EMAIL = 4
|
||||
void OnEmailChange(uint32 accountId)
|
||||
{
|
||||
AccountIPLogAction(accountId, ACCOUNT_CHANGE_EMAIL); // ... they get logged by gm command logger anyway
|
||||
}
|
||||
|
||||
// ACCOUNT_CHANGE_EMAIL_FAIL = 5
|
||||
void OnFailedEmailChange(uint32 accountId)
|
||||
{
|
||||
AccountIPLogAction(accountId, ACCOUNT_CHANGE_EMAIL_FAIL);
|
||||
}
|
||||
|
||||
/* It's impossible to log the account logout process out of character selection - shouldn't matter anyway,
|
||||
* as ip doesn't change through playing (obviously).*/
|
||||
// ACCOUNT_LOGOUT = 6
|
||||
void AccountIPLogAction(uint32 accountId, IPLoggingTypes aType)
|
||||
{
|
||||
// Action IP Logger is only intialized if config is set up
|
||||
// Else, this script isn't loaded in the first place: We require no config check.
|
||||
|
||||
// We declare all the required variables
|
||||
uint32 playerGuid = accountId;
|
||||
uint32 characterGuid = 0;
|
||||
std::string systemNote = "ERROR"; // "ERROR" is a placeholder here. We change it later.
|
||||
|
||||
// With this switch, we change systemNote so that we have a more accurate phrasing of what type it is.
|
||||
// Avoids Magicnumbers in SQL table
|
||||
switch (aType)
|
||||
{
|
||||
case ACCOUNT_LOGIN:
|
||||
systemNote = "Logged on Successful AccountLogin";
|
||||
break;
|
||||
case ACCOUNT_FAIL_LOGIN:
|
||||
systemNote = "Logged on Failed AccountLogin";
|
||||
break;
|
||||
case ACCOUNT_CHANGE_PW:
|
||||
systemNote = "Logged on Successful Account Password Change";
|
||||
break;
|
||||
case ACCOUNT_CHANGE_PW_FAIL:
|
||||
systemNote = "Logged on Failed Account Password Change";
|
||||
break;
|
||||
case ACCOUNT_CHANGE_EMAIL:
|
||||
systemNote = "Logged on Successful Account Email Change";
|
||||
break;
|
||||
case ACCOUNT_CHANGE_EMAIL_FAIL:
|
||||
systemNote = "Logged on Failed Account Email Change";
|
||||
break;
|
||||
/*case ACCOUNT_LOGOUT:
|
||||
systemNote = "Logged on AccountLogout"; //Can not be logged
|
||||
break;*/
|
||||
// Neither should happen. Ever. Period. If it does, call Ghostbusters and all your local software defences to investigate.
|
||||
case UNKNOWN_ACTION:
|
||||
default:
|
||||
systemNote = "ERROR! Unknown action!";
|
||||
break;
|
||||
}
|
||||
|
||||
// Once we have done everything, we can insert the new log.
|
||||
// Seeing as the time differences should be minimal, we do not get unixtime and the timestamp right now;
|
||||
// Rather, we let it be added with the SQL query.
|
||||
if (aType != ACCOUNT_FAIL_LOGIN)
|
||||
{
|
||||
// As we can assume most account actions are NOT failed login, so this is the more accurate check.
|
||||
// For those, we need last_ip...
|
||||
PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_ALDL_IP_LOGGING);
|
||||
|
||||
stmt->setUInt32(0, playerGuid);
|
||||
stmt->setUInt32(1, characterGuid);
|
||||
stmt->setUInt8(2, aType);
|
||||
stmt->setUInt32(3, playerGuid);
|
||||
stmt->setString(4, systemNote.c_str());
|
||||
LoginDatabase.Execute(stmt);
|
||||
}
|
||||
else // ... but for failed login, we query last_attempt_ip from account table. Which we do with an unique query
|
||||
{
|
||||
PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_FACL_IP_LOGGING);
|
||||
|
||||
stmt->setUInt32(0, playerGuid);
|
||||
stmt->setUInt32(1, characterGuid);
|
||||
stmt->setUInt8(2, aType);
|
||||
stmt->setUInt32(3, playerGuid);
|
||||
stmt->setString(4, systemNote.c_str());
|
||||
LoginDatabase.Execute(stmt);
|
||||
}
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
class CharacterActionIpLogger : public PlayerScript
|
||||
{
|
||||
public:
|
||||
CharacterActionIpLogger() : PlayerScript("CharacterActionIpLogger") { }
|
||||
|
||||
// CHARACTER_CREATE = 7
|
||||
void OnCreate(Player* player)
|
||||
{
|
||||
CharacterIPLogAction(player, CHARACTER_CREATE);
|
||||
}
|
||||
|
||||
// CHARACTER_LOGIN = 8
|
||||
void OnLogin(Player* player, bool /*firstLogin*/)
|
||||
{
|
||||
CharacterIPLogAction(player, CHARACTER_LOGIN);
|
||||
}
|
||||
|
||||
// CHARACTER_LOGOUT = 9
|
||||
void OnLogout(Player* player)
|
||||
{
|
||||
CharacterIPLogAction(player, CHARACTER_LOGOUT);
|
||||
}
|
||||
|
||||
// CHARACTER_DELETE = 10
|
||||
// CHARACTER_FAILED_DELETE = 11
|
||||
// We don't log either here - they require a guid
|
||||
|
||||
// UNKNOWN_ACTION = 12
|
||||
// There is no real hook we could use for that.
|
||||
// Shouldn't happen anyway, should it ? Nothing to see here.
|
||||
|
||||
/// Logs a number of actions done by players with an IP
|
||||
void CharacterIPLogAction(Player* player, IPLoggingTypes aType)
|
||||
{
|
||||
// Action IP Logger is only intialized if config is set up
|
||||
// Else, this script isn't loaded in the first place: We require no config check.
|
||||
|
||||
// We declare all the required variables
|
||||
uint32 playerGuid = player->GetSession()->GetAccountId();
|
||||
uint32 characterGuid = player->GetGUIDLow();
|
||||
const std::string currentIp = player->GetSession()->GetRemoteAddress();
|
||||
std::string systemNote = "ERROR"; // "ERROR" is a placeholder here. We change it...
|
||||
|
||||
// ... with this switch, so that we have a more accurate phrasing of what type it is
|
||||
switch (aType)
|
||||
{
|
||||
case CHARACTER_CREATE:
|
||||
systemNote = "Logged on CharacterCreate";
|
||||
break;
|
||||
case CHARACTER_LOGIN:
|
||||
systemNote = "Logged on CharacterLogin";
|
||||
break;
|
||||
case CHARACTER_LOGOUT:
|
||||
systemNote = "Logged on CharacterLogout";
|
||||
break;
|
||||
case CHARACTER_DELETE:
|
||||
systemNote = "Logged on CharacterDelete";
|
||||
break;
|
||||
case CHARACTER_FAILED_DELETE:
|
||||
systemNote = "Logged on Failed CharacterDelete";
|
||||
break;
|
||||
// Neither should happen. Ever. Period. If it does, call Mythbusters.
|
||||
case UNKNOWN_ACTION:
|
||||
default:
|
||||
systemNote = "ERROR! Unknown action!";
|
||||
break;
|
||||
}
|
||||
|
||||
// Once we have done everything, we can insert the new log.
|
||||
PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_CHAR_IP_LOGGING);
|
||||
|
||||
stmt->setUInt32(0, playerGuid);
|
||||
stmt->setUInt32(1, characterGuid);
|
||||
stmt->setUInt8(2, aType);
|
||||
stmt->setString(3, currentIp.c_str()); // We query the ip here.
|
||||
stmt->setString(4, systemNote.c_str());
|
||||
// Seeing as the time differences should be minimal, we do not get unixtime and the timestamp right now;
|
||||
// Rather, we let it be added with the SQL query.
|
||||
|
||||
LoginDatabase.Execute(stmt);
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
class CharacterDeleteActionIpLogger : public PlayerScript
|
||||
{
|
||||
public:
|
||||
CharacterDeleteActionIpLogger() : PlayerScript("CharacterDeleteActionIpLogger") { }
|
||||
|
||||
// CHARACTER_DELETE = 10
|
||||
void OnDelete(uint64 guid, uint32 accountId)
|
||||
{
|
||||
DeleteIPLogAction(guid, accountId, CHARACTER_DELETE);
|
||||
}
|
||||
|
||||
// CHARACTER_FAILED_DELETE = 11
|
||||
void OnFailedDelete(uint64 guid, uint32 accountId)
|
||||
{
|
||||
DeleteIPLogAction(guid, accountId, CHARACTER_FAILED_DELETE);
|
||||
}
|
||||
|
||||
void DeleteIPLogAction(uint64 guid, uint32 playerGuid, IPLoggingTypes aType)
|
||||
{
|
||||
// Action IP Logger is only intialized if config is set up
|
||||
// Else, this script isn't loaded in the first place: We require no config check.
|
||||
|
||||
// We declare all the required variables
|
||||
uint32 characterGuid = GUID_LOPART(guid); // We have no access to any member function of Player* or WorldSession*. So use old-fashioned way.
|
||||
// Query playerGuid/accountId, as we only have characterGuid
|
||||
std::string systemNote = "ERROR"; // "ERROR" is a placeholder here. We change it later.
|
||||
|
||||
// With this switch, we change systemNote so that we have a more accurate phrasing of what type it is.
|
||||
// Avoids Magicnumbers in SQL table
|
||||
switch (aType)
|
||||
{
|
||||
case CHARACTER_DELETE:
|
||||
systemNote = "Logged on CharacterDelete";
|
||||
break;
|
||||
case CHARACTER_FAILED_DELETE:
|
||||
systemNote = "Logged on Failed CharacterDelete";
|
||||
break;
|
||||
// Neither should happen. Ever. Period. If it does, call to whatever god you have for mercy and guidance.
|
||||
case UNKNOWN_ACTION:
|
||||
default:
|
||||
systemNote = "ERROR! Unknown action!";
|
||||
break;
|
||||
}
|
||||
|
||||
// Once we have done everything, we can insert the new log.
|
||||
PreparedStatement* stmt2 = LoginDatabase.GetPreparedStatement(LOGIN_INS_ALDL_IP_LOGGING);
|
||||
|
||||
stmt2->setUInt32(0, playerGuid);
|
||||
stmt2->setUInt32(1, characterGuid);
|
||||
stmt2->setUInt8(2, aType);
|
||||
stmt2->setUInt32(3, playerGuid);
|
||||
stmt2->setString(4, systemNote.c_str());
|
||||
// Seeing as the time differences should be minimal, we do not get unixtime and the timestamp right now;
|
||||
// Rather, we let it be added with the SQL query.
|
||||
|
||||
LoginDatabase.Execute(stmt2);
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
void AddSC_action_ip_logger()
|
||||
{
|
||||
new AccountActionIpLogger();
|
||||
new CharacterActionIpLogger();
|
||||
new CharacterDeleteActionIpLogger();
|
||||
}
|
||||
@@ -70,6 +70,7 @@ void LoginDatabaseConnection::DoPrepareStatements()
|
||||
PrepareStatement(LOGIN_UPD_MUTE_TIME, "UPDATE account SET mutetime = ? , mutereason = ? , muteby = ? WHERE id = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(LOGIN_UPD_MUTE_TIME_LOGIN, "UPDATE account SET mutetime = ? WHERE id = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(LOGIN_UPD_LAST_IP, "UPDATE account SET last_ip = ? WHERE username = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(LOGIN_UPD_LAST_ATTEMPT_IP, "UPDATE account SET last_attempt_ip = ? WHERE username = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(LOGIN_UPD_ACCOUNT_ONLINE, "UPDATE account SET online = 1 WHERE id = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(LOGIN_UPD_UPTIME_PLAYERS, "UPDATE uptime SET uptime = ?, maxplayers = ? WHERE realmid = ? AND starttime = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(LOGIN_DEL_OLD_LOGS, "DELETE FROM logs WHERE (time + ?) < ?", CONNECTION_ASYNC);
|
||||
@@ -91,12 +92,21 @@ void LoginDatabaseConnection::DoPrepareStatements()
|
||||
PrepareStatement(LOGIN_SEL_ACCOUNT_RECRUITER, "SELECT 1 FROM account WHERE recruiter = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(LOGIN_SEL_BANS, "SELECT 1 FROM account_banned WHERE id = ? AND active = 1 UNION SELECT 1 FROM ip_banned WHERE ip = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(LOGIN_SEL_ACCOUNT_WHOIS, "SELECT username, email, last_ip FROM account WHERE id = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(LOGIN_SEL_LAST_ATTEMPT_IP, "SELECT last_attempt_ip FROM account WHERE id = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(LOGIN_SEL_LAST_IP, "SELECT last_ip FROM account WHERE id = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(LOGIN_SEL_REALMLIST_SECURITY_LEVEL, "SELECT allowedSecurityLevel from realmlist WHERE id = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(LOGIN_DEL_ACCOUNT, "DELETE FROM account WHERE id = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(LOGIN_SEL_IP2NATION_COUNTRY, "SELECT c.country FROM ip2nationCountries c, ip2nation i WHERE i.ip < ? AND c.code = i.country ORDER BY i.ip DESC LIMIT 0,1", CONNECTION_SYNCH);
|
||||
PrepareStatement(LOGIN_SEL_AUTOBROADCAST, "SELECT id, weight, text FROM autobroadcast WHERE realmid = ? OR realmid = -1", CONNECTION_SYNCH);
|
||||
PrepareStatement(LOGIN_GET_EMAIL_BY_ID, "SELECT email FROM account WHERE id = ?", CONNECTION_SYNCH);
|
||||
|
||||
// 0: uint32, 1: uint32, 2: uint8, 3: uint32, 4: string // Complete name: "Login_Insert_AccountLoginDeLete_IP_Logging"
|
||||
PrepareStatement(LOGIN_INS_ALDL_IP_LOGGING, "INSERT INTO logs_ip_actions (account_id,character_guid,type,ip,systemnote,unixtime,time) VALUES (?, ?, ?, (SELECT last_ip FROM account WHERE id = ?), ?, unix_timestamp(NOW()), NOW())", CONNECTION_ASYNC);
|
||||
// 0: uint32, 1: uint32, 2: uint8, 3: uint32, 4: string // Complete name: "Login_Insert_FailedAccountLogin_IP_Logging"
|
||||
PrepareStatement(LOGIN_INS_FACL_IP_LOGGING, "INSERT INTO logs_ip_actions (account_id,character_guid,type,ip,systemnote,unixtime,time) VALUES (?, ?, ?, (SELECT last_attempt_ip FROM account WHERE id = ?), ?, unix_timestamp(NOW()), NOW())", CONNECTION_ASYNC);
|
||||
// 0: uint32, 1: uint32, 2: uint8, 3: string, 4: string // Complete name: "Login_Insert_CharacterDelete_IP_Logging"
|
||||
PrepareStatement(LOGIN_INS_CHAR_IP_LOGGING, "INSERT INTO logs_ip_actions (account_id,character_guid,type,ip,systemnote,unixtime,time) VALUES (?, ?, ?, ?, ?, unix_timestamp(NOW()), NOW())", CONNECTION_ASYNC);
|
||||
// 0: string, 1: string, 2: string // Complete name: "Login_Insert_Failed_Account_Login_due_password_IP_Logging"
|
||||
PrepareStatement(LOGIN_INS_FALP_IP_LOGGING, "INSERT INTO logs_ip_actions (account_id,character_guid,type,ip,systemnote,unixtime,time) VALUES ((SELECT id FROM account WHERE username = ?), 0, 1, ?, ?, unix_timestamp(NOW()), NOW())", CONNECTION_ASYNC);
|
||||
PrepareStatement(LOGIN_SEL_ACCOUNT_ACCESS_BY_ID, "SELECT gmlevel, RealmID FROM account_access WHERE id = ? and (RealmID = ? OR RealmID = -1) ORDER BY gmlevel desc", CONNECTION_SYNCH);
|
||||
|
||||
PrepareStatement(LOGIN_SEL_RBAC_ACCOUNT_PERMISSIONS, "SELECT permissionId, granted FROM rbac_account_permissions WHERE accountId = ? AND (realmId = ? OR realmId = -1) ORDER BY permissionId, realmId", CONNECTION_SYNCH);
|
||||
|
||||
@@ -90,6 +90,7 @@ enum LoginDatabaseStatements
|
||||
LOGIN_UPD_MUTE_TIME,
|
||||
LOGIN_UPD_MUTE_TIME_LOGIN,
|
||||
LOGIN_UPD_LAST_IP,
|
||||
LOGIN_UPD_LAST_ATTEMPT_IP,
|
||||
LOGIN_UPD_ACCOUNT_ONLINE,
|
||||
LOGIN_UPD_UPTIME_PLAYERS,
|
||||
LOGIN_DEL_OLD_LOGS,
|
||||
@@ -115,7 +116,13 @@ enum LoginDatabaseStatements
|
||||
LOGIN_DEL_ACCOUNT,
|
||||
LOGIN_SEL_IP2NATION_COUNTRY,
|
||||
LOGIN_SEL_AUTOBROADCAST,
|
||||
LOGIN_SEL_LAST_ATTEMPT_IP,
|
||||
LOGIN_SEL_LAST_IP,
|
||||
LOGIN_GET_EMAIL_BY_ID,
|
||||
LOGIN_INS_ALDL_IP_LOGGING,
|
||||
LOGIN_INS_FACL_IP_LOGGING,
|
||||
LOGIN_INS_CHAR_IP_LOGGING,
|
||||
LOGIN_INS_FALP_IP_LOGGING,
|
||||
|
||||
LOGIN_SEL_ACCOUNT_ACCESS_BY_ID,
|
||||
LOGIN_SEL_RBAC_ACCOUNT_PERMISSIONS,
|
||||
|
||||
@@ -2693,6 +2693,13 @@ Logger.sql.sql=5,Console DBErrors
|
||||
|
||||
Log.Async.Enable = 0
|
||||
|
||||
#
|
||||
# Allow.IP.Based.Action.Logging
|
||||
# Description: Logs actions, e.g. account login and logout to name a few, based on IP of current session.
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
Allow.IP.Based.Action.Logging = 0
|
||||
#
|
||||
###################################################################################################
|
||||
|
||||
|
||||
Reference in new issue
Block a user