Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3a6c0b5575 | ||
|
|
96c937d5e4 | ||
|
|
634606b5ba |
No files matched your search
@@ -0,0 +1,20 @@
|
||||
# Vcore Database Schemas
|
||||
|
||||
This directory contains schema-only snapshots of the MariaDB databases
|
||||
used by Vcore (World of Warcraft Cataclysm 4.3.4).
|
||||
|
||||
## Databases
|
||||
|
||||
- cata_world
|
||||
- cata_locale_reference
|
||||
- cata_characters
|
||||
- cata_auth
|
||||
- cata_hotfixes
|
||||
- vcore_dev
|
||||
|
||||
The files contain database structures only, not production table data.
|
||||
|
||||
These snapshots reflect the database state at the time of export.
|
||||
They are not a substitute for SQL migrations or database backups.
|
||||
|
||||
Initial snapshot: 2026-10-08.
|
||||
@@ -0,0 +1,300 @@
|
||||
/*M!999999\- enable the sandbox mode */
|
||||
|
||||
/*!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 utf8mb4 */;
|
||||
/*!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 */;
|
||||
DROP TABLE IF EXISTS `account`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `account` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Identifier',
|
||||
`username` varchar(32) NOT NULL DEFAULT '',
|
||||
`salt` binary(32) NOT NULL,
|
||||
`verifier` binary(32) NOT NULL,
|
||||
`session_key_auth` binary(40) DEFAULT NULL,
|
||||
`session_key_bnet` varbinary(64) DEFAULT NULL,
|
||||
`totp_secret` varbinary(128) DEFAULT NULL,
|
||||
`v` varchar(64) NOT NULL DEFAULT '',
|
||||
`s` varchar(64) NOT NULL DEFAULT '',
|
||||
`token_key` varchar(100) NOT NULL DEFAULT '',
|
||||
`email` varchar(255) NOT NULL DEFAULT '',
|
||||
`reg_mail` varchar(255) NOT NULL DEFAULT '',
|
||||
`joindate` timestamp NOT NULL DEFAULT current_timestamp(),
|
||||
`last_ip` varchar(15) NOT NULL DEFAULT '127.0.0.1',
|
||||
`last_attempt_ip` varchar(15) NOT NULL DEFAULT '127.0.0.1',
|
||||
`failed_logins` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`locked` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`lock_country` varchar(2) NOT NULL DEFAULT '00',
|
||||
`last_login` timestamp NULL DEFAULT NULL,
|
||||
`online` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`expansion` tinyint(3) unsigned NOT NULL DEFAULT 3,
|
||||
`mutetime` bigint(20) NOT NULL DEFAULT 0,
|
||||
`mutereason` varchar(255) NOT NULL DEFAULT '',
|
||||
`muteby` varchar(50) NOT NULL DEFAULT '',
|
||||
`locale` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`os` varchar(5) DEFAULT NULL,
|
||||
`timezone_offset` smallint(6) NOT NULL DEFAULT 0,
|
||||
`recruiter` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_username` (`username`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Account System';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `account_access`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `account_access` (
|
||||
`AccountID` int(10) unsigned NOT NULL,
|
||||
`SecurityLevel` tinyint(3) unsigned NOT NULL,
|
||||
`RealmID` int(11) NOT NULL DEFAULT -1,
|
||||
PRIMARY KEY (`AccountID`,`RealmID`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `account_banned`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `account_banned` (
|
||||
`id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT 'Account id',
|
||||
`bandate` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`unbandate` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`bannedby` varchar(50) NOT NULL,
|
||||
`banreason` varchar(255) NOT NULL,
|
||||
`active` tinyint(3) unsigned NOT NULL DEFAULT 1,
|
||||
PRIMARY KEY (`id`,`bandate`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Ban List';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `account_muted`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `account_muted` (
|
||||
`guid` int(10) unsigned NOT NULL DEFAULT 0 COMMENT 'Global Unique Identifier',
|
||||
`mutedate` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`mutetime` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`mutedby` varchar(50) NOT NULL,
|
||||
`mutereason` varchar(255) NOT NULL,
|
||||
PRIMARY KEY (`guid`,`mutedate`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='mute List';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `autobroadcast`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `autobroadcast` (
|
||||
`realmid` int(11) NOT NULL DEFAULT -1,
|
||||
`id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`weight` tinyint(3) unsigned DEFAULT 1,
|
||||
`text` longtext NOT NULL,
|
||||
PRIMARY KEY (`id`,`realmid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `build_auth_key`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `build_auth_key` (
|
||||
`build` int(11) NOT NULL,
|
||||
`platform` char(4) CHARACTER SET ascii COLLATE ascii_bin NOT NULL,
|
||||
`arch` char(4) CHARACTER SET ascii COLLATE ascii_bin NOT NULL,
|
||||
`type` char(4) CHARACTER SET ascii COLLATE ascii_bin NOT NULL,
|
||||
`key` binary(16) NOT NULL,
|
||||
PRIMARY KEY (`build`,`platform`,`arch`,`type`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `build_executable_hash`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `build_executable_hash` (
|
||||
`build` int(11) NOT NULL,
|
||||
`platform` char(4) CHARACTER SET ascii COLLATE ascii_bin NOT NULL,
|
||||
`executableHash` binary(20) NOT NULL,
|
||||
PRIMARY KEY (`build`,`platform`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `build_info`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `build_info` (
|
||||
`build` int(11) NOT NULL,
|
||||
`majorVersion` int(11) DEFAULT NULL,
|
||||
`minorVersion` int(11) DEFAULT NULL,
|
||||
`bugfixVersion` int(11) DEFAULT NULL,
|
||||
`hotfixVersion` char(3) DEFAULT NULL,
|
||||
PRIMARY KEY (`build`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `ip_banned`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `ip_banned` (
|
||||
`ip` varchar(15) NOT NULL DEFAULT '127.0.0.1',
|
||||
`bandate` int(10) unsigned NOT NULL,
|
||||
`unbandate` int(10) unsigned NOT NULL,
|
||||
`bannedby` varchar(50) NOT NULL DEFAULT '[Console]',
|
||||
`banreason` varchar(255) NOT NULL DEFAULT 'no reason',
|
||||
PRIMARY KEY (`ip`,`bandate`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Banned IPs';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `logs`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `logs` (
|
||||
`time` int(10) unsigned NOT NULL,
|
||||
`realm` int(10) unsigned NOT NULL,
|
||||
`type` varchar(250) NOT NULL,
|
||||
`level` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`string` text CHARACTER SET latin1 COLLATE latin1_swedish_ci DEFAULT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `logs_ip_actions`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `logs_ip_actions` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Unique Identifier',
|
||||
`account_id` int(10) unsigned NOT NULL COMMENT 'Account ID',
|
||||
`character_guid` int(10) unsigned NOT NULL COMMENT 'Character Guid',
|
||||
`type` tinyint(3) unsigned NOT NULL,
|
||||
`ip` varchar(15) NOT NULL DEFAULT '127.0.0.1',
|
||||
`systemnote` text DEFAULT NULL COMMENT 'Notes inserted by system',
|
||||
`unixtime` int(10) unsigned NOT NULL COMMENT 'Unixtime',
|
||||
`time` timestamp NOT NULL DEFAULT current_timestamp() COMMENT 'Timestamp',
|
||||
`comment` text DEFAULT NULL COMMENT 'Allows users to add a comment',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Used to log ips of individual actions';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `rbac_account_permissions`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `rbac_account_permissions` (
|
||||
`accountId` int(10) unsigned NOT NULL COMMENT 'Account id',
|
||||
`permissionId` int(10) unsigned NOT NULL COMMENT 'Permission id',
|
||||
`granted` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'Granted = 1, Denied = 0',
|
||||
`realmId` int(11) NOT NULL DEFAULT -1 COMMENT 'Realm Id, -1 means all',
|
||||
PRIMARY KEY (`accountId`,`permissionId`,`realmId`),
|
||||
KEY `fk__rbac_account_roles__rbac_permissions` (`permissionId`),
|
||||
CONSTRAINT `fk__rbac_account_permissions__account` FOREIGN KEY (`accountId`) REFERENCES `account` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk__rbac_account_roles__rbac_permissions` FOREIGN KEY (`permissionId`) REFERENCES `rbac_permissions` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Account-Permission relation';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `rbac_default_permissions`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `rbac_default_permissions` (
|
||||
`secId` int(10) unsigned NOT NULL COMMENT 'Security Level id',
|
||||
`permissionId` int(10) unsigned NOT NULL COMMENT 'permission id',
|
||||
`realmId` int(11) NOT NULL DEFAULT -1 COMMENT 'Realm Id, -1 means all',
|
||||
PRIMARY KEY (`secId`,`permissionId`,`realmId`),
|
||||
KEY `fk__rbac_default_permissions__rbac_permissions` (`permissionId`),
|
||||
CONSTRAINT `fk__rbac_default_permissions__rbac_permissions` FOREIGN KEY (`permissionId`) REFERENCES `rbac_permissions` (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Default permission to assign to different account security levels';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `rbac_linked_permissions`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `rbac_linked_permissions` (
|
||||
`id` int(10) unsigned NOT NULL COMMENT 'Permission id',
|
||||
`linkedId` int(10) unsigned NOT NULL COMMENT 'Linked Permission id',
|
||||
PRIMARY KEY (`id`,`linkedId`),
|
||||
KEY `fk__rbac_linked_permissions__rbac_permissions1` (`id`),
|
||||
KEY `fk__rbac_linked_permissions__rbac_permissions2` (`linkedId`),
|
||||
CONSTRAINT `fk__rbac_linked_permissions__rbac_permissions1` FOREIGN KEY (`id`) REFERENCES `rbac_permissions` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk__rbac_linked_permissions__rbac_permissions2` FOREIGN KEY (`linkedId`) REFERENCES `rbac_permissions` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Permission - Linked Permission relation';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `rbac_permissions`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `rbac_permissions` (
|
||||
`id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT 'Permission id',
|
||||
`name` varchar(100) NOT NULL COMMENT 'Permission name',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Permission List';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `realmcharacters`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `realmcharacters` (
|
||||
`realmid` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`acctid` int(10) unsigned NOT NULL,
|
||||
`numchars` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`realmid`,`acctid`),
|
||||
KEY `acctid` (`acctid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Realm Character Tracker';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `realmlist`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `realmlist` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(32) NOT NULL DEFAULT '',
|
||||
`address` varchar(255) NOT NULL DEFAULT '127.0.0.1',
|
||||
`localAddress` varchar(255) NOT NULL DEFAULT '127.0.0.1',
|
||||
`localSubnetMask` varchar(255) NOT NULL DEFAULT '255.255.255.0',
|
||||
`port` smallint(5) unsigned NOT NULL DEFAULT 8085,
|
||||
`icon` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`flag` tinyint(3) unsigned NOT NULL DEFAULT 2,
|
||||
`timezone` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`allowedSecurityLevel` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`population` float unsigned NOT NULL DEFAULT 0,
|
||||
`gamebuild` int(10) unsigned NOT NULL DEFAULT 15595,
|
||||
`Region` tinyint(3) unsigned NOT NULL DEFAULT 2,
|
||||
`Battlegroup` tinyint(3) unsigned NOT NULL DEFAULT 1,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_name` (`name`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Realm System';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `secret_digest`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `secret_digest` (
|
||||
`id` int(10) unsigned NOT NULL,
|
||||
`digest` varchar(100) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `updates`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `updates` (
|
||||
`name` varchar(200) NOT NULL COMMENT 'filename with extension of the update.',
|
||||
`hash` char(40) DEFAULT '' COMMENT 'sha1 hash of the sql file.',
|
||||
`state` enum('RELEASED','ARCHIVED') NOT NULL DEFAULT 'RELEASED' COMMENT 'defines if an update is released or archived.',
|
||||
`timestamp` timestamp NOT NULL DEFAULT current_timestamp() COMMENT 'timestamp when the query was applied.',
|
||||
`speed` int(10) unsigned NOT NULL DEFAULT 0 COMMENT 'time the query takes to apply in ms.',
|
||||
PRIMARY KEY (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='List of all applied updates in this database.';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `updates_include`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `updates_include` (
|
||||
`path` varchar(200) NOT NULL COMMENT 'directory to include. $ means relative to the source directory.',
|
||||
`state` enum('RELEASED','ARCHIVED') NOT NULL DEFAULT 'RELEASED' COMMENT 'defines if the directory contains released or archived updates.',
|
||||
PRIMARY KEY (`path`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='List of directories where we want to include sql updates.';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `uptime`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `uptime` (
|
||||
`realmid` int(10) unsigned NOT NULL,
|
||||
`starttime` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`uptime` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`maxplayers` smallint(5) unsigned NOT NULL DEFAULT 0,
|
||||
`revision` varchar(255) NOT NULL DEFAULT 'Trinitycore',
|
||||
PRIMARY KEY (`realmid`,`starttime`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Uptime system';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!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 */;
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,315 @@
|
||||
/*M!999999\- enable the sandbox mode */
|
||||
|
||||
/*!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 utf8mb4 */;
|
||||
/*!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 */;
|
||||
DROP TABLE IF EXISTS `hotfix_data`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `hotfix_data` (
|
||||
`TableHash` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RecordID` int(11) NOT NULL,
|
||||
`Deleted` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`TableHash`,`RecordID`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `item`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `item` (
|
||||
`ID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`ClassID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`SubclassID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`SoundOverrideSubclassID` int(11) NOT NULL DEFAULT 0,
|
||||
`Material` int(11) NOT NULL DEFAULT 0,
|
||||
`DisplayInfoID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`InventoryType` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`SheatheType` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`VerifiedBuild` smallint(6) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`ID`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `item_currency_cost`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `item_currency_cost` (
|
||||
`ID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`ItemID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`VerifiedBuild` smallint(6) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`ID`),
|
||||
UNIQUE KEY `idx_itemId` (`ItemID`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `item_extended_cost`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `item_extended_cost` (
|
||||
`ID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredHonorPoints` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredArenaPoints` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredArenaSlot` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredItem1` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredItem2` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredItem3` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredItem4` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredItem5` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredItemCount1` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredItemCount2` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredItemCount3` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredItemCount4` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredItemCount5` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredPersonalArenaRating` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`ItemPurchaseGroup` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredCurrency1` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredCurrency2` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredCurrency3` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredCurrency4` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredCurrency5` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredCurrencyCount1` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredCurrencyCount2` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredCurrencyCount3` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredCurrencyCount4` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredCurrencyCount5` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredFactionId` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredFactionStanding` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequirementFlags` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredGuildLevel` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredAchievement` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`VerifiedBuild` smallint(6) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`ID`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `item_sparse`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `item_sparse` (
|
||||
`ID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`Quality` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`Flags1` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`Flags2` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`PriceRandomValue` float NOT NULL DEFAULT 0,
|
||||
`PriceVariance` float NOT NULL DEFAULT 0,
|
||||
`BuyCount` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`BuyPrice` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`SellPrice` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`InventoryType` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`AllowableClass` int(11) NOT NULL DEFAULT 0,
|
||||
`AllowableRace` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemLevel` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredLevel` int(11) NOT NULL DEFAULT 0,
|
||||
`RequiredSkill` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredSkillRank` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredSpell` int(11) NOT NULL DEFAULT 0,
|
||||
`RequiredHonorRank` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredCityRank` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredReputationFaction` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RequiredReputationRank` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`MaxCount` int(11) NOT NULL DEFAULT 0,
|
||||
`Stackable` int(11) NOT NULL DEFAULT 0,
|
||||
`ContainerSlots` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`ItemStatType1` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatType2` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatType3` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatType4` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatType5` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatType6` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatType7` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatType8` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatType9` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatType10` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatValue1` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatValue2` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatValue3` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatValue4` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatValue5` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatValue6` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatValue7` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatValue8` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatValue9` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatValue10` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatAllocation1` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatAllocation2` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatAllocation3` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatAllocation4` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatAllocation5` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatAllocation6` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatAllocation7` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatAllocation8` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatAllocation9` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatAllocation10` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatSocketCostMultiplier1` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatSocketCostMultiplier2` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatSocketCostMultiplier3` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatSocketCostMultiplier4` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatSocketCostMultiplier5` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatSocketCostMultiplier6` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatSocketCostMultiplier7` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatSocketCostMultiplier8` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatSocketCostMultiplier9` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemStatSocketCostMultiplier10` int(11) NOT NULL DEFAULT 0,
|
||||
`ScalingStatDistribution` int(11) NOT NULL DEFAULT 0,
|
||||
`DamageType` int(11) NOT NULL DEFAULT 0,
|
||||
`Delay` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`RangedModRange` float NOT NULL DEFAULT 0,
|
||||
`SpellID1` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellID2` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellID3` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellID4` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellID5` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellTrigger1` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellTrigger2` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellTrigger3` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellTrigger4` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellTrigger5` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellCharges1` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellCharges2` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellCharges3` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellCharges4` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellCharges5` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellCooldown1` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellCooldown2` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellCooldown3` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellCooldown4` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellCooldown5` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellCategory1` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellCategory2` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellCategory3` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellCategory4` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellCategory5` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellCategoryCooldown1` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellCategoryCooldown2` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellCategoryCooldown3` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellCategoryCooldown4` int(11) NOT NULL DEFAULT 0,
|
||||
`SpellCategoryCooldown5` int(11) NOT NULL DEFAULT 0,
|
||||
`Bonding` int(11) NOT NULL DEFAULT 0,
|
||||
`Display` mediumtext DEFAULT NULL,
|
||||
`Display1` mediumtext DEFAULT NULL,
|
||||
`Display2` mediumtext DEFAULT NULL,
|
||||
`Display3` mediumtext DEFAULT NULL,
|
||||
`Description` mediumtext DEFAULT NULL,
|
||||
`PageText` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`LanguageID` int(11) NOT NULL DEFAULT 0,
|
||||
`PageMaterial` int(11) NOT NULL DEFAULT 0,
|
||||
`StartQuest` int(11) NOT NULL DEFAULT 0,
|
||||
`LockID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`Material` int(11) NOT NULL DEFAULT 0,
|
||||
`SheatheType` int(11) NOT NULL DEFAULT 0,
|
||||
`RandomProperty` int(11) NOT NULL DEFAULT 0,
|
||||
`RandomSuffix` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`ItemSet` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`AreaID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`MapID` int(11) NOT NULL DEFAULT 0,
|
||||
`BagFamily` int(11) NOT NULL DEFAULT 0,
|
||||
`TotemCategory` int(11) NOT NULL DEFAULT 0,
|
||||
`SocketColor1` int(11) NOT NULL DEFAULT 0,
|
||||
`SocketColor2` int(11) NOT NULL DEFAULT 0,
|
||||
`SocketColor3` int(11) NOT NULL DEFAULT 0,
|
||||
`Content1` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`Content2` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`Content3` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`SocketBonus` int(11) NOT NULL DEFAULT 0,
|
||||
`GemProperties` int(11) NOT NULL DEFAULT 0,
|
||||
`ArmorDamageModifier` float NOT NULL DEFAULT 0,
|
||||
`Duration` int(11) NOT NULL DEFAULT 0,
|
||||
`ItemLimitCategory` int(11) NOT NULL DEFAULT 0,
|
||||
`HolidayID` int(11) NOT NULL DEFAULT 0,
|
||||
`StatScalingFactor` float NOT NULL DEFAULT 0,
|
||||
`CurrencySubstitutionID` int(11) NOT NULL DEFAULT 0,
|
||||
`CurrencySubstitutionCount` int(11) NOT NULL DEFAULT 0,
|
||||
`VerifiedBuild` smallint(6) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`ID`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `item_sparse_locale`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `item_sparse_locale` (
|
||||
`ID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`locale` varchar(4) NOT NULL,
|
||||
`Display_lang` mediumtext DEFAULT NULL,
|
||||
`Display1_lang` mediumtext DEFAULT NULL,
|
||||
`Display2_lang` mediumtext DEFAULT NULL,
|
||||
`Display3_lang` mediumtext DEFAULT NULL,
|
||||
`Description_lang` mediumtext DEFAULT NULL,
|
||||
`VerifiedBuild` smallint(6) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`ID`,`locale`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `key_chain`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `key_chain` (
|
||||
`ID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`Key1` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key2` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key3` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key4` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key5` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key6` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key7` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key8` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key9` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key10` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key11` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key12` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key13` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key14` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key15` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key16` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key17` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key18` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key19` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key20` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key21` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key22` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key23` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key24` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key25` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key26` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key27` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key28` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key29` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key30` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key31` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`Key32` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`ID`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `updates`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `updates` (
|
||||
`name` varchar(200) NOT NULL COMMENT 'filename with extension of the update.',
|
||||
`hash` char(40) DEFAULT '' COMMENT 'sha1 hash of the sql file.',
|
||||
`state` enum('RELEASED','ARCHIVED') NOT NULL DEFAULT 'RELEASED' COMMENT 'defines if an update is released or archived.',
|
||||
`timestamp` timestamp NOT NULL DEFAULT current_timestamp() COMMENT 'timestamp when the query was applied.',
|
||||
`speed` int(10) unsigned NOT NULL DEFAULT 0 COMMENT 'time the query takes to apply in ms.',
|
||||
PRIMARY KEY (`name`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='List of all applied updates in this database.';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `updates_include`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `updates_include` (
|
||||
`path` varchar(200) NOT NULL COMMENT 'directory to include. $ means relative to the source directory.',
|
||||
`state` enum('RELEASED','ARCHIVED') NOT NULL DEFAULT 'RELEASED' COMMENT 'defines if the directory contains released or archived updates.',
|
||||
PRIMARY KEY (`path`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='List of directories where we want to include sql updates.';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!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 */;
|
||||
|
||||
@@ -0,0 +1,374 @@
|
||||
/*M!999999\- enable the sandbox mode */
|
||||
|
||||
/*!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 utf8mb4 */;
|
||||
/*!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 */;
|
||||
DROP TABLE IF EXISTS `backup_creature_locale_before_mangos_names`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `backup_creature_locale_before_mangos_names` (
|
||||
`entry` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`locale` varchar(4) NOT NULL,
|
||||
`Name` text DEFAULT NULL,
|
||||
`FemaleName` text DEFAULT NULL,
|
||||
`Title` text DEFAULT NULL,
|
||||
`VerifiedBuild` smallint(6) DEFAULT 0
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `backup_creature_locale_missing_rows`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `backup_creature_locale_missing_rows` (
|
||||
`entry` int(10) unsigned NOT NULL DEFAULT 0
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `backup_guildmaster_gossip_options`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `backup_guildmaster_gossip_options` (
|
||||
`MenuID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`OptionID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`OptionIcon` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`OptionText` text DEFAULT NULL,
|
||||
`OptionBroadcastTextID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`OptionType` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`OptionNpcflag` bigint(20) unsigned NOT NULL DEFAULT 0,
|
||||
`ActionMenuID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`ActionPoiID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`BoxCoded` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`BoxMoney` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`BoxText` mediumtext DEFAULT NULL,
|
||||
`BoxBroadcastTextID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`VerifiedBuild` smallint(6) NOT NULL DEFAULT 0
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `backup_guildmaster_urtrun_gossip_options`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `backup_guildmaster_urtrun_gossip_options` (
|
||||
`MenuID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`OptionID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`OptionIcon` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`OptionText` text DEFAULT NULL,
|
||||
`OptionBroadcastTextID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`OptionType` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`OptionNpcflag` bigint(20) unsigned NOT NULL DEFAULT 0,
|
||||
`ActionMenuID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`ActionPoiID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`BoxCoded` tinyint(3) unsigned NOT NULL DEFAULT 0,
|
||||
`BoxMoney` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`BoxText` mediumtext DEFAULT NULL,
|
||||
`BoxBroadcastTextID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`VerifiedBuild` smallint(6) NOT NULL DEFAULT 0
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `backup_quest_locale_before_gtdb_fill`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `backup_quest_locale_before_gtdb_fill` (
|
||||
`ID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`locale` varchar(4) NOT NULL,
|
||||
`Title` text DEFAULT NULL,
|
||||
`Details` text DEFAULT NULL,
|
||||
`Objectives` text DEFAULT NULL,
|
||||
`OfferRewardText` text DEFAULT NULL,
|
||||
`RequestItemsText` text DEFAULT NULL,
|
||||
`EndText` text DEFAULT NULL,
|
||||
`CompletedText` text DEFAULT NULL,
|
||||
`ObjectiveText1` text DEFAULT NULL,
|
||||
`ObjectiveText2` text DEFAULT NULL,
|
||||
`ObjectiveText3` text DEFAULT NULL,
|
||||
`ObjectiveText4` text DEFAULT NULL,
|
||||
`QuestGiverTextWindow` text DEFAULT NULL,
|
||||
`QuestGiverTargetName` text DEFAULT NULL,
|
||||
`QuestTurnTextWindow` text DEFAULT NULL,
|
||||
`QuestTurnTargetName` text DEFAULT NULL,
|
||||
`VerifiedBuild` smallint(6) DEFAULT 0
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `backup_quest_locale_before_mangos_fill`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `backup_quest_locale_before_mangos_fill` (
|
||||
`ID` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`locale` varchar(4) NOT NULL,
|
||||
`Title` text DEFAULT NULL,
|
||||
`Details` text DEFAULT NULL,
|
||||
`Objectives` text DEFAULT NULL,
|
||||
`OfferRewardText` text DEFAULT NULL,
|
||||
`RequestItemsText` text DEFAULT NULL,
|
||||
`EndText` text DEFAULT NULL,
|
||||
`CompletedText` text DEFAULT NULL,
|
||||
`ObjectiveText1` text DEFAULT NULL,
|
||||
`ObjectiveText2` text DEFAULT NULL,
|
||||
`ObjectiveText3` text DEFAULT NULL,
|
||||
`ObjectiveText4` text DEFAULT NULL,
|
||||
`QuestGiverTextWindow` text DEFAULT NULL,
|
||||
`QuestGiverTargetName` text DEFAULT NULL,
|
||||
`QuestTurnTextWindow` text DEFAULT NULL,
|
||||
`QuestTurnTargetName` text DEFAULT NULL,
|
||||
`VerifiedBuild` smallint(6) DEFAULT 0
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `backup_quest_locale_missing_rows`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `backup_quest_locale_missing_rows` (
|
||||
`ID` int(10) unsigned NOT NULL DEFAULT 0
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `backup_quest_locale_missing_rows_before_gtdb`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `backup_quest_locale_missing_rows_before_gtdb` (
|
||||
`ID` int(10) unsigned NOT NULL DEFAULT 0
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `creature_name_batch_001`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `creature_name_batch_001` (
|
||||
`entry` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`EnglishName` varchar(100) NOT NULL,
|
||||
`MangosGermanName` text DEFAULT NULL,
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `creature_name_batch_002`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `creature_name_batch_002` (
|
||||
`entry` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`EnglishName` varchar(100) NOT NULL,
|
||||
`MangosGermanName` text DEFAULT NULL,
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `creature_name_batch_003`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `creature_name_batch_003` (
|
||||
`entry` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`EnglishName` varchar(100) NOT NULL,
|
||||
`MangosGermanName` text DEFAULT NULL,
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `creature_name_batch_004`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `creature_name_batch_004` (
|
||||
`entry` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`EnglishName` varchar(100) NOT NULL,
|
||||
`MangosGermanName` text DEFAULT NULL,
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `creature_name_batch_005`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `creature_name_batch_005` (
|
||||
`entry` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`EnglishName` varchar(100) NOT NULL,
|
||||
`MangosGermanName` text DEFAULT NULL,
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `creature_name_batch_006`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `creature_name_batch_006` (
|
||||
`entry` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`EnglishName` varchar(100) NOT NULL,
|
||||
`MangosGermanName` text DEFAULT NULL,
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `creature_name_batch_007`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `creature_name_batch_007` (
|
||||
`entry` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`EnglishName` varchar(100) NOT NULL,
|
||||
`MangosGermanName` text DEFAULT NULL,
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `creature_name_batch_008`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `creature_name_batch_008` (
|
||||
`entry` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`EnglishName` varchar(100) NOT NULL,
|
||||
`MangosGermanName` text DEFAULT NULL,
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `creature_name_batch_009`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `creature_name_batch_009` (
|
||||
`entry` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`EnglishName` varchar(100) NOT NULL,
|
||||
`MangosGermanName` text DEFAULT NULL,
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `creature_name_batch_010`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `creature_name_batch_010` (
|
||||
`entry` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`EnglishName` varchar(100) NOT NULL,
|
||||
`MangosGermanName` text DEFAULT NULL,
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `creature_name_batch_011`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `creature_name_batch_011` (
|
||||
`entry` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`EnglishName` varchar(100) NOT NULL,
|
||||
`MangosGermanName` text DEFAULT NULL,
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `creature_name_batch_012`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `creature_name_batch_012` (
|
||||
`entry` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`EnglishName` varchar(100) NOT NULL,
|
||||
`MangosGermanName` text DEFAULT NULL,
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `creature_name_batch_013`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `creature_name_batch_013` (
|
||||
`entry` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`EnglishName` varchar(100) NOT NULL,
|
||||
`MangosGermanName` text DEFAULT NULL,
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `creature_name_batch_014`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `creature_name_batch_014` (
|
||||
`entry` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`EnglishName` varchar(100) NOT NULL,
|
||||
`MangosGermanName` text DEFAULT NULL,
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `creature_name_batch_015`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `creature_name_batch_015` (
|
||||
`entry` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`EnglishName` varchar(100) NOT NULL,
|
||||
`MangosGermanName` text DEFAULT NULL,
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `creature_name_review_exceptions`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `creature_name_review_exceptions` (
|
||||
`entry` int(10) unsigned NOT NULL,
|
||||
`EnglishName` text NOT NULL,
|
||||
`ProposedGermanName` text DEFAULT NULL,
|
||||
`reason` varchar(255) DEFAULT NULL,
|
||||
`status` varchar(32) NOT NULL DEFAULT 'open',
|
||||
`final_german_name` text DEFAULT NULL,
|
||||
`notes` text DEFAULT NULL,
|
||||
`created_at` timestamp NOT NULL DEFAULT current_timestamp(),
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `gtdb_quest_de`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `gtdb_quest_de` (
|
||||
`ID` int(10) unsigned NOT NULL,
|
||||
`Title` text DEFAULT NULL,
|
||||
`Details` text DEFAULT NULL,
|
||||
`Objectives` text DEFAULT NULL,
|
||||
`OfferRewardText` text DEFAULT NULL,
|
||||
`RequestItemsText` text DEFAULT NULL,
|
||||
`EndText` text DEFAULT NULL,
|
||||
`CompletedText` text DEFAULT NULL,
|
||||
`ObjectiveText1` text DEFAULT NULL,
|
||||
`ObjectiveText2` text DEFAULT NULL,
|
||||
`ObjectiveText3` text DEFAULT NULL,
|
||||
`ObjectiveText4` text DEFAULT NULL,
|
||||
PRIMARY KEY (`ID`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `mangos_creature_de`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `mangos_creature_de` (
|
||||
`entry` int(10) unsigned NOT NULL,
|
||||
`name_de` text DEFAULT NULL,
|
||||
`subname_de` text DEFAULT NULL,
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `mangos_quest_de`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `mangos_quest_de` (
|
||||
`ID` int(10) unsigned NOT NULL,
|
||||
`Title` text DEFAULT NULL,
|
||||
`Details` text DEFAULT NULL,
|
||||
`Objectives` text DEFAULT NULL,
|
||||
`OfferRewardText` text DEFAULT NULL,
|
||||
`RequestItemsText` text DEFAULT NULL,
|
||||
`EndText` text DEFAULT NULL,
|
||||
`CompletedText` text DEFAULT NULL,
|
||||
`ObjectiveText1` text DEFAULT NULL,
|
||||
`ObjectiveText2` text DEFAULT NULL,
|
||||
`ObjectiveText3` text DEFAULT NULL,
|
||||
`ObjectiveText4` text DEFAULT NULL,
|
||||
PRIMARY KEY (`ID`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `strong_creature_name_matches`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `strong_creature_name_matches` (
|
||||
`entry` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`GermanName` text DEFAULT NULL,
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `unresolved_creature_names`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `unresolved_creature_names` (
|
||||
`entry` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`EnglishName` varchar(100) NOT NULL,
|
||||
`MangosGermanName` text DEFAULT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!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 */;
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,233 @@
|
||||
/*M!999999\- enable the sandbox mode */
|
||||
|
||||
/*!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 utf8mb4 */;
|
||||
/*!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 */;
|
||||
DROP TABLE IF EXISTS `bug_report_attachments`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `bug_report_attachments` (
|
||||
`attachment_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`report_id` bigint(20) unsigned NOT NULL,
|
||||
`attachment_type` varchar(32) NOT NULL DEFAULT 'screenshot',
|
||||
`file_name` varchar(255) NOT NULL,
|
||||
`file_path` varchar(1024) NOT NULL,
|
||||
`mime_type` varchar(128) DEFAULT NULL,
|
||||
`file_size` bigint(20) unsigned DEFAULT NULL,
|
||||
`description` varchar(255) DEFAULT NULL,
|
||||
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
|
||||
PRIMARY KEY (`attachment_id`),
|
||||
KEY `idx_bug_report_attachments_report_id` (`report_id`),
|
||||
KEY `idx_bug_report_attachments_type` (`attachment_type`),
|
||||
KEY `idx_bug_report_attachments_created_at` (`created_at`),
|
||||
CONSTRAINT `fk_bug_report_attachments_report` FOREIGN KEY (`report_id`) REFERENCES `bug_reports` (`report_id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `bug_reports`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `bug_reports` (
|
||||
`report_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`report_token` varchar(96) DEFAULT NULL,
|
||||
`bug_id` bigint(20) unsigned DEFAULT NULL,
|
||||
`source_type` varchar(32) NOT NULL DEFAULT 'player',
|
||||
`reported_severity` varchar(16) NOT NULL DEFAULT 'unknown',
|
||||
`status` varchar(16) NOT NULL DEFAULT 'open',
|
||||
`account_id` bigint(20) unsigned DEFAULT NULL,
|
||||
`character_guid` bigint(20) unsigned DEFAULT NULL,
|
||||
`character_name` varchar(64) DEFAULT NULL,
|
||||
`title` varchar(255) DEFAULT NULL,
|
||||
`description` text NOT NULL,
|
||||
`expected_behavior` text DEFAULT NULL,
|
||||
`reproduction_notes` text DEFAULT NULL,
|
||||
`reproducible` tinyint(1) DEFAULT NULL,
|
||||
`map_id` int(10) unsigned DEFAULT NULL,
|
||||
`zone_id` int(10) unsigned DEFAULT NULL,
|
||||
`area_id` int(10) unsigned DEFAULT NULL,
|
||||
`position_x` float DEFAULT NULL,
|
||||
`position_y` float DEFAULT NULL,
|
||||
`position_z` float DEFAULT NULL,
|
||||
`orientation` float DEFAULT NULL,
|
||||
`target_guid` bigint(20) unsigned DEFAULT NULL,
|
||||
`target_entry` int(10) unsigned DEFAULT NULL,
|
||||
`target_type` varchar(32) DEFAULT NULL,
|
||||
`quest_id` int(10) unsigned DEFAULT NULL,
|
||||
`client_build` int(10) unsigned DEFAULT NULL,
|
||||
`server_version` varchar(128) DEFAULT NULL,
|
||||
`core_commit` varchar(64) DEFAULT NULL,
|
||||
`context_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`context_json`)),
|
||||
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
|
||||
`updated_at` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||||
`closed_at` datetime DEFAULT NULL,
|
||||
`closed_by_account_id` bigint(20) unsigned DEFAULT NULL,
|
||||
`closure_reason` varchar(32) DEFAULT NULL,
|
||||
`closure_note` text DEFAULT NULL,
|
||||
PRIMARY KEY (`report_id`),
|
||||
UNIQUE KEY `uq_bug_reports_report_token` (`report_token`),
|
||||
KEY `idx_bug_reports_bug_id` (`bug_id`),
|
||||
KEY `idx_bug_reports_created_at` (`created_at`),
|
||||
KEY `idx_bug_reports_character` (`character_guid`),
|
||||
KEY `idx_bug_reports_quest` (`quest_id`),
|
||||
KEY `idx_bug_reports_target` (`target_type`,`target_entry`),
|
||||
KEY `idx_bug_reports_status_created` (`status`,`created_at`),
|
||||
KEY `idx_bug_reports_reported_severity` (`reported_severity`),
|
||||
KEY `idx_bug_reports_zone` (`zone_id`,`area_id`),
|
||||
CONSTRAINT `fk_bug_reports_bug` FOREIGN KEY (`bug_id`) REFERENCES `bugs` (`bug_id`) ON DELETE SET NULL
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `bug_reproduction_events`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `bug_reproduction_events` (
|
||||
`event_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`reproduction_id` bigint(20) unsigned NOT NULL,
|
||||
`source` varchar(16) NOT NULL DEFAULT 'server',
|
||||
`event_time` datetime NOT NULL DEFAULT current_timestamp(),
|
||||
`event_type` varchar(64) NOT NULL,
|
||||
`entity_type` varchar(32) DEFAULT NULL,
|
||||
`entity_id` bigint(20) unsigned DEFAULT NULL,
|
||||
`entity_guid` bigint(20) unsigned DEFAULT NULL,
|
||||
`data_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`data_json`)),
|
||||
PRIMARY KEY (`event_id`),
|
||||
KEY `idx_repro_event_reproduction` (`reproduction_id`),
|
||||
KEY `idx_repro_event_type` (`event_type`),
|
||||
KEY `idx_repro_event_time` (`event_time`),
|
||||
KEY `idx_repro_event_source` (`source`),
|
||||
CONSTRAINT `bug_reproduction_events_ibfk_1` FOREIGN KEY (`reproduction_id`) REFERENCES `bug_reproductions` (`reproduction_id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=526 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `bug_reproductions`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `bug_reproductions` (
|
||||
`reproduction_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`session_token` varchar(96) DEFAULT NULL,
|
||||
`bug_id` bigint(20) unsigned DEFAULT NULL,
|
||||
`report_id` bigint(20) unsigned DEFAULT NULL,
|
||||
`tester_account_id` bigint(20) unsigned DEFAULT NULL,
|
||||
`tester_character_guid` bigint(20) unsigned DEFAULT NULL,
|
||||
`tester_character_name` varchar(64) DEFAULT NULL,
|
||||
`result` varchar(32) NOT NULL DEFAULT 'unknown',
|
||||
`description` text DEFAULT NULL,
|
||||
`steps` text DEFAULT NULL,
|
||||
`observation` text DEFAULT NULL,
|
||||
`map_id` int(10) unsigned DEFAULT NULL,
|
||||
`zone_id` int(10) unsigned DEFAULT NULL,
|
||||
`area_id` int(10) unsigned DEFAULT NULL,
|
||||
`position_x` float DEFAULT NULL,
|
||||
`position_y` float DEFAULT NULL,
|
||||
`position_z` float DEFAULT NULL,
|
||||
`orientation` float DEFAULT NULL,
|
||||
`target_guid` bigint(20) unsigned DEFAULT NULL,
|
||||
`target_entry` int(10) unsigned DEFAULT NULL,
|
||||
`target_type` varchar(32) DEFAULT NULL,
|
||||
`quest_id` int(10) unsigned DEFAULT NULL,
|
||||
`diagnostic_focus_type` varchar(32) DEFAULT NULL,
|
||||
`diagnostic_focus_id` bigint(20) DEFAULT NULL,
|
||||
`context_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`context_json`)),
|
||||
`started_at` datetime DEFAULT NULL,
|
||||
`finished_at` datetime DEFAULT NULL,
|
||||
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
|
||||
PRIMARY KEY (`reproduction_id`),
|
||||
UNIQUE KEY `uq_bug_reproductions_session_token` (`session_token`),
|
||||
KEY `idx_repro_bug` (`bug_id`),
|
||||
KEY `idx_repro_report` (`report_id`),
|
||||
KEY `idx_repro_quest` (`quest_id`),
|
||||
KEY `idx_repro_zone` (`zone_id`),
|
||||
KEY `idx_repro_created` (`created_at`),
|
||||
KEY `idx_bug_reproductions_diagnostic_focus` (`diagnostic_focus_type`,`diagnostic_focus_id`),
|
||||
CONSTRAINT `bug_reproductions_ibfk_1` FOREIGN KEY (`bug_id`) REFERENCES `bugs` (`bug_id`) ON DELETE SET NULL,
|
||||
CONSTRAINT `bug_reproductions_ibfk_2` FOREIGN KEY (`report_id`) REFERENCES `bug_reports` (`report_id`) ON DELETE SET NULL
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `bugs`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `bugs` (
|
||||
`bug_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`bug_token` varchar(96) DEFAULT NULL,
|
||||
`title` varchar(255) NOT NULL,
|
||||
`status` varchar(32) NOT NULL DEFAULT 'new',
|
||||
`severity` varchar(32) NOT NULL DEFAULT 'unknown',
|
||||
`category` varchar(32) NOT NULL DEFAULT 'unknown',
|
||||
`primary_entity_type` varchar(32) DEFAULT NULL,
|
||||
`primary_entity_id` bigint(20) unsigned DEFAULT NULL,
|
||||
`primary_map_id` int(10) unsigned DEFAULT NULL,
|
||||
`primary_zone_id` int(10) unsigned DEFAULT NULL,
|
||||
`primary_area_id` int(10) unsigned DEFAULT NULL,
|
||||
`description` text DEFAULT NULL,
|
||||
`developer_notes` mediumtext DEFAULT NULL,
|
||||
`resolution_notes` mediumtext DEFAULT NULL,
|
||||
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
|
||||
`updated_at` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||||
`resolved_at` datetime DEFAULT NULL,
|
||||
PRIMARY KEY (`bug_id`),
|
||||
UNIQUE KEY `uq_bugs_bug_token` (`bug_token`),
|
||||
KEY `idx_bugs_status` (`status`),
|
||||
KEY `idx_bugs_category` (`category`),
|
||||
KEY `idx_bugs_severity` (`severity`),
|
||||
KEY `idx_bugs_entity` (`primary_entity_type`,`primary_entity_id`),
|
||||
KEY `idx_bugs_created_at` (`created_at`),
|
||||
KEY `idx_bugs_zone` (`primary_zone_id`,`primary_area_id`),
|
||||
KEY `idx_bugs_updated_at` (`updated_at`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `diagnostic_event_catalog`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `diagnostic_event_catalog` (
|
||||
`event_entry` tinyint(3) unsigned NOT NULL,
|
||||
`display_name` varchar(128) NOT NULL,
|
||||
`category` varchar(32) NOT NULL DEFAULT 'seasonal',
|
||||
`enabled` tinyint(1) NOT NULL DEFAULT 1,
|
||||
`sort_order` int(11) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`event_entry`),
|
||||
KEY `idx_diagnostic_event_catalog_enabled_sort` (`enabled`,`sort_order`,`display_name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `diagnostic_runs`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `diagnostic_runs` (
|
||||
`diagnostic_run_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`run_token` varchar(96) DEFAULT NULL,
|
||||
`bug_id` bigint(20) unsigned NOT NULL,
|
||||
`requested_by_account_id` bigint(20) unsigned DEFAULT NULL,
|
||||
`requested_by_character_guid` bigint(20) unsigned DEFAULT NULL,
|
||||
`status` varchar(16) NOT NULL DEFAULT 'queued',
|
||||
`claim_token` varchar(96) DEFAULT NULL,
|
||||
`claimed_by` varchar(255) DEFAULT NULL,
|
||||
`claimed_at` datetime DEFAULT NULL,
|
||||
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
|
||||
`started_at` datetime DEFAULT NULL,
|
||||
`finished_at` datetime DEFAULT NULL,
|
||||
`output_path` text DEFAULT NULL,
|
||||
`error_message` text DEFAULT NULL,
|
||||
`wowdiag_version` varchar(64) DEFAULT NULL,
|
||||
`core_revision` varchar(64) DEFAULT NULL,
|
||||
PRIMARY KEY (`diagnostic_run_id`),
|
||||
UNIQUE KEY `uq_diagnostic_runs_token` (`run_token`),
|
||||
UNIQUE KEY `uq_diagnostic_runs_claim_token` (`claim_token`),
|
||||
KEY `idx_diagnostic_runs_bug` (`bug_id`),
|
||||
KEY `idx_diagnostic_runs_status_created` (`status`,`created_at`),
|
||||
KEY `idx_diagnostic_runs_claimed_at` (`claimed_at`),
|
||||
CONSTRAINT `fk_diagnostic_runs_bug` FOREIGN KEY (`bug_id`) REFERENCES `bugs` (`bug_id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!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 */;
|
||||
|
||||
@@ -46,6 +46,39 @@ namespace VianoAdventurers
|
||||
|| scriptName.rfind("npc_alliance_adventurer_tank", 0) == 0;
|
||||
}
|
||||
|
||||
|
||||
// VIANO_FACTION_MODELS_V1
|
||||
static uint32 GetVianoAdventurerDisplayId(Creature* creature)
|
||||
{
|
||||
static constexpr uint32 HORDE_MODELS[] =
|
||||
{
|
||||
30063,
|
||||
30064,
|
||||
30065,
|
||||
30066
|
||||
};
|
||||
|
||||
static constexpr uint32 ALLIANCE_MODELS[] =
|
||||
{
|
||||
24361,
|
||||
24541,
|
||||
24543,
|
||||
24542
|
||||
};
|
||||
|
||||
uint32 const* models = HORDE_MODELS;
|
||||
|
||||
if (creature)
|
||||
{
|
||||
uint32 const entry = creature->GetEntry();
|
||||
|
||||
if (entry >= 900004 && entry <= 900006)
|
||||
models = ALLIANCE_MODELS;
|
||||
}
|
||||
|
||||
return models[urand(0, 3)];
|
||||
}
|
||||
|
||||
static void GetVianoFollowSlot(Creature* bot, Player* owner, float& distance, float& angle)
|
||||
{
|
||||
distance = FOLLOW_DISTANCE;
|
||||
@@ -316,20 +349,18 @@ namespace VianoAdventurers
|
||||
me->SetFaction(owner->GetFaction());
|
||||
me->SetLevel(owner->getLevel());
|
||||
me->UpdateLevelDependantStats();
|
||||
|
||||
|
||||
static constexpr uint32 HORDE_ADVENTURER_MODELS[] =
|
||||
{
|
||||
30063,
|
||||
30064,
|
||||
30065,
|
||||
30066
|
||||
};
|
||||
uint32 displayId = HORDE_ADVENTURER_MODELS[urand(0, 3)];
|
||||
uint32 const displayId =
|
||||
GetVianoAdventurerDisplayId(me);
|
||||
|
||||
me->SetDisplayId(displayId, true);
|
||||
|
||||
TC_LOG_INFO("scripts","[VianoAI] Horde adventurer display selected: %u", displayId);
|
||||
TC_LOG_INFO(
|
||||
"scripts",
|
||||
"[VianoAI] adventurer display selected: "
|
||||
"entry=%u display=%u",
|
||||
me->GetEntry(),
|
||||
displayId);
|
||||
|
||||
|
||||
// REACT_PASSIVE lets AttackStart() briefly set a victim, but the
|
||||
// core subsequently drops that victim again. We already suppress
|
||||
@@ -1095,16 +1126,11 @@ namespace VianoAdventurers
|
||||
me->SetFaction(owner->GetFaction());
|
||||
me->SetLevel(owner->getLevel());
|
||||
me->UpdateLevelDependantStats();
|
||||
uint32 const displayId =
|
||||
GetVianoAdventurerDisplayId(me);
|
||||
|
||||
static constexpr uint32 HORDE_ADVENTURER_MODELS[] =
|
||||
{
|
||||
30063,
|
||||
30064,
|
||||
30065,
|
||||
30066
|
||||
};
|
||||
me->SetDisplayId(displayId, true);
|
||||
|
||||
me->SetDisplayId(HORDE_ADVENTURER_MODELS[urand(0, 3)], true);
|
||||
SetEquipmentSlots(false, 50179, 50794, EQUIP_NO_CHANGE);
|
||||
me->SetReactState(REACT_DEFENSIVE);
|
||||
|
||||
@@ -1517,9 +1543,11 @@ namespace VianoAdventurers
|
||||
me->SetLevel(owner->getLevel());
|
||||
me->UpdateLevelDependantStats();
|
||||
ConfigureMana(true);
|
||||
uint32 const displayId =
|
||||
GetVianoAdventurerDisplayId(me);
|
||||
|
||||
me->SetDisplayId(displayId, true);
|
||||
|
||||
static constexpr uint32 MODELS[] = { 30063, 30064, 30065, 30066 };
|
||||
me->SetDisplayId(MODELS[urand(0, 3)], true);
|
||||
SetEquipmentSlots(false, 39426, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
FollowOwner(owner);
|
||||
@@ -1674,6 +1702,57 @@ void UpdateAI(uint32 diff) override
|
||||
return new npc_horde_adventurer_healerAI(creature);
|
||||
}
|
||||
};
|
||||
|
||||
// VIANO_ALLIANCE_ADVENTURERS_V1
|
||||
//
|
||||
// Alliance adventurers intentionally reuse the same combat AI as their
|
||||
// Horde counterparts. Faction, models and default equipment are supplied
|
||||
// by their own creature_template rows.
|
||||
|
||||
class npc_alliance_adventurer_melee : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_alliance_adventurer_melee()
|
||||
: CreatureScript("npc_alliance_adventurer_melee")
|
||||
{
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_horde_adventurer_melee::
|
||||
npc_horde_adventurer_meleeAI(creature);
|
||||
}
|
||||
};
|
||||
|
||||
class npc_alliance_adventurer_tank : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_alliance_adventurer_tank()
|
||||
: CreatureScript("npc_alliance_adventurer_tank")
|
||||
{
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_horde_adventurer_tank::
|
||||
npc_horde_adventurer_tankAI(creature);
|
||||
}
|
||||
};
|
||||
|
||||
class npc_alliance_adventurer_healer : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_alliance_adventurer_healer()
|
||||
: CreatureScript("npc_alliance_adventurer_healer")
|
||||
{
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_horde_adventurer_healer::
|
||||
npc_horde_adventurer_healerAI(creature);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
void AddSC_viano_adventurers()
|
||||
@@ -1682,4 +1761,7 @@ void AddSC_viano_adventurers()
|
||||
new npc_horde_adventurer_melee();
|
||||
new npc_horde_adventurer_tank();
|
||||
new npc_horde_adventurer_healer();
|
||||
new npc_alliance_adventurer_melee();
|
||||
new npc_alliance_adventurer_tank();
|
||||
new npc_alliance_adventurer_healer();
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
+1739
File diff suppressed because it is too large.
Load diff
@@ -31,6 +31,7 @@ EndContentData */
|
||||
|
||||
#include "ScriptMgr.h"
|
||||
#include "GameObject.h"
|
||||
#include "Group.h"
|
||||
#include "Item.h"
|
||||
#include "Player.h"
|
||||
#include "ScriptedCreature.h"
|
||||
@@ -38,6 +39,9 @@ EndContentData */
|
||||
#include "SpellMgr.h"
|
||||
#include "TemporarySummon.h"
|
||||
#include "Log.h"
|
||||
#include <algorithm>
|
||||
#include <list>
|
||||
#include <vector>
|
||||
|
||||
namespace ItemScripts
|
||||
{
|
||||
@@ -414,26 +418,298 @@ class item_generic_limit_chance_above_60 : public ItemScript
|
||||
}
|
||||
};
|
||||
/*#####
|
||||
# item_horde_adventurer_horn
|
||||
# Vcore dungeon horns
|
||||
#####*/
|
||||
|
||||
class item_horde_adventurer_horn : public ItemScript
|
||||
enum VcoreDungeonHornSpells
|
||||
{
|
||||
SPELL_VCORE_HORN_TANK = 120000,
|
||||
SPELL_VCORE_HORN_HEALER = 120001,
|
||||
SPELL_VCORE_HORN_DAMAGE = 120002,
|
||||
SPELL_VCORE_HORN_DAMAGE_3 = 120003
|
||||
};
|
||||
|
||||
enum VcoreDungeonHornNpcs
|
||||
{
|
||||
NPC_HORDE_ADVENTURER_DAMAGE = 900001,
|
||||
NPC_HORDE_ADVENTURER_TANK = 900002,
|
||||
NPC_HORDE_ADVENTURER_HEALER = 900003,
|
||||
|
||||
// TODO: replace once Alliance creature templates exist.
|
||||
NPC_ALLIANCE_ADVENTURER_DAMAGE = 900004,
|
||||
NPC_ALLIANCE_ADVENTURER_TANK = 900005,
|
||||
NPC_ALLIANCE_ADVENTURER_HEALER = 900006
|
||||
};
|
||||
|
||||
static constexpr uint32 VCORE_DUNGEON_GROUP_LIMIT = 5;
|
||||
|
||||
struct VcoreHornPlan
|
||||
{
|
||||
uint32 occupancy = 0;
|
||||
uint32 freeSlots = 0;
|
||||
uint32 ownBots = 0;
|
||||
uint32 spawnCount = 0;
|
||||
uint32 replaceCount = 0;
|
||||
};
|
||||
|
||||
static uint32 GetVcoreHornSpellForItem(uint32 itemId)
|
||||
{
|
||||
switch (itemId)
|
||||
{
|
||||
case 80000:
|
||||
case 80004:
|
||||
return SPELL_VCORE_HORN_TANK;
|
||||
|
||||
case 80001:
|
||||
case 80005:
|
||||
return SPELL_VCORE_HORN_HEALER;
|
||||
|
||||
case 80002:
|
||||
case 80006:
|
||||
return SPELL_VCORE_HORN_DAMAGE;
|
||||
|
||||
case 80003:
|
||||
case 80007:
|
||||
return SPELL_VCORE_HORN_DAMAGE_3;
|
||||
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
static uint32 GetVcoreHornRequestedCount(uint32 spellId)
|
||||
{
|
||||
return spellId == SPELL_VCORE_HORN_DAMAGE_3 ? 3u : 1u;
|
||||
}
|
||||
|
||||
static bool IsVcoreHordeHorn(uint32 itemId)
|
||||
{
|
||||
return itemId >= 80000 && itemId <= 80003;
|
||||
}
|
||||
|
||||
static bool IsVcoreAllianceHorn(uint32 itemId)
|
||||
{
|
||||
return itemId >= 80004 && itemId <= 80007;
|
||||
}
|
||||
|
||||
static uint32 GetVcoreHornNpcEntry(Player* player, uint32 spellId)
|
||||
{
|
||||
if (!player)
|
||||
return 0;
|
||||
|
||||
if (player->GetTeam() == HORDE)
|
||||
{
|
||||
switch (spellId)
|
||||
{
|
||||
case SPELL_VCORE_HORN_TANK:
|
||||
return NPC_HORDE_ADVENTURER_TANK;
|
||||
|
||||
case SPELL_VCORE_HORN_HEALER:
|
||||
return NPC_HORDE_ADVENTURER_HEALER;
|
||||
|
||||
case SPELL_VCORE_HORN_DAMAGE:
|
||||
case SPELL_VCORE_HORN_DAMAGE_3:
|
||||
return NPC_HORDE_ADVENTURER_DAMAGE;
|
||||
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (player->GetTeam() == ALLIANCE)
|
||||
{
|
||||
switch (spellId)
|
||||
{
|
||||
case SPELL_VCORE_HORN_TANK:
|
||||
return NPC_ALLIANCE_ADVENTURER_TANK;
|
||||
|
||||
case SPELL_VCORE_HORN_HEALER:
|
||||
return NPC_ALLIANCE_ADVENTURER_HEALER;
|
||||
|
||||
case SPELL_VCORE_HORN_DAMAGE:
|
||||
case SPELL_VCORE_HORN_DAMAGE_3:
|
||||
return NPC_ALLIANCE_ADVENTURER_DAMAGE;
|
||||
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void CollectVcoreDungeonBots(
|
||||
Player* player,
|
||||
std::vector<Creature*>& allBots,
|
||||
std::vector<Creature*>& ownBots)
|
||||
{
|
||||
allBots.clear();
|
||||
ownBots.clear();
|
||||
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
std::list<Unit*> units;
|
||||
player->GetPartyMembers(units);
|
||||
|
||||
for (Unit* unit : units)
|
||||
{
|
||||
Creature* creature = unit ? unit->ToCreature() : nullptr;
|
||||
|
||||
if (!creature)
|
||||
continue;
|
||||
|
||||
if (!creature->IsAlive())
|
||||
continue;
|
||||
|
||||
if (!creature->IsVianoAdventurer())
|
||||
continue;
|
||||
|
||||
if (!creature->IsInMap(player))
|
||||
continue;
|
||||
|
||||
if (std::find(allBots.begin(), allBots.end(), creature) == allBots.end())
|
||||
allBots.push_back(creature);
|
||||
|
||||
Unit* owner = creature->GetOwner();
|
||||
|
||||
if (owner && owner->GetGUID() == player->GetGUID())
|
||||
ownBots.push_back(creature);
|
||||
}
|
||||
|
||||
// Current Viano summons receive increasing Creature GUIDs.
|
||||
// The Viano formation code already uses the same ordering.
|
||||
// Therefore this gives oldest -> newest.
|
||||
std::sort(
|
||||
ownBots.begin(),
|
||||
ownBots.end(),
|
||||
[](Creature const* left, Creature const* right)
|
||||
{
|
||||
return left->GetGUID().GetRawValue()
|
||||
< right->GetGUID().GetRawValue();
|
||||
});
|
||||
}
|
||||
|
||||
static uint32 GetVcoreRealPlayerCount(Player* player)
|
||||
{
|
||||
if (!player)
|
||||
return 0;
|
||||
|
||||
if (Group* group = player->GetGroup())
|
||||
return group->GetMembersCount();
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static VcoreHornPlan BuildVcoreHornPlan(
|
||||
Player* player,
|
||||
uint32 requestedCount,
|
||||
std::vector<Creature*>& ownBots)
|
||||
{
|
||||
VcoreHornPlan plan;
|
||||
|
||||
std::vector<Creature*> allBots;
|
||||
|
||||
CollectVcoreDungeonBots(
|
||||
player,
|
||||
allBots,
|
||||
ownBots);
|
||||
|
||||
uint32 const realPlayers =
|
||||
GetVcoreRealPlayerCount(player);
|
||||
|
||||
uint32 const botCount =
|
||||
uint32(allBots.size());
|
||||
|
||||
plan.occupancy =
|
||||
realPlayers + botCount;
|
||||
|
||||
plan.ownBots =
|
||||
uint32(ownBots.size());
|
||||
|
||||
// Do not mutate an already invalid >5 state.
|
||||
if (plan.occupancy > VCORE_DUNGEON_GROUP_LIMIT)
|
||||
return plan;
|
||||
|
||||
plan.freeSlots =
|
||||
VCORE_DUNGEON_GROUP_LIMIT - plan.occupancy;
|
||||
|
||||
plan.spawnCount =
|
||||
std::min(
|
||||
requestedCount,
|
||||
plan.freeSlots + plan.ownBots);
|
||||
|
||||
plan.replaceCount =
|
||||
plan.spawnCount > plan.freeSlots
|
||||
? plan.spawnCount - plan.freeSlots
|
||||
: 0;
|
||||
|
||||
return plan;
|
||||
}
|
||||
|
||||
class item_vcore_dungeon_horn : public ItemScript
|
||||
{
|
||||
public:
|
||||
item_horde_adventurer_horn() : ItemScript("item_horde_adventurer_horn") { }
|
||||
|
||||
bool OnUse(Player* player, Item* item, SpellCastTargets const& /*targets*/) override
|
||||
item_vcore_dungeon_horn()
|
||||
: ItemScript("item_vcore_dungeon_horn")
|
||||
{
|
||||
}
|
||||
|
||||
bool OnUse(
|
||||
Player* player,
|
||||
Item* item,
|
||||
SpellCastTargets const& /*targets*/) override
|
||||
{
|
||||
if (!player || !item)
|
||||
return true;
|
||||
|
||||
uint32 const itemId =
|
||||
item->GetEntry();
|
||||
|
||||
uint32 const spellId =
|
||||
GetVcoreHornSpellForItem(itemId);
|
||||
|
||||
TC_LOG_INFO(
|
||||
"scripts",
|
||||
"[VianoHorn] OnUse player='%s' item=%u",
|
||||
"[VianoHorn] OnUse player='%s' item=%u spell=%u",
|
||||
player->GetName().c_str(),
|
||||
item->GetEntry());
|
||||
itemId,
|
||||
spellId);
|
||||
|
||||
if (!spellId)
|
||||
{
|
||||
TC_LOG_ERROR(
|
||||
"scripts",
|
||||
"[VianoHorn] unknown horn item=%u",
|
||||
itemId);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
if ((IsVcoreHordeHorn(itemId)
|
||||
&& player->GetTeam() != HORDE)
|
||||
||
|
||||
(IsVcoreAllianceHorn(itemId)
|
||||
&& player->GetTeam() != ALLIANCE))
|
||||
{
|
||||
TC_LOG_INFO(
|
||||
"scripts",
|
||||
"[VianoHorn] rejected: wrong faction player='%s' item=%u",
|
||||
player->GetName().c_str(),
|
||||
itemId);
|
||||
|
||||
player->SendEquipError(
|
||||
EQUIP_ERR_CLIENT_LOCKED_OUT,
|
||||
item,
|
||||
nullptr);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Horns may not be used during combat.
|
||||
if (player->IsInCombat())
|
||||
{
|
||||
TC_LOG_INFO("scripts",
|
||||
TC_LOG_INFO(
|
||||
"scripts",
|
||||
"[VianoHorn] rejected: player is in combat");
|
||||
|
||||
player->SendEquipError(
|
||||
@@ -444,10 +720,10 @@ public:
|
||||
return true;
|
||||
}
|
||||
|
||||
// Horns may only be used inside dungeon instances.
|
||||
if (!player->GetMap()->IsDungeon())
|
||||
{
|
||||
TC_LOG_INFO("scripts",
|
||||
TC_LOG_INFO(
|
||||
"scripts",
|
||||
"[VianoHorn] rejected: player is not inside a dungeon");
|
||||
|
||||
player->SendEquipError(
|
||||
@@ -458,17 +734,258 @@ public:
|
||||
return true;
|
||||
}
|
||||
|
||||
// Alliance NPC templates are not configured yet.
|
||||
// Reject before the normal cast so no cooldown is consumed.
|
||||
uint32 const npcEntry =
|
||||
GetVcoreHornNpcEntry(
|
||||
player,
|
||||
spellId);
|
||||
|
||||
if (!npcEntry)
|
||||
{
|
||||
TC_LOG_INFO(
|
||||
"scripts",
|
||||
"[VianoHorn] rejected: no creature entry configured "
|
||||
"for team=%u spell=%u",
|
||||
uint32(player->GetTeam()),
|
||||
spellId);
|
||||
|
||||
player->SendEquipError(
|
||||
EQUIP_ERR_CLIENT_LOCKED_OUT,
|
||||
item,
|
||||
nullptr);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
uint32 const requestedCount =
|
||||
GetVcoreHornRequestedCount(spellId);
|
||||
|
||||
std::vector<Creature*> ownBots;
|
||||
|
||||
VcoreHornPlan const plan =
|
||||
BuildVcoreHornPlan(
|
||||
player,
|
||||
requestedCount,
|
||||
ownBots);
|
||||
|
||||
TC_LOG_INFO(
|
||||
"scripts",
|
||||
"[VianoHorn] prechecks passed; allowing normal item spell processing");
|
||||
"[VianoHorn] precheck occupancy=%u free=%u own=%u "
|
||||
"requested=%u spawn=%u replace=%u",
|
||||
plan.occupancy,
|
||||
plan.freeSlots,
|
||||
plan.ownBots,
|
||||
requestedCount,
|
||||
plan.spawnCount,
|
||||
plan.replaceCount);
|
||||
|
||||
// IMPORTANT:
|
||||
// false means the ItemScript does not consume/suppress the normal item use.
|
||||
// The item's SpellID1 (120000-120003) may now run through the regular
|
||||
// Trinity spell lifecycle.
|
||||
// Full group and nothing belonging to this player
|
||||
// can be replaced. Do not start the spell/cooldown.
|
||||
if (!plan.spawnCount)
|
||||
{
|
||||
player->SendEquipError(
|
||||
EQUIP_ERR_CLIENT_LOCKED_OUT,
|
||||
item,
|
||||
nullptr);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Preserve the normal item -> spell lifecycle.
|
||||
return false;
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
class spell_vcore_dungeon_horn : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_vcore_dungeon_horn()
|
||||
: SpellScriptLoader("spell_vcore_dungeon_horn")
|
||||
{
|
||||
}
|
||||
|
||||
class spell_vcore_dungeon_horn_SpellScript
|
||||
: public SpellScript
|
||||
{
|
||||
void HandleAfterCast()
|
||||
{
|
||||
Player* player =
|
||||
GetCaster()
|
||||
? GetCaster()->ToPlayer()
|
||||
: nullptr;
|
||||
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
uint32 const spellId =
|
||||
GetSpellInfo()->Id;
|
||||
|
||||
if (spellId < SPELL_VCORE_HORN_TANK
|
||||
|| spellId > SPELL_VCORE_HORN_DAMAGE_3)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Re-check immediately before changing world state.
|
||||
if (player->IsInCombat())
|
||||
{
|
||||
TC_LOG_INFO(
|
||||
"scripts",
|
||||
"[VianoHorn] AfterCast aborted: player entered combat");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player->GetMap()->IsDungeon())
|
||||
{
|
||||
TC_LOG_INFO(
|
||||
"scripts",
|
||||
"[VianoHorn] AfterCast aborted: player left dungeon");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
uint32 const npcEntry =
|
||||
GetVcoreHornNpcEntry(
|
||||
player,
|
||||
spellId);
|
||||
|
||||
if (!npcEntry)
|
||||
{
|
||||
TC_LOG_ERROR(
|
||||
"scripts",
|
||||
"[VianoHorn] AfterCast aborted: no NPC entry "
|
||||
"team=%u spell=%u",
|
||||
uint32(player->GetTeam()),
|
||||
spellId);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
uint32 const requestedCount =
|
||||
GetVcoreHornRequestedCount(spellId);
|
||||
|
||||
std::vector<Creature*> ownBots;
|
||||
|
||||
VcoreHornPlan const plan =
|
||||
BuildVcoreHornPlan(
|
||||
player,
|
||||
requestedCount,
|
||||
ownBots);
|
||||
|
||||
TC_LOG_INFO(
|
||||
"scripts",
|
||||
"[VianoHorn] AfterCast player='%s' spell=%u npc=%u "
|
||||
"occupancy=%u free=%u own=%u requested=%u "
|
||||
"spawn=%u replace=%u",
|
||||
player->GetName().c_str(),
|
||||
spellId,
|
||||
npcEntry,
|
||||
plan.occupancy,
|
||||
plan.freeSlots,
|
||||
plan.ownBots,
|
||||
requestedCount,
|
||||
plan.spawnCount,
|
||||
plan.replaceCount);
|
||||
|
||||
if (!plan.spawnCount)
|
||||
return;
|
||||
|
||||
// Replace only this player's oldest active bots.
|
||||
for (uint32 i = 0;
|
||||
i < plan.replaceCount
|
||||
&& i < ownBots.size();
|
||||
++i)
|
||||
{
|
||||
Creature* oldBot =
|
||||
ownBots[i];
|
||||
|
||||
if (!oldBot)
|
||||
continue;
|
||||
|
||||
TC_LOG_INFO(
|
||||
"scripts",
|
||||
"[VianoHorn] replacing own bot "
|
||||
"entry=%u guid=%s",
|
||||
oldBot->GetEntry(),
|
||||
oldBot->GetGUID().ToString().c_str());
|
||||
|
||||
oldBot->DespawnOrUnsummon();
|
||||
}
|
||||
|
||||
uint32 spawned = 0;
|
||||
|
||||
for (uint32 i = 0;
|
||||
i < plan.spawnCount;
|
||||
++i)
|
||||
{
|
||||
// Prevent 3-DD summons from stacking exactly
|
||||
// on the same coordinates.
|
||||
float const yOffset =
|
||||
(float(i)
|
||||
- (float(plan.spawnCount) - 1.0f) / 2.0f)
|
||||
* 1.5f;
|
||||
|
||||
Creature* summon =
|
||||
player->SummonCreature(
|
||||
npcEntry,
|
||||
player->GetPositionX() + 2.0f,
|
||||
player->GetPositionY() + yOffset,
|
||||
player->GetPositionZ(),
|
||||
player->GetOrientation(),
|
||||
TEMPSUMMON_MANUAL_DESPAWN,
|
||||
0);
|
||||
|
||||
if (!summon)
|
||||
{
|
||||
TC_LOG_ERROR(
|
||||
"scripts",
|
||||
"[VianoHorn] summon failed "
|
||||
"player='%s' spell=%u npc=%u index=%u",
|
||||
player->GetName().c_str(),
|
||||
spellId,
|
||||
npcEntry,
|
||||
i);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
++spawned;
|
||||
|
||||
TC_LOG_INFO(
|
||||
"scripts",
|
||||
"[VianoHorn] summoned "
|
||||
"entry=%u guid=%s owner='%s'",
|
||||
summon->GetEntry(),
|
||||
summon->GetGUID().ToString().c_str(),
|
||||
player->GetName().c_str());
|
||||
}
|
||||
|
||||
TC_LOG_INFO(
|
||||
"scripts",
|
||||
"[VianoHorn] completed "
|
||||
"player='%s' spell=%u spawned=%u "
|
||||
"requested=%u replaced=%u",
|
||||
player->GetName().c_str(),
|
||||
spellId,
|
||||
spawned,
|
||||
requestedCount,
|
||||
plan.replaceCount);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
AfterCast.Register(
|
||||
&spell_vcore_dungeon_horn_SpellScript::HandleAfterCast);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const override
|
||||
{
|
||||
return new spell_vcore_dungeon_horn_SpellScript();
|
||||
}
|
||||
};
|
||||
}// namespace ItemScripts
|
||||
|
||||
|
||||
@@ -486,5 +1003,6 @@ void AddSC_item_scripts()
|
||||
new item_dehta_trap_smasher();
|
||||
new item_captured_frog();
|
||||
new item_generic_limit_chance_above_60();
|
||||
new item_horde_adventurer_horn();
|
||||
new item_vcore_dungeon_horn();
|
||||
new spell_vcore_dungeon_horn();
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,490 @@
|
||||
/*
|
||||
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Item_Scripts
|
||||
SD%Complete: 100
|
||||
SDComment: Items for a range of different items. See content below (in script)
|
||||
SDCategory: Items
|
||||
EndScriptData */
|
||||
|
||||
/* ContentData
|
||||
item_nether_wraith_beacon(i31742) Summons creatures for quest Becoming a Spellfire Tailor (q10832)
|
||||
item_flying_machine(i34060, i34061) Engineering crafted flying machines
|
||||
item_gor_dreks_ointment(i30175) Protecting Our Own(q10488)
|
||||
item_only_for_flight Items which should only useable while flying
|
||||
EndContentData */
|
||||
|
||||
#include "ScriptMgr.h"
|
||||
#include "GameObject.h"
|
||||
#include "Item.h"
|
||||
#include "Player.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "Spell.h"
|
||||
#include "SpellMgr.h"
|
||||
#include "TemporarySummon.h"
|
||||
#include "Log.h"
|
||||
|
||||
namespace ItemScripts
|
||||
{
|
||||
|
||||
/*#####
|
||||
# item_only_for_flight
|
||||
#####*/
|
||||
|
||||
enum OnlyForFlight
|
||||
{
|
||||
SPELL_ARCANE_CHARGES = 45072
|
||||
};
|
||||
|
||||
class item_only_for_flight : public ItemScript
|
||||
{
|
||||
public:
|
||||
item_only_for_flight() : ItemScript("item_only_for_flight") { }
|
||||
|
||||
bool OnUse(Player* player, Item* item, SpellCastTargets const& /*targets*/) override
|
||||
{
|
||||
uint32 itemId = item->GetEntry();
|
||||
bool disabled = false;
|
||||
|
||||
//for special scripts
|
||||
switch (itemId)
|
||||
{
|
||||
case 24538:
|
||||
if (player->GetAreaId() != 3628)
|
||||
disabled = true;
|
||||
break;
|
||||
case 34489:
|
||||
if (player->GetZoneId() != 4080)
|
||||
disabled = true;
|
||||
break;
|
||||
case 34475:
|
||||
if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(SPELL_ARCANE_CHARGES))
|
||||
Spell::SendCastResult(player, spellInfo, 1, SPELL_FAILED_NOT_ON_GROUND);
|
||||
break;
|
||||
}
|
||||
|
||||
// allow use in flight only
|
||||
if (player->IsInFlight() && !disabled)
|
||||
return false;
|
||||
|
||||
// error
|
||||
player->SendEquipError(EQUIP_ERR_CLIENT_LOCKED_OUT, item, nullptr);
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
/*#####
|
||||
# item_nether_wraith_beacon
|
||||
#####*/
|
||||
|
||||
class item_nether_wraith_beacon : public ItemScript
|
||||
{
|
||||
public:
|
||||
item_nether_wraith_beacon() : ItemScript("item_nether_wraith_beacon") { }
|
||||
|
||||
bool OnUse(Player* player, Item* /*item*/, SpellCastTargets const& /*targets*/) override
|
||||
{
|
||||
if (player->GetQuestStatus(10832) == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
if (Creature* nether = player->SummonCreature(22408, player->GetPositionX(), player->GetPositionY()+20, player->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 180000))
|
||||
nether->AI()->AttackStart(player);
|
||||
|
||||
if (Creature* nether = player->SummonCreature(22408, player->GetPositionX(), player->GetPositionY()-20, player->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 180000))
|
||||
nether->AI()->AttackStart(player);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
/*#####
|
||||
# item_gor_dreks_ointment
|
||||
#####*/
|
||||
|
||||
class item_gor_dreks_ointment : public ItemScript
|
||||
{
|
||||
public:
|
||||
item_gor_dreks_ointment() : ItemScript("item_gor_dreks_ointment") { }
|
||||
|
||||
bool OnUse(Player* player, Item* item, SpellCastTargets const& targets) override
|
||||
{
|
||||
if (targets.GetUnitTarget() && targets.GetUnitTarget()->GetTypeId() == TYPEID_UNIT &&
|
||||
targets.GetUnitTarget()->GetEntry() == 20748 && !targets.GetUnitTarget()->HasAura(32578))
|
||||
return false;
|
||||
|
||||
player->SendEquipError(EQUIP_ERR_CLIENT_LOCKED_OUT, item, nullptr);
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
/*#####
|
||||
# item_incendiary_explosives
|
||||
#####*/
|
||||
|
||||
class item_incendiary_explosives : public ItemScript
|
||||
{
|
||||
public:
|
||||
item_incendiary_explosives() : ItemScript("item_incendiary_explosives") { }
|
||||
|
||||
bool OnUse(Player* player, Item* item, SpellCastTargets const & /*targets*/) override
|
||||
{
|
||||
if (player->FindNearestCreature(26248, 15) || player->FindNearestCreature(26249, 15))
|
||||
return false;
|
||||
else
|
||||
{
|
||||
player->SendEquipError(EQUIP_ERR_OUT_OF_RANGE, item, nullptr);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/*#####
|
||||
# item_mysterious_egg
|
||||
#####*/
|
||||
|
||||
class item_mysterious_egg : public ItemScript
|
||||
{
|
||||
public:
|
||||
item_mysterious_egg() : ItemScript("item_mysterious_egg") { }
|
||||
|
||||
bool OnExpire(Player* player, ItemTemplate const* /*pItemProto*/) override
|
||||
{
|
||||
ItemPosCountVec dest;
|
||||
uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, 39883, 1); // Cracked Egg
|
||||
if (msg == EQUIP_ERR_OK)
|
||||
player->StoreNewItem(dest, 39883, true, GenerateItemRandomPropertyId(39883));
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
/*#####
|
||||
# item_disgusting_jar
|
||||
#####*/
|
||||
|
||||
class item_disgusting_jar : public ItemScript
|
||||
{
|
||||
public:
|
||||
item_disgusting_jar() : ItemScript("item_disgusting_jar") { }
|
||||
|
||||
bool OnExpire(Player* player, ItemTemplate const* /*pItemProto*/) override
|
||||
{
|
||||
ItemPosCountVec dest;
|
||||
uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, 44718, 1); // Ripe Disgusting Jar
|
||||
if (msg == EQUIP_ERR_OK)
|
||||
player->StoreNewItem(dest, 44718, true, GenerateItemRandomPropertyId(44718));
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
/*#####
|
||||
# item_pile_fake_furs
|
||||
#####*/
|
||||
|
||||
enum PileFakeFur
|
||||
{
|
||||
GO_CARIBOU_TRAP_1 = 187982,
|
||||
GO_CARIBOU_TRAP_2 = 187995,
|
||||
GO_CARIBOU_TRAP_3 = 187996,
|
||||
GO_CARIBOU_TRAP_4 = 187997,
|
||||
GO_CARIBOU_TRAP_5 = 187998,
|
||||
GO_CARIBOU_TRAP_6 = 187999,
|
||||
GO_CARIBOU_TRAP_7 = 188000,
|
||||
GO_CARIBOU_TRAP_8 = 188001,
|
||||
GO_CARIBOU_TRAP_9 = 188002,
|
||||
GO_CARIBOU_TRAP_10 = 188003,
|
||||
GO_CARIBOU_TRAP_11 = 188004,
|
||||
GO_CARIBOU_TRAP_12 = 188005,
|
||||
GO_CARIBOU_TRAP_13 = 188006,
|
||||
GO_CARIBOU_TRAP_14 = 188007,
|
||||
GO_CARIBOU_TRAP_15 = 188008,
|
||||
GO_HIGH_QUALITY_FUR = 187983,
|
||||
NPC_NESINGWARY_TRAPPER = 25835
|
||||
};
|
||||
|
||||
#define CaribouTrapsNum 15
|
||||
const uint32 CaribouTraps[CaribouTrapsNum] =
|
||||
{
|
||||
GO_CARIBOU_TRAP_1, GO_CARIBOU_TRAP_2, GO_CARIBOU_TRAP_3, GO_CARIBOU_TRAP_4, GO_CARIBOU_TRAP_5,
|
||||
GO_CARIBOU_TRAP_6, GO_CARIBOU_TRAP_7, GO_CARIBOU_TRAP_8, GO_CARIBOU_TRAP_9, GO_CARIBOU_TRAP_10,
|
||||
GO_CARIBOU_TRAP_11, GO_CARIBOU_TRAP_12, GO_CARIBOU_TRAP_13, GO_CARIBOU_TRAP_14, GO_CARIBOU_TRAP_15,
|
||||
};
|
||||
|
||||
class item_pile_fake_furs : public ItemScript
|
||||
{
|
||||
public:
|
||||
item_pile_fake_furs() : ItemScript("item_pile_fake_furs") { }
|
||||
|
||||
bool OnUse(Player* player, Item* /*item*/, SpellCastTargets const & /*targets*/) override
|
||||
{
|
||||
GameObject* go = nullptr;
|
||||
for (uint8 i = 0; i < CaribouTrapsNum; ++i)
|
||||
{
|
||||
go = player->FindNearestGameObject(CaribouTraps[i], 5.0f);
|
||||
if (go)
|
||||
break;
|
||||
}
|
||||
|
||||
if (!go)
|
||||
return false;
|
||||
|
||||
if (go->FindNearestCreature(NPC_NESINGWARY_TRAPPER, 10.0f, true) || go->FindNearestCreature(NPC_NESINGWARY_TRAPPER, 10.0f, false) || go->FindNearestGameObject(GO_HIGH_QUALITY_FUR, 2.0f))
|
||||
return true;
|
||||
|
||||
float x, y, z;
|
||||
go->GetClosePoint(x, y, z, go->GetCombatReach() / 3, 7.0f);
|
||||
go->SummonGameObject(GO_HIGH_QUALITY_FUR, *go, QuaternionData(), 1);
|
||||
if (TempSummon* summon = player->SummonCreature(NPC_NESINGWARY_TRAPPER, x, y, z, go->GetOrientation(), TEMPSUMMON_DEAD_DESPAWN, 1000))
|
||||
{
|
||||
summon->SetVisible(false);
|
||||
summon->SetReactState(REACT_PASSIVE);
|
||||
summon->SetImmuneToPC(true);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
/*#####
|
||||
# item_petrov_cluster_bombs
|
||||
#####*/
|
||||
|
||||
enum PetrovClusterBombs
|
||||
{
|
||||
SPELL_PETROV_BOMB = 42406,
|
||||
AREA_ID_SHATTERED_STRAITS = 4064,
|
||||
ZONE_ID_HOWLING = 495
|
||||
};
|
||||
|
||||
class item_petrov_cluster_bombs : public ItemScript
|
||||
{
|
||||
public:
|
||||
item_petrov_cluster_bombs() : ItemScript("item_petrov_cluster_bombs") { }
|
||||
|
||||
bool OnUse(Player* player, Item* /*item*/, const SpellCastTargets & /*targets*/) override
|
||||
{
|
||||
if (player->GetZoneId() != ZONE_ID_HOWLING)
|
||||
return false;
|
||||
|
||||
if (!player->GetTransport() || player->GetAreaId() != AREA_ID_SHATTERED_STRAITS)
|
||||
{
|
||||
if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(SPELL_PETROV_BOMB))
|
||||
Spell::SendCastResult(player, spellInfo, 1, SPELL_FAILED_NOT_HERE);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
/*######
|
||||
# item_dehta_trap_smasher
|
||||
# For quest 11876, Help Those That Cannot Help Themselves
|
||||
######*/
|
||||
enum HelpThemselves
|
||||
{
|
||||
QUEST_CANNOT_HELP_THEMSELVES = 11876,
|
||||
NPC_TRAPPED_MAMMOTH_CALF = 25850,
|
||||
GO_MAMMOTH_TRAP_1 = 188022,
|
||||
GO_MAMMOTH_TRAP_2 = 188024,
|
||||
GO_MAMMOTH_TRAP_3 = 188025,
|
||||
GO_MAMMOTH_TRAP_4 = 188026,
|
||||
GO_MAMMOTH_TRAP_5 = 188027,
|
||||
GO_MAMMOTH_TRAP_6 = 188028,
|
||||
GO_MAMMOTH_TRAP_7 = 188029,
|
||||
GO_MAMMOTH_TRAP_8 = 188030,
|
||||
GO_MAMMOTH_TRAP_9 = 188031,
|
||||
GO_MAMMOTH_TRAP_10 = 188032,
|
||||
GO_MAMMOTH_TRAP_11 = 188033,
|
||||
GO_MAMMOTH_TRAP_12 = 188034,
|
||||
GO_MAMMOTH_TRAP_13 = 188035,
|
||||
GO_MAMMOTH_TRAP_14 = 188036,
|
||||
GO_MAMMOTH_TRAP_15 = 188037,
|
||||
GO_MAMMOTH_TRAP_16 = 188038,
|
||||
GO_MAMMOTH_TRAP_17 = 188039,
|
||||
GO_MAMMOTH_TRAP_18 = 188040,
|
||||
GO_MAMMOTH_TRAP_19 = 188041,
|
||||
GO_MAMMOTH_TRAP_20 = 188042,
|
||||
GO_MAMMOTH_TRAP_21 = 188043,
|
||||
GO_MAMMOTH_TRAP_22 = 188044,
|
||||
};
|
||||
|
||||
#define MammothTrapsNum 22
|
||||
const uint32 MammothTraps[MammothTrapsNum] =
|
||||
{
|
||||
GO_MAMMOTH_TRAP_1, GO_MAMMOTH_TRAP_2, GO_MAMMOTH_TRAP_3, GO_MAMMOTH_TRAP_4, GO_MAMMOTH_TRAP_5,
|
||||
GO_MAMMOTH_TRAP_6, GO_MAMMOTH_TRAP_7, GO_MAMMOTH_TRAP_8, GO_MAMMOTH_TRAP_9, GO_MAMMOTH_TRAP_10,
|
||||
GO_MAMMOTH_TRAP_11, GO_MAMMOTH_TRAP_12, GO_MAMMOTH_TRAP_13, GO_MAMMOTH_TRAP_14, GO_MAMMOTH_TRAP_15,
|
||||
GO_MAMMOTH_TRAP_16, GO_MAMMOTH_TRAP_17, GO_MAMMOTH_TRAP_18, GO_MAMMOTH_TRAP_19, GO_MAMMOTH_TRAP_20,
|
||||
GO_MAMMOTH_TRAP_21, GO_MAMMOTH_TRAP_22
|
||||
};
|
||||
|
||||
class item_dehta_trap_smasher : public ItemScript
|
||||
{
|
||||
public:
|
||||
item_dehta_trap_smasher() : ItemScript("item_dehta_trap_smasher") { }
|
||||
|
||||
bool OnUse(Player* player, Item* /*item*/, const SpellCastTargets & /*targets*/) override
|
||||
{
|
||||
if (player->GetQuestStatus(QUEST_CANNOT_HELP_THEMSELVES) != QUEST_STATUS_INCOMPLETE)
|
||||
return false;
|
||||
|
||||
Creature* pMammoth = player->FindNearestCreature(NPC_TRAPPED_MAMMOTH_CALF, 5.0f);
|
||||
if (!pMammoth)
|
||||
return false;
|
||||
|
||||
GameObject* pTrap = nullptr;
|
||||
for (uint8 i = 0; i < MammothTrapsNum; ++i)
|
||||
{
|
||||
pTrap = player->FindNearestGameObject(MammothTraps[i], 11.0f);
|
||||
if (pTrap)
|
||||
{
|
||||
pMammoth->AI()->DoAction(1);
|
||||
pTrap->SetGoState(GO_STATE_READY);
|
||||
player->KilledMonsterCredit(NPC_TRAPPED_MAMMOTH_CALF);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
enum CapturedFrog
|
||||
{
|
||||
QUEST_THE_PERFECT_SPIES = 25444,
|
||||
NPC_VANIRAS_SENTRY_TOTEM = 40187
|
||||
};
|
||||
|
||||
class item_captured_frog : public ItemScript
|
||||
{
|
||||
public:
|
||||
item_captured_frog() : ItemScript("item_captured_frog") { }
|
||||
|
||||
bool OnUse(Player* player, Item* item, SpellCastTargets const& /*targets*/) override
|
||||
{
|
||||
if (player->GetQuestStatus(QUEST_THE_PERFECT_SPIES) == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
if (player->FindNearestCreature(NPC_VANIRAS_SENTRY_TOTEM, 10.0f))
|
||||
return false;
|
||||
else
|
||||
player->SendEquipError(EQUIP_ERR_OUT_OF_RANGE, item, nullptr);
|
||||
}
|
||||
else
|
||||
player->SendEquipError(EQUIP_ERR_CLIENT_LOCKED_OUT, item, nullptr);
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
// Only used currently for
|
||||
// 19169: Nightfall
|
||||
class item_generic_limit_chance_above_60 : public ItemScript
|
||||
{
|
||||
public:
|
||||
item_generic_limit_chance_above_60() : ItemScript("item_generic_limit_chance_above_60") { }
|
||||
|
||||
bool OnCastItemCombatSpell(Player* /*player*/, Unit* victim, SpellInfo const* /*spellInfo*/, Item* /*item*/) override
|
||||
{
|
||||
// spell proc chance gets severely reduced on victims > 60 (formula unknown)
|
||||
if (victim->getLevel() > 60)
|
||||
{
|
||||
// gives ~0.1% proc chance at lvl 70
|
||||
float const lvlPenaltyFactor = 9.93f;
|
||||
float const failureChance = (victim->getLevel() - 60) * lvlPenaltyFactor;
|
||||
|
||||
// base ppm chance was already rolled, only roll success chance
|
||||
return !roll_chance_f(failureChance);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
/*#####
|
||||
# item_horde_adventurer_horn
|
||||
#####*/
|
||||
|
||||
class item_horde_adventurer_horn : public ItemScript
|
||||
{
|
||||
public:
|
||||
item_horde_adventurer_horn() : ItemScript("item_horde_adventurer_horn") { }
|
||||
|
||||
bool OnUse(Player* player, Item* item, SpellCastTargets const& /*targets*/) override
|
||||
{
|
||||
TC_LOG_INFO(
|
||||
"scripts",
|
||||
"[VianoHorn] OnUse player='%s' item=%u",
|
||||
player->GetName().c_str(),
|
||||
item->GetEntry());
|
||||
|
||||
// Horns may not be used during combat.
|
||||
if (player->IsInCombat())
|
||||
{
|
||||
TC_LOG_INFO("scripts",
|
||||
"[VianoHorn] rejected: player is in combat");
|
||||
|
||||
player->SendEquipError(
|
||||
EQUIP_ERR_CLIENT_LOCKED_OUT,
|
||||
item,
|
||||
nullptr);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Horns may only be used inside dungeon instances.
|
||||
if (!player->GetMap()->IsDungeon())
|
||||
{
|
||||
TC_LOG_INFO("scripts",
|
||||
"[VianoHorn] rejected: player is not inside a dungeon");
|
||||
|
||||
player->SendEquipError(
|
||||
EQUIP_ERR_CLIENT_LOCKED_OUT,
|
||||
item,
|
||||
nullptr);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
TC_LOG_INFO(
|
||||
"scripts",
|
||||
"[VianoHorn] prechecks passed; allowing normal item spell processing");
|
||||
|
||||
// IMPORTANT:
|
||||
// false means the ItemScript does not consume/suppress the normal item use.
|
||||
// The item's SpellID1 (120000-120003) may now run through the regular
|
||||
// Trinity spell lifecycle.
|
||||
return false;
|
||||
}
|
||||
};
|
||||
}// namespace ItemScripts
|
||||
|
||||
|
||||
void AddSC_item_scripts()
|
||||
{
|
||||
using namespace ItemScripts;
|
||||
new item_only_for_flight();
|
||||
new item_nether_wraith_beacon();
|
||||
new item_gor_dreks_ointment();
|
||||
new item_incendiary_explosives();
|
||||
new item_mysterious_egg();
|
||||
new item_disgusting_jar();
|
||||
new item_pile_fake_furs();
|
||||
new item_petrov_cluster_bombs();
|
||||
new item_dehta_trap_smasher();
|
||||
new item_captured_frog();
|
||||
new item_generic_limit_chance_above_60();
|
||||
new item_horde_adventurer_horn();
|
||||
}
|
||||
Reference in new issue
Block a user