Core/Quests: implement Quest Greeting (DB table quest_greeting)

This commit is contained in:
Aokromes committed 2017-10-29 11:53:17 +01:00
1 parent cccc032b44
commit 228e625a86
9 files changed
+262 -17

No files matched your search

+3 -3
View File
@@ -536,7 +536,7 @@ CREATE TABLE `rbac_linked_permissions` (
LOCK TABLES `rbac_linked_permissions` WRITE; LOCK TABLES `rbac_linked_permissions` WRITE;
/*!40000 ALTER TABLE `rbac_linked_permissions` DISABLE KEYS */; /*!40000 ALTER TABLE `rbac_linked_permissions` DISABLE KEYS */;
INSERT INTO `rbac_linked_permissions` VALUES (192,21),(192,42),(192,43),(192,193),(192,196),(192,778),(192,779),(192,780),(192,781),(192,782),(192,783),(192,784),(192,785),(192,786),(192,787),(192,788),(192,789),(192,790),(192,791),(192,792),(192,793),(192,794),(192,835),(193,48),(193,194),(193,197),(194,1),(194,2),(194,11),(194,13),(194,14),(194,15),(194,16),(194,17),(194,18),(194,19),(194,20),(194,22),(194,23),(194,25),(194,26),(194,27),(194,28),(194,29),(194,30),(194,31),(194,32),(194,33),(194,34),(194,35),(194,36),(194,37),(194,38),(194,39),(194,40),(194,41),(194,44),(194,46),(194,47),(194,195),(194,198),(195,3),(195,4),(195,5),(195,6),(195,24),(195,49),(195,199),(196,7),(196,200),(196,201),(196,208),(196,212),(196,213),(196,226),(196,227),(196,230),(196,231),(196,233),(196,234),(196,235),(196,238),(196,239),(196,240),(196,241),(196,242),(196,243),(196,244),(196,245),(196,246),(196,247),(196,248),(196,249),(196,250),(196,251),(196,252),(196,253),(196,254),(196,255),(196,256),(196,257),(196,258),(196,259),(196,260),(196,261),(196,262),(196,264),(196,265),(196,266),(196,267),(196,268),(196,269),(196,270),(196,271),(196,272),(196,279),(196,280),(196,283),(196,287),(196,288),(196,289),(196,290),(196,291),(196,292),(196,293),(196,294),(196,295),(196,296),(196,297),(196,298),(196,299),(196,302),(196,303),(196,304),(196,305),(196,306),(196,307),(196,308),(196,309),(196,310),(196,313),(196,314),(196,319),(196,320),(196,321),(196,322),(196,323),(196,324),(196,325),(196,326),(196,327),(196,328),(196,329),(196,330),(196,331),(196,332),(196,333),(196,334),(196,335),(196,336),(196,337),(196,338),(196,339),(196,340),(196,341),(196,342),(196,343),(196,344),(196,345),(196,346),(196,347),(196,348),(196,349),(196,350),(196,351),(196,352),(196,353),(196,354),(196,355),(196,356),(196,357),(196,358),(196,359),(196,360),(196,361),(196,362),(196,363),(196,364),(196,365),(196,366),(196,373),(196,375),(196,400),(196,401),(196,402),(196,403),(196,404),(196,405),(196,406),(196,407),(196,417),(196,418),(196,419),(196,420),(196,421),(196,422),(196,423),(196,424),(196,425),(196,426),(196,427),(196,428),(196,429),(196,434),(196,435),(196,436),(196,437),(196,438),(196,439),(196,440),(196,441),(196,442),(196,443),(196,444),(196,445),(196,446),(196,447),(196,448),(196,449),(196,450),(196,451),(196,452),(196,453),(196,454),(196,455),(196,456),(196,457),(196,458),(196,459),(196,461),(196,463),(196,464),(196,465),(196,472),(196,473),(196,474),(196,475),(196,476),(196,477),(196,478),(196,488),(196,489),(196,491),(196,492),(196,493),(196,495),(196,497),(196,498),(196,499),(196,500),(196,502),(196,503),(196,505),(196,508),(196,511),(196,513),(196,514),(196,516),(196,519),(196,522),(196,523),(196,526),(196,527),(196,529),(196,530),(196,533),(196,535),(196,536),(196,537),(196,538),(196,539),(196,540),(196,541),(196,556),(196,581),(196,582),(196,592),(196,593),(196,596),(196,602),(196,603),(196,604),(196,605),(196,606),(196,607),(196,608),(196,609),(196,610),(196,611),(196,612),(196,613),(196,614),(196,615),(196,616),(196,617),(196,618),(196,619),(196,620),(196,621),(196,622),(196,623),(196,624),(196,625),(196,626),(196,627),(196,628),(196,629),(196,630),(196,631),(194,632),(196,633),(196,634),(196,635),(196,636),(196,637),(196,638),(196,639),(196,640),(196,641),(196,642),(196,643),(196,644),(196,645),(196,646),(196,647),(196,648),(196,649),(196,650),(196,651),(196,652),(196,653),(196,654),(196,655),(196,656),(196,657),(196,658),(196,659),(196,660),(196,661),(196,662),(196,663),(196,664),(196,665),(196,666),(196,667),(196,668),(196,669),(196,670),(196,671),(196,672),(196,673),(196,674),(196,675),(196,676),(196,677),(196,678),(196,679),(196,680),(196,681),(196,682),(196,683),(196,684),(196,685),(196,686),(196,687),(196,688),(196,689),(196,690),(196,691),(196,692),(196,693),(196,694),(196,695),(196,696),(196,697),(196,698),(196,699),(196,700),(196,701),(196,702),(196,703),(196,704),(196,705),(196,706),(196,707),(196,708),(196,709),(196,710),(196,711),(196,712),(196,713),(196,714),(196,715),(196,716),(196,717),(196,718),(196,719),(196,721),(196,722),(196,723),(196,724),(196,725),(196,726),(196,727),(196,728),(196,729),(196,730),(196,733),(196,734),(196,735),(196,736),(196,738),(196,739),(196,748),(196,753),(196,757),(196,773),(196,777),(196,836),(196,837),(196,838),(196,839),(196,840),(196,841),(197,232),(197,236),(197,237),(197,273),(197,274),(197,275),(197,276),(197,277),(197,284),(197,285),(197,286),(197,301),(197,311),(197,387),(197,388),(197,389),(197,390),(197,391),(197,392),(197,393),(197,394),(197,395),(197,396),(197,397),(197,398),(197,399),(197,479),(197,480),(197,481),(197,482),(197,485),(197,486),(197,487),(197,494),(197,506),(197,509),(197,510),(197,517),(197,518),(197,521),(197,542),(197,543),(197,550),(197,558),(197,568),(197,571),(197,572),(197,573),(197,574),(197,575),(197,576),(197,577),(197,578),(197,579),(197,580),(197,583),(197,584),(197,585),(197,586),(197,587),(197,588),(197,589),(197,590),(197,591),(197,594),(197,595),(197,Line truncated INSERT INTO `rbac_linked_permissions` VALUES (192,21),(192,42),(192,43),(192,193),(192,196),(192,778),(192,779),(192,780),(192,781),(192,782),(192,783),(192,784),(192,785),(192,786),(192,787),(192,788),(192,789),(192,790),(192,791),(192,792),(192,793),(192,794),(192,835),(193,48),(193,194),(193,197),(194,1),(194,2),(194,11),(194,13),(194,14),(194,15),(194,16),(194,17),(194,18),(194,19),(194,20),(194,22),(194,23),(194,25),(194,26),(194,27),(194,28),(194,29),(194,30),(194,31),(194,32),(194,33),(194,34),(194,35),(194,36),(194,37),(194,38),(194,39),(194,40),(194,41),(194,44),(194,46),(194,47),(194,195),(194,198),(195,3),(195,4),(195,5),(195,6),(195,24),(195,49),(195,199),(196,7),(196,200),(196,201),(196,208),(196,212),(196,213),(196,226),(196,227),(196,230),(196,231),(196,233),(196,234),(196,235),(196,238),(196,239),(196,240),(196,241),(196,242),(196,243),(196,244),(196,245),(196,246),(196,247),(196,248),(196,249),(196,250),(196,251),(196,252),(196,253),(196,254),(196,255),(196,256),(196,257),(196,258),(196,259),(196,260),(196,261),(196,262),(196,264),(196,265),(196,266),(196,267),(196,268),(196,269),(196,270),(196,271),(196,272),(196,279),(196,280),(196,283),(196,287),(196,288),(196,289),(196,290),(196,291),(196,292),(196,293),(196,294),(196,295),(196,296),(196,297),(196,298),(196,299),(196,302),(196,303),(196,304),(196,305),(196,306),(196,307),(196,308),(196,309),(196,310),(196,313),(196,314),(196,319),(196,320),(196,321),(196,322),(196,323),(196,324),(196,325),(196,326),(196,327),(196,328),(196,329),(196,330),(196,331),(196,332),(196,333),(196,334),(196,335),(196,336),(196,337),(196,338),(196,339),(196,340),(196,341),(196,342),(196,343),(196,344),(196,345),(196,346),(196,347),(196,348),(196,349),(196,350),(196,351),(196,352),(196,353),(196,354),(196,355),(196,356),(196,357),(196,358),(196,359),(196,360),(196,361),(196,362),(196,363),(196,364),(196,365),(196,366),(196,373),(196,375),(196,400),(196,401),(196,402),(196,403),(196,404),(196,405),(196,406),(196,407),(196,417),(196,418),(196,419),(196,420),(196,421),(196,422),(196,423),(196,424),(196,425),(196,426),(196,427),(196,428),(196,429),(196,434),(196,435),(196,436),(196,437),(196,438),(196,439),(196,440),(196,441),(196,442),(196,443),(196,444),(196,445),(196,446),(196,447),(196,448),(196,449),(196,450),(196,451),(196,452),(196,453),(196,454),(196,455),(196,456),(196,457),(196,458),(196,459),(196,461),(196,463),(196,464),(196,465),(196,472),(196,473),(196,474),(196,475),(196,476),(196,477),(196,478),(196,488),(196,489),(196,491),(196,492),(196,493),(196,495),(196,497),(196,498),(196,499),(196,500),(196,502),(196,503),(196,505),(196,508),(196,511),(196,513),(196,514),(196,516),(196,519),(196,522),(196,523),(196,526),(196,527),(196,529),(196,530),(196,533),(196,535),(196,536),(196,537),(196,538),(196,539),(196,540),(196,541),(196,556),(196,581),(196,582),(196,592),(196,593),(196,596),(196,602),(196,603),(196,604),(196,605),(196,606),(196,607),(196,608),(196,609),(196,610),(196,611),(196,612),(196,613),(196,614),(196,615),(196,616),(196,617),(196,618),(196,619),(196,620),(196,621),(196,622),(196,623),(196,624),(196,625),(196,626),(196,627),(196,628),(196,629),(196,630),(196,631),(194,632),(196,633),(196,634),(196,635),(196,636),(196,637),(196,638),(196,639),(196,640),(196,641),(196,642),(196,643),(196,644),(196,645),(196,646),(196,647),(196,648),(196,649),(196,650),(196,651),(196,652),(196,653),(196,654),(196,655),(196,656),(196,657),(196,658),(196,659),(196,660),(196,661),(196,662),(196,663),(196,664),(196,665),(196,666),(196,667),(196,668),(196,669),(196,670),(196,671),(196,672),(196,673),(196,674),(196,675),(196,676),(196,677),(196,678),(196,679),(196,680),(196,681),(196,682),(196,683),(196,684),(196,685),(196,686),(196,687),(196,688),(196,689),(196,690),(196,691),(196,692),(196,693),(196,694),(196,695),(196,696),(196,697),(196,698),(196,699),(196,700),(196,701),(196,702),(196,703),(196,704),(196,705),(196,706),(196,707),(196,708),(196,709),(196,710),(196,711),(196,712),(196,713),(196,714),(196,715),(196,716),(196,717),(196,718),(196,719),(196,721),(196,722),(196,723),(196,724),(196,725),(196,726),(196,727),(196,728),(196,729),(196,730),(196,733),(196,734),(196,735),(196,736),(196,738),(196,739),(196,748),(196,753),(196,757),(196,773),(196,777),(196,836),(196,837),(196,838),(196,839),(196,840),(196,841),(196,843),(196,866),(196,867),(197,232),(197,236),(197,237),(197,273),(197,274),(197,275),(197,276),(197,277),(197,284),(197,285),(197,286),(197,301),(197,311),(197,387),(197,388),(197,389),(197,390),(197,391),(197,392),(197,393),(197,394),(197,395),(197,396),(197,397),(197,398),(197,399),(197,479),(197,480),(197,481),(197,482),(197,485),(197,486),(197,487),(197,494),(197,506),(197,509),(197,510),(197,517),(197,518),(197,521),(197,542),(197,543),(197,550),(197,558),(197,568),(197,571),(197,572),(197,573),(197,574),(197,575),(197,576),(197,577),(197,578),(197,579),(197,580),(197,583),(197,584),(197,585),(197,586),(197,587),(197,588),(197,589),(197,590),(197,Line truncated
/*!40000 ALTER TABLE `rbac_linked_permissions` ENABLE KEYS */; /*!40000 ALTER TABLE `rbac_linked_permissions` ENABLE KEYS */;
UNLOCK TABLES; UNLOCK TABLES;
@@ -560,7 +560,7 @@ CREATE TABLE `rbac_permissions` (
LOCK TABLES `rbac_permissions` WRITE; LOCK TABLES `rbac_permissions` WRITE;
/*!40000 ALTER TABLE `rbac_permissions` DISABLE KEYS */; /*!40000 ALTER TABLE `rbac_permissions` DISABLE KEYS */;
INSERT INTO `rbac_permissions` VALUES (1,'Instant logout'),(2,'Skip Queue'),(3,'Join Normal Battleground'),(4,'Join Random Battleground'),(5,'Join Arenas'),(6,'Join Dungeon Finder'),(7, 'Skip idle connection check'),(11,'Log GM trades'),(13,'Skip Instance required bosses check'),(14,'Skip character creation team mask check'),(15,'Skip character creation class mask check'),(16,'Skip character creation race mask check'),(17,'Skip character creation reserved name check'),(18,'Skip character creation heroic min level check'),(19,'Skip needed requirements to use channel check'),(20,'Skip disable map check'),(21,'Skip reset talents when used more than allowed check'),(22,'Skip spam chat check'),(23,'Skip over-speed ping check'),(24,'Two side faction characters on the same account'),(25,'Allow say chat between factions'),(26,'Allow channel chat between factions'),(27,'Two side mail interaction'),(28,'See two side who list'),(29,'Add friends of other faction'),(30,'Save character without delay with .save command'),(31,'Use params with .unstuck command'),(32,'Can be assigned tickets with .assign ticket command'),(33,'Notify if a command was not found'),(34,'Check if should appear in list using .gm ingame command'),(35,'See all security levels with who command'),(36,'Filter whispers'),(37,'Use staff badge in chat'),(38,'Resurrect with full Health Points'),(39,'Restore saved gm setting states'),(40,'Allows to add a gm to friend list'),(41,'Use Config option START_GM_LEVEL to assign new character level'),(42,'Allows to use CMSG_WORLD_TELEPORT opcode'),(43,'Allows to use CMSG_WHOIS opcode'),(44,'Receive global GM messages/texts'),(45,'Join channels without announce'),(46,'Change channel settings without being channel moderator'),(47,'Enables lower security than target check'),(48,'Enable IP, Last Login and EMail output in pinfo'),(49,'Forces to enter the email for confirmation on password change'),(50,'Allow user to check his own email with .account'),(192,'Role: Sec Level Administrator'),(193,'Role: Sec Level Gamemaster'),(194,'Role: Sec Level Moderator'),(195,'Role: Sec Level Player'),(196,'Role: Administrator Commands'),(197,'Role: Gamemaster Commands'),(198,'Role: Moderator Commands'),(199,'Role: Player Commands'),(200,'Command: rbac'),(201,'Command: rbac account'),(202,'Command: rbac account list'),(203,'Command: rbac account grant'),(204,'Command: rbac account deny'),(205,'Command: rbac account revoke'),(206,'Command: rbac list'),(207,'Command: battlenetaccount'),(208,'Command: battlenetaccount create'),(209,'Command: battlenetaccount lock country'),(210,'Command: battlenetaccount lock ip'),(211,'Command: battlenetaccount password'),(212,'Command: battlenetaccount set'),(213,'Command: battlenetaccount set password'),(217,'Command: account'),(218,'Command: account addon'),(219,'Command: account create'),(220,'Command: account delete'),(221,'Command: account lock'),(222,'Command: account lock country'),(223,'Command: account lock ip'),(224,'Command: account onlinelist'),(225,'Command: account password'),(226,'Command: account set'),(227,'Command: account set addon'),(228,'Command: account set gmlevel'),(229,'Command: account set password'),(230,'Command: achievement'),(231,'Command: achievement add'),(232,'Command: arena'),(233,'Command: arena captain'),(234,'Command: arena create'),(235,'Command: arena disband'),(236,'Command: arena info'),(237,'Command: arena lookup'),(238,'Command: arena rename'),(239,'Command: ban'),(240,'Command: ban account'),(241,'Command: ban character'),(242,'Command: ban ip'),(243,'Command: ban playeraccount'),(244,'Command: baninfo'),(245,'Command: baninfo account'),(246,'Command: baninfo character'),(247,'Command: baninfo ip'),(248,'Command: banlist'),(249,'Command: banlist account'),(250,'Command: banlist character'),(251,'Command: banlist ip'),(252,'Command: unban'),(253,'Command: unban account'),(254,'Command: unban character'),(255,'Command: unban ip'),(256,'Command: unban playeraccount'),(257,'Command: bf'),(258,'Command: bf start'),(259,'Command: bf stop'),(260,'Command: bf switch'),(261,'Command: bf timer'),(262,'Command: bf enable'),(263,'Command: account email'),(264,'Command: account set sec'),(265,'Command: account set sec email'),(266,'Command: account set sec regmail'),(267,'Command: cast'),(268,'Command: cast back'),(269,'Command: cast dist'),(270,'Command: cast self'),(271,'Command: cast target'),(272,'Command: cast dest'),(273,'Command: character'),(274,'Command: character customize'),(275,'Command: character changefaction'),(276,'Command: character changerace'),(277,'Command: character deleted'),(279,'Command: character deleted list'),(280,'Command: character deleted restore'),(283,'Command: character level'),(284,'Command: character rename'),(285,'Command: character reputation'),(286,'Command: character titles'),(287,'Command: levelup'),(288,'Command: pdump'),(289,'Command: pdump load'),(290,'Command: pdump write'),(291,'Command: cheat'),(292,'Command: cheat casttime')Line truncated INSERT INTO `rbac_permissions` VALUES (1,'Instant logout'),(2,'Skip Queue'),(3,'Join Normal Battleground'),(4,'Join Random Battleground'),(5,'Join Arenas'),(6,'Join Dungeon Finder'),(7, 'Skip idle connection check'),(11,'Log GM trades'),(13,'Skip Instance required bosses check'),(14,'Skip character creation team mask check'),(15,'Skip character creation class mask check'),(16,'Skip character creation race mask check'),(17,'Skip character creation reserved name check'),(18,'Skip character creation heroic min level check'),(19,'Skip needed requirements to use channel check'),(20,'Skip disable map check'),(21,'Skip reset talents when used more than allowed check'),(22,'Skip spam chat check'),(23,'Skip over-speed ping check'),(24,'Two side faction characters on the same account'),(25,'Allow say chat between factions'),(26,'Allow channel chat between factions'),(27,'Two side mail interaction'),(28,'See two side who list'),(29,'Add friends of other faction'),(30,'Save character without delay with .save command'),(31,'Use params with .unstuck command'),(32,'Can be assigned tickets with .assign ticket command'),(33,'Notify if a command was not found'),(34,'Check if should appear in list using .gm ingame command'),(35,'See all security levels with who command'),(36,'Filter whispers'),(37,'Use staff badge in chat'),(38,'Resurrect with full Health Points'),(39,'Restore saved gm setting states'),(40,'Allows to add a gm to friend list'),(41,'Use Config option START_GM_LEVEL to assign new character level'),(42,'Allows to use CMSG_WORLD_TELEPORT opcode'),(43,'Allows to use CMSG_WHOIS opcode'),(44,'Receive global GM messages/texts'),(45,'Join channels without announce'),(46,'Change channel settings without being channel moderator'),(47,'Enables lower security than target check'),(48,'Enable IP, Last Login and EMail output in pinfo'),(49,'Forces to enter the email for confirmation on password change'),(50,'Allow user to check his own email with .account'),(192,'Role: Sec Level Administrator'),(193,'Role: Sec Level Gamemaster'),(194,'Role: Sec Level Moderator'),(195,'Role: Sec Level Player'),(196,'Role: Administrator Commands'),(197,'Role: Gamemaster Commands'),(198,'Role: Moderator Commands'),(199,'Role: Player Commands'),(200,'Command: rbac'),(201,'Command: rbac account'),(202,'Command: rbac account list'),(203,'Command: rbac account grant'),(204,'Command: rbac account deny'),(205,'Command: rbac account revoke'),(206,'Command: rbac list'),(207,'Command: battlenetaccount'),(208,'Command: battlenetaccount create'),(209,'Command: battlenetaccount lock country'),(210,'Command: battlenetaccount lock ip'),(211,'Command: battlenetaccount password'),(212,'Command: battlenetaccount set'),(213,'Command: battlenetaccount set password'),(217,'Command: account'),(218,'Command: account addon'),(219,'Command: account create'),(220,'Command: account delete'),(221,'Command: account lock'),(222,'Command: account lock country'),(223,'Command: account lock ip'),(224,'Command: account onlinelist'),(225,'Command: account password'),(226,'Command: account set'),(227,'Command: account set addon'),(228,'Command: account set gmlevel'),(229,'Command: account set password'),(230,'Command: achievement'),(231,'Command: achievement add'),(232,'Command: arena'),(233,'Command: arena captain'),(234,'Command: arena create'),(235,'Command: arena disband'),(236,'Command: arena info'),(237,'Command: arena lookup'),(238,'Command: arena rename'),(239,'Command: ban'),(240,'Command: ban account'),(241,'Command: ban character'),(242,'Command: ban ip'),(243,'Command: ban playeraccount'),(244,'Command: baninfo'),(245,'Command: baninfo account'),(246,'Command: baninfo character'),(247,'Command: baninfo ip'),(248,'Command: banlist'),(249,'Command: banlist account'),(250,'Command: banlist character'),(251,'Command: banlist ip'),(252,'Command: unban'),(253,'Command: unban account'),(254,'Command: unban character'),(255,'Command: unban ip'),(256,'Command: unban playeraccount'),(257,'Command: bf'),(258,'Command: bf start'),(259,'Command: bf stop'),(260,'Command: bf switch'),(261,'Command: bf timer'),(262,'Command: bf enable'),(263,'Command: account email'),(264,'Command: account set sec'),(265,'Command: account set sec email'),(266,'Command: account set sec regmail'),(267,'Command: cast'),(268,'Command: cast back'),(269,'Command: cast dist'),(270,'Command: cast self'),(271,'Command: cast target'),(272,'Command: cast dest'),(273,'Command: character'),(274,'Command: character customize'),(275,'Command: character changefaction'),(276,'Command: character changerace'),(277,'Command: character deleted'),(279,'Command: character deleted list'),(280,'Command: character deleted restore'),(283,'Command: character level'),(284,'Command: character rename'),(285,'Command: character reputation'),(286,'Command: character titles'),(287,'Command: levelup'),(288,'Command: pdump'),(289,'Command: pdump load'),(290,'Command: pdump write'),(291,'Command: cheat'),(292,'Command: cheat casttime')Line truncated
/*!40000 ALTER TABLE `rbac_permissions` ENABLE KEYS */; /*!40000 ALTER TABLE `rbac_permissions` ENABLE KEYS */;
UNLOCK TABLES; UNLOCK TABLES;
@@ -650,7 +650,7 @@ CREATE TABLE `updates` (
LOCK TABLES `updates` WRITE; LOCK TABLES `updates` WRITE;
/*!40000 ALTER TABLE `updates` DISABLE KEYS */; /*!40000 ALTER TABLE `updates` DISABLE KEYS */;
INSERT INTO `updates` VALUES ('2014_11_10_00_auth.sql','0E3CB119442D09DD88E967015319BBC8DAFBBFE0','ARCHIVED','2015-03-21 21:44:12',0),('2014_11_10_01_auth.sql','327E77A1DA3546D5275AB249915DD57EDD6FDD3D','ARCHIVED','2015-03-21 21:44:12',0),('2014_12_10_00_auth.sql','821703A96D80F9080074852B5A46E2909C9562EA','ARCHIVED','2015-03-21 21:44:12',0),('2014_12_21_00_auth.sql','CE2E5D2CD82E79C25294539ADED27A1429105B43','ARCHIVED','2015-03-21 21:44:12',0),('2015_03_20_00_auth.sql','E8C5B74BB45F0F35DEC182C72BACF435C7066FB0','ARCHIVED','2015-03-21 21:44:12',0),('2015_03_20_01_auth.sql','862961815354DA2746F5F71FBC8155F57CBE75AB','ARCHIVED','2015-03-21 21:44:12',0),('2015_03_20_02_auth.sql','33E4F94086590768EF5D4855DD43D7DE7C06ADA4','ARCHIVED','2015-03-21 21:44:51',0),('2016_01_13_00_auth.sql','24615CC69B3CD7BB4699874647C35BA86E8A93FD','ARCHIVED','2016-01-14 23:27:07',0),('2016_01_13_00_auth_434.sql','3E88183E1A85D11BFD74CF9A32A725C44AE02EEC','ARCHIVED','2016-01-13 01:19:16',0),('2016_03_12_00_auth.sql','0ACDD35EC9745231BCFA701B78056DEF94D0CC53','ARCHIVED','2016-03-12 01:19:16',0),('2016_05_15_00_auth_from_335_was_2016_05_11_00_auth.sql','C593DA4423F344FB10AAA86C20D1E87B','ARCHIVED','',0),('2016_08_28_00_auth.sql','30A76055F50A79629DB82B7BF17CE9B7','ARCHIVED','',0),('2016_09_03_02_auth_from_335_was_2016_06_06_00_auth.sql','8E1989D33A2A6CCC60B3AFAEFCBFD735','ARCHIVED','',0),('2016_09_28_00_auth.sql','1719674D3EE9E8B965BAC4042140D6BD','ARCHIVED','',0),('2016_11_06_00_auth.sql','C3B848943465F7D360EF3E01F46219E6','ARCHIVED','2016-11-06 17:11:18',0),('2017_01_07_00_auth_from_335_was_2017_01_06_00_auth.sql','D471D225E30B746E4A1736D173E83A84','ARCHIVED','2017-01-07 00:00:00',0),('2017_01_12_00_auth.sql','7EB5AAEC12EDD728EB66C89FF5E4C466','ARCHIVED','2017-01-12 00:00:00',0),('2017_02_11_00_auth.sql','16147413149F2EA1AD413FEA9C503093','ARCHIVED','2017-02-11 00:00:00',0),('2017_03_16_00_auth.sql','C1BC73E532180AE4CE5D28AF6A0730DC','ARCHIVED','2017-02-16 00:00:00',0),('2017_03_20_00_auth_from_335_was_2017_03_17_00_auth.sql','22FBDB54B8BC809C95E4D2AFAF1B249C','ARCHIVED','2017-03-20 16:48:01',0),('2017_04_02_00_auth.sql','2420814101287A57800A877BE699AE5F','ARCHIVED','2017-04-02 07:48:01',0),('2017_04_16_00_auth.sql','0E7939DE2187B93E351DE6174D467F0C','ARCHIVED','2017-04-16 07:48:01',0),('2017_05_16_00_auth.sql','B6E7FF36B4FE6B0838B769BDE1FC1345','ARCHIVED','2017-05-16 06:48:01',0),('2017_05_28_00_auth_from_335_was_2016_09_22_00_auth.sql','B06D9156513BCFD21ADC65C3822B6D78','ARCHIVED','2017-05-28 23:48:01',0),('2017_05_30_00_auth.sql','180754FEA2A14377E709A8F9BF732684','ARCHIVED','2017-05-30 09:48:01',0),('2017_06_12_00_auth.sql','705E48D40A49A4C65E2E14C47FAE6682','ARCHIVED','2017-05-30 09:48:01',0),('2017_06_12_01_auth.sql','D310B30264ED1312328C3A97A8121153','ARCHIVED','2017-05-30 09:48:01',0),('2017_06_12_02_auth.sql','64E4AF5447478C30DC40CA21B163076C','ARCHIVED','2017-05-30 09:48:01',0),('2017_06_17_00_auth.sql','082C36FADA3159C26CD8C89E202779E7','ARCHIVED','2017-06-17 01:40:04',0),('2017_06_18_00_auth.sql','D8042BF7F9B66797F84CB4E224634BD4','ARCHIVED','2017-06-18 01:40:04',0),('2017_06_28_00_auth.sql','9611984934CBA07D0BDC0F00C22C6C28','ARCHIVED','2017-06-28 01:40:04',0),('2017_07_18_00_auth.sql','2B2C70F3A6D0E798CFBDC77C42F46E23','ARCHIVED','2017-07-18 01:40:04',0),('2017_09_17_00_auth.sql','6272BF0749AF8B4F1D7BB27498993670','ARCHIVED','2017-09-17 01:40:04',0),('2017_10_14_00_world_from_335_was_2017_10_13_00_auth.sql','7EF0F4E6D8EDD0AA62EB765F6356A21E','ARCHIVED','2017-10-14 01:40:04',0),('2017_10_16_00_auth.sql','41543E05464F1AE3AC0FB478AB605B66','ARCHIVED','2017-10-16 01:40:04',0); INSERT INTO `updates` VALUES ('2014_11_10_00_auth.sql','0E3CB119442D09DD88E967015319BBC8DAFBBFE0','ARCHIVED','2015-03-21 21:44:12',0),('2014_11_10_01_auth.sql','327E77A1DA3546D5275AB249915DD57EDD6FDD3D','ARCHIVED','2015-03-21 21:44:12',0),('2014_12_10_00_auth.sql','821703A96D80F9080074852B5A46E2909C9562EA','ARCHIVED','2015-03-21 21:44:12',0),('2014_12_21_00_auth.sql','CE2E5D2CD82E79C25294539ADED27A1429105B43','ARCHIVED','2015-03-21 21:44:12',0),('2015_03_20_00_auth.sql','E8C5B74BB45F0F35DEC182C72BACF435C7066FB0','ARCHIVED','2015-03-21 21:44:12',0),('2015_03_20_01_auth.sql','862961815354DA2746F5F71FBC8155F57CBE75AB','ARCHIVED','2015-03-21 21:44:12',0),('2015_03_20_02_auth.sql','33E4F94086590768EF5D4855DD43D7DE7C06ADA4','ARCHIVED','2015-03-21 21:44:51',0),('2016_01_13_00_auth.sql','24615CC69B3CD7BB4699874647C35BA86E8A93FD','ARCHIVED','2016-01-14 23:27:07',0),('2016_01_13_00_auth_434.sql','3E88183E1A85D11BFD74CF9A32A725C44AE02EEC','ARCHIVED','2016-01-13 01:19:16',0),('2016_03_12_00_auth.sql','0ACDD35EC9745231BCFA701B78056DEF94D0CC53','ARCHIVED','2016-03-12 01:19:16',0),('2016_05_15_00_auth_from_335_was_2016_05_11_00_auth.sql','C593DA4423F344FB10AAA86C20D1E87B','ARCHIVED','',0),('2016_08_28_00_auth.sql','30A76055F50A79629DB82B7BF17CE9B7','ARCHIVED','',0),('2016_09_03_02_auth_from_335_was_2016_06_06_00_auth.sql','8E1989D33A2A6CCC60B3AFAEFCBFD735','ARCHIVED','',0),('2016_09_28_00_auth.sql','1719674D3EE9E8B965BAC4042140D6BD','ARCHIVED','',0),('2016_11_06_00_auth.sql','C3B848943465F7D360EF3E01F46219E6','ARCHIVED','2016-11-06 17:11:18',0),('2017_01_07_00_auth_from_335_was_2017_01_06_00_auth.sql','D471D225E30B746E4A1736D173E83A84','ARCHIVED','2017-01-07 00:00:00',0),('2017_01_12_00_auth.sql','7EB5AAEC12EDD728EB66C89FF5E4C466','ARCHIVED','2017-01-12 00:00:00',0),('2017_02_11_00_auth.sql','16147413149F2EA1AD413FEA9C503093','ARCHIVED','2017-02-11 00:00:00',0),('2017_03_16_00_auth.sql','C1BC73E532180AE4CE5D28AF6A0730DC','ARCHIVED','2017-02-16 00:00:00',0),('2017_03_20_00_auth_from_335_was_2017_03_17_00_auth.sql','22FBDB54B8BC809C95E4D2AFAF1B249C','ARCHIVED','2017-03-20 16:48:01',0),('2017_04_02_00_auth.sql','2420814101287A57800A877BE699AE5F','ARCHIVED','2017-04-02 07:48:01',0),('2017_04_16_00_auth.sql','0E7939DE2187B93E351DE6174D467F0C','ARCHIVED','2017-04-16 07:48:01',0),('2017_05_16_00_auth.sql','B6E7FF36B4FE6B0838B769BDE1FC1345','ARCHIVED','2017-05-16 06:48:01',0),('2017_05_28_00_auth_from_335_was_2016_09_22_00_auth.sql','B06D9156513BCFD21ADC65C3822B6D78','ARCHIVED','2017-05-28 23:48:01',0),('2017_05_30_00_auth.sql','180754FEA2A14377E709A8F9BF732684','ARCHIVED','2017-05-30 09:48:01',0),('2017_06_12_00_auth.sql','705E48D40A49A4C65E2E14C47FAE6682','ARCHIVED','2017-05-30 09:48:01',0),('2017_06_12_01_auth.sql','D310B30264ED1312328C3A97A8121153','ARCHIVED','2017-05-30 09:48:01',0),('2017_06_12_02_auth.sql','64E4AF5447478C30DC40CA21B163076C','ARCHIVED','2017-05-30 09:48:01',0),('2017_06_17_00_auth.sql','082C36FADA3159C26CD8C89E202779E7','ARCHIVED','2017-06-17 01:40:04',0),('2017_06_18_00_auth.sql','D8042BF7F9B66797F84CB4E224634BD4','ARCHIVED','2017-06-18 01:40:04',0),('2017_06_28_00_auth.sql','9611984934CBA07D0BDC0F00C22C6C28','ARCHIVED','2017-06-28 01:40:04',0),('2017_07_18_00_auth.sql','2B2C70F3A6D0E798CFBDC77C42F46E23','ARCHIVED','2017-07-18 01:40:04',0),('2017_09_17_00_auth.sql','6272BF0749AF8B4F1D7BB27498993670','ARCHIVED','2017-09-17 01:40:04',0),('2017_10_14_00_world_from_335_was_2017_10_13_00_auth.sql','7EF0F4E6D8EDD0AA62EB765F6356A21E','ARCHIVED','2017-10-14 01:40:04',0),('2017_10_16_00_auth.sql','41543E05464F1AE3AC0FB478AB605B66','ARCHIVED','2017-10-16 01:40:04',0),('2017_10_29_00_auth.sql','2B4F28A4CCFA5755B24C5279861A6E6A','ARCHIVED','2017-10-16 01:40:04',0);
/*!40000 ALTER TABLE `updates` ENABLE KEYS */; /*!40000 ALTER TABLE `updates` ENABLE KEYS */;
UNLOCK TABLES; UNLOCK TABLES;
@@ -0,0 +1,15 @@
DELETE FROM `rbac_permissions` WHERE `id` = 843; -- this id does not exist in TDB 335.63
INSERT INTO `rbac_permissions` (`id`,`name`) VALUES
(843, 'Command: reload quest_greeting');
DELETE FROM `rbac_linked_permissions` WHERE `linkedId` = 843;
INSERT INTO `rbac_linked_permissions` (`id`,`linkedId`) VALUES
(196, 843);
DELETE FROM `rbac_permissions` WHERE `id` = 867;
INSERT INTO `rbac_permissions` (`id`,`name`) VALUES
(867, 'Command: reload quest_greeting_locale');
DELETE FROM `rbac_linked_permissions` WHERE `id` = 867;
INSERT INTO `rbac_linked_permissions` (`id`,`linkedId`) VALUES
(196, 867);
@@ -0,0 +1,28 @@
DELETE FROM `command` WHERE `name`='reload quest_greeting';
INSERT INTO `command` (`name`, `permission`, `help`) VALUES
('reload quest_greeting', 843, 'Syntax: .reload quest_greeting\nReload quest_greeting table.');
DELETE FROM `command` WHERE `name`='reload quest_greeting_locale';
INSERT INTO `command` (`name`, `permission`, `help`) VALUES
('reload quest_greeting_locale', 867, 'Syntax: .reload quest_greeting_locale\nReload quest_greeting_locale table.');
DROP TABLE IF EXISTS `quest_greeting`;
CREATE TABLE `quest_greeting` (
`ID` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
`Type` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
`GreetEmoteType` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
`GreetEmoteDelay` INT(10) UNSIGNED NOT NULL DEFAULT '0',
`Greeting` TEXT,
`VerifiedBuild` SMALLINT(5) NOT NULL DEFAULT '0',
PRIMARY KEY (`ID`,`Type`)
) ENGINE=MYISAM DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `quest_greeting_locale`;
CREATE TABLE `quest_greeting_locale` (
`ID` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
`Type` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
`locale` VARCHAR(4) NOT NULL,
`Greeting` TEXT,
`VerifiedBuild` SMALLINT(5) DEFAULT '0',
PRIMARY KEY (`ID`,`Type`)
) ENGINE=MYISAM DEFAULT CHARSET=utf8;
+3 -1
View File
@@ -747,7 +747,7 @@ enum RBACPermissions
RBAC_PERM_COMMAND_SERVER_RESTART_FORCE = 840, RBAC_PERM_COMMAND_SERVER_RESTART_FORCE = 840,
RBAC_PERM_COMMAND_NEARGRAVEYARD = 841, RBAC_PERM_COMMAND_NEARGRAVEYARD = 841,
RBAC_PERM_COMMAND_RELOAD_CHARACTER_TEMPLATE = 842, // not on 3.3.5a or 4.3.4 RBAC_PERM_COMMAND_RELOAD_CHARACTER_TEMPLATE = 842, // not on 3.3.5a or 4.3.4
RBAC_PERM_COMMAND_RELOAD_QUEST_GREETING = 843, // not on 3.3.5a or 4.3.4 RBAC_PERM_COMMAND_RELOAD_QUEST_GREETING = 843,
RBAC_PERM_COMMAND_DEBUG_SEND_PLAYSCENE = 844, // not on 3.3.5a or 4.3.4 RBAC_PERM_COMMAND_DEBUG_SEND_PLAYSCENE = 844, // not on 3.3.5a or 4.3.4
RBAC_PERM_COMMAND_GO_OFFSET = 845, RBAC_PERM_COMMAND_GO_OFFSET = 845,
RBAC_PERM_COMMAND_RELOAD_CONVERSATION_TEMPLATE = 853, // not on 3.3.5a or 4.3.4 RBAC_PERM_COMMAND_RELOAD_CONVERSATION_TEMPLATE = 853, // not on 3.3.5a or 4.3.4
@@ -763,6 +763,8 @@ enum RBACPermissions
RBAC_PERM_COMMAND_GROUP_MAINTANK = 863, RBAC_PERM_COMMAND_GROUP_MAINTANK = 863,
RBAC_PERM_COMMAND_GROUP_MAINASSIST = 864, RBAC_PERM_COMMAND_GROUP_MAINASSIST = 864,
RBAC_PERM_COMMAND_NPC_SHOWLOOT = 865, RBAC_PERM_COMMAND_NPC_SHOWLOOT = 865,
RBAC_PERM_COMMAND_LIST_SPAWNPOINTS = 866,
RBAC_PERM_COMMAND_RELOAD_QUEST_GREETING_LOCALE = 867,
// custom permissions 1000+ // custom permissions 1000+
RBAC_PERM_MAX RBAC_PERM_MAX
+29 -12
View File
@@ -321,16 +321,33 @@ void QuestMenu::ClearMenu()
_questMenuItems.clear(); _questMenuItems.clear();
} }
void PlayerMenu::SendQuestGiverQuestList(QEmote const& eEmote, const std::string& Title, ObjectGuid npcGUID) void PlayerMenu::SendQuestGiverQuestList(QEmote const& eEmote, const std::string& Title, ObjectGuid guid)
{ {
WorldPacket data(SMSG_QUESTGIVER_QUEST_LIST, 100); // guess size WorldPacket data(SMSG_QUESTGIVER_QUEST_LIST, 100); // guess size
data << uint64(npcGUID); data << uint64(guid);
data << Title;
data << uint32(eEmote._Delay); // player emote if (QuestGreeting const* questGreeting = sObjectMgr->GetQuestGreeting(guid))
data << uint32(eEmote._Emote); // NPC emote {
std::string strGreeting = questGreeting->greeting;
LocaleConstant localeConstant = _session->GetSessionDbLocaleIndex();
if (localeConstant != LOCALE_enUS)
if (QuestGreetingLocale const* questGreetingLocale = sObjectMgr->GetQuestGreetingLocale(MAKE_PAIR32(guid.GetEntry(), guid.GetTypeId())))
ObjectMgr::GetLocaleString(questGreetingLocale->greeting, localeConstant, strGreeting);
data << strGreeting;
data << uint32(questGreeting->greetEmoteDelay);
data << uint32(questGreeting->greetEmoteType);
}
else
{
data << Title;
data << uint32(eEmote._Delay); // player emote
data << uint32(eEmote._Emote); // NPC emote
}
size_t count_pos = data.wpos(); size_t count_pos = data.wpos();
data << uint8 (0); data << uint8(0);
uint32 count = 0; uint32 count = 0;
// Store this instead of checking the Singleton every loop iteration // Store this instead of checking the Singleton every loop iteration
@@ -338,9 +355,9 @@ void PlayerMenu::SendQuestGiverQuestList(QEmote const& eEmote, const std::string
for (uint32 i = 0; i < _questMenu.GetMenuItemCount(); ++i) for (uint32 i = 0; i < _questMenu.GetMenuItemCount(); ++i)
{ {
QuestMenuItem const& qmi = _questMenu.GetItem(i); QuestMenuItem const& questMenuItem = _questMenu.GetItem(i);
uint32 questID = qmi.QuestId; uint32 questID = questMenuItem.QuestId;
if (Quest const* quest = sObjectMgr->GetQuestTemplate(questID)) if (Quest const* quest = sObjectMgr->GetQuestTemplate(questID))
{ {
@@ -349,14 +366,14 @@ void PlayerMenu::SendQuestGiverQuestList(QEmote const& eEmote, const std::string
LocaleConstant localeConstant = _session->GetSessionDbLocaleIndex(); LocaleConstant localeConstant = _session->GetSessionDbLocaleIndex();
if (localeConstant >= LOCALE_enUS) if (localeConstant >= LOCALE_enUS)
if (QuestLocale const* localeData = sObjectMgr->GetQuestLocale(questID)) if (QuestLocale const* questTemplateLocaleData = sObjectMgr->GetQuestLocale(questID))
ObjectMgr::GetLocaleString(localeData->Title, localeConstant, title); ObjectMgr::GetLocaleString(questTemplateLocaleData->Title, localeConstant, title);
if (questLevelInTitle) if (questLevelInTitle)
AddQuestLevelToTitle(title, quest->GetQuestLevel()); AddQuestLevelToTitle(title, quest->GetQuestLevel());
data << uint32(questID); data << uint32(questID);
data << uint32(qmi.QuestIcon); data << uint32(questMenuItem.QuestIcon);
data << int32(quest->GetQuestLevel()); data << int32(quest->GetQuestLevel());
data << uint32(quest->GetFlags()); // 3.3.3 quest flags data << uint32(quest->GetFlags()); // 3.3.3 quest flags
data << uint8(0); // 3.3.3 changes icon: blue question or yellow exclamation data << uint8(0); // 3.3.3 changes icon: blue question or yellow exclamation
@@ -366,7 +383,7 @@ void PlayerMenu::SendQuestGiverQuestList(QEmote const& eEmote, const std::string
data.put<uint8>(count_pos, count); data.put<uint8>(count_pos, count);
_session->SendPacket(&data); _session->SendPacket(&data);
TC_LOG_DEBUG("network", "WORLD: Sent SMSG_QUESTGIVER_QUEST_LIST NPC=%s", npcGUID.ToString().c_str()); TC_LOG_DEBUG("network", "WORLD: Sent SMSG_QUESTGIVER_QUEST_LIST (QuestGiver: %s)", guid.ToString().c_str());
} }
void PlayerMenu::SendQuestGiverStatus(uint32 questStatus, ObjectGuid npcGUID) const void PlayerMenu::SendQuestGiverStatus(uint32 questStatus, ObjectGuid npcGUID) const
+128
View File
@@ -5868,6 +5868,134 @@ void ObjectMgr::LoadQuestAreaTriggers()
TC_LOG_INFO("server.loading", ">> Loaded %u quest trigger points in %u ms", count, GetMSTimeDiffToNow(oldMSTime)); TC_LOG_INFO("server.loading", ">> Loaded %u quest trigger points in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
} }
QuestGreeting const* ObjectMgr::GetQuestGreeting(ObjectGuid guid) const
{
auto itr = _questGreetingStore.find(guid.GetTypeId());
if (itr == _questGreetingStore.end())
return nullptr;
auto questItr = itr->second.find(guid.GetEntry());
if (questItr == itr->second.end())
return nullptr;
return questItr->second;
}
void ObjectMgr::LoadQuestGreetings()
{
uint32 oldMSTime = getMSTime();
_questGreetingStore.clear(); // need for reload case
// 0 1 2 3 4
QueryResult result = WorldDatabase.Query("SELECT ID, Type, GreetEmoteType, GreetEmoteDelay, Greeting FROM quest_greeting");
if (!result)
{
TC_LOG_INFO("server.loading", ">> Loaded 0 quest greetings. DB table `quest_greeting` is empty.");
return;
}
_questGreetingStore.rehash(result->GetRowCount());
uint32 count = 0;
do
{
Field* fields = result->Fetch();
uint32 id = fields[0].GetUInt32();
uint8 type = fields[1].GetUInt8();
// overwrite
switch (type)
{
case 0: // Creature
type = TYPEID_UNIT;
if (!sObjectMgr->GetCreatureTemplate(id))
{
TC_LOG_ERROR("sql.sql", "Table `quest_greeting`: creature template (entry: %u) does not exist.", id);
continue;
}
break;
case 1: // GameObject
type = TYPEID_GAMEOBJECT;
if (!sObjectMgr->GetGameObjectTemplate(id))
{
TC_LOG_ERROR("sql.sql", "Table `quest_greeting`: gameobject template (entry: %u) does not exist.", id);
continue;
}
break;
default:
TC_LOG_ERROR("sql.sql", "Table `quest_greeting`: unknown type = %u for entry = %u. Skipped.", type, id);
continue;
}
uint16 greetEmoteType = fields[2].GetUInt16();
if (greetEmoteType > 0 && !sEmotesStore.LookupEntry(greetEmoteType))
{
TC_LOG_DEBUG("sql.sql", "Table `quest_greeting`: entry %u has greetEmoteType = %u but emote does not exist. Set to 0.", id, greetEmoteType);
greetEmoteType = 0;
}
uint32 greetEmoteDelay = fields[3].GetUInt32();
std::string greeting = fields[4].GetString();
_questGreetingStore[type][id] = new QuestGreeting(greetEmoteType, greetEmoteDelay, greeting);
++count;
}
while (result->NextRow());
TC_LOG_INFO("server.loading", ">> Loaded %u quest_greeting in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
}
void ObjectMgr::LoadQuestGreetingsLocales()
{
uint32 oldMSTime = getMSTime();
_questGreetingLocaleStore.clear(); // need for reload case
// 0 1 2 3
QueryResult result = WorldDatabase.Query("SELECT ID, Type, Locale, Greeting FROM quest_greeting_locale");
if (!result)
{
TC_LOG_INFO("server.loading", ">> Loaded 0 quest_greeting locales. DB table `quest_greeting_locale` is empty.");
return;
}
do
{
Field* fields = result->Fetch();
uint32 id = fields[0].GetUInt32();
uint8 type = fields[1].GetUInt8();
// overwrite
switch (type)
{
case 0: // Creature
type = TYPEID_UNIT;
break;
case 1: // GameObject
type = TYPEID_GAMEOBJECT;
break;
default:
break;
}
std::string localeName = fields[2].GetString();
std::string greeting = fields[3].GetString();
QuestGreetingLocale& data = _questGreetingLocaleStore[MAKE_PAIR32(id, type)];
LocaleConstant locale = GetLocaleByName(localeName);
if (locale == LOCALE_enUS)
continue;
AddLocaleString(greeting, locale, data.greeting);
} while (result->NextRow());
TC_LOG_INFO("server.loading", ">> Loaded %u quest greeting locale strings in %u ms", uint32(_questGreetingLocaleStore.size()), GetMSTimeDiffToNow(oldMSTime));
}
void ObjectMgr::LoadTavernAreaTriggers() void ObjectMgr::LoadTavernAreaTriggers()
{ {
uint32 oldMSTime = getMSTime(); uint32 oldMSTime = getMSTime();
+31
View File
@@ -475,6 +475,11 @@ struct TrinityString
StringVector Content; StringVector Content;
}; };
struct QuestGreetingLocale
{
std::vector<std::string> greeting;
};
typedef std::map<ObjectGuid, ObjectGuid> LinkedRespawnContainer; typedef std::map<ObjectGuid, ObjectGuid> LinkedRespawnContainer;
typedef std::unordered_map<ObjectGuid::LowType, CreatureData> CreatureDataContainer; typedef std::unordered_map<ObjectGuid::LowType, CreatureData> CreatureDataContainer;
typedef std::unordered_map<ObjectGuid::LowType, GameObjectData> GameObjectDataContainer; typedef std::unordered_map<ObjectGuid::LowType, GameObjectData> GameObjectDataContainer;
@@ -487,6 +492,7 @@ typedef std::unordered_map<uint32, NpcTextLocale> NpcTextLocaleContainer;
typedef std::unordered_map<uint32, PageTextLocale> PageTextLocaleContainer; typedef std::unordered_map<uint32, PageTextLocale> PageTextLocaleContainer;
typedef std::unordered_map<uint32, GossipMenuItemsLocale> GossipMenuItemsLocaleContainer; typedef std::unordered_map<uint32, GossipMenuItemsLocale> GossipMenuItemsLocaleContainer;
typedef std::unordered_map<uint32, PointOfInterestLocale> PointOfInterestLocaleContainer; typedef std::unordered_map<uint32, PointOfInterestLocale> PointOfInterestLocaleContainer;
typedef std::unordered_map<uint32, QuestGreetingLocale> QuestGreetingLocaleContainer;
typedef std::unordered_map<uint32, TrinityString> TrinityStringContainer; typedef std::unordered_map<uint32, TrinityString> TrinityStringContainer;
@@ -620,6 +626,19 @@ struct QuestPOI
typedef std::vector<QuestPOI> QuestPOIVector; typedef std::vector<QuestPOI> QuestPOIVector;
typedef std::unordered_map<uint32, QuestPOIVector> QuestPOIContainer; typedef std::unordered_map<uint32, QuestPOIVector> QuestPOIContainer;
struct QuestGreeting
{
uint16 greetEmoteType;
uint32 greetEmoteDelay;
std::string greeting;
QuestGreeting() : greetEmoteType(0), greetEmoteDelay(0) { }
QuestGreeting(uint16 _greetEmoteType, uint32 _greetEmoteDelay, std::string _greeting)
: greetEmoteType(_greetEmoteType), greetEmoteDelay(_greetEmoteDelay), greeting(_greeting) { }
};
typedef std::unordered_map<uint8, std::unordered_map<uint32, QuestGreeting const*>> QuestGreetingContainer;
struct GraveYardData struct GraveYardData
{ {
uint32 safeLocId; uint32 safeLocId;
@@ -821,6 +840,7 @@ class TC_GAME_API ObjectMgr
} }
GossipText const* GetGossipText(uint32 Text_ID) const; GossipText const* GetGossipText(uint32 Text_ID) const;
QuestGreeting const* GetQuestGreeting(ObjectGuid guid) const;
WorldSafeLocsEntry const* GetDefaultGraveYard(uint32 team) const; WorldSafeLocsEntry const* GetDefaultGraveYard(uint32 team) const;
WorldSafeLocsEntry const* GetClosestGraveYard(float x, float y, float z, uint32 MapId, uint32 team) const; WorldSafeLocsEntry const* GetClosestGraveYard(float x, float y, float z, uint32 MapId, uint32 team) const;
@@ -1001,6 +1021,7 @@ class TC_GAME_API ObjectMgr
void LoadPageTextLocales(); void LoadPageTextLocales();
void LoadGossipMenuItemsLocales(); void LoadGossipMenuItemsLocales();
void LoadPointOfInterestLocales(); void LoadPointOfInterestLocales();
void LoadQuestGreetingsLocales();
void LoadInstanceTemplate(); void LoadInstanceTemplate();
void LoadInstanceEncounters(); void LoadInstanceEncounters();
void LoadMailLevelRewards(); void LoadMailLevelRewards();
@@ -1012,6 +1033,7 @@ class TC_GAME_API ObjectMgr
void LoadAreaTriggerTeleports(); void LoadAreaTriggerTeleports();
void LoadAccessRequirements(); void LoadAccessRequirements();
void LoadQuestAreaTriggers(); void LoadQuestAreaTriggers();
void LoadQuestGreetings();
void LoadAreaTriggerScripts(); void LoadAreaTriggerScripts();
void LoadTavernAreaTriggers(); void LoadTavernAreaTriggers();
void LoadGameObjectForQuests(); void LoadGameObjectForQuests();
@@ -1206,6 +1228,13 @@ class TC_GAME_API ObjectMgr
GameObjectData& NewGOData(ObjectGuid::LowType guid) { return _gameObjectDataStore[guid]; } GameObjectData& NewGOData(ObjectGuid::LowType guid) { return _gameObjectDataStore[guid]; }
void DeleteGOData(ObjectGuid::LowType guid); void DeleteGOData(ObjectGuid::LowType guid);
QuestGreetingLocale const* GetQuestGreetingLocale(uint32 id) const
{
QuestGreetingLocaleContainer::const_iterator itr = _questGreetingLocaleStore.find(id);
if (itr == _questGreetingLocaleStore.end()) return nullptr;
return &itr->second;
}
TrinityString const* GetTrinityString(uint32 entry) const TrinityString const* GetTrinityString(uint32 entry) const
{ {
TrinityStringContainer::const_iterator itr = _trinityStringStore.find(entry); TrinityStringContainer::const_iterator itr = _trinityStringStore.find(entry);
@@ -1414,6 +1443,7 @@ class TC_GAME_API ObjectMgr
TavernAreaTriggerContainer _tavernAreaTriggerStore; TavernAreaTriggerContainer _tavernAreaTriggerStore;
GameObjectForQuestContainer _gameObjectForQuestStore; GameObjectForQuestContainer _gameObjectForQuestStore;
GossipTextContainer _gossipTextStore; GossipTextContainer _gossipTextStore;
QuestGreetingContainer _questGreetingStore;
AreaTriggerContainer _areaTriggerStore; AreaTriggerContainer _areaTriggerStore;
AreaTriggerScriptContainer _areaTriggerScriptStore; AreaTriggerScriptContainer _areaTriggerScriptStore;
AccessRequirementContainer _accessRequirementStore; AccessRequirementContainer _accessRequirementStore;
@@ -1518,6 +1548,7 @@ class TC_GAME_API ObjectMgr
PageTextLocaleContainer _pageTextLocaleStore; PageTextLocaleContainer _pageTextLocaleStore;
GossipMenuItemsLocaleContainer _gossipMenuItemsLocaleStore; GossipMenuItemsLocaleContainer _gossipMenuItemsLocaleStore;
PointOfInterestLocaleContainer _pointOfInterestLocaleStore; PointOfInterestLocaleContainer _pointOfInterestLocaleStore;
QuestGreetingLocaleContainer _questGreetingLocaleStore;
TrinityStringContainer _trinityStringStore; TrinityStringContainer _trinityStringStore;
+5 -1
View File
@@ -1562,6 +1562,7 @@ void World::SetInitialWorldSettings()
sObjectMgr->LoadPageTextLocales(); sObjectMgr->LoadPageTextLocales();
sObjectMgr->LoadGossipMenuItemsLocales(); sObjectMgr->LoadGossipMenuItemsLocales();
sObjectMgr->LoadPointOfInterestLocales(); sObjectMgr->LoadPointOfInterestLocales();
sObjectMgr->LoadQuestGreetingsLocales();
sObjectMgr->SetDBCLocaleIndex(GetDefaultDbcLocale()); // Get once for all the locale index of DBC language (console/broadcasts) sObjectMgr->SetDBCLocaleIndex(GetDefaultDbcLocale()); // Get once for all the locale index of DBC language (console/broadcasts)
TC_LOG_INFO("server.loading", ">> Localization strings loaded in %u ms", GetMSTimeDiffToNow(oldMSTime)); TC_LOG_INFO("server.loading", ">> Localization strings loaded in %u ms", GetMSTimeDiffToNow(oldMSTime));
@@ -1676,7 +1677,7 @@ void World::SetInitialWorldSettings()
TC_LOG_INFO("server.loading", "Loading Gameobject Data..."); TC_LOG_INFO("server.loading", "Loading Gameobject Data...");
sObjectMgr->LoadGameobjects(); sObjectMgr->LoadGameobjects();
TC_LOG_INFO("server.loading", "Loading GameObject Addon Data..."); TC_LOG_INFO("server.loading", "Loading GameObject Addon Data...");
sObjectMgr->LoadGameObjectAddons(); // must be after LoadGameObjectTemplate() and LoadGameobjects() sObjectMgr->LoadGameObjectAddons(); // must be after LoadGameObjectTemplate() and LoadGameobjects()
@@ -1704,6 +1705,9 @@ void World::SetInitialWorldSettings()
TC_LOG_INFO("server.loading", "Loading Quests Starters and Enders..."); TC_LOG_INFO("server.loading", "Loading Quests Starters and Enders...");
sObjectMgr->LoadQuestStartersAndEnders(); // must be after quest load sObjectMgr->LoadQuestStartersAndEnders(); // must be after quest load
TC_LOG_INFO("server.loading", "Loading Quests Greetings...");
sObjectMgr->LoadQuestGreetings(); // must be loaded after creature_template, gameobject_template tables
TC_LOG_INFO("server.loading", "Loading Objects Pooling Data..."); TC_LOG_INFO("server.loading", "Loading Objects Pooling Data...");
sPoolMgr->LoadFromDB(); sPoolMgr->LoadFromDB();
+20
View File
@@ -122,6 +122,8 @@ public:
{ "pickpocketing_loot_template", rbac::RBAC_PERM_COMMAND_RELOAD_PICKPOCKETING_LOOT_TEMPLATE, true, &HandleReloadLootTemplatesPickpocketingCommand, "" }, { "pickpocketing_loot_template", rbac::RBAC_PERM_COMMAND_RELOAD_PICKPOCKETING_LOOT_TEMPLATE, true, &HandleReloadLootTemplatesPickpocketingCommand, "" },
{ "points_of_interest", rbac::RBAC_PERM_COMMAND_RELOAD_POINTS_OF_INTEREST, true, &HandleReloadPointsOfInterestCommand, "" }, { "points_of_interest", rbac::RBAC_PERM_COMMAND_RELOAD_POINTS_OF_INTEREST, true, &HandleReloadPointsOfInterestCommand, "" },
{ "prospecting_loot_template", rbac::RBAC_PERM_COMMAND_RELOAD_PROSPECTING_LOOT_TEMPLATE, true, &HandleReloadLootTemplatesProspectingCommand, "" }, { "prospecting_loot_template", rbac::RBAC_PERM_COMMAND_RELOAD_PROSPECTING_LOOT_TEMPLATE, true, &HandleReloadLootTemplatesProspectingCommand, "" },
{ "quest_greeting", rbac::RBAC_PERM_COMMAND_RELOAD_QUEST_GREETING, true, &HandleReloadQuestGreetingCommand, "" },
{ "quest_greeting_locale", rbac::RBAC_PERM_COMMAND_RELOAD_QUEST_GREETING_LOCALE, true, &HandleReloadLocalesQuestGreetingCommand, "" },
{ "quest_poi", rbac::RBAC_PERM_COMMAND_RELOAD_QUEST_POI, true, &HandleReloadQuestPOICommand, "" }, { "quest_poi", rbac::RBAC_PERM_COMMAND_RELOAD_QUEST_POI, true, &HandleReloadQuestPOICommand, "" },
{ "quest_template", rbac::RBAC_PERM_COMMAND_RELOAD_QUEST_TEMPLATE, true, &HandleReloadQuestTemplateCommand, "" }, { "quest_template", rbac::RBAC_PERM_COMMAND_RELOAD_QUEST_TEMPLATE, true, &HandleReloadQuestTemplateCommand, "" },
{ "rbac", rbac::RBAC_PERM_COMMAND_RELOAD_RBAC, true, &HandleReloadRBACCommand, "" }, { "rbac", rbac::RBAC_PERM_COMMAND_RELOAD_RBAC, true, &HandleReloadRBACCommand, "" },
@@ -208,6 +210,7 @@ public:
static bool HandleReloadAllAreaCommand(ChatHandler* handler, const char* /*args*/) static bool HandleReloadAllAreaCommand(ChatHandler* handler, const char* /*args*/)
{ {
HandleReloadQuestGreetingCommand(handler, "");
//HandleReloadQuestAreaTriggersCommand(handler, ""); -- reloaded in HandleReloadAllQuestCommand //HandleReloadQuestAreaTriggersCommand(handler, ""); -- reloaded in HandleReloadAllQuestCommand
HandleReloadAreaTriggerTeleportCommand(handler, ""); HandleReloadAreaTriggerTeleportCommand(handler, "");
HandleReloadAreaTriggerTavernCommand(handler, ""); HandleReloadAreaTriggerTavernCommand(handler, "");
@@ -310,6 +313,7 @@ public:
HandleReloadLocalesPageTextCommand(handler, "a"); HandleReloadLocalesPageTextCommand(handler, "a");
HandleReloadLocalesPointsOfInterestCommand(handler, "a"); HandleReloadLocalesPointsOfInterestCommand(handler, "a");
HandleReloadLocalesQuestCommand(handler, "a"); HandleReloadLocalesQuestCommand(handler, "a");
HandleReloadLocalesQuestGreetingCommand(handler, "");
return true; return true;
} }
@@ -515,6 +519,22 @@ public:
return true; return true;
} }
static bool HandleReloadQuestGreetingCommand(ChatHandler* handler, char const* /*args*/)
{
TC_LOG_INFO("misc", "Re-Loading Quest Greeting ...");
sObjectMgr->LoadQuestGreetings();
handler->SendGlobalGMSysMessage("DB table `quest_greeting` reloaded.");
return true;
}
static bool HandleReloadLocalesQuestGreetingCommand(ChatHandler* handler, char const* /*args*/)
{
TC_LOG_INFO("misc", "Re-Loading Quest Greeting locales...");
sObjectMgr->LoadQuestGreetingsLocales();
handler->SendGlobalGMSysMessage("DB table `quest_greeting_locale` reloaded.");
return true;
}
static bool HandleReloadQuestTemplateCommand(ChatHandler* handler, const char* /*args*/) static bool HandleReloadQuestTemplateCommand(ChatHandler* handler, const char* /*args*/)
{ {
TC_LOG_INFO("misc", "Re-Loading Quest Templates..."); TC_LOG_INFO("misc", "Re-Loading Quest Templates...");