diff options
-rw-r--r-- | sql/updates/444_world.sql | 72 | ||||
-rw-r--r-- | sql/world.sql | 6598 | ||||
-rw-r--r-- | src/game/Chat.cpp | 28 | ||||
-rw-r--r-- | src/game/Chat.h | 18 | ||||
-rw-r--r-- | src/game/Creature.cpp | 6 | ||||
-rw-r--r-- | src/game/Creature.h | 16 | ||||
-rw-r--r-- | src/game/Level2.cpp | 2232 | ||||
-rw-r--r-- | src/game/Level3.cpp | 40 | ||||
-rw-r--r-- | src/game/MotionMaster.cpp | 48 | ||||
-rw-r--r-- | src/game/ObjectMgr.cpp | 24 | ||||
-rw-r--r-- | src/game/WaypointManager.cpp | 304 | ||||
-rw-r--r-- | src/game/WaypointManager.h | 122 | ||||
-rw-r--r-- | src/game/WaypointMovementGenerator.cpp | 1258 | ||||
-rw-r--r-- | src/game/WaypointMovementGenerator.h | 236 | ||||
-rw-r--r-- | src/game/World.cpp | 46 |
15 files changed, 5524 insertions, 5524 deletions
diff --git a/sql/updates/444_world.sql b/sql/updates/444_world.sql index ef9784e3666..004cf626f88 100644 --- a/sql/updates/444_world.sql +++ b/sql/updates/444_world.sql @@ -1,36 +1,36 @@ -DROP TABLE IF EXISTS `waypoint_data`;
-
-CREATE TABLE `waypoint_data` (
- `id` int(10) unsigned NOT NULL default '0' COMMENT 'Creature GUID',
- `point` mediumint(8) unsigned NOT NULL default '0',
- `position_x` float NOT NULL default '0',
- `position_y` float NOT NULL default '0',
- `position_z` float NOT NULL default '0',
- `delay` int(10) unsigned NOT NULL default '0',
- `move_flag` tinyint(1) NOT NULL default '0',
- `action` int(11) NOT NULL default '0',
- `action_chance` smallint(3) NOT NULL default '100',
- `wpguid` int(11) NOT NULL default '0'
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
-DROP TABLE IF EXISTS `waypoint_scripts`;
-
-CREATE TABLE `waypoint_scripts` (
- `id` int(11) unsigned NOT NULL default '0',
- `delay` int(11) unsigned NOT NULL default '0',
- `command` int(11) unsigned NOT NULL default '0',
- `datalong` int(11) unsigned NOT NULL default '0',
- `datalong2` int(11) unsigned NOT NULL default '0',
- `dataint` int(11) unsigned NOT NULL default '0',
- `x` float NOT NULL default '0',
- `y` float NOT NULL default '0',
- `z` float NOT NULL default '0',
- `o` float NOT NULL default '0',
- `guid` int(11) NOT NULL default '0',
- PRIMARY KEY (`guid`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
-ALTER TABLE `creature_addon`
- ADD `path_id` int(11) unsigned NOT NULL default '0' AFTER `guid`;
-ALTER TABLE `creature_template_addon`
- ADD `path_id` int(11) unsigned NOT NULL default '0' AFTER `entry`;
+DROP TABLE IF EXISTS `waypoint_data`; + +CREATE TABLE `waypoint_data` ( + `id` int(10) unsigned NOT NULL default '0' COMMENT 'Creature GUID', + `point` mediumint(8) unsigned NOT NULL default '0', + `position_x` float NOT NULL default '0', + `position_y` float NOT NULL default '0', + `position_z` float NOT NULL default '0', + `delay` int(10) unsigned NOT NULL default '0', + `move_flag` tinyint(1) NOT NULL default '0', + `action` int(11) NOT NULL default '0', + `action_chance` smallint(3) NOT NULL default '100', + `wpguid` int(11) NOT NULL default '0' +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +DROP TABLE IF EXISTS `waypoint_scripts`; + +CREATE TABLE `waypoint_scripts` ( + `id` int(11) unsigned NOT NULL default '0', + `delay` int(11) unsigned NOT NULL default '0', + `command` int(11) unsigned NOT NULL default '0', + `datalong` int(11) unsigned NOT NULL default '0', + `datalong2` int(11) unsigned NOT NULL default '0', + `dataint` int(11) unsigned NOT NULL default '0', + `x` float NOT NULL default '0', + `y` float NOT NULL default '0', + `z` float NOT NULL default '0', + `o` float NOT NULL default '0', + `guid` int(11) NOT NULL default '0', + PRIMARY KEY (`guid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +ALTER TABLE `creature_addon` + ADD `path_id` int(11) unsigned NOT NULL default '0' AFTER `guid`; +ALTER TABLE `creature_template_addon` + ADD `path_id` int(11) unsigned NOT NULL default '0' AFTER `entry`; diff --git a/sql/world.sql b/sql/world.sql index 3e8963f4ae9..ca5af56edd1 100644 --- a/sql/world.sql +++ b/sql/world.sql @@ -1,3299 +1,3299 @@ --- MySQL dump 10.11
---
--- Host: localhost Database: world
--- ------------------------------------------------------
--- Server version 5.0.34-log
-
-/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
-/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
-/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
-/*!40101 SET NAMES utf8 */;
-/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
-/*!40103 SET TIME_ZONE='+00:00' */;
-/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
-/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
-/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
-/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
-
---
--- Table structure for table `areatrigger_involvedrelation`
---
-
-DROP TABLE IF EXISTS `areatrigger_involvedrelation`;
-CREATE TABLE `areatrigger_involvedrelation` (
- `id` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Identifier',
- `quest` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Quest Identifier',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Trigger System';
-
---
--- Dumping data for table `areatrigger_involvedrelation`
---
-
-LOCK TABLES `areatrigger_involvedrelation` WRITE;
-/*!40000 ALTER TABLE `areatrigger_involvedrelation` DISABLE KEYS */;
-/*!40000 ALTER TABLE `areatrigger_involvedrelation` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `areatrigger_scripts`
---
-
-DROP TABLE IF EXISTS `areatrigger_scripts`;
-CREATE TABLE `areatrigger_scripts` (
- `entry` mediumint(8) NOT NULL,
- `ScriptName` char(64) NOT NULL,
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `areatrigger_scripts`
---
-
-LOCK TABLES `areatrigger_scripts` WRITE;
-/*!40000 ALTER TABLE `areatrigger_scripts` DISABLE KEYS */;
-/*!40000 ALTER TABLE `areatrigger_scripts` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `areatrigger_tavern`
---
-
-DROP TABLE IF EXISTS `areatrigger_tavern`;
-CREATE TABLE `areatrigger_tavern` (
- `id` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Identifier',
- `name` text,
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Trigger System';
-
---
--- Dumping data for table `areatrigger_tavern`
---
-
-LOCK TABLES `areatrigger_tavern` WRITE;
-/*!40000 ALTER TABLE `areatrigger_tavern` DISABLE KEYS */;
-/*!40000 ALTER TABLE `areatrigger_tavern` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `areatrigger_teleport`
---
-
-DROP TABLE IF EXISTS `areatrigger_teleport`;
-CREATE TABLE `areatrigger_teleport` (
- `id` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Identifier',
- `name` text,
- `required_level` tinyint(3) unsigned NOT NULL default '0',
- `required_item` mediumint(8) unsigned NOT NULL default '0',
- `required_item2` mediumint(8) unsigned NOT NULL default '0',
- `heroic_key` mediumint(8) unsigned NOT NULL default '0',
- `heroic_key2` mediumint(8) unsigned NOT NULL default '0',
- `required_quest_done` int(11) unsigned NOT NULL default '0',
- `required_failed_text` text,
- `target_map` smallint(5) unsigned NOT NULL default '0',
- `target_position_x` float NOT NULL default '0',
- `target_position_y` float NOT NULL default '0',
- `target_position_z` float NOT NULL default '0',
- `target_orientation` float NOT NULL default '0',
- PRIMARY KEY (`id`),
- FULLTEXT KEY `name` (`name`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Trigger System';
-
---
--- Dumping data for table `areatrigger_teleport`
---
-
-LOCK TABLES `areatrigger_teleport` WRITE;
-/*!40000 ALTER TABLE `areatrigger_teleport` DISABLE KEYS */;
-/*!40000 ALTER TABLE `areatrigger_teleport` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `battleground_template`
---
-
-DROP TABLE IF EXISTS `battleground_template`;
-CREATE TABLE `battleground_template` (
- `id` mediumint(8) unsigned NOT NULL,
- `MinPlayersPerTeam` smallint(5) unsigned NOT NULL default '0',
- `MaxPlayersPerTeam` smallint(5) unsigned NOT NULL default '0',
- `MinLvl` tinyint(3) unsigned NOT NULL default '0',
- `MaxLvl` tinyint(3) unsigned NOT NULL default '0',
- `AllianceStartLoc` mediumint(8) unsigned NOT NULL,
- `AllianceStartO` float NOT NULL,
- `HordeStartLoc` mediumint(8) unsigned NOT NULL,
- `HordeStartO` float NOT NULL,
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `battleground_template`
---
-
-LOCK TABLES `battleground_template` WRITE;
-/*!40000 ALTER TABLE `battleground_template` DISABLE KEYS */;
-/*!40000 ALTER TABLE `battleground_template` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `battlemaster_entry`
---
-
-DROP TABLE IF EXISTS `battlemaster_entry`;
-CREATE TABLE `battlemaster_entry` (
- `entry` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Entry of a creature',
- `bg_template` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Battleground template id',
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `battlemaster_entry`
---
-
-LOCK TABLES `battlemaster_entry` WRITE;
-/*!40000 ALTER TABLE `battlemaster_entry` DISABLE KEYS */;
-/*!40000 ALTER TABLE `battlemaster_entry` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `command`
---
-
-DROP TABLE IF EXISTS `command`;
-CREATE TABLE `command` (
- `name` varchar(50) NOT NULL default '',
- `security` tinyint(3) unsigned NOT NULL default '0',
- `help` longtext,
- PRIMARY KEY (`name`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Chat System';
-
---
--- Dumping data for table `command`
---
-
-LOCK TABLES `command` WRITE;
-/*!40000 ALTER TABLE `command` DISABLE KEYS */;
-/*!40000 ALTER TABLE `command` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `creature`
---
-
-DROP TABLE IF EXISTS `creature`;
-CREATE TABLE `creature` (
- `guid` int(10) unsigned NOT NULL auto_increment COMMENT 'Global Unique Identifier',
- `id` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Creature Identifier',
- `map` smallint(5) unsigned NOT NULL default '0' COMMENT 'Map Identifier',
- `spawnMask` tinyint(3) unsigned NOT NULL default '1',
- `modelid` mediumint(8) unsigned NOT NULL default '0',
- `equipment_id` mediumint(9) NOT NULL default '0',
- `position_x` float NOT NULL default '0',
- `position_y` float NOT NULL default '0',
- `position_z` float NOT NULL default '0',
- `orientation` float NOT NULL default '0',
- `spawntimesecs` int(10) unsigned NOT NULL default '120',
- `spawndist` float NOT NULL default '5',
- `currentwaypoint` mediumint(8) unsigned NOT NULL default '0',
- `curhealth` int(10) unsigned NOT NULL default '1',
- `curmana` int(10) unsigned NOT NULL default '0',
- `DeathState` tinyint(3) unsigned NOT NULL default '0',
- `MovementType` tinyint(3) unsigned NOT NULL default '0',
- PRIMARY KEY (`guid`),
- KEY `idx_map` (`map`),
- KEY `idx_id` (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Creature System';
-
---
--- Dumping data for table `creature`
---
-
-LOCK TABLES `creature` WRITE;
-/*!40000 ALTER TABLE `creature` DISABLE KEYS */;
-/*!40000 ALTER TABLE `creature` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `creature_addon`
---
-
-DROP TABLE IF EXISTS `creature_addon`;
-CREATE TABLE `creature_addon` (
- `guid` int(10) unsigned NOT NULL default '0',
- `path_id` int(11) unsigned NOT NULL default '0',
- `mount` mediumint(8) unsigned NOT NULL default '0',
- `bytes0` int(10) unsigned NOT NULL default '0',
- `bytes1` int(10) unsigned NOT NULL default '0',
- `bytes2` int(10) unsigned NOT NULL default '0',
- `emote` int(10) unsigned NOT NULL default '0',
- `moveflags` int(10) unsigned NOT NULL default '0',
- `auras` text,
- PRIMARY KEY (`guid`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-
---
--- Dumping data for table `creature_addon`
---
-
-LOCK TABLES `creature_addon` WRITE;
-/*!40000 ALTER TABLE `creature_addon` DISABLE KEYS */;
-/*!40000 ALTER TABLE `creature_addon` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `creature_equip_template`
---
-
-DROP TABLE IF EXISTS `creature_equip_template`;
-CREATE TABLE `creature_equip_template` (
- `entry` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Unique entry',
- `equipmodel1` mediumint(8) unsigned NOT NULL default '0',
- `equipmodel2` mediumint(8) unsigned NOT NULL default '0',
- `equipmodel3` mediumint(8) unsigned NOT NULL default '0',
- `equipinfo1` int(10) unsigned NOT NULL default '0',
- `equipinfo2` int(10) unsigned NOT NULL default '0',
- `equipinfo3` int(10) unsigned NOT NULL default '0',
- `equipslot1` int(11) NOT NULL default '0',
- `equipslot2` int(11) NOT NULL default '0',
- `equipslot3` int(11) NOT NULL default '0',
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Creature System (Equipment)';
-
---
--- Dumping data for table `creature_equip_template`
---
-
-LOCK TABLES `creature_equip_template` WRITE;
-/*!40000 ALTER TABLE `creature_equip_template` DISABLE KEYS */;
-/*!40000 ALTER TABLE `creature_equip_template` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `creature_involvedrelation`
---
-
-DROP TABLE IF EXISTS `creature_involvedrelation`;
-CREATE TABLE `creature_involvedrelation` (
- `id` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Identifier',
- `quest` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Quest Identifier',
- PRIMARY KEY (`id`,`quest`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Creature System';
-
---
--- Dumping data for table `creature_involvedrelation`
---
-
-LOCK TABLES `creature_involvedrelation` WRITE;
-/*!40000 ALTER TABLE `creature_involvedrelation` DISABLE KEYS */;
-/*!40000 ALTER TABLE `creature_involvedrelation` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `creature_loot_template`
---
-
-DROP TABLE IF EXISTS `creature_loot_template`;
-CREATE TABLE `creature_loot_template` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `item` mediumint(8) unsigned NOT NULL default '0',
- `ChanceOrQuestChance` float NOT NULL default '100',
- `groupid` tinyint(3) unsigned NOT NULL default '0',
- `mincountOrRef` mediumint(9) NOT NULL default '1',
- `maxcount` tinyint(3) unsigned NOT NULL default '1',
- `lootcondition` tinyint(3) unsigned NOT NULL default '0',
- `condition_value1` mediumint(8) unsigned NOT NULL default '0',
- `condition_value2` mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (`entry`,`item`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Loot System';
-
---
--- Dumping data for table `creature_loot_template`
---
-
-LOCK TABLES `creature_loot_template` WRITE;
-/*!40000 ALTER TABLE `creature_loot_template` DISABLE KEYS */;
-/*!40000 ALTER TABLE `creature_loot_template` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `creature_model_info`
---
-
-DROP TABLE IF EXISTS `creature_model_info`;
-CREATE TABLE `creature_model_info` (
- `modelid` mediumint(8) unsigned NOT NULL default '0',
- `bounding_radius` float NOT NULL default '0',
- `combat_reach` float NOT NULL default '0',
- `gender` tinyint(3) unsigned NOT NULL default '2',
- `modelid_other_gender` mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (`modelid`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Creature System (Model related info)';
-
---
--- Dumping data for table `creature_model_info`
---
-
-LOCK TABLES `creature_model_info` WRITE;
-/*!40000 ALTER TABLE `creature_model_info` DISABLE KEYS */;
-/*!40000 ALTER TABLE `creature_model_info` ENABLE KEYS */;
-UNLOCK TABLES;
-
-
---
--- Table structure for table `waypoint_data`
---
-
-DROP TABLE IF EXISTS `waypoint_data`;
-CREATE TABLE `waypoint_data` (
- `id` int(10) unsigned NOT NULL default '0' COMMENT 'Creature GUID',
- `point` mediumint(8) unsigned NOT NULL default '0',
- `position_x` float NOT NULL default '0',
- `position_y` float NOT NULL default '0',
- `position_z` float NOT NULL default '0',
- `delay` int(10) unsigned NOT NULL default '0',
- `move_flag` tinyint(1) NOT NULL default '0',
- `action` int(11) NOT NULL default '0',
- `action_chance` smallint(3) NOT NULL default '100',
- `wpguid` int(11) NOT NULL default '0'
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `creature_movement`
---
-
-LOCK TABLES `waypoint_data` WRITE;
-/*!40000 ALTER TABLE `waypoint_data` DISABLE KEYS */;
-/*!40000 ALTER TABLE `waypoint_data` ENABLE KEYS */;
-UNLOCK TABLES;
-
-
---
--- Table structure for table `waypoint_scripts`
---
-
-DROP TABLE IF EXISTS `waypoint_scripts`;
-CREATE TABLE `waypoint_scripts` (
- `id` int(11) unsigned NOT NULL default '0',
- `delay` int(11) unsigned NOT NULL default '0',
- `command` int(11) unsigned NOT NULL default '0',
- `datalong` int(11) unsigned NOT NULL default '0',
- `datalong2` int(11) unsigned NOT NULL default '0',
- `dataint` int(11) unsigned NOT NULL default '0',
- `x` float NOT NULL default '0',
- `y` float NOT NULL default '0',
- `z` float NOT NULL default '0',
- `o` float NOT NULL default '0',
- `guid` int(11) NOT NULL default '0',
- PRIMARY KEY (`guid`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `creature_movement`
---
-
-LOCK TABLES `waypoint_scripts` WRITE;
-/*!40000 ALTER TABLE `waypoint_scripts` DISABLE KEYS */;
-/*!40000 ALTER TABLE `waypoint_scripts` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `creature_onkill_reputation`
---
-
-DROP TABLE IF EXISTS `creature_onkill_reputation`;
-CREATE TABLE `creature_onkill_reputation` (
- `creature_id` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Creature Identifier',
- `RewOnKillRepFaction1` smallint(6) NOT NULL default '0',
- `RewOnKillRepFaction2` smallint(6) NOT NULL default '0',
- `MaxStanding1` tinyint(4) NOT NULL default '0',
- `IsTeamAward1` tinyint(4) NOT NULL default '0',
- `RewOnKillRepValue1` mediumint(9) NOT NULL default '0',
- `MaxStanding2` tinyint(4) NOT NULL default '0',
- `IsTeamAward2` tinyint(4) NOT NULL default '0',
- `RewOnKillRepValue2` mediumint(9) NOT NULL default '0',
- `TeamDependent` tinyint(3) unsigned NOT NULL default '0',
- PRIMARY KEY (`creature_id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Creature OnKill Reputation gain';
-
---
--- Dumping data for table `creature_onkill_reputation`
---
-
-LOCK TABLES `creature_onkill_reputation` WRITE;
-/*!40000 ALTER TABLE `creature_onkill_reputation` DISABLE KEYS */;
-/*!40000 ALTER TABLE `creature_onkill_reputation` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `creature_questrelation`
---
-
-DROP TABLE IF EXISTS `creature_questrelation`;
-CREATE TABLE `creature_questrelation` (
- `id` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Identifier',
- `quest` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Quest Identifier',
- PRIMARY KEY (`id`,`quest`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Creature System';
-
---
--- Dumping data for table `creature_questrelation`
---
-
-LOCK TABLES `creature_questrelation` WRITE;
-/*!40000 ALTER TABLE `creature_questrelation` DISABLE KEYS */;
-/*!40000 ALTER TABLE `creature_questrelation` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `creature_respawn`
---
-
-DROP TABLE IF EXISTS `creature_respawn`;
-CREATE TABLE `creature_respawn` (
- `guid` int(10) unsigned NOT NULL default '0' COMMENT 'Global Unique Identifier',
- `respawntime` bigint(20) NOT NULL default '0',
- `instance` mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (`guid`,`instance`),
- KEY `instance` (`instance`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Grid Loading System';
-
---
--- Dumping data for table `creature_respawn`
---
-
-LOCK TABLES `creature_respawn` WRITE;
-/*!40000 ALTER TABLE `creature_respawn` DISABLE KEYS */;
-/*!40000 ALTER TABLE `creature_respawn` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `creature_template`
---
-
-DROP TABLE IF EXISTS `creature_template`;
-CREATE TABLE `creature_template` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `heroic_entry` mediumint(8) unsigned NOT NULL default '0',
- `modelid_A` mediumint(8) unsigned NOT NULL default '0',
- `modelid_A2` mediumint(8) unsigned NOT NULL default '0',
- `modelid_H` mediumint(8) unsigned NOT NULL default '0',
- `modelid_H2` mediumint(8) unsigned NOT NULL default '0',
- `name` char(100) NOT NULL default '0',
- `subname` char(100) default NULL,
- `IconName` char(100) default NULL,
- `minlevel` tinyint(3) unsigned NOT NULL default '1',
- `maxlevel` tinyint(3) unsigned NOT NULL default '1',
- `minhealth` int(10) unsigned NOT NULL default '0',
- `maxhealth` int(10) unsigned NOT NULL default '0',
- `minmana` int(10) unsigned NOT NULL default '0',
- `maxmana` int(10) unsigned NOT NULL default '0',
- `armor` mediumint(8) unsigned NOT NULL default '0',
- `faction_A` smallint(5) unsigned NOT NULL default '0',
- `faction_H` smallint(5) unsigned NOT NULL default '0',
- `npcflag` int(10) unsigned NOT NULL default '0',
- `speed` float default '1',
- `scale` float NOT NULL default '1',
- `rank` tinyint(3) unsigned NOT NULL default '0',
- `mindmg` float NOT NULL default '0',
- `maxdmg` float NOT NULL default '0',
- `dmgschool` tinyint(4) NOT NULL default '0',
- `attackpower` int(10) unsigned NOT NULL default '0',
- `baseattacktime` int(10) unsigned NOT NULL default '0',
- `rangeattacktime` int(10) unsigned NOT NULL default '0',
- `flags` int(10) unsigned NOT NULL default '0',
- `dynamicflags` int(10) unsigned NOT NULL default '0',
- `family` tinyint(4) NOT NULL default '0',
- `trainer_type` tinyint(4) NOT NULL default '0',
- `trainer_spell` mediumint(8) unsigned NOT NULL default '0',
- `class` tinyint(3) unsigned NOT NULL default '0',
- `race` tinyint(3) unsigned NOT NULL default '0',
- `minrangedmg` float NOT NULL default '0',
- `maxrangedmg` float NOT NULL default '0',
- `rangedattackpower` smallint(5) unsigned NOT NULL default '0',
- `type` tinyint(3) unsigned NOT NULL default '0',
- `flag1` int(10) unsigned NOT NULL default '0',
- `lootid` mediumint(8) unsigned NOT NULL default '0',
- `pickpocketloot` mediumint(8) unsigned NOT NULL default '0',
- `skinloot` mediumint(8) unsigned NOT NULL default '0',
- `resistance1` smallint(5) NOT NULL default '0',
- `resistance2` smallint(5) NOT NULL default '0',
- `resistance3` smallint(5) NOT NULL default '0',
- `resistance4` smallint(5) NOT NULL default '0',
- `resistance5` smallint(5) NOT NULL default '0',
- `resistance6` smallint(5) NOT NULL default '0',
- `spell1` mediumint(8) unsigned NOT NULL default '0',
- `spell2` mediumint(8) unsigned NOT NULL default '0',
- `spell3` mediumint(8) unsigned NOT NULL default '0',
- `spell4` mediumint(8) unsigned NOT NULL default '0',
- `PetSpellDataId` mediumint(8) unsigned NOT NULL default '0',
- `mingold` mediumint(8) unsigned NOT NULL default '0',
- `maxgold` mediumint(8) unsigned NOT NULL default '0',
- `AIName` char(64) NOT NULL default '',
- `MovementType` tinyint(3) unsigned NOT NULL default '0',
- `InhabitType` tinyint(3) unsigned NOT NULL default '3',
- `RacialLeader` tinyint(3) unsigned NOT NULL default '0',
- `RegenHealth` tinyint(3) unsigned NOT NULL default '1',
- `equipment_id` mediumint(8) unsigned NOT NULL default '0',
- `mechanic_immune_mask` int(10) unsigned NOT NULL default '0',
- `flags_extra` int(10) unsigned NOT NULL default '0',
- `ScriptName` char(64) NOT NULL default '',
- PRIMARY KEY (`entry`),
- KEY `idx_name` (`name`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Creature System';
-
---
--- Dumping data for table `creature_template`
---
-
-LOCK TABLES `creature_template` WRITE;
-/*!40000 ALTER TABLE `creature_template` DISABLE KEYS */;
-/*!40000 ALTER TABLE `creature_template` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `creature_template_addon`
---
-
-DROP TABLE IF EXISTS `creature_template_addon`;
-CREATE TABLE `creature_template_addon` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `path_id' int(11) unsigned NOT NULL default '0',
- `mount` mediumint(8) unsigned NOT NULL default '0',
- `bytes0` int(10) unsigned NOT NULL default '0',
- `bytes1` int(10) unsigned NOT NULL default '0',
- `bytes2` int(10) unsigned NOT NULL default '0',
- `emote` mediumint(8) unsigned NOT NULL default '0',
- `moveflags` int(10) unsigned NOT NULL default '0',
- `auras` text,
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `creature_template_addon`
---
-
-LOCK TABLES `creature_template_addon` WRITE;
-/*!40000 ALTER TABLE `creature_template_addon` DISABLE KEYS */;
-/*!40000 ALTER TABLE `creature_template_addon` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `custom_texts`
---
-
-DROP TABLE IF EXISTS `custom_texts`;
-CREATE TABLE `custom_texts` (
- `entry` mediumint(8) NOT NULL,
- `content_default` text NOT NULL,
- `content_loc1` text,
- `content_loc2` text,
- `content_loc3` text,
- `content_loc4` text,
- `content_loc5` text,
- `content_loc6` text,
- `content_loc7` text,
- `content_loc8` text,
- `sound` mediumint(8) unsigned NOT NULL default '0',
- `type` tinyint unsigned NOT NULL default '0',
- `language` tinyint unsigned NOT NULL default '0',
- `comment` text,
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Custom Texts';
-
---
--- Dumping data for table `custom_texts`
---
-
-LOCK TABLES `custom_texts` WRITE;
-/*!40000 ALTER TABLE `custom_texts` DISABLE KEYS */;
-/*!40000 ALTER TABLE `custom_texts` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `db_version`
---
-
-DROP TABLE IF EXISTS `db_version`;
-CREATE TABLE `db_version` (
- `version` varchar(120) default NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
-
---
--- Dumping data for table `db_version`
---
-
-LOCK TABLES `db_version` WRITE;
-/*!40000 ALTER TABLE `db_version` DISABLE KEYS */;
-/*!40000 ALTER TABLE `db_version` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `disenchant_loot_template`
---
-
-DROP TABLE IF EXISTS `disenchant_loot_template`;
-CREATE TABLE `disenchant_loot_template` (
- `entry` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Recommended id selection: item_level*100 + item_quality',
- `item` mediumint(8) unsigned NOT NULL default '0',
- `ChanceOrQuestChance` float NOT NULL default '100',
- `groupid` tinyint(3) unsigned NOT NULL default '0',
- `mincountOrRef` mediumint(9) NOT NULL default '1',
- `maxcount` tinyint(3) unsigned NOT NULL default '1',
- `lootcondition` tinyint(3) unsigned NOT NULL default '0',
- `condition_value1` mediumint(8) unsigned NOT NULL default '0',
- `condition_value2` mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (`entry`,`item`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Loot System';
-
---
--- Dumping data for table `disenchant_loot_template`
---
-
-LOCK TABLES `disenchant_loot_template` WRITE;
-/*!40000 ALTER TABLE `disenchant_loot_template` DISABLE KEYS */;
-/*!40000 ALTER TABLE `disenchant_loot_template` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `event_scripts`
---
-
-DROP TABLE IF EXISTS `event_scripts`;
-CREATE TABLE `event_scripts` (
- `id` mediumint(8) unsigned NOT NULL default '0',
- `delay` int(10) unsigned NOT NULL default '0',
- `command` mediumint(8) unsigned NOT NULL default '0',
- `datalong` mediumint(8) unsigned NOT NULL default '0',
- `datalong2` int(10) unsigned NOT NULL default '0',
- `datatext` text NOT NULL,
- `x` float NOT NULL default '0',
- `y` float NOT NULL default '0',
- `z` float NOT NULL default '0',
- `o` float NOT NULL default '0'
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `event_scripts`
---
-
-LOCK TABLES `event_scripts` WRITE;
-/*!40000 ALTER TABLE `event_scripts` DISABLE KEYS */;
-/*!40000 ALTER TABLE `event_scripts` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `eventai_localized_texts`
---
-
-DROP TABLE IF EXISTS `eventai_localized_texts`;
-CREATE TABLE `eventai_localized_texts` (
- `id` int(11) unsigned NOT NULL auto_increment COMMENT 'Identifier',
- `locale_1` varchar(255) NOT NULL default '',
- `locale_2` varchar(255) NOT NULL default '',
- `locale_3` varchar(255) NOT NULL default '',
- `locale_4` varchar(255) NOT NULL default '',
- `locale_5` varchar(255) NOT NULL default '',
- `locale_6` varchar(255) NOT NULL default '',
- `locale_7` varchar(255) NOT NULL default '',
- `locale_8` varchar(255) NOT NULL default '',
- `comment` varchar(255) NOT NULL default '' COMMENT 'Text Comment',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='EventAI Localized Text';
-
---
--- Dumping data for table `eventai_localized_texts`
---
-
-LOCK TABLES `eventai_localized_texts` WRITE;
-/*!40000 ALTER TABLE `eventai_localized_texts` DISABLE KEYS */;
-/*!40000 ALTER TABLE `eventai_localized_texts` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `eventai_scripts`
---
-
-DROP TABLE IF EXISTS `eventai_scripts`;
-CREATE TABLE `eventai_scripts` (
- `id` int(11) unsigned NOT NULL COMMENT 'Identifier' AUTO_INCREMENT,
- `creature_id` int(11) unsigned NOT NULL default '0' COMMENT 'Creature Template Identifier',
- `event_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Event Type',
- `event_inverse_phase_mask` int(11) signed NOT NULL default '0' COMMENT 'Mask which phases this event will not trigger in',
- `event_chance` int(3) unsigned NOT NULL default '100',
- `event_flags` int(3) unsigned NOT NULL default '0',
- `event_param1` int(11) signed NOT NULL default '0',
- `event_param2` int(11) signed NOT NULL default '0',
- `event_param3` int(11) signed NOT NULL default '0',
- `event_param4` int(11) signed NOT NULL default '0',
- `action1_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Action Type',
- `action1_param1` int(11) signed NOT NULL default '0',
- `action1_param2` int(11) signed NOT NULL default '0',
- `action1_param3` int(11) signed NOT NULL default '0',
- `action2_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Action Type',
- `action2_param1` int(11) signed NOT NULL default '0',
- `action2_param2` int(11) signed NOT NULL default '0',
- `action2_param3` int(11) signed NOT NULL default '0',
- `action3_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Action Type',
- `action3_param1` int(11) signed NOT NULL default '0',
- `action3_param2` int(11) signed NOT NULL default '0',
- `action3_param3` int(11) signed NOT NULL default '0',
- `comment` varchar(255) NOT NULL default '' COMMENT 'Event Comment',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='EventAI Scripts';
-
---
--- Dumping data for table `eventai_scripts`
---
-
-LOCK TABLES `eventai_scripts` WRITE;
-/*!40000 ALTER TABLE `eventai_scripts` DISABLE KEYS */;
-/*!40000 ALTER TABLE `eventai_scripts` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `eventai_summons`
---
-
-DROP TABLE IF EXISTS `eventai_summons`;
-CREATE TABLE `eventai_summons` (
- `id` int(11) unsigned NOT NULL COMMENT 'Location Identifier' AUTO_INCREMENT,
- `position_x` float NOT NULL default '0',
- `position_y` float NOT NULL default '0',
- `position_z` float NOT NULL default '0',
- `orientation` float NOT NULL default '0',
- `spawntimesecs` int(11) unsigned NOT NULL default '120',
- `comment` varchar(255) NOT NULL default '' COMMENT 'Summon Comment',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='EventAI Summoning Locations';
-
---
--- Dumping data for table `eventai_summons`
---
-
-LOCK TABLES `eventai_summons` WRITE;
-/*!40000 ALTER TABLE `eventai_summons` DISABLE KEYS */;
-/*!40000 ALTER TABLE `eventai_summons` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `eventai_texts`
---
-
-DROP TABLE IF EXISTS `eventai_texts`;
-CREATE TABLE `eventai_texts` (
- `entry` mediumint(8) NOT NULL,
- `content_default` text NOT NULL,
- `content_loc1` text,
- `content_loc2` text,
- `content_loc3` text,
- `content_loc4` text,
- `content_loc5` text,
- `content_loc6` text,
- `content_loc7` text,
- `content_loc8` text,
- `sound` mediumint(8) unsigned NOT NULL default '0',
- `type` tinyint unsigned NOT NULL default '0',
- `language` tinyint unsigned NOT NULL default '0',
- `comment` text,
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Script Texts';
-
---
--- Dumping data for table `eventai_texts`
---
-
-LOCK TABLES `eventai_texts` WRITE;
-/*!40000 ALTER TABLE `eventai_texts` DISABLE KEYS */;
-/*!40000 ALTER TABLE `eventai_texts` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `script_texts`
---
-
-DROP TABLE IF EXISTS `script_texts`;
-CREATE TABLE `script_texts` (
- `entry` mediumint(8) NOT NULL,
- `content_default` text NOT NULL,
- `content_loc1` text,
- `content_loc2` text,
- `content_loc3` text,
- `content_loc4` text,
- `content_loc5` text,
- `content_loc6` text,
- `content_loc7` text,
- `content_loc8` text,
- `sound` mediumint(8) unsigned NOT NULL default '0',
- `type` tinyint unsigned NOT NULL default '0',
- `language` tinyint unsigned NOT NULL default '0',
- `comment` text,
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Script Texts';
-
---
--- Dumping data for table `script_texts`
---
-
-LOCK TABLES `script_texts` WRITE;
-/*!40000 ALTER TABLE `script_texts` DISABLE KEYS */;
-/*!40000 ALTER TABLE `script_texts` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `exploration_basexp`
---
-
-DROP TABLE IF EXISTS `exploration_basexp`;
-CREATE TABLE `exploration_basexp` (
- `level` tinyint(4) NOT NULL default '0',
- `basexp` mediumint(9) NOT NULL default '0',
- PRIMARY KEY (`level`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Exploration System';
-
---
--- Dumping data for table `exploration_basexp`
---
-
-LOCK TABLES `exploration_basexp` WRITE;
-/*!40000 ALTER TABLE `exploration_basexp` DISABLE KEYS */;
-/*!40000 ALTER TABLE `exploration_basexp` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `fishing_loot_template`
---
-
-DROP TABLE IF EXISTS `fishing_loot_template`;
-CREATE TABLE `fishing_loot_template` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `item` mediumint(8) unsigned NOT NULL default '0',
- `ChanceOrQuestChance` float NOT NULL default '100',
- `groupid` tinyint(3) unsigned NOT NULL default '0',
- `mincountOrRef` mediumint(9) NOT NULL default '1',
- `maxcount` tinyint(3) unsigned NOT NULL default '1',
- `lootcondition` tinyint(3) unsigned NOT NULL default '0',
- `condition_value1` mediumint(8) unsigned NOT NULL default '0',
- `condition_value2` mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (`entry`,`item`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Loot System';
-
---
--- Dumping data for table `fishing_loot_template`
---
-
-LOCK TABLES `fishing_loot_template` WRITE;
-/*!40000 ALTER TABLE `fishing_loot_template` DISABLE KEYS */;
-/*!40000 ALTER TABLE `fishing_loot_template` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `game_event`
---
-
-DROP TABLE IF EXISTS `game_event`;
-CREATE TABLE `game_event` (
- `entry` mediumint(8) unsigned NOT NULL COMMENT 'Entry of the game event',
- `start_time` timestamp NOT NULL default '0000-00-00 00:00:00' COMMENT 'Absolute start date, the event will never start before',
- `end_time` timestamp NOT NULL default '0000-00-00 00:00:00' COMMENT 'Absolute end date, the event will never start afler',
- `occurence` bigint(20) unsigned NOT NULL default '5184000' COMMENT 'Delay in minutes between occurences of the event',
- `length` bigint(20) unsigned NOT NULL default '2592000' COMMENT 'Length in minutes of the event',
- `description` varchar(255) default NULL COMMENT 'Description of the event displayed in console',
- `world_event` tinyint(3) unsigned NOT NULL default '0' COMMENT '0 if normal event, 1 if world event',
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `game_event`
---
-
-LOCK TABLES `game_event` WRITE;
-/*!40000 ALTER TABLE `game_event` DISABLE KEYS */;
-/*!40000 ALTER TABLE `game_event` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `game_event_condition`
---
-
-DROP TABLE IF EXISTS `game_event_condition`;
-CREATE TABLE `game_event_condition` (
- `event_id` mediumint(8) unsigned NOT NULL default '0',
- `condition_id` mediumint(8) unsigned NOT NULL default '0',
- `req_num` float default '0',
- `max_world_state_field` smallint(5) unsigned NOT NULL default '0',
- `done_world_state_field` smallint(5) unsigned NOT NULL default '0',
- `description` varchar(25) NOT NULL default '',
- PRIMARY KEY (`event_id`,`condition_id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `game_event_condition`
---
-
-LOCK TABLES `game_event_condition` WRITE;
-/*!40000 ALTER TABLE `game_event_condition` DISABLE KEYS */;
-/*!40000 ALTER TABLE `game_event_condition` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `game_event_creature`
---
-
-DROP TABLE IF EXISTS `game_event_creature`;
-CREATE TABLE `game_event_creature` (
- `guid` int(10) unsigned NOT NULL,
- `event` smallint(6) NOT NULL default '0' COMMENT 'Put negatives values to remove during event',
- PRIMARY KEY (`guid`,`event`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `game_event_creature`
---
-
-LOCK TABLES `game_event_creature` WRITE;
-/*!40000 ALTER TABLE `game_event_creature` DISABLE KEYS */;
-/*!40000 ALTER TABLE `game_event_creature` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `game_event_creature_quest`
---
-
-DROP TABLE IF EXISTS `game_event_creature_quest`;
-CREATE TABLE `game_event_creature_quest` (
- `id` mediumint(8) unsigned NOT NULL default '0',
- `quest` mediumint(8) unsigned NOT NULL default '0',
- `event` smallint(5) unsigned NOT NULL default '0',
- PRIMARY KEY (`quest`,`event`,`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `game_event_creature_quest`
---
-
-LOCK TABLES `game_event_creature_quest` WRITE;
-/*!40000 ALTER TABLE `game_event_creature_quest` DISABLE KEYS */;
-/*!40000 ALTER TABLE `game_event_creature_quest` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `game_event_gameobject`
---
-
-DROP TABLE IF EXISTS `game_event_gameobject`;
-CREATE TABLE `game_event_gameobject` (
- `guid` int(10) unsigned NOT NULL,
- `event` smallint(6) NOT NULL default '0' COMMENT 'Put negatives values to remove during event',
- PRIMARY KEY (`guid`,`event`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `game_event_gameobject`
---
-
-LOCK TABLES `game_event_gameobject` WRITE;
-/*!40000 ALTER TABLE `game_event_gameobject` DISABLE KEYS */;
-/*!40000 ALTER TABLE `game_event_gameobject` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `game_event_gameobject_quest`
---
-
-DROP TABLE IF EXISTS `game_event_gameobject_quest`;
-CREATE TABLE `game_event_gameobject_quest` (
- `id` mediumint(8) unsigned NOT NULL default '0',
- `quest` mediumint(8) unsigned NOT NULL default '0',
- `event` smallint(5) unsigned NOT NULL default '0',
- PRIMARY KEY (`quest`,`event`,`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `game_event_gameobject_quest`
---
-
-LOCK TABLES `game_event_gameobject_quest` WRITE;
-/*!40000 ALTER TABLE `game_event_gameobject_quest` DISABLE KEYS */;
-/*!40000 ALTER TABLE `game_event_gameobject_quest` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `game_event_model_equip`
---
-
-DROP TABLE IF EXISTS `game_event_model_equip`;
-CREATE TABLE `game_event_model_equip` (
- `guid` int(10) unsigned NOT NULL default '0',
- `modelid` mediumint(8) unsigned NOT NULL default '0',
- `equipment_id` mediumint(8) unsigned NOT NULL default '0',
- `event` smallint(5) unsigned NOT NULL default '0',
- PRIMARY KEY (`guid`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `game_event_model_equip`
---
-
-LOCK TABLES `game_event_model_equip` WRITE;
-/*!40000 ALTER TABLE `game_event_model_equip` DISABLE KEYS */;
-/*!40000 ALTER TABLE `game_event_model_equip` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `game_event_npc_gossip`
---
-
-DROP TABLE IF EXISTS `game_event_npc_gossip`;
-CREATE TABLE `game_event_npc_gossip` (
- `guid` int(10) unsigned NOT NULL,
- `event_id` mediumint(8) unsigned NOT NULL default '0',
- `textid` mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (`guid`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `game_event_npc_gossip`
---
-
-LOCK TABLES `game_event_npc_gossip` WRITE;
-/*!40000 ALTER TABLE `game_event_npc_gossip` DISABLE KEYS */;
-/*!40000 ALTER TABLE `game_event_npc_gossip` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `game_event_npc_vendor`
---
-
-DROP TABLE IF EXISTS `game_event_npc_vendor`;
-CREATE TABLE `game_event_npc_vendor` (
- `event` mediumint(8) unsigned NOT NULL default '0',
- `guid` mediumint(8) unsigned NOT NULL default '0',
- `item` mediumint(8) unsigned NOT NULL default '0',
- `maxcount` mediumint(8) unsigned NOT NULL default '0',
- `incrtime` mediumint(8) unsigned NOT NULL default '0',
- `ExtendedCost` mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (`guid`,`item`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `game_event_npc_vendor`
---
-
-LOCK TABLES `game_event_npc_vendor` WRITE;
-/*!40000 ALTER TABLE `game_event_npc_vendor` DISABLE KEYS */;
-/*!40000 ALTER TABLE `game_event_npc_vendor` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `game_event_npcflag`
---
-
-DROP TABLE IF EXISTS `game_event_npcflag`;
-CREATE TABLE `game_event_npcflag` (
- `guid` mediumint(8) unsigned NOT NULL default '0',
- `event_id` mediumint(8) unsigned NOT NULL default '0',
- `npcflag` int(10) unsigned NOT NULL default '0',
- PRIMARY KEY (`guid`,`event_id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `game_event_npcflag`
---
-
-LOCK TABLES `game_event_npcflag` WRITE;
-/*!40000 ALTER TABLE `game_event_npcflag` DISABLE KEYS */;
-/*!40000 ALTER TABLE `game_event_npcflag` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `game_event_prerequisite`
---
-
-DROP TABLE IF EXISTS `game_event_prerequisite`;
-CREATE TABLE `game_event_prerequisite` (
- `event_id` mediumint(8) unsigned NOT NULL,
- `prerequisite_event` mediumint(8) unsigned NOT NULL,
- PRIMARY KEY (`event_id`,`prerequisite_event`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `game_event_prerequisite`
---
-
-LOCK TABLES `game_event_prerequisite` WRITE;
-/*!40000 ALTER TABLE `game_event_prerequisite` DISABLE KEYS */;
-/*!40000 ALTER TABLE `game_event_prerequisite` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `game_event_quest_condition`
---
-
-DROP TABLE IF EXISTS `game_event_quest_condition`;
-CREATE TABLE `game_event_quest_condition` (
- `quest` mediumint(8) unsigned NOT NULL default '0',
- `event_id` mediumint(8) unsigned NOT NULL default '0',
- `condition_id` mediumint(8) unsigned NOT NULL default '0',
- `num` float default '0',
- PRIMARY KEY (`quest`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `game_event_quest_condition`
---
-
-LOCK TABLES `game_event_quest_condition` WRITE;
-/*!40000 ALTER TABLE `game_event_quest_condition` DISABLE KEYS */;
-/*!40000 ALTER TABLE `game_event_quest_condition` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `game_graveyard_zone`
---
-
-DROP TABLE IF EXISTS `game_graveyard_zone`;
-CREATE TABLE `game_graveyard_zone` (
- `id` mediumint(8) unsigned NOT NULL default '0',
- `ghost_zone` mediumint(8) unsigned NOT NULL default '0',
- `faction` smallint(5) unsigned NOT NULL default '0',
- PRIMARY KEY (`id`,`ghost_zone`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Trigger System';
-
---
--- Dumping data for table `game_graveyard_zone`
---
-
-LOCK TABLES `game_graveyard_zone` WRITE;
-/*!40000 ALTER TABLE `game_graveyard_zone` DISABLE KEYS */;
-/*!40000 ALTER TABLE `game_graveyard_zone` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `game_tele`
---
-
-DROP TABLE IF EXISTS `game_tele`;
-CREATE TABLE `game_tele` (
- `id` mediumint(8) unsigned NOT NULL auto_increment,
- `position_x` float NOT NULL default '0',
- `position_y` float NOT NULL default '0',
- `position_z` float NOT NULL default '0',
- `orientation` float NOT NULL default '0',
- `map` smallint(5) unsigned NOT NULL default '0',
- `name` varchar(100) NOT NULL default '',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Tele Command';
-
---
--- Dumping data for table `game_tele`
---
-
-LOCK TABLES `game_tele` WRITE;
-/*!40000 ALTER TABLE `game_tele` DISABLE KEYS */;
-/*!40000 ALTER TABLE `game_tele` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `game_weather`
---
-
-DROP TABLE IF EXISTS `game_weather`;
-CREATE TABLE `game_weather` (
- `zone` mediumint(8) unsigned NOT NULL default '0',
- `spring_rain_chance` tinyint(3) unsigned NOT NULL default '25',
- `spring_snow_chance` tinyint(3) unsigned NOT NULL default '25',
- `spring_storm_chance` tinyint(3) unsigned NOT NULL default '25',
- `summer_rain_chance` tinyint(3) unsigned NOT NULL default '25',
- `summer_snow_chance` tinyint(3) unsigned NOT NULL default '25',
- `summer_storm_chance` tinyint(3) unsigned NOT NULL default '25',
- `fall_rain_chance` tinyint(3) unsigned NOT NULL default '25',
- `fall_snow_chance` tinyint(3) unsigned NOT NULL default '25',
- `fall_storm_chance` tinyint(3) unsigned NOT NULL default '25',
- `winter_rain_chance` tinyint(3) unsigned NOT NULL default '25',
- `winter_snow_chance` tinyint(3) unsigned NOT NULL default '25',
- `winter_storm_chance` tinyint(3) unsigned NOT NULL default '25',
- PRIMARY KEY (`zone`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Weather System';
-
---
--- Dumping data for table `game_weather`
---
-
-LOCK TABLES `game_weather` WRITE;
-/*!40000 ALTER TABLE `game_weather` DISABLE KEYS */;
-/*!40000 ALTER TABLE `game_weather` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `gameobject`
---
-
-DROP TABLE IF EXISTS `gameobject`;
-CREATE TABLE `gameobject` (
- `guid` int(10) unsigned NOT NULL auto_increment COMMENT 'Global Unique Identifier',
- `id` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Gameobject Identifier',
- `map` smallint(5) unsigned NOT NULL default '0' COMMENT 'Map Identifier',
- `spawnMask` tinyint(3) unsigned NOT NULL default '1',
- `position_x` float NOT NULL default '0',
- `position_y` float NOT NULL default '0',
- `position_z` float NOT NULL default '0',
- `orientation` float NOT NULL default '0',
- `rotation0` float NOT NULL default '0',
- `rotation1` float NOT NULL default '0',
- `rotation2` float NOT NULL default '0',
- `rotation3` float NOT NULL default '0',
- `spawntimesecs` int(11) NOT NULL default '0',
- `animprogress` tinyint(3) unsigned NOT NULL default '0',
- `state` tinyint(3) unsigned NOT NULL default '0',
- PRIMARY KEY (`guid`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Gameobject System';
-
---
--- Dumping data for table `gameobject`
---
-
-LOCK TABLES `gameobject` WRITE;
-/*!40000 ALTER TABLE `gameobject` DISABLE KEYS */;
-/*!40000 ALTER TABLE `gameobject` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `gameobject_involvedrelation`
---
-
-DROP TABLE IF EXISTS `gameobject_involvedrelation`;
-CREATE TABLE `gameobject_involvedrelation` (
- `id` mediumint(8) unsigned NOT NULL default '0',
- `quest` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Quest Identifier',
- PRIMARY KEY (`id`,`quest`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `gameobject_involvedrelation`
---
-
-LOCK TABLES `gameobject_involvedrelation` WRITE;
-/*!40000 ALTER TABLE `gameobject_involvedrelation` DISABLE KEYS */;
-/*!40000 ALTER TABLE `gameobject_involvedrelation` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `gameobject_loot_template`
---
-
-DROP TABLE IF EXISTS `gameobject_loot_template`;
-CREATE TABLE `gameobject_loot_template` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `item` mediumint(8) unsigned NOT NULL default '0',
- `ChanceOrQuestChance` float NOT NULL default '100',
- `groupid` tinyint(3) unsigned NOT NULL default '0',
- `mincountOrRef` mediumint(9) NOT NULL default '1',
- `maxcount` tinyint(3) unsigned NOT NULL default '1',
- `lootcondition` tinyint(3) unsigned NOT NULL default '0',
- `condition_value1` mediumint(8) unsigned NOT NULL default '0',
- `condition_value2` mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (`entry`,`item`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Loot System';
-
---
--- Dumping data for table `gameobject_loot_template`
---
-
-LOCK TABLES `gameobject_loot_template` WRITE;
-/*!40000 ALTER TABLE `gameobject_loot_template` DISABLE KEYS */;
-/*!40000 ALTER TABLE `gameobject_loot_template` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `gameobject_questrelation`
---
-
-DROP TABLE IF EXISTS `gameobject_questrelation`;
-CREATE TABLE `gameobject_questrelation` (
- `id` mediumint(8) unsigned NOT NULL default '0',
- `quest` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Quest Identifier',
- PRIMARY KEY (`id`,`quest`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `gameobject_questrelation`
---
-
-LOCK TABLES `gameobject_questrelation` WRITE;
-/*!40000 ALTER TABLE `gameobject_questrelation` DISABLE KEYS */;
-/*!40000 ALTER TABLE `gameobject_questrelation` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `gameobject_respawn`
---
-
-DROP TABLE IF EXISTS `gameobject_respawn`;
-CREATE TABLE `gameobject_respawn` (
- `guid` int(10) unsigned NOT NULL default '0' COMMENT 'Global Unique Identifier',
- `respawntime` bigint(20) NOT NULL default '0',
- `instance` mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (`guid`,`instance`),
- KEY `instance` (`instance`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Grid Loading System';
-
---
--- Dumping data for table `gameobject_respawn`
---
-
-LOCK TABLES `gameobject_respawn` WRITE;
-/*!40000 ALTER TABLE `gameobject_respawn` DISABLE KEYS */;
-/*!40000 ALTER TABLE `gameobject_respawn` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `gameobject_scripts`
---
-
-DROP TABLE IF EXISTS `gameobject_scripts`;
-CREATE TABLE `gameobject_scripts` (
- `id` mediumint(8) unsigned NOT NULL default '0',
- `delay` int(10) unsigned NOT NULL default '0',
- `command` mediumint(8) unsigned NOT NULL default '0',
- `datalong` mediumint(8) unsigned NOT NULL default '0',
- `datalong2` int(10) unsigned NOT NULL default '0',
- `datatext` text NOT NULL,
- `x` float NOT NULL default '0',
- `y` float NOT NULL default '0',
- `z` float NOT NULL default '0',
- `o` float NOT NULL default '0'
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `gameobject_scripts`
---
-
-LOCK TABLES `gameobject_scripts` WRITE;
-/*!40000 ALTER TABLE `gameobject_scripts` DISABLE KEYS */;
-/*!40000 ALTER TABLE `gameobject_scripts` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `gameobject_template`
---
-
-DROP TABLE IF EXISTS `gameobject_template`;
-CREATE TABLE `gameobject_template` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `type` tinyint(3) unsigned NOT NULL default '0',
- `displayId` mediumint(8) unsigned NOT NULL default '0',
- `name` varchar(100) NOT NULL default '',
- `castBarCaption` varchar(100) NOT NULL default '',
- `faction` smallint(5) unsigned NOT NULL default '0',
- `flags` int(10) unsigned NOT NULL default '0',
- `size` float NOT NULL default '1',
- `data0` int(10) unsigned NOT NULL default '0',
- `data1` int(10) unsigned NOT NULL default '0',
- `data2` int(10) unsigned NOT NULL default '0',
- `data3` int(10) unsigned NOT NULL default '0',
- `data4` int(10) unsigned NOT NULL default '0',
- `data5` int(10) unsigned NOT NULL default '0',
- `data6` int(10) unsigned NOT NULL default '0',
- `data7` int(10) unsigned NOT NULL default '0',
- `data8` int(10) unsigned NOT NULL default '0',
- `data9` int(10) unsigned NOT NULL default '0',
- `data10` int(10) unsigned NOT NULL default '0',
- `data11` int(10) unsigned NOT NULL default '0',
- `data12` int(10) unsigned NOT NULL default '0',
- `data13` int(10) unsigned NOT NULL default '0',
- `data14` int(10) unsigned NOT NULL default '0',
- `data15` int(10) unsigned NOT NULL default '0',
- `data16` int(10) unsigned NOT NULL default '0',
- `data17` int(10) unsigned NOT NULL default '0',
- `data18` int(10) unsigned NOT NULL default '0',
- `data19` int(10) unsigned NOT NULL default '0',
- `data20` int(10) unsigned NOT NULL default '0',
- `data21` int(10) unsigned NOT NULL default '0',
- `data22` int(10) unsigned NOT NULL default '0',
- `data23` int(10) unsigned NOT NULL default '0',
- `ScriptName` varchar(64) NOT NULL default '',
- PRIMARY KEY (`entry`),
- KEY `idx_name` (`name`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Gameobject System';
-
---
--- Dumping data for table `gameobject_template`
---
-
-LOCK TABLES `gameobject_template` WRITE;
-/*!40000 ALTER TABLE `gameobject_template` DISABLE KEYS */;
-/*!40000 ALTER TABLE `gameobject_template` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `instance_template`
---
-
-DROP TABLE IF EXISTS `instance_template`;
-CREATE TABLE `instance_template` (
- `map` smallint(5) unsigned NOT NULL,
- `parent` int(10) unsigned NOT NULL,
- `levelMin` tinyint(3) unsigned NOT NULL default '0',
- `levelMax` tinyint(3) unsigned NOT NULL default '0',
- `maxPlayers` tinyint(3) unsigned NOT NULL default '0',
- `reset_delay` int(10) unsigned NOT NULL default '0',
- `startLocX` float default NULL,
- `startLocY` float default NULL,
- `startLocZ` float default NULL,
- `startLocO` float default NULL,
- `script` varchar(128) NOT NULL default '',
- PRIMARY KEY (`map`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `instance_template`
---
-
-LOCK TABLES `instance_template` WRITE;
-/*!40000 ALTER TABLE `instance_template` DISABLE KEYS */;
-/*!40000 ALTER TABLE `instance_template` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `item_enchantment_template`
---
-
-DROP TABLE IF EXISTS `item_enchantment_template`;
-CREATE TABLE `item_enchantment_template` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `ench` mediumint(8) unsigned NOT NULL default '0',
- `chance` float unsigned NOT NULL default '0',
- PRIMARY KEY (`entry`,`ench`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Item Random Enchantment System';
-
---
--- Dumping data for table `item_enchantment_template`
---
-
-LOCK TABLES `item_enchantment_template` WRITE;
-/*!40000 ALTER TABLE `item_enchantment_template` DISABLE KEYS */;
-/*!40000 ALTER TABLE `item_enchantment_template` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `item_loot_template`
---
-
-DROP TABLE IF EXISTS `item_loot_template`;
-CREATE TABLE `item_loot_template` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `item` mediumint(8) unsigned NOT NULL default '0',
- `ChanceOrQuestChance` float NOT NULL default '100',
- `groupid` tinyint(3) unsigned NOT NULL default '0',
- `mincountOrRef` mediumint(9) NOT NULL default '1',
- `maxcount` smallint(5) unsigned NOT NULL default '1',
- `lootcondition` tinyint(3) unsigned NOT NULL default '0',
- `condition_value1` mediumint(8) unsigned NOT NULL default '0',
- `condition_value2` mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (`entry`,`item`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Loot System';
-
---
--- Dumping data for table `item_loot_template`
---
-
-LOCK TABLES `item_loot_template` WRITE;
-/*!40000 ALTER TABLE `item_loot_template` DISABLE KEYS */;
-/*!40000 ALTER TABLE `item_loot_template` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `item_template`
---
-
-DROP TABLE IF EXISTS `item_template`;
-CREATE TABLE `item_template` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `class` tinyint(3) unsigned NOT NULL default '0',
- `subclass` tinyint(3) unsigned NOT NULL default '0',
- `unk0` int(11) NOT NULL default '-1',
- `name` varchar(255) NOT NULL default '',
- `displayid` mediumint(8) unsigned NOT NULL default '0',
- `Quality` tinyint(3) unsigned NOT NULL default '0',
- `Flags` int(10) unsigned NOT NULL default '0',
- `BuyCount` tinyint(3) unsigned NOT NULL default '1',
- `BuyPrice` int(10) unsigned NOT NULL default '0',
- `SellPrice` int(10) unsigned NOT NULL default '0',
- `InventoryType` tinyint(3) unsigned NOT NULL default '0',
- `AllowableClass` mediumint(9) NOT NULL default '-1',
- `AllowableRace` mediumint(9) NOT NULL default '-1',
- `ItemLevel` tinyint(3) unsigned NOT NULL default '0',
- `RequiredLevel` tinyint(3) unsigned NOT NULL default '0',
- `RequiredSkill` smallint(5) unsigned NOT NULL default '0',
- `RequiredSkillRank` smallint(5) unsigned NOT NULL default '0',
- `requiredspell` mediumint(8) unsigned NOT NULL default '0',
- `requiredhonorrank` mediumint(8) unsigned NOT NULL default '0',
- `RequiredCityRank` mediumint(8) unsigned NOT NULL default '0',
- `RequiredReputationFaction` smallint(5) unsigned NOT NULL default '0',
- `RequiredReputationRank` smallint(5) unsigned NOT NULL default '0',
- `maxcount` smallint(5) unsigned NOT NULL default '0',
- `stackable` smallint(5) unsigned NOT NULL default '1',
- `ContainerSlots` tinyint(3) unsigned NOT NULL default '0',
- `stat_type1` tinyint(3) unsigned NOT NULL default '0',
- `stat_value1` smallint(6) NOT NULL default '0',
- `stat_type2` tinyint(3) unsigned NOT NULL default '0',
- `stat_value2` smallint(6) NOT NULL default '0',
- `stat_type3` tinyint(3) unsigned NOT NULL default '0',
- `stat_value3` smallint(6) NOT NULL default '0',
- `stat_type4` tinyint(3) unsigned NOT NULL default '0',
- `stat_value4` smallint(6) NOT NULL default '0',
- `stat_type5` tinyint(3) unsigned NOT NULL default '0',
- `stat_value5` smallint(6) NOT NULL default '0',
- `stat_type6` tinyint(3) unsigned NOT NULL default '0',
- `stat_value6` smallint(6) NOT NULL default '0',
- `stat_type7` tinyint(3) unsigned NOT NULL default '0',
- `stat_value7` smallint(6) NOT NULL default '0',
- `stat_type8` tinyint(3) unsigned NOT NULL default '0',
- `stat_value8` smallint(6) NOT NULL default '0',
- `stat_type9` tinyint(3) unsigned NOT NULL default '0',
- `stat_value9` smallint(6) NOT NULL default '0',
- `stat_type10` tinyint(3) unsigned NOT NULL default '0',
- `stat_value10` smallint(6) NOT NULL default '0',
- `dmg_min1` float NOT NULL default '0',
- `dmg_max1` float NOT NULL default '0',
- `dmg_type1` tinyint(3) unsigned NOT NULL default '0',
- `dmg_min2` float NOT NULL default '0',
- `dmg_max2` float NOT NULL default '0',
- `dmg_type2` tinyint(3) unsigned NOT NULL default '0',
- `dmg_min3` float NOT NULL default '0',
- `dmg_max3` float NOT NULL default '0',
- `dmg_type3` tinyint(3) unsigned NOT NULL default '0',
- `dmg_min4` float NOT NULL default '0',
- `dmg_max4` float NOT NULL default '0',
- `dmg_type4` tinyint(3) unsigned NOT NULL default '0',
- `dmg_min5` float NOT NULL default '0',
- `dmg_max5` float NOT NULL default '0',
- `dmg_type5` tinyint(3) unsigned NOT NULL default '0',
- `armor` smallint(5) unsigned NOT NULL default '0',
- `holy_res` tinyint(3) unsigned NOT NULL default '0',
- `fire_res` tinyint(3) unsigned NOT NULL default '0',
- `nature_res` tinyint(3) unsigned NOT NULL default '0',
- `frost_res` tinyint(3) unsigned NOT NULL default '0',
- `shadow_res` tinyint(3) unsigned NOT NULL default '0',
- `arcane_res` tinyint(3) unsigned NOT NULL default '0',
- `delay` smallint(5) unsigned NOT NULL default '1000',
- `ammo_type` tinyint(3) unsigned NOT NULL default '0',
- `RangedModRange` float NOT NULL default '0',
- `spellid_1` mediumint(8) unsigned NOT NULL default '0',
- `spelltrigger_1` tinyint(3) unsigned NOT NULL default '0',
- `spellcharges_1` tinyint(4) NOT NULL default '0',
- `spellppmRate_1` float NOT NULL default '0',
- `spellcooldown_1` int(11) NOT NULL default '-1',
- `spellcategory_1` smallint(5) unsigned NOT NULL default '0',
- `spellcategorycooldown_1` int(11) NOT NULL default '-1',
- `spellid_2` mediumint(8) unsigned NOT NULL default '0',
- `spelltrigger_2` tinyint(3) unsigned NOT NULL default '0',
- `spellcharges_2` tinyint(4) NOT NULL default '0',
- `spellppmRate_2` float NOT NULL default '0',
- `spellcooldown_2` int(11) NOT NULL default '-1',
- `spellcategory_2` smallint(5) unsigned NOT NULL default '0',
- `spellcategorycooldown_2` int(11) NOT NULL default '-1',
- `spellid_3` mediumint(8) unsigned NOT NULL default '0',
- `spelltrigger_3` tinyint(3) unsigned NOT NULL default '0',
- `spellcharges_3` tinyint(4) NOT NULL default '0',
- `spellppmRate_3` float NOT NULL default '0',
- `spellcooldown_3` int(11) NOT NULL default '-1',
- `spellcategory_3` smallint(5) unsigned NOT NULL default '0',
- `spellcategorycooldown_3` int(11) NOT NULL default '-1',
- `spellid_4` mediumint(8) unsigned NOT NULL default '0',
- `spelltrigger_4` tinyint(3) unsigned NOT NULL default '0',
- `spellcharges_4` tinyint(4) NOT NULL default '0',
- `spellppmRate_4` float NOT NULL default '0',
- `spellcooldown_4` int(11) NOT NULL default '-1',
- `spellcategory_4` smallint(5) unsigned NOT NULL default '0',
- `spellcategorycooldown_4` int(11) NOT NULL default '-1',
- `spellid_5` mediumint(8) unsigned NOT NULL default '0',
- `spelltrigger_5` tinyint(3) unsigned NOT NULL default '0',
- `spellcharges_5` tinyint(4) NOT NULL default '0',
- `spellppmRate_5` float NOT NULL default '0',
- `spellcooldown_5` int(11) NOT NULL default '-1',
- `spellcategory_5` smallint(5) unsigned NOT NULL default '0',
- `spellcategorycooldown_5` int(11) NOT NULL default '-1',
- `bonding` tinyint(3) unsigned NOT NULL default '0',
- `description` varchar(255) NOT NULL default '',
- `PageText` mediumint(8) unsigned NOT NULL default '0',
- `LanguageID` tinyint(3) unsigned NOT NULL default '0',
- `PageMaterial` tinyint(3) unsigned NOT NULL default '0',
- `startquest` mediumint(8) unsigned NOT NULL default '0',
- `lockid` mediumint(8) unsigned NOT NULL default '0',
- `Material` tinyint(4) NOT NULL default '0',
- `sheath` tinyint(3) unsigned NOT NULL default '0',
- `RandomProperty` mediumint(8) unsigned NOT NULL default '0',
- `RandomSuffix` mediumint(8) unsigned NOT NULL default '0',
- `block` mediumint(8) unsigned NOT NULL default '0',
- `itemset` mediumint(8) unsigned NOT NULL default '0',
- `MaxDurability` smallint(5) unsigned NOT NULL default '0',
- `area` mediumint(8) unsigned NOT NULL default '0',
- `Map` smallint(6) NOT NULL default '0',
- `BagFamily` mediumint(9) NOT NULL default '0',
- `TotemCategory` tinyint(4) NOT NULL default '0',
- `socketColor_1` tinyint(4) NOT NULL default '0',
- `socketContent_1` mediumint(9) NOT NULL default '0',
- `socketColor_2` tinyint(4) NOT NULL default '0',
- `socketContent_2` mediumint(9) NOT NULL default '0',
- `socketColor_3` tinyint(4) NOT NULL default '0',
- `socketContent_3` mediumint(9) NOT NULL default '0',
- `socketBonus` mediumint(9) NOT NULL default '0',
- `GemProperties` mediumint(9) NOT NULL default '0',
- `RequiredDisenchantSkill` smallint(6) NOT NULL default '-1',
- `ArmorDamageModifier` float NOT NULL default '0',
- `ScriptName` varchar(64) NOT NULL default '',
- `DisenchantID` mediumint(8) unsigned NOT NULL default '0',
- `FoodType` tinyint(3) unsigned NOT NULL default '0',
- `minMoneyLoot` int(10) unsigned NOT NULL default '0',
- `maxMoneyLoot` int(10) unsigned NOT NULL default '0',
- `Duration` int(11) NOT NULL default '0' COMMENT 'Duration in seconds. Negative value means realtime, postive value ingame time',
- PRIMARY KEY (`entry`),
- KEY `idx_name` (`name`),
- KEY `items_index` (`class`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Item System';
-
---
--- Dumping data for table `item_template`
---
-
-LOCK TABLES `item_template` WRITE;
-/*!40000 ALTER TABLE `item_template` DISABLE KEYS */;
-/*!40000 ALTER TABLE `item_template` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `locales_creature`
---
-
-DROP TABLE IF EXISTS `locales_creature`;
-CREATE TABLE `locales_creature` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `name_loc1` varchar(100) NOT NULL default '',
- `name_loc2` varchar(100) NOT NULL default '',
- `name_loc3` varchar(100) NOT NULL default '',
- `name_loc4` varchar(100) NOT NULL default '',
- `name_loc5` varchar(100) NOT NULL default '',
- `name_loc6` varchar(100) NOT NULL default '',
- `name_loc7` varchar(100) NOT NULL default '',
- `name_loc8` varchar(100) NOT NULL default '',
- `subname_loc1` varchar(100) default NULL,
- `subname_loc2` varchar(100) default NULL,
- `subname_loc3` varchar(100) default NULL,
- `subname_loc4` varchar(100) default NULL,
- `subname_loc5` varchar(100) default NULL,
- `subname_loc6` varchar(100) default NULL,
- `subname_loc7` varchar(100) default NULL,
- `subname_loc8` varchar(100) default NULL,
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `locales_creature`
---
-
-LOCK TABLES `locales_creature` WRITE;
-/*!40000 ALTER TABLE `locales_creature` DISABLE KEYS */;
-/*!40000 ALTER TABLE `locales_creature` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `locales_gameobject`
---
-
-DROP TABLE IF EXISTS `locales_gameobject`;
-CREATE TABLE `locales_gameobject` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `name_loc1` varchar(100) NOT NULL default '',
- `name_loc2` varchar(100) NOT NULL default '',
- `name_loc3` varchar(100) NOT NULL default '',
- `name_loc4` varchar(100) NOT NULL default '',
- `name_loc5` varchar(100) NOT NULL default '',
- `name_loc6` varchar(100) NOT NULL default '',
- `name_loc7` varchar(100) NOT NULL default '',
- `name_loc8` varchar(100) NOT NULL default '',
- `castbarcaption_loc1` varchar(100) NOT NULL default '',
- `castbarcaption_loc2` varchar(100) NOT NULL default '',
- `castbarcaption_loc3` varchar(100) NOT NULL default '',
- `castbarcaption_loc4` varchar(100) NOT NULL default '',
- `castbarcaption_loc5` varchar(100) NOT NULL default '',
- `castbarcaption_loc6` varchar(100) NOT NULL default '',
- `castbarcaption_loc7` varchar(100) NOT NULL default '',
- `castbarcaption_loc8` varchar(100) NOT NULL default '',
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `locales_gameobject`
---
-
-LOCK TABLES `locales_gameobject` WRITE;
-/*!40000 ALTER TABLE `locales_gameobject` DISABLE KEYS */;
-/*!40000 ALTER TABLE `locales_gameobject` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `locales_item`
---
-
-DROP TABLE IF EXISTS `locales_item`;
-CREATE TABLE `locales_item` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `name_loc1` varchar(100) NOT NULL default '',
- `name_loc2` varchar(100) NOT NULL default '',
- `name_loc3` varchar(100) NOT NULL default '',
- `name_loc4` varchar(100) NOT NULL default '',
- `name_loc5` varchar(100) NOT NULL default '',
- `name_loc6` varchar(100) NOT NULL default '',
- `name_loc7` varchar(100) NOT NULL default '',
- `name_loc8` varchar(100) NOT NULL default '',
- `description_loc1` varchar(255) default NULL,
- `description_loc2` varchar(255) default NULL,
- `description_loc3` varchar(255) default NULL,
- `description_loc4` varchar(255) default NULL,
- `description_loc5` varchar(255) default NULL,
- `description_loc6` varchar(255) default NULL,
- `description_loc7` varchar(255) default NULL,
- `description_loc8` varchar(255) default NULL,
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `locales_item`
---
-
-LOCK TABLES `locales_item` WRITE;
-/*!40000 ALTER TABLE `locales_item` DISABLE KEYS */;
-/*!40000 ALTER TABLE `locales_item` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `locales_npc_text`
---
-
-DROP TABLE IF EXISTS `locales_npc_text`;
-CREATE TABLE `locales_npc_text` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `Text0_0_loc1` longtext,
- `Text0_0_loc2` longtext,
- `Text0_0_loc3` longtext,
- `Text0_0_loc4` longtext,
- `Text0_0_loc5` longtext,
- `Text0_0_loc6` longtext,
- `Text0_0_loc7` longtext,
- `Text0_0_loc8` longtext,
- `Text0_1_loc1` longtext,
- `Text0_1_loc2` longtext,
- `Text0_1_loc3` longtext,
- `Text0_1_loc4` longtext,
- `Text0_1_loc5` longtext,
- `Text0_1_loc6` longtext,
- `Text0_1_loc7` longtext,
- `Text0_1_loc8` longtext,
- `Text1_0_loc1` longtext,
- `Text1_0_loc2` longtext,
- `Text1_0_loc3` longtext,
- `Text1_0_loc4` longtext,
- `Text1_0_loc5` longtext,
- `Text1_0_loc6` longtext,
- `Text1_0_loc7` longtext,
- `Text1_0_loc8` longtext,
- `Text1_1_loc1` longtext,
- `Text1_1_loc2` longtext,
- `Text1_1_loc3` longtext,
- `Text1_1_loc4` longtext,
- `Text1_1_loc5` longtext,
- `Text1_1_loc6` longtext,
- `Text1_1_loc7` longtext,
- `Text1_1_loc8` longtext,
- `Text2_0_loc1` longtext,
- `Text2_0_loc2` longtext,
- `Text2_0_loc3` longtext,
- `Text2_0_loc4` longtext,
- `Text2_0_loc5` longtext,
- `Text2_0_loc6` longtext,
- `Text2_0_loc7` longtext,
- `Text2_0_loc8` longtext,
- `Text2_1_loc1` longtext,
- `Text2_1_loc2` longtext,
- `Text2_1_loc3` longtext,
- `Text2_1_loc4` longtext,
- `Text2_1_loc5` longtext,
- `Text2_1_loc6` longtext,
- `Text2_1_loc7` longtext,
- `Text2_1_loc8` longtext,
- `Text3_0_loc1` longtext,
- `Text3_0_loc2` longtext,
- `Text3_0_loc3` longtext,
- `Text3_0_loc4` longtext,
- `Text3_0_loc5` longtext,
- `Text3_0_loc6` longtext,
- `Text3_0_loc7` longtext,
- `Text3_0_loc8` longtext,
- `Text3_1_loc1` longtext,
- `Text3_1_loc2` longtext,
- `Text3_1_loc3` longtext,
- `Text3_1_loc4` longtext,
- `Text3_1_loc5` longtext,
- `Text3_1_loc6` longtext,
- `Text3_1_loc7` longtext,
- `Text3_1_loc8` longtext,
- `Text4_0_loc1` longtext,
- `Text4_0_loc2` longtext,
- `Text4_0_loc3` longtext,
- `Text4_0_loc4` longtext,
- `Text4_0_loc5` longtext,
- `Text4_0_loc6` longtext,
- `Text4_0_loc7` longtext,
- `Text4_0_loc8` longtext,
- `Text4_1_loc1` longtext,
- `Text4_1_loc2` longtext,
- `Text4_1_loc3` longtext,
- `Text4_1_loc4` longtext,
- `Text4_1_loc5` longtext,
- `Text4_1_loc6` longtext,
- `Text4_1_loc7` longtext,
- `Text4_1_loc8` longtext,
- `Text5_0_loc1` longtext,
- `Text5_0_loc2` longtext,
- `Text5_0_loc3` longtext,
- `Text5_0_loc4` longtext,
- `Text5_0_loc5` longtext,
- `Text5_0_loc6` longtext,
- `Text5_0_loc7` longtext,
- `Text5_0_loc8` longtext,
- `Text5_1_loc1` longtext,
- `Text5_1_loc2` longtext,
- `Text5_1_loc3` longtext,
- `Text5_1_loc4` longtext,
- `Text5_1_loc5` longtext,
- `Text5_1_loc6` longtext,
- `Text5_1_loc7` longtext,
- `Text5_1_loc8` longtext,
- `Text6_0_loc1` longtext,
- `Text6_0_loc2` longtext,
- `Text6_0_loc3` longtext,
- `Text6_0_loc4` longtext,
- `Text6_0_loc5` longtext,
- `Text6_0_loc6` longtext,
- `Text6_0_loc7` longtext,
- `Text6_0_loc8` longtext,
- `Text6_1_loc1` longtext,
- `Text6_1_loc2` longtext,
- `Text6_1_loc3` longtext,
- `Text6_1_loc4` longtext,
- `Text6_1_loc5` longtext,
- `Text6_1_loc6` longtext,
- `Text6_1_loc7` longtext,
- `Text6_1_loc8` longtext,
- `Text7_0_loc1` longtext,
- `Text7_0_loc2` longtext,
- `Text7_0_loc3` longtext,
- `Text7_0_loc4` longtext,
- `Text7_0_loc5` longtext,
- `Text7_0_loc6` longtext,
- `Text7_0_loc7` longtext,
- `Text7_0_loc8` longtext,
- `Text7_1_loc1` longtext,
- `Text7_1_loc2` longtext,
- `Text7_1_loc3` longtext,
- `Text7_1_loc4` longtext,
- `Text7_1_loc5` longtext,
- `Text7_1_loc6` longtext,
- `Text7_1_loc7` longtext,
- `Text7_1_loc8` longtext,
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `locales_npc_text`
---
-
-LOCK TABLES `locales_npc_text` WRITE;
-/*!40000 ALTER TABLE `locales_npc_text` DISABLE KEYS */;
-/*!40000 ALTER TABLE `locales_npc_text` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `locales_page_text`
---
-
-DROP TABLE IF EXISTS `locales_page_text`;
-CREATE TABLE `locales_page_text` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `Text_loc1` longtext,
- `Text_loc2` longtext,
- `Text_loc3` longtext,
- `Text_loc4` longtext,
- `Text_loc5` longtext,
- `Text_loc6` longtext,
- `Text_loc7` longtext,
- `Text_loc8` longtext,
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `locales_page_text`
---
-
-LOCK TABLES `locales_page_text` WRITE;
-/*!40000 ALTER TABLE `locales_page_text` DISABLE KEYS */;
-/*!40000 ALTER TABLE `locales_page_text` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `locales_quest`
---
-
-DROP TABLE IF EXISTS `locales_quest`;
-CREATE TABLE `locales_quest` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `Title_loc1` text,
- `Title_loc2` text,
- `Title_loc3` text,
- `Title_loc4` text,
- `Title_loc5` text,
- `Title_loc6` text,
- `Title_loc7` text,
- `Title_loc8` text,
- `Details_loc1` text,
- `Details_loc2` text,
- `Details_loc3` text,
- `Details_loc4` text,
- `Details_loc5` text,
- `Details_loc6` text,
- `Details_loc7` text,
- `Details_loc8` text,
- `Objectives_loc1` text,
- `Objectives_loc2` text,
- `Objectives_loc3` text,
- `Objectives_loc4` text,
- `Objectives_loc5` text,
- `Objectives_loc6` text,
- `Objectives_loc7` text,
- `Objectives_loc8` text,
- `OfferRewardText_loc1` text,
- `OfferRewardText_loc2` text,
- `OfferRewardText_loc3` text,
- `OfferRewardText_loc4` text,
- `OfferRewardText_loc5` text,
- `OfferRewardText_loc6` text,
- `OfferRewardText_loc7` text,
- `OfferRewardText_loc8` text,
- `RequestItemsText_loc1` text,
- `RequestItemsText_loc2` text,
- `RequestItemsText_loc3` text,
- `RequestItemsText_loc4` text,
- `RequestItemsText_loc5` text,
- `RequestItemsText_loc6` text,
- `RequestItemsText_loc7` text,
- `RequestItemsText_loc8` text,
- `EndText_loc1` text,
- `EndText_loc2` text,
- `EndText_loc3` text,
- `EndText_loc4` text,
- `EndText_loc5` text,
- `EndText_loc6` text,
- `EndText_loc7` text,
- `EndText_loc8` text,
- `ObjectiveText1_loc1` text,
- `ObjectiveText1_loc2` text,
- `ObjectiveText1_loc3` text,
- `ObjectiveText1_loc4` text,
- `ObjectiveText1_loc5` text,
- `ObjectiveText1_loc6` text,
- `ObjectiveText1_loc7` text,
- `ObjectiveText1_loc8` text,
- `ObjectiveText2_loc1` text,
- `ObjectiveText2_loc2` text,
- `ObjectiveText2_loc3` text,
- `ObjectiveText2_loc4` text,
- `ObjectiveText2_loc5` text,
- `ObjectiveText2_loc6` text,
- `ObjectiveText2_loc7` text,
- `ObjectiveText2_loc8` text,
- `ObjectiveText3_loc1` text,
- `ObjectiveText3_loc2` text,
- `ObjectiveText3_loc3` text,
- `ObjectiveText3_loc4` text,
- `ObjectiveText3_loc5` text,
- `ObjectiveText3_loc6` text,
- `ObjectiveText3_loc7` text,
- `ObjectiveText3_loc8` text,
- `ObjectiveText4_loc1` text,
- `ObjectiveText4_loc2` text,
- `ObjectiveText4_loc3` text,
- `ObjectiveText4_loc4` text,
- `ObjectiveText4_loc5` text,
- `ObjectiveText4_loc6` text,
- `ObjectiveText4_loc7` text,
- `ObjectiveText4_loc8` text,
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `locales_quest`
---
-
-LOCK TABLES `locales_quest` WRITE;
-/*!40000 ALTER TABLE `locales_quest` DISABLE KEYS */;
-/*!40000 ALTER TABLE `locales_quest` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `npc_gossip`
---
-
-DROP TABLE IF EXISTS `npc_gossip`;
-CREATE TABLE `npc_gossip` (
- `npc_guid` int(10) unsigned NOT NULL default '0',
- `textid` mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (`npc_guid`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `npc_gossip`
---
-
-LOCK TABLES `npc_gossip` WRITE;
-/*!40000 ALTER TABLE `npc_gossip` DISABLE KEYS */;
-/*!40000 ALTER TABLE `npc_gossip` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `npc_gossip_textid`
---
-
-DROP TABLE IF EXISTS `npc_gossip_textid`;
-CREATE TABLE `npc_gossip_textid` (
- `zoneid` smallint(5) unsigned NOT NULL default '0',
- `action` smallint(5) unsigned NOT NULL default '0',
- `textid` mediumint(8) unsigned NOT NULL default '0',
- KEY `zoneid` (`zoneid`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `npc_gossip_textid`
---
-
-LOCK TABLES `npc_gossip_textid` WRITE;
-/*!40000 ALTER TABLE `npc_gossip_textid` DISABLE KEYS */;
-/*!40000 ALTER TABLE `npc_gossip_textid` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `npc_option`
---
-
-DROP TABLE IF EXISTS `npc_option`;
-CREATE TABLE `npc_option` (
- `id` tinyint(3) unsigned NOT NULL default '0',
- `gossip_id` tinyint(3) unsigned NOT NULL default '0',
- `npcflag` int(10) unsigned NOT NULL default '0',
- `icon` tinyint(3) unsigned NOT NULL default '0',
- `action` tinyint(3) unsigned NOT NULL default '0',
- `option_text` text,
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `npc_option`
---
-
-LOCK TABLES `npc_option` WRITE;
-/*!40000 ALTER TABLE `npc_option` DISABLE KEYS */;
-/*!40000 ALTER TABLE `npc_option` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `npc_text`
---
-
-DROP TABLE IF EXISTS `npc_text`;
-CREATE TABLE `npc_text` (
- `ID` mediumint(8) unsigned NOT NULL default '0',
- `text0_0` longtext,
- `text0_1` longtext,
- `lang0` tinyint(3) unsigned NOT NULL default '0',
- `prob0` float NOT NULL default '0',
- `em0_0` smallint(5) unsigned NOT NULL default '0',
- `em0_1` smallint(5) unsigned NOT NULL default '0',
- `em0_2` smallint(5) unsigned NOT NULL default '0',
- `em0_3` smallint(5) unsigned NOT NULL default '0',
- `em0_4` smallint(5) unsigned NOT NULL default '0',
- `em0_5` smallint(5) unsigned NOT NULL default '0',
- `text1_0` longtext,
- `text1_1` longtext,
- `lang1` tinyint(3) unsigned NOT NULL default '0',
- `prob1` float NOT NULL default '0',
- `em1_0` smallint(5) unsigned NOT NULL default '0',
- `em1_1` smallint(5) unsigned NOT NULL default '0',
- `em1_2` smallint(5) unsigned NOT NULL default '0',
- `em1_3` smallint(5) unsigned NOT NULL default '0',
- `em1_4` smallint(5) unsigned NOT NULL default '0',
- `em1_5` smallint(5) unsigned NOT NULL default '0',
- `text2_0` longtext,
- `text2_1` longtext,
- `lang2` tinyint(3) unsigned NOT NULL default '0',
- `prob2` float NOT NULL default '0',
- `em2_0` smallint(5) unsigned NOT NULL default '0',
- `em2_1` smallint(5) unsigned NOT NULL default '0',
- `em2_2` smallint(5) unsigned NOT NULL default '0',
- `em2_3` smallint(5) unsigned NOT NULL default '0',
- `em2_4` smallint(5) unsigned NOT NULL default '0',
- `em2_5` smallint(5) unsigned NOT NULL default '0',
- `text3_0` longtext,
- `text3_1` longtext,
- `lang3` tinyint(3) unsigned NOT NULL default '0',
- `prob3` float NOT NULL default '0',
- `em3_0` smallint(5) unsigned NOT NULL default '0',
- `em3_1` smallint(5) unsigned NOT NULL default '0',
- `em3_2` smallint(5) unsigned NOT NULL default '0',
- `em3_3` smallint(5) unsigned NOT NULL default '0',
- `em3_4` smallint(5) unsigned NOT NULL default '0',
- `em3_5` smallint(5) unsigned NOT NULL default '0',
- `text4_0` longtext,
- `text4_1` longtext,
- `lang4` tinyint(3) unsigned NOT NULL default '0',
- `prob4` float NOT NULL default '0',
- `em4_0` smallint(5) unsigned NOT NULL default '0',
- `em4_1` smallint(5) unsigned NOT NULL default '0',
- `em4_2` smallint(5) unsigned NOT NULL default '0',
- `em4_3` smallint(5) unsigned NOT NULL default '0',
- `em4_4` smallint(5) unsigned NOT NULL default '0',
- `em4_5` smallint(5) unsigned NOT NULL default '0',
- `text5_0` longtext,
- `text5_1` longtext,
- `lang5` tinyint(3) unsigned NOT NULL default '0',
- `prob5` float NOT NULL default '0',
- `em5_0` smallint(5) unsigned NOT NULL default '0',
- `em5_1` smallint(5) unsigned NOT NULL default '0',
- `em5_2` smallint(5) unsigned NOT NULL default '0',
- `em5_3` smallint(5) unsigned NOT NULL default '0',
- `em5_4` smallint(5) unsigned NOT NULL default '0',
- `em5_5` smallint(5) unsigned NOT NULL default '0',
- `text6_0` longtext,
- `text6_1` longtext,
- `lang6` tinyint(3) unsigned NOT NULL default '0',
- `prob6` float NOT NULL default '0',
- `em6_0` smallint(5) unsigned NOT NULL default '0',
- `em6_1` smallint(5) unsigned NOT NULL default '0',
- `em6_2` smallint(5) unsigned NOT NULL default '0',
- `em6_3` smallint(5) unsigned NOT NULL default '0',
- `em6_4` smallint(5) unsigned NOT NULL default '0',
- `em6_5` smallint(5) unsigned NOT NULL default '0',
- `text7_0` longtext,
- `text7_1` longtext,
- `lang7` tinyint(3) unsigned NOT NULL default '0',
- `prob7` float NOT NULL default '0',
- `em7_0` smallint(5) unsigned NOT NULL default '0',
- `em7_1` smallint(5) unsigned NOT NULL default '0',
- `em7_2` smallint(5) unsigned NOT NULL default '0',
- `em7_3` smallint(5) unsigned NOT NULL default '0',
- `em7_4` smallint(5) unsigned NOT NULL default '0',
- `em7_5` smallint(5) unsigned NOT NULL default '0',
- PRIMARY KEY (`ID`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `npc_text`
---
-
-LOCK TABLES `npc_text` WRITE;
-/*!40000 ALTER TABLE `npc_text` DISABLE KEYS */;
-/*!40000 ALTER TABLE `npc_text` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `npc_trainer`
---
-
-DROP TABLE IF EXISTS `npc_trainer`;
-CREATE TABLE `npc_trainer` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `spell` mediumint(8) unsigned NOT NULL default '0',
- `spellcost` int(10) unsigned NOT NULL default '0',
- `reqskill` smallint(5) unsigned NOT NULL default '0',
- `reqskillvalue` smallint(5) unsigned NOT NULL default '0',
- `reqlevel` tinyint(3) unsigned NOT NULL default '0',
- PRIMARY KEY (`entry`,`spell`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `npc_trainer`
---
-
-LOCK TABLES `npc_trainer` WRITE;
-/*!40000 ALTER TABLE `npc_trainer` DISABLE KEYS */;
-/*!40000 ALTER TABLE `npc_trainer` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `npc_vendor`
---
-
-DROP TABLE IF EXISTS `npc_vendor`;
-CREATE TABLE `npc_vendor` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `item` mediumint(8) unsigned NOT NULL default '0',
- `maxcount` tinyint(3) unsigned NOT NULL default '0',
- `incrtime` int(10) unsigned NOT NULL default '0',
- `ExtendedCost` mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (`entry`,`item`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Npc System';
-
---
--- Dumping data for table `npc_vendor`
---
-
-LOCK TABLES `npc_vendor` WRITE;
-/*!40000 ALTER TABLE `npc_vendor` DISABLE KEYS */;
-/*!40000 ALTER TABLE `npc_vendor` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `page_text`
---
-
-DROP TABLE IF EXISTS `page_text`;
-CREATE TABLE `page_text` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `text` longtext NOT NULL,
- `next_page` mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Item System';
-
---
--- Dumping data for table `page_text`
---
-
-LOCK TABLES `page_text` WRITE;
-/*!40000 ALTER TABLE `page_text` DISABLE KEYS */;
-/*!40000 ALTER TABLE `page_text` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `pet_levelstats`
---
-
-DROP TABLE IF EXISTS `pet_levelstats`;
-CREATE TABLE `pet_levelstats` (
- `creature_entry` mediumint(8) unsigned NOT NULL,
- `level` tinyint(3) unsigned NOT NULL,
- `hp` smallint(5) unsigned NOT NULL,
- `mana` smallint(5) unsigned NOT NULL,
- `armor` int(10) unsigned NOT NULL default '0',
- `str` smallint(5) unsigned NOT NULL,
- `agi` smallint(5) unsigned NOT NULL,
- `sta` smallint(5) unsigned NOT NULL,
- `inte` smallint(5) unsigned NOT NULL,
- `spi` smallint(5) unsigned NOT NULL,
- PRIMARY KEY (`creature_entry`,`level`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0 COMMENT='Stores pet levels stats.';
-
---
--- Dumping data for table `pet_levelstats`
---
-
-LOCK TABLES `pet_levelstats` WRITE;
-/*!40000 ALTER TABLE `pet_levelstats` DISABLE KEYS */;
-/*!40000 ALTER TABLE `pet_levelstats` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `pet_name_generation`
---
-
-DROP TABLE IF EXISTS `pet_name_generation`;
-CREATE TABLE `pet_name_generation` (
- `id` mediumint(8) unsigned NOT NULL auto_increment,
- `word` tinytext NOT NULL,
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `half` tinyint(4) NOT NULL default '0',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `pet_name_generation`
---
-
-LOCK TABLES `pet_name_generation` WRITE;
-/*!40000 ALTER TABLE `pet_name_generation` DISABLE KEYS */;
-/*!40000 ALTER TABLE `pet_name_generation` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `petcreateinfo_spell`
---
-
-DROP TABLE IF EXISTS `petcreateinfo_spell`;
-CREATE TABLE `petcreateinfo_spell` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `Spell1` mediumint(8) unsigned NOT NULL default '0',
- `Spell2` mediumint(8) unsigned NOT NULL default '0',
- `Spell3` mediumint(8) unsigned NOT NULL default '0',
- `Spell4` mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Pet Create Spells';
-
---
--- Dumping data for table `petcreateinfo_spell`
---
-
-LOCK TABLES `petcreateinfo_spell` WRITE;
-/*!40000 ALTER TABLE `petcreateinfo_spell` DISABLE KEYS */;
-/*!40000 ALTER TABLE `petcreateinfo_spell` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `pickpocketing_loot_template`
---
-
-DROP TABLE IF EXISTS `pickpocketing_loot_template`;
-CREATE TABLE `pickpocketing_loot_template` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `item` mediumint(8) unsigned NOT NULL default '0',
- `ChanceOrQuestChance` float NOT NULL default '100',
- `groupid` tinyint(3) unsigned NOT NULL default '0',
- `mincountOrRef` mediumint(9) NOT NULL default '1',
- `maxcount` tinyint(3) unsigned NOT NULL default '1',
- `lootcondition` tinyint(3) unsigned NOT NULL default '0',
- `condition_value1` mediumint(8) unsigned NOT NULL default '0',
- `condition_value2` mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (`entry`,`item`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Loot System';
-
---
--- Dumping data for table `pickpocketing_loot_template`
---
-
-LOCK TABLES `pickpocketing_loot_template` WRITE;
-/*!40000 ALTER TABLE `pickpocketing_loot_template` DISABLE KEYS */;
-/*!40000 ALTER TABLE `pickpocketing_loot_template` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `player_classlevelstats`
---
-
-DROP TABLE IF EXISTS `player_classlevelstats`;
-CREATE TABLE `player_classlevelstats` (
- `class` tinyint(3) unsigned NOT NULL,
- `level` tinyint(3) unsigned NOT NULL,
- `basehp` smallint(5) unsigned NOT NULL,
- `basemana` smallint(5) unsigned NOT NULL,
- PRIMARY KEY (`class`,`level`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0 COMMENT='Stores levels stats.';
-
---
--- Dumping data for table `player_classlevelstats`
---
-
-LOCK TABLES `player_classlevelstats` WRITE;
-/*!40000 ALTER TABLE `player_classlevelstats` DISABLE KEYS */;
-/*!40000 ALTER TABLE `player_classlevelstats` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `player_levelstats`
---
-
-DROP TABLE IF EXISTS `player_levelstats`;
-CREATE TABLE `player_levelstats` (
- `race` tinyint(3) unsigned NOT NULL,
- `class` tinyint(3) unsigned NOT NULL,
- `level` tinyint(3) unsigned NOT NULL,
- `str` tinyint(3) unsigned NOT NULL,
- `agi` tinyint(3) unsigned NOT NULL,
- `sta` tinyint(3) unsigned NOT NULL,
- `inte` tinyint(3) unsigned NOT NULL,
- `spi` tinyint(3) unsigned NOT NULL,
- PRIMARY KEY (`race`,`class`,`level`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0 COMMENT='Stores levels stats.';
-
---
--- Dumping data for table `player_levelstats`
---
-
-LOCK TABLES `player_levelstats` WRITE;
-/*!40000 ALTER TABLE `player_levelstats` DISABLE KEYS */;
-/*!40000 ALTER TABLE `player_levelstats` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `playercreateinfo`
---
-
-DROP TABLE IF EXISTS `playercreateinfo`;
-CREATE TABLE `playercreateinfo` (
- `race` tinyint(3) unsigned NOT NULL default '0',
- `class` tinyint(3) unsigned NOT NULL default '0',
- `map` smallint(5) unsigned NOT NULL default '0',
- `zone` mediumint(8) unsigned NOT NULL default '0',
- `position_x` float NOT NULL default '0',
- `position_y` float NOT NULL default '0',
- `position_z` float NOT NULL default '0',
- PRIMARY KEY (`race`,`class`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `playercreateinfo`
---
-
-LOCK TABLES `playercreateinfo` WRITE;
-/*!40000 ALTER TABLE `playercreateinfo` DISABLE KEYS */;
-/*!40000 ALTER TABLE `playercreateinfo` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `playercreateinfo_action`
---
-
-DROP TABLE IF EXISTS `playercreateinfo_action`;
-CREATE TABLE `playercreateinfo_action` (
- `race` tinyint(3) unsigned NOT NULL default '0',
- `class` tinyint(3) unsigned NOT NULL default '0',
- `button` smallint(5) unsigned NOT NULL default '0',
- `action` smallint(5) unsigned NOT NULL default '0',
- `type` smallint(5) unsigned NOT NULL default '0',
- `misc` smallint(5) unsigned NOT NULL default '0',
- KEY `playercreateinfo_race_class_index` (`race`,`class`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `playercreateinfo_action`
---
-
-LOCK TABLES `playercreateinfo_action` WRITE;
-/*!40000 ALTER TABLE `playercreateinfo_action` DISABLE KEYS */;
-/*!40000 ALTER TABLE `playercreateinfo_action` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `playercreateinfo_item`
---
-
-DROP TABLE IF EXISTS `playercreateinfo_item`;
-CREATE TABLE `playercreateinfo_item` (
- `race` tinyint(3) unsigned NOT NULL default '0',
- `class` tinyint(3) unsigned NOT NULL default '0',
- `itemid` mediumint(8) unsigned NOT NULL default '0',
- `amount` tinyint(3) unsigned NOT NULL default '1',
- KEY `playercreateinfo_race_class_index` (`race`,`class`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `playercreateinfo_item`
---
-
-LOCK TABLES `playercreateinfo_item` WRITE;
-/*!40000 ALTER TABLE `playercreateinfo_item` DISABLE KEYS */;
-/*!40000 ALTER TABLE `playercreateinfo_item` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `playercreateinfo_spell`
---
-
-DROP TABLE IF EXISTS `playercreateinfo_spell`;
-CREATE TABLE `playercreateinfo_spell` (
- `race` tinyint(3) unsigned NOT NULL default '0',
- `class` tinyint(3) unsigned NOT NULL default '0',
- `Spell` mediumint(8) unsigned NOT NULL default '0',
- `Note` varchar(255) default NULL,
- `Active` tinyint(3) unsigned NOT NULL default '1',
- PRIMARY KEY (`race`,`class`,`Spell`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `playercreateinfo_spell`
---
-
-LOCK TABLES `playercreateinfo_spell` WRITE;
-/*!40000 ALTER TABLE `playercreateinfo_spell` DISABLE KEYS */;
-/*!40000 ALTER TABLE `playercreateinfo_spell` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `playercreateinfo_spell_custom`
---
-
-DROP TABLE IF EXISTS `playercreateinfo_spell_custom`;
-CREATE TABLE `playercreateinfo_spell_custom` (
- `race` tinyint(3) unsigned NOT NULL default '0',
- `class` tinyint(3) unsigned NOT NULL default '0',
- `Spell` mediumint(8) unsigned NOT NULL default '0',
- `Note` varchar(255) default NULL,
- `Active` tinyint(3) unsigned NOT NULL default '1',
- PRIMARY KEY (`race`,`class`,`Spell`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `playercreateinfo_spell_custom`
---
-
-LOCK TABLES `playercreateinfo_spell_custom` WRITE;
-/*!40000 ALTER TABLE `playercreateinfo_spell_custom` DISABLE KEYS */;
-/*!40000 ALTER TABLE `playercreateinfo_spell_custom` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `prospecting_loot_template`
---
-
-DROP TABLE IF EXISTS `prospecting_loot_template`;
-CREATE TABLE `prospecting_loot_template` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `item` mediumint(8) unsigned NOT NULL default '0',
- `ChanceOrQuestChance` float NOT NULL default '100',
- `groupid` tinyint(3) unsigned NOT NULL default '0',
- `mincountOrRef` mediumint(9) NOT NULL default '1',
- `maxcount` tinyint(3) unsigned NOT NULL default '1',
- `lootcondition` tinyint(3) unsigned NOT NULL default '0',
- `condition_value1` mediumint(8) unsigned NOT NULL default '0',
- `condition_value2` mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (`entry`,`item`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Loot System';
-
---
--- Dumping data for table `prospecting_loot_template`
---
-
-LOCK TABLES `prospecting_loot_template` WRITE;
-/*!40000 ALTER TABLE `prospecting_loot_template` DISABLE KEYS */;
-/*!40000 ALTER TABLE `prospecting_loot_template` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `quest_end_scripts`
---
-
-DROP TABLE IF EXISTS `quest_end_scripts`;
-CREATE TABLE `quest_end_scripts` (
- `id` mediumint(8) unsigned NOT NULL default '0',
- `delay` int(10) unsigned NOT NULL default '0',
- `command` mediumint(8) unsigned NOT NULL default '0',
- `datalong` mediumint(8) unsigned NOT NULL default '0',
- `datalong2` int(10) unsigned NOT NULL default '0',
- `datatext` text NOT NULL,
- `x` float NOT NULL default '0',
- `y` float NOT NULL default '0',
- `z` float NOT NULL default '0',
- `o` float NOT NULL default '0'
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `quest_end_scripts`
---
-
-LOCK TABLES `quest_end_scripts` WRITE;
-/*!40000 ALTER TABLE `quest_end_scripts` DISABLE KEYS */;
-/*!40000 ALTER TABLE `quest_end_scripts` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `quest_mail_loot_template`
---
-
-DROP TABLE IF EXISTS `quest_mail_loot_template`;
-CREATE TABLE `quest_mail_loot_template` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `item` mediumint(8) unsigned NOT NULL default '0',
- `ChanceOrQuestChance` float NOT NULL default '100',
- `groupid` tinyint(3) unsigned NOT NULL default '0',
- `mincountOrRef` mediumint(9) NOT NULL default '1',
- `maxcount` tinyint(3) unsigned NOT NULL default '1',
- `lootcondition` tinyint(3) unsigned NOT NULL default '0',
- `condition_value1` mediumint(8) unsigned NOT NULL default '0',
- `condition_value2` mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (`entry`,`item`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Loot System';
-
---
--- Dumping data for table `quest_mail_loot_template`
---
-
-LOCK TABLES `quest_mail_loot_template` WRITE;
-/*!40000 ALTER TABLE `quest_mail_loot_template` DISABLE KEYS */;
-/*!40000 ALTER TABLE `quest_mail_loot_template` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `quest_start_scripts`
---
-
-DROP TABLE IF EXISTS `quest_start_scripts`;
-CREATE TABLE `quest_start_scripts` (
- `id` mediumint(8) unsigned NOT NULL default '0',
- `delay` int(10) unsigned NOT NULL default '0',
- `command` mediumint(8) unsigned NOT NULL default '0',
- `datalong` mediumint(8) unsigned NOT NULL default '0',
- `datalong2` int(10) unsigned NOT NULL default '0',
- `datatext` text NOT NULL,
- `x` float NOT NULL default '0',
- `y` float NOT NULL default '0',
- `z` float NOT NULL default '0',
- `o` float NOT NULL default '0'
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `quest_start_scripts`
---
-
-LOCK TABLES `quest_start_scripts` WRITE;
-/*!40000 ALTER TABLE `quest_start_scripts` DISABLE KEYS */;
-/*!40000 ALTER TABLE `quest_start_scripts` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `quest_template`
---
-
-DROP TABLE IF EXISTS `quest_template`;
-CREATE TABLE `quest_template` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `Method` tinyint(3) unsigned NOT NULL default '2',
- `ZoneOrSort` smallint(6) NOT NULL default '0',
- `SkillOrClass` smallint(6) NOT NULL default '0',
- `MinLevel` tinyint(3) unsigned NOT NULL default '0',
- `QuestLevel` tinyint(3) unsigned NOT NULL default '0',
- `Type` smallint(5) unsigned NOT NULL default '0',
- `RequiredRaces` smallint(5) unsigned NOT NULL default '0',
- `RequiredSkillValue` smallint(5) unsigned NOT NULL default '0',
- `RepObjectiveFaction` smallint(5) unsigned NOT NULL default '0',
- `RepObjectiveValue` mediumint(9) NOT NULL default '0',
- `RequiredMinRepFaction` smallint(5) unsigned NOT NULL default '0',
- `RequiredMinRepValue` mediumint(9) NOT NULL default '0',
- `RequiredMaxRepFaction` smallint(5) unsigned NOT NULL default '0',
- `RequiredMaxRepValue` mediumint(9) NOT NULL default '0',
- `SuggestedPlayers` tinyint(3) unsigned NOT NULL default '0',
- `LimitTime` int(10) unsigned NOT NULL default '0',
- `QuestFlags` smallint(5) unsigned NOT NULL default '0',
- `SpecialFlags` tinyint(3) unsigned NOT NULL default '0',
- `CharTitleId` tinyint(3) unsigned NOT NULL default '0',
- `PrevQuestId` mediumint(9) NOT NULL default '0',
- `NextQuestId` mediumint(9) NOT NULL default '0',
- `ExclusiveGroup` mediumint(9) NOT NULL default '0',
- `NextQuestInChain` mediumint(8) unsigned NOT NULL default '0',
- `SrcItemId` mediumint(8) unsigned NOT NULL default '0',
- `SrcItemCount` tinyint(3) unsigned NOT NULL default '0',
- `SrcSpell` mediumint(8) unsigned NOT NULL default '0',
- `Title` text,
- `Details` text,
- `Objectives` text,
- `OfferRewardText` text,
- `RequestItemsText` text,
- `EndText` text,
- `ObjectiveText1` text,
- `ObjectiveText2` text,
- `ObjectiveText3` text,
- `ObjectiveText4` text,
- `ReqItemId1` mediumint(8) unsigned NOT NULL default '0',
- `ReqItemId2` mediumint(8) unsigned NOT NULL default '0',
- `ReqItemId3` mediumint(8) unsigned NOT NULL default '0',
- `ReqItemId4` mediumint(8) unsigned NOT NULL default '0',
- `ReqItemCount1` smallint(5) unsigned NOT NULL default '0',
- `ReqItemCount2` smallint(5) unsigned NOT NULL default '0',
- `ReqItemCount3` smallint(5) unsigned NOT NULL default '0',
- `ReqItemCount4` smallint(5) unsigned NOT NULL default '0',
- `ReqSourceId1` mediumint(8) unsigned NOT NULL default '0',
- `ReqSourceId2` mediumint(8) unsigned NOT NULL default '0',
- `ReqSourceId3` mediumint(8) unsigned NOT NULL default '0',
- `ReqSourceId4` mediumint(8) unsigned NOT NULL default '0',
- `ReqSourceCount1` smallint(5) unsigned NOT NULL default '0',
- `ReqSourceCount2` smallint(5) unsigned NOT NULL default '0',
- `ReqSourceCount3` smallint(5) unsigned NOT NULL default '0',
- `ReqSourceCount4` smallint(5) unsigned NOT NULL default '0',
- `ReqSourceRef1` tinyint(3) unsigned NOT NULL default '0',
- `ReqSourceRef2` tinyint(3) unsigned NOT NULL default '0',
- `ReqSourceRef3` tinyint(3) unsigned NOT NULL default '0',
- `ReqSourceRef4` tinyint(3) unsigned NOT NULL default '0',
- `ReqCreatureOrGOId1` mediumint(9) NOT NULL default '0',
- `ReqCreatureOrGOId2` mediumint(9) NOT NULL default '0',
- `ReqCreatureOrGOId3` mediumint(9) NOT NULL default '0',
- `ReqCreatureOrGOId4` mediumint(9) NOT NULL default '0',
- `ReqCreatureOrGOCount1` smallint(5) unsigned NOT NULL default '0',
- `ReqCreatureOrGOCount2` smallint(5) unsigned NOT NULL default '0',
- `ReqCreatureOrGOCount3` smallint(5) unsigned NOT NULL default '0',
- `ReqCreatureOrGOCount4` smallint(5) unsigned NOT NULL default '0',
- `ReqSpellCast1` mediumint(8) unsigned NOT NULL default '0',
- `ReqSpellCast2` mediumint(8) unsigned NOT NULL default '0',
- `ReqSpellCast3` mediumint(8) unsigned NOT NULL default '0',
- `ReqSpellCast4` mediumint(8) unsigned NOT NULL default '0',
- `RewChoiceItemId1` mediumint(8) unsigned NOT NULL default '0',
- `RewChoiceItemId2` mediumint(8) unsigned NOT NULL default '0',
- `RewChoiceItemId3` mediumint(8) unsigned NOT NULL default '0',
- `RewChoiceItemId4` mediumint(8) unsigned NOT NULL default '0',
- `RewChoiceItemId5` mediumint(8) unsigned NOT NULL default '0',
- `RewChoiceItemId6` mediumint(8) unsigned NOT NULL default '0',
- `RewChoiceItemCount1` smallint(5) unsigned NOT NULL default '0',
- `RewChoiceItemCount2` smallint(5) unsigned NOT NULL default '0',
- `RewChoiceItemCount3` smallint(5) unsigned NOT NULL default '0',
- `RewChoiceItemCount4` smallint(5) unsigned NOT NULL default '0',
- `RewChoiceItemCount5` smallint(5) unsigned NOT NULL default '0',
- `RewChoiceItemCount6` smallint(5) unsigned NOT NULL default '0',
- `RewItemId1` mediumint(8) unsigned NOT NULL default '0',
- `RewItemId2` mediumint(8) unsigned NOT NULL default '0',
- `RewItemId3` mediumint(8) unsigned NOT NULL default '0',
- `RewItemId4` mediumint(8) unsigned NOT NULL default '0',
- `RewItemCount1` smallint(5) unsigned NOT NULL default '0',
- `RewItemCount2` smallint(5) unsigned NOT NULL default '0',
- `RewItemCount3` smallint(5) unsigned NOT NULL default '0',
- `RewItemCount4` smallint(5) unsigned NOT NULL default '0',
- `RewRepFaction1` smallint(5) unsigned NOT NULL default '0' COMMENT 'faction id from Faction.dbc in this case',
- `RewRepFaction2` smallint(5) unsigned NOT NULL default '0' COMMENT 'faction id from Faction.dbc in this case',
- `RewRepFaction3` smallint(5) unsigned NOT NULL default '0' COMMENT 'faction id from Faction.dbc in this case',
- `RewRepFaction4` smallint(5) unsigned NOT NULL default '0' COMMENT 'faction id from Faction.dbc in this case',
- `RewRepFaction5` smallint(5) unsigned NOT NULL default '0' COMMENT 'faction id from Faction.dbc in this case',
- `RewRepValue1` mediumint(9) NOT NULL default '0',
- `RewRepValue2` mediumint(9) NOT NULL default '0',
- `RewRepValue3` mediumint(9) NOT NULL default '0',
- `RewRepValue4` mediumint(9) NOT NULL default '0',
- `RewRepValue5` mediumint(9) NOT NULL default '0',
- `RewHonorableKills` mediumint(9) unsigned NOT NULL default '0',
- `RewOrReqMoney` int(11) NOT NULL default '0',
- `RewMoneyMaxLevel` int(10) unsigned NOT NULL default '0',
- `RewSpell` mediumint(8) unsigned NOT NULL default '0',
- `RewSpellCast` mediumint(8) unsigned NOT NULL default '0',
- `RewMailTemplateId` mediumint(8) unsigned NOT NULL default '0',
- `RewMailDelaySecs` int(11) unsigned NOT NULL default '0',
- `PointMapId` smallint(5) unsigned NOT NULL default '0',
- `PointX` float NOT NULL default '0',
- `PointY` float NOT NULL default '0',
- `PointOpt` mediumint(8) unsigned NOT NULL default '0',
- `DetailsEmote1` smallint(5) unsigned NOT NULL default '0',
- `DetailsEmote2` smallint(5) unsigned NOT NULL default '0',
- `DetailsEmote3` smallint(5) unsigned NOT NULL default '0',
- `DetailsEmote4` smallint(5) unsigned NOT NULL default '0',
- `IncompleteEmote` smallint(5) unsigned NOT NULL default '0',
- `CompleteEmote` smallint(5) unsigned NOT NULL default '0',
- `OfferRewardEmote1` smallint(5) unsigned NOT NULL default '0',
- `OfferRewardEmote2` smallint(5) unsigned NOT NULL default '0',
- `OfferRewardEmote3` smallint(5) unsigned NOT NULL default '0',
- `OfferRewardEmote4` smallint(5) unsigned NOT NULL default '0',
- `StartScript` mediumint(8) unsigned NOT NULL default '0',
- `CompleteScript` mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Quest System';
-
---
--- Dumping data for table `quest_template`
---
-
-LOCK TABLES `quest_template` WRITE;
-/*!40000 ALTER TABLE `quest_template` DISABLE KEYS */;
-/*!40000 ALTER TABLE `quest_template` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `reference_loot_template`
---
-
-DROP TABLE IF EXISTS `reference_loot_template`;
-CREATE TABLE `reference_loot_template` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `item` mediumint(8) unsigned NOT NULL default '0',
- `ChanceOrQuestChance` float NOT NULL default '100',
- `groupid` tinyint(3) unsigned NOT NULL default '0',
- `mincountOrRef` mediumint(9) NOT NULL default '1',
- `maxcount` tinyint(3) unsigned NOT NULL default '1',
- `lootcondition` tinyint(3) unsigned NOT NULL default '0',
- `condition_value1` mediumint(8) unsigned NOT NULL default '0',
- `condition_value2` mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (`entry`,`item`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Loot System';
-
---
--- Dumping data for table `reference_loot_template`
---
-
-LOCK TABLES `reference_loot_template` WRITE;
-/*!40000 ALTER TABLE `reference_loot_template` DISABLE KEYS */;
-/*!40000 ALTER TABLE `reference_loot_template` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `reserved_name`
---
-
-DROP TABLE IF EXISTS `reserved_name`;
-CREATE TABLE `reserved_name` (
- `name` varchar(12) NOT NULL default '',
- PRIMARY KEY (`name`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Player Reserved Names';
-
---
--- Dumping data for table `reserved_name`
---
-
-LOCK TABLES `reserved_name` WRITE;
-/*!40000 ALTER TABLE `reserved_name` DISABLE KEYS */;
-/*!40000 ALTER TABLE `reserved_name` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `script_db_version`
---
-
-DROP TABLE IF EXISTS `script_db_version`;
-CREATE TABLE `script_db_version` (
- `version` varchar(255) NOT NULL default '' COMMENT 'Database version string'
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `script_db_version`
---
-
-LOCK TABLES `script_db_version` WRITE;
-/*!40000 ALTER TABLE `script_db_version` DISABLE KEYS */;
-/*!40000 ALTER TABLE `script_db_version` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `script_texts`
---
-
-DROP TABLE IF EXISTS `script_texts`;
-CREATE TABLE `script_texts` (
- `entry` mediumint(8) NOT NULL,
- `content_default` text NOT NULL,
- `content_loc1` text,
- `content_loc2` text,
- `content_loc3` text,
- `content_loc4` text,
- `content_loc5` text,
- `content_loc6` text,
- `content_loc7` text,
- `content_loc8` text,
- `sound` tinyint(3) unsigned NOT NULL default '0',
- `type` tinyint(3) unsigned NOT NULL default '0',
- `language` tinyint(3) unsigned NOT NULL default '0',
- `comment` text,
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Script Texts';
-
---
--- Dumping data for table `script_texts`
---
-
-LOCK TABLES `script_texts` WRITE;
-/*!40000 ALTER TABLE `script_texts` DISABLE KEYS */;
-/*!40000 ALTER TABLE `script_texts` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `skill_discovery_template`
---
-
-DROP TABLE IF EXISTS `skill_discovery_template`;
-CREATE TABLE `skill_discovery_template` (
- `spellId` mediumint(8) unsigned NOT NULL default '0' COMMENT 'SpellId of the discoverable spell',
- `reqSpell` mediumint(8) unsigned NOT NULL default '0' COMMENT 'spell requirement',
- `chance` float NOT NULL default '0' COMMENT 'chance to discover',
- PRIMARY KEY (`spellId`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Skill Discovery System';
-
---
--- Dumping data for table `skill_discovery_template`
---
-
-LOCK TABLES `skill_discovery_template` WRITE;
-/*!40000 ALTER TABLE `skill_discovery_template` DISABLE KEYS */;
-/*!40000 ALTER TABLE `skill_discovery_template` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `skill_extra_item_template`
---
-
-DROP TABLE IF EXISTS `skill_extra_item_template`;
-CREATE TABLE `skill_extra_item_template` (
- `spellId` mediumint(8) unsigned NOT NULL default '0' COMMENT 'SpellId of the item creation spell',
- `requiredSpecialization` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Specialization spell id',
- `additionalCreateChance` float NOT NULL default '0' COMMENT 'chance to create add',
- `additionalMaxNum` tinyint(3) unsigned NOT NULL default '0' COMMENT 'max num of adds',
- PRIMARY KEY (`spellId`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Skill Specialization System';
-
---
--- Dumping data for table `skill_extra_item_template`
---
-
-LOCK TABLES `skill_extra_item_template` WRITE;
-/*!40000 ALTER TABLE `skill_extra_item_template` DISABLE KEYS */;
-/*!40000 ALTER TABLE `skill_extra_item_template` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `skill_fishing_base_level`
---
-
-DROP TABLE IF EXISTS `skill_fishing_base_level`;
-CREATE TABLE `skill_fishing_base_level` (
- `entry` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Area identifier',
- `skill` smallint(6) NOT NULL default '0' COMMENT 'Base skill level requirement',
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Fishing system';
-
---
--- Dumping data for table `skill_fishing_base_level`
---
-
-LOCK TABLES `skill_fishing_base_level` WRITE;
-/*!40000 ALTER TABLE `skill_fishing_base_level` DISABLE KEYS */;
-/*!40000 ALTER TABLE `skill_fishing_base_level` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `skinning_loot_template`
---
-
-DROP TABLE IF EXISTS `skinning_loot_template`;
-CREATE TABLE `skinning_loot_template` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `item` mediumint(8) unsigned NOT NULL default '0',
- `ChanceOrQuestChance` float NOT NULL default '100',
- `groupid` tinyint(3) unsigned NOT NULL default '0',
- `mincountOrRef` mediumint(9) NOT NULL default '1',
- `maxcount` tinyint(3) unsigned NOT NULL default '1',
- `lootcondition` tinyint(3) unsigned NOT NULL default '0',
- `condition_value1` mediumint(8) unsigned NOT NULL default '0',
- `condition_value2` mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (`entry`,`item`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Loot System';
-
---
--- Dumping data for table `skinning_loot_template`
---
-
-LOCK TABLES `skinning_loot_template` WRITE;
-/*!40000 ALTER TABLE `skinning_loot_template` DISABLE KEYS */;
-/*!40000 ALTER TABLE `skinning_loot_template` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `spell_affect`
---
-
-DROP TABLE IF EXISTS `spell_affect`;
-CREATE TABLE `spell_affect` (
- `entry` smallint(5) unsigned NOT NULL default '0',
- `effectId` tinyint(3) unsigned NOT NULL default '0',
- `SpellFamilyMask` bigint(20) unsigned NOT NULL default '0',
- PRIMARY KEY (`entry`,`effectId`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `spell_affect`
---
-
-LOCK TABLES `spell_affect` WRITE;
-/*!40000 ALTER TABLE `spell_affect` DISABLE KEYS */;
-/*!40000 ALTER TABLE `spell_affect` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `spell_chain`
---
-
-DROP TABLE IF EXISTS `spell_chain`;
-CREATE TABLE `spell_chain` (
- `spell_id` mediumint(9) NOT NULL default '0',
- `prev_spell` mediumint(9) NOT NULL default '0',
- `first_spell` mediumint(9) NOT NULL default '0',
- `rank` tinyint(4) NOT NULL default '0',
- `req_spell` mediumint(9) NOT NULL default '0',
- PRIMARY KEY (`spell_id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Spell Additinal Data';
-
---
--- Dumping data for table `spell_chain`
---
-
-LOCK TABLES `spell_chain` WRITE;
-/*!40000 ALTER TABLE `spell_chain` DISABLE KEYS */;
-/*!40000 ALTER TABLE `spell_chain` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `spell_disabled`
---
-
-DROP TABLE IF EXISTS `spell_disabled`;
-CREATE TABLE `spell_disabled` (
- `entry` int(11) unsigned NOT NULL default '0' COMMENT 'Spell entry',
- `disable_mask` int(8) unsigned NOT NULL default '0',
- `comment` varchar(64) NOT NULL default '',
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Disabled Spell System';
-
---
--- Dumping data for table `spell_disabled`
---
-
-LOCK TABLES `spell_disabled` WRITE;
-/*!40000 ALTER TABLE `spell_disabled` DISABLE KEYS */;
-/*!40000 ALTER TABLE `spell_disabled` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `spell_elixir`
---
-
-DROP TABLE IF EXISTS `spell_elixir`;
-CREATE TABLE `spell_elixir` (
- `entry` int(11) unsigned NOT NULL default '0' COMMENT 'SpellId of potion',
- `mask` tinyint(1) unsigned NOT NULL default '0' COMMENT 'Mask 0x1 battle 0x2 guardian 0x3 flask 0x7 unstable flasks 0xB shattrath flasks',
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Spell System';
-
---
--- Dumping data for table `spell_elixir`
---
-
-LOCK TABLES `spell_elixir` WRITE;
-/*!40000 ALTER TABLE `spell_elixir` DISABLE KEYS */;
-/*!40000 ALTER TABLE `spell_elixir` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `spell_learn_spell`
---
-
-DROP TABLE IF EXISTS `spell_learn_spell`;
-CREATE TABLE `spell_learn_spell` (
- `entry` smallint(5) unsigned NOT NULL default '0',
- `SpellID` smallint(5) unsigned NOT NULL default '0',
- PRIMARY KEY (`entry`,`SpellID`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Item System';
-
---
--- Dumping data for table `spell_learn_spell`
---
-
-LOCK TABLES `spell_learn_spell` WRITE;
-/*!40000 ALTER TABLE `spell_learn_spell` DISABLE KEYS */;
-/*!40000 ALTER TABLE `spell_learn_spell` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `spell_pet_auras`
---
-
-DROP TABLE IF EXISTS `spell_pet_auras`;
-CREATE TABLE `spell_pet_auras` (
- `spell` mediumint(8) unsigned NOT NULL COMMENT 'dummy spell id',
- `pet` mediumint(8) unsigned NOT NULL default '0' COMMENT 'pet id; 0 = all',
- `aura` mediumint(8) unsigned NOT NULL COMMENT 'pet aura id',
- PRIMARY KEY (`spell`,`pet`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-
---
--- Dumping data for table `spell_pet_auras`
---
-
-LOCK TABLES `spell_pet_auras` WRITE;
-/*!40000 ALTER TABLE `spell_pet_auras` DISABLE KEYS */;
-/*!40000 ALTER TABLE `spell_pet_auras` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `spell_proc_event`
---
-
-DROP TABLE IF EXISTS `spell_proc_event`;
-CREATE TABLE `spell_proc_event` (
- `entry` smallint(5) unsigned NOT NULL default '0',
- `SchoolMask` tinyint(4) NOT NULL default '0',
- `Category` smallint(6) NOT NULL default '0',
- `SkillID` smallint(6) NOT NULL default '0',
- `SpellFamilyName` smallint(5) unsigned NOT NULL default '0',
- `SpellFamilyMask` bigint(20) unsigned NOT NULL default '0',
- `procFlags` int(10) unsigned NOT NULL default '0',
- `ppmRate` float NOT NULL default '0',
- `cooldown` int(10) unsigned NOT NULL default '0',
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `spell_proc_event`
---
-
-LOCK TABLES `spell_proc_event` WRITE;
-/*!40000 ALTER TABLE `spell_proc_event` DISABLE KEYS */;
-/*!40000 ALTER TABLE `spell_proc_event` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `spell_script_target`
---
-
-DROP TABLE IF EXISTS `spell_script_target`;
-CREATE TABLE `spell_script_target` (
- `entry` mediumint(8) unsigned NOT NULL,
- `type` tinyint(3) unsigned NOT NULL default '0',
- `targetEntry` mediumint(8) unsigned NOT NULL default '0',
- UNIQUE KEY `entry_type_target` (`entry`,`type`,`targetEntry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Spell System';
-
---
--- Dumping data for table `spell_script_target`
---
-
-LOCK TABLES `spell_script_target` WRITE;
-/*!40000 ALTER TABLE `spell_script_target` DISABLE KEYS */;
-/*!40000 ALTER TABLE `spell_script_target` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `spell_scripts`
---
-
-DROP TABLE IF EXISTS `spell_scripts`;
-CREATE TABLE `spell_scripts` (
- `id` mediumint(8) unsigned NOT NULL default '0',
- `delay` int(10) unsigned NOT NULL default '0',
- `command` mediumint(8) unsigned NOT NULL default '0',
- `datalong` mediumint(8) unsigned NOT NULL default '0',
- `datalong2` int(10) unsigned NOT NULL default '0',
- `datatext` text character set latin1 NOT NULL,
- `x` float NOT NULL default '0',
- `y` float NOT NULL default '0',
- `z` float NOT NULL default '0',
- `o` float NOT NULL default '0'
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `spell_scripts`
---
-
-LOCK TABLES `spell_scripts` WRITE;
-/*!40000 ALTER TABLE `spell_scripts` DISABLE KEYS */;
-/*!40000 ALTER TABLE `spell_scripts` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `spell_target_position`
---
-
-DROP TABLE IF EXISTS `spell_target_position`;
-CREATE TABLE `spell_target_position` (
- `id` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Identifier',
- `target_map` smallint(5) unsigned NOT NULL default '0',
- `target_position_x` float NOT NULL default '0',
- `target_position_y` float NOT NULL default '0',
- `target_position_z` float NOT NULL default '0',
- `target_orientation` float NOT NULL default '0',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Spell System';
-
---
--- Dumping data for table `spell_target_position`
---
-
-LOCK TABLES `spell_target_position` WRITE;
-/*!40000 ALTER TABLE `spell_target_position` DISABLE KEYS */;
-/*!40000 ALTER TABLE `spell_target_position` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `spell_threat`
---
-
-DROP TABLE IF EXISTS `spell_threat`;
-CREATE TABLE `spell_threat` (
- `entry` mediumint(8) unsigned NOT NULL,
- `Threat` smallint(6) NOT NULL,
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED;
-
---
--- Dumping data for table `spell_threat`
---
-
-LOCK TABLES `spell_threat` WRITE;
-/*!40000 ALTER TABLE `spell_threat` DISABLE KEYS */;
-/*!40000 ALTER TABLE `spell_threat` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `transports`
---
-
-DROP TABLE IF EXISTS `transports`;
-CREATE TABLE `transports` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `name` text,
- `period` mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Transports';
-
---
--- Dumping data for table `transports`
---
-
-LOCK TABLES `transports` WRITE;
-/*!40000 ALTER TABLE `transports` DISABLE KEYS */;
-/*!40000 ALTER TABLE `transports` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `trinity_string`
---
-
-DROP TABLE IF EXISTS `trinity_string`;
-CREATE TABLE `trinity_string` (
- `entry` mediumint(8) unsigned NOT NULL default '0',
- `content_default` text NOT NULL,
- `content_loc1` text,
- `content_loc2` text,
- `content_loc3` text,
- `content_loc4` text,
- `content_loc5` text,
- `content_loc6` text,
- `content_loc7` text,
- `content_loc8` text,
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `trinity_string`
---
-
-LOCK TABLES `trinity_string` WRITE;
-/*!40000 ALTER TABLE `trinity_string` DISABLE KEYS */;
-/*!40000 ALTER TABLE `trinity_string` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `uptime`
---
-
-DROP TABLE IF EXISTS `uptime`;
-CREATE TABLE `uptime` (
- `starttime` bigint(20) unsigned NOT NULL default '0',
- `startstring` varchar(64) NOT NULL default '',
- `uptime` bigint(20) unsigned NOT NULL default '0',
- `maxplayers` smallint(5) unsigned NOT NULL default '0',
- PRIMARY KEY (`starttime`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Uptime system';
-
---
--- Dumping data for table `uptime`
---
-
-LOCK TABLES `uptime` WRITE;
-/*!40000 ALTER TABLE `uptime` DISABLE KEYS */;
-/*!40000 ALTER TABLE `uptime` ENABLE KEYS */;
-UNLOCK TABLES;
-/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
-
-/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
-/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
-/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
-/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
-/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
-/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
-/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-
--- Dump completed on 2008-10-14 13:23:35
+-- MySQL dump 10.11 +-- +-- Host: localhost Database: world +-- ------------------------------------------------------ +-- Server version 5.0.34-log + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `areatrigger_involvedrelation` +-- + +DROP TABLE IF EXISTS `areatrigger_involvedrelation`; +CREATE TABLE `areatrigger_involvedrelation` ( + `id` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Identifier', + `quest` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Quest Identifier', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Trigger System'; + +-- +-- Dumping data for table `areatrigger_involvedrelation` +-- + +LOCK TABLES `areatrigger_involvedrelation` WRITE; +/*!40000 ALTER TABLE `areatrigger_involvedrelation` DISABLE KEYS */; +/*!40000 ALTER TABLE `areatrigger_involvedrelation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `areatrigger_scripts` +-- + +DROP TABLE IF EXISTS `areatrigger_scripts`; +CREATE TABLE `areatrigger_scripts` ( + `entry` mediumint(8) NOT NULL, + `ScriptName` char(64) NOT NULL, + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `areatrigger_scripts` +-- + +LOCK TABLES `areatrigger_scripts` WRITE; +/*!40000 ALTER TABLE `areatrigger_scripts` DISABLE KEYS */; +/*!40000 ALTER TABLE `areatrigger_scripts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `areatrigger_tavern` +-- + +DROP TABLE IF EXISTS `areatrigger_tavern`; +CREATE TABLE `areatrigger_tavern` ( + `id` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Identifier', + `name` text, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Trigger System'; + +-- +-- Dumping data for table `areatrigger_tavern` +-- + +LOCK TABLES `areatrigger_tavern` WRITE; +/*!40000 ALTER TABLE `areatrigger_tavern` DISABLE KEYS */; +/*!40000 ALTER TABLE `areatrigger_tavern` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `areatrigger_teleport` +-- + +DROP TABLE IF EXISTS `areatrigger_teleport`; +CREATE TABLE `areatrigger_teleport` ( + `id` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Identifier', + `name` text, + `required_level` tinyint(3) unsigned NOT NULL default '0', + `required_item` mediumint(8) unsigned NOT NULL default '0', + `required_item2` mediumint(8) unsigned NOT NULL default '0', + `heroic_key` mediumint(8) unsigned NOT NULL default '0', + `heroic_key2` mediumint(8) unsigned NOT NULL default '0', + `required_quest_done` int(11) unsigned NOT NULL default '0', + `required_failed_text` text, + `target_map` smallint(5) unsigned NOT NULL default '0', + `target_position_x` float NOT NULL default '0', + `target_position_y` float NOT NULL default '0', + `target_position_z` float NOT NULL default '0', + `target_orientation` float NOT NULL default '0', + PRIMARY KEY (`id`), + FULLTEXT KEY `name` (`name`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Trigger System'; + +-- +-- Dumping data for table `areatrigger_teleport` +-- + +LOCK TABLES `areatrigger_teleport` WRITE; +/*!40000 ALTER TABLE `areatrigger_teleport` DISABLE KEYS */; +/*!40000 ALTER TABLE `areatrigger_teleport` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `battleground_template` +-- + +DROP TABLE IF EXISTS `battleground_template`; +CREATE TABLE `battleground_template` ( + `id` mediumint(8) unsigned NOT NULL, + `MinPlayersPerTeam` smallint(5) unsigned NOT NULL default '0', + `MaxPlayersPerTeam` smallint(5) unsigned NOT NULL default '0', + `MinLvl` tinyint(3) unsigned NOT NULL default '0', + `MaxLvl` tinyint(3) unsigned NOT NULL default '0', + `AllianceStartLoc` mediumint(8) unsigned NOT NULL, + `AllianceStartO` float NOT NULL, + `HordeStartLoc` mediumint(8) unsigned NOT NULL, + `HordeStartO` float NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `battleground_template` +-- + +LOCK TABLES `battleground_template` WRITE; +/*!40000 ALTER TABLE `battleground_template` DISABLE KEYS */; +/*!40000 ALTER TABLE `battleground_template` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `battlemaster_entry` +-- + +DROP TABLE IF EXISTS `battlemaster_entry`; +CREATE TABLE `battlemaster_entry` ( + `entry` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Entry of a creature', + `bg_template` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Battleground template id', + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `battlemaster_entry` +-- + +LOCK TABLES `battlemaster_entry` WRITE; +/*!40000 ALTER TABLE `battlemaster_entry` DISABLE KEYS */; +/*!40000 ALTER TABLE `battlemaster_entry` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `command` +-- + +DROP TABLE IF EXISTS `command`; +CREATE TABLE `command` ( + `name` varchar(50) NOT NULL default '', + `security` tinyint(3) unsigned NOT NULL default '0', + `help` longtext, + PRIMARY KEY (`name`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Chat System'; + +-- +-- Dumping data for table `command` +-- + +LOCK TABLES `command` WRITE; +/*!40000 ALTER TABLE `command` DISABLE KEYS */; +/*!40000 ALTER TABLE `command` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `creature` +-- + +DROP TABLE IF EXISTS `creature`; +CREATE TABLE `creature` ( + `guid` int(10) unsigned NOT NULL auto_increment COMMENT 'Global Unique Identifier', + `id` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Creature Identifier', + `map` smallint(5) unsigned NOT NULL default '0' COMMENT 'Map Identifier', + `spawnMask` tinyint(3) unsigned NOT NULL default '1', + `modelid` mediumint(8) unsigned NOT NULL default '0', + `equipment_id` mediumint(9) NOT NULL default '0', + `position_x` float NOT NULL default '0', + `position_y` float NOT NULL default '0', + `position_z` float NOT NULL default '0', + `orientation` float NOT NULL default '0', + `spawntimesecs` int(10) unsigned NOT NULL default '120', + `spawndist` float NOT NULL default '5', + `currentwaypoint` mediumint(8) unsigned NOT NULL default '0', + `curhealth` int(10) unsigned NOT NULL default '1', + `curmana` int(10) unsigned NOT NULL default '0', + `DeathState` tinyint(3) unsigned NOT NULL default '0', + `MovementType` tinyint(3) unsigned NOT NULL default '0', + PRIMARY KEY (`guid`), + KEY `idx_map` (`map`), + KEY `idx_id` (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Creature System'; + +-- +-- Dumping data for table `creature` +-- + +LOCK TABLES `creature` WRITE; +/*!40000 ALTER TABLE `creature` DISABLE KEYS */; +/*!40000 ALTER TABLE `creature` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `creature_addon` +-- + +DROP TABLE IF EXISTS `creature_addon`; +CREATE TABLE `creature_addon` ( + `guid` int(10) unsigned NOT NULL default '0', + `path_id` int(11) unsigned NOT NULL default '0', + `mount` mediumint(8) unsigned NOT NULL default '0', + `bytes0` int(10) unsigned NOT NULL default '0', + `bytes1` int(10) unsigned NOT NULL default '0', + `bytes2` int(10) unsigned NOT NULL default '0', + `emote` int(10) unsigned NOT NULL default '0', + `moveflags` int(10) unsigned NOT NULL default '0', + `auras` text, + PRIMARY KEY (`guid`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1; + +-- +-- Dumping data for table `creature_addon` +-- + +LOCK TABLES `creature_addon` WRITE; +/*!40000 ALTER TABLE `creature_addon` DISABLE KEYS */; +/*!40000 ALTER TABLE `creature_addon` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `creature_equip_template` +-- + +DROP TABLE IF EXISTS `creature_equip_template`; +CREATE TABLE `creature_equip_template` ( + `entry` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Unique entry', + `equipmodel1` mediumint(8) unsigned NOT NULL default '0', + `equipmodel2` mediumint(8) unsigned NOT NULL default '0', + `equipmodel3` mediumint(8) unsigned NOT NULL default '0', + `equipinfo1` int(10) unsigned NOT NULL default '0', + `equipinfo2` int(10) unsigned NOT NULL default '0', + `equipinfo3` int(10) unsigned NOT NULL default '0', + `equipslot1` int(11) NOT NULL default '0', + `equipslot2` int(11) NOT NULL default '0', + `equipslot3` int(11) NOT NULL default '0', + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Creature System (Equipment)'; + +-- +-- Dumping data for table `creature_equip_template` +-- + +LOCK TABLES `creature_equip_template` WRITE; +/*!40000 ALTER TABLE `creature_equip_template` DISABLE KEYS */; +/*!40000 ALTER TABLE `creature_equip_template` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `creature_involvedrelation` +-- + +DROP TABLE IF EXISTS `creature_involvedrelation`; +CREATE TABLE `creature_involvedrelation` ( + `id` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Identifier', + `quest` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Quest Identifier', + PRIMARY KEY (`id`,`quest`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Creature System'; + +-- +-- Dumping data for table `creature_involvedrelation` +-- + +LOCK TABLES `creature_involvedrelation` WRITE; +/*!40000 ALTER TABLE `creature_involvedrelation` DISABLE KEYS */; +/*!40000 ALTER TABLE `creature_involvedrelation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `creature_loot_template` +-- + +DROP TABLE IF EXISTS `creature_loot_template`; +CREATE TABLE `creature_loot_template` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `item` mediumint(8) unsigned NOT NULL default '0', + `ChanceOrQuestChance` float NOT NULL default '100', + `groupid` tinyint(3) unsigned NOT NULL default '0', + `mincountOrRef` mediumint(9) NOT NULL default '1', + `maxcount` tinyint(3) unsigned NOT NULL default '1', + `lootcondition` tinyint(3) unsigned NOT NULL default '0', + `condition_value1` mediumint(8) unsigned NOT NULL default '0', + `condition_value2` mediumint(8) unsigned NOT NULL default '0', + PRIMARY KEY (`entry`,`item`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Loot System'; + +-- +-- Dumping data for table `creature_loot_template` +-- + +LOCK TABLES `creature_loot_template` WRITE; +/*!40000 ALTER TABLE `creature_loot_template` DISABLE KEYS */; +/*!40000 ALTER TABLE `creature_loot_template` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `creature_model_info` +-- + +DROP TABLE IF EXISTS `creature_model_info`; +CREATE TABLE `creature_model_info` ( + `modelid` mediumint(8) unsigned NOT NULL default '0', + `bounding_radius` float NOT NULL default '0', + `combat_reach` float NOT NULL default '0', + `gender` tinyint(3) unsigned NOT NULL default '2', + `modelid_other_gender` mediumint(8) unsigned NOT NULL default '0', + PRIMARY KEY (`modelid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Creature System (Model related info)'; + +-- +-- Dumping data for table `creature_model_info` +-- + +LOCK TABLES `creature_model_info` WRITE; +/*!40000 ALTER TABLE `creature_model_info` DISABLE KEYS */; +/*!40000 ALTER TABLE `creature_model_info` ENABLE KEYS */; +UNLOCK TABLES; + + +-- +-- Table structure for table `waypoint_data` +-- + +DROP TABLE IF EXISTS `waypoint_data`; +CREATE TABLE `waypoint_data` ( + `id` int(10) unsigned NOT NULL default '0' COMMENT 'Creature GUID', + `point` mediumint(8) unsigned NOT NULL default '0', + `position_x` float NOT NULL default '0', + `position_y` float NOT NULL default '0', + `position_z` float NOT NULL default '0', + `delay` int(10) unsigned NOT NULL default '0', + `move_flag` tinyint(1) NOT NULL default '0', + `action` int(11) NOT NULL default '0', + `action_chance` smallint(3) NOT NULL default '100', + `wpguid` int(11) NOT NULL default '0' +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `creature_movement` +-- + +LOCK TABLES `waypoint_data` WRITE; +/*!40000 ALTER TABLE `waypoint_data` DISABLE KEYS */; +/*!40000 ALTER TABLE `waypoint_data` ENABLE KEYS */; +UNLOCK TABLES; + + +-- +-- Table structure for table `waypoint_scripts` +-- + +DROP TABLE IF EXISTS `waypoint_scripts`; +CREATE TABLE `waypoint_scripts` ( + `id` int(11) unsigned NOT NULL default '0', + `delay` int(11) unsigned NOT NULL default '0', + `command` int(11) unsigned NOT NULL default '0', + `datalong` int(11) unsigned NOT NULL default '0', + `datalong2` int(11) unsigned NOT NULL default '0', + `dataint` int(11) unsigned NOT NULL default '0', + `x` float NOT NULL default '0', + `y` float NOT NULL default '0', + `z` float NOT NULL default '0', + `o` float NOT NULL default '0', + `guid` int(11) NOT NULL default '0', + PRIMARY KEY (`guid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `creature_movement` +-- + +LOCK TABLES `waypoint_scripts` WRITE; +/*!40000 ALTER TABLE `waypoint_scripts` DISABLE KEYS */; +/*!40000 ALTER TABLE `waypoint_scripts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `creature_onkill_reputation` +-- + +DROP TABLE IF EXISTS `creature_onkill_reputation`; +CREATE TABLE `creature_onkill_reputation` ( + `creature_id` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Creature Identifier', + `RewOnKillRepFaction1` smallint(6) NOT NULL default '0', + `RewOnKillRepFaction2` smallint(6) NOT NULL default '0', + `MaxStanding1` tinyint(4) NOT NULL default '0', + `IsTeamAward1` tinyint(4) NOT NULL default '0', + `RewOnKillRepValue1` mediumint(9) NOT NULL default '0', + `MaxStanding2` tinyint(4) NOT NULL default '0', + `IsTeamAward2` tinyint(4) NOT NULL default '0', + `RewOnKillRepValue2` mediumint(9) NOT NULL default '0', + `TeamDependent` tinyint(3) unsigned NOT NULL default '0', + PRIMARY KEY (`creature_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Creature OnKill Reputation gain'; + +-- +-- Dumping data for table `creature_onkill_reputation` +-- + +LOCK TABLES `creature_onkill_reputation` WRITE; +/*!40000 ALTER TABLE `creature_onkill_reputation` DISABLE KEYS */; +/*!40000 ALTER TABLE `creature_onkill_reputation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `creature_questrelation` +-- + +DROP TABLE IF EXISTS `creature_questrelation`; +CREATE TABLE `creature_questrelation` ( + `id` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Identifier', + `quest` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Quest Identifier', + PRIMARY KEY (`id`,`quest`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Creature System'; + +-- +-- Dumping data for table `creature_questrelation` +-- + +LOCK TABLES `creature_questrelation` WRITE; +/*!40000 ALTER TABLE `creature_questrelation` DISABLE KEYS */; +/*!40000 ALTER TABLE `creature_questrelation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `creature_respawn` +-- + +DROP TABLE IF EXISTS `creature_respawn`; +CREATE TABLE `creature_respawn` ( + `guid` int(10) unsigned NOT NULL default '0' COMMENT 'Global Unique Identifier', + `respawntime` bigint(20) NOT NULL default '0', + `instance` mediumint(8) unsigned NOT NULL default '0', + PRIMARY KEY (`guid`,`instance`), + KEY `instance` (`instance`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Grid Loading System'; + +-- +-- Dumping data for table `creature_respawn` +-- + +LOCK TABLES `creature_respawn` WRITE; +/*!40000 ALTER TABLE `creature_respawn` DISABLE KEYS */; +/*!40000 ALTER TABLE `creature_respawn` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `creature_template` +-- + +DROP TABLE IF EXISTS `creature_template`; +CREATE TABLE `creature_template` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `heroic_entry` mediumint(8) unsigned NOT NULL default '0', + `modelid_A` mediumint(8) unsigned NOT NULL default '0', + `modelid_A2` mediumint(8) unsigned NOT NULL default '0', + `modelid_H` mediumint(8) unsigned NOT NULL default '0', + `modelid_H2` mediumint(8) unsigned NOT NULL default '0', + `name` char(100) NOT NULL default '0', + `subname` char(100) default NULL, + `IconName` char(100) default NULL, + `minlevel` tinyint(3) unsigned NOT NULL default '1', + `maxlevel` tinyint(3) unsigned NOT NULL default '1', + `minhealth` int(10) unsigned NOT NULL default '0', + `maxhealth` int(10) unsigned NOT NULL default '0', + `minmana` int(10) unsigned NOT NULL default '0', + `maxmana` int(10) unsigned NOT NULL default '0', + `armor` mediumint(8) unsigned NOT NULL default '0', + `faction_A` smallint(5) unsigned NOT NULL default '0', + `faction_H` smallint(5) unsigned NOT NULL default '0', + `npcflag` int(10) unsigned NOT NULL default '0', + `speed` float default '1', + `scale` float NOT NULL default '1', + `rank` tinyint(3) unsigned NOT NULL default '0', + `mindmg` float NOT NULL default '0', + `maxdmg` float NOT NULL default '0', + `dmgschool` tinyint(4) NOT NULL default '0', + `attackpower` int(10) unsigned NOT NULL default '0', + `baseattacktime` int(10) unsigned NOT NULL default '0', + `rangeattacktime` int(10) unsigned NOT NULL default '0', + `flags` int(10) unsigned NOT NULL default '0', + `dynamicflags` int(10) unsigned NOT NULL default '0', + `family` tinyint(4) NOT NULL default '0', + `trainer_type` tinyint(4) NOT NULL default '0', + `trainer_spell` mediumint(8) unsigned NOT NULL default '0', + `class` tinyint(3) unsigned NOT NULL default '0', + `race` tinyint(3) unsigned NOT NULL default '0', + `minrangedmg` float NOT NULL default '0', + `maxrangedmg` float NOT NULL default '0', + `rangedattackpower` smallint(5) unsigned NOT NULL default '0', + `type` tinyint(3) unsigned NOT NULL default '0', + `flag1` int(10) unsigned NOT NULL default '0', + `lootid` mediumint(8) unsigned NOT NULL default '0', + `pickpocketloot` mediumint(8) unsigned NOT NULL default '0', + `skinloot` mediumint(8) unsigned NOT NULL default '0', + `resistance1` smallint(5) NOT NULL default '0', + `resistance2` smallint(5) NOT NULL default '0', + `resistance3` smallint(5) NOT NULL default '0', + `resistance4` smallint(5) NOT NULL default '0', + `resistance5` smallint(5) NOT NULL default '0', + `resistance6` smallint(5) NOT NULL default '0', + `spell1` mediumint(8) unsigned NOT NULL default '0', + `spell2` mediumint(8) unsigned NOT NULL default '0', + `spell3` mediumint(8) unsigned NOT NULL default '0', + `spell4` mediumint(8) unsigned NOT NULL default '0', + `PetSpellDataId` mediumint(8) unsigned NOT NULL default '0', + `mingold` mediumint(8) unsigned NOT NULL default '0', + `maxgold` mediumint(8) unsigned NOT NULL default '0', + `AIName` char(64) NOT NULL default '', + `MovementType` tinyint(3) unsigned NOT NULL default '0', + `InhabitType` tinyint(3) unsigned NOT NULL default '3', + `RacialLeader` tinyint(3) unsigned NOT NULL default '0', + `RegenHealth` tinyint(3) unsigned NOT NULL default '1', + `equipment_id` mediumint(8) unsigned NOT NULL default '0', + `mechanic_immune_mask` int(10) unsigned NOT NULL default '0', + `flags_extra` int(10) unsigned NOT NULL default '0', + `ScriptName` char(64) NOT NULL default '', + PRIMARY KEY (`entry`), + KEY `idx_name` (`name`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Creature System'; + +-- +-- Dumping data for table `creature_template` +-- + +LOCK TABLES `creature_template` WRITE; +/*!40000 ALTER TABLE `creature_template` DISABLE KEYS */; +/*!40000 ALTER TABLE `creature_template` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `creature_template_addon` +-- + +DROP TABLE IF EXISTS `creature_template_addon`; +CREATE TABLE `creature_template_addon` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `path_id' int(11) unsigned NOT NULL default '0', + `mount` mediumint(8) unsigned NOT NULL default '0', + `bytes0` int(10) unsigned NOT NULL default '0', + `bytes1` int(10) unsigned NOT NULL default '0', + `bytes2` int(10) unsigned NOT NULL default '0', + `emote` mediumint(8) unsigned NOT NULL default '0', + `moveflags` int(10) unsigned NOT NULL default '0', + `auras` text, + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `creature_template_addon` +-- + +LOCK TABLES `creature_template_addon` WRITE; +/*!40000 ALTER TABLE `creature_template_addon` DISABLE KEYS */; +/*!40000 ALTER TABLE `creature_template_addon` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `custom_texts` +-- + +DROP TABLE IF EXISTS `custom_texts`; +CREATE TABLE `custom_texts` ( + `entry` mediumint(8) NOT NULL, + `content_default` text NOT NULL, + `content_loc1` text, + `content_loc2` text, + `content_loc3` text, + `content_loc4` text, + `content_loc5` text, + `content_loc6` text, + `content_loc7` text, + `content_loc8` text, + `sound` mediumint(8) unsigned NOT NULL default '0', + `type` tinyint unsigned NOT NULL default '0', + `language` tinyint unsigned NOT NULL default '0', + `comment` text, + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Custom Texts'; + +-- +-- Dumping data for table `custom_texts` +-- + +LOCK TABLES `custom_texts` WRITE; +/*!40000 ALTER TABLE `custom_texts` DISABLE KEYS */; +/*!40000 ALTER TABLE `custom_texts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `db_version` +-- + +DROP TABLE IF EXISTS `db_version`; +CREATE TABLE `db_version` ( + `version` varchar(120) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes'; + +-- +-- Dumping data for table `db_version` +-- + +LOCK TABLES `db_version` WRITE; +/*!40000 ALTER TABLE `db_version` DISABLE KEYS */; +/*!40000 ALTER TABLE `db_version` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `disenchant_loot_template` +-- + +DROP TABLE IF EXISTS `disenchant_loot_template`; +CREATE TABLE `disenchant_loot_template` ( + `entry` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Recommended id selection: item_level*100 + item_quality', + `item` mediumint(8) unsigned NOT NULL default '0', + `ChanceOrQuestChance` float NOT NULL default '100', + `groupid` tinyint(3) unsigned NOT NULL default '0', + `mincountOrRef` mediumint(9) NOT NULL default '1', + `maxcount` tinyint(3) unsigned NOT NULL default '1', + `lootcondition` tinyint(3) unsigned NOT NULL default '0', + `condition_value1` mediumint(8) unsigned NOT NULL default '0', + `condition_value2` mediumint(8) unsigned NOT NULL default '0', + PRIMARY KEY (`entry`,`item`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Loot System'; + +-- +-- Dumping data for table `disenchant_loot_template` +-- + +LOCK TABLES `disenchant_loot_template` WRITE; +/*!40000 ALTER TABLE `disenchant_loot_template` DISABLE KEYS */; +/*!40000 ALTER TABLE `disenchant_loot_template` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `event_scripts` +-- + +DROP TABLE IF EXISTS `event_scripts`; +CREATE TABLE `event_scripts` ( + `id` mediumint(8) unsigned NOT NULL default '0', + `delay` int(10) unsigned NOT NULL default '0', + `command` mediumint(8) unsigned NOT NULL default '0', + `datalong` mediumint(8) unsigned NOT NULL default '0', + `datalong2` int(10) unsigned NOT NULL default '0', + `datatext` text NOT NULL, + `x` float NOT NULL default '0', + `y` float NOT NULL default '0', + `z` float NOT NULL default '0', + `o` float NOT NULL default '0' +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `event_scripts` +-- + +LOCK TABLES `event_scripts` WRITE; +/*!40000 ALTER TABLE `event_scripts` DISABLE KEYS */; +/*!40000 ALTER TABLE `event_scripts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `eventai_localized_texts` +-- + +DROP TABLE IF EXISTS `eventai_localized_texts`; +CREATE TABLE `eventai_localized_texts` ( + `id` int(11) unsigned NOT NULL auto_increment COMMENT 'Identifier', + `locale_1` varchar(255) NOT NULL default '', + `locale_2` varchar(255) NOT NULL default '', + `locale_3` varchar(255) NOT NULL default '', + `locale_4` varchar(255) NOT NULL default '', + `locale_5` varchar(255) NOT NULL default '', + `locale_6` varchar(255) NOT NULL default '', + `locale_7` varchar(255) NOT NULL default '', + `locale_8` varchar(255) NOT NULL default '', + `comment` varchar(255) NOT NULL default '' COMMENT 'Text Comment', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='EventAI Localized Text'; + +-- +-- Dumping data for table `eventai_localized_texts` +-- + +LOCK TABLES `eventai_localized_texts` WRITE; +/*!40000 ALTER TABLE `eventai_localized_texts` DISABLE KEYS */; +/*!40000 ALTER TABLE `eventai_localized_texts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `eventai_scripts` +-- + +DROP TABLE IF EXISTS `eventai_scripts`; +CREATE TABLE `eventai_scripts` ( + `id` int(11) unsigned NOT NULL COMMENT 'Identifier' AUTO_INCREMENT, + `creature_id` int(11) unsigned NOT NULL default '0' COMMENT 'Creature Template Identifier', + `event_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Event Type', + `event_inverse_phase_mask` int(11) signed NOT NULL default '0' COMMENT 'Mask which phases this event will not trigger in', + `event_chance` int(3) unsigned NOT NULL default '100', + `event_flags` int(3) unsigned NOT NULL default '0', + `event_param1` int(11) signed NOT NULL default '0', + `event_param2` int(11) signed NOT NULL default '0', + `event_param3` int(11) signed NOT NULL default '0', + `event_param4` int(11) signed NOT NULL default '0', + `action1_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Action Type', + `action1_param1` int(11) signed NOT NULL default '0', + `action1_param2` int(11) signed NOT NULL default '0', + `action1_param3` int(11) signed NOT NULL default '0', + `action2_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Action Type', + `action2_param1` int(11) signed NOT NULL default '0', + `action2_param2` int(11) signed NOT NULL default '0', + `action2_param3` int(11) signed NOT NULL default '0', + `action3_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Action Type', + `action3_param1` int(11) signed NOT NULL default '0', + `action3_param2` int(11) signed NOT NULL default '0', + `action3_param3` int(11) signed NOT NULL default '0', + `comment` varchar(255) NOT NULL default '' COMMENT 'Event Comment', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='EventAI Scripts'; + +-- +-- Dumping data for table `eventai_scripts` +-- + +LOCK TABLES `eventai_scripts` WRITE; +/*!40000 ALTER TABLE `eventai_scripts` DISABLE KEYS */; +/*!40000 ALTER TABLE `eventai_scripts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `eventai_summons` +-- + +DROP TABLE IF EXISTS `eventai_summons`; +CREATE TABLE `eventai_summons` ( + `id` int(11) unsigned NOT NULL COMMENT 'Location Identifier' AUTO_INCREMENT, + `position_x` float NOT NULL default '0', + `position_y` float NOT NULL default '0', + `position_z` float NOT NULL default '0', + `orientation` float NOT NULL default '0', + `spawntimesecs` int(11) unsigned NOT NULL default '120', + `comment` varchar(255) NOT NULL default '' COMMENT 'Summon Comment', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='EventAI Summoning Locations'; + +-- +-- Dumping data for table `eventai_summons` +-- + +LOCK TABLES `eventai_summons` WRITE; +/*!40000 ALTER TABLE `eventai_summons` DISABLE KEYS */; +/*!40000 ALTER TABLE `eventai_summons` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `eventai_texts` +-- + +DROP TABLE IF EXISTS `eventai_texts`; +CREATE TABLE `eventai_texts` ( + `entry` mediumint(8) NOT NULL, + `content_default` text NOT NULL, + `content_loc1` text, + `content_loc2` text, + `content_loc3` text, + `content_loc4` text, + `content_loc5` text, + `content_loc6` text, + `content_loc7` text, + `content_loc8` text, + `sound` mediumint(8) unsigned NOT NULL default '0', + `type` tinyint unsigned NOT NULL default '0', + `language` tinyint unsigned NOT NULL default '0', + `comment` text, + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Script Texts'; + +-- +-- Dumping data for table `eventai_texts` +-- + +LOCK TABLES `eventai_texts` WRITE; +/*!40000 ALTER TABLE `eventai_texts` DISABLE KEYS */; +/*!40000 ALTER TABLE `eventai_texts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `script_texts` +-- + +DROP TABLE IF EXISTS `script_texts`; +CREATE TABLE `script_texts` ( + `entry` mediumint(8) NOT NULL, + `content_default` text NOT NULL, + `content_loc1` text, + `content_loc2` text, + `content_loc3` text, + `content_loc4` text, + `content_loc5` text, + `content_loc6` text, + `content_loc7` text, + `content_loc8` text, + `sound` mediumint(8) unsigned NOT NULL default '0', + `type` tinyint unsigned NOT NULL default '0', + `language` tinyint unsigned NOT NULL default '0', + `comment` text, + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Script Texts'; + +-- +-- Dumping data for table `script_texts` +-- + +LOCK TABLES `script_texts` WRITE; +/*!40000 ALTER TABLE `script_texts` DISABLE KEYS */; +/*!40000 ALTER TABLE `script_texts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `exploration_basexp` +-- + +DROP TABLE IF EXISTS `exploration_basexp`; +CREATE TABLE `exploration_basexp` ( + `level` tinyint(4) NOT NULL default '0', + `basexp` mediumint(9) NOT NULL default '0', + PRIMARY KEY (`level`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Exploration System'; + +-- +-- Dumping data for table `exploration_basexp` +-- + +LOCK TABLES `exploration_basexp` WRITE; +/*!40000 ALTER TABLE `exploration_basexp` DISABLE KEYS */; +/*!40000 ALTER TABLE `exploration_basexp` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `fishing_loot_template` +-- + +DROP TABLE IF EXISTS `fishing_loot_template`; +CREATE TABLE `fishing_loot_template` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `item` mediumint(8) unsigned NOT NULL default '0', + `ChanceOrQuestChance` float NOT NULL default '100', + `groupid` tinyint(3) unsigned NOT NULL default '0', + `mincountOrRef` mediumint(9) NOT NULL default '1', + `maxcount` tinyint(3) unsigned NOT NULL default '1', + `lootcondition` tinyint(3) unsigned NOT NULL default '0', + `condition_value1` mediumint(8) unsigned NOT NULL default '0', + `condition_value2` mediumint(8) unsigned NOT NULL default '0', + PRIMARY KEY (`entry`,`item`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Loot System'; + +-- +-- Dumping data for table `fishing_loot_template` +-- + +LOCK TABLES `fishing_loot_template` WRITE; +/*!40000 ALTER TABLE `fishing_loot_template` DISABLE KEYS */; +/*!40000 ALTER TABLE `fishing_loot_template` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `game_event` +-- + +DROP TABLE IF EXISTS `game_event`; +CREATE TABLE `game_event` ( + `entry` mediumint(8) unsigned NOT NULL COMMENT 'Entry of the game event', + `start_time` timestamp NOT NULL default '0000-00-00 00:00:00' COMMENT 'Absolute start date, the event will never start before', + `end_time` timestamp NOT NULL default '0000-00-00 00:00:00' COMMENT 'Absolute end date, the event will never start afler', + `occurence` bigint(20) unsigned NOT NULL default '5184000' COMMENT 'Delay in minutes between occurences of the event', + `length` bigint(20) unsigned NOT NULL default '2592000' COMMENT 'Length in minutes of the event', + `description` varchar(255) default NULL COMMENT 'Description of the event displayed in console', + `world_event` tinyint(3) unsigned NOT NULL default '0' COMMENT '0 if normal event, 1 if world event', + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `game_event` +-- + +LOCK TABLES `game_event` WRITE; +/*!40000 ALTER TABLE `game_event` DISABLE KEYS */; +/*!40000 ALTER TABLE `game_event` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `game_event_condition` +-- + +DROP TABLE IF EXISTS `game_event_condition`; +CREATE TABLE `game_event_condition` ( + `event_id` mediumint(8) unsigned NOT NULL default '0', + `condition_id` mediumint(8) unsigned NOT NULL default '0', + `req_num` float default '0', + `max_world_state_field` smallint(5) unsigned NOT NULL default '0', + `done_world_state_field` smallint(5) unsigned NOT NULL default '0', + `description` varchar(25) NOT NULL default '', + PRIMARY KEY (`event_id`,`condition_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `game_event_condition` +-- + +LOCK TABLES `game_event_condition` WRITE; +/*!40000 ALTER TABLE `game_event_condition` DISABLE KEYS */; +/*!40000 ALTER TABLE `game_event_condition` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `game_event_creature` +-- + +DROP TABLE IF EXISTS `game_event_creature`; +CREATE TABLE `game_event_creature` ( + `guid` int(10) unsigned NOT NULL, + `event` smallint(6) NOT NULL default '0' COMMENT 'Put negatives values to remove during event', + PRIMARY KEY (`guid`,`event`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `game_event_creature` +-- + +LOCK TABLES `game_event_creature` WRITE; +/*!40000 ALTER TABLE `game_event_creature` DISABLE KEYS */; +/*!40000 ALTER TABLE `game_event_creature` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `game_event_creature_quest` +-- + +DROP TABLE IF EXISTS `game_event_creature_quest`; +CREATE TABLE `game_event_creature_quest` ( + `id` mediumint(8) unsigned NOT NULL default '0', + `quest` mediumint(8) unsigned NOT NULL default '0', + `event` smallint(5) unsigned NOT NULL default '0', + PRIMARY KEY (`quest`,`event`,`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `game_event_creature_quest` +-- + +LOCK TABLES `game_event_creature_quest` WRITE; +/*!40000 ALTER TABLE `game_event_creature_quest` DISABLE KEYS */; +/*!40000 ALTER TABLE `game_event_creature_quest` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `game_event_gameobject` +-- + +DROP TABLE IF EXISTS `game_event_gameobject`; +CREATE TABLE `game_event_gameobject` ( + `guid` int(10) unsigned NOT NULL, + `event` smallint(6) NOT NULL default '0' COMMENT 'Put negatives values to remove during event', + PRIMARY KEY (`guid`,`event`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `game_event_gameobject` +-- + +LOCK TABLES `game_event_gameobject` WRITE; +/*!40000 ALTER TABLE `game_event_gameobject` DISABLE KEYS */; +/*!40000 ALTER TABLE `game_event_gameobject` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `game_event_gameobject_quest` +-- + +DROP TABLE IF EXISTS `game_event_gameobject_quest`; +CREATE TABLE `game_event_gameobject_quest` ( + `id` mediumint(8) unsigned NOT NULL default '0', + `quest` mediumint(8) unsigned NOT NULL default '0', + `event` smallint(5) unsigned NOT NULL default '0', + PRIMARY KEY (`quest`,`event`,`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `game_event_gameobject_quest` +-- + +LOCK TABLES `game_event_gameobject_quest` WRITE; +/*!40000 ALTER TABLE `game_event_gameobject_quest` DISABLE KEYS */; +/*!40000 ALTER TABLE `game_event_gameobject_quest` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `game_event_model_equip` +-- + +DROP TABLE IF EXISTS `game_event_model_equip`; +CREATE TABLE `game_event_model_equip` ( + `guid` int(10) unsigned NOT NULL default '0', + `modelid` mediumint(8) unsigned NOT NULL default '0', + `equipment_id` mediumint(8) unsigned NOT NULL default '0', + `event` smallint(5) unsigned NOT NULL default '0', + PRIMARY KEY (`guid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `game_event_model_equip` +-- + +LOCK TABLES `game_event_model_equip` WRITE; +/*!40000 ALTER TABLE `game_event_model_equip` DISABLE KEYS */; +/*!40000 ALTER TABLE `game_event_model_equip` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `game_event_npc_gossip` +-- + +DROP TABLE IF EXISTS `game_event_npc_gossip`; +CREATE TABLE `game_event_npc_gossip` ( + `guid` int(10) unsigned NOT NULL, + `event_id` mediumint(8) unsigned NOT NULL default '0', + `textid` mediumint(8) unsigned NOT NULL default '0', + PRIMARY KEY (`guid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `game_event_npc_gossip` +-- + +LOCK TABLES `game_event_npc_gossip` WRITE; +/*!40000 ALTER TABLE `game_event_npc_gossip` DISABLE KEYS */; +/*!40000 ALTER TABLE `game_event_npc_gossip` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `game_event_npc_vendor` +-- + +DROP TABLE IF EXISTS `game_event_npc_vendor`; +CREATE TABLE `game_event_npc_vendor` ( + `event` mediumint(8) unsigned NOT NULL default '0', + `guid` mediumint(8) unsigned NOT NULL default '0', + `item` mediumint(8) unsigned NOT NULL default '0', + `maxcount` mediumint(8) unsigned NOT NULL default '0', + `incrtime` mediumint(8) unsigned NOT NULL default '0', + `ExtendedCost` mediumint(8) unsigned NOT NULL default '0', + PRIMARY KEY (`guid`,`item`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `game_event_npc_vendor` +-- + +LOCK TABLES `game_event_npc_vendor` WRITE; +/*!40000 ALTER TABLE `game_event_npc_vendor` DISABLE KEYS */; +/*!40000 ALTER TABLE `game_event_npc_vendor` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `game_event_npcflag` +-- + +DROP TABLE IF EXISTS `game_event_npcflag`; +CREATE TABLE `game_event_npcflag` ( + `guid` mediumint(8) unsigned NOT NULL default '0', + `event_id` mediumint(8) unsigned NOT NULL default '0', + `npcflag` int(10) unsigned NOT NULL default '0', + PRIMARY KEY (`guid`,`event_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `game_event_npcflag` +-- + +LOCK TABLES `game_event_npcflag` WRITE; +/*!40000 ALTER TABLE `game_event_npcflag` DISABLE KEYS */; +/*!40000 ALTER TABLE `game_event_npcflag` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `game_event_prerequisite` +-- + +DROP TABLE IF EXISTS `game_event_prerequisite`; +CREATE TABLE `game_event_prerequisite` ( + `event_id` mediumint(8) unsigned NOT NULL, + `prerequisite_event` mediumint(8) unsigned NOT NULL, + PRIMARY KEY (`event_id`,`prerequisite_event`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `game_event_prerequisite` +-- + +LOCK TABLES `game_event_prerequisite` WRITE; +/*!40000 ALTER TABLE `game_event_prerequisite` DISABLE KEYS */; +/*!40000 ALTER TABLE `game_event_prerequisite` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `game_event_quest_condition` +-- + +DROP TABLE IF EXISTS `game_event_quest_condition`; +CREATE TABLE `game_event_quest_condition` ( + `quest` mediumint(8) unsigned NOT NULL default '0', + `event_id` mediumint(8) unsigned NOT NULL default '0', + `condition_id` mediumint(8) unsigned NOT NULL default '0', + `num` float default '0', + PRIMARY KEY (`quest`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `game_event_quest_condition` +-- + +LOCK TABLES `game_event_quest_condition` WRITE; +/*!40000 ALTER TABLE `game_event_quest_condition` DISABLE KEYS */; +/*!40000 ALTER TABLE `game_event_quest_condition` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `game_graveyard_zone` +-- + +DROP TABLE IF EXISTS `game_graveyard_zone`; +CREATE TABLE `game_graveyard_zone` ( + `id` mediumint(8) unsigned NOT NULL default '0', + `ghost_zone` mediumint(8) unsigned NOT NULL default '0', + `faction` smallint(5) unsigned NOT NULL default '0', + PRIMARY KEY (`id`,`ghost_zone`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Trigger System'; + +-- +-- Dumping data for table `game_graveyard_zone` +-- + +LOCK TABLES `game_graveyard_zone` WRITE; +/*!40000 ALTER TABLE `game_graveyard_zone` DISABLE KEYS */; +/*!40000 ALTER TABLE `game_graveyard_zone` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `game_tele` +-- + +DROP TABLE IF EXISTS `game_tele`; +CREATE TABLE `game_tele` ( + `id` mediumint(8) unsigned NOT NULL auto_increment, + `position_x` float NOT NULL default '0', + `position_y` float NOT NULL default '0', + `position_z` float NOT NULL default '0', + `orientation` float NOT NULL default '0', + `map` smallint(5) unsigned NOT NULL default '0', + `name` varchar(100) NOT NULL default '', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Tele Command'; + +-- +-- Dumping data for table `game_tele` +-- + +LOCK TABLES `game_tele` WRITE; +/*!40000 ALTER TABLE `game_tele` DISABLE KEYS */; +/*!40000 ALTER TABLE `game_tele` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `game_weather` +-- + +DROP TABLE IF EXISTS `game_weather`; +CREATE TABLE `game_weather` ( + `zone` mediumint(8) unsigned NOT NULL default '0', + `spring_rain_chance` tinyint(3) unsigned NOT NULL default '25', + `spring_snow_chance` tinyint(3) unsigned NOT NULL default '25', + `spring_storm_chance` tinyint(3) unsigned NOT NULL default '25', + `summer_rain_chance` tinyint(3) unsigned NOT NULL default '25', + `summer_snow_chance` tinyint(3) unsigned NOT NULL default '25', + `summer_storm_chance` tinyint(3) unsigned NOT NULL default '25', + `fall_rain_chance` tinyint(3) unsigned NOT NULL default '25', + `fall_snow_chance` tinyint(3) unsigned NOT NULL default '25', + `fall_storm_chance` tinyint(3) unsigned NOT NULL default '25', + `winter_rain_chance` tinyint(3) unsigned NOT NULL default '25', + `winter_snow_chance` tinyint(3) unsigned NOT NULL default '25', + `winter_storm_chance` tinyint(3) unsigned NOT NULL default '25', + PRIMARY KEY (`zone`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Weather System'; + +-- +-- Dumping data for table `game_weather` +-- + +LOCK TABLES `game_weather` WRITE; +/*!40000 ALTER TABLE `game_weather` DISABLE KEYS */; +/*!40000 ALTER TABLE `game_weather` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `gameobject` +-- + +DROP TABLE IF EXISTS `gameobject`; +CREATE TABLE `gameobject` ( + `guid` int(10) unsigned NOT NULL auto_increment COMMENT 'Global Unique Identifier', + `id` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Gameobject Identifier', + `map` smallint(5) unsigned NOT NULL default '0' COMMENT 'Map Identifier', + `spawnMask` tinyint(3) unsigned NOT NULL default '1', + `position_x` float NOT NULL default '0', + `position_y` float NOT NULL default '0', + `position_z` float NOT NULL default '0', + `orientation` float NOT NULL default '0', + `rotation0` float NOT NULL default '0', + `rotation1` float NOT NULL default '0', + `rotation2` float NOT NULL default '0', + `rotation3` float NOT NULL default '0', + `spawntimesecs` int(11) NOT NULL default '0', + `animprogress` tinyint(3) unsigned NOT NULL default '0', + `state` tinyint(3) unsigned NOT NULL default '0', + PRIMARY KEY (`guid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Gameobject System'; + +-- +-- Dumping data for table `gameobject` +-- + +LOCK TABLES `gameobject` WRITE; +/*!40000 ALTER TABLE `gameobject` DISABLE KEYS */; +/*!40000 ALTER TABLE `gameobject` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `gameobject_involvedrelation` +-- + +DROP TABLE IF EXISTS `gameobject_involvedrelation`; +CREATE TABLE `gameobject_involvedrelation` ( + `id` mediumint(8) unsigned NOT NULL default '0', + `quest` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Quest Identifier', + PRIMARY KEY (`id`,`quest`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `gameobject_involvedrelation` +-- + +LOCK TABLES `gameobject_involvedrelation` WRITE; +/*!40000 ALTER TABLE `gameobject_involvedrelation` DISABLE KEYS */; +/*!40000 ALTER TABLE `gameobject_involvedrelation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `gameobject_loot_template` +-- + +DROP TABLE IF EXISTS `gameobject_loot_template`; +CREATE TABLE `gameobject_loot_template` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `item` mediumint(8) unsigned NOT NULL default '0', + `ChanceOrQuestChance` float NOT NULL default '100', + `groupid` tinyint(3) unsigned NOT NULL default '0', + `mincountOrRef` mediumint(9) NOT NULL default '1', + `maxcount` tinyint(3) unsigned NOT NULL default '1', + `lootcondition` tinyint(3) unsigned NOT NULL default '0', + `condition_value1` mediumint(8) unsigned NOT NULL default '0', + `condition_value2` mediumint(8) unsigned NOT NULL default '0', + PRIMARY KEY (`entry`,`item`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Loot System'; + +-- +-- Dumping data for table `gameobject_loot_template` +-- + +LOCK TABLES `gameobject_loot_template` WRITE; +/*!40000 ALTER TABLE `gameobject_loot_template` DISABLE KEYS */; +/*!40000 ALTER TABLE `gameobject_loot_template` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `gameobject_questrelation` +-- + +DROP TABLE IF EXISTS `gameobject_questrelation`; +CREATE TABLE `gameobject_questrelation` ( + `id` mediumint(8) unsigned NOT NULL default '0', + `quest` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Quest Identifier', + PRIMARY KEY (`id`,`quest`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `gameobject_questrelation` +-- + +LOCK TABLES `gameobject_questrelation` WRITE; +/*!40000 ALTER TABLE `gameobject_questrelation` DISABLE KEYS */; +/*!40000 ALTER TABLE `gameobject_questrelation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `gameobject_respawn` +-- + +DROP TABLE IF EXISTS `gameobject_respawn`; +CREATE TABLE `gameobject_respawn` ( + `guid` int(10) unsigned NOT NULL default '0' COMMENT 'Global Unique Identifier', + `respawntime` bigint(20) NOT NULL default '0', + `instance` mediumint(8) unsigned NOT NULL default '0', + PRIMARY KEY (`guid`,`instance`), + KEY `instance` (`instance`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Grid Loading System'; + +-- +-- Dumping data for table `gameobject_respawn` +-- + +LOCK TABLES `gameobject_respawn` WRITE; +/*!40000 ALTER TABLE `gameobject_respawn` DISABLE KEYS */; +/*!40000 ALTER TABLE `gameobject_respawn` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `gameobject_scripts` +-- + +DROP TABLE IF EXISTS `gameobject_scripts`; +CREATE TABLE `gameobject_scripts` ( + `id` mediumint(8) unsigned NOT NULL default '0', + `delay` int(10) unsigned NOT NULL default '0', + `command` mediumint(8) unsigned NOT NULL default '0', + `datalong` mediumint(8) unsigned NOT NULL default '0', + `datalong2` int(10) unsigned NOT NULL default '0', + `datatext` text NOT NULL, + `x` float NOT NULL default '0', + `y` float NOT NULL default '0', + `z` float NOT NULL default '0', + `o` float NOT NULL default '0' +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `gameobject_scripts` +-- + +LOCK TABLES `gameobject_scripts` WRITE; +/*!40000 ALTER TABLE `gameobject_scripts` DISABLE KEYS */; +/*!40000 ALTER TABLE `gameobject_scripts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `gameobject_template` +-- + +DROP TABLE IF EXISTS `gameobject_template`; +CREATE TABLE `gameobject_template` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `type` tinyint(3) unsigned NOT NULL default '0', + `displayId` mediumint(8) unsigned NOT NULL default '0', + `name` varchar(100) NOT NULL default '', + `castBarCaption` varchar(100) NOT NULL default '', + `faction` smallint(5) unsigned NOT NULL default '0', + `flags` int(10) unsigned NOT NULL default '0', + `size` float NOT NULL default '1', + `data0` int(10) unsigned NOT NULL default '0', + `data1` int(10) unsigned NOT NULL default '0', + `data2` int(10) unsigned NOT NULL default '0', + `data3` int(10) unsigned NOT NULL default '0', + `data4` int(10) unsigned NOT NULL default '0', + `data5` int(10) unsigned NOT NULL default '0', + `data6` int(10) unsigned NOT NULL default '0', + `data7` int(10) unsigned NOT NULL default '0', + `data8` int(10) unsigned NOT NULL default '0', + `data9` int(10) unsigned NOT NULL default '0', + `data10` int(10) unsigned NOT NULL default '0', + `data11` int(10) unsigned NOT NULL default '0', + `data12` int(10) unsigned NOT NULL default '0', + `data13` int(10) unsigned NOT NULL default '0', + `data14` int(10) unsigned NOT NULL default '0', + `data15` int(10) unsigned NOT NULL default '0', + `data16` int(10) unsigned NOT NULL default '0', + `data17` int(10) unsigned NOT NULL default '0', + `data18` int(10) unsigned NOT NULL default '0', + `data19` int(10) unsigned NOT NULL default '0', + `data20` int(10) unsigned NOT NULL default '0', + `data21` int(10) unsigned NOT NULL default '0', + `data22` int(10) unsigned NOT NULL default '0', + `data23` int(10) unsigned NOT NULL default '0', + `ScriptName` varchar(64) NOT NULL default '', + PRIMARY KEY (`entry`), + KEY `idx_name` (`name`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Gameobject System'; + +-- +-- Dumping data for table `gameobject_template` +-- + +LOCK TABLES `gameobject_template` WRITE; +/*!40000 ALTER TABLE `gameobject_template` DISABLE KEYS */; +/*!40000 ALTER TABLE `gameobject_template` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `instance_template` +-- + +DROP TABLE IF EXISTS `instance_template`; +CREATE TABLE `instance_template` ( + `map` smallint(5) unsigned NOT NULL, + `parent` int(10) unsigned NOT NULL, + `levelMin` tinyint(3) unsigned NOT NULL default '0', + `levelMax` tinyint(3) unsigned NOT NULL default '0', + `maxPlayers` tinyint(3) unsigned NOT NULL default '0', + `reset_delay` int(10) unsigned NOT NULL default '0', + `startLocX` float default NULL, + `startLocY` float default NULL, + `startLocZ` float default NULL, + `startLocO` float default NULL, + `script` varchar(128) NOT NULL default '', + PRIMARY KEY (`map`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `instance_template` +-- + +LOCK TABLES `instance_template` WRITE; +/*!40000 ALTER TABLE `instance_template` DISABLE KEYS */; +/*!40000 ALTER TABLE `instance_template` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `item_enchantment_template` +-- + +DROP TABLE IF EXISTS `item_enchantment_template`; +CREATE TABLE `item_enchantment_template` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `ench` mediumint(8) unsigned NOT NULL default '0', + `chance` float unsigned NOT NULL default '0', + PRIMARY KEY (`entry`,`ench`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Item Random Enchantment System'; + +-- +-- Dumping data for table `item_enchantment_template` +-- + +LOCK TABLES `item_enchantment_template` WRITE; +/*!40000 ALTER TABLE `item_enchantment_template` DISABLE KEYS */; +/*!40000 ALTER TABLE `item_enchantment_template` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `item_loot_template` +-- + +DROP TABLE IF EXISTS `item_loot_template`; +CREATE TABLE `item_loot_template` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `item` mediumint(8) unsigned NOT NULL default '0', + `ChanceOrQuestChance` float NOT NULL default '100', + `groupid` tinyint(3) unsigned NOT NULL default '0', + `mincountOrRef` mediumint(9) NOT NULL default '1', + `maxcount` smallint(5) unsigned NOT NULL default '1', + `lootcondition` tinyint(3) unsigned NOT NULL default '0', + `condition_value1` mediumint(8) unsigned NOT NULL default '0', + `condition_value2` mediumint(8) unsigned NOT NULL default '0', + PRIMARY KEY (`entry`,`item`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Loot System'; + +-- +-- Dumping data for table `item_loot_template` +-- + +LOCK TABLES `item_loot_template` WRITE; +/*!40000 ALTER TABLE `item_loot_template` DISABLE KEYS */; +/*!40000 ALTER TABLE `item_loot_template` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `item_template` +-- + +DROP TABLE IF EXISTS `item_template`; +CREATE TABLE `item_template` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `class` tinyint(3) unsigned NOT NULL default '0', + `subclass` tinyint(3) unsigned NOT NULL default '0', + `unk0` int(11) NOT NULL default '-1', + `name` varchar(255) NOT NULL default '', + `displayid` mediumint(8) unsigned NOT NULL default '0', + `Quality` tinyint(3) unsigned NOT NULL default '0', + `Flags` int(10) unsigned NOT NULL default '0', + `BuyCount` tinyint(3) unsigned NOT NULL default '1', + `BuyPrice` int(10) unsigned NOT NULL default '0', + `SellPrice` int(10) unsigned NOT NULL default '0', + `InventoryType` tinyint(3) unsigned NOT NULL default '0', + `AllowableClass` mediumint(9) NOT NULL default '-1', + `AllowableRace` mediumint(9) NOT NULL default '-1', + `ItemLevel` tinyint(3) unsigned NOT NULL default '0', + `RequiredLevel` tinyint(3) unsigned NOT NULL default '0', + `RequiredSkill` smallint(5) unsigned NOT NULL default '0', + `RequiredSkillRank` smallint(5) unsigned NOT NULL default '0', + `requiredspell` mediumint(8) unsigned NOT NULL default '0', + `requiredhonorrank` mediumint(8) unsigned NOT NULL default '0', + `RequiredCityRank` mediumint(8) unsigned NOT NULL default '0', + `RequiredReputationFaction` smallint(5) unsigned NOT NULL default '0', + `RequiredReputationRank` smallint(5) unsigned NOT NULL default '0', + `maxcount` smallint(5) unsigned NOT NULL default '0', + `stackable` smallint(5) unsigned NOT NULL default '1', + `ContainerSlots` tinyint(3) unsigned NOT NULL default '0', + `stat_type1` tinyint(3) unsigned NOT NULL default '0', + `stat_value1` smallint(6) NOT NULL default '0', + `stat_type2` tinyint(3) unsigned NOT NULL default '0', + `stat_value2` smallint(6) NOT NULL default '0', + `stat_type3` tinyint(3) unsigned NOT NULL default '0', + `stat_value3` smallint(6) NOT NULL default '0', + `stat_type4` tinyint(3) unsigned NOT NULL default '0', + `stat_value4` smallint(6) NOT NULL default '0', + `stat_type5` tinyint(3) unsigned NOT NULL default '0', + `stat_value5` smallint(6) NOT NULL default '0', + `stat_type6` tinyint(3) unsigned NOT NULL default '0', + `stat_value6` smallint(6) NOT NULL default '0', + `stat_type7` tinyint(3) unsigned NOT NULL default '0', + `stat_value7` smallint(6) NOT NULL default '0', + `stat_type8` tinyint(3) unsigned NOT NULL default '0', + `stat_value8` smallint(6) NOT NULL default '0', + `stat_type9` tinyint(3) unsigned NOT NULL default '0', + `stat_value9` smallint(6) NOT NULL default '0', + `stat_type10` tinyint(3) unsigned NOT NULL default '0', + `stat_value10` smallint(6) NOT NULL default '0', + `dmg_min1` float NOT NULL default '0', + `dmg_max1` float NOT NULL default '0', + `dmg_type1` tinyint(3) unsigned NOT NULL default '0', + `dmg_min2` float NOT NULL default '0', + `dmg_max2` float NOT NULL default '0', + `dmg_type2` tinyint(3) unsigned NOT NULL default '0', + `dmg_min3` float NOT NULL default '0', + `dmg_max3` float NOT NULL default '0', + `dmg_type3` tinyint(3) unsigned NOT NULL default '0', + `dmg_min4` float NOT NULL default '0', + `dmg_max4` float NOT NULL default '0', + `dmg_type4` tinyint(3) unsigned NOT NULL default '0', + `dmg_min5` float NOT NULL default '0', + `dmg_max5` float NOT NULL default '0', + `dmg_type5` tinyint(3) unsigned NOT NULL default '0', + `armor` smallint(5) unsigned NOT NULL default '0', + `holy_res` tinyint(3) unsigned NOT NULL default '0', + `fire_res` tinyint(3) unsigned NOT NULL default '0', + `nature_res` tinyint(3) unsigned NOT NULL default '0', + `frost_res` tinyint(3) unsigned NOT NULL default '0', + `shadow_res` tinyint(3) unsigned NOT NULL default '0', + `arcane_res` tinyint(3) unsigned NOT NULL default '0', + `delay` smallint(5) unsigned NOT NULL default '1000', + `ammo_type` tinyint(3) unsigned NOT NULL default '0', + `RangedModRange` float NOT NULL default '0', + `spellid_1` mediumint(8) unsigned NOT NULL default '0', + `spelltrigger_1` tinyint(3) unsigned NOT NULL default '0', + `spellcharges_1` tinyint(4) NOT NULL default '0', + `spellppmRate_1` float NOT NULL default '0', + `spellcooldown_1` int(11) NOT NULL default '-1', + `spellcategory_1` smallint(5) unsigned NOT NULL default '0', + `spellcategorycooldown_1` int(11) NOT NULL default '-1', + `spellid_2` mediumint(8) unsigned NOT NULL default '0', + `spelltrigger_2` tinyint(3) unsigned NOT NULL default '0', + `spellcharges_2` tinyint(4) NOT NULL default '0', + `spellppmRate_2` float NOT NULL default '0', + `spellcooldown_2` int(11) NOT NULL default '-1', + `spellcategory_2` smallint(5) unsigned NOT NULL default '0', + `spellcategorycooldown_2` int(11) NOT NULL default '-1', + `spellid_3` mediumint(8) unsigned NOT NULL default '0', + `spelltrigger_3` tinyint(3) unsigned NOT NULL default '0', + `spellcharges_3` tinyint(4) NOT NULL default '0', + `spellppmRate_3` float NOT NULL default '0', + `spellcooldown_3` int(11) NOT NULL default '-1', + `spellcategory_3` smallint(5) unsigned NOT NULL default '0', + `spellcategorycooldown_3` int(11) NOT NULL default '-1', + `spellid_4` mediumint(8) unsigned NOT NULL default '0', + `spelltrigger_4` tinyint(3) unsigned NOT NULL default '0', + `spellcharges_4` tinyint(4) NOT NULL default '0', + `spellppmRate_4` float NOT NULL default '0', + `spellcooldown_4` int(11) NOT NULL default '-1', + `spellcategory_4` smallint(5) unsigned NOT NULL default '0', + `spellcategorycooldown_4` int(11) NOT NULL default '-1', + `spellid_5` mediumint(8) unsigned NOT NULL default '0', + `spelltrigger_5` tinyint(3) unsigned NOT NULL default '0', + `spellcharges_5` tinyint(4) NOT NULL default '0', + `spellppmRate_5` float NOT NULL default '0', + `spellcooldown_5` int(11) NOT NULL default '-1', + `spellcategory_5` smallint(5) unsigned NOT NULL default '0', + `spellcategorycooldown_5` int(11) NOT NULL default '-1', + `bonding` tinyint(3) unsigned NOT NULL default '0', + `description` varchar(255) NOT NULL default '', + `PageText` mediumint(8) unsigned NOT NULL default '0', + `LanguageID` tinyint(3) unsigned NOT NULL default '0', + `PageMaterial` tinyint(3) unsigned NOT NULL default '0', + `startquest` mediumint(8) unsigned NOT NULL default '0', + `lockid` mediumint(8) unsigned NOT NULL default '0', + `Material` tinyint(4) NOT NULL default '0', + `sheath` tinyint(3) unsigned NOT NULL default '0', + `RandomProperty` mediumint(8) unsigned NOT NULL default '0', + `RandomSuffix` mediumint(8) unsigned NOT NULL default '0', + `block` mediumint(8) unsigned NOT NULL default '0', + `itemset` mediumint(8) unsigned NOT NULL default '0', + `MaxDurability` smallint(5) unsigned NOT NULL default '0', + `area` mediumint(8) unsigned NOT NULL default '0', + `Map` smallint(6) NOT NULL default '0', + `BagFamily` mediumint(9) NOT NULL default '0', + `TotemCategory` tinyint(4) NOT NULL default '0', + `socketColor_1` tinyint(4) NOT NULL default '0', + `socketContent_1` mediumint(9) NOT NULL default '0', + `socketColor_2` tinyint(4) NOT NULL default '0', + `socketContent_2` mediumint(9) NOT NULL default '0', + `socketColor_3` tinyint(4) NOT NULL default '0', + `socketContent_3` mediumint(9) NOT NULL default '0', + `socketBonus` mediumint(9) NOT NULL default '0', + `GemProperties` mediumint(9) NOT NULL default '0', + `RequiredDisenchantSkill` smallint(6) NOT NULL default '-1', + `ArmorDamageModifier` float NOT NULL default '0', + `ScriptName` varchar(64) NOT NULL default '', + `DisenchantID` mediumint(8) unsigned NOT NULL default '0', + `FoodType` tinyint(3) unsigned NOT NULL default '0', + `minMoneyLoot` int(10) unsigned NOT NULL default '0', + `maxMoneyLoot` int(10) unsigned NOT NULL default '0', + `Duration` int(11) NOT NULL default '0' COMMENT 'Duration in seconds. Negative value means realtime, postive value ingame time', + PRIMARY KEY (`entry`), + KEY `idx_name` (`name`), + KEY `items_index` (`class`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Item System'; + +-- +-- Dumping data for table `item_template` +-- + +LOCK TABLES `item_template` WRITE; +/*!40000 ALTER TABLE `item_template` DISABLE KEYS */; +/*!40000 ALTER TABLE `item_template` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `locales_creature` +-- + +DROP TABLE IF EXISTS `locales_creature`; +CREATE TABLE `locales_creature` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `name_loc1` varchar(100) NOT NULL default '', + `name_loc2` varchar(100) NOT NULL default '', + `name_loc3` varchar(100) NOT NULL default '', + `name_loc4` varchar(100) NOT NULL default '', + `name_loc5` varchar(100) NOT NULL default '', + `name_loc6` varchar(100) NOT NULL default '', + `name_loc7` varchar(100) NOT NULL default '', + `name_loc8` varchar(100) NOT NULL default '', + `subname_loc1` varchar(100) default NULL, + `subname_loc2` varchar(100) default NULL, + `subname_loc3` varchar(100) default NULL, + `subname_loc4` varchar(100) default NULL, + `subname_loc5` varchar(100) default NULL, + `subname_loc6` varchar(100) default NULL, + `subname_loc7` varchar(100) default NULL, + `subname_loc8` varchar(100) default NULL, + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `locales_creature` +-- + +LOCK TABLES `locales_creature` WRITE; +/*!40000 ALTER TABLE `locales_creature` DISABLE KEYS */; +/*!40000 ALTER TABLE `locales_creature` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `locales_gameobject` +-- + +DROP TABLE IF EXISTS `locales_gameobject`; +CREATE TABLE `locales_gameobject` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `name_loc1` varchar(100) NOT NULL default '', + `name_loc2` varchar(100) NOT NULL default '', + `name_loc3` varchar(100) NOT NULL default '', + `name_loc4` varchar(100) NOT NULL default '', + `name_loc5` varchar(100) NOT NULL default '', + `name_loc6` varchar(100) NOT NULL default '', + `name_loc7` varchar(100) NOT NULL default '', + `name_loc8` varchar(100) NOT NULL default '', + `castbarcaption_loc1` varchar(100) NOT NULL default '', + `castbarcaption_loc2` varchar(100) NOT NULL default '', + `castbarcaption_loc3` varchar(100) NOT NULL default '', + `castbarcaption_loc4` varchar(100) NOT NULL default '', + `castbarcaption_loc5` varchar(100) NOT NULL default '', + `castbarcaption_loc6` varchar(100) NOT NULL default '', + `castbarcaption_loc7` varchar(100) NOT NULL default '', + `castbarcaption_loc8` varchar(100) NOT NULL default '', + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `locales_gameobject` +-- + +LOCK TABLES `locales_gameobject` WRITE; +/*!40000 ALTER TABLE `locales_gameobject` DISABLE KEYS */; +/*!40000 ALTER TABLE `locales_gameobject` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `locales_item` +-- + +DROP TABLE IF EXISTS `locales_item`; +CREATE TABLE `locales_item` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `name_loc1` varchar(100) NOT NULL default '', + `name_loc2` varchar(100) NOT NULL default '', + `name_loc3` varchar(100) NOT NULL default '', + `name_loc4` varchar(100) NOT NULL default '', + `name_loc5` varchar(100) NOT NULL default '', + `name_loc6` varchar(100) NOT NULL default '', + `name_loc7` varchar(100) NOT NULL default '', + `name_loc8` varchar(100) NOT NULL default '', + `description_loc1` varchar(255) default NULL, + `description_loc2` varchar(255) default NULL, + `description_loc3` varchar(255) default NULL, + `description_loc4` varchar(255) default NULL, + `description_loc5` varchar(255) default NULL, + `description_loc6` varchar(255) default NULL, + `description_loc7` varchar(255) default NULL, + `description_loc8` varchar(255) default NULL, + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `locales_item` +-- + +LOCK TABLES `locales_item` WRITE; +/*!40000 ALTER TABLE `locales_item` DISABLE KEYS */; +/*!40000 ALTER TABLE `locales_item` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `locales_npc_text` +-- + +DROP TABLE IF EXISTS `locales_npc_text`; +CREATE TABLE `locales_npc_text` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `Text0_0_loc1` longtext, + `Text0_0_loc2` longtext, + `Text0_0_loc3` longtext, + `Text0_0_loc4` longtext, + `Text0_0_loc5` longtext, + `Text0_0_loc6` longtext, + `Text0_0_loc7` longtext, + `Text0_0_loc8` longtext, + `Text0_1_loc1` longtext, + `Text0_1_loc2` longtext, + `Text0_1_loc3` longtext, + `Text0_1_loc4` longtext, + `Text0_1_loc5` longtext, + `Text0_1_loc6` longtext, + `Text0_1_loc7` longtext, + `Text0_1_loc8` longtext, + `Text1_0_loc1` longtext, + `Text1_0_loc2` longtext, + `Text1_0_loc3` longtext, + `Text1_0_loc4` longtext, + `Text1_0_loc5` longtext, + `Text1_0_loc6` longtext, + `Text1_0_loc7` longtext, + `Text1_0_loc8` longtext, + `Text1_1_loc1` longtext, + `Text1_1_loc2` longtext, + `Text1_1_loc3` longtext, + `Text1_1_loc4` longtext, + `Text1_1_loc5` longtext, + `Text1_1_loc6` longtext, + `Text1_1_loc7` longtext, + `Text1_1_loc8` longtext, + `Text2_0_loc1` longtext, + `Text2_0_loc2` longtext, + `Text2_0_loc3` longtext, + `Text2_0_loc4` longtext, + `Text2_0_loc5` longtext, + `Text2_0_loc6` longtext, + `Text2_0_loc7` longtext, + `Text2_0_loc8` longtext, + `Text2_1_loc1` longtext, + `Text2_1_loc2` longtext, + `Text2_1_loc3` longtext, + `Text2_1_loc4` longtext, + `Text2_1_loc5` longtext, + `Text2_1_loc6` longtext, + `Text2_1_loc7` longtext, + `Text2_1_loc8` longtext, + `Text3_0_loc1` longtext, + `Text3_0_loc2` longtext, + `Text3_0_loc3` longtext, + `Text3_0_loc4` longtext, + `Text3_0_loc5` longtext, + `Text3_0_loc6` longtext, + `Text3_0_loc7` longtext, + `Text3_0_loc8` longtext, + `Text3_1_loc1` longtext, + `Text3_1_loc2` longtext, + `Text3_1_loc3` longtext, + `Text3_1_loc4` longtext, + `Text3_1_loc5` longtext, + `Text3_1_loc6` longtext, + `Text3_1_loc7` longtext, + `Text3_1_loc8` longtext, + `Text4_0_loc1` longtext, + `Text4_0_loc2` longtext, + `Text4_0_loc3` longtext, + `Text4_0_loc4` longtext, + `Text4_0_loc5` longtext, + `Text4_0_loc6` longtext, + `Text4_0_loc7` longtext, + `Text4_0_loc8` longtext, + `Text4_1_loc1` longtext, + `Text4_1_loc2` longtext, + `Text4_1_loc3` longtext, + `Text4_1_loc4` longtext, + `Text4_1_loc5` longtext, + `Text4_1_loc6` longtext, + `Text4_1_loc7` longtext, + `Text4_1_loc8` longtext, + `Text5_0_loc1` longtext, + `Text5_0_loc2` longtext, + `Text5_0_loc3` longtext, + `Text5_0_loc4` longtext, + `Text5_0_loc5` longtext, + `Text5_0_loc6` longtext, + `Text5_0_loc7` longtext, + `Text5_0_loc8` longtext, + `Text5_1_loc1` longtext, + `Text5_1_loc2` longtext, + `Text5_1_loc3` longtext, + `Text5_1_loc4` longtext, + `Text5_1_loc5` longtext, + `Text5_1_loc6` longtext, + `Text5_1_loc7` longtext, + `Text5_1_loc8` longtext, + `Text6_0_loc1` longtext, + `Text6_0_loc2` longtext, + `Text6_0_loc3` longtext, + `Text6_0_loc4` longtext, + `Text6_0_loc5` longtext, + `Text6_0_loc6` longtext, + `Text6_0_loc7` longtext, + `Text6_0_loc8` longtext, + `Text6_1_loc1` longtext, + `Text6_1_loc2` longtext, + `Text6_1_loc3` longtext, + `Text6_1_loc4` longtext, + `Text6_1_loc5` longtext, + `Text6_1_loc6` longtext, + `Text6_1_loc7` longtext, + `Text6_1_loc8` longtext, + `Text7_0_loc1` longtext, + `Text7_0_loc2` longtext, + `Text7_0_loc3` longtext, + `Text7_0_loc4` longtext, + `Text7_0_loc5` longtext, + `Text7_0_loc6` longtext, + `Text7_0_loc7` longtext, + `Text7_0_loc8` longtext, + `Text7_1_loc1` longtext, + `Text7_1_loc2` longtext, + `Text7_1_loc3` longtext, + `Text7_1_loc4` longtext, + `Text7_1_loc5` longtext, + `Text7_1_loc6` longtext, + `Text7_1_loc7` longtext, + `Text7_1_loc8` longtext, + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `locales_npc_text` +-- + +LOCK TABLES `locales_npc_text` WRITE; +/*!40000 ALTER TABLE `locales_npc_text` DISABLE KEYS */; +/*!40000 ALTER TABLE `locales_npc_text` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `locales_page_text` +-- + +DROP TABLE IF EXISTS `locales_page_text`; +CREATE TABLE `locales_page_text` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `Text_loc1` longtext, + `Text_loc2` longtext, + `Text_loc3` longtext, + `Text_loc4` longtext, + `Text_loc5` longtext, + `Text_loc6` longtext, + `Text_loc7` longtext, + `Text_loc8` longtext, + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `locales_page_text` +-- + +LOCK TABLES `locales_page_text` WRITE; +/*!40000 ALTER TABLE `locales_page_text` DISABLE KEYS */; +/*!40000 ALTER TABLE `locales_page_text` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `locales_quest` +-- + +DROP TABLE IF EXISTS `locales_quest`; +CREATE TABLE `locales_quest` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `Title_loc1` text, + `Title_loc2` text, + `Title_loc3` text, + `Title_loc4` text, + `Title_loc5` text, + `Title_loc6` text, + `Title_loc7` text, + `Title_loc8` text, + `Details_loc1` text, + `Details_loc2` text, + `Details_loc3` text, + `Details_loc4` text, + `Details_loc5` text, + `Details_loc6` text, + `Details_loc7` text, + `Details_loc8` text, + `Objectives_loc1` text, + `Objectives_loc2` text, + `Objectives_loc3` text, + `Objectives_loc4` text, + `Objectives_loc5` text, + `Objectives_loc6` text, + `Objectives_loc7` text, + `Objectives_loc8` text, + `OfferRewardText_loc1` text, + `OfferRewardText_loc2` text, + `OfferRewardText_loc3` text, + `OfferRewardText_loc4` text, + `OfferRewardText_loc5` text, + `OfferRewardText_loc6` text, + `OfferRewardText_loc7` text, + `OfferRewardText_loc8` text, + `RequestItemsText_loc1` text, + `RequestItemsText_loc2` text, + `RequestItemsText_loc3` text, + `RequestItemsText_loc4` text, + `RequestItemsText_loc5` text, + `RequestItemsText_loc6` text, + `RequestItemsText_loc7` text, + `RequestItemsText_loc8` text, + `EndText_loc1` text, + `EndText_loc2` text, + `EndText_loc3` text, + `EndText_loc4` text, + `EndText_loc5` text, + `EndText_loc6` text, + `EndText_loc7` text, + `EndText_loc8` text, + `ObjectiveText1_loc1` text, + `ObjectiveText1_loc2` text, + `ObjectiveText1_loc3` text, + `ObjectiveText1_loc4` text, + `ObjectiveText1_loc5` text, + `ObjectiveText1_loc6` text, + `ObjectiveText1_loc7` text, + `ObjectiveText1_loc8` text, + `ObjectiveText2_loc1` text, + `ObjectiveText2_loc2` text, + `ObjectiveText2_loc3` text, + `ObjectiveText2_loc4` text, + `ObjectiveText2_loc5` text, + `ObjectiveText2_loc6` text, + `ObjectiveText2_loc7` text, + `ObjectiveText2_loc8` text, + `ObjectiveText3_loc1` text, + `ObjectiveText3_loc2` text, + `ObjectiveText3_loc3` text, + `ObjectiveText3_loc4` text, + `ObjectiveText3_loc5` text, + `ObjectiveText3_loc6` text, + `ObjectiveText3_loc7` text, + `ObjectiveText3_loc8` text, + `ObjectiveText4_loc1` text, + `ObjectiveText4_loc2` text, + `ObjectiveText4_loc3` text, + `ObjectiveText4_loc4` text, + `ObjectiveText4_loc5` text, + `ObjectiveText4_loc6` text, + `ObjectiveText4_loc7` text, + `ObjectiveText4_loc8` text, + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `locales_quest` +-- + +LOCK TABLES `locales_quest` WRITE; +/*!40000 ALTER TABLE `locales_quest` DISABLE KEYS */; +/*!40000 ALTER TABLE `locales_quest` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `npc_gossip` +-- + +DROP TABLE IF EXISTS `npc_gossip`; +CREATE TABLE `npc_gossip` ( + `npc_guid` int(10) unsigned NOT NULL default '0', + `textid` mediumint(8) unsigned NOT NULL default '0', + PRIMARY KEY (`npc_guid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `npc_gossip` +-- + +LOCK TABLES `npc_gossip` WRITE; +/*!40000 ALTER TABLE `npc_gossip` DISABLE KEYS */; +/*!40000 ALTER TABLE `npc_gossip` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `npc_gossip_textid` +-- + +DROP TABLE IF EXISTS `npc_gossip_textid`; +CREATE TABLE `npc_gossip_textid` ( + `zoneid` smallint(5) unsigned NOT NULL default '0', + `action` smallint(5) unsigned NOT NULL default '0', + `textid` mediumint(8) unsigned NOT NULL default '0', + KEY `zoneid` (`zoneid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `npc_gossip_textid` +-- + +LOCK TABLES `npc_gossip_textid` WRITE; +/*!40000 ALTER TABLE `npc_gossip_textid` DISABLE KEYS */; +/*!40000 ALTER TABLE `npc_gossip_textid` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `npc_option` +-- + +DROP TABLE IF EXISTS `npc_option`; +CREATE TABLE `npc_option` ( + `id` tinyint(3) unsigned NOT NULL default '0', + `gossip_id` tinyint(3) unsigned NOT NULL default '0', + `npcflag` int(10) unsigned NOT NULL default '0', + `icon` tinyint(3) unsigned NOT NULL default '0', + `action` tinyint(3) unsigned NOT NULL default '0', + `option_text` text, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `npc_option` +-- + +LOCK TABLES `npc_option` WRITE; +/*!40000 ALTER TABLE `npc_option` DISABLE KEYS */; +/*!40000 ALTER TABLE `npc_option` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `npc_text` +-- + +DROP TABLE IF EXISTS `npc_text`; +CREATE TABLE `npc_text` ( + `ID` mediumint(8) unsigned NOT NULL default '0', + `text0_0` longtext, + `text0_1` longtext, + `lang0` tinyint(3) unsigned NOT NULL default '0', + `prob0` float NOT NULL default '0', + `em0_0` smallint(5) unsigned NOT NULL default '0', + `em0_1` smallint(5) unsigned NOT NULL default '0', + `em0_2` smallint(5) unsigned NOT NULL default '0', + `em0_3` smallint(5) unsigned NOT NULL default '0', + `em0_4` smallint(5) unsigned NOT NULL default '0', + `em0_5` smallint(5) unsigned NOT NULL default '0', + `text1_0` longtext, + `text1_1` longtext, + `lang1` tinyint(3) unsigned NOT NULL default '0', + `prob1` float NOT NULL default '0', + `em1_0` smallint(5) unsigned NOT NULL default '0', + `em1_1` smallint(5) unsigned NOT NULL default '0', + `em1_2` smallint(5) unsigned NOT NULL default '0', + `em1_3` smallint(5) unsigned NOT NULL default '0', + `em1_4` smallint(5) unsigned NOT NULL default '0', + `em1_5` smallint(5) unsigned NOT NULL default '0', + `text2_0` longtext, + `text2_1` longtext, + `lang2` tinyint(3) unsigned NOT NULL default '0', + `prob2` float NOT NULL default '0', + `em2_0` smallint(5) unsigned NOT NULL default '0', + `em2_1` smallint(5) unsigned NOT NULL default '0', + `em2_2` smallint(5) unsigned NOT NULL default '0', + `em2_3` smallint(5) unsigned NOT NULL default '0', + `em2_4` smallint(5) unsigned NOT NULL default '0', + `em2_5` smallint(5) unsigned NOT NULL default '0', + `text3_0` longtext, + `text3_1` longtext, + `lang3` tinyint(3) unsigned NOT NULL default '0', + `prob3` float NOT NULL default '0', + `em3_0` smallint(5) unsigned NOT NULL default '0', + `em3_1` smallint(5) unsigned NOT NULL default '0', + `em3_2` smallint(5) unsigned NOT NULL default '0', + `em3_3` smallint(5) unsigned NOT NULL default '0', + `em3_4` smallint(5) unsigned NOT NULL default '0', + `em3_5` smallint(5) unsigned NOT NULL default '0', + `text4_0` longtext, + `text4_1` longtext, + `lang4` tinyint(3) unsigned NOT NULL default '0', + `prob4` float NOT NULL default '0', + `em4_0` smallint(5) unsigned NOT NULL default '0', + `em4_1` smallint(5) unsigned NOT NULL default '0', + `em4_2` smallint(5) unsigned NOT NULL default '0', + `em4_3` smallint(5) unsigned NOT NULL default '0', + `em4_4` smallint(5) unsigned NOT NULL default '0', + `em4_5` smallint(5) unsigned NOT NULL default '0', + `text5_0` longtext, + `text5_1` longtext, + `lang5` tinyint(3) unsigned NOT NULL default '0', + `prob5` float NOT NULL default '0', + `em5_0` smallint(5) unsigned NOT NULL default '0', + `em5_1` smallint(5) unsigned NOT NULL default '0', + `em5_2` smallint(5) unsigned NOT NULL default '0', + `em5_3` smallint(5) unsigned NOT NULL default '0', + `em5_4` smallint(5) unsigned NOT NULL default '0', + `em5_5` smallint(5) unsigned NOT NULL default '0', + `text6_0` longtext, + `text6_1` longtext, + `lang6` tinyint(3) unsigned NOT NULL default '0', + `prob6` float NOT NULL default '0', + `em6_0` smallint(5) unsigned NOT NULL default '0', + `em6_1` smallint(5) unsigned NOT NULL default '0', + `em6_2` smallint(5) unsigned NOT NULL default '0', + `em6_3` smallint(5) unsigned NOT NULL default '0', + `em6_4` smallint(5) unsigned NOT NULL default '0', + `em6_5` smallint(5) unsigned NOT NULL default '0', + `text7_0` longtext, + `text7_1` longtext, + `lang7` tinyint(3) unsigned NOT NULL default '0', + `prob7` float NOT NULL default '0', + `em7_0` smallint(5) unsigned NOT NULL default '0', + `em7_1` smallint(5) unsigned NOT NULL default '0', + `em7_2` smallint(5) unsigned NOT NULL default '0', + `em7_3` smallint(5) unsigned NOT NULL default '0', + `em7_4` smallint(5) unsigned NOT NULL default '0', + `em7_5` smallint(5) unsigned NOT NULL default '0', + PRIMARY KEY (`ID`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `npc_text` +-- + +LOCK TABLES `npc_text` WRITE; +/*!40000 ALTER TABLE `npc_text` DISABLE KEYS */; +/*!40000 ALTER TABLE `npc_text` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `npc_trainer` +-- + +DROP TABLE IF EXISTS `npc_trainer`; +CREATE TABLE `npc_trainer` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `spell` mediumint(8) unsigned NOT NULL default '0', + `spellcost` int(10) unsigned NOT NULL default '0', + `reqskill` smallint(5) unsigned NOT NULL default '0', + `reqskillvalue` smallint(5) unsigned NOT NULL default '0', + `reqlevel` tinyint(3) unsigned NOT NULL default '0', + PRIMARY KEY (`entry`,`spell`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `npc_trainer` +-- + +LOCK TABLES `npc_trainer` WRITE; +/*!40000 ALTER TABLE `npc_trainer` DISABLE KEYS */; +/*!40000 ALTER TABLE `npc_trainer` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `npc_vendor` +-- + +DROP TABLE IF EXISTS `npc_vendor`; +CREATE TABLE `npc_vendor` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `item` mediumint(8) unsigned NOT NULL default '0', + `maxcount` tinyint(3) unsigned NOT NULL default '0', + `incrtime` int(10) unsigned NOT NULL default '0', + `ExtendedCost` mediumint(8) unsigned NOT NULL default '0', + PRIMARY KEY (`entry`,`item`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Npc System'; + +-- +-- Dumping data for table `npc_vendor` +-- + +LOCK TABLES `npc_vendor` WRITE; +/*!40000 ALTER TABLE `npc_vendor` DISABLE KEYS */; +/*!40000 ALTER TABLE `npc_vendor` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `page_text` +-- + +DROP TABLE IF EXISTS `page_text`; +CREATE TABLE `page_text` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `text` longtext NOT NULL, + `next_page` mediumint(8) unsigned NOT NULL default '0', + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Item System'; + +-- +-- Dumping data for table `page_text` +-- + +LOCK TABLES `page_text` WRITE; +/*!40000 ALTER TABLE `page_text` DISABLE KEYS */; +/*!40000 ALTER TABLE `page_text` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `pet_levelstats` +-- + +DROP TABLE IF EXISTS `pet_levelstats`; +CREATE TABLE `pet_levelstats` ( + `creature_entry` mediumint(8) unsigned NOT NULL, + `level` tinyint(3) unsigned NOT NULL, + `hp` smallint(5) unsigned NOT NULL, + `mana` smallint(5) unsigned NOT NULL, + `armor` int(10) unsigned NOT NULL default '0', + `str` smallint(5) unsigned NOT NULL, + `agi` smallint(5) unsigned NOT NULL, + `sta` smallint(5) unsigned NOT NULL, + `inte` smallint(5) unsigned NOT NULL, + `spi` smallint(5) unsigned NOT NULL, + PRIMARY KEY (`creature_entry`,`level`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0 COMMENT='Stores pet levels stats.'; + +-- +-- Dumping data for table `pet_levelstats` +-- + +LOCK TABLES `pet_levelstats` WRITE; +/*!40000 ALTER TABLE `pet_levelstats` DISABLE KEYS */; +/*!40000 ALTER TABLE `pet_levelstats` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `pet_name_generation` +-- + +DROP TABLE IF EXISTS `pet_name_generation`; +CREATE TABLE `pet_name_generation` ( + `id` mediumint(8) unsigned NOT NULL auto_increment, + `word` tinytext NOT NULL, + `entry` mediumint(8) unsigned NOT NULL default '0', + `half` tinyint(4) NOT NULL default '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `pet_name_generation` +-- + +LOCK TABLES `pet_name_generation` WRITE; +/*!40000 ALTER TABLE `pet_name_generation` DISABLE KEYS */; +/*!40000 ALTER TABLE `pet_name_generation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `petcreateinfo_spell` +-- + +DROP TABLE IF EXISTS `petcreateinfo_spell`; +CREATE TABLE `petcreateinfo_spell` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `Spell1` mediumint(8) unsigned NOT NULL default '0', + `Spell2` mediumint(8) unsigned NOT NULL default '0', + `Spell3` mediumint(8) unsigned NOT NULL default '0', + `Spell4` mediumint(8) unsigned NOT NULL default '0', + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Pet Create Spells'; + +-- +-- Dumping data for table `petcreateinfo_spell` +-- + +LOCK TABLES `petcreateinfo_spell` WRITE; +/*!40000 ALTER TABLE `petcreateinfo_spell` DISABLE KEYS */; +/*!40000 ALTER TABLE `petcreateinfo_spell` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `pickpocketing_loot_template` +-- + +DROP TABLE IF EXISTS `pickpocketing_loot_template`; +CREATE TABLE `pickpocketing_loot_template` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `item` mediumint(8) unsigned NOT NULL default '0', + `ChanceOrQuestChance` float NOT NULL default '100', + `groupid` tinyint(3) unsigned NOT NULL default '0', + `mincountOrRef` mediumint(9) NOT NULL default '1', + `maxcount` tinyint(3) unsigned NOT NULL default '1', + `lootcondition` tinyint(3) unsigned NOT NULL default '0', + `condition_value1` mediumint(8) unsigned NOT NULL default '0', + `condition_value2` mediumint(8) unsigned NOT NULL default '0', + PRIMARY KEY (`entry`,`item`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Loot System'; + +-- +-- Dumping data for table `pickpocketing_loot_template` +-- + +LOCK TABLES `pickpocketing_loot_template` WRITE; +/*!40000 ALTER TABLE `pickpocketing_loot_template` DISABLE KEYS */; +/*!40000 ALTER TABLE `pickpocketing_loot_template` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `player_classlevelstats` +-- + +DROP TABLE IF EXISTS `player_classlevelstats`; +CREATE TABLE `player_classlevelstats` ( + `class` tinyint(3) unsigned NOT NULL, + `level` tinyint(3) unsigned NOT NULL, + `basehp` smallint(5) unsigned NOT NULL, + `basemana` smallint(5) unsigned NOT NULL, + PRIMARY KEY (`class`,`level`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0 COMMENT='Stores levels stats.'; + +-- +-- Dumping data for table `player_classlevelstats` +-- + +LOCK TABLES `player_classlevelstats` WRITE; +/*!40000 ALTER TABLE `player_classlevelstats` DISABLE KEYS */; +/*!40000 ALTER TABLE `player_classlevelstats` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `player_levelstats` +-- + +DROP TABLE IF EXISTS `player_levelstats`; +CREATE TABLE `player_levelstats` ( + `race` tinyint(3) unsigned NOT NULL, + `class` tinyint(3) unsigned NOT NULL, + `level` tinyint(3) unsigned NOT NULL, + `str` tinyint(3) unsigned NOT NULL, + `agi` tinyint(3) unsigned NOT NULL, + `sta` tinyint(3) unsigned NOT NULL, + `inte` tinyint(3) unsigned NOT NULL, + `spi` tinyint(3) unsigned NOT NULL, + PRIMARY KEY (`race`,`class`,`level`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0 COMMENT='Stores levels stats.'; + +-- +-- Dumping data for table `player_levelstats` +-- + +LOCK TABLES `player_levelstats` WRITE; +/*!40000 ALTER TABLE `player_levelstats` DISABLE KEYS */; +/*!40000 ALTER TABLE `player_levelstats` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `playercreateinfo` +-- + +DROP TABLE IF EXISTS `playercreateinfo`; +CREATE TABLE `playercreateinfo` ( + `race` tinyint(3) unsigned NOT NULL default '0', + `class` tinyint(3) unsigned NOT NULL default '0', + `map` smallint(5) unsigned NOT NULL default '0', + `zone` mediumint(8) unsigned NOT NULL default '0', + `position_x` float NOT NULL default '0', + `position_y` float NOT NULL default '0', + `position_z` float NOT NULL default '0', + PRIMARY KEY (`race`,`class`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `playercreateinfo` +-- + +LOCK TABLES `playercreateinfo` WRITE; +/*!40000 ALTER TABLE `playercreateinfo` DISABLE KEYS */; +/*!40000 ALTER TABLE `playercreateinfo` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `playercreateinfo_action` +-- + +DROP TABLE IF EXISTS `playercreateinfo_action`; +CREATE TABLE `playercreateinfo_action` ( + `race` tinyint(3) unsigned NOT NULL default '0', + `class` tinyint(3) unsigned NOT NULL default '0', + `button` smallint(5) unsigned NOT NULL default '0', + `action` smallint(5) unsigned NOT NULL default '0', + `type` smallint(5) unsigned NOT NULL default '0', + `misc` smallint(5) unsigned NOT NULL default '0', + KEY `playercreateinfo_race_class_index` (`race`,`class`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `playercreateinfo_action` +-- + +LOCK TABLES `playercreateinfo_action` WRITE; +/*!40000 ALTER TABLE `playercreateinfo_action` DISABLE KEYS */; +/*!40000 ALTER TABLE `playercreateinfo_action` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `playercreateinfo_item` +-- + +DROP TABLE IF EXISTS `playercreateinfo_item`; +CREATE TABLE `playercreateinfo_item` ( + `race` tinyint(3) unsigned NOT NULL default '0', + `class` tinyint(3) unsigned NOT NULL default '0', + `itemid` mediumint(8) unsigned NOT NULL default '0', + `amount` tinyint(3) unsigned NOT NULL default '1', + KEY `playercreateinfo_race_class_index` (`race`,`class`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `playercreateinfo_item` +-- + +LOCK TABLES `playercreateinfo_item` WRITE; +/*!40000 ALTER TABLE `playercreateinfo_item` DISABLE KEYS */; +/*!40000 ALTER TABLE `playercreateinfo_item` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `playercreateinfo_spell` +-- + +DROP TABLE IF EXISTS `playercreateinfo_spell`; +CREATE TABLE `playercreateinfo_spell` ( + `race` tinyint(3) unsigned NOT NULL default '0', + `class` tinyint(3) unsigned NOT NULL default '0', + `Spell` mediumint(8) unsigned NOT NULL default '0', + `Note` varchar(255) default NULL, + `Active` tinyint(3) unsigned NOT NULL default '1', + PRIMARY KEY (`race`,`class`,`Spell`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `playercreateinfo_spell` +-- + +LOCK TABLES `playercreateinfo_spell` WRITE; +/*!40000 ALTER TABLE `playercreateinfo_spell` DISABLE KEYS */; +/*!40000 ALTER TABLE `playercreateinfo_spell` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `playercreateinfo_spell_custom` +-- + +DROP TABLE IF EXISTS `playercreateinfo_spell_custom`; +CREATE TABLE `playercreateinfo_spell_custom` ( + `race` tinyint(3) unsigned NOT NULL default '0', + `class` tinyint(3) unsigned NOT NULL default '0', + `Spell` mediumint(8) unsigned NOT NULL default '0', + `Note` varchar(255) default NULL, + `Active` tinyint(3) unsigned NOT NULL default '1', + PRIMARY KEY (`race`,`class`,`Spell`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `playercreateinfo_spell_custom` +-- + +LOCK TABLES `playercreateinfo_spell_custom` WRITE; +/*!40000 ALTER TABLE `playercreateinfo_spell_custom` DISABLE KEYS */; +/*!40000 ALTER TABLE `playercreateinfo_spell_custom` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `prospecting_loot_template` +-- + +DROP TABLE IF EXISTS `prospecting_loot_template`; +CREATE TABLE `prospecting_loot_template` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `item` mediumint(8) unsigned NOT NULL default '0', + `ChanceOrQuestChance` float NOT NULL default '100', + `groupid` tinyint(3) unsigned NOT NULL default '0', + `mincountOrRef` mediumint(9) NOT NULL default '1', + `maxcount` tinyint(3) unsigned NOT NULL default '1', + `lootcondition` tinyint(3) unsigned NOT NULL default '0', + `condition_value1` mediumint(8) unsigned NOT NULL default '0', + `condition_value2` mediumint(8) unsigned NOT NULL default '0', + PRIMARY KEY (`entry`,`item`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Loot System'; + +-- +-- Dumping data for table `prospecting_loot_template` +-- + +LOCK TABLES `prospecting_loot_template` WRITE; +/*!40000 ALTER TABLE `prospecting_loot_template` DISABLE KEYS */; +/*!40000 ALTER TABLE `prospecting_loot_template` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `quest_end_scripts` +-- + +DROP TABLE IF EXISTS `quest_end_scripts`; +CREATE TABLE `quest_end_scripts` ( + `id` mediumint(8) unsigned NOT NULL default '0', + `delay` int(10) unsigned NOT NULL default '0', + `command` mediumint(8) unsigned NOT NULL default '0', + `datalong` mediumint(8) unsigned NOT NULL default '0', + `datalong2` int(10) unsigned NOT NULL default '0', + `datatext` text NOT NULL, + `x` float NOT NULL default '0', + `y` float NOT NULL default '0', + `z` float NOT NULL default '0', + `o` float NOT NULL default '0' +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `quest_end_scripts` +-- + +LOCK TABLES `quest_end_scripts` WRITE; +/*!40000 ALTER TABLE `quest_end_scripts` DISABLE KEYS */; +/*!40000 ALTER TABLE `quest_end_scripts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `quest_mail_loot_template` +-- + +DROP TABLE IF EXISTS `quest_mail_loot_template`; +CREATE TABLE `quest_mail_loot_template` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `item` mediumint(8) unsigned NOT NULL default '0', + `ChanceOrQuestChance` float NOT NULL default '100', + `groupid` tinyint(3) unsigned NOT NULL default '0', + `mincountOrRef` mediumint(9) NOT NULL default '1', + `maxcount` tinyint(3) unsigned NOT NULL default '1', + `lootcondition` tinyint(3) unsigned NOT NULL default '0', + `condition_value1` mediumint(8) unsigned NOT NULL default '0', + `condition_value2` mediumint(8) unsigned NOT NULL default '0', + PRIMARY KEY (`entry`,`item`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Loot System'; + +-- +-- Dumping data for table `quest_mail_loot_template` +-- + +LOCK TABLES `quest_mail_loot_template` WRITE; +/*!40000 ALTER TABLE `quest_mail_loot_template` DISABLE KEYS */; +/*!40000 ALTER TABLE `quest_mail_loot_template` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `quest_start_scripts` +-- + +DROP TABLE IF EXISTS `quest_start_scripts`; +CREATE TABLE `quest_start_scripts` ( + `id` mediumint(8) unsigned NOT NULL default '0', + `delay` int(10) unsigned NOT NULL default '0', + `command` mediumint(8) unsigned NOT NULL default '0', + `datalong` mediumint(8) unsigned NOT NULL default '0', + `datalong2` int(10) unsigned NOT NULL default '0', + `datatext` text NOT NULL, + `x` float NOT NULL default '0', + `y` float NOT NULL default '0', + `z` float NOT NULL default '0', + `o` float NOT NULL default '0' +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `quest_start_scripts` +-- + +LOCK TABLES `quest_start_scripts` WRITE; +/*!40000 ALTER TABLE `quest_start_scripts` DISABLE KEYS */; +/*!40000 ALTER TABLE `quest_start_scripts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `quest_template` +-- + +DROP TABLE IF EXISTS `quest_template`; +CREATE TABLE `quest_template` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `Method` tinyint(3) unsigned NOT NULL default '2', + `ZoneOrSort` smallint(6) NOT NULL default '0', + `SkillOrClass` smallint(6) NOT NULL default '0', + `MinLevel` tinyint(3) unsigned NOT NULL default '0', + `QuestLevel` tinyint(3) unsigned NOT NULL default '0', + `Type` smallint(5) unsigned NOT NULL default '0', + `RequiredRaces` smallint(5) unsigned NOT NULL default '0', + `RequiredSkillValue` smallint(5) unsigned NOT NULL default '0', + `RepObjectiveFaction` smallint(5) unsigned NOT NULL default '0', + `RepObjectiveValue` mediumint(9) NOT NULL default '0', + `RequiredMinRepFaction` smallint(5) unsigned NOT NULL default '0', + `RequiredMinRepValue` mediumint(9) NOT NULL default '0', + `RequiredMaxRepFaction` smallint(5) unsigned NOT NULL default '0', + `RequiredMaxRepValue` mediumint(9) NOT NULL default '0', + `SuggestedPlayers` tinyint(3) unsigned NOT NULL default '0', + `LimitTime` int(10) unsigned NOT NULL default '0', + `QuestFlags` smallint(5) unsigned NOT NULL default '0', + `SpecialFlags` tinyint(3) unsigned NOT NULL default '0', + `CharTitleId` tinyint(3) unsigned NOT NULL default '0', + `PrevQuestId` mediumint(9) NOT NULL default '0', + `NextQuestId` mediumint(9) NOT NULL default '0', + `ExclusiveGroup` mediumint(9) NOT NULL default '0', + `NextQuestInChain` mediumint(8) unsigned NOT NULL default '0', + `SrcItemId` mediumint(8) unsigned NOT NULL default '0', + `SrcItemCount` tinyint(3) unsigned NOT NULL default '0', + `SrcSpell` mediumint(8) unsigned NOT NULL default '0', + `Title` text, + `Details` text, + `Objectives` text, + `OfferRewardText` text, + `RequestItemsText` text, + `EndText` text, + `ObjectiveText1` text, + `ObjectiveText2` text, + `ObjectiveText3` text, + `ObjectiveText4` text, + `ReqItemId1` mediumint(8) unsigned NOT NULL default '0', + `ReqItemId2` mediumint(8) unsigned NOT NULL default '0', + `ReqItemId3` mediumint(8) unsigned NOT NULL default '0', + `ReqItemId4` mediumint(8) unsigned NOT NULL default '0', + `ReqItemCount1` smallint(5) unsigned NOT NULL default '0', + `ReqItemCount2` smallint(5) unsigned NOT NULL default '0', + `ReqItemCount3` smallint(5) unsigned NOT NULL default '0', + `ReqItemCount4` smallint(5) unsigned NOT NULL default '0', + `ReqSourceId1` mediumint(8) unsigned NOT NULL default '0', + `ReqSourceId2` mediumint(8) unsigned NOT NULL default '0', + `ReqSourceId3` mediumint(8) unsigned NOT NULL default '0', + `ReqSourceId4` mediumint(8) unsigned NOT NULL default '0', + `ReqSourceCount1` smallint(5) unsigned NOT NULL default '0', + `ReqSourceCount2` smallint(5) unsigned NOT NULL default '0', + `ReqSourceCount3` smallint(5) unsigned NOT NULL default '0', + `ReqSourceCount4` smallint(5) unsigned NOT NULL default '0', + `ReqSourceRef1` tinyint(3) unsigned NOT NULL default '0', + `ReqSourceRef2` tinyint(3) unsigned NOT NULL default '0', + `ReqSourceRef3` tinyint(3) unsigned NOT NULL default '0', + `ReqSourceRef4` tinyint(3) unsigned NOT NULL default '0', + `ReqCreatureOrGOId1` mediumint(9) NOT NULL default '0', + `ReqCreatureOrGOId2` mediumint(9) NOT NULL default '0', + `ReqCreatureOrGOId3` mediumint(9) NOT NULL default '0', + `ReqCreatureOrGOId4` mediumint(9) NOT NULL default '0', + `ReqCreatureOrGOCount1` smallint(5) unsigned NOT NULL default '0', + `ReqCreatureOrGOCount2` smallint(5) unsigned NOT NULL default '0', + `ReqCreatureOrGOCount3` smallint(5) unsigned NOT NULL default '0', + `ReqCreatureOrGOCount4` smallint(5) unsigned NOT NULL default '0', + `ReqSpellCast1` mediumint(8) unsigned NOT NULL default '0', + `ReqSpellCast2` mediumint(8) unsigned NOT NULL default '0', + `ReqSpellCast3` mediumint(8) unsigned NOT NULL default '0', + `ReqSpellCast4` mediumint(8) unsigned NOT NULL default '0', + `RewChoiceItemId1` mediumint(8) unsigned NOT NULL default '0', + `RewChoiceItemId2` mediumint(8) unsigned NOT NULL default '0', + `RewChoiceItemId3` mediumint(8) unsigned NOT NULL default '0', + `RewChoiceItemId4` mediumint(8) unsigned NOT NULL default '0', + `RewChoiceItemId5` mediumint(8) unsigned NOT NULL default '0', + `RewChoiceItemId6` mediumint(8) unsigned NOT NULL default '0', + `RewChoiceItemCount1` smallint(5) unsigned NOT NULL default '0', + `RewChoiceItemCount2` smallint(5) unsigned NOT NULL default '0', + `RewChoiceItemCount3` smallint(5) unsigned NOT NULL default '0', + `RewChoiceItemCount4` smallint(5) unsigned NOT NULL default '0', + `RewChoiceItemCount5` smallint(5) unsigned NOT NULL default '0', + `RewChoiceItemCount6` smallint(5) unsigned NOT NULL default '0', + `RewItemId1` mediumint(8) unsigned NOT NULL default '0', + `RewItemId2` mediumint(8) unsigned NOT NULL default '0', + `RewItemId3` mediumint(8) unsigned NOT NULL default '0', + `RewItemId4` mediumint(8) unsigned NOT NULL default '0', + `RewItemCount1` smallint(5) unsigned NOT NULL default '0', + `RewItemCount2` smallint(5) unsigned NOT NULL default '0', + `RewItemCount3` smallint(5) unsigned NOT NULL default '0', + `RewItemCount4` smallint(5) unsigned NOT NULL default '0', + `RewRepFaction1` smallint(5) unsigned NOT NULL default '0' COMMENT 'faction id from Faction.dbc in this case', + `RewRepFaction2` smallint(5) unsigned NOT NULL default '0' COMMENT 'faction id from Faction.dbc in this case', + `RewRepFaction3` smallint(5) unsigned NOT NULL default '0' COMMENT 'faction id from Faction.dbc in this case', + `RewRepFaction4` smallint(5) unsigned NOT NULL default '0' COMMENT 'faction id from Faction.dbc in this case', + `RewRepFaction5` smallint(5) unsigned NOT NULL default '0' COMMENT 'faction id from Faction.dbc in this case', + `RewRepValue1` mediumint(9) NOT NULL default '0', + `RewRepValue2` mediumint(9) NOT NULL default '0', + `RewRepValue3` mediumint(9) NOT NULL default '0', + `RewRepValue4` mediumint(9) NOT NULL default '0', + `RewRepValue5` mediumint(9) NOT NULL default '0', + `RewHonorableKills` mediumint(9) unsigned NOT NULL default '0', + `RewOrReqMoney` int(11) NOT NULL default '0', + `RewMoneyMaxLevel` int(10) unsigned NOT NULL default '0', + `RewSpell` mediumint(8) unsigned NOT NULL default '0', + `RewSpellCast` mediumint(8) unsigned NOT NULL default '0', + `RewMailTemplateId` mediumint(8) unsigned NOT NULL default '0', + `RewMailDelaySecs` int(11) unsigned NOT NULL default '0', + `PointMapId` smallint(5) unsigned NOT NULL default '0', + `PointX` float NOT NULL default '0', + `PointY` float NOT NULL default '0', + `PointOpt` mediumint(8) unsigned NOT NULL default '0', + `DetailsEmote1` smallint(5) unsigned NOT NULL default '0', + `DetailsEmote2` smallint(5) unsigned NOT NULL default '0', + `DetailsEmote3` smallint(5) unsigned NOT NULL default '0', + `DetailsEmote4` smallint(5) unsigned NOT NULL default '0', + `IncompleteEmote` smallint(5) unsigned NOT NULL default '0', + `CompleteEmote` smallint(5) unsigned NOT NULL default '0', + `OfferRewardEmote1` smallint(5) unsigned NOT NULL default '0', + `OfferRewardEmote2` smallint(5) unsigned NOT NULL default '0', + `OfferRewardEmote3` smallint(5) unsigned NOT NULL default '0', + `OfferRewardEmote4` smallint(5) unsigned NOT NULL default '0', + `StartScript` mediumint(8) unsigned NOT NULL default '0', + `CompleteScript` mediumint(8) unsigned NOT NULL default '0', + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Quest System'; + +-- +-- Dumping data for table `quest_template` +-- + +LOCK TABLES `quest_template` WRITE; +/*!40000 ALTER TABLE `quest_template` DISABLE KEYS */; +/*!40000 ALTER TABLE `quest_template` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `reference_loot_template` +-- + +DROP TABLE IF EXISTS `reference_loot_template`; +CREATE TABLE `reference_loot_template` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `item` mediumint(8) unsigned NOT NULL default '0', + `ChanceOrQuestChance` float NOT NULL default '100', + `groupid` tinyint(3) unsigned NOT NULL default '0', + `mincountOrRef` mediumint(9) NOT NULL default '1', + `maxcount` tinyint(3) unsigned NOT NULL default '1', + `lootcondition` tinyint(3) unsigned NOT NULL default '0', + `condition_value1` mediumint(8) unsigned NOT NULL default '0', + `condition_value2` mediumint(8) unsigned NOT NULL default '0', + PRIMARY KEY (`entry`,`item`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Loot System'; + +-- +-- Dumping data for table `reference_loot_template` +-- + +LOCK TABLES `reference_loot_template` WRITE; +/*!40000 ALTER TABLE `reference_loot_template` DISABLE KEYS */; +/*!40000 ALTER TABLE `reference_loot_template` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `reserved_name` +-- + +DROP TABLE IF EXISTS `reserved_name`; +CREATE TABLE `reserved_name` ( + `name` varchar(12) NOT NULL default '', + PRIMARY KEY (`name`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Player Reserved Names'; + +-- +-- Dumping data for table `reserved_name` +-- + +LOCK TABLES `reserved_name` WRITE; +/*!40000 ALTER TABLE `reserved_name` DISABLE KEYS */; +/*!40000 ALTER TABLE `reserved_name` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `script_db_version` +-- + +DROP TABLE IF EXISTS `script_db_version`; +CREATE TABLE `script_db_version` ( + `version` varchar(255) NOT NULL default '' COMMENT 'Database version string' +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `script_db_version` +-- + +LOCK TABLES `script_db_version` WRITE; +/*!40000 ALTER TABLE `script_db_version` DISABLE KEYS */; +/*!40000 ALTER TABLE `script_db_version` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `script_texts` +-- + +DROP TABLE IF EXISTS `script_texts`; +CREATE TABLE `script_texts` ( + `entry` mediumint(8) NOT NULL, + `content_default` text NOT NULL, + `content_loc1` text, + `content_loc2` text, + `content_loc3` text, + `content_loc4` text, + `content_loc5` text, + `content_loc6` text, + `content_loc7` text, + `content_loc8` text, + `sound` tinyint(3) unsigned NOT NULL default '0', + `type` tinyint(3) unsigned NOT NULL default '0', + `language` tinyint(3) unsigned NOT NULL default '0', + `comment` text, + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Script Texts'; + +-- +-- Dumping data for table `script_texts` +-- + +LOCK TABLES `script_texts` WRITE; +/*!40000 ALTER TABLE `script_texts` DISABLE KEYS */; +/*!40000 ALTER TABLE `script_texts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `skill_discovery_template` +-- + +DROP TABLE IF EXISTS `skill_discovery_template`; +CREATE TABLE `skill_discovery_template` ( + `spellId` mediumint(8) unsigned NOT NULL default '0' COMMENT 'SpellId of the discoverable spell', + `reqSpell` mediumint(8) unsigned NOT NULL default '0' COMMENT 'spell requirement', + `chance` float NOT NULL default '0' COMMENT 'chance to discover', + PRIMARY KEY (`spellId`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Skill Discovery System'; + +-- +-- Dumping data for table `skill_discovery_template` +-- + +LOCK TABLES `skill_discovery_template` WRITE; +/*!40000 ALTER TABLE `skill_discovery_template` DISABLE KEYS */; +/*!40000 ALTER TABLE `skill_discovery_template` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `skill_extra_item_template` +-- + +DROP TABLE IF EXISTS `skill_extra_item_template`; +CREATE TABLE `skill_extra_item_template` ( + `spellId` mediumint(8) unsigned NOT NULL default '0' COMMENT 'SpellId of the item creation spell', + `requiredSpecialization` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Specialization spell id', + `additionalCreateChance` float NOT NULL default '0' COMMENT 'chance to create add', + `additionalMaxNum` tinyint(3) unsigned NOT NULL default '0' COMMENT 'max num of adds', + PRIMARY KEY (`spellId`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Skill Specialization System'; + +-- +-- Dumping data for table `skill_extra_item_template` +-- + +LOCK TABLES `skill_extra_item_template` WRITE; +/*!40000 ALTER TABLE `skill_extra_item_template` DISABLE KEYS */; +/*!40000 ALTER TABLE `skill_extra_item_template` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `skill_fishing_base_level` +-- + +DROP TABLE IF EXISTS `skill_fishing_base_level`; +CREATE TABLE `skill_fishing_base_level` ( + `entry` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Area identifier', + `skill` smallint(6) NOT NULL default '0' COMMENT 'Base skill level requirement', + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Fishing system'; + +-- +-- Dumping data for table `skill_fishing_base_level` +-- + +LOCK TABLES `skill_fishing_base_level` WRITE; +/*!40000 ALTER TABLE `skill_fishing_base_level` DISABLE KEYS */; +/*!40000 ALTER TABLE `skill_fishing_base_level` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `skinning_loot_template` +-- + +DROP TABLE IF EXISTS `skinning_loot_template`; +CREATE TABLE `skinning_loot_template` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `item` mediumint(8) unsigned NOT NULL default '0', + `ChanceOrQuestChance` float NOT NULL default '100', + `groupid` tinyint(3) unsigned NOT NULL default '0', + `mincountOrRef` mediumint(9) NOT NULL default '1', + `maxcount` tinyint(3) unsigned NOT NULL default '1', + `lootcondition` tinyint(3) unsigned NOT NULL default '0', + `condition_value1` mediumint(8) unsigned NOT NULL default '0', + `condition_value2` mediumint(8) unsigned NOT NULL default '0', + PRIMARY KEY (`entry`,`item`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Loot System'; + +-- +-- Dumping data for table `skinning_loot_template` +-- + +LOCK TABLES `skinning_loot_template` WRITE; +/*!40000 ALTER TABLE `skinning_loot_template` DISABLE KEYS */; +/*!40000 ALTER TABLE `skinning_loot_template` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `spell_affect` +-- + +DROP TABLE IF EXISTS `spell_affect`; +CREATE TABLE `spell_affect` ( + `entry` smallint(5) unsigned NOT NULL default '0', + `effectId` tinyint(3) unsigned NOT NULL default '0', + `SpellFamilyMask` bigint(20) unsigned NOT NULL default '0', + PRIMARY KEY (`entry`,`effectId`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `spell_affect` +-- + +LOCK TABLES `spell_affect` WRITE; +/*!40000 ALTER TABLE `spell_affect` DISABLE KEYS */; +/*!40000 ALTER TABLE `spell_affect` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `spell_chain` +-- + +DROP TABLE IF EXISTS `spell_chain`; +CREATE TABLE `spell_chain` ( + `spell_id` mediumint(9) NOT NULL default '0', + `prev_spell` mediumint(9) NOT NULL default '0', + `first_spell` mediumint(9) NOT NULL default '0', + `rank` tinyint(4) NOT NULL default '0', + `req_spell` mediumint(9) NOT NULL default '0', + PRIMARY KEY (`spell_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Spell Additinal Data'; + +-- +-- Dumping data for table `spell_chain` +-- + +LOCK TABLES `spell_chain` WRITE; +/*!40000 ALTER TABLE `spell_chain` DISABLE KEYS */; +/*!40000 ALTER TABLE `spell_chain` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `spell_disabled` +-- + +DROP TABLE IF EXISTS `spell_disabled`; +CREATE TABLE `spell_disabled` ( + `entry` int(11) unsigned NOT NULL default '0' COMMENT 'Spell entry', + `disable_mask` int(8) unsigned NOT NULL default '0', + `comment` varchar(64) NOT NULL default '', + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Disabled Spell System'; + +-- +-- Dumping data for table `spell_disabled` +-- + +LOCK TABLES `spell_disabled` WRITE; +/*!40000 ALTER TABLE `spell_disabled` DISABLE KEYS */; +/*!40000 ALTER TABLE `spell_disabled` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `spell_elixir` +-- + +DROP TABLE IF EXISTS `spell_elixir`; +CREATE TABLE `spell_elixir` ( + `entry` int(11) unsigned NOT NULL default '0' COMMENT 'SpellId of potion', + `mask` tinyint(1) unsigned NOT NULL default '0' COMMENT 'Mask 0x1 battle 0x2 guardian 0x3 flask 0x7 unstable flasks 0xB shattrath flasks', + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Spell System'; + +-- +-- Dumping data for table `spell_elixir` +-- + +LOCK TABLES `spell_elixir` WRITE; +/*!40000 ALTER TABLE `spell_elixir` DISABLE KEYS */; +/*!40000 ALTER TABLE `spell_elixir` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `spell_learn_spell` +-- + +DROP TABLE IF EXISTS `spell_learn_spell`; +CREATE TABLE `spell_learn_spell` ( + `entry` smallint(5) unsigned NOT NULL default '0', + `SpellID` smallint(5) unsigned NOT NULL default '0', + PRIMARY KEY (`entry`,`SpellID`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Item System'; + +-- +-- Dumping data for table `spell_learn_spell` +-- + +LOCK TABLES `spell_learn_spell` WRITE; +/*!40000 ALTER TABLE `spell_learn_spell` DISABLE KEYS */; +/*!40000 ALTER TABLE `spell_learn_spell` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `spell_pet_auras` +-- + +DROP TABLE IF EXISTS `spell_pet_auras`; +CREATE TABLE `spell_pet_auras` ( + `spell` mediumint(8) unsigned NOT NULL COMMENT 'dummy spell id', + `pet` mediumint(8) unsigned NOT NULL default '0' COMMENT 'pet id; 0 = all', + `aura` mediumint(8) unsigned NOT NULL COMMENT 'pet aura id', + PRIMARY KEY (`spell`,`pet`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1; + +-- +-- Dumping data for table `spell_pet_auras` +-- + +LOCK TABLES `spell_pet_auras` WRITE; +/*!40000 ALTER TABLE `spell_pet_auras` DISABLE KEYS */; +/*!40000 ALTER TABLE `spell_pet_auras` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `spell_proc_event` +-- + +DROP TABLE IF EXISTS `spell_proc_event`; +CREATE TABLE `spell_proc_event` ( + `entry` smallint(5) unsigned NOT NULL default '0', + `SchoolMask` tinyint(4) NOT NULL default '0', + `Category` smallint(6) NOT NULL default '0', + `SkillID` smallint(6) NOT NULL default '0', + `SpellFamilyName` smallint(5) unsigned NOT NULL default '0', + `SpellFamilyMask` bigint(20) unsigned NOT NULL default '0', + `procFlags` int(10) unsigned NOT NULL default '0', + `ppmRate` float NOT NULL default '0', + `cooldown` int(10) unsigned NOT NULL default '0', + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `spell_proc_event` +-- + +LOCK TABLES `spell_proc_event` WRITE; +/*!40000 ALTER TABLE `spell_proc_event` DISABLE KEYS */; +/*!40000 ALTER TABLE `spell_proc_event` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `spell_script_target` +-- + +DROP TABLE IF EXISTS `spell_script_target`; +CREATE TABLE `spell_script_target` ( + `entry` mediumint(8) unsigned NOT NULL, + `type` tinyint(3) unsigned NOT NULL default '0', + `targetEntry` mediumint(8) unsigned NOT NULL default '0', + UNIQUE KEY `entry_type_target` (`entry`,`type`,`targetEntry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Spell System'; + +-- +-- Dumping data for table `spell_script_target` +-- + +LOCK TABLES `spell_script_target` WRITE; +/*!40000 ALTER TABLE `spell_script_target` DISABLE KEYS */; +/*!40000 ALTER TABLE `spell_script_target` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `spell_scripts` +-- + +DROP TABLE IF EXISTS `spell_scripts`; +CREATE TABLE `spell_scripts` ( + `id` mediumint(8) unsigned NOT NULL default '0', + `delay` int(10) unsigned NOT NULL default '0', + `command` mediumint(8) unsigned NOT NULL default '0', + `datalong` mediumint(8) unsigned NOT NULL default '0', + `datalong2` int(10) unsigned NOT NULL default '0', + `datatext` text character set latin1 NOT NULL, + `x` float NOT NULL default '0', + `y` float NOT NULL default '0', + `z` float NOT NULL default '0', + `o` float NOT NULL default '0' +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `spell_scripts` +-- + +LOCK TABLES `spell_scripts` WRITE; +/*!40000 ALTER TABLE `spell_scripts` DISABLE KEYS */; +/*!40000 ALTER TABLE `spell_scripts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `spell_target_position` +-- + +DROP TABLE IF EXISTS `spell_target_position`; +CREATE TABLE `spell_target_position` ( + `id` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Identifier', + `target_map` smallint(5) unsigned NOT NULL default '0', + `target_position_x` float NOT NULL default '0', + `target_position_y` float NOT NULL default '0', + `target_position_z` float NOT NULL default '0', + `target_orientation` float NOT NULL default '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Spell System'; + +-- +-- Dumping data for table `spell_target_position` +-- + +LOCK TABLES `spell_target_position` WRITE; +/*!40000 ALTER TABLE `spell_target_position` DISABLE KEYS */; +/*!40000 ALTER TABLE `spell_target_position` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `spell_threat` +-- + +DROP TABLE IF EXISTS `spell_threat`; +CREATE TABLE `spell_threat` ( + `entry` mediumint(8) unsigned NOT NULL, + `Threat` smallint(6) NOT NULL, + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED; + +-- +-- Dumping data for table `spell_threat` +-- + +LOCK TABLES `spell_threat` WRITE; +/*!40000 ALTER TABLE `spell_threat` DISABLE KEYS */; +/*!40000 ALTER TABLE `spell_threat` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `transports` +-- + +DROP TABLE IF EXISTS `transports`; +CREATE TABLE `transports` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `name` text, + `period` mediumint(8) unsigned NOT NULL default '0', + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Transports'; + +-- +-- Dumping data for table `transports` +-- + +LOCK TABLES `transports` WRITE; +/*!40000 ALTER TABLE `transports` DISABLE KEYS */; +/*!40000 ALTER TABLE `transports` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `trinity_string` +-- + +DROP TABLE IF EXISTS `trinity_string`; +CREATE TABLE `trinity_string` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `content_default` text NOT NULL, + `content_loc1` text, + `content_loc2` text, + `content_loc3` text, + `content_loc4` text, + `content_loc5` text, + `content_loc6` text, + `content_loc7` text, + `content_loc8` text, + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `trinity_string` +-- + +LOCK TABLES `trinity_string` WRITE; +/*!40000 ALTER TABLE `trinity_string` DISABLE KEYS */; +/*!40000 ALTER TABLE `trinity_string` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `uptime` +-- + +DROP TABLE IF EXISTS `uptime`; +CREATE TABLE `uptime` ( + `starttime` bigint(20) unsigned NOT NULL default '0', + `startstring` varchar(64) NOT NULL default '', + `uptime` bigint(20) unsigned NOT NULL default '0', + `maxplayers` smallint(5) unsigned NOT NULL default '0', + PRIMARY KEY (`starttime`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Uptime system'; + +-- +-- Dumping data for table `uptime` +-- + +LOCK TABLES `uptime` WRITE; +/*!40000 ALTER TABLE `uptime` DISABLE KEYS */; +/*!40000 ALTER TABLE `uptime` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2008-10-14 13:23:35 diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp index 745a2f6e268..09af5f18c78 100644 --- a/src/game/Chat.cpp +++ b/src/game/Chat.cpp @@ -134,17 +134,17 @@ ChatCommand * ChatHandler::getCommandTable() { NULL, 0, false, NULL, "", NULL } }; - static ChatCommand wpCommandTable[] =
- {
- { "show", SEC_GAMEMASTER, false, &ChatHandler::HandleWpShowCommand, "", NULL },
- { "addwp", SEC_GAMEMASTER, false, &ChatHandler::HandleWpAddCommand, "", NULL },
- { "load", SEC_GAMEMASTER, false, &ChatHandler::HandleWpLoadPathCommand, "", NULL },
- { "modify", SEC_GAMEMASTER, false, &ChatHandler::HandleWpModifyCommand, "", NULL },
- { "event", SEC_GAMEMASTER, false, &ChatHandler::HandleWpEventCommand, "", NULL },
- { "unload", SEC_GAMEMASTER, false, &ChatHandler::HandleWpUnLoadPathCommand, "", NULL },
-
- { NULL, 0, false, NULL, "", NULL }
- };
+ static ChatCommand wpCommandTable[] = + { + { "show", SEC_GAMEMASTER, false, &ChatHandler::HandleWpShowCommand, "", NULL }, + { "addwp", SEC_GAMEMASTER, false, &ChatHandler::HandleWpAddCommand, "", NULL }, + { "load", SEC_GAMEMASTER, false, &ChatHandler::HandleWpLoadPathCommand, "", NULL }, + { "modify", SEC_GAMEMASTER, false, &ChatHandler::HandleWpModifyCommand, "", NULL }, + { "event", SEC_GAMEMASTER, false, &ChatHandler::HandleWpEventCommand, "", NULL }, + { "unload", SEC_GAMEMASTER, false, &ChatHandler::HandleWpUnLoadPathCommand, "", NULL }, + + { NULL, 0, false, NULL, "", NULL } + }; static ChatCommand banCommandTable[] = @@ -512,9 +512,9 @@ ChatCommand * ChatHandler::getCommandTable() { "gobject", SEC_GAMEMASTER, false, NULL, "", gobjectCommandTable }, { "honor", SEC_GAMEMASTER, false, NULL, "", honorCommandTable }, - //wp commands
- { "path", SEC_GAMEMASTER, false, NULL, "", wpCommandTable },
- { "loadpath", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadAllPaths, "", NULL },
+ //wp commands + { "path", SEC_GAMEMASTER, false, NULL, "", wpCommandTable }, + { "loadpath", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadAllPaths, "", NULL }, { "quest", SEC_ADMINISTRATOR, false, NULL, "", questCommandTable }, { "reload", SEC_ADMINISTRATOR, true, NULL, "", reloadCommandTable }, diff --git a/src/game/Chat.h b/src/game/Chat.h index faa84b032b9..57e1b486189 100644 --- a/src/game/Chat.h +++ b/src/game/Chat.h @@ -411,15 +411,15 @@ class ChatHandler bool HandlePasswordCommand(const char* args); bool HandleLockAccountCommand(const char* args); bool HandleRespawnCommand(const char* args); -
- //New Wp Commands
- bool HandleWpAddCommand(const char* args);
- bool HandleWpLoadPathCommand(const char* args);
- bool HandleWpUnLoadPathCommand(const char* args);
- bool HandleWpModifyCommand(const char* args);
- bool HandleWpEventCommand(const char* args);
- bool HandleWpShowCommand(const char* args);
- bool HandleReloadAllPaths(const char *args);
+ + //New Wp Commands + bool HandleWpAddCommand(const char* args); + bool HandleWpLoadPathCommand(const char* args); + bool HandleWpUnLoadPathCommand(const char* args); + bool HandleWpModifyCommand(const char* args); + bool HandleWpEventCommand(const char* args); + bool HandleWpShowCommand(const char* args); + bool HandleReloadAllPaths(const char *args); bool HandleFlyModeCommand(const char* args); bool HandleSendOpcodeCommand(const char* args); diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp index 4f8132fe404..3e2a6e72dfd 100644 --- a/src/game/Creature.cpp +++ b/src/game/Creature.cpp @@ -2068,9 +2068,9 @@ bool Creature::LoadCreaturesAddon(bool reload) if (cainfo->move_flags != 0) SetUnitMovementFlags(cainfo->move_flags); - //Load Path
- if (cainfo->path_id != 0)
- m_path_id = cainfo->path_id;
+ //Load Path + if (cainfo->path_id != 0) + m_path_id = cainfo->path_id; if(cainfo->auras) { diff --git a/src/game/Creature.h b/src/game/Creature.h index fce9854e6cf..457e88cc3e3 100644 --- a/src/game/Creature.h +++ b/src/game/Creature.h @@ -618,11 +618,11 @@ class TRINITY_DLL_SPEC Creature : public Unit uint32 GetGlobalCooldown() const { return m_GlobalCooldown; } - uint32 GetWaypointPath(){return m_path_id;}
- void LoadPath(uint32 pathid) { m_path_id = pathid; }
-
- uint32 GetCurrentWaypointID(){return m_waypointID;}
- void UpdateWaypointID(uint32 wpID){m_waypointID = wpID;}
+ uint32 GetWaypointPath(){return m_path_id;} + void LoadPath(uint32 pathid) { m_path_id = pathid; } + + uint32 GetCurrentWaypointID(){return m_waypointID;} + void UpdateWaypointID(uint32 wpID){m_waypointID = wpID;} protected: bool CreateFromProto(uint32 guidlow,uint32 Entry,uint32 team, const CreatureData *data = NULL); @@ -674,9 +674,9 @@ class TRINITY_DLL_SPEC Creature : public Unit float CombatStartZ; private: - //WaypointMovementGenerator vars
- uint32 m_waypointID;
- uint32 m_path_id;
+ //WaypointMovementGenerator vars + uint32 m_waypointID; + uint32 m_path_id; GridReference<Creature> m_gridRef; CreatureInfo const* m_creatureInfo; // in heroic mode can different from ObjMgr::GetCreatureTemplate(GetEntry()) diff --git a/src/game/Level2.cpp b/src/game/Level2.cpp index a9e74926a76..89d27582195 100644 --- a/src/game/Level2.cpp +++ b/src/game/Level2.cpp @@ -2155,1122 +2155,1122 @@ bool ChatHandler::HandleNpcSpawnTimeCommand(const char* args) return true; } -
-/////WAYPOINT COMMANDS
-
-bool ChatHandler::HandleWpAddCommand(const char* args)
-{
- sLog.outDebug("DEBUG: HandleWpAddCommand");
-
- // optional
- char* path_number = NULL;
- uint32 pathid = 0;
-
- if(*args)
- path_number = strtok((char*)args, " ");
-
- uint32 point = 0;
- Creature* target = getSelectedCreature();
-
- if (!path_number)
- {
- if(target)
- pathid = target->GetWaypointPath();
- else
- {
- QueryResult *result = WorldDatabase.PQuery( "SELECT MAX(id) FROM waypoint_data");
- uint32 maxpathid = result->Fetch()->GetInt32();
- pathid = maxpathid+1;
- sLog.outDebug("DEBUG: HandleWpAddCommand - New path started.");
- PSendSysMessage("%s%s|r", "|cff00ff00", "New path started.");
-
- }
- }
- else
- pathid = atoi(path_number);
-
- // path_id -> ID of the Path
- // point -> number of the waypoint (if not 0)
-
- if(!pathid)
- {
- sLog.outDebug("DEBUG: HandleWpAddCommand - Current creature haven't loaded path.");
- PSendSysMessage("%s%s|r", "|cffff33ff", "Current creature haven't loaded path.");
- return true;
- }
-
- sLog.outDebug("DEBUG: HandleWpAddCommand - point == 0");
-
- QueryResult *result = WorldDatabase.PQuery( "SELECT MAX(point) FROM waypoint_data WHERE id = '%u'",pathid);
-
- if( result )
- {
- point = (*result)[0].GetUInt32();
- delete result;
- }
-
- Player* player = m_session->GetPlayer();
- Map *map = player->GetMap();
-
- WorldDatabase.PExecuteLog("INSERT INTO waypoint_data (id,point,position_x,position_y,position_z) VALUES ('%u','%u','%f', '%f', '%f')",
- pathid, point+1, player->GetPositionX(), player->GetPositionY(), player->GetPositionZ());
-
- PSendSysMessage("%s%s%u%s%u%s|r", "|cff00ff00", "PathID: |r|cff00ffff", pathid, "|r|cff00ff00: Waypoint |r|cff00ffff", point,"|r|cff00ff00 created. ");
-
- return true;
-} // HandleWpAddCommand
-
-bool ChatHandler::HandleWpLoadPathCommand(const char *args)
-{
-
- if(!*args)
- return false;
-
- // optional
- char* path_number = NULL;
-
- if(*args)
- {
- path_number = strtok((char*)args, " ");
- }
-
- uint32 pathid = 0;
- uint32 guidlow = 0;
- Creature* target = getSelectedCreature();
-
- // Did player provide a path_id?
- if (!path_number)
- sLog.outDebug("DEBUG: HandleWpLoadPathCommand - No path number provided");
-
- if(!target)
- {
- SendSysMessage(LANG_SELECT_CREATURE);
- SetSentErrorMessage(true);
- return false;
- }
- if(target->GetEntry() == 1)
- {
- PSendSysMessage("%s%s|r", "|cffff33ff", "You want to load path to a waypoint? Aren't you?");
- SetSentErrorMessage(true);
- return false;
- }
-
- pathid = atoi(path_number);
- if(!pathid)
- {
- PSendSysMessage("%s%s|r", "|cffff33ff", "No vallid path number provided.");
- return true;
- }
-
- guidlow = target->GetGUIDLow();
-
- QueryResult *result = WorldDatabase.PQuery( "SELECT guid FROM creature_addon WHERE guid = '%u'",guidlow);
-
- if( result )
- {
- WorldDatabase.PExecute("UPDATE creature_addon SET path_id = '%u' WHERE guid = '%u'", pathid, guidlow);
- delete result;
- }
- else
- WorldDatabase.PExecute("INSERT INTO creature_addon(guid,path_id) VALUES ('%u','%u')", guidlow, pathid);
-
- WorldDatabase.PExecute("UPDATE creature SET MovementType = '%u' WHERE guid = '%u'", WAYPOINT_MOTION_TYPE, guidlow);
-
- target->LoadPath(pathid);
-
- target->SetDefaultMovementType(WAYPOINT_MOTION_TYPE);
-
- target->GetMotionMaster()->Initialize();
-
- target->Say("Path loaded.",0,0);
-
- return true;
-}
-
-
-bool ChatHandler::HandleReloadAllPaths(const char* args)
-{
-if(!*args)
- return false;
-
-uint32 id = atoi(args);
-
-if(!id)
- return false;
-
- PSendSysMessage("%s%s|r|cff00ffff%u|r", "|cff00ff00", "Loading Path: ", id);
- WaypointMgr.UpdatePath(id);
- return true;
-}
-
-bool ChatHandler::HandleWpUnLoadPathCommand(const char *args)
-{
- uint32 guidlow = 0;
- Creature* target = getSelectedCreature();
-
- if(!target)
- {
- PSendSysMessage("%s%s|r", "|cff33ffff", "You must select target.");
- return true;
- }
-
- if(target->GetCreatureAddon())
- {
- if(target->GetCreatureAddon()->path_id != 0)
- {
- WorldDatabase.PExecute("DELETE FROM creature_addon WHERE guid = %u", target->GetGUIDLow());
- target->UpdateWaypointID(0);
- WorldDatabase.PExecute("UPDATE creature SET MovementType = '%u' WHERE guid = '%u'", IDLE_MOTION_TYPE, guidlow);
- target->LoadPath(0);
- target->SetDefaultMovementType(IDLE_MOTION_TYPE);
- target->GetMotionMaster()->MoveTargetedHome();
- target->GetMotionMaster()->Initialize();
- target->Say("Path unloaded.",0,0);
- return true;
- }
- PSendSysMessage("%s%s|r", "|cffff33ff", "Target have no loaded path.");
- return true;
- }
- PSendSysMessage("%s%s|r", "|cffff33ff", "Target have no loaded path.");
- return true;
-}
-
-bool ChatHandler::HandleWpEventCommand(const char* args)
-{
-if(!*args)
- return false;
-
- char* show_str = strtok((char*)args, " ");
-
- std::string show = show_str;
-
- // Check
- if( (show != "add") && (show != "mod") && (show != "del") && (show != "listid")) return false;
-
-
- if(show == "add")
- {
- uint32 id = 0;
- char* arg_id = strtok(NULL, " ");
-
- if(arg_id)
- uint32 id = atoi(arg_id);
-
- if(id)
- {
- QueryResult *result = WorldDatabase.PQuery( "SELECT `id` FROM waypoint_scripts WHERE guid = %u", id);
-
- if( !result )
- {
- WorldDatabase.PExecute("INSERT INTO waypoint_scripts(guid)VALUES(%u)", id);
- PSendSysMessage("%s%s%u|r", "|cff00ff00", "Wp Event: New waypoint event added: ", id);
- }
- else
- {
- PSendSysMessage("|cff00ff00Wp Event: You have choosed an existing waypoint script guid: %u|r", id);
- delete result;
- }
- }
- else
- {
- QueryResult *result = WorldDatabase.PQuery( "SELECT MAX(guid) FROM waypoint_scripts");
- id = result->Fetch()->GetUInt32();
- WorldDatabase.PExecute("INSERT INTO waypoint_scripts(guid)VALUES(%u)", id+1);
- PSendSysMessage("%s%s%u|r", "|cff00ff00","Wp Event: New waypoint event added: |r|cff00ffff", id+1);
- }
-
- return true;
- }
-
-
- if(show == "listid")
- {
- uint32 id;
- char* arg_id = strtok(NULL, " ");
-
- if(!arg_id)
- {
- PSendSysMessage("%s%s|r", "|cff33ffff","Wp Event: You must provide waypoint script id.");
- return true;
- }
-
- id = atoi(arg_id);
-
- uint32 a2, a3, a4, a5, a6;
- float a8, a9, a10, a11;
- char const* a7;
-
- QueryResult *result = WorldDatabase.PQuery( "SELECT `guid`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o` FROM waypoint_scripts WHERE id = %u", id);
-
- if( !result )
- {
- PSendSysMessage("%s%s%u|r", "|cff33ffff", "Wp Event: No waypoint scripts found on id: ", id);
- return true;
- }
-
- Field *fields;
-
- do
- {
- fields = result->Fetch();
- a2 = fields[0].GetUInt32();
- a3 = fields[1].GetUInt32();
- a4 = fields[2].GetUInt32();
- a5 = fields[3].GetUInt32();
- a6 = fields[4].GetUInt32();
- a7 = fields[5].GetString();
- a8 = fields[6].GetFloat();
- a9 = fields[7].GetFloat();
- a10 = fields[8].GetFloat();
- a11 = fields[9].GetFloat();
-
- PSendSysMessage("|cffff33ffid:|r|cff00ffff %u|r|cff00ff00, guid: |r|cff00ffff%u|r|cff00ff00, delay: |r|cff00ffff%u|r|cff00ff00, command: |r|cff00ffff%u|r|cff00ff00, datalong: |r|cff00ffff%u|r|cff00ff00, datalong2: |r|cff00ffff%u|r|cff00ff00, datatext: |r|cff00ffff%s|r|cff00ff00, posx: |r|cff00ffff%f|r|cff00ff00, posy: |r|cff00ffff%f|r|cff00ff00, posz: |r|cff00ffff%f|r|cff00ff00, orientation: |r|cff00ffff%f|r", id, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
- }while(result->NextRow());
-
- delete result;
- }
-
- if(show == "del")
- {
-
- char* arg_id = strtok(NULL, " ");
- uint32 id = atoi(arg_id);
-
- QueryResult *result = WorldDatabase.PQuery( "SELECT `guid` FROM waypoint_scripts WHERE guid = %u", id);
-
- if( result )
- {
-
- WorldDatabase.PExecuteLog("DELETE FROM waypoint_scripts WHERE guid = %u", id);
- PSendSysMessage("%s%s%u|r","|cff00ff00","Wp Event: Waypoint script removed: ", id);
- delete result;
- }
- else
- PSendSysMessage("|cffff33ffWp Event: ERROR: you have selected a non existing script: %u|r", id);
-
- return true;
- }
-
-
- if(show == "mod")
- {
- char* arg_1 = strtok(NULL," ");
-
- if(!arg_1)
- {
- SendSysMessage("|cffff33ffERROR: Waypoint script guid not present.|r");
- return true;
- }
-
- uint32 id = atoi(arg_1);
-
- if(!id)
- {
- SendSysMessage("|cffff33ffERROR: No vallid waypoint script id not present.|r");
- return true;
- }
-
- char* arg_2 = strtok(NULL," ");
-
- if(!arg_2)
- { SendSysMessage("|cffff33ffERROR: No argument present.|r");
- return true;}
-
-
- std::string arg_string = arg_2;
-
-
-if( (arg_string != "setid") && (arg_string != "delay") && (arg_string != "command")
-&& (arg_string != "datalong") && (arg_string != "datalong2") && (arg_string != "dataint") && (arg_string != "posx")
-&& (arg_string != "posy") && (arg_string != "posz") && (arg_string != "orientation")
-) { SendSysMessage("|cffff33ffERROR: No valid argument present.|r");
- return true;}
-
-
-char* arg_3;
-std::string arg_str_2 = arg_2;
-arg_3 = strtok(NULL," ");
-
-if(!arg_3)
-{SendSysMessage("|cffff33ffERROR: No additional argument present.|r");
- return true;}
-
-float coord;
-
- if(arg_str_2 == "setid")
- {
- uint32 newid = atoi(arg_3);
- PSendSysMessage("%s%s|r|cff00ffff%u|r|cff00ff00%s|r|cff00ffff%u|r","|cff00ff00","Wp Event: Wypoint scipt guid: ", newid," id changed: ", id);
- WorldDatabase.PExecuteLog("UPDATE waypoint_scripts SET id='%u' WHERE guid='%u'",
- newid, id); return true;
- }
- else
- {
-
- QueryResult *result = WorldDatabase.PQuery("SELECT id FROM waypoint_scripts WHERE guid='%u'",id);
-
- if(!result)
- {
- SendSysMessage("|cffff33ffERROR: You have selected an non existing waypoint script guid.|r");
- return true;
- }
-
- delete result;
-
-if(arg_str_2 == "posx")
-{
- coord = atof(arg_3);
- WorldDatabase.PExecuteLog("UPDATE waypoint_scripts SET x='%f' WHERE guid='%u'",
- coord, id);
- PSendSysMessage("|cff00ff00Waypoint script:|r|cff00ffff %u|r|cff00ff00 position_x updated.|r", id);
- return true;
-}else if(arg_str_2 == "posy")
-{
- coord = atof(arg_3);
- WorldDatabase.PExecuteLog("UPDATE waypoint_scripts SET y='%f' WHERE guid='%u'",
- coord, id);
- PSendSysMessage("|cff00ff00Waypoint script: %u position_y updated.|r", id);
- return true;
-} else if(arg_str_2 == "posz")
-{
- coord = atof(arg_3);
- WorldDatabase.PExecuteLog("UPDATE waypoint_scripts SET z='%f' WHERE guid='%u'",
- coord, id);
- PSendSysMessage("|cff00ff00Waypoint script: |r|cff00ffff%u|r|cff00ff00 position_z updated.|r", id);
- return true;
-} else if(arg_str_2 == "orientation")
-{
- coord = atof(arg_3);
- WorldDatabase.PExecuteLog("UPDATE waypoint_scripts SET o='%f' WHERE guid='%u'",
- coord, id);
- PSendSysMessage("|cff00ff00Waypoint script: |r|cff00ffff%u|r|cff00ff00 orientation updated.|r", id);
- return true;
-} else if(arg_str_2 == "dataint")
-{
- WorldDatabase.PExecuteLog("UPDATE waypoint_scripts SET %s='%u' WHERE guid='%u'",
- arg_2, atoi(arg_3), id);
- PSendSysMessage("|cff00ff00Waypoint script: |r|cff00ffff%u|r|cff00ff00 dataint updated.|r", id);
- return true;
-}else
-{
- std::string arg_str_3 = arg_3;
- WorldDatabase.escape_string(arg_str_3);
- WorldDatabase.PExecuteLog("UPDATE waypoint_scripts SET %s='%s' WHERE guid='%u'",
- arg_2, arg_str_3.c_str(), id);
-}
-}
- PSendSysMessage("%s%s|r|cff00ffff%u:|r|cff00ff00 %s %s|r","|cff00ff00","Waypoint script:", id, arg_2,"updated.");
-}
-return true;
-}
-
-bool ChatHandler::HandleWpModifyCommand(const char* args)
-{
- sLog.outDebug("DEBUG: HandleWpModifyCommand");
-
- if(!*args)
- return false;
-
- // first arg: add del text emote spell waittime move
- char* show_str = strtok((char*)args, " ");
- if (!show_str)
- {
- return false;
- }
-
- std::string show = show_str;
- // Check
- // Remember: "show" must also be the name of a column!
- if( (show != "delay") && (show != "event_id") && (show != "event_chance")
- && (show != "move_flag") && (show != "del") && (show != "move") && (show != "wpadd")
- )
- {
- return false;
- }
-
- // Next arg is: <GUID> <WPNUM> <ARGUMENT>
- char* arg_str = NULL;
-
- // Did user provide a GUID
- // or did the user select a creature?
- // -> variable lowguid is filled with the GUID of the NPC
- uint32 pathid = 0;
- uint32 point = 0;
- uint32 wpGuid = 0;
- Creature* target = getSelectedCreature();
-
- if(target)
- {
- sLog.outDebug("DEBUG: HandleWpModifyCommand - User did select an NPC");
-
- // The visual waypoint
- Creature* wpCreature = NULL;
-
- wpGuid = target->GetGUIDLow();
-
- // Did the user select a visual spawnpoint?
-
- if(wpGuid)
- wpCreature = ObjectAccessor::GetCreature(*m_session->GetPlayer(),MAKE_NEW_GUID(wpGuid, VISUAL_WAYPOINT, HIGHGUID_UNIT));
-
- // attempt check creature existence by DB data
- else
- {
-
- QueryResult *result = WorldDatabase.PQuery( "SELECT guid FROM creature_addon WHERE path_id = '%u'",wpGuid);
- if(!result)
- {
- PSendSysMessage(LANG_WAYPOINT_CREATNOTFOUND, wpGuid);
- return true;
- }
-
- }
- // User did select a visual waypoint?
- // Check the creature
- if (wpCreature->GetEntry() == VISUAL_WAYPOINT )
- {
- QueryResult *result =
- WorldDatabase.PQuery( "SELECT id, point FROM waypoint_data WHERE wpguid = %u",
- wpGuid);
- if(!result)
- {
- sLog.outDebug("DEBUG: HandleWpModifyCommand - No waypoint found - used 'wpguid'");
-
- PSendSysMessage(LANG_WAYPOINT_NOTFOUNDSEARCH, target->GetGUIDLow());
- // Select waypoint number from database
- // Since we compare float values, we have to deal with
- // some difficulties.
- // Here we search for all waypoints that only differ in one from 1 thousand
- // (0.001) - There is no other way to compare C++ floats with mySQL floats
- // See also: http://dev.mysql.com/doc/refman/5.0/en/problems-with-float.html
- const char* maxDIFF = "0.01";
- result = WorldDatabase.PQuery( "SELECT id, point FROM waypoint_data WHERE (abs(position_x - %f) <= %s ) and (abs(position_y - %f) <= %s ) and (abs(position_z - %f) <= %s )",
- wpCreature->GetPositionX(), maxDIFF, wpCreature->GetPositionY(), maxDIFF, wpCreature->GetPositionZ(), maxDIFF);
- if(!result)
- {
- PSendSysMessage(LANG_WAYPOINT_NOTFOUNDDBPROBLEM, wpGuid);
- return true;
- }
- }
- sLog.outDebug("DEBUG: HandleWpModifyCommand - After getting wpGuid");
-
- do
- {
- Field *fields = result->Fetch();
- pathid = fields[0].GetUInt32();
- point = fields[1].GetUInt32();
- }while( result->NextRow() );
-
- // Cleanup memory
- sLog.outDebug("DEBUG: HandleWpModifyCommand - Cleanup memory");
- delete result;
- // We have the waypoint number and the GUID of the "master npc"
- // Text is enclosed in "<>", all other arguments not
-
- arg_str = strtok((char*)NULL, " ");
-
- }
- }
- else
- {
- // User did provide <GUID> <WPNUM>
- char* guid_str = strtok((char*)NULL, " ");
- char* point_str = strtok((char*)NULL, " ");
-
- arg_str = strtok((char*)NULL, " ");
-
- if( !guid_str )
- {
- SendSysMessage(LANG_WAYPOINT_NOGUID);
- return false;
- }
-
- if( !point_str )
- {
- SendSysMessage(LANG_WAYPOINT_NOWAYPOINTGIVEN);
- return false;
- }
- if( (show != "del") && (show != "move") )
- {
- if( !arg_str )
- {
- PSendSysMessage(LANG_WAYPOINT_ARGUMENTREQ, show.c_str());
- return false;
- }
- }
-
- pathid = atoi((char*)guid_str);
- PSendSysMessage("|cff33ffffDEBUG: GUID provided: %d|r", pathid);
-
- point = atoi((char*)point_str);
- PSendSysMessage("|cff33ffffDEBUG: wpNumber provided: %d|r", point);
-
- // Now we need the GUID of the visual waypoint
- // -> "del", "move", "add" command
-
- QueryResult *result = WorldDatabase.PQuery( "SELECT wpguid FROM waypoint_data WHERE id = '%u' AND point = '%u'", pathid, point);
- if(result)
- {
-
- do
- {
- Field *fields = result->Fetch();
- wpGuid = fields[0].GetUInt32();
- }while( result->NextRow() );
-
-
- // Free memory
- delete result;
- }
- else
- {
- PSendSysMessage(LANG_WAYPOINT_NOTFOUNDSEARCH, pathid, point);
- // Select waypoint number from database
- QueryResult *result = WorldDatabase.PQuery( "SELECT position_x,position_y,position_z FROM waypoint_data WHERE point='%d' AND id = '%u'", point, pathid);
- if(!result)
- {
- PSendSysMessage(LANG_WAYPOINT_NOTFOUND, pathid);
- return true;
- }
-
- Field *fields = result->Fetch();
- float x = fields[0].GetFloat();
- float y = fields[1].GetFloat();
- float z = fields[2].GetFloat();
- // Cleanup memory
- delete result;
-
- // Select waypoint number from database
- // Since we compare float values, we have to deal with
- // some difficulties.
- // Here we search for all waypoints that only differ in one from 1 thousand
- // (0.001) - There is no other way to compare C++ floats with mySQL floats
- // See also: http://dev.mysql.com/doc/refman/5.0/en/problems-with-float.html
- const char* maxDIFF = "0.01";
-
- result = WorldDatabase.PQuery( "SELECT guid FROM creature WHERE (abs(position_x - %f) <= %s ) and (abs(position_y - %f) <= %s ) and (abs(position_z - %f) <= %s ) and id=%d",
- x, maxDIFF, y, maxDIFF, z, maxDIFF, VISUAL_WAYPOINT);
- if(!result)
- {
-
- PSendSysMessage(LANG_WAYPOINT_WPCREATNOTFOUND, VISUAL_WAYPOINT);
- return true;
- }
- do
- {
- Field *fields = result->Fetch();
- wpGuid = fields[0].GetUInt32();
- }while( result->NextRow() );
-
-
- // Free memory
- delete result;
-
- }
- }
-
- sLog.outDebug("DEBUG: HandleWpModifyCommand - Parameters parsed - now execute the command");
-
- // Check for argument
- if((show != "del") && (show != "move"))
- {
- if( arg_str == NULL )
- {
- PSendSysMessage(LANG_WAYPOINT_ARGUMENTREQ, show_str);
- return false;
- }
- }
-
- if(show == "del" && target)
- {
- PSendSysMessage("|cff00ff00DEBUG: wp modify del, PathID: |r|cff00ffff%u|r", pathid);
-
- // wpCreature
-
- Creature* wpCreature = NULL;
- if( wpGuid != 0 )
- {
- wpCreature = ObjectAccessor::GetCreature(*m_session->GetPlayer(),MAKE_NEW_GUID(wpGuid, VISUAL_WAYPOINT, HIGHGUID_UNIT));
- wpCreature->CombatStop();
- wpCreature->DeleteFromDB();
- wpCreature->AddObjectToRemoveList();
- }
-
- WorldDatabase.PExecuteLog("DELETE FROM waypoint_data WHERE id='%u' AND point='%u'",
- pathid, point);
- WorldDatabase.PExecuteLog("UPDATE waypoint_data SET point=point-1 WHERE id='%u' AND point>'%u'",
- pathid, point);
-
- PSendSysMessage(LANG_WAYPOINT_REMOVED);
- return true;
- } // del
-
- if(show == "move" && target)
- {
- PSendSysMessage("|cff00ff00DEBUG: wp move, PathID: |r|cff00ffff%u|r", pathid);
-
- Player *chr = m_session->GetPlayer();
- Map *map = chr->GetMap();
- {
- // wpCreature
- Creature* wpCreature = NULL;
- // What to do:
- // Move the visual spawnpoint
- // Respawn the owner of the waypoints
- if( wpGuid != 0 )
- {
- wpCreature = ObjectAccessor::GetCreature(*m_session->GetPlayer(),MAKE_NEW_GUID(wpGuid, VISUAL_WAYPOINT, HIGHGUID_UNIT));
- wpCreature->CombatStop();
- wpCreature->DeleteFromDB();
- wpCreature->AddObjectToRemoveList();
- // re-create
- Creature* wpCreature2 = new Creature;
- if (!wpCreature2->Create(objmgr.GenerateLowGuid(HIGHGUID_UNIT), map, VISUAL_WAYPOINT, 0))
- {
- PSendSysMessage(LANG_WAYPOINT_VP_NOTCREATED, VISUAL_WAYPOINT);
- delete wpCreature2;
- return false;
- }
- wpCreature2->Relocate(chr->GetPositionX(), chr->GetPositionY(), chr->GetPositionZ(), chr->GetOrientation());
-
- if(!wpCreature2->IsPositionValid())
- {
- sLog.outError("ERROR: Creature (guidlow %d, entry %d) not created. Suggested coordinates isn't valid (X: %f Y: %f)",wpCreature2->GetGUIDLow(),wpCreature2->GetEntry(),wpCreature2->GetPositionX(),wpCreature2->GetPositionY());
- delete wpCreature2;
- return false;
- }
-
- wpCreature2->SaveToDB(map->GetId(), (1 << map->GetSpawnMode()));
- // To call _LoadGoods(); _LoadQuests(); CreateTrainerSpells();
- wpCreature2->LoadFromDB(wpCreature2->GetDBTableGUIDLow(), map);
- map->Add(wpCreature2);
- //MapManager::Instance().GetMap(npcCreature->GetMapId())->Add(wpCreature2);
- }
-
- WorldDatabase.PExecuteLog("UPDATE waypoint_data SET position_x = '%f',position_y = '%f',position_z = '%f' where id = '%u' AND point='%u'",
- chr->GetPositionX(), chr->GetPositionY(), chr->GetPositionZ(), pathid, point );
-
- PSendSysMessage(LANG_WAYPOINT_CHANGED);
- }
- return true;
- } // move
-
-
- const char *text = arg_str;
-
- if( text == 0 )
- {
- // show_str check for present in list of correct values, no sql injection possible
- WorldDatabase.PExecuteLog("UPDATE waypoint_data SET %s=NULL WHERE id='%u' AND point='%u'",
- show_str, pathid, point);
- }
- else
- {
- // show_str check for present in list of correct values, no sql injection possible
- std::string text2 = text;
- WorldDatabase.escape_string(text2);
- WorldDatabase.PExecuteLog("UPDATE waypoint_data SET %s='%s' WHERE id='%u' AND point='%u'",
- show_str, text2.c_str(), pathid, point);
- }
-
- PSendSysMessage(LANG_WAYPOINT_CHANGED_NO, show_str);
-
- return true;
-}
-
-
-bool ChatHandler::HandleWpShowCommand(const char* args)
-{
- sLog.outDebug("DEBUG: HandleWpShowCommand");
-
- if(!*args)
- return false;
-
- // first arg: on, off, first, last
- char* show_str = strtok((char*)args, " ");
- if (!show_str)
- {
- return false;
- }
- // second arg: GUID (optional, if a creature is selected)
- char* guid_str = strtok((char*)NULL, " ");
- sLog.outDebug("DEBUG: HandleWpShowCommand: show_str: %s guid_str: %s", show_str, guid_str);
-
- uint32 pathid = 0;
- Creature* target = getSelectedCreature();
-
- // Did player provide a PathID?
-
- if (!guid_str)
- {
- sLog.outDebug("DEBUG: HandleWpShowCommand: !guid_str");
- // No PathID provided
- // -> Player must have selected a creature
-
- if(!target)
- {
- SendSysMessage(LANG_SELECT_CREATURE);
- SetSentErrorMessage(true);
- return false;
- }
-
- pathid = target->GetWaypointPath();
- }
-
- else
- {
- sLog.outDebug("|cff00ff00DEBUG: HandleWpShowCommand: PathID provided|r");
- // PathID provided
- // Warn if player also selected a creature
- // -> Creature selection is ignored <-
- if(target)
- {
- SendSysMessage(LANG_WAYPOINT_CREATSELECTED);
- }
-
- pathid = atoi((char*)guid_str);
- }
-
-
- sLog.outDebug("DEBUG: HandleWpShowCommand: danach");
-
-
-
- std::string show = show_str;
- uint32 Maxpoint;
-
- sLog.outDebug("DEBUG: HandleWpShowCommand: PathID: %u", pathid);
-
- //PSendSysMessage("wpshow - show: %s", show);
-
- // Show info for the selected waypoint
- if(show == "info")
-
- {
-
- // Check if the user did specify a visual waypoint
- if( target->GetEntry() != VISUAL_WAYPOINT )
-
- {
- PSendSysMessage(LANG_WAYPOINT_VP_SELECT);
- SetSentErrorMessage(true);
- return false;
- }
-
-
- QueryResult *result = WorldDatabase.PQuery( "SELECT id, point, delay, move_flag, action, action_chance FROM waypoint_data WHERE wpguid = %u", target->GetGUIDLow());
-
- if(!result)
-
- {
- SendSysMessage(LANG_WAYPOINT_NOTFOUNDDBPROBLEM);
- return true;
- }
-
- SendSysMessage("|cff00ffffDEBUG: wp show info:|r");
-
- do
- {
- Field *fields = result->Fetch();
- pathid = fields[0].GetUInt32();
- uint32 point = fields[1].GetUInt32();
- uint32 delay = fields[2].GetUInt32();
- uint32 flag = fields[3].GetUInt32();
- uint32 ev_id = fields[4].GetUInt32();
- uint32 ev_chance = fields[5].GetUInt32();
-
- PSendSysMessage("|cff00ff00Show info: for current point: |r|cff00ffff%u|r|cff00ff00, Path ID: |r|cff00ffff%u|r", point, pathid);
- PSendSysMessage("|cff00ff00Show info: delay: |r|cff00ffff%u|r", delay);
- PSendSysMessage("|cff00ff00Show info: Move flag: |r|cff00ffff%u|r", flag);
- PSendSysMessage("|cff00ff00Show info: Waypoint event: |r|cff00ffff%u|r", ev_id);
- PSendSysMessage("|cff00ff00Show info: Event chance: |r|cff00ffff%u|r", ev_chance);
- }while( result->NextRow() );
-
- // Cleanup memory
- delete result;
- return true;
- }
-
- if(show == "on")
- {
- QueryResult *result = WorldDatabase.PQuery( "SELECT point, position_x,position_y,position_z FROM waypoint_data WHERE id = '%u'", pathid);
-
- if(!result)
- {
- SendSysMessage("|cffff33ffPath no found.|r");
- SetSentErrorMessage(true);
- return false;
- }
-
- PSendSysMessage("|cff00ff00DEBUG: wp on, PathID: |cff00ffff%u|r", pathid);
-
- // Delete all visuals for this NPC
- QueryResult *result2 = WorldDatabase.PQuery( "SELECT wpguid FROM waypoint_data WHERE id = '%u' and wpguid <> 0", pathid);
-
- if(result2)
- {
- bool hasError = false;
- do
- {
- Field *fields = result2->Fetch();
- uint32 wpguid = fields[0].GetUInt32();
- Creature* pCreature = ObjectAccessor::GetCreature(*m_session->GetPlayer(),MAKE_NEW_GUID(wpguid,VISUAL_WAYPOINT,HIGHGUID_UNIT));
-
- if(!pCreature)
- {
- PSendSysMessage(LANG_WAYPOINT_NOTREMOVED, wpguid);
- hasError = true;
- WorldDatabase.PExecuteLog("DELETE FROM creature WHERE guid = '%u'", wpguid);
- }
- else
- {
- pCreature->CombatStop();
- pCreature->DeleteFromDB();
- pCreature->AddObjectToRemoveList();
- }
-
- }while( result2->NextRow() );
-
- delete result2;
-
- if( hasError )
- {
- PSendSysMessage(LANG_WAYPOINT_TOOFAR1);
- PSendSysMessage(LANG_WAYPOINT_TOOFAR2);
- PSendSysMessage(LANG_WAYPOINT_TOOFAR3);
- }
- }
-
- do
- {
- Field *fields = result->Fetch();
- uint32 point = fields[0].GetUInt32();
- float x = fields[1].GetFloat();
- float y = fields[2].GetFloat();
- float z = fields[3].GetFloat();
-
- uint32 id = VISUAL_WAYPOINT;
-
- Player *chr = m_session->GetPlayer();
- Map *map = chr->GetMap();
- float o = chr->GetOrientation();
-
- Creature* wpCreature = new Creature;
- if (!wpCreature->Create(objmgr.GenerateLowGuid(HIGHGUID_UNIT), map, id, 0))
- {
- PSendSysMessage(LANG_WAYPOINT_VP_NOTCREATED, id);
- delete wpCreature;
- delete result;
- return false;
- }
-
- wpCreature->Relocate(x, y, z, o);
-
- if(!wpCreature->IsPositionValid())
- {
- sLog.outError("ERROR: Creature (guidlow %d, entry %d) not created. Suggested coordinates isn't valid (X: %f Y: %f)",wpCreature->GetGUIDLow(),wpCreature->GetEntry(),wpCreature->GetPositionX(),wpCreature->GetPositionY());
- delete wpCreature;
- delete result;
- return false;
- }
-
- sLog.outDebug("DEBUG: UPDATE waypoint_data SET wpguid = '%u");
- // set "wpguid" column to the visual waypoint
- WorldDatabase.PExecuteLog("UPDATE waypoint_data SET wpguid = '%u' WHERE id = '%u' and point = '%u'", wpCreature->GetGUIDLow(), pathid, point);
-
- wpCreature->SaveToDB(map->GetId(), (1 << map->GetSpawnMode()));
- wpCreature->LoadFromDB(wpCreature->GetDBTableGUIDLow(),map);
- map->Add(wpCreature);
-
- if(target)
- {
- wpCreature->SetDisplayId(target->GetDisplayId());
- wpCreature->SetFloatValue(OBJECT_FIELD_SCALE_X, 0.5);
- }
- }
- while( result->NextRow() );
-
- SendSysMessage("|cff00ff00Showing the current creature's path.|r");
- // Cleanup memory
- delete result;
- return true;
- }
-
- if(show == "first")
- {
- PSendSysMessage("|cff00ff00DEBUG: wp first, GUID: %u|r", pathid);
-
- QueryResult *result = WorldDatabase.PQuery( "SELECT position_x,position_y,position_z FROM waypoint_data WHERE point='1' AND id = '%u'",pathid);
- if(!result)
- {
- PSendSysMessage(LANG_WAYPOINT_NOTFOUND, pathid);
- SetSentErrorMessage(true);
- return false;
- }
-
- Field *fields = result->Fetch();
- float x = fields[0].GetFloat();
- float y = fields[1].GetFloat();
- float z = fields[2].GetFloat();
- uint32 id = VISUAL_WAYPOINT;
-
- Player *chr = m_session->GetPlayer();
- float o = chr->GetOrientation();
- Map *map = chr->GetMap();
-
- Creature* pCreature = new Creature;
- if (!pCreature->Create(objmgr.GenerateLowGuid(HIGHGUID_UNIT),map, id, 0))
- {
- PSendSysMessage(LANG_WAYPOINT_VP_NOTCREATED, id);
- delete pCreature;
- delete result;
- return false;
- }
-
- pCreature->Relocate(x, y, z, o);
-
- if(!pCreature->IsPositionValid())
- {
- sLog.outError("ERROR: Creature (guidlow %d, entry %d) not created. Suggested coordinates isn't valid (X: %f Y: %f)",pCreature->GetGUIDLow(),pCreature->GetEntry(),pCreature->GetPositionX(),pCreature->GetPositionY());
- delete pCreature;
- delete result;
- return false;
- }
-
- pCreature->SaveToDB(map->GetId(), (1 << map->GetSpawnMode()));
- pCreature->LoadFromDB(pCreature->GetDBTableGUIDLow(), map);
- map->Add(pCreature);
-
- if(target)
- {
- pCreature->SetDisplayId(target->GetDisplayId());
- pCreature->SetFloatValue(OBJECT_FIELD_SCALE_X, 0.5);
- }
-
- // Cleanup memory
- delete result;
- return true;
- }
-
- if(show == "last")
- {
- PSendSysMessage("|cff00ff00DEBUG: wp last, PathID: |r|cff00ffff%u|r", pathid);
-
- QueryResult *result = WorldDatabase.PQuery( "SELECT MAX(point) FROM waypoint_data WHERE id = '%u'",pathid);
- if( result )
- {
- Maxpoint = (*result)[0].GetUInt32();
-
- delete result;
- }
- else
- Maxpoint = 0;
-
- result = WorldDatabase.PQuery( "SELECT position_x,position_y,position_z FROM waypoint_data WHERE point ='%u' AND id = '%u'",Maxpoint, pathid);
- if(!result)
- {
- PSendSysMessage(LANG_WAYPOINT_NOTFOUNDLAST, pathid);
- SetSentErrorMessage(true);
- return false;
- }
- Field *fields = result->Fetch();
- float x = fields[0].GetFloat();
- float y = fields[1].GetFloat();
- float z = fields[2].GetFloat();
- uint32 id = VISUAL_WAYPOINT;
-
- Player *chr = m_session->GetPlayer();
- float o = chr->GetOrientation();
- Map *map = chr->GetMap();
-
- Creature* pCreature = new Creature;
- if (!pCreature->Create(objmgr.GenerateLowGuid(HIGHGUID_UNIT), map, id, 0))
- {
- PSendSysMessage(LANG_WAYPOINT_NOTCREATED, id);
- delete pCreature;
- delete result;
- return false;
- }
-
- pCreature->Relocate(x, y, z, o);
-
- if(!pCreature->IsPositionValid())
- {
- sLog.outError("ERROR: Creature (guidlow %d, entry %d) not created. Suggested coordinates isn't valid (X: %f Y: %f)",pCreature->GetGUIDLow(),pCreature->GetEntry(),pCreature->GetPositionX(),pCreature->GetPositionY());
- delete pCreature;
- delete result;
- return false;
- }
-
- pCreature->SaveToDB(map->GetId(), (1 << map->GetSpawnMode()));
- pCreature->LoadFromDB(pCreature->GetDBTableGUIDLow(), map);
- map->Add(pCreature);
-
- if(target)
- {
- pCreature->SetDisplayId(target->GetDisplayId());
- pCreature->SetFloatValue(OBJECT_FIELD_SCALE_X, 0.5);
- }
-
- // Cleanup memory
- delete result;
- return true;
- }
-
- if(show == "off")
- {
- QueryResult *result = WorldDatabase.PQuery("SELECT guid FROM creature WHERE id = '%u'", 1);
- if(!result)
- {
- SendSysMessage(LANG_WAYPOINT_VP_NOTFOUND);
- SetSentErrorMessage(true);
- return false;
- }
- bool hasError = false;
- do
- {
- Field *fields = result->Fetch();
- uint32 guid = fields[0].GetUInt32();
- Creature* pCreature = ObjectAccessor::GetCreature(*m_session->GetPlayer(),MAKE_NEW_GUID(guid,VISUAL_WAYPOINT,HIGHGUID_UNIT));
-
- if(!pCreature)
- {
- PSendSysMessage(LANG_WAYPOINT_NOTREMOVED, guid);
- hasError = true;
- WorldDatabase.PExecuteLog("DELETE FROM creature WHERE guid = '%u'", guid);
- }
- else
- {
- pCreature->CombatStop();
-
- pCreature->DeleteFromDB();
-
- pCreature->AddObjectToRemoveList();
- }
- }while(result->NextRow());
- // set "wpguid" column to "empty" - no visual waypoint spawned
- WorldDatabase.PExecuteLog("UPDATE waypoint_data SET wpguid = '0'");
-
- if( hasError )
- {
- PSendSysMessage(LANG_WAYPOINT_TOOFAR1);
- PSendSysMessage(LANG_WAYPOINT_TOOFAR2);
- PSendSysMessage(LANG_WAYPOINT_TOOFAR3);
- }
-
- SendSysMessage(LANG_WAYPOINT_VP_ALLREMOVED);
- // Cleanup memory
- delete result;
-
- return true;
- }
-
- PSendSysMessage("|cffff33ffDEBUG: wpshow - no valid command found|r");
-
- return true;
-}
-
-//////////// WAYPOINT COMMANDS //
+ +/////WAYPOINT COMMANDS + +bool ChatHandler::HandleWpAddCommand(const char* args) +{ + sLog.outDebug("DEBUG: HandleWpAddCommand"); + + // optional + char* path_number = NULL; + uint32 pathid = 0; + + if(*args) + path_number = strtok((char*)args, " "); + + uint32 point = 0; + Creature* target = getSelectedCreature(); + + if (!path_number) + { + if(target) + pathid = target->GetWaypointPath(); + else + { + QueryResult *result = WorldDatabase.PQuery( "SELECT MAX(id) FROM waypoint_data"); + uint32 maxpathid = result->Fetch()->GetInt32(); + pathid = maxpathid+1; + sLog.outDebug("DEBUG: HandleWpAddCommand - New path started."); + PSendSysMessage("%s%s|r", "|cff00ff00", "New path started."); + + } + } + else + pathid = atoi(path_number); + + // path_id -> ID of the Path + // point -> number of the waypoint (if not 0) + + if(!pathid) + { + sLog.outDebug("DEBUG: HandleWpAddCommand - Current creature haven't loaded path."); + PSendSysMessage("%s%s|r", "|cffff33ff", "Current creature haven't loaded path."); + return true; + } + + sLog.outDebug("DEBUG: HandleWpAddCommand - point == 0"); + + QueryResult *result = WorldDatabase.PQuery( "SELECT MAX(point) FROM waypoint_data WHERE id = '%u'",pathid); + + if( result ) + { + point = (*result)[0].GetUInt32(); + delete result; + } + + Player* player = m_session->GetPlayer(); + Map *map = player->GetMap(); + + WorldDatabase.PExecuteLog("INSERT INTO waypoint_data (id,point,position_x,position_y,position_z) VALUES ('%u','%u','%f', '%f', '%f')", + pathid, point+1, player->GetPositionX(), player->GetPositionY(), player->GetPositionZ()); + + PSendSysMessage("%s%s%u%s%u%s|r", "|cff00ff00", "PathID: |r|cff00ffff", pathid, "|r|cff00ff00: Waypoint |r|cff00ffff", point,"|r|cff00ff00 created. "); + + return true; +} // HandleWpAddCommand + +bool ChatHandler::HandleWpLoadPathCommand(const char *args) +{ + + if(!*args) + return false; + + // optional + char* path_number = NULL; + + if(*args) + { + path_number = strtok((char*)args, " "); + } + + uint32 pathid = 0; + uint32 guidlow = 0; + Creature* target = getSelectedCreature(); + + // Did player provide a path_id? + if (!path_number) + sLog.outDebug("DEBUG: HandleWpLoadPathCommand - No path number provided"); + + if(!target) + { + SendSysMessage(LANG_SELECT_CREATURE); + SetSentErrorMessage(true); + return false; + } + if(target->GetEntry() == 1) + { + PSendSysMessage("%s%s|r", "|cffff33ff", "You want to load path to a waypoint? Aren't you?"); + SetSentErrorMessage(true); + return false; + } + + pathid = atoi(path_number); + if(!pathid) + { + PSendSysMessage("%s%s|r", "|cffff33ff", "No vallid path number provided."); + return true; + } + + guidlow = target->GetGUIDLow(); + + QueryResult *result = WorldDatabase.PQuery( "SELECT guid FROM creature_addon WHERE guid = '%u'",guidlow); + + if( result ) + { + WorldDatabase.PExecute("UPDATE creature_addon SET path_id = '%u' WHERE guid = '%u'", pathid, guidlow); + delete result; + } + else + WorldDatabase.PExecute("INSERT INTO creature_addon(guid,path_id) VALUES ('%u','%u')", guidlow, pathid); + + WorldDatabase.PExecute("UPDATE creature SET MovementType = '%u' WHERE guid = '%u'", WAYPOINT_MOTION_TYPE, guidlow); + + target->LoadPath(pathid); + + target->SetDefaultMovementType(WAYPOINT_MOTION_TYPE); + + target->GetMotionMaster()->Initialize(); + + target->Say("Path loaded.",0,0); + + return true; +} + + +bool ChatHandler::HandleReloadAllPaths(const char* args) +{ +if(!*args) + return false; + +uint32 id = atoi(args); + +if(!id) + return false; + + PSendSysMessage("%s%s|r|cff00ffff%u|r", "|cff00ff00", "Loading Path: ", id); + WaypointMgr.UpdatePath(id); + return true; +} + +bool ChatHandler::HandleWpUnLoadPathCommand(const char *args) +{ + uint32 guidlow = 0; + Creature* target = getSelectedCreature(); + + if(!target) + { + PSendSysMessage("%s%s|r", "|cff33ffff", "You must select target."); + return true; + } + + if(target->GetCreatureAddon()) + { + if(target->GetCreatureAddon()->path_id != 0) + { + WorldDatabase.PExecute("DELETE FROM creature_addon WHERE guid = %u", target->GetGUIDLow()); + target->UpdateWaypointID(0); + WorldDatabase.PExecute("UPDATE creature SET MovementType = '%u' WHERE guid = '%u'", IDLE_MOTION_TYPE, guidlow); + target->LoadPath(0); + target->SetDefaultMovementType(IDLE_MOTION_TYPE); + target->GetMotionMaster()->MoveTargetedHome(); + target->GetMotionMaster()->Initialize(); + target->Say("Path unloaded.",0,0); + return true; + } + PSendSysMessage("%s%s|r", "|cffff33ff", "Target have no loaded path."); + return true; + } + PSendSysMessage("%s%s|r", "|cffff33ff", "Target have no loaded path."); + return true; +} + +bool ChatHandler::HandleWpEventCommand(const char* args) +{ +if(!*args) + return false; + + char* show_str = strtok((char*)args, " "); + + std::string show = show_str; + + // Check + if( (show != "add") && (show != "mod") && (show != "del") && (show != "listid")) return false; + + + if(show == "add") + { + uint32 id = 0; + char* arg_id = strtok(NULL, " "); + + if(arg_id) + uint32 id = atoi(arg_id); + + if(id) + { + QueryResult *result = WorldDatabase.PQuery( "SELECT `id` FROM waypoint_scripts WHERE guid = %u", id); + + if( !result ) + { + WorldDatabase.PExecute("INSERT INTO waypoint_scripts(guid)VALUES(%u)", id); + PSendSysMessage("%s%s%u|r", "|cff00ff00", "Wp Event: New waypoint event added: ", id); + } + else + { + PSendSysMessage("|cff00ff00Wp Event: You have choosed an existing waypoint script guid: %u|r", id); + delete result; + } + } + else + { + QueryResult *result = WorldDatabase.PQuery( "SELECT MAX(guid) FROM waypoint_scripts"); + id = result->Fetch()->GetUInt32(); + WorldDatabase.PExecute("INSERT INTO waypoint_scripts(guid)VALUES(%u)", id+1); + PSendSysMessage("%s%s%u|r", "|cff00ff00","Wp Event: New waypoint event added: |r|cff00ffff", id+1); + } + + return true; + } + + + if(show == "listid") + { + uint32 id; + char* arg_id = strtok(NULL, " "); + + if(!arg_id) + { + PSendSysMessage("%s%s|r", "|cff33ffff","Wp Event: You must provide waypoint script id."); + return true; + } + + id = atoi(arg_id); + + uint32 a2, a3, a4, a5, a6; + float a8, a9, a10, a11; + char const* a7; + + QueryResult *result = WorldDatabase.PQuery( "SELECT `guid`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o` FROM waypoint_scripts WHERE id = %u", id); + + if( !result ) + { + PSendSysMessage("%s%s%u|r", "|cff33ffff", "Wp Event: No waypoint scripts found on id: ", id); + return true; + } + + Field *fields; + + do + { + fields = result->Fetch(); + a2 = fields[0].GetUInt32(); + a3 = fields[1].GetUInt32(); + a4 = fields[2].GetUInt32(); + a5 = fields[3].GetUInt32(); + a6 = fields[4].GetUInt32(); + a7 = fields[5].GetString(); + a8 = fields[6].GetFloat(); + a9 = fields[7].GetFloat(); + a10 = fields[8].GetFloat(); + a11 = fields[9].GetFloat(); + + PSendSysMessage("|cffff33ffid:|r|cff00ffff %u|r|cff00ff00, guid: |r|cff00ffff%u|r|cff00ff00, delay: |r|cff00ffff%u|r|cff00ff00, command: |r|cff00ffff%u|r|cff00ff00, datalong: |r|cff00ffff%u|r|cff00ff00, datalong2: |r|cff00ffff%u|r|cff00ff00, datatext: |r|cff00ffff%s|r|cff00ff00, posx: |r|cff00ffff%f|r|cff00ff00, posy: |r|cff00ffff%f|r|cff00ff00, posz: |r|cff00ffff%f|r|cff00ff00, orientation: |r|cff00ffff%f|r", id, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); + }while(result->NextRow()); + + delete result; + } + + if(show == "del") + { + + char* arg_id = strtok(NULL, " "); + uint32 id = atoi(arg_id); + + QueryResult *result = WorldDatabase.PQuery( "SELECT `guid` FROM waypoint_scripts WHERE guid = %u", id); + + if( result ) + { + + WorldDatabase.PExecuteLog("DELETE FROM waypoint_scripts WHERE guid = %u", id); + PSendSysMessage("%s%s%u|r","|cff00ff00","Wp Event: Waypoint script removed: ", id); + delete result; + } + else + PSendSysMessage("|cffff33ffWp Event: ERROR: you have selected a non existing script: %u|r", id); + + return true; + } + + + if(show == "mod") + { + char* arg_1 = strtok(NULL," "); + + if(!arg_1) + { + SendSysMessage("|cffff33ffERROR: Waypoint script guid not present.|r"); + return true; + } + + uint32 id = atoi(arg_1); + + if(!id) + { + SendSysMessage("|cffff33ffERROR: No vallid waypoint script id not present.|r"); + return true; + } + + char* arg_2 = strtok(NULL," "); + + if(!arg_2) + { SendSysMessage("|cffff33ffERROR: No argument present.|r"); + return true;} + + + std::string arg_string = arg_2; + + +if( (arg_string != "setid") && (arg_string != "delay") && (arg_string != "command") +&& (arg_string != "datalong") && (arg_string != "datalong2") && (arg_string != "dataint") && (arg_string != "posx") +&& (arg_string != "posy") && (arg_string != "posz") && (arg_string != "orientation") +) { SendSysMessage("|cffff33ffERROR: No valid argument present.|r"); + return true;} + + +char* arg_3; +std::string arg_str_2 = arg_2; +arg_3 = strtok(NULL," "); + +if(!arg_3) +{SendSysMessage("|cffff33ffERROR: No additional argument present.|r"); + return true;} + +float coord; + + if(arg_str_2 == "setid") + { + uint32 newid = atoi(arg_3); + PSendSysMessage("%s%s|r|cff00ffff%u|r|cff00ff00%s|r|cff00ffff%u|r","|cff00ff00","Wp Event: Wypoint scipt guid: ", newid," id changed: ", id); + WorldDatabase.PExecuteLog("UPDATE waypoint_scripts SET id='%u' WHERE guid='%u'", + newid, id); return true; + } + else + { + + QueryResult *result = WorldDatabase.PQuery("SELECT id FROM waypoint_scripts WHERE guid='%u'",id); + + if(!result) + { + SendSysMessage("|cffff33ffERROR: You have selected an non existing waypoint script guid.|r"); + return true; + } + + delete result; + +if(arg_str_2 == "posx") +{ + coord = atof(arg_3); + WorldDatabase.PExecuteLog("UPDATE waypoint_scripts SET x='%f' WHERE guid='%u'", + coord, id); + PSendSysMessage("|cff00ff00Waypoint script:|r|cff00ffff %u|r|cff00ff00 position_x updated.|r", id); + return true; +}else if(arg_str_2 == "posy") +{ + coord = atof(arg_3); + WorldDatabase.PExecuteLog("UPDATE waypoint_scripts SET y='%f' WHERE guid='%u'", + coord, id); + PSendSysMessage("|cff00ff00Waypoint script: %u position_y updated.|r", id); + return true; +} else if(arg_str_2 == "posz") +{ + coord = atof(arg_3); + WorldDatabase.PExecuteLog("UPDATE waypoint_scripts SET z='%f' WHERE guid='%u'", + coord, id); + PSendSysMessage("|cff00ff00Waypoint script: |r|cff00ffff%u|r|cff00ff00 position_z updated.|r", id); + return true; +} else if(arg_str_2 == "orientation") +{ + coord = atof(arg_3); + WorldDatabase.PExecuteLog("UPDATE waypoint_scripts SET o='%f' WHERE guid='%u'", + coord, id); + PSendSysMessage("|cff00ff00Waypoint script: |r|cff00ffff%u|r|cff00ff00 orientation updated.|r", id); + return true; +} else if(arg_str_2 == "dataint") +{ + WorldDatabase.PExecuteLog("UPDATE waypoint_scripts SET %s='%u' WHERE guid='%u'", + arg_2, atoi(arg_3), id); + PSendSysMessage("|cff00ff00Waypoint script: |r|cff00ffff%u|r|cff00ff00 dataint updated.|r", id); + return true; +}else +{ + std::string arg_str_3 = arg_3; + WorldDatabase.escape_string(arg_str_3); + WorldDatabase.PExecuteLog("UPDATE waypoint_scripts SET %s='%s' WHERE guid='%u'", + arg_2, arg_str_3.c_str(), id); +} +} + PSendSysMessage("%s%s|r|cff00ffff%u:|r|cff00ff00 %s %s|r","|cff00ff00","Waypoint script:", id, arg_2,"updated."); +} +return true; +} + +bool ChatHandler::HandleWpModifyCommand(const char* args) +{ + sLog.outDebug("DEBUG: HandleWpModifyCommand"); + + if(!*args) + return false; + + // first arg: add del text emote spell waittime move + char* show_str = strtok((char*)args, " "); + if (!show_str) + { + return false; + } + + std::string show = show_str; + // Check + // Remember: "show" must also be the name of a column! + if( (show != "delay") && (show != "event_id") && (show != "event_chance") + && (show != "move_flag") && (show != "del") && (show != "move") && (show != "wpadd") + ) + { + return false; + } + + // Next arg is: <GUID> <WPNUM> <ARGUMENT> + char* arg_str = NULL; + + // Did user provide a GUID + // or did the user select a creature? + // -> variable lowguid is filled with the GUID of the NPC + uint32 pathid = 0; + uint32 point = 0; + uint32 wpGuid = 0; + Creature* target = getSelectedCreature(); + + if(target) + { + sLog.outDebug("DEBUG: HandleWpModifyCommand - User did select an NPC"); + + // The visual waypoint + Creature* wpCreature = NULL; + + wpGuid = target->GetGUIDLow(); + + // Did the user select a visual spawnpoint? + + if(wpGuid) + wpCreature = ObjectAccessor::GetCreature(*m_session->GetPlayer(),MAKE_NEW_GUID(wpGuid, VISUAL_WAYPOINT, HIGHGUID_UNIT)); + + // attempt check creature existence by DB data + else + { + + QueryResult *result = WorldDatabase.PQuery( "SELECT guid FROM creature_addon WHERE path_id = '%u'",wpGuid); + if(!result) + { + PSendSysMessage(LANG_WAYPOINT_CREATNOTFOUND, wpGuid); + return true; + } + + } + // User did select a visual waypoint? + // Check the creature + if (wpCreature->GetEntry() == VISUAL_WAYPOINT ) + { + QueryResult *result = + WorldDatabase.PQuery( "SELECT id, point FROM waypoint_data WHERE wpguid = %u", + wpGuid); + if(!result) + { + sLog.outDebug("DEBUG: HandleWpModifyCommand - No waypoint found - used 'wpguid'"); + + PSendSysMessage(LANG_WAYPOINT_NOTFOUNDSEARCH, target->GetGUIDLow()); + // Select waypoint number from database + // Since we compare float values, we have to deal with + // some difficulties. + // Here we search for all waypoints that only differ in one from 1 thousand + // (0.001) - There is no other way to compare C++ floats with mySQL floats + // See also: http://dev.mysql.com/doc/refman/5.0/en/problems-with-float.html + const char* maxDIFF = "0.01"; + result = WorldDatabase.PQuery( "SELECT id, point FROM waypoint_data WHERE (abs(position_x - %f) <= %s ) and (abs(position_y - %f) <= %s ) and (abs(position_z - %f) <= %s )", + wpCreature->GetPositionX(), maxDIFF, wpCreature->GetPositionY(), maxDIFF, wpCreature->GetPositionZ(), maxDIFF); + if(!result) + { + PSendSysMessage(LANG_WAYPOINT_NOTFOUNDDBPROBLEM, wpGuid); + return true; + } + } + sLog.outDebug("DEBUG: HandleWpModifyCommand - After getting wpGuid"); + + do + { + Field *fields = result->Fetch(); + pathid = fields[0].GetUInt32(); + point = fields[1].GetUInt32(); + }while( result->NextRow() ); + + // Cleanup memory + sLog.outDebug("DEBUG: HandleWpModifyCommand - Cleanup memory"); + delete result; + // We have the waypoint number and the GUID of the "master npc" + // Text is enclosed in "<>", all other arguments not + + arg_str = strtok((char*)NULL, " "); + + } + } + else + { + // User did provide <GUID> <WPNUM> + char* guid_str = strtok((char*)NULL, " "); + char* point_str = strtok((char*)NULL, " "); + + arg_str = strtok((char*)NULL, " "); + + if( !guid_str ) + { + SendSysMessage(LANG_WAYPOINT_NOGUID); + return false; + } + + if( !point_str ) + { + SendSysMessage(LANG_WAYPOINT_NOWAYPOINTGIVEN); + return false; + } + if( (show != "del") && (show != "move") ) + { + if( !arg_str ) + { + PSendSysMessage(LANG_WAYPOINT_ARGUMENTREQ, show.c_str()); + return false; + } + } + + pathid = atoi((char*)guid_str); + PSendSysMessage("|cff33ffffDEBUG: GUID provided: %d|r", pathid); + + point = atoi((char*)point_str); + PSendSysMessage("|cff33ffffDEBUG: wpNumber provided: %d|r", point); + + // Now we need the GUID of the visual waypoint + // -> "del", "move", "add" command + + QueryResult *result = WorldDatabase.PQuery( "SELECT wpguid FROM waypoint_data WHERE id = '%u' AND point = '%u'", pathid, point); + if(result) + { + + do + { + Field *fields = result->Fetch(); + wpGuid = fields[0].GetUInt32(); + }while( result->NextRow() ); + + + // Free memory + delete result; + } + else + { + PSendSysMessage(LANG_WAYPOINT_NOTFOUNDSEARCH, pathid, point); + // Select waypoint number from database + QueryResult *result = WorldDatabase.PQuery( "SELECT position_x,position_y,position_z FROM waypoint_data WHERE point='%d' AND id = '%u'", point, pathid); + if(!result) + { + PSendSysMessage(LANG_WAYPOINT_NOTFOUND, pathid); + return true; + } + + Field *fields = result->Fetch(); + float x = fields[0].GetFloat(); + float y = fields[1].GetFloat(); + float z = fields[2].GetFloat(); + // Cleanup memory + delete result; + + // Select waypoint number from database + // Since we compare float values, we have to deal with + // some difficulties. + // Here we search for all waypoints that only differ in one from 1 thousand + // (0.001) - There is no other way to compare C++ floats with mySQL floats + // See also: http://dev.mysql.com/doc/refman/5.0/en/problems-with-float.html + const char* maxDIFF = "0.01"; + + result = WorldDatabase.PQuery( "SELECT guid FROM creature WHERE (abs(position_x - %f) <= %s ) and (abs(position_y - %f) <= %s ) and (abs(position_z - %f) <= %s ) and id=%d", + x, maxDIFF, y, maxDIFF, z, maxDIFF, VISUAL_WAYPOINT); + if(!result) + { + + PSendSysMessage(LANG_WAYPOINT_WPCREATNOTFOUND, VISUAL_WAYPOINT); + return true; + } + do + { + Field *fields = result->Fetch(); + wpGuid = fields[0].GetUInt32(); + }while( result->NextRow() ); + + + // Free memory + delete result; + + } + } + + sLog.outDebug("DEBUG: HandleWpModifyCommand - Parameters parsed - now execute the command"); + + // Check for argument + if((show != "del") && (show != "move")) + { + if( arg_str == NULL ) + { + PSendSysMessage(LANG_WAYPOINT_ARGUMENTREQ, show_str); + return false; + } + } + + if(show == "del" && target) + { + PSendSysMessage("|cff00ff00DEBUG: wp modify del, PathID: |r|cff00ffff%u|r", pathid); + + // wpCreature + + Creature* wpCreature = NULL; + if( wpGuid != 0 ) + { + wpCreature = ObjectAccessor::GetCreature(*m_session->GetPlayer(),MAKE_NEW_GUID(wpGuid, VISUAL_WAYPOINT, HIGHGUID_UNIT)); + wpCreature->CombatStop(); + wpCreature->DeleteFromDB(); + wpCreature->AddObjectToRemoveList(); + } + + WorldDatabase.PExecuteLog("DELETE FROM waypoint_data WHERE id='%u' AND point='%u'", + pathid, point); + WorldDatabase.PExecuteLog("UPDATE waypoint_data SET point=point-1 WHERE id='%u' AND point>'%u'", + pathid, point); + + PSendSysMessage(LANG_WAYPOINT_REMOVED); + return true; + } // del + + if(show == "move" && target) + { + PSendSysMessage("|cff00ff00DEBUG: wp move, PathID: |r|cff00ffff%u|r", pathid); + + Player *chr = m_session->GetPlayer(); + Map *map = chr->GetMap(); + { + // wpCreature + Creature* wpCreature = NULL; + // What to do: + // Move the visual spawnpoint + // Respawn the owner of the waypoints + if( wpGuid != 0 ) + { + wpCreature = ObjectAccessor::GetCreature(*m_session->GetPlayer(),MAKE_NEW_GUID(wpGuid, VISUAL_WAYPOINT, HIGHGUID_UNIT)); + wpCreature->CombatStop(); + wpCreature->DeleteFromDB(); + wpCreature->AddObjectToRemoveList(); + // re-create + Creature* wpCreature2 = new Creature; + if (!wpCreature2->Create(objmgr.GenerateLowGuid(HIGHGUID_UNIT), map, VISUAL_WAYPOINT, 0)) + { + PSendSysMessage(LANG_WAYPOINT_VP_NOTCREATED, VISUAL_WAYPOINT); + delete wpCreature2; + return false; + } + wpCreature2->Relocate(chr->GetPositionX(), chr->GetPositionY(), chr->GetPositionZ(), chr->GetOrientation()); + + if(!wpCreature2->IsPositionValid()) + { + sLog.outError("ERROR: Creature (guidlow %d, entry %d) not created. Suggested coordinates isn't valid (X: %f Y: %f)",wpCreature2->GetGUIDLow(),wpCreature2->GetEntry(),wpCreature2->GetPositionX(),wpCreature2->GetPositionY()); + delete wpCreature2; + return false; + } + + wpCreature2->SaveToDB(map->GetId(), (1 << map->GetSpawnMode())); + // To call _LoadGoods(); _LoadQuests(); CreateTrainerSpells(); + wpCreature2->LoadFromDB(wpCreature2->GetDBTableGUIDLow(), map); + map->Add(wpCreature2); + //MapManager::Instance().GetMap(npcCreature->GetMapId())->Add(wpCreature2); + } + + WorldDatabase.PExecuteLog("UPDATE waypoint_data SET position_x = '%f',position_y = '%f',position_z = '%f' where id = '%u' AND point='%u'", + chr->GetPositionX(), chr->GetPositionY(), chr->GetPositionZ(), pathid, point ); + + PSendSysMessage(LANG_WAYPOINT_CHANGED); + } + return true; + } // move + + + const char *text = arg_str; + + if( text == 0 ) + { + // show_str check for present in list of correct values, no sql injection possible + WorldDatabase.PExecuteLog("UPDATE waypoint_data SET %s=NULL WHERE id='%u' AND point='%u'", + show_str, pathid, point); + } + else + { + // show_str check for present in list of correct values, no sql injection possible + std::string text2 = text; + WorldDatabase.escape_string(text2); + WorldDatabase.PExecuteLog("UPDATE waypoint_data SET %s='%s' WHERE id='%u' AND point='%u'", + show_str, text2.c_str(), pathid, point); + } + + PSendSysMessage(LANG_WAYPOINT_CHANGED_NO, show_str); + + return true; +} + + +bool ChatHandler::HandleWpShowCommand(const char* args) +{ + sLog.outDebug("DEBUG: HandleWpShowCommand"); + + if(!*args) + return false; + + // first arg: on, off, first, last + char* show_str = strtok((char*)args, " "); + if (!show_str) + { + return false; + } + // second arg: GUID (optional, if a creature is selected) + char* guid_str = strtok((char*)NULL, " "); + sLog.outDebug("DEBUG: HandleWpShowCommand: show_str: %s guid_str: %s", show_str, guid_str); + + uint32 pathid = 0; + Creature* target = getSelectedCreature(); + + // Did player provide a PathID? + + if (!guid_str) + { + sLog.outDebug("DEBUG: HandleWpShowCommand: !guid_str"); + // No PathID provided + // -> Player must have selected a creature + + if(!target) + { + SendSysMessage(LANG_SELECT_CREATURE); + SetSentErrorMessage(true); + return false; + } + + pathid = target->GetWaypointPath(); + } + + else + { + sLog.outDebug("|cff00ff00DEBUG: HandleWpShowCommand: PathID provided|r"); + // PathID provided + // Warn if player also selected a creature + // -> Creature selection is ignored <- + if(target) + { + SendSysMessage(LANG_WAYPOINT_CREATSELECTED); + } + + pathid = atoi((char*)guid_str); + } + + + sLog.outDebug("DEBUG: HandleWpShowCommand: danach"); + + + + std::string show = show_str; + uint32 Maxpoint; + + sLog.outDebug("DEBUG: HandleWpShowCommand: PathID: %u", pathid); + + //PSendSysMessage("wpshow - show: %s", show); + + // Show info for the selected waypoint + if(show == "info") + + { + + // Check if the user did specify a visual waypoint + if( target->GetEntry() != VISUAL_WAYPOINT ) + + { + PSendSysMessage(LANG_WAYPOINT_VP_SELECT); + SetSentErrorMessage(true); + return false; + } + + + QueryResult *result = WorldDatabase.PQuery( "SELECT id, point, delay, move_flag, action, action_chance FROM waypoint_data WHERE wpguid = %u", target->GetGUIDLow()); + + if(!result) + + { + SendSysMessage(LANG_WAYPOINT_NOTFOUNDDBPROBLEM); + return true; + } + + SendSysMessage("|cff00ffffDEBUG: wp show info:|r"); + + do + { + Field *fields = result->Fetch(); + pathid = fields[0].GetUInt32(); + uint32 point = fields[1].GetUInt32(); + uint32 delay = fields[2].GetUInt32(); + uint32 flag = fields[3].GetUInt32(); + uint32 ev_id = fields[4].GetUInt32(); + uint32 ev_chance = fields[5].GetUInt32(); + + PSendSysMessage("|cff00ff00Show info: for current point: |r|cff00ffff%u|r|cff00ff00, Path ID: |r|cff00ffff%u|r", point, pathid); + PSendSysMessage("|cff00ff00Show info: delay: |r|cff00ffff%u|r", delay); + PSendSysMessage("|cff00ff00Show info: Move flag: |r|cff00ffff%u|r", flag); + PSendSysMessage("|cff00ff00Show info: Waypoint event: |r|cff00ffff%u|r", ev_id); + PSendSysMessage("|cff00ff00Show info: Event chance: |r|cff00ffff%u|r", ev_chance); + }while( result->NextRow() ); + + // Cleanup memory + delete result; + return true; + } + + if(show == "on") + { + QueryResult *result = WorldDatabase.PQuery( "SELECT point, position_x,position_y,position_z FROM waypoint_data WHERE id = '%u'", pathid); + + if(!result) + { + SendSysMessage("|cffff33ffPath no found.|r"); + SetSentErrorMessage(true); + return false; + } + + PSendSysMessage("|cff00ff00DEBUG: wp on, PathID: |cff00ffff%u|r", pathid); + + // Delete all visuals for this NPC + QueryResult *result2 = WorldDatabase.PQuery( "SELECT wpguid FROM waypoint_data WHERE id = '%u' and wpguid <> 0", pathid); + + if(result2) + { + bool hasError = false; + do + { + Field *fields = result2->Fetch(); + uint32 wpguid = fields[0].GetUInt32(); + Creature* pCreature = ObjectAccessor::GetCreature(*m_session->GetPlayer(),MAKE_NEW_GUID(wpguid,VISUAL_WAYPOINT,HIGHGUID_UNIT)); + + if(!pCreature) + { + PSendSysMessage(LANG_WAYPOINT_NOTREMOVED, wpguid); + hasError = true; + WorldDatabase.PExecuteLog("DELETE FROM creature WHERE guid = '%u'", wpguid); + } + else + { + pCreature->CombatStop(); + pCreature->DeleteFromDB(); + pCreature->AddObjectToRemoveList(); + } + + }while( result2->NextRow() ); + + delete result2; + + if( hasError ) + { + PSendSysMessage(LANG_WAYPOINT_TOOFAR1); + PSendSysMessage(LANG_WAYPOINT_TOOFAR2); + PSendSysMessage(LANG_WAYPOINT_TOOFAR3); + } + } + + do + { + Field *fields = result->Fetch(); + uint32 point = fields[0].GetUInt32(); + float x = fields[1].GetFloat(); + float y = fields[2].GetFloat(); + float z = fields[3].GetFloat(); + + uint32 id = VISUAL_WAYPOINT; + + Player *chr = m_session->GetPlayer(); + Map *map = chr->GetMap(); + float o = chr->GetOrientation(); + + Creature* wpCreature = new Creature; + if (!wpCreature->Create(objmgr.GenerateLowGuid(HIGHGUID_UNIT), map, id, 0)) + { + PSendSysMessage(LANG_WAYPOINT_VP_NOTCREATED, id); + delete wpCreature; + delete result; + return false; + } + + wpCreature->Relocate(x, y, z, o); + + if(!wpCreature->IsPositionValid()) + { + sLog.outError("ERROR: Creature (guidlow %d, entry %d) not created. Suggested coordinates isn't valid (X: %f Y: %f)",wpCreature->GetGUIDLow(),wpCreature->GetEntry(),wpCreature->GetPositionX(),wpCreature->GetPositionY()); + delete wpCreature; + delete result; + return false; + } + + sLog.outDebug("DEBUG: UPDATE waypoint_data SET wpguid = '%u"); + // set "wpguid" column to the visual waypoint + WorldDatabase.PExecuteLog("UPDATE waypoint_data SET wpguid = '%u' WHERE id = '%u' and point = '%u'", wpCreature->GetGUIDLow(), pathid, point); + + wpCreature->SaveToDB(map->GetId(), (1 << map->GetSpawnMode())); + wpCreature->LoadFromDB(wpCreature->GetDBTableGUIDLow(),map); + map->Add(wpCreature); + + if(target) + { + wpCreature->SetDisplayId(target->GetDisplayId()); + wpCreature->SetFloatValue(OBJECT_FIELD_SCALE_X, 0.5); + } + } + while( result->NextRow() ); + + SendSysMessage("|cff00ff00Showing the current creature's path.|r"); + // Cleanup memory + delete result; + return true; + } + + if(show == "first") + { + PSendSysMessage("|cff00ff00DEBUG: wp first, GUID: %u|r", pathid); + + QueryResult *result = WorldDatabase.PQuery( "SELECT position_x,position_y,position_z FROM waypoint_data WHERE point='1' AND id = '%u'",pathid); + if(!result) + { + PSendSysMessage(LANG_WAYPOINT_NOTFOUND, pathid); + SetSentErrorMessage(true); + return false; + } + + Field *fields = result->Fetch(); + float x = fields[0].GetFloat(); + float y = fields[1].GetFloat(); + float z = fields[2].GetFloat(); + uint32 id = VISUAL_WAYPOINT; + + Player *chr = m_session->GetPlayer(); + float o = chr->GetOrientation(); + Map *map = chr->GetMap(); + + Creature* pCreature = new Creature; + if (!pCreature->Create(objmgr.GenerateLowGuid(HIGHGUID_UNIT),map, id, 0)) + { + PSendSysMessage(LANG_WAYPOINT_VP_NOTCREATED, id); + delete pCreature; + delete result; + return false; + } + + pCreature->Relocate(x, y, z, o); + + if(!pCreature->IsPositionValid()) + { + sLog.outError("ERROR: Creature (guidlow %d, entry %d) not created. Suggested coordinates isn't valid (X: %f Y: %f)",pCreature->GetGUIDLow(),pCreature->GetEntry(),pCreature->GetPositionX(),pCreature->GetPositionY()); + delete pCreature; + delete result; + return false; + } + + pCreature->SaveToDB(map->GetId(), (1 << map->GetSpawnMode())); + pCreature->LoadFromDB(pCreature->GetDBTableGUIDLow(), map); + map->Add(pCreature); + + if(target) + { + pCreature->SetDisplayId(target->GetDisplayId()); + pCreature->SetFloatValue(OBJECT_FIELD_SCALE_X, 0.5); + } + + // Cleanup memory + delete result; + return true; + } + + if(show == "last") + { + PSendSysMessage("|cff00ff00DEBUG: wp last, PathID: |r|cff00ffff%u|r", pathid); + + QueryResult *result = WorldDatabase.PQuery( "SELECT MAX(point) FROM waypoint_data WHERE id = '%u'",pathid); + if( result ) + { + Maxpoint = (*result)[0].GetUInt32(); + + delete result; + } + else + Maxpoint = 0; + + result = WorldDatabase.PQuery( "SELECT position_x,position_y,position_z FROM waypoint_data WHERE point ='%u' AND id = '%u'",Maxpoint, pathid); + if(!result) + { + PSendSysMessage(LANG_WAYPOINT_NOTFOUNDLAST, pathid); + SetSentErrorMessage(true); + return false; + } + Field *fields = result->Fetch(); + float x = fields[0].GetFloat(); + float y = fields[1].GetFloat(); + float z = fields[2].GetFloat(); + uint32 id = VISUAL_WAYPOINT; + + Player *chr = m_session->GetPlayer(); + float o = chr->GetOrientation(); + Map *map = chr->GetMap(); + + Creature* pCreature = new Creature; + if (!pCreature->Create(objmgr.GenerateLowGuid(HIGHGUID_UNIT), map, id, 0)) + { + PSendSysMessage(LANG_WAYPOINT_NOTCREATED, id); + delete pCreature; + delete result; + return false; + } + + pCreature->Relocate(x, y, z, o); + + if(!pCreature->IsPositionValid()) + { + sLog.outError("ERROR: Creature (guidlow %d, entry %d) not created. Suggested coordinates isn't valid (X: %f Y: %f)",pCreature->GetGUIDLow(),pCreature->GetEntry(),pCreature->GetPositionX(),pCreature->GetPositionY()); + delete pCreature; + delete result; + return false; + } + + pCreature->SaveToDB(map->GetId(), (1 << map->GetSpawnMode())); + pCreature->LoadFromDB(pCreature->GetDBTableGUIDLow(), map); + map->Add(pCreature); + + if(target) + { + pCreature->SetDisplayId(target->GetDisplayId()); + pCreature->SetFloatValue(OBJECT_FIELD_SCALE_X, 0.5); + } + + // Cleanup memory + delete result; + return true; + } + + if(show == "off") + { + QueryResult *result = WorldDatabase.PQuery("SELECT guid FROM creature WHERE id = '%u'", 1); + if(!result) + { + SendSysMessage(LANG_WAYPOINT_VP_NOTFOUND); + SetSentErrorMessage(true); + return false; + } + bool hasError = false; + do + { + Field *fields = result->Fetch(); + uint32 guid = fields[0].GetUInt32(); + Creature* pCreature = ObjectAccessor::GetCreature(*m_session->GetPlayer(),MAKE_NEW_GUID(guid,VISUAL_WAYPOINT,HIGHGUID_UNIT)); + + if(!pCreature) + { + PSendSysMessage(LANG_WAYPOINT_NOTREMOVED, guid); + hasError = true; + WorldDatabase.PExecuteLog("DELETE FROM creature WHERE guid = '%u'", guid); + } + else + { + pCreature->CombatStop(); + + pCreature->DeleteFromDB(); + + pCreature->AddObjectToRemoveList(); + } + }while(result->NextRow()); + // set "wpguid" column to "empty" - no visual waypoint spawned + WorldDatabase.PExecuteLog("UPDATE waypoint_data SET wpguid = '0'"); + + if( hasError ) + { + PSendSysMessage(LANG_WAYPOINT_TOOFAR1); + PSendSysMessage(LANG_WAYPOINT_TOOFAR2); + PSendSysMessage(LANG_WAYPOINT_TOOFAR3); + } + + SendSysMessage(LANG_WAYPOINT_VP_ALLREMOVED); + // Cleanup memory + delete result; + + return true; + } + + PSendSysMessage("|cffff33ffDEBUG: wpshow - no valid command found|r"); + + return true; +} + +//////////// WAYPOINT COMMANDS // //rename characters bool ChatHandler::HandleRenameCommand(const char* args) diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp index 0ead2940ccb..a5c6f54016c 100644 --- a/src/game/Level3.cpp +++ b/src/game/Level3.cpp @@ -536,26 +536,26 @@ bool ChatHandler::HandleReloadEventScriptsCommand(const char* arg) sLog.outString( "Re-Loading Scripts from `event_scripts`..."); objmgr.LoadEventScripts(); -
- if(*arg!='a')
- SendGlobalSysMessage("DB table `event_scripts` reloaded.");
-
- return true;
-}
-
-bool ChatHandler::HandleReloadWpScriptsCommand(const char* arg)
-{
- if(sWorld.IsScriptScheduled())
- {
- SendSysMessage("DB scripts used currently, please attempt reload later.");
- SetSentErrorMessage(true);
- return false;
- }
-
- if(*arg!='a')
- sLog.outString( "Re-Loading Scripts from `event_scripts`...");
-
- objmgr.LoadWaypointScripts();
+ + if(*arg!='a') + SendGlobalSysMessage("DB table `event_scripts` reloaded."); + + return true; +} + +bool ChatHandler::HandleReloadWpScriptsCommand(const char* arg) +{ + if(sWorld.IsScriptScheduled()) + { + SendSysMessage("DB scripts used currently, please attempt reload later."); + SetSentErrorMessage(true); + return false; + } + + if(*arg!='a') + sLog.outString( "Re-Loading Scripts from `event_scripts`..."); + + objmgr.LoadWaypointScripts(); if(*arg!='a') SendGlobalSysMessage("DB table `event_scripts` reloaded."); diff --git a/src/game/MotionMaster.cpp b/src/game/MotionMaster.cpp index 9050c95b651..0195e3ebdf6 100644 --- a/src/game/MotionMaster.cpp +++ b/src/game/MotionMaster.cpp @@ -319,30 +319,30 @@ void MotionMaster::Mutate(MovementGenerator *m) push(m); } -void MotionMaster::MovePath(uint32 path_id, bool repeatable)
-{
- if(!path_id)
- return;
- //We set waypoint movement as new default movement generator
- // clear ALL movement generators (including default)
- while(!empty())
- {
- MovementGenerator *curr = top();
- curr->Finalize(*i_owner);
- pop();
- if( !isStatic( curr ) )
- delete curr;
- }
-
- sLog.outError("attempting to move");
- //i_owner->GetTypeId()==TYPEID_PLAYER ?
- //Mutate(new WaypointMovementGenerator<Player>(path_id, repeatable)):
- Mutate(new WaypointMovementGenerator<Creature>(path_id, repeatable));
-
- DEBUG_LOG("%s (GUID: %u) start moving over path(Id:%u, repeatable: %s)",
- i_owner->GetTypeId()==TYPEID_PLAYER ? "Player" : "Creature",
- i_owner->GetGUIDLow(), path_id, repeatable ? "YES" : "NO" );
-}
+void MotionMaster::MovePath(uint32 path_id, bool repeatable) +{ + if(!path_id) + return; + //We set waypoint movement as new default movement generator + // clear ALL movement generators (including default) + while(!empty()) + { + MovementGenerator *curr = top(); + curr->Finalize(*i_owner); + pop(); + if( !isStatic( curr ) ) + delete curr; + } + + sLog.outError("attempting to move"); + //i_owner->GetTypeId()==TYPEID_PLAYER ? + //Mutate(new WaypointMovementGenerator<Player>(path_id, repeatable)): + Mutate(new WaypointMovementGenerator<Creature>(path_id, repeatable)); + + DEBUG_LOG("%s (GUID: %u) start moving over path(Id:%u, repeatable: %s)", + i_owner->GetTypeId()==TYPEID_PLAYER ? "Player" : "Creature", + i_owner->GetGUIDLow(), path_id, repeatable ? "YES" : "NO" ); +} void MotionMaster::propagateSpeedChange() { diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp index b640307c64d..1d359a2df7c 100644 --- a/src/game/ObjectMgr.cpp +++ b/src/game/ObjectMgr.cpp @@ -4111,18 +4111,18 @@ void ObjectMgr::LoadEventScripts() } } -//Load WP Scripts
-void ObjectMgr::LoadWaypointScripts()
-{
- LoadScripts(sWaypointScripts, "waypoint_scripts");
-
- for(ScriptMapMap::const_iterator itr = sWaypointScripts.begin(); itr != sWaypointScripts.end(); ++itr)
- {
- QueryResult *query = WorldDatabase.PQuery("SELECT * FROM `waypoint_scripts` WHERE `id` = %u", itr->first);
- if(!query || !query->GetRowCount())
- sLog.outErrorDb("There is no waypoint which links to the waypoint script %u", itr->first);
- }
-}
+//Load WP Scripts +void ObjectMgr::LoadWaypointScripts() +{ + LoadScripts(sWaypointScripts, "waypoint_scripts"); + + for(ScriptMapMap::const_iterator itr = sWaypointScripts.begin(); itr != sWaypointScripts.end(); ++itr) + { + QueryResult *query = WorldDatabase.PQuery("SELECT * FROM `waypoint_scripts` WHERE `id` = %u", itr->first); + if(!query || !query->GetRowCount()) + sLog.outErrorDb("There is no waypoint which links to the waypoint script %u", itr->first); + } +} void ObjectMgr::LoadItemTexts() { diff --git a/src/game/WaypointManager.cpp b/src/game/WaypointManager.cpp index 501a95f6442..c18c09bcc17 100644 --- a/src/game/WaypointManager.cpp +++ b/src/game/WaypointManager.cpp @@ -1,152 +1,152 @@ -/*
- * Copyright (C) 2005-2008 MaNGOS <http://www.mangosproject.org/>
- *
- * Copyright (C) 2008 Trinity <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, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include "Database/DatabaseEnv.h"
-#include "GridDefines.h"
-#include "WaypointManager.h"
-#include "ProgressBar.h"
-#include "MapManager.h"
-
-UNORDERED_MAP<uint32, WaypointPath*> waypoint_map;
-WaypointStore WaypointMgr;
-
-void WaypointStore::Free()
-{
- waypoint_map.clear();
-}
-
-void WaypointStore::Load()
-{
- QueryResult *result = WorldDatabase.PQuery("SELECT MAX(`id`) FROM `waypoint_data");
- if(!result)
- {
- sLog.outError(" an error occured while loading the table `waypoint_data` ( maybe it doesn't exist ?)\n");
- exit(1); // Stop server at loading non exited table or not accessable table
- }
-
- records = (*result)[0].GetUInt32();
- delete result;
-
-
- result = WorldDatabase.PQuery("SELECT `id`,`point`,`position_x`,`position_y`,`position_z`,`move_flag`,`delay`,`action`,`action_chance` FROM `waypoint_data` ORDER BY `id`, `point`");
- if(!result)
- {
- sLog.outErrorDb("The table `creature_addon` is empty or corrupted");
- return;
- }
-
- WaypointPath* path_data;
- uint32 total_records = result->GetRowCount();
-
- barGoLink bar( total_records);
- Field *fields;
- uint32 last_id = 0;
-
- do
- {
- fields = result->Fetch();
- uint32 id = fields[0].GetUInt32();
- bar.step();
- WaypointData *wp = new WaypointData;
-
- if(last_id != id)
- path_data = new WaypointPath;
-
- float x,y,z;
- x = fields[2].GetFloat();
- y = fields[3].GetFloat();
- z = fields[4].GetFloat();
-
- Trinity::NormalizeMapCoord(x);
- Trinity::NormalizeMapCoord(y);
-
- wp->id = fields[1].GetUInt32();
- wp->x = x;
- wp->y = y;
- wp->z = z;
- wp->run = fields[5].GetBool();
- wp->delay = fields[6].GetUInt32();
- wp->event_id = fields[7].GetUInt32();
- wp->event_chance = fields[8].GetUInt8();
-
- path_data->push_back(wp);
-
- if(id != last_id)
- waypoint_map[id] = path_data;
-
- last_id = id;
-
- } while(result->NextRow()) ;
-
-
- delete result;
-}
-
-void WaypointStore::UpdatePath(uint32 id)
-{
-
- if(waypoint_map.find(id)!= waypoint_map.end())
- waypoint_map[id]->clear();
-
- QueryResult *result;
-
- result = WorldDatabase.PQuery("SELECT `id`,`point`,`position_x`,`position_y`,`position_z`,`move_flag`,`delay`,`action`,`action_chance` FROM `waypoint_data` WHERE id = %u ORDER BY `point`", id);
-
- if(!result)
- return;
-
- WaypointPath* path_data;
-
- path_data = new WaypointPath;
-
- Field *fields;
-
- do
- {
- fields = result->Fetch();
- uint32 id = fields[0].GetUInt32();
-
- WaypointData *wp = new WaypointData;
-
- float x,y,z;
- x = fields[2].GetFloat();
- y = fields[3].GetFloat();
- z = fields[4].GetFloat();
-
- Trinity::NormalizeMapCoord(x);
- Trinity::NormalizeMapCoord(y);
-
- wp->id = fields[1].GetUInt32();
- wp->x = x;
- wp->y = y;
- wp->z = z;
- wp->run = fields[5].GetBool();
- wp->delay = fields[6].GetUInt32();
- wp->event_id = fields[7].GetUInt32();
- wp->event_chance = fields[8].GetUInt8();
-
- path_data->push_back(wp);
-
- }while (result->NextRow());
-
- waypoint_map[id] = path_data;
-
- delete result;
-}
+/* + * Copyright (C) 2005-2008 MaNGOS <http://www.mangosproject.org/> + * + * Copyright (C) 2008 Trinity <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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "Database/DatabaseEnv.h" +#include "GridDefines.h" +#include "WaypointManager.h" +#include "ProgressBar.h" +#include "MapManager.h" + +UNORDERED_MAP<uint32, WaypointPath*> waypoint_map; +WaypointStore WaypointMgr; + +void WaypointStore::Free() +{ + waypoint_map.clear(); +} + +void WaypointStore::Load() +{ + QueryResult *result = WorldDatabase.PQuery("SELECT MAX(`id`) FROM `waypoint_data"); + if(!result) + { + sLog.outError(" an error occured while loading the table `waypoint_data` ( maybe it doesn't exist ?)\n"); + exit(1); // Stop server at loading non exited table or not accessable table + } + + records = (*result)[0].GetUInt32(); + delete result; + + + result = WorldDatabase.PQuery("SELECT `id`,`point`,`position_x`,`position_y`,`position_z`,`move_flag`,`delay`,`action`,`action_chance` FROM `waypoint_data` ORDER BY `id`, `point`"); + if(!result) + { + sLog.outErrorDb("The table `creature_addon` is empty or corrupted"); + return; + } + + WaypointPath* path_data; + uint32 total_records = result->GetRowCount(); + + barGoLink bar( total_records); + Field *fields; + uint32 last_id = 0; + + do + { + fields = result->Fetch(); + uint32 id = fields[0].GetUInt32(); + bar.step(); + WaypointData *wp = new WaypointData; + + if(last_id != id) + path_data = new WaypointPath; + + float x,y,z; + x = fields[2].GetFloat(); + y = fields[3].GetFloat(); + z = fields[4].GetFloat(); + + Trinity::NormalizeMapCoord(x); + Trinity::NormalizeMapCoord(y); + + wp->id = fields[1].GetUInt32(); + wp->x = x; + wp->y = y; + wp->z = z; + wp->run = fields[5].GetBool(); + wp->delay = fields[6].GetUInt32(); + wp->event_id = fields[7].GetUInt32(); + wp->event_chance = fields[8].GetUInt8(); + + path_data->push_back(wp); + + if(id != last_id) + waypoint_map[id] = path_data; + + last_id = id; + + } while(result->NextRow()) ; + + + delete result; +} + +void WaypointStore::UpdatePath(uint32 id) +{ + + if(waypoint_map.find(id)!= waypoint_map.end()) + waypoint_map[id]->clear(); + + QueryResult *result; + + result = WorldDatabase.PQuery("SELECT `id`,`point`,`position_x`,`position_y`,`position_z`,`move_flag`,`delay`,`action`,`action_chance` FROM `waypoint_data` WHERE id = %u ORDER BY `point`", id); + + if(!result) + return; + + WaypointPath* path_data; + + path_data = new WaypointPath; + + Field *fields; + + do + { + fields = result->Fetch(); + uint32 id = fields[0].GetUInt32(); + + WaypointData *wp = new WaypointData; + + float x,y,z; + x = fields[2].GetFloat(); + y = fields[3].GetFloat(); + z = fields[4].GetFloat(); + + Trinity::NormalizeMapCoord(x); + Trinity::NormalizeMapCoord(y); + + wp->id = fields[1].GetUInt32(); + wp->x = x; + wp->y = y; + wp->z = z; + wp->run = fields[5].GetBool(); + wp->delay = fields[6].GetUInt32(); + wp->event_id = fields[7].GetUInt32(); + wp->event_chance = fields[8].GetUInt8(); + + path_data->push_back(wp); + + }while (result->NextRow()); + + waypoint_map[id] = path_data; + + delete result; +} diff --git a/src/game/WaypointManager.h b/src/game/WaypointManager.h index fd7f533e0da..ec6d46c3b31 100644 --- a/src/game/WaypointManager.h +++ b/src/game/WaypointManager.h @@ -1,61 +1,61 @@ -/*
- * Copyright (C) 2005-2008 MaNGOS <http://www.mangosproject.org/>
- *
- * Copyright (C) 2008 Trinity <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, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef TRINITY_WAYPOINTMANAGER_H
-#define TRINITY_WAYPOINTMANAGER_H
-
-#include <vector>
-
-struct WaypointData
-{
- uint32 id;
- float x,y,z;
- bool run;
- uint32 delay;
- uint32 event_id;
- uint8 event_chance;
-};
-
-typedef std::vector<WaypointData*> WaypointPath;
-extern UNORDERED_MAP<uint32, WaypointPath*> waypoint_map;
-
-class WaypointStore
-{
- private :
- uint32 records;
-
- public:
- void UpdatePath(uint32 id);
- void Load();
- void Free();
-
- WaypointPath* GetPath(uint32 id)
- {
- if(waypoint_map.find(id) != waypoint_map.end())
- return waypoint_map[id];
- else return 0;
- }
-
- inline uint32 GetRecordsCount() { return records; }
-};
-
-extern WaypointStore WaypointMgr;
-
-#endif
+/* + * Copyright (C) 2005-2008 MaNGOS <http://www.mangosproject.org/> + * + * Copyright (C) 2008 Trinity <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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef TRINITY_WAYPOINTMANAGER_H +#define TRINITY_WAYPOINTMANAGER_H + +#include <vector> + +struct WaypointData +{ + uint32 id; + float x,y,z; + bool run; + uint32 delay; + uint32 event_id; + uint8 event_chance; +}; + +typedef std::vector<WaypointData*> WaypointPath; +extern UNORDERED_MAP<uint32, WaypointPath*> waypoint_map; + +class WaypointStore +{ + private : + uint32 records; + + public: + void UpdatePath(uint32 id); + void Load(); + void Free(); + + WaypointPath* GetPath(uint32 id) + { + if(waypoint_map.find(id) != waypoint_map.end()) + return waypoint_map[id]; + else return 0; + } + + inline uint32 GetRecordsCount() { return records; } +}; + +extern WaypointStore WaypointMgr; + +#endif diff --git a/src/game/WaypointMovementGenerator.cpp b/src/game/WaypointMovementGenerator.cpp index 31872ce7f98..84f121eb9b3 100644 --- a/src/game/WaypointMovementGenerator.cpp +++ b/src/game/WaypointMovementGenerator.cpp @@ -1,629 +1,629 @@ -/*
- * Copyright (C) 2005-2008 MaNGOS <http://www.mangosproject.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, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-//Basic header
-#include <ctime>
-
-#include "WaypointMovementGenerator.h"
-//Accessors
-#include "Database/DatabaseEnv.h"
-#include "ObjectMgr.h"
-#include "World.h"
-//Creature-specific headers
-#include "Creature.h"
-#include "CreatureAI.h"
-//Player-Specific
-#include "Player.h"
-//Visual
-#include "ProgressBar.h"
-#include "MapManager.h"
-
-template<class T>
-void
-WaypointMovementGenerator<T>::Initialize(T &u){}
-
-template<>
-void
-WaypointMovementGenerator<Creature>::Initialize(Creature &u)
-{
- i_currentNode = -1;
- u.StopMoving();
- if(!path_id)
- path_id = u.GetWaypointPath();
- waypoints = WaypointMgr.GetPath(path_id);
-}
-
-template<>
-void
-WaypointMovementGenerator<Creature>::Finalize(Creature &u){}
-
-template<>
-void
-WaypointMovementGenerator<Player>::Finalize(Player &u){}
-
-template<class T>
-void
-WaypointMovementGenerator<T>::MovementInform(T &unit){}
-
-template<>
-void WaypointMovementGenerator<Creature>::MovementInform(Creature &unit)
-{
- unit.AI()->MovementInform(WAYPOINT_MOTION_TYPE, i_currentNode);
-}
-
-template<>
-void WaypointMovementGenerator<Creature>::Reset(Creature &unit){}
-
-template<>
-void WaypointMovementGenerator<Player>::Reset(Player &unit){}
-
-template<>
-void WaypointMovementGenerator<Creature>::InitTraveller(Creature &unit, const WaypointData &node)
-{
- node.run ? unit.RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE): unit.AddUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
-
- unit.SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
- unit.SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
-
- if(unit.canFly())
- unit.AddUnitMovementFlag(MOVEMENTFLAG_FLYING2);
-
- unit.addUnitState(UNIT_STAT_ROAMING);
-}
-
-template<>
-void WaypointMovementGenerator<Player>::InitTraveller(Player &unit, const WaypointData &node){}
-
-template<class T>
-bool
-WaypointMovementGenerator<T>::Update(T &unit, const uint32 &diff)
-{
- return false;
-}
-
-template<>
-bool
-WaypointMovementGenerator<Creature>::Update(Creature &unit, const uint32 &diff)
-{
- if(!&unit)
- return true;
-
- if(!path_id)
- return false;
-
- // Waypoint movement can be switched on/off
- // This is quite handy for escort quests and other stuff
- if(unit.hasUnitState(UNIT_STAT_ROOT | UNIT_STAT_STUNNED | UNIT_STAT_DISTRACTED))
- return true;
-
- // Clear the generator if the path doesn't exist
- if(!waypoints || !waypoints->size())
- return false;
-
- Traveller<Creature> traveller(unit);
-
- i_nextMoveTime.Update(diff);
- i_destinationHolder.UpdateTraveller(traveller, diff, false, true);
-
- if(i_nextMoveTime.Passed())
- {
- if(unit.IsStopped())
- {
- if(StopedByPlayer)
- {
- InitTraveller(unit,node);
- i_destinationHolder.SetDestination(traveller, node.x, node.y, node.z);
- i_nextMoveTime.Reset(i_destinationHolder.GetTotalTravelTime());
- StopedByPlayer = false;
- return true;
- }
-
- if(i_currentNode == waypoints->size() - 1) //If that's our last waypoint
- {
- if(repeating) //If the movement is repeating
- i_currentNode = 0; //Start moving all over again
- else
- {
- unit.GetMotionMaster()->Initialize();
- return false; //Clear the waypoint movement
- }
- }
- else
- i_currentNode++;
-
- node = *(waypoints->at(i_currentNode));
- InitTraveller(unit,node);
- i_destinationHolder.SetDestination(traveller, node.x, node.y, node.z);
- i_nextMoveTime.Reset(i_destinationHolder.GetTotalTravelTime());
- }
- else
- {
- //Determine waittime
- if(node.delay)
- i_nextMoveTime.Reset(node.delay);
- else
- i_nextMoveTime.Reset(100); //Prevents some lag
-
- if(node.event_id && rand()%100 < node.event_chance && !ExecuteScript)
- {
- sWorld.ScriptsStart(sWaypointScripts, node.event_id, &unit, NULL);
- ExecuteScript = true;
- }
-
- MovementInform(unit);
- unit.UpdateWaypointID(i_currentNode);
- traveller.Relocation(node.x, node.y, node.z);
- unit.clearUnitState(UNIT_STAT_MOVING);
- }
- }
- else
- {
- if(unit.IsStopped() && !i_destinationHolder.HasArrived())
- {
- if(!StopedByPlayer)
- {
- i_destinationHolder.IncreaseTravelTime(STOP_TIME_FOR_PLAYER);
- i_nextMoveTime.Reset(STOP_TIME_FOR_PLAYER);
- StopedByPlayer = true;
- }
- }
- }
- return true;
-}
-
-template void WaypointMovementGenerator<Player>::Initialize(Player &);
-template bool WaypointMovementGenerator<Player>::Update(Player &, const uint32 &);
-template void WaypointMovementGenerator<Player>::MovementInform(Player &);
-
-//----------------------------------------------------//
-void
-FlightPathMovementGenerator::LoadPath(Player &)
-{
- objmgr.GetTaxiPathNodes(i_pathId, i_path,i_mapIds);
-}
-
-uint32
-FlightPathMovementGenerator::GetPathAtMapEnd() const
-{
- if(i_currentNode >= i_mapIds.size())
- return i_mapIds.size();
-
- uint32 curMapId = i_mapIds[i_currentNode];
- for(uint32 i = i_currentNode; i < i_mapIds.size(); ++i)
- {
- if(i_mapIds[i] != curMapId)
- return i;
- }
-
- return i_mapIds.size();
-}
-
-void
-FlightPathMovementGenerator::Initialize(Player &player)
-{
- player.getHostilRefManager().setOnlineOfflineState(false);
- player.addUnitState(UNIT_STAT_IN_FLIGHT);
- player.SetFlag(UNIT_FIELD_FLAGS,UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_TAXI_FLIGHT);
- LoadPath(player);
- Traveller<Player> traveller(player);
- // do not send movement, it was sent already
- i_destinationHolder.SetDestination(traveller, i_path[i_currentNode].x, i_path[i_currentNode].y, i_path[i_currentNode].z, false);
-
- player.SendMonsterMoveByPath(GetPath(),GetCurrentNode(),GetPathAtMapEnd(),MOVEMENTFLAG_WALK_MODE|MOVEMENTFLAG_ONTRANSPORT);
-}
-
-void FlightPathMovementGenerator::Finalize(Player & player)
-{
-
- float x, y, z;
- i_destinationHolder.GetLocationNow(player.GetMapId(), x, y, z);
- player.SetPosition(x, y, z, player.GetOrientation());
-
- player.clearUnitState(UNIT_STAT_IN_FLIGHT);
- player.Unmount();
- player.RemoveFlag(UNIT_FIELD_FLAGS,UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_TAXI_FLIGHT);
-
- if(player.m_taxi.empty())
- {
- player.getHostilRefManager().setOnlineOfflineState(true);
- if(player.pvpInfo.inHostileArea)
- player.CastSpell(&player, 2479, true);
-
- player.SetUnitMovementFlags(MOVEMENTFLAG_WALK_MODE);
- player.StopMoving();
- }
-}
-
-bool
-FlightPathMovementGenerator::Update(Player &player, const uint32 &diff)
-{
- if( MovementInProgress() )
- {
- Traveller<Player> traveller(player);
- if( i_destinationHolder.UpdateTraveller(traveller, diff, false) )
- {
- i_destinationHolder.ResetUpdate(FLIGHT_TRAVEL_UPDATE);
- if( i_destinationHolder.HasArrived() )
- {
- uint32 curMap = i_mapIds[i_currentNode];
- ++i_currentNode;
- if( MovementInProgress() )
- {
- DEBUG_LOG("loading node %u for player %s", i_currentNode, player.GetName());
- if(i_mapIds[i_currentNode]==curMap)
- {
- // do not send movement, it was sent already
- i_destinationHolder.SetDestination(traveller, i_path[i_currentNode].x, i_path[i_currentNode].y, i_path[i_currentNode].z, false);
- }
- return true;
- }
- //else HasArrived()
- }
- else
- return true;
- }
- else
- return true;
- }
-
- // we have arrived at the end of the path
- return false;
-}
-
-void
-FlightPathMovementGenerator::SetCurrentNodeAfterTeleport()
-{
- if(i_mapIds.empty())
- return;
-
- uint32 map0 = i_mapIds[0];
- for(int i = 1; i < i_mapIds.size(); ++i)
- {
- if(i_mapIds[i]!=map0)
- {
- i_currentNode = i;
- return;
- }
- }
-}
-
-//
-// Unique1's ASTAR Pathfinding Code... For future use & reference...
-//
-
-#ifdef __PATHFINDING__
-
-int GetFCost(int to, int num, int parentNum, float *gcost); // Below...
-
-int ShortenASTARRoute(short int *pathlist, int number)
-{ // Wrote this to make the routes a little smarter (shorter)... No point looping back to the same places... Unique1
- short int temppathlist[MAX_PATHLIST_NODES];
- int count = 0;
- // int count2 = 0;
- int temp, temp2;
- int link;
- int upto = 0;
-
- for (temp = number; temp >= 0; temp--)
- {
- qboolean shortened = qfalse;
-
- for (temp2 = 0; temp2 < temp; temp2++)
- {
- for (link = 0; link < nodes[pathlist[temp]].enodenum; link++)
- {
- if (nodes[pathlist[temp]].links[link].flags & PATH_BLOCKED)
- continue;
-
- //if ((bot->client->ps.eFlags & EF_TANK) && nodes[bot->current_node].links[link].flags & PATH_NOTANKS) //if this path is blocked, skip it
- // continue;
-
- //if (nodes[nodes[pathlist[temp]].links[link].targetNode].origin[2] > nodes[pathlist[temp]].origin[2] + 32)
- // continue;
-
- if (nodes[pathlist[temp]].links[link].targetNode == pathlist[temp2])
- { // Found a shorter route...
- //if (OrgVisible(nodes[pathlist[temp2]].origin, nodes[pathlist[temp]].origin, -1))
- {
- temppathlist[count] = pathlist[temp2];
- temp = temp2;
- ++count;
- shortened = qtrue;
- }
- }
- }
- }
-
- if (!shortened)
- {
- temppathlist[count] = pathlist[temp];
- ++count;
- }
- }
-
- upto = count;
-
- for (temp = 0; temp < count; temp++)
- {
- pathlist[temp] = temppathlist[upto];
- --upto;
- }
-
- G_Printf("ShortenASTARRoute: Path size reduced from %i to %i nodes...n", number, count);
- return count;
-}
-
-/*
-===========================================================================
-CreatePathAStar
-This function uses the A* pathfinding algorithm to determine the
-shortest path between any two nodes.
-It's fairly complex, so I'm not really going to explain it much.
-Look up A* and binary heaps for more info.
-pathlist stores the ideal path between the nodes, in reverse order,
-and the return value is the number of nodes in that path
-===========================================================================
-*/
-int CreatePathAStar(gentity_t *bot, int from, int to, short int *pathlist)
-{
- //all the data we have to hold...since we can't do dynamic allocation, has to be MAX_NODES
- //we can probably lower this later - eg, the open list should never have more than at most a few dozen items on it
- short int openlist[MAX_NODES+1]; //add 1 because it's a binary heap, and they don't use 0 - 1 is the first used index
- float gcost[MAX_NODES];
- int fcost[MAX_NODES];
- char list[MAX_NODES]; //0 is neither, 1 is open, 2 is closed - char because it's the smallest data type
- short int parent[MAX_NODES];
-
- short int numOpen = 0;
- short int atNode, temp, newnode=-1;
- qboolean found = qfalse;
- int count = -1;
- float gc;
- int i, u, v, m;
- vec3_t vec;
-
- //clear out all the arrays
- memset(openlist, 0, sizeof(short int)*(MAX_NODES+1));
- memset(fcost, 0, sizeof(int)*MAX_NODES);
- memset(list, 0, sizeof(char)*MAX_NODES);
- memset(parent, 0, sizeof(short int)*MAX_NODES);
- memset(gcost, -1, sizeof(float)*MAX_NODES);
-
- //make sure we have valid data before calculating everything
- if ((from == NODE_INVALID) || (to == NODE_INVALID) || (from >= MAX_NODES) || (to >= MAX_NODES) || (from == to))
- return -1;
-
- openlist[1] = from; //add the starting node to the open list
- ++numOpen;
- gcost[from] = 0; //its f and g costs are obviously 0
- fcost[from] = 0;
-
- while (1)
- {
- if (numOpen != 0) //if there are still items in the open list
- {
- //pop the top item off of the list
- atNode = openlist[1];
- list[atNode] = 2; //put the node on the closed list so we don't check it again
- --numOpen;
-
- openlist[1] = openlist[numOpen+1]; //move the last item in the list to the top position
- v = 1;
-
- //this while loop reorders the list so that the new lowest fcost is at the top again
- while (1)
- {
- u = v;
- if ((2*u+1) < numOpen) //if both children exist
- {
- if (fcost[openlist[u]] >= fcost[openlist[2*u]])
- v = 2*u;
- if (fcost[openlist[v]] >= fcost[openlist[2*u+1]])
- v = 2*u+1;
- }
- else
- {
- if ((2*u) < numOpen) //if only one child exists
- {
- if (fcost[openlist[u]] >= fcost[openlist[2*u]])
- v = 2*u;
- }
- }
-
- if (u != v) //if they're out of order, swap this item with its parent
- {
- temp = openlist[u];
- openlist[u] = openlist[v];
- openlist[v] = temp;
- }
- else
- break;
- }
-
- for (i = 0; i < nodes[atNode].enodenum; i++) //loop through all the links for this node
- {
- newnode = nodes[atNode].links[i].targetNode;
-
- //if this path is blocked, skip it
- if (nodes[atNode].links[i].flags & PATH_BLOCKED)
- continue;
- //if this path is blocked, skip it
- if (bot->client && (bot->client->ps.eFlags & EF_TANK) && nodes[atNode].links[i].flags & PATH_NOTANKS)
- continue;
- //skip any unreachable nodes
- if (bot->client && (nodes[newnode].type & NODE_ALLY_UNREACHABLE) && (bot->client->sess.sessionTeam == TEAM_ALLIES))
- continue;
- if (bot->client && (nodes[newnode].type & NODE_AXIS_UNREACHABLE) && (bot->client->sess.sessionTeam == TEAM_AXIS))
- continue;
-
- if (list[newnode] == 2) //if this node is on the closed list, skip it
- continue;
-
- if (list[newnode] != 1) //if this node is not already on the open list
- {
- openlist[++numOpen] = newnode; //add the new node to the open list
- list[newnode] = 1;
- parent[newnode] = atNode; //record the node's parent
-
- if (newnode == to) //if we've found the goal, don't keep computing paths!
- break; //this will break the 'for' and go all the way to 'if (list[to] == 1)'
-
- //store it's f cost value
- fcost[newnode] = GetFCost(to, newnode, parent[newnode], gcost);
-
- //this loop re-orders the heap so that the lowest fcost is at the top
- m = numOpen;
- while (m != 1) //while this item isn't at the top of the heap already
- {
- //if it has a lower fcost than its parent
- if (fcost[openlist[m]] <= fcost[openlist[m/2]])
- {
- temp = openlist[m/2];
- openlist[m/2] = openlist[m];
- openlist[m] = temp; //swap them
- m /= 2;
- }
- else
- break;
- }
- }
- else //if this node is already on the open list
- {
- gc = gcost[atNode];
- VectorSubtract(nodes[newnode].origin, nodes[atNode].origin, vec);
- gc += VectorLength(vec); //calculate what the gcost would be if we reached this node along the current path
-
- if (gc < gcost[newnode]) //if the new gcost is less (ie, this path is shorter than what we had before)
- {
- parent[newnode] = atNode; //set the new parent for this node
- gcost[newnode] = gc; //and the new g cost
-
- for (i = 1; i < numOpen; i++) //loop through all the items on the open list
- {
- if (openlist[i] == newnode) //find this node in the list
- {
- //calculate the new fcost and store it
- fcost[newnode] = GetFCost(to, newnode, parent[newnode], gcost);
-
- //reorder the list again, with the lowest fcost item on top
- m = i;
- while (m != 1)
- {
- //if the item has a lower fcost than it's parent
- if (fcost[openlist[m]] < fcost[openlist[m/2]])
- {
- temp = openlist[m/2];
- openlist[m/2] = openlist[m];
- openlist[m] = temp; //swap them
- m /= 2;
- }
- else
- break;
- }
- break; //exit the 'for' loop because we already changed this node
- } //if
- } //for
- } //if (gc < gcost[newnode])
- } //if (list[newnode] != 1) --> else
- } //for (loop through links)
- } //if (numOpen != 0)
- else
- {
- found = qfalse; //there is no path between these nodes
- break;
- }
-
- if (list[to] == 1) //if the destination node is on the open list, we're done
- {
- found = qtrue;
- break;
- }
- } //while (1)
-
- if (found == qtrue) //if we found a path
- {
- //G_Printf("%s - path found!n", bot->client->pers.netname);
- count = 0;
-
- temp = to; //start at the end point
- while (temp != from) //travel along the path (backwards) until we reach the starting point
- {
- pathlist[count++] = temp; //add the node to the pathlist and increment the count
- temp = parent[temp]; //move to the parent of this node to continue the path
- }
-
- pathlist[count++] = from; //add the beginning node to the end of the pathlist
-
- #ifdef __BOT_SHORTEN_ROUTING__
- count = ShortenASTARRoute(pathlist, count); // This isn't working... Dunno why.. Unique1
- #endif //__BOT_SHORTEN_ROUTING__
- }
- else
- {
- //G_Printf("^1*** ^4BOT DEBUG^5: (CreatePathAStar) There is no route between node ^7%i^5 and node ^7%i^5.n", from, to);
- count = CreateDumbRoute(from, to, pathlist);
-
- if (count > 0)
- {
- #ifdef __BOT_SHORTEN_ROUTING__
- count = ShortenASTARRoute(pathlist, count); // This isn't working... Dunno why.. Unique1
- #endif //__BOT_SHORTEN_ROUTING__
- return count;
- }
- }
-
- return count; //return the number of nodes in the path, -1 if not found
-}
-
-/*
-===========================================================================
-GetFCost
-Utility function used by A* pathfinding to calculate the
-cost to move between nodes towards a goal. Using the A*
-algorithm F = G + H, G here is the distance along the node
-paths the bot must travel, and H is the straight-line distance
-to the goal node.
-Returned as an int because more precision is unnecessary and it
-will slightly speed up heap access
-===========================================================================
-*/
-int GetFCost(int to, int num, int parentNum, float *gcost)
-{
- float gc = 0;
- float hc = 0;
- vec3_t v;
-
- if (gcost[num] == -1)
- {
- if (parentNum != -1)
- {
- gc = gcost[parentNum];
- VectorSubtract(nodes[num].origin, nodes[parentNum].origin, v);
- gc += VectorLength(v);
- }
- gcost[num] = gc;
- }
- else
- gc = gcost[num];
-
- VectorSubtract(nodes[to].origin, nodes[num].origin, v);
- hc = VectorLength(v);
-
- return (int)(gc + hc);
-}
-#endif //__PATHFINDING__
+/* + * Copyright (C) 2005-2008 MaNGOS <http://www.mangosproject.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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +//Basic header +#include <ctime> + +#include "WaypointMovementGenerator.h" +//Accessors +#include "Database/DatabaseEnv.h" +#include "ObjectMgr.h" +#include "World.h" +//Creature-specific headers +#include "Creature.h" +#include "CreatureAI.h" +//Player-Specific +#include "Player.h" +//Visual +#include "ProgressBar.h" +#include "MapManager.h" + +template<class T> +void +WaypointMovementGenerator<T>::Initialize(T &u){} + +template<> +void +WaypointMovementGenerator<Creature>::Initialize(Creature &u) +{ + i_currentNode = -1; + u.StopMoving(); + if(!path_id) + path_id = u.GetWaypointPath(); + waypoints = WaypointMgr.GetPath(path_id); +} + +template<> +void +WaypointMovementGenerator<Creature>::Finalize(Creature &u){} + +template<> +void +WaypointMovementGenerator<Player>::Finalize(Player &u){} + +template<class T> +void +WaypointMovementGenerator<T>::MovementInform(T &unit){} + +template<> +void WaypointMovementGenerator<Creature>::MovementInform(Creature &unit) +{ + unit.AI()->MovementInform(WAYPOINT_MOTION_TYPE, i_currentNode); +} + +template<> +void WaypointMovementGenerator<Creature>::Reset(Creature &unit){} + +template<> +void WaypointMovementGenerator<Player>::Reset(Player &unit){} + +template<> +void WaypointMovementGenerator<Creature>::InitTraveller(Creature &unit, const WaypointData &node) +{ + node.run ? unit.RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE): unit.AddUnitMovementFlag(MOVEMENTFLAG_WALK_MODE); + + unit.SetUInt32Value(UNIT_NPC_EMOTESTATE, 0); + unit.SetUInt32Value(UNIT_FIELD_BYTES_1, 0); + + if(unit.canFly()) + unit.AddUnitMovementFlag(MOVEMENTFLAG_FLYING2); + + unit.addUnitState(UNIT_STAT_ROAMING); +} + +template<> +void WaypointMovementGenerator<Player>::InitTraveller(Player &unit, const WaypointData &node){} + +template<class T> +bool +WaypointMovementGenerator<T>::Update(T &unit, const uint32 &diff) +{ + return false; +} + +template<> +bool +WaypointMovementGenerator<Creature>::Update(Creature &unit, const uint32 &diff) +{ + if(!&unit) + return true; + + if(!path_id) + return false; + + // Waypoint movement can be switched on/off + // This is quite handy for escort quests and other stuff + if(unit.hasUnitState(UNIT_STAT_ROOT | UNIT_STAT_STUNNED | UNIT_STAT_DISTRACTED)) + return true; + + // Clear the generator if the path doesn't exist + if(!waypoints || !waypoints->size()) + return false; + + Traveller<Creature> traveller(unit); + + i_nextMoveTime.Update(diff); + i_destinationHolder.UpdateTraveller(traveller, diff, false, true); + + if(i_nextMoveTime.Passed()) + { + if(unit.IsStopped()) + { + if(StopedByPlayer) + { + InitTraveller(unit,node); + i_destinationHolder.SetDestination(traveller, node.x, node.y, node.z); + i_nextMoveTime.Reset(i_destinationHolder.GetTotalTravelTime()); + StopedByPlayer = false; + return true; + } + + if(i_currentNode == waypoints->size() - 1) //If that's our last waypoint + { + if(repeating) //If the movement is repeating + i_currentNode = 0; //Start moving all over again + else + { + unit.GetMotionMaster()->Initialize(); + return false; //Clear the waypoint movement + } + } + else + i_currentNode++; + + node = *(waypoints->at(i_currentNode)); + InitTraveller(unit,node); + i_destinationHolder.SetDestination(traveller, node.x, node.y, node.z); + i_nextMoveTime.Reset(i_destinationHolder.GetTotalTravelTime()); + } + else + { + //Determine waittime + if(node.delay) + i_nextMoveTime.Reset(node.delay); + else + i_nextMoveTime.Reset(100); //Prevents some lag + + if(node.event_id && rand()%100 < node.event_chance && !ExecuteScript) + { + sWorld.ScriptsStart(sWaypointScripts, node.event_id, &unit, NULL); + ExecuteScript = true; + } + + MovementInform(unit); + unit.UpdateWaypointID(i_currentNode); + traveller.Relocation(node.x, node.y, node.z); + unit.clearUnitState(UNIT_STAT_MOVING); + } + } + else + { + if(unit.IsStopped() && !i_destinationHolder.HasArrived()) + { + if(!StopedByPlayer) + { + i_destinationHolder.IncreaseTravelTime(STOP_TIME_FOR_PLAYER); + i_nextMoveTime.Reset(STOP_TIME_FOR_PLAYER); + StopedByPlayer = true; + } + } + } + return true; +} + +template void WaypointMovementGenerator<Player>::Initialize(Player &); +template bool WaypointMovementGenerator<Player>::Update(Player &, const uint32 &); +template void WaypointMovementGenerator<Player>::MovementInform(Player &); + +//----------------------------------------------------// +void +FlightPathMovementGenerator::LoadPath(Player &) +{ + objmgr.GetTaxiPathNodes(i_pathId, i_path,i_mapIds); +} + +uint32 +FlightPathMovementGenerator::GetPathAtMapEnd() const +{ + if(i_currentNode >= i_mapIds.size()) + return i_mapIds.size(); + + uint32 curMapId = i_mapIds[i_currentNode]; + for(uint32 i = i_currentNode; i < i_mapIds.size(); ++i) + { + if(i_mapIds[i] != curMapId) + return i; + } + + return i_mapIds.size(); +} + +void +FlightPathMovementGenerator::Initialize(Player &player) +{ + player.getHostilRefManager().setOnlineOfflineState(false); + player.addUnitState(UNIT_STAT_IN_FLIGHT); + player.SetFlag(UNIT_FIELD_FLAGS,UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_TAXI_FLIGHT); + LoadPath(player); + Traveller<Player> traveller(player); + // do not send movement, it was sent already + i_destinationHolder.SetDestination(traveller, i_path[i_currentNode].x, i_path[i_currentNode].y, i_path[i_currentNode].z, false); + + player.SendMonsterMoveByPath(GetPath(),GetCurrentNode(),GetPathAtMapEnd(),MOVEMENTFLAG_WALK_MODE|MOVEMENTFLAG_ONTRANSPORT); +} + +void FlightPathMovementGenerator::Finalize(Player & player) +{ + + float x, y, z; + i_destinationHolder.GetLocationNow(player.GetMapId(), x, y, z); + player.SetPosition(x, y, z, player.GetOrientation()); + + player.clearUnitState(UNIT_STAT_IN_FLIGHT); + player.Unmount(); + player.RemoveFlag(UNIT_FIELD_FLAGS,UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_TAXI_FLIGHT); + + if(player.m_taxi.empty()) + { + player.getHostilRefManager().setOnlineOfflineState(true); + if(player.pvpInfo.inHostileArea) + player.CastSpell(&player, 2479, true); + + player.SetUnitMovementFlags(MOVEMENTFLAG_WALK_MODE); + player.StopMoving(); + } +} + +bool +FlightPathMovementGenerator::Update(Player &player, const uint32 &diff) +{ + if( MovementInProgress() ) + { + Traveller<Player> traveller(player); + if( i_destinationHolder.UpdateTraveller(traveller, diff, false) ) + { + i_destinationHolder.ResetUpdate(FLIGHT_TRAVEL_UPDATE); + if( i_destinationHolder.HasArrived() ) + { + uint32 curMap = i_mapIds[i_currentNode]; + ++i_currentNode; + if( MovementInProgress() ) + { + DEBUG_LOG("loading node %u for player %s", i_currentNode, player.GetName()); + if(i_mapIds[i_currentNode]==curMap) + { + // do not send movement, it was sent already + i_destinationHolder.SetDestination(traveller, i_path[i_currentNode].x, i_path[i_currentNode].y, i_path[i_currentNode].z, false); + } + return true; + } + //else HasArrived() + } + else + return true; + } + else + return true; + } + + // we have arrived at the end of the path + return false; +} + +void +FlightPathMovementGenerator::SetCurrentNodeAfterTeleport() +{ + if(i_mapIds.empty()) + return; + + uint32 map0 = i_mapIds[0]; + for(int i = 1; i < i_mapIds.size(); ++i) + { + if(i_mapIds[i]!=map0) + { + i_currentNode = i; + return; + } + } +} + +// +// Unique1's ASTAR Pathfinding Code... For future use & reference... +// + +#ifdef __PATHFINDING__ + +int GetFCost(int to, int num, int parentNum, float *gcost); // Below... + +int ShortenASTARRoute(short int *pathlist, int number) +{ // Wrote this to make the routes a little smarter (shorter)... No point looping back to the same places... Unique1 + short int temppathlist[MAX_PATHLIST_NODES]; + int count = 0; + // int count2 = 0; + int temp, temp2; + int link; + int upto = 0; + + for (temp = number; temp >= 0; temp--) + { + qboolean shortened = qfalse; + + for (temp2 = 0; temp2 < temp; temp2++) + { + for (link = 0; link < nodes[pathlist[temp]].enodenum; link++) + { + if (nodes[pathlist[temp]].links[link].flags & PATH_BLOCKED) + continue; + + //if ((bot->client->ps.eFlags & EF_TANK) && nodes[bot->current_node].links[link].flags & PATH_NOTANKS) //if this path is blocked, skip it + // continue; + + //if (nodes[nodes[pathlist[temp]].links[link].targetNode].origin[2] > nodes[pathlist[temp]].origin[2] + 32) + // continue; + + if (nodes[pathlist[temp]].links[link].targetNode == pathlist[temp2]) + { // Found a shorter route... + //if (OrgVisible(nodes[pathlist[temp2]].origin, nodes[pathlist[temp]].origin, -1)) + { + temppathlist[count] = pathlist[temp2]; + temp = temp2; + ++count; + shortened = qtrue; + } + } + } + } + + if (!shortened) + { + temppathlist[count] = pathlist[temp]; + ++count; + } + } + + upto = count; + + for (temp = 0; temp < count; temp++) + { + pathlist[temp] = temppathlist[upto]; + --upto; + } + + G_Printf("ShortenASTARRoute: Path size reduced from %i to %i nodes...n", number, count); + return count; +} + +/* +=========================================================================== +CreatePathAStar +This function uses the A* pathfinding algorithm to determine the +shortest path between any two nodes. +It's fairly complex, so I'm not really going to explain it much. +Look up A* and binary heaps for more info. +pathlist stores the ideal path between the nodes, in reverse order, +and the return value is the number of nodes in that path +=========================================================================== +*/ +int CreatePathAStar(gentity_t *bot, int from, int to, short int *pathlist) +{ + //all the data we have to hold...since we can't do dynamic allocation, has to be MAX_NODES + //we can probably lower this later - eg, the open list should never have more than at most a few dozen items on it + short int openlist[MAX_NODES+1]; //add 1 because it's a binary heap, and they don't use 0 - 1 is the first used index + float gcost[MAX_NODES]; + int fcost[MAX_NODES]; + char list[MAX_NODES]; //0 is neither, 1 is open, 2 is closed - char because it's the smallest data type + short int parent[MAX_NODES]; + + short int numOpen = 0; + short int atNode, temp, newnode=-1; + qboolean found = qfalse; + int count = -1; + float gc; + int i, u, v, m; + vec3_t vec; + + //clear out all the arrays + memset(openlist, 0, sizeof(short int)*(MAX_NODES+1)); + memset(fcost, 0, sizeof(int)*MAX_NODES); + memset(list, 0, sizeof(char)*MAX_NODES); + memset(parent, 0, sizeof(short int)*MAX_NODES); + memset(gcost, -1, sizeof(float)*MAX_NODES); + + //make sure we have valid data before calculating everything + if ((from == NODE_INVALID) || (to == NODE_INVALID) || (from >= MAX_NODES) || (to >= MAX_NODES) || (from == to)) + return -1; + + openlist[1] = from; //add the starting node to the open list + ++numOpen; + gcost[from] = 0; //its f and g costs are obviously 0 + fcost[from] = 0; + + while (1) + { + if (numOpen != 0) //if there are still items in the open list + { + //pop the top item off of the list + atNode = openlist[1]; + list[atNode] = 2; //put the node on the closed list so we don't check it again + --numOpen; + + openlist[1] = openlist[numOpen+1]; //move the last item in the list to the top position + v = 1; + + //this while loop reorders the list so that the new lowest fcost is at the top again + while (1) + { + u = v; + if ((2*u+1) < numOpen) //if both children exist + { + if (fcost[openlist[u]] >= fcost[openlist[2*u]]) + v = 2*u; + if (fcost[openlist[v]] >= fcost[openlist[2*u+1]]) + v = 2*u+1; + } + else + { + if ((2*u) < numOpen) //if only one child exists + { + if (fcost[openlist[u]] >= fcost[openlist[2*u]]) + v = 2*u; + } + } + + if (u != v) //if they're out of order, swap this item with its parent + { + temp = openlist[u]; + openlist[u] = openlist[v]; + openlist[v] = temp; + } + else + break; + } + + for (i = 0; i < nodes[atNode].enodenum; i++) //loop through all the links for this node + { + newnode = nodes[atNode].links[i].targetNode; + + //if this path is blocked, skip it + if (nodes[atNode].links[i].flags & PATH_BLOCKED) + continue; + //if this path is blocked, skip it + if (bot->client && (bot->client->ps.eFlags & EF_TANK) && nodes[atNode].links[i].flags & PATH_NOTANKS) + continue; + //skip any unreachable nodes + if (bot->client && (nodes[newnode].type & NODE_ALLY_UNREACHABLE) && (bot->client->sess.sessionTeam == TEAM_ALLIES)) + continue; + if (bot->client && (nodes[newnode].type & NODE_AXIS_UNREACHABLE) && (bot->client->sess.sessionTeam == TEAM_AXIS)) + continue; + + if (list[newnode] == 2) //if this node is on the closed list, skip it + continue; + + if (list[newnode] != 1) //if this node is not already on the open list + { + openlist[++numOpen] = newnode; //add the new node to the open list + list[newnode] = 1; + parent[newnode] = atNode; //record the node's parent + + if (newnode == to) //if we've found the goal, don't keep computing paths! + break; //this will break the 'for' and go all the way to 'if (list[to] == 1)' + + //store it's f cost value + fcost[newnode] = GetFCost(to, newnode, parent[newnode], gcost); + + //this loop re-orders the heap so that the lowest fcost is at the top + m = numOpen; + while (m != 1) //while this item isn't at the top of the heap already + { + //if it has a lower fcost than its parent + if (fcost[openlist[m]] <= fcost[openlist[m/2]]) + { + temp = openlist[m/2]; + openlist[m/2] = openlist[m]; + openlist[m] = temp; //swap them + m /= 2; + } + else + break; + } + } + else //if this node is already on the open list + { + gc = gcost[atNode]; + VectorSubtract(nodes[newnode].origin, nodes[atNode].origin, vec); + gc += VectorLength(vec); //calculate what the gcost would be if we reached this node along the current path + + if (gc < gcost[newnode]) //if the new gcost is less (ie, this path is shorter than what we had before) + { + parent[newnode] = atNode; //set the new parent for this node + gcost[newnode] = gc; //and the new g cost + + for (i = 1; i < numOpen; i++) //loop through all the items on the open list + { + if (openlist[i] == newnode) //find this node in the list + { + //calculate the new fcost and store it + fcost[newnode] = GetFCost(to, newnode, parent[newnode], gcost); + + //reorder the list again, with the lowest fcost item on top + m = i; + while (m != 1) + { + //if the item has a lower fcost than it's parent + if (fcost[openlist[m]] < fcost[openlist[m/2]]) + { + temp = openlist[m/2]; + openlist[m/2] = openlist[m]; + openlist[m] = temp; //swap them + m /= 2; + } + else + break; + } + break; //exit the 'for' loop because we already changed this node + } //if + } //for + } //if (gc < gcost[newnode]) + } //if (list[newnode] != 1) --> else + } //for (loop through links) + } //if (numOpen != 0) + else + { + found = qfalse; //there is no path between these nodes + break; + } + + if (list[to] == 1) //if the destination node is on the open list, we're done + { + found = qtrue; + break; + } + } //while (1) + + if (found == qtrue) //if we found a path + { + //G_Printf("%s - path found!n", bot->client->pers.netname); + count = 0; + + temp = to; //start at the end point + while (temp != from) //travel along the path (backwards) until we reach the starting point + { + pathlist[count++] = temp; //add the node to the pathlist and increment the count + temp = parent[temp]; //move to the parent of this node to continue the path + } + + pathlist[count++] = from; //add the beginning node to the end of the pathlist + + #ifdef __BOT_SHORTEN_ROUTING__ + count = ShortenASTARRoute(pathlist, count); // This isn't working... Dunno why.. Unique1 + #endif //__BOT_SHORTEN_ROUTING__ + } + else + { + //G_Printf("^1*** ^4BOT DEBUG^5: (CreatePathAStar) There is no route between node ^7%i^5 and node ^7%i^5.n", from, to); + count = CreateDumbRoute(from, to, pathlist); + + if (count > 0) + { + #ifdef __BOT_SHORTEN_ROUTING__ + count = ShortenASTARRoute(pathlist, count); // This isn't working... Dunno why.. Unique1 + #endif //__BOT_SHORTEN_ROUTING__ + return count; + } + } + + return count; //return the number of nodes in the path, -1 if not found +} + +/* +=========================================================================== +GetFCost +Utility function used by A* pathfinding to calculate the +cost to move between nodes towards a goal. Using the A* +algorithm F = G + H, G here is the distance along the node +paths the bot must travel, and H is the straight-line distance +to the goal node. +Returned as an int because more precision is unnecessary and it +will slightly speed up heap access +=========================================================================== +*/ +int GetFCost(int to, int num, int parentNum, float *gcost) +{ + float gc = 0; + float hc = 0; + vec3_t v; + + if (gcost[num] == -1) + { + if (parentNum != -1) + { + gc = gcost[parentNum]; + VectorSubtract(nodes[num].origin, nodes[parentNum].origin, v); + gc += VectorLength(v); + } + gcost[num] = gc; + } + else + gc = gcost[num]; + + VectorSubtract(nodes[to].origin, nodes[num].origin, v); + hc = VectorLength(v); + + return (int)(gc + hc); +} +#endif //__PATHFINDING__ diff --git a/src/game/WaypointMovementGenerator.h b/src/game/WaypointMovementGenerator.h index 5d86154a3d9..78752c771f0 100644 --- a/src/game/WaypointMovementGenerator.h +++ b/src/game/WaypointMovementGenerator.h @@ -1,118 +1,118 @@ -/*
- * Copyright (C) 2005-2008 MaNGOS <http://www.mangosproject.org/>
- *
- * Copyright (C) 2008 Trinity <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, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef TRINITY_WAYPOINTMOVEMENTGENERATOR_H
-#define TRINITY_WAYPOINTMOVEMENTGENERATOR_H
-
-/** @page PathMovementGenerator is used to generate movements
- * of waypoints and flight paths. Each serves the purpose
- * of generate activities so that it generates updated
- * packets for the players.
- */
-
-#include "MovementGenerator.h"
-#include "DestinationHolder.h"
-#include "WaypointManager.h"
-#include "Path.h"
-#include "Traveller.h"
-
-#include "Player.h"
-
-#include <vector>
-#include <set>
-
-#define FLIGHT_TRAVEL_UPDATE 100
-#define STOP_TIME_FOR_PLAYER 3 * 60 * 1000 // 3 Minutes
-
-template<class T, class P = Path>
-class TRINITY_DLL_SPEC PathMovementBase
-{
- public:
- PathMovementBase() : i_currentNode(0) {}
- virtual ~PathMovementBase() {};
-
- inline bool MovementInProgress(void) const { return i_currentNode < i_path.Size(); }
-
- void LoadPath(T &);
- void ReloadPath(T &);
- uint32 GetCurrentNode() const { return i_currentNode; }
-
- protected:
- uint32 i_currentNode;
- DestinationHolder< Traveller<T> > i_destinationHolder;
- P i_path;
-};
-
-template<class T>
-
-class TRINITY_DLL_SPEC WaypointMovementGenerator
- : public MovementGeneratorMedium< T, WaypointMovementGenerator<T> >, public PathMovementBase<T>
-{
- public:
- WaypointMovementGenerator(uint32 _path_id = 0, bool _repeating = true) :
- i_nextMoveTime(0), path_id(_path_id), repeating(_repeating), StopedByPlayer(false){}
-
- void Initialize(T &);
- void Finalize(T &);
- void MovementInform(T &);
- void InitTraveller(T &, const WaypointData &);
- void GeneratePathId(T &);
- void Reset(T &unit);
- bool Update(T &, const uint32 &);
- bool GetDestination(float &x, float &y, float &z) const{if(i_destinationHolder.HasArrived())return false; i_destinationHolder.GetDestination(x, y, z); return true;}
- MovementGeneratorType GetMovementGeneratorType() { return WAYPOINT_MOTION_TYPE; }
-
- private:
- WaypointData node;
- uint32 i_currentNode, path_id;
- TimeTrackerSmall i_nextMoveTime;
- WaypointPath *waypoints;
- bool repeating, custom_path, ExecuteScript, StopedByPlayer;
-};
-
-/** FlightPathMovementGenerator generates movement of the player for the paths
- * and hence generates ground and activities for the player.
- */
-class TRINITY_DLL_SPEC FlightPathMovementGenerator
-: public MovementGeneratorMedium< Player, FlightPathMovementGenerator >,
-public PathMovementBase<Player>
-{
- uint32 i_pathId;
- std::vector<uint32> i_mapIds;
- public:
- explicit FlightPathMovementGenerator(uint32 id, uint32 startNode = 0) : i_pathId(id) { i_currentNode = startNode; }
- void Initialize(Player &);
- void Finalize(Player &);
- void Reset(Player &) {}
- bool Update(Player &, const uint32 &);
- MovementGeneratorType GetMovementGeneratorType() { return FLIGHT_MOTION_TYPE; }
-
- void LoadPath(Player &);
- void ReloadPath(Player &) { /* don't reload flight path */ }
-
- Path& GetPath() { return i_path; }
- uint32 GetPathAtMapEnd() const;
- inline bool HasArrived() const { return (i_currentNode >= i_path.Size()); }
- void SetCurrentNodeAfterTeleport();
- void SkipCurrentNode() { ++i_currentNode; }
- bool GetDestination(float& x, float& y, float& z) const { i_destinationHolder.GetDestination(x,y,z); return true; }
-
-};
-#endif
+/* + * Copyright (C) 2005-2008 MaNGOS <http://www.mangosproject.org/> + * + * Copyright (C) 2008 Trinity <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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef TRINITY_WAYPOINTMOVEMENTGENERATOR_H +#define TRINITY_WAYPOINTMOVEMENTGENERATOR_H + +/** @page PathMovementGenerator is used to generate movements + * of waypoints and flight paths. Each serves the purpose + * of generate activities so that it generates updated + * packets for the players. + */ + +#include "MovementGenerator.h" +#include "DestinationHolder.h" +#include "WaypointManager.h" +#include "Path.h" +#include "Traveller.h" + +#include "Player.h" + +#include <vector> +#include <set> + +#define FLIGHT_TRAVEL_UPDATE 100 +#define STOP_TIME_FOR_PLAYER 3 * 60 * 1000 // 3 Minutes + +template<class T, class P = Path> +class TRINITY_DLL_SPEC PathMovementBase +{ + public: + PathMovementBase() : i_currentNode(0) {} + virtual ~PathMovementBase() {}; + + inline bool MovementInProgress(void) const { return i_currentNode < i_path.Size(); } + + void LoadPath(T &); + void ReloadPath(T &); + uint32 GetCurrentNode() const { return i_currentNode; } + + protected: + uint32 i_currentNode; + DestinationHolder< Traveller<T> > i_destinationHolder; + P i_path; +}; + +template<class T> + +class TRINITY_DLL_SPEC WaypointMovementGenerator + : public MovementGeneratorMedium< T, WaypointMovementGenerator<T> >, public PathMovementBase<T> +{ + public: + WaypointMovementGenerator(uint32 _path_id = 0, bool _repeating = true) : + i_nextMoveTime(0), path_id(_path_id), repeating(_repeating), StopedByPlayer(false){} + + void Initialize(T &); + void Finalize(T &); + void MovementInform(T &); + void InitTraveller(T &, const WaypointData &); + void GeneratePathId(T &); + void Reset(T &unit); + bool Update(T &, const uint32 &); + bool GetDestination(float &x, float &y, float &z) const{if(i_destinationHolder.HasArrived())return false; i_destinationHolder.GetDestination(x, y, z); return true;} + MovementGeneratorType GetMovementGeneratorType() { return WAYPOINT_MOTION_TYPE; } + + private: + WaypointData node; + uint32 i_currentNode, path_id; + TimeTrackerSmall i_nextMoveTime; + WaypointPath *waypoints; + bool repeating, custom_path, ExecuteScript, StopedByPlayer; +}; + +/** FlightPathMovementGenerator generates movement of the player for the paths + * and hence generates ground and activities for the player. + */ +class TRINITY_DLL_SPEC FlightPathMovementGenerator +: public MovementGeneratorMedium< Player, FlightPathMovementGenerator >, +public PathMovementBase<Player> +{ + uint32 i_pathId; + std::vector<uint32> i_mapIds; + public: + explicit FlightPathMovementGenerator(uint32 id, uint32 startNode = 0) : i_pathId(id) { i_currentNode = startNode; } + void Initialize(Player &); + void Finalize(Player &); + void Reset(Player &) {} + bool Update(Player &, const uint32 &); + MovementGeneratorType GetMovementGeneratorType() { return FLIGHT_MOTION_TYPE; } + + void LoadPath(Player &); + void ReloadPath(Player &) { /* don't reload flight path */ } + + Path& GetPath() { return i_path; } + uint32 GetPathAtMapEnd() const; + inline bool HasArrived() const { return (i_currentNode >= i_path.Size()); } + void SetCurrentNodeAfterTeleport(); + void SkipCurrentNode() { ++i_currentNode; } + bool GetDestination(float& x, float& y, float& z) const { i_destinationHolder.GetDestination(x,y,z); return true; } + +}; +#endif diff --git a/src/game/World.cpp b/src/game/World.cpp index 8cf6147842b..66054d95afb 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -2203,29 +2203,29 @@ void World::ScriptsProcess() break; } -
- case SCRIPT_COMMAND_LOAD_PATH:
- {
- if(!source)
- {
- sLog.outError("SCRIPT_COMMAND_START_MOVE is tried to apply to NON-existing unit.");
- break;
- }
-
- if(!source->isType(TYPEMASK_UNIT))
- {
- sLog.outError("SCRIPT_COMMAND_START_MOVE source mover isn't unit (TypeId: %u), skipping.",source->GetTypeId());
- break;
- }
-
- if(!WaypointMgr.GetPath(step.script->datalong))
- {
- sLog.outError("SCRIPT_COMMAND_START_MOVE source mover has an invallid path, skipping.", step.script->datalong2);
- break;
- }
-
- dynamic_cast<Unit*>(source)->GetMotionMaster()->MovePath(step.script->datalong, step.script->datalong2);
- break;
+ + case SCRIPT_COMMAND_LOAD_PATH: + { + if(!source) + { + sLog.outError("SCRIPT_COMMAND_START_MOVE is tried to apply to NON-existing unit."); + break; + } + + if(!source->isType(TYPEMASK_UNIT)) + { + sLog.outError("SCRIPT_COMMAND_START_MOVE source mover isn't unit (TypeId: %u), skipping.",source->GetTypeId()); + break; + } + + if(!WaypointMgr.GetPath(step.script->datalong)) + { + sLog.outError("SCRIPT_COMMAND_START_MOVE source mover has an invallid path, skipping.", step.script->datalong2); + break; + } + + dynamic_cast<Unit*>(source)->GetMotionMaster()->MovePath(step.script->datalong, step.script->datalong2); + break; } default: |