Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4

Conflicts:
	src/server/scripts/Commands/cs_misc.cpp
	src/server/scripts/Commands/cs_modify.cpp
	src/server/scripts/Commands/cs_reload.cpp
This commit is contained in:
Vincent-Michael
2013-09-10 19:53:43 +02:00
61 changed files with 3713 additions and 1844 deletions

View File

@@ -0,0 +1,25 @@
/* cs_group.cpp */
SET @id = 472;
-- Add new permissions
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+6;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@id+0 , 'group'),
(@id+1 , 'group leader'),
(@id+2 , 'group disband'),
(@id+3 , 'group remove'),
(@id+4 , 'group join'),
(@id+5 , 'group list'),
(@id+6 , 'group summon');
-- Add permissions to "corresponding Commands Role"
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+6;
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
(4, @id+0),
(4, @id+1),
(4, @id+2),
(4, @id+3),
(4, @id+4),
(4, @id+5),
(4, @id+6);

View File

@@ -0,0 +1,15 @@
/* cs_modify.cpp & cs_debug.cpp only 4.3.4 */
SET @id = 775;
-- Add new permissions
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+13;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@id+0, 'modify currency'),
(@id+1, 'debug phase');
-- Add permissions to "corresponding Commands Role"
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+13;
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
(3, @id+0),
(4, @id+1);

View File

@@ -0,0 +1,19 @@
/* cs_pet.cpp */
SET @id = 479;
-- Add new permissions
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+3;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@id+0 , 'pet'),
(@id+1 , 'pet create'),
(@id+2 , 'pet learn'),
(@id+3 , 'pet unlearn');
-- Add permissions to "corresponding Commands Role"
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+3;
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
(3, @id+0),
(3, @id+1),
(3, @id+2),
(3, @id+3);

View File

@@ -0,0 +1,21 @@
/* cs_send.cpp */
SET @id = 483;
-- Add new permissions
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+4;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@id+0 , 'send'),
(@id+1 , 'send items'),
(@id+2 , 'send mail'),
(@id+3 , 'send message'),
(@id+4 , 'send money');
-- Add permissions to "corresponding Commands Role"
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+4;
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
(2, @id+0),
(2, @id+1),
(3, @id+2),
(3, @id+3),
(3, @id+4);

View File

@@ -0,0 +1,107 @@
/* cs_misc.cpp */
SET @id = 488;
-- Add new permissions
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+47;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@id+0, 'additem'),
(@id+1, 'additemset'),
(@id+2, 'appear'),
(@id+3, 'aura'),
(@id+4, 'bank'),
(@id+5, 'bindsight'),
(@id+6, 'combatstop'),
(@id+7, 'cometome'),
(@id+8, 'commands'),
(@id+9, 'cooldown'),
(@id+10, 'damage'),
(@id+11, 'dev'),
(@id+12, 'die'),
(@id+13, 'dismount'),
(@id+14, 'distance'),
(@id+15, 'flusharenapoints'),
(@id+16, 'freeze'),
(@id+17, 'gps'),
(@id+18, 'guid'),
(@id+19, 'help'),
(@id+20, 'hidearea'),
(@id+21, 'itemmove'),
(@id+22, 'kick'),
(@id+23, 'linkgrave'),
(@id+24, 'listfreeze'),
(@id+25, 'maxskill'),
(@id+26, 'movegens'),
(@id+27, 'mute'),
(@id+28, 'neargrave'),
(@id+29, 'pinfo'),
(@id+30, 'playall'),
(@id+31, 'possess'),
(@id+32, 'recall'),
(@id+33, 'repairitems'),
(@id+34, 'respawn'),
(@id+35, 'revive'),
(@id+36, 'saveall'),
(@id+37, 'save'),
(@id+38, 'setskill'),
(@id+39, 'showarea'),
(@id+40, 'summon'),
(@id+41, 'unaura'),
(@id+42, 'unbindsight'),
(@id+43, 'unfreeze'),
(@id+44, 'unmute'),
(@id+45, 'unpossess'),
(@id+46, 'unstuck'),
(@id+47, 'wchange');
-- Add permissions to "corresponding Commands Role"
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+47;
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
(4, @id+0),
(4, @id+1),
(2, @id+2),
(4, @id+3),
(4, @id+4),
(4, @id+5),
(3, @id+6),
(4, @id+7),
(1, @id+8),
(4, @id+9),
(4, @id+10),
(4, @id+11),
(4, @id+12),
(1, @id+13),
(4, @id+14),
(4, @id+15),
(2, @id+16),
(4, @id+17),
(3, @id+18),
(1, @id+19),
(4, @id+20),
(3, @id+21),
(3, @id+22),
(4, @id+23),
(2, @id+24),
(4, @id+25),
(4, @id+26),
(2, @id+27),
(4, @id+28),
(3, @id+29),
(3, @id+30),
(4, @id+31),
(2, @id+32),
(3, @id+33),
(4, @id+34),
(4, @id+35),
(2, @id+36),
(1, @id+37),
(4, @id+38),
(4, @id+39),
(2, @id+40),
(4, @id+41),
(4, @id+42),
(2, @id+43),
(2, @id+44),
(4, @id+45),
(1, @id+46),
(4, @id+47);

View File

@@ -0,0 +1,23 @@
/* cs_mmaps.cpp */
SET @id = 536;
-- Add new permissions
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+5;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@id+0, 'mmap'),
(@id+1, 'mmap loadedtiles'),
(@id+2, 'mmap loc'),
(@id+3, 'mmap path'),
(@id+4, 'mmap stats'),
(@id+5, 'mmap testarea');
-- Add permissions to "corresponding Commands Role"
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+5;
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
(4, @id+0),
(4, @id+1),
(4, @id+2),
(4, @id+3),
(4, @id+4),
(4, @id+5);

View File

@@ -0,0 +1,68 @@
/* cs_modify.cpp */
SET @id = 542;
-- Add new permissions
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+27;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@id+0, 'morph'),
(@id+1, 'demorph'),
(@id+2, 'modify'),
(@id+3, 'modify arenapoints'),
(@id+4, 'modify bit'),
(@id+5, 'modify drunk'),
(@id+6, 'modify energy'),
(@id+7, 'modify faction'),
(@id+8, 'modify gender'),
(@id+9, 'modify honor'),
(@id+10, 'modify hp'),
(@id+11, 'modify mana'),
(@id+12, 'modify money'),
(@id+13, 'modify mount'),
(@id+14, 'modify phase'),
(@id+15, 'modify rage'),
(@id+16, 'modify reputation'),
(@id+17, 'modify runicpower'),
(@id+18, 'modify scale'),
(@id+19, 'modify speed'),
(@id+20, 'modify speed all'),
(@id+21, 'modify speed backwalk'),
(@id+22, 'modify speed fly'),
(@id+23, 'modify speed walk'),
(@id+24, 'modify speed swim'),
(@id+25, 'modify spell'),
(@id+26, 'modify standstate'),
(@id+27, 'modify talentpoints');
-- Add permissions to "corresponding Commands Role"
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+27;
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
(3, @id+0),
(3, @id+1),
(2, @id+2),
(2, @id+3),
(2, @id+4),
(2, @id+5),
(2, @id+6),
(2, @id+7),
(3, @id+8),
(2, @id+9),
(2, @id+10),
(2, @id+11),
(2, @id+12),
(2, @id+13),
(4, @id+14),
(2, @id+15),
(3, @id+16),
(2, @id+17),
(2, @id+18),
(2, @id+19),
(2, @id+20),
(2, @id+21),
(2, @id+22),
(2, @id+23),
(2, @id+24),
(2, @id+25),
(3, @id+26),
(2, @id+27);

View File

@@ -0,0 +1,75 @@
/* cs_npc.cpp */
SET @id = 570;
-- Add new permissions
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+31;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@id+0, 'npc'),
(@id+1, 'npc add'),
(@id+2, 'npc add formation'),
(@id+3, 'npc add item'),
(@id+4, 'npc add move'),
(@id+5, 'npc add temp'),
(@id+6, 'npc add delete'),
(@id+7, 'npc add delete item'),
(@id+8, 'npc add follow'),
(@id+9, 'npc add follow stop'),
(@id+10, 'npc set'),
(@id+11, 'npc set allowmove'),
(@id+12, 'npc set entry'),
(@id+13, 'npc set factionid'),
(@id+14, 'npc set flag'),
(@id+15, 'npc set level'),
(@id+16, 'npc set link'),
(@id+17, 'npc set model'),
(@id+18, 'npc set movetype'),
(@id+19, 'npc set phase'),
(@id+20, 'npc set spawndist'),
(@id+21, 'npc set spawntime'),
(@id+22, 'npc set data'),
(@id+23, 'npc info'),
(@id+24, 'npc near'),
(@id+25, 'npc move'),
(@id+26, 'npc playemote'),
(@id+27, 'npc say'),
(@id+28, 'npc textemote'),
(@id+29, 'npc whisper'),
(@id+30, 'npc yell'),
(@id+31, 'npc tame');
-- Add permissions to "corresponding Commands Role"
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+31;
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
(2, @id+0),
(3, @id+1),
(3, @id+2),
(3, @id+3),
(3, @id+4),
(3, @id+5),
(3, @id+6),
(3, @id+7),
(3, @id+8),
(3, @id+9),
(3, @id+10),
(4, @id+11),
(4, @id+12),
(3, @id+13),
(3, @id+14),
(3, @id+15),
(3, @id+16),
(3, @id+17),
(3, @id+18),
(3, @id+19),
(3, @id+20),
(3, @id+21),
(4, @id+22),
(4, @id+23),
(3, @id+24),
(3, @id+25),
(4, @id+26),
(2, @id+27),
(2, @id+28),
(2, @id+29),
(2, @id+30),
(3, @id+31);

View File

@@ -0,0 +1,21 @@
/* cs_quest.cpp */
SET @id = 602;
-- Add new permissions
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+4;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@id+0, 'quest'),
(@id+1, 'quest add'),
(@id+2, 'quest complete'),
(@id+3, 'quest remove'),
(@id+4, 'quest reward');
-- Add permissions to "corresponding Commands Role"
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+4;
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
(4, @id+0),
(4, @id+1),
(4, @id+2),
(4, @id+3),
(4, @id+4);

View File

@@ -0,0 +1,217 @@
/* cs_reload.cpp */
SET @id = 607;
-- Add new permissions
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+102;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@id+0, 'reload'),
(@id+1, 'reload access_requirement'),
(@id+2, 'reload achievement_criteria_data'),
(@id+3, 'reload achievement_reward'),
(@id+4, 'reload all'),
(@id+5, 'reload all achievement'),
(@id+6, 'reload all area'),
(@id+7, 'reload all eventai'),
(@id+8, 'reload all gossips'),
(@id+9, 'reload all item'),
(@id+10, 'reload all locales'),
(@id+11, 'reload all loot'),
(@id+12, 'reload all npc'),
(@id+13, 'reload all quest'),
(@id+14, 'reload all scripts'),
(@id+15, 'reload all spell'),
(@id+16, 'reload areatrigger_involvedrelation'),
(@id+17, 'reload areatrigger_tavern'),
(@id+18, 'reload areatrigger_teleport'),
(@id+19, 'reload auctions'),
(@id+20, 'reload autobroadcast'),
(@id+21, 'reload command'),
(@id+22, 'reload conditions'),
(@id+23, 'reload config'),
(@id+24, 'reload creature_text'),
(@id+25, 'reload creature_ai_scripts'),
(@id+26, 'reload creature_ai_texts'),
(@id+27, 'reload creature_questender'),
(@id+28, 'reload creature_linked_respawn'),
(@id+29, 'reload creature_loot_template'),
(@id+30, 'reload creature_onkill_reputation'),
(@id+31, 'reload creature_queststarter'),
(@id+32, 'reload creature_summon_groups'),
(@id+33, 'reload creature_template'),
(@id+34, 'reload disables'),
(@id+35, 'reload disenchant_loot_template'),
(@id+36, 'reload event_scripts'),
(@id+37, 'reload fishing_loot_template'),
(@id+38, 'reload game_graveyard_zone'),
(@id+39, 'reload game_tele'),
(@id+40, 'reload gameobject_questender'),
(@id+41, 'reload gameobject_loot_template'),
(@id+42, 'reload gameobject_queststarter'),
(@id+43, 'reload gm_tickets'),
(@id+44, 'reload gossip_menu'),
(@id+45, 'reload gossip_menu_option'),
(@id+46, 'reload item_enchantment_template'),
(@id+47, 'reload item_loot_template'),
(@id+48, 'reload item_set_names'),
(@id+49, 'reload lfg_dungeon_rewards'),
(@id+50, 'reload locales_achievement_reward'),
(@id+51, 'reload locales_creature'),
(@id+52, 'reload locales_creature_text'),
(@id+53, 'reload locales_gameobject'),
(@id+54, 'reload locales_gossip_menu_option'),
(@id+55, 'reload locales_item'),
(@id+56, 'reload locales_item_set_name'),
(@id+57, 'reload locales_npc_text'),
(@id+58, 'reload locales_page_text'),
(@id+59, 'reload locales_points_of_interest'),
(@id+60, 'reload locales_quest'),
(@id+61, 'reload mail_level_reward'),
(@id+62, 'reload mail_loot_template'),
(@id+63, 'reload milling_loot_template'),
(@id+64, 'reload npc_spellclick_spells'),
(@id+65, 'reload npc_trainer'),
(@id+66, 'reload npc_vendor'),
(@id+67, 'reload page_text'),
(@id+68, 'reload pickpocketing_loot_template'),
(@id+69, 'reload points_of_interest'),
(@id+70, 'reload prospecting_loot_template'),
(@id+71, 'reload quest_poi'),
(@id+72, 'reload quest_template'),
(@id+73, 'reload rbac'),
(@id+74, 'reload reference_loot_template'),
(@id+75, 'reload reserved_name'),
(@id+76, 'reload reputation_reward_rate'),
(@id+77, 'reload reputation_spillover_template'),
(@id+78, 'reload skill_discovery_template'),
(@id+79, 'reload skill_extra_item_template'),
(@id+80, 'reload skill_fishing_base_level'),
(@id+81, 'reload skinning_loot_template'),
(@id+82, 'reload smart_scripts'),
(@id+83, 'reload spell_required'),
(@id+84, 'reload spell_area'),
(@id+85, 'reload spell_bonus_data'),
(@id+86, 'reload spell_group'),
(@id+87, 'reload spell_learn_spell'),
(@id+88, 'reload spell_loot_template'),
(@id+89, 'reload spell_linked_spell'),
(@id+90, 'reload spell_pet_auras'),
(@id+91, 'reload spell_proc_event'),
(@id+92, 'reload spell_proc'),
(@id+93, 'reload spell_scripts'),
(@id+94, 'reload spell_target_position'),
(@id+95, 'reload spell_threats'),
(@id+96, 'reload spell_group_stack_rules'),
(@id+97, 'reload trinity_string'),
(@id+98, 'reload warden_action'),
(@id+99, 'reload waypoint_scripts'),
(@id+100, 'reload waypoint_data'),
(@id+101, 'reload vehicle_accessory'),
(@id+102, 'reload vehicle_template_accessory');
-- Add permissions to "corresponding Commands Role"
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+102;
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
(4, @id+0),
(4, @id+1),
(4, @id+2),
(4, @id+3),
(4, @id+4),
(4, @id+5),
(4, @id+6),
(4, @id+7),
(4, @id+8),
(4, @id+9),
(4, @id+10),
(4, @id+11),
(4, @id+12),
(4, @id+13),
(4, @id+14),
(4, @id+15),
(4, @id+16),
(4, @id+17),
(4, @id+18),
(4, @id+19),
(4, @id+20),
(4, @id+21),
(4, @id+22),
(4, @id+23),
(4, @id+24),
(4, @id+25),
(4, @id+26),
(4, @id+27),
(4, @id+28),
(4, @id+29),
(4, @id+30),
(4, @id+31),
(4, @id+32),
(4, @id+33),
(4, @id+34),
(4, @id+35),
(4, @id+36),
(4, @id+37),
(4, @id+38),
(4, @id+39),
(4, @id+40),
(4, @id+41),
(4, @id+42),
(4, @id+43),
(4, @id+44),
(4, @id+45),
(4, @id+46),
(4, @id+47),
(4, @id+48),
(4, @id+49),
(4, @id+50),
(4, @id+51),
(4, @id+52),
(4, @id+53),
(4, @id+54),
(4, @id+55),
(4, @id+56),
(4, @id+57),
(4, @id+58),
(4, @id+59),
(4, @id+60),
(4, @id+61),
(4, @id+62),
(4, @id+63),
(4, @id+64),
(4, @id+65),
(4, @id+66),
(4, @id+67),
(4, @id+68),
(4, @id+69),
(4, @id+70),
(4, @id+71),
(4, @id+72),
(4, @id+73),
(4, @id+74),
(4, @id+75),
(4, @id+76),
(4, @id+77),
(4, @id+78),
(4, @id+79),
(4, @id+80),
(4, @id+81),
(4, @id+82),
(4, @id+83),
(4, @id+84),
(4, @id+85),
(4, @id+86),
(4, @id+87),
(4, @id+88),
(4, @id+89),
(4, @id+90),
(4, @id+91),
(4, @id+92),
(4, @id+93),
(4, @id+94),
(4, @id+95),
(4, @id+96),
(4, @id+97),
(4, @id+98),
(4, @id+99),
(4, @id+100),
(4, @id+101),
(4, @id+102);

View File

@@ -0,0 +1,27 @@
/* cs_reset.cpp */
SET @id = 710;
-- Add new permissions
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+7;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@id+0, 'reset'),
(@id+1, 'reset achievements'),
(@id+2, 'reset honor'),
(@id+3, 'reset level'),
(@id+4, 'reset spells'),
(@id+5, 'reset stats'),
(@id+6, 'reset talents'),
(@id+7, 'reset all');
-- Add permissions to "corresponding Commands Role"
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+7;
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
(4, @id+0),
(4, @id+1),
(4, @id+2),
(4, @id+3),
(4, @id+4),
(4, @id+5),
(4, @id+6),
(4, @id+7);

View File

@@ -0,0 +1,46 @@
/* cs_server.cpp */
SET @id = 718;
-- Add new permissions
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+18;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@id+0, 'server'),
(@id+1, 'server corpses'),
(@id+2, 'server exit'),
(@id+3, 'server idlerestart'),
(@id+4, 'server idlerestart cancel'),
(@id+5, 'server idleshutdown'),
(@id+6, 'server idleshutdown cancel'),
(@id+7, 'server info'),
(@id+8, 'server plimit'),
(@id+9, 'server restart'),
(@id+10, 'server restart cancel'),
(@id+11, 'server set'),
(@id+12, 'server set closed'),
(@id+13, 'server set difftime'),
(@id+14, 'server set loglevel'),
(@id+15, 'server set motd'),
(@id+16, 'server shutdown'),
(@id+17, 'server shutdown cancel'),
(@id+18, 'server motd');
-- Add permissions to "corresponding Commands Role"
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+18;
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
(4, @id+0),
(4, @id+1),
(4, @id+3),
(4, @id+4),
(4, @id+5),
(4, @id+6),
(4, @id+7),
(4, @id+8),
(4, @id+9),
(4, @id+10),
(4, @id+11),
(4, @id+12),
(4, @id+15),
(4, @id+16),
(4, @id+17),
(4, @id+18);

View File

@@ -0,0 +1,21 @@
/* cs_tele.cpp */
SET @id = 737;
-- Add new permissions
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+4;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@id+0, 'tele'),
(@id+1, 'tele add'),
(@id+2, 'tele del'),
(@id+3, 'tele name'),
(@id+4, 'tele group');
-- Add permissions to "corresponding Commands Role"
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+4;
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
(2, @id+0),
(4, @id+1),
(4, @id+2),
(2, @id+3),
(2, @id+4);

View File

@@ -0,0 +1,49 @@
/* cs_ticket.cpp */
SET @id = 742;
-- Add new permissions
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+18;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@id+0, 'ticket'),
(@id+1, 'ticket assign'),
(@id+2, 'ticket close'),
(@id+3, 'ticket closedlist'),
(@id+4, 'ticket comment'),
(@id+5, 'ticket complete'),
(@id+6, 'ticket delete'),
(@id+7, 'ticket escalate'),
(@id+8, 'ticket escalatedlist'),
(@id+9, 'ticket list'),
(@id+10, 'ticket onlinelist'),
(@id+11, 'ticket reset'),
(@id+12, 'ticket response'),
(@id+13, 'ticket response append'),
(@id+14, 'ticket response appendln'),
(@id+15, 'ticket togglesystem'),
(@id+16, 'ticket unassign'),
(@id+17, 'ticket viewid'),
(@id+18, 'ticket viewname');
-- Add permissions to "corresponding Commands Role"
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+18;
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
(2, @id+0),
(3, @id+1),
(2, @id+2),
(2, @id+3),
(2, @id+4),
(2, @id+5),
(4, @id+6),
(2, @id+7),
(3, @id+8),
(2, @id+9),
(2, @id+10),
(4, @id+11),
(2, @id+12),
(2, @id+13),
(2, @id+14),
(4, @id+15),
(3, @id+16),
(2, @id+17),
(2, @id+18);

View File

@@ -0,0 +1,39 @@
/* cs_titles.cpp & cs_wp.cpp */
SET @id = 761;
-- Add new permissions
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+13;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@id+0, 'titles'),
(@id+1, 'titles add'),
(@id+2, 'titles current'),
(@id+3, 'titles remove'),
(@id+4, 'titles set'),
(@id+5, 'titles set mask'),
(@id+6, 'wp'),
(@id+7, 'wp add'),
(@id+8, 'wp event'),
(@id+9, 'wp load'),
(@id+10, 'wp modify'),
(@id+11, 'wp unload'),
(@id+12, 'wp reload'),
(@id+13, 'wp show');
-- Add permissions to "corresponding Commands Role"
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+13;
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
(3, @id+0),
(3, @id+1),
(3, @id+2),
(3, @id+3),
(3, @id+4),
(3, @id+5),
(3, @id+6),
(3, @id+7),
(3, @id+8),
(3, @id+9),
(3, @id+10),
(3, @id+11),
(4, @id+12),
(3, @id+13);

View File

@@ -0,0 +1,4 @@
-- Remove obsolete permissions
DELETE FROM `rbac_role_permissions` WHERE `permissionId` IN (7, 8, 9, 10, 12);
DELETE FROM `rbac_permissions` WHERE `id` IN (7, 8, 9, 10, 12);

View File

@@ -0,0 +1,92 @@
/* account email */
SET @amail = 263;
-- Add new permissions for account mail
DELETE FROM `rbac_permissions` WHERE `id` = @amail;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@amail, 'account email');
-- Add permissions to "corresponding Commands Role"
DELETE FROM `rbac_role_permissions` WHERE `permissionId` = @amail;
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
(1, @amail),
(2, @amail),
(3, @amail),
(4, @amail);
/* account set sec email
account set sec regmail */
SET @setsec = 264;
-- Add new permissions for account set sec
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @setsec AND @setsec+2;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@setsec+0, 'account set sec'),
(@setsec+1, 'account set sec email'),
(@setsec+2, 'account set sec regmail');
-- Add permissions to "corresponding Commands Role"
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @setsec AND @setsec+2;
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
(4, @setsec+0),
(4, @setsec+1),
(4, @setsec+2);
/* cs_cast.cpp */
SET @id = 267;
-- Add new permissions
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+5;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@id+0, 'cast'),
(@id+1, 'cast back'),
(@id+2, 'cast dist'),
(@id+3, 'cast self'),
(@id+4, 'cast target'),
(@id+5, 'cast dest');
-- Add permissions to "corresponding Commands Role"
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+5;
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
(4, @id+0),
(4, @id+1),
(4, @id+2),
(4, @id+3),
(4, @id+4),
(4, @id+5);
/* cs_go.cpp */
SET @id = 377;
-- Add new permissions
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+9;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@id+0, 'go'),
(@id+1, 'go creature'),
(@id+2, 'go graveyard'),
(@id+3, 'go grid'),
(@id+4, 'go object'),
(@id+5, 'go taxinode'),
(@id+6, 'go ticket'),
(@id+7, 'go trigger'),
(@id+8, 'go xyz'),
(@id+9, 'go zonexy');
-- Add permissions to "corresponding Commands Role"
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+9;
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
(2, @id+0),
(2, @id+1),
(2, @id+2),
(2, @id+3),
(2, @id+4),
(2, @id+5),
(2, @id+6),
(2, @id+7),
(2, @id+8),
(2, @id+9);
UPDATE `rbac_permissions` SET `name`='bf enable' WHERE `id`=262;

View File

@@ -1,16 +1,16 @@
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = 201 WHERE `name` = '.rbac account';
UPDATE `command` SET `permission` = 202 WHERE `name` = '.rbac account group';
UPDATE `command` SET `permission` = 203 WHERE `name` = '.rbac account group add';
UPDATE `command` SET `permission` = 204 WHERE `name` = '.rbac account group remove';
UPDATE `command` SET `permission` = 205 WHERE `name` = '.rbac account role';
UPDATE `command` SET `permission` = 206 WHERE `name` = '.rbac account role grant';
UPDATE `command` SET `permission` = 207 WHERE `name` = '.rbac account role deny';
UPDATE `command` SET `permission` = 208 WHERE `name` = '.rbac account role revoke';
UPDATE `command` SET `permission` = 209 WHERE `name` = '.rbac account permission';
UPDATE `command` SET `permission` = 210 WHERE `name` = '.rbac account permission grant';
UPDATE `command` SET `permission` = 211 WHERE `name` = '.rbac account permission deny';
UPDATE `command` SET `permission` = 212 WHERE `name` = '.rbac account permission revoke';
UPDATE `command` SET `permission` = 214 WHERE `name` = '.rbac account list groups';
UPDATE `command` SET `permission` = 215 WHERE `name` = '.rbac account list roles';
UPDATE `command` SET `permission` = 216 WHERE `name` = '.rbac account list permissions';
UPDATE `command` SET `permission` = 201 WHERE `name` = 'rbac account';
UPDATE `command` SET `permission` = 202 WHERE `name` = 'rbac account group';
UPDATE `command` SET `permission` = 203 WHERE `name` = 'rbac account group add';
UPDATE `command` SET `permission` = 204 WHERE `name` = 'rbac account group remove';
UPDATE `command` SET `permission` = 205 WHERE `name` = 'rbac account role';
UPDATE `command` SET `permission` = 206 WHERE `name` = 'rbac account role grant';
UPDATE `command` SET `permission` = 207 WHERE `name` = 'rbac account role deny';
UPDATE `command` SET `permission` = 208 WHERE `name` = 'rbac account role revoke';
UPDATE `command` SET `permission` = 209 WHERE `name` = 'rbac account permission';
UPDATE `command` SET `permission` = 210 WHERE `name` = 'rbac account permission grant';
UPDATE `command` SET `permission` = 211 WHERE `name` = 'rbac account permission deny';
UPDATE `command` SET `permission` = 212 WHERE `name` = 'rbac account permission revoke';
UPDATE `command` SET `permission` = 214 WHERE `name` = 'rbac account list groups';
UPDATE `command` SET `permission` = 215 WHERE `name` = 'rbac account list roles';
UPDATE `command` SET `permission` = 216 WHERE `name` = 'rbac account list permissions';

View File

@@ -0,0 +1,15 @@
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry` IN (30135,30144,29974);
DELETE FROM `smart_scripts` WHERE entryorguid IN (30135,30144,29974);
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
-- Niffelem Forefather
(29974, 0, 0, 0, 0, 0, 100, 0, 1000, 5000, 8000, 13000, 11, 57454, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Niffelem Forefather - IC - Cast Ice Spike'),
(29974, 0, 1, 2, 8, 0, 100, 0, 55983, 0, 0, 0, 33, 30138, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Niffelem Forefather - On Spellhit - Give Kill Credit'),
(29974, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Niffelem Forefather - Linked with Previous Event Despawn'),
-- Restless Frostborn Warrior
(30135, 0, 0, 0, 0, 0, 100, 0, 1000, 5000, 8000, 13000, 11, 57456, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Restless Frostborn Warrior - IC - Cast Frostbite'),
(30135, 0, 1, 2, 8, 0, 100, 0, 55983, 0, 0, 0, 33, 30139, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Restless Frostborn Warrior - On Spellhit - Give Kill Credit'),
(30135, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Restless Frostborn Warrior - Linked with Previous Event Despawn'),
-- Restless Frostborn Ghost
(30144, 0, 0, 0, 0, 0, 100, 0, 1000, 5000, 8000, 13000, 11, 57456, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Restless Frostborn Ghost - IC - Cast Frostbite'),
(30144, 0, 1, 2, 8, 0, 100, 0, 55983, 0, 0, 0, 33, 30139, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Restless Frostborn Ghost - On Spellhit - Give Kill Credit'),
(30144, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Restless Frostborn Ghost - Linked with Previous Event Despawn');

View File

@@ -0,0 +1,7 @@
/* cs_modify.cpp & cs_debug.cpp only 4.3.4 */
SET @id = 775;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'modify currency';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'debug phase';

View File

@@ -0,0 +1,8 @@
DELETE FROM `conditions` WHERE `SourceEntry` = 55983;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(17, 0, 55983, 0, 0, 31, 1, 3, 29974, 0, 0, 0, 0, '', 'Blow Hodir''s Horn can hit Niffelem Forefather'),
(17, 0, 55983, 0, 0, 36, 1, 0, 0, 0, 1, 0, 0, '', 'Blow Hodir''s Horn can only hit dead Niffelem Forefather'),
(17, 0, 55983, 0, 1, 31, 1, 3, 30144, 0, 0, 0, 0, '', 'Blow Hodir''s Horn can hit Restless Frostborn Ghost'),
(17, 0, 55983, 0, 1, 36, 1, 0, 0, 0, 1, 0, 0, '', 'Blow Hodir''s Horn can only hit dead Restless Frostborn Ghost'),
(17, 0, 55983, 0, 2, 31, 1, 3, 30135, 0, 0, 0, 0, '', 'Blow Hodir''s Horn can hit Restless Frostborn Warrior'),
(17, 0, 55983, 0, 2, 36, 1, 0, 0, 0, 1, 0, 0, '', 'Blow Hodir''s Horn can only hit dead Restless Frostborn Warrior');

View File

@@ -0,0 +1,15 @@
/* cs_group.cpp */
SET @id = 472;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'group';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'group leader';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'group disband';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'group remove';
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'group join';
UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'group list';
UPDATE `command` SET `permission` = @id+6, `name` = 'group summon', `help` =
'Syntax: .group summon [$charactername]\r\n\r\nTeleport the given character and his group to you. Teleported only online characters but original selected group member can be offline.'
WHERE `name` = 'groupsummon';

View File

@@ -0,0 +1,9 @@
/* cs_pet.cpp */
SET @id = 479;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'pet';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'pet create';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'pet learn';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'pet unlearn';

View File

@@ -0,0 +1,136 @@
-- Test Flight Quests
-- 10557 - The Zephyrium Capacitorium(part 1)
-- 10710 - The Singing Ridge(part 2)
-- 10711 - Razaan's Landing
-- 10712 - Ruuan Weald
SET @ENTRY := 21461; -- Rally Zapnabber
SET @ENTRY2 := 21393; -- Cannon Channeler Dummy npc
SET @BEAM := 36795; -- Cannon Channel(dnd) - Visual cannon beam
SET @MENUID := 8304; -- Gossip
SET @A_MENU := 8454; -- Action Gossip
SET @A_MENU2 := 8455; -- Action Gossip 2
SET @OPTION := 0;
SET @SPEACH := 10360; -- Text 1
SET @SPEACH2 := 10561; -- Text 2
-- Disable obsolete quest
DELETE FROM `disables` WHERE `entry`=10716;
INSERT INTO `disables` (`sourceType`, `entry`, `flags`, `params_0`, `params_1`, `comment`) VALUES
(1,10716,0,'','','Deprecated quest Test Flight: Raven''s Wood');
-- Make Canon Channeler float & Update position to match cannon
UPDATE `creature_template` SET `InhabitType`=4, `modelid1`= 11686 ,`modelid2`=0 WHERE `entry`=@ENTRY2;
UPDATE `creature` SET `position_x`=1924.6457, `position_y`= 5575.660, `position_z`=272.1429 WHERE `guid`=74872;-- Gossip & menus 1924.1457, 5575.647, 272.1429
UPDATE `creature_template` SET `gossip_menu_id`=@MENUID, `AIName`= 'SmartAI' WHERE `entry`=@ENTRY;
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=@ENTRY2;
DELETE FROM `gossip_menu` WHERE `entry` IN (@MENUID,@A_MENU);
INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES
(@MENUID,@SPEACH),
(@A_MENU,@SPEACH2);
DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (@MENUID,@A_MENU2,@A_MENU);
INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`) VALUES
(@MENUID,@OPTION+0,0,'I''m ready for my test flight!',1,1,0,0,0,0,''), -- Test Flight: The Zephyrium Capacitorium
(@MENUID,@OPTION+1,0,'Take me to Singing Ridge!',1,1,@A_MENU,0,0,0,''), -- Test Flight: The Singing Ridge
(@MENUID,@OPTION+2,0,'Take me to Razaan''s Landing!',1,1,0,0,0,0,''), -- Test Flight: Razaan's Landing
(@MENUID,@OPTION+3,0,'Take me to Ruuan Weald!',1,1,0,0,0,0,''), -- Test Flight: Ruuan Weald
(@MENUID,@OPTION+4,0,'I want to fly to an old location!',1,1,@A_MENU2,0,0,0,''), -- Old locations from completed quests
(@A_MENU2,@OPTION+1,0,'Take me to Singing Ridge.',1,1,0,0,0,0,''),
(@A_MENU2,@OPTION+2,0,'Take me to Razaan''s Landing.',1,1,0,0,0,0,''),
(@A_MENU2,@OPTION+3,0,'Take me to Ruuan Weald.',1,1,0,0,0,0,''),
(@A_MENU,@OPTION+0,0,'I have the signed Waiver! Fire me into The Singing Ridge!',1,1,0,0,0,0,'');
-- Fix teleport spell position
DELETE FROM `spell_target_position` WHERE `Id` IN(37908,24831);
INSERT INTO `spell_target_position` (`id`, `effIndex`, `target_map`, `target_position_x`, `target_position_y`, `target_position_z`, `target_orientation`) VALUES
(24831, 0, 530, 1920.07, 5582.04, 269.222, 5.1846);
DELETE FROM `spell_linked_spell` WHERE `spell_trigger`= 37908;
INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comment`) VALUES
(37908, 24831, 0, 'Aura Visual Teleport - teleport');
-- SAI
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@ENTRY,@ENTRY*100,@ENTRY*101,@ENTRY*102,@ENTRY*103,@ENTRY2);
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
(@ENTRY,0,0,1,62,0,100,0,@MENUID,@OPTION+0,0,0,80,@ENTRY*100,0,0,0,0,0,1,0,0,0,0,0,0,0,'Rally Zapnabber - On gossip option select - Run script'),
(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Rally Zapnabber - On gossip option select - Close gossip'),
(@ENTRY,0,2,3,62,0,100,0,@A_MENU,@OPTION+0,0,0,80,@ENTRY*101,0,0,0,0,0,1,0,0,0,0,0,0,0,'Rally Zapnabber - On gossip option select - Run script'),
(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Rally Zapnabber - On gossip option select - Close gossip'),
(@ENTRY,0,4,5,62,0,100,0,@MENUID,@OPTION+2,0,0,80,@ENTRY*102,0,0,0,0,0,1,0,0,0,0,0,0,0,'Rally Zapnabber - On gossip option select - Run script'),
(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Rally Zapnabber - On gossip option select - Close gossip'),
(@ENTRY,0,6,7,62,0,100,0,@MENUID,@OPTION+3,0,0,80,@ENTRY*103,0,0,0,0,0,1,0,0,0,0,0,0,0,'Rally Zapnabber - On gossip option select - Run script'),
(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Rally Zapnabber - On gossip option select - Close gossip'),
(@ENTRY,0,8,9,62,0,100,0,@A_MENU2,@OPTION+1,0,0,80,@ENTRY*101,0,0,0,0,0,1,0,0,0,0,0,0,0,'Rally Zapnabber - On gossip option select - Run script'),
(@ENTRY,0,9,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Rally Zapnabber - On gossip option select - Close gossip'),
(@ENTRY,0,10,11,62,0,100,0,@A_MENU2,@OPTION+2,0,0,80,@ENTRY*102,0,0,0,0,0,1,0,0,0,0,0,0,0,'Rally Zapnabber - On gossip option select - Run script'),
(@ENTRY,0,11,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Rally Zapnabber - On gossip option select - Close gossip'),
(@ENTRY,0,12,13,62,0,100,0,@A_MENU2,@OPTION+3,0,0,80,@ENTRY*103,0,0,0,0,0,1,0,0,0,0,0,0,0,'Rally Zapnabber - On gossip option select - Run script'),
(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Rally Zapnabber - On gossip option select - Close gossip'),
--
(@ENTRY*100,9,0,0,1,0,100,0,2000,2000,2000,2000,85,37908,0,0,0,0,0,7,0,0,0,0,0,0,0,'The Zephyrium Capacitorium - After 2 seconds - Port visual'),
(@ENTRY*100,9,1,0,1,0,100,0,2000,2000,2000,2000,45,1,1,0,0,0,0,10,74872,@ENTRY2,0,0,0,0,0,'The Zephyrium Capacitorium - After 2 seconds - Port visual'),
(@ENTRY*100,9,2,0,1,0,100,0,3000,3000,3000,3000,85,36790,0,0,0,0,0,7,0,0,0,0,0,0,0,'The Zephyrium Capacitorium - OOC Update - Invoker,cast charge state 2'),
(@ENTRY*100,9,3,0,1,0,100,0,3000,3000,3000,3000,85,36792,0,0,0,0,0,7,0,0,0,0,0,0,0,'The Zephyrium Capacitorium - OOC Update - Invoker,cast charge state 3'),
(@ENTRY*100,9,4,0,1,0,100,0,3000,3000,3000,3000,85,36800,0,0,0,0,0,7,0,0,0,0,0,0,0,'The Zephyrium Capacitorium - OOC Update - Invoker,cast charge state 4'),
(@ENTRY*100,9,5,0,1,0,100,0,3000,3000,3000,3000,85,37910,0,0,0,0,0,7,0,0,0,0,0,0,0,'The Zephyrium Capacitorium - OOC Update - Invoker,cast Soar&Credit'),
(@ENTRY*100,9,6,0,1,0,100,0,0,0,0,0,85,37108,0,0,0,0,0,7,0,0,0,0,0,0,0,'The Zephyrium Capacitorium - OOC Update - Invoker,cast Debuff'),
--
(@ENTRY*101,9,0,0,1,0,100,0,2000,2000,2000,2000,85,37908,0,0,0,0,0,7,0,0,0,0,0,0,0,'The Singing Ridge - After 2 seconds - Port visual'),
(@ENTRY*101,9,1,0,1,0,100,0,2000,2000,2000,2000,45,1,1,0,0,0,0,10,74872,@ENTRY2,0,0,0,0,0,'The Zephyrium Capacitorium - After 2 seconds - Set Data on Channeler'),
(@ENTRY*101,9,2,0,1,0,100,0,3000,3000,3000,3000,85,36790,0,0,0,0,0,7,0,0,0,0,0,0,0,'The Singing Ridge - OOC Update - Invoker,cast charge state 2'),
(@ENTRY*101,9,3,0,1,0,100,0,3000,3000,3000,3000,85,36792,0,0,0,0,0,7,0,0,0,0,0,0,0,'The Singing Ridge - OOC Update - Invoker,cast charge state 3'),
(@ENTRY*101,9,4,0,1,0,100,0,3000,3000,3000,3000,85,36800,0,0,0,0,0,7,0,0,0,0,0,0,0,'The Singing Ridge - OOC Update - Invoker,cast charge state 4'),
(@ENTRY*101,9,5,0,1,0,100,0,3000,3000,3000,3000,85,37962,0,0,0,0,0,7,0,0,0,0,0,0,0,'The Singing Ridge - OOC Update - Invoker,cast Soar&Credit'),
(@ENTRY*101,9,6,0,1,0,100,0,0,0,0,0,85,37108,0,0,0,0,0,7,0,0,0,0,0,0,0,'The Singing Ridge - OOC Update - Invoker,cast Debuff'),
--
(@ENTRY*102,9,0,0,1,0,100,0,2000,2000,2000,2000,85,37908,0,0,0,0,0,7,0,0,0,0,0,0,0,'Razaan''s Landing - After 2 seconds - Port visual'),
(@ENTRY*102,9,1,0,1,0,100,0,2000,2000,2000,2000,45,1,1,0,0,0,0,10,74872,@ENTRY2,0,0,0,0,0,'The Zephyrium Capacitorium - After 2 seconds - Set Data on Channeler'),
(@ENTRY*102,9,2,0,1,0,100,0,3000,3000,3000,3000,85,36790,0,0,0,0,0,7,0,0,0,0,0,0,0,'Razaan''s Landing - OOC Update - Invoker,cast charge state 2'),
(@ENTRY*102,9,3,0,1,0,100,0,3000,3000,3000,3000,85,36792,0,0,0,0,0,7,0,0,0,0,0,0,0,'Razaan''s Landing - OOC Update - Invoker,cast charge state 3'),
(@ENTRY*102,9,4,0,1,0,100,0,3000,3000,3000,3000,85,36800,0,0,0,0,0,7,0,0,0,0,0,0,0,'Razaan''s Landing - OOC Update - Invoker,cast charge state 4'),
(@ENTRY*102,9,5,0,1,0,100,0,3000,3000,3000,3000,85,36812,0,0,0,0,0,7,0,0,0,0,0,0,0,'Razaan''s Landing - OOC Update - Invoker,cast Soar&Credit'),
(@ENTRY*102,9,6,0,1,0,100,0,0,0,0,0,85,37108,0,0,0,0,0,7,0,0,0,0,0,0,0,'Razaan''s Landing - OOC Update - Invoker,cast Debuff'),
--
(@ENTRY*103,9,0,0,1,0,100,0,2000,2000,2000,2000,85,37908,0,0,0,0,0,7,0,0,0,0,0,0,0,'Ruuan Weald - After 2 seconds - Port visual'),
(@ENTRY*103,9,1,0,1,0,100,0,2000,2000,2000,2000,45,1,1,0,0,0,0,10,74872,@ENTRY2,0,0,0,0,0,'The Zephyrium Capacitorium - After 2 seconds - Set Data on Channeler'),
(@ENTRY*103,9,2,0,1,0,100,0,3000,3000,3000,3000,85,36790,0,0,0,0,0,7,0,0,0,0,0,0,0,'Ruuan Weald - OOC Update - Invoker,cast charge state 2'),
(@ENTRY*103,9,3,0,1,0,100,0,3000,3000,3000,3000,85,36792,0,0,0,0,0,7,0,0,0,0,0,0,0,'Ruuan Weald - OOC Update - Invoker,cast charge state 3'),
(@ENTRY*103,9,4,0,1,0,100,0,3000,3000,3000,3000,85,36800,0,0,0,0,0,7,0,0,0,0,0,0,0,'Ruuan Weald - OOC Update - Invoker,cast charge state 4'),
(@ENTRY*103,9,5,0,1,0,100,0,3000,3000,3000,3000,85,37968,0,0,0,0,0,7,0,0,0,0,0,0,0,'Ruuan Weald - OOC Update - Invoker,cast Soar&Credit'),
(@ENTRY*103,9,6,0,1,0,100,0,0,0,0,0,85,37108,0,0,0,0,0,7,0,0,0,0,0,0,0,'Ruuan Weald - OOC Update - Invoker,cast Debuff'),
--
(@ENTRY2,0,0,0,38,0,100,0,1,1,0,0,11,36795,0,0,0,0,0,1,0,0,0,0,0,0,0,'Beam Channel Bunny - On Data Set - Cast Cannon Beam');
DELETE FROM `conditions` WHERE `SourceEntry`=@BEAM OR `SourceGroup` IN (@MENUID,@A_MENU2,@A_MENU);
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(15, @A_MENU2, 3, 0, 0, 1, 0, 37108, 0, 0, 1, 0, 0, '', 'Show gossip option 3 if player does not have aura Zephyrium Charged'),
(15, @A_MENU2, 3, 0, 0, 8, 0, 10712, 0, 0, 0, 0, 0, '', 'Show gossip option 3 if player has quest Ruuan Weald marked as rewarded'),
(15, @A_MENU2, 2, 0, 0, 8, 0, 10711, 0, 0, 0, 0, 0, '', 'Show gossip option 2 if player has quest Razaan''s Landing marked as rewarded'),
(15, @A_MENU2, 2, 0, 0, 1, 0, 37108, 0, 0, 1, 0, 0, '', 'Show gossip option 2 if player does not have aura Zephyrium Charged'),
(15, @A_MENU2, 1, 0, 0, 1, 0, 37108, 0, 0, 1, 0, 0, '', 'Show gossip option 1 if player does not have aura Zephyrium Charged'),
(15, @A_MENU2, 1, 0, 0, 8, 0, 10710, 0, 0, 0, 0, 0, '', 'Show gossip option 1 if player has quest The Singing Ridge marked as rewarded'),
(15, @A_MENU2, 4, 0, 0, 8, 0, 10557, 0, 0, 0, 0, 0, '', 'Show gossip option 4 if player has quest The Zephyrium Capacitorium marked as rewarded'),
(15, @A_MENU, 0, 0, 0, 2, 0, 30539, 1, 0, 0, 0, 0, '', 'Show gossip option 0 if player has item Tally''s Waiver (Signed)'),
(15, @MENUID, 3, 0, 0, 9, 0, 10712, 0, 0, 0, 0, 0, '', 'Show gossip option 3 if player has quest Ruuan Weald marked as taken'),
(15, @MENUID, 3, 0, 0, 1, 0, 37108, 0, 0, 1, 0, 0, '', 'Show gossip option 3 if player does not have aura Zephyrium Charged'),
(15, @MENUID, 2, 0, 0, 9, 0, 10711, 0, 0, 0, 0, 0, '', 'Show gossip option 2 if player has quest Razaan''s Landing marked as taken'),
(15, @MENUID, 2, 0, 0, 1, 0, 37108, 0, 0, 1, 0, 0, '', 'Show gossip option 2 if player does not have aura Zephyrium Charged'),
(15, @MENUID, 1, 0, 0, 9, 0, 10710, 0, 0, 0, 0, 0, '', 'Show gossip option 1 if player has quest The Singing Ridge marked as taken'),
(15, @MENUID, 1, 0, 0, 1, 0, 37108, 0, 0, 1, 0, 0, '', 'Show gossip option 1 if player does not have aura Zephyrium Charged'),
(15, @MENUID, 0, 0, 0, 9, 0, 10557, 0, 0, 0, 0, 0, '', 'Show gossip option 0 if player has quest The Zephyrium Capacitorium marked as taken'),
(15, @MENUID, 0, 0, 0, 1, 0, 37108, 0, 0, 1, 0, 0, '', 'Show gossip option 0 if player does not have aura Zephyrium Charged'),
--
(13, 1, 36795, 0, 0, 31, 0, 4, 0, 0, 0, 0, 0, '', 'Spell Cannon Channel(dnd) target player');
-- SAI for Rally (Questgiver)
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=21460;
DELETE FROM `smart_scripts` WHERE `entryorguid`=21460;
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
(21460,0,0,1,62,0,100,0,8303,0,0,0,56,30540,1,0,0,0,0,7,0,0,0,0,0,0,0,'Rally Zapnabber - On gossip option select - Give Item '),
(21460,0,1,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Rally Zapnabber - On gossip option select - Close gossip');
DELETE FROM `conditions` WHERE `SourceGroup` = 8303;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(15, 8303, 0, 0, 0, 2, 0, 30540, 1, 1, 1, 0, 0, '', 'Only allow gossip option to be visible if player doesn''t have item'),
(15, 8303, 0, 0, 0, 9, 0, 10710, 0, 0, 0, 0, 0, '', 'Only allow gossip option to be visible if player has quest taken');

View File

@@ -0,0 +1,10 @@
/* cs_send.cpp */
SET @id = 483;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'send';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'send items';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'send mail';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'send message';
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'send money';

View File

@@ -0,0 +1,53 @@
/* cs_misc.cpp */
SET @id = 488;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'additem';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'additemset';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'appear';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'aura';
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'bank';
UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'bindsight';
UPDATE `command` SET `permission` = @id+6 WHERE `name` = 'combatstop';
UPDATE `command` SET `permission` = @id+7 WHERE `name` = 'cometome';
UPDATE `command` SET `permission` = @id+8 WHERE `name` = 'commands';
UPDATE `command` SET `permission` = @id+9 WHERE `name` = 'cooldown';
UPDATE `command` SET `permission` = @id+10 WHERE `name` = 'damage';
UPDATE `command` SET `permission` = @id+11 WHERE `name` = 'dev';
UPDATE `command` SET `permission` = @id+12 WHERE `name` = 'die';
UPDATE `command` SET `permission` = @id+13 WHERE `name` = 'dismount';
UPDATE `command` SET `permission` = @id+14 WHERE `name` = 'distance';
UPDATE `command` SET `permission` = @id+15 WHERE `name` = 'flusharenapoints';
UPDATE `command` SET `permission` = @id+16 WHERE `name` = 'freeze';
UPDATE `command` SET `permission` = @id+17 WHERE `name` = 'gps';
UPDATE `command` SET `permission` = @id+18 WHERE `name` = 'guid';
UPDATE `command` SET `permission` = @id+19 WHERE `name` = 'help';
UPDATE `command` SET `permission` = @id+20 WHERE `name` = 'hidearea';
UPDATE `command` SET `permission` = @id+21 WHERE `name` = 'itemmove';
UPDATE `command` SET `permission` = @id+22 WHERE `name` = 'kick';
UPDATE `command` SET `permission` = @id+23 WHERE `name` = 'linkgrave';
UPDATE `command` SET `permission` = @id+24 WHERE `name` = 'listfreeze';
UPDATE `command` SET `permission` = @id+25 WHERE `name` = 'maxskill';
UPDATE `command` SET `permission` = @id+26 WHERE `name` = 'movegens';
UPDATE `command` SET `permission` = @id+27 WHERE `name` = 'mute';
UPDATE `command` SET `permission` = @id+28 WHERE `name` = 'neargrave';
UPDATE `command` SET `permission` = @id+29 WHERE `name` = 'pinfo';
UPDATE `command` SET `permission` = @id+30 WHERE `name` = 'playall';
UPDATE `command` SET `permission` = @id+31 WHERE `name` = 'possess';
UPDATE `command` SET `permission` = @id+32 WHERE `name` = 'recall';
UPDATE `command` SET `permission` = @id+33 WHERE `name` = 'repairitems';
UPDATE `command` SET `permission` = @id+34 WHERE `name` = 'respawn';
UPDATE `command` SET `permission` = @id+35 WHERE `name` = 'revive';
UPDATE `command` SET `permission` = @id+36 WHERE `name` = 'saveall';
UPDATE `command` SET `permission` = @id+37 WHERE `name` = 'save';
UPDATE `command` SET `permission` = @id+38 WHERE `name` = 'setskill';
UPDATE `command` SET `permission` = @id+39 WHERE `name` = 'showarea';
UPDATE `command` SET `permission` = @id+40 WHERE `name` = 'summon';
UPDATE `command` SET `permission` = @id+41 WHERE `name` = 'unaura';
UPDATE `command` SET `permission` = @id+42 WHERE `name` = 'unbindsight';
UPDATE `command` SET `permission` = @id+43 WHERE `name` = 'unfreeze';
UPDATE `command` SET `permission` = @id+44 WHERE `name` = 'unmute';
UPDATE `command` SET `permission` = @id+45 WHERE `name` = 'unpossess';
UPDATE `command` SET `permission` = @id+46 WHERE `name` = 'unstuck';
UPDATE `command` SET `permission` = @id+47 WHERE `name` = 'wchange';

View File

@@ -0,0 +1,11 @@
/* cs_mmaps.cpp */
SET @id = 536;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'mmap';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'mmap loadedtiles';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'mmap loc';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'mmap path';
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'mmap stats';
UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'mmap testarea';

View File

@@ -0,0 +1,33 @@
/* cs_modify.cpp */
SET @id = 542;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'morph';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'demorph';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'modify';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'modify arenapoints';
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'modify bit';
UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'modify drunk';
UPDATE `command` SET `permission` = @id+6 WHERE `name` = 'modify energy';
UPDATE `command` SET `permission` = @id+7 WHERE `name` = 'modify faction';
UPDATE `command` SET `permission` = @id+8 WHERE `name` = 'modify gender';
UPDATE `command` SET `permission` = @id+9 WHERE `name` = 'modify honor';
UPDATE `command` SET `permission` = @id+10 WHERE `name` = 'modify hp';
UPDATE `command` SET `permission` = @id+11 WHERE `name` = 'modify mana';
UPDATE `command` SET `permission` = @id+12 WHERE `name` = 'modify money';
UPDATE `command` SET `permission` = @id+13 WHERE `name` = 'modify mount';
UPDATE `command` SET `permission` = @id+14 WHERE `name` = 'modify phase';
UPDATE `command` SET `permission` = @id+15 WHERE `name` = 'modify rage';
UPDATE `command` SET `permission` = @id+16 WHERE `name` = 'modify reputation';
UPDATE `command` SET `permission` = @id+17 WHERE `name` = 'modify runicpower';
UPDATE `command` SET `permission` = @id+18 WHERE `name` = 'modify scale';
UPDATE `command` SET `permission` = @id+19 WHERE `name` = 'modify speed';
UPDATE `command` SET `permission` = @id+20 WHERE `name` = 'modify speed all';
UPDATE `command` SET `permission` = @id+21 WHERE `name` = 'modify speed backwalk';
UPDATE `command` SET `permission` = @id+22 WHERE `name` = 'modify speed fly';
UPDATE `command` SET `permission` = @id+23 WHERE `name` = 'modify speed walk';
UPDATE `command` SET `permission` = @id+24 WHERE `name` = 'modify speed swim';
UPDATE `command` SET `permission` = @id+25 WHERE `name` = 'modify spell';
UPDATE `command` SET `permission` = @id+26 WHERE `name` = 'modify standstate';
UPDATE `command` SET `permission` = @id+27 WHERE `name` = 'modify talentpoints';

View File

@@ -0,0 +1,37 @@
/* cs_npc.cpp */
SET @id = 570;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'npc';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'npc add';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'npc add formation';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'npc add item';
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'npc add move';
UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'npc add temp';
UPDATE `command` SET `permission` = @id+6 WHERE `name` = 'npc add delete';
UPDATE `command` SET `permission` = @id+7 WHERE `name` = 'npc add delete item';
UPDATE `command` SET `permission` = @id+8 WHERE `name` = 'npc add follow';
UPDATE `command` SET `permission` = @id+9 WHERE `name` = 'npc add follow stop';
UPDATE `command` SET `permission` = @id+10 WHERE `name` = 'npc set';
UPDATE `command` SET `permission` = @id+11 WHERE `name` = 'npc set allowmove';
UPDATE `command` SET `permission` = @id+12 WHERE `name` = 'npc set entry';
UPDATE `command` SET `permission` = @id+13 WHERE `name` = 'npc set factionid';
UPDATE `command` SET `permission` = @id+14 WHERE `name` = 'npc set flag';
UPDATE `command` SET `permission` = @id+15 WHERE `name` = 'npc set level';
UPDATE `command` SET `permission` = @id+16 WHERE `name` = 'npc set link';
UPDATE `command` SET `permission` = @id+17 WHERE `name` = 'npc set model';
UPDATE `command` SET `permission` = @id+18 WHERE `name` = 'npc set movetype';
UPDATE `command` SET `permission` = @id+19 WHERE `name` = 'npc set phase';
UPDATE `command` SET `permission` = @id+20 WHERE `name` = 'npc set spawndist';
UPDATE `command` SET `permission` = @id+21 WHERE `name` = 'npc set spawntime';
UPDATE `command` SET `permission` = @id+22 WHERE `name` = 'npc set data';
UPDATE `command` SET `permission` = @id+23 WHERE `name` = 'npc info';
UPDATE `command` SET `permission` = @id+24 WHERE `name` = 'npc near';
UPDATE `command` SET `permission` = @id+25 WHERE `name` = 'npc move';
UPDATE `command` SET `permission` = @id+26 WHERE `name` = 'npc playemote';
UPDATE `command` SET `permission` = @id+27 WHERE `name` = 'npc say';
UPDATE `command` SET `permission` = @id+28 WHERE `name` = 'npc textemote';
UPDATE `command` SET `permission` = @id+29 WHERE `name` = 'npc whisper';
UPDATE `command` SET `permission` = @id+30 WHERE `name` = 'npc yell';
UPDATE `command` SET `permission` = @id+31 WHERE `name` = 'npc tame';

View File

@@ -0,0 +1,10 @@
/* cs_quest.cpp */
SET @id = 602;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'quest';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'quest add';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'quest complete';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'quest remove';
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'quest reward';

View File

@@ -0,0 +1,108 @@
/* cs_reload.cpp */
SET @id = 607;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'reload';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'reload access_requirement';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'reload achievement_criteria_data';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'reload achievement_reward';
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'reload all';
UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'reload all achievement';
UPDATE `command` SET `permission` = @id+6 WHERE `name` = 'reload all area';
UPDATE `command` SET `permission` = @id+7 WHERE `name` = 'reload all eventai';
UPDATE `command` SET `permission` = @id+8 WHERE `name` = 'reload all gossips';
UPDATE `command` SET `permission` = @id+9 WHERE `name` = 'reload all item';
UPDATE `command` SET `permission` = @id+10 WHERE `name` = 'reload all locales';
UPDATE `command` SET `permission` = @id+11 WHERE `name` = 'reload all loot';
UPDATE `command` SET `permission` = @id+12 WHERE `name` = 'reload all npc';
UPDATE `command` SET `permission` = @id+13 WHERE `name` = 'reload all quest';
UPDATE `command` SET `permission` = @id+14 WHERE `name` = 'reload all scripts';
UPDATE `command` SET `permission` = @id+15 WHERE `name` = 'reload all spell';
UPDATE `command` SET `permission` = @id+16 WHERE `name` = 'reload areatrigger_involvedrelation';
UPDATE `command` SET `permission` = @id+17 WHERE `name` = 'reload areatrigger_tavern';
UPDATE `command` SET `permission` = @id+18 WHERE `name` = 'reload areatrigger_teleport';
UPDATE `command` SET `permission` = @id+19 WHERE `name` = 'reload auctions';
UPDATE `command` SET `permission` = @id+20 WHERE `name` = 'reload autobroadcast';
UPDATE `command` SET `permission` = @id+21 WHERE `name` = 'reload command';
UPDATE `command` SET `permission` = @id+22 WHERE `name` = 'reload conditions';
UPDATE `command` SET `permission` = @id+23 WHERE `name` = 'reload config';
UPDATE `command` SET `permission` = @id+24 WHERE `name` = 'reload creature_text';
UPDATE `command` SET `permission` = @id+25 WHERE `name` = 'reload creature_ai_scripts';
UPDATE `command` SET `permission` = @id+26 WHERE `name` = 'reload creature_ai_texts';
UPDATE `command` SET `permission` = @id+27 WHERE `name` = 'reload creature_questender';
UPDATE `command` SET `permission` = @id+28 WHERE `name` = 'reload creature_linked_respawn';
UPDATE `command` SET `permission` = @id+29 WHERE `name` = 'reload creature_loot_template';
UPDATE `command` SET `permission` = @id+30 WHERE `name` = 'reload creature_onkill_reputation';
UPDATE `command` SET `permission` = @id+31 WHERE `name` = 'reload creature_queststarter';
UPDATE `command` SET `permission` = @id+32 WHERE `name` = 'reload creature_summon_groups';
UPDATE `command` SET `permission` = @id+33 WHERE `name` = 'reload creature_template';
UPDATE `command` SET `permission` = @id+34 WHERE `name` = 'reload disables';
UPDATE `command` SET `permission` = @id+35 WHERE `name` = 'reload disenchant_loot_template';
UPDATE `command` SET `permission` = @id+36 WHERE `name` = 'reload event_scripts';
UPDATE `command` SET `permission` = @id+37 WHERE `name` = 'reload fishing_loot_template';
UPDATE `command` SET `permission` = @id+38 WHERE `name` = 'reload game_graveyard_zone';
UPDATE `command` SET `permission` = @id+39 WHERE `name` = 'reload game_tele';
UPDATE `command` SET `permission` = @id+40 WHERE `name` = 'reload gameobject_questender';
UPDATE `command` SET `permission` = @id+41 WHERE `name` = 'reload gameobject_loot_template';
UPDATE `command` SET `permission` = @id+42 WHERE `name` = 'reload gameobject_queststarter';
UPDATE `command` SET `permission` = @id+43 WHERE `name` = 'reload gm_tickets';
UPDATE `command` SET `permission` = @id+44 WHERE `name` = 'reload gossip_menu';
UPDATE `command` SET `permission` = @id+45 WHERE `name` = 'reload gossip_menu_option';
UPDATE `command` SET `permission` = @id+46 WHERE `name` = 'reload item_enchantment_template';
UPDATE `command` SET `permission` = @id+47 WHERE `name` = 'reload item_loot_template';
UPDATE `command` SET `permission` = @id+48 WHERE `name` = 'reload item_set_names';
UPDATE `command` SET `permission` = @id+49 WHERE `name` = 'reload lfg_dungeon_rewards';
UPDATE `command` SET `permission` = @id+50 WHERE `name` = 'reload locales_achievement_reward';
UPDATE `command` SET `permission` = @id+51 WHERE `name` = 'reload locales_creature';
UPDATE `command` SET `permission` = @id+52 WHERE `name` = 'reload locales_creature_text';
UPDATE `command` SET `permission` = @id+53 WHERE `name` = 'reload locales_gameobject';
UPDATE `command` SET `permission` = @id+54 WHERE `name` = 'reload locales_gossip_menu_option';
UPDATE `command` SET `permission` = @id+55 WHERE `name` = 'reload locales_item';
UPDATE `command` SET `permission` = @id+56 WHERE `name` = 'reload locales_item_set_name';
UPDATE `command` SET `permission` = @id+57 WHERE `name` = 'reload locales_npc_text';
UPDATE `command` SET `permission` = @id+58 WHERE `name` = 'reload locales_page_text';
UPDATE `command` SET `permission` = @id+59 WHERE `name` = 'reload locales_points_of_interest';
UPDATE `command` SET `permission` = @id+60 WHERE `name` = 'reload locales_quest';
UPDATE `command` SET `permission` = @id+61 WHERE `name` = 'reload mail_level_reward';
UPDATE `command` SET `permission` = @id+62 WHERE `name` = 'reload mail_loot_template';
UPDATE `command` SET `permission` = @id+63 WHERE `name` = 'reload milling_loot_template';
UPDATE `command` SET `permission` = @id+64 WHERE `name` = 'reload npc_spellclick_spells';
UPDATE `command` SET `permission` = @id+65 WHERE `name` = 'reload npc_trainer';
UPDATE `command` SET `permission` = @id+66 WHERE `name` = 'reload npc_vendor';
UPDATE `command` SET `permission` = @id+67 WHERE `name` = 'reload page_text';
UPDATE `command` SET `permission` = @id+68 WHERE `name` = 'reload pickpocketing_loot_template';
UPDATE `command` SET `permission` = @id+69 WHERE `name` = 'reload points_of_interest';
UPDATE `command` SET `permission` = @id+70 WHERE `name` = 'reload prospecting_loot_template';
UPDATE `command` SET `permission` = @id+71 WHERE `name` = 'reload quest_poi';
UPDATE `command` SET `permission` = @id+72 WHERE `name` = 'reload quest_template';
UPDATE `command` SET `permission` = @id+73 WHERE `name` = 'reload rbac';
UPDATE `command` SET `permission` = @id+74 WHERE `name` = 'reload reference_loot_template';
UPDATE `command` SET `permission` = @id+75 WHERE `name` = 'reload reserved_name';
UPDATE `command` SET `permission` = @id+76 WHERE `name` = 'reload reputation_reward_rate';
UPDATE `command` SET `permission` = @id+77 WHERE `name` = 'reload reputation_spillover_template';
UPDATE `command` SET `permission` = @id+78 WHERE `name` = 'reload skill_discovery_template';
UPDATE `command` SET `permission` = @id+79 WHERE `name` = 'reload skill_extra_item_template';
UPDATE `command` SET `permission` = @id+80 WHERE `name` = 'reload skill_fishing_base_level';
UPDATE `command` SET `permission` = @id+81 WHERE `name` = 'reload skinning_loot_template';
UPDATE `command` SET `permission` = @id+82 WHERE `name` = 'reload smart_scripts';
UPDATE `command` SET `permission` = @id+83 WHERE `name` = 'reload spell_required';
UPDATE `command` SET `permission` = @id+84 WHERE `name` = 'reload spell_area';
UPDATE `command` SET `permission` = @id+85 WHERE `name` = 'reload spell_bonus_data';
UPDATE `command` SET `permission` = @id+86 WHERE `name` = 'reload spell_group';
UPDATE `command` SET `permission` = @id+87 WHERE `name` = 'reload spell_learn_spell';
UPDATE `command` SET `permission` = @id+88 WHERE `name` = 'reload spell_loot_template';
UPDATE `command` SET `permission` = @id+89 WHERE `name` = 'reload spell_linked_spell';
UPDATE `command` SET `permission` = @id+90 WHERE `name` = 'reload spell_pet_auras';
UPDATE `command` SET `permission` = @id+91 WHERE `name` = 'reload spell_proc_event';
UPDATE `command` SET `permission` = @id+92 WHERE `name` = 'reload spell_proc';
UPDATE `command` SET `permission` = @id+93 WHERE `name` = 'reload spell_scripts';
UPDATE `command` SET `permission` = @id+94 WHERE `name` = 'reload spell_target_position';
UPDATE `command` SET `permission` = @id+95 WHERE `name` = 'reload spell_threats';
UPDATE `command` SET `permission` = @id+96 WHERE `name` = 'reload spell_group_stack_rules';
UPDATE `command` SET `permission` = @id+97 WHERE `name` = 'reload trinity_string';
UPDATE `command` SET `permission` = @id+98 WHERE `name` = 'reload warden_action';
UPDATE `command` SET `permission` = @id+99 WHERE `name` = 'reload waypoint_scripts';
UPDATE `command` SET `permission` = @id+100 WHERE `name` = 'reload waypoint_data';
UPDATE `command` SET `permission` = @id+101 WHERE `name` = 'reload vehicle_accessory';
UPDATE `command` SET `permission` = @id+102 WHERE `name` = 'reload vehicle_template_accessory';

View File

@@ -0,0 +1,13 @@
/* cs_reset.cpp */
SET @id = 710;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'reset';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'reset achievements';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'reset honor';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'reset level';
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'reset spells';
UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'reset stats';
UPDATE `command` SET `permission` = @id+6 WHERE `name` = 'reset talents';
UPDATE `command` SET `permission` = @id+7 WHERE `name` = 'reset all';

View File

@@ -0,0 +1,24 @@
/* cs_server.cpp */
SET @id = 718;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'server';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'server corpses';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'server exit';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'server idlerestart';
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'server idlerestart cancel';
UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'server idleshutdown';
UPDATE `command` SET `permission` = @id+6 WHERE `name` = 'server idleshutdown cancel';
UPDATE `command` SET `permission` = @id+7 WHERE `name` = 'server info';
UPDATE `command` SET `permission` = @id+8 WHERE `name` = 'server plimit';
UPDATE `command` SET `permission` = @id+9 WHERE `name` = 'server restart';
UPDATE `command` SET `permission` = @id+10 WHERE `name` = 'server restart cancel';
UPDATE `command` SET `permission` = @id+11 WHERE `name` = 'server set';
UPDATE `command` SET `permission` = @id+12 WHERE `name` = 'server set closed';
UPDATE `command` SET `permission` = @id+13 WHERE `name` = 'server set difftime';
UPDATE `command` SET `permission` = @id+14 WHERE `name` = 'server set loglevel';
UPDATE `command` SET `permission` = @id+15 WHERE `name` = 'server set motd';
UPDATE `command` SET `permission` = @id+16 WHERE `name` = 'server shutdown';
UPDATE `command` SET `permission` = @id+17 WHERE `name` = 'server shutdown cancel';
UPDATE `command` SET `permission` = @id+18 WHERE `name` = 'server motd';

View File

@@ -0,0 +1,10 @@
/* cs_tele.cpp */
SET @id = 737;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'tele';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'tele add';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'tele del';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'tele name';
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'tele group';

View File

@@ -0,0 +1,24 @@
/* cs_ticket.cpp */
SET @id = 742;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'ticket';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'ticket assign';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'ticket close';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'ticket closedlist';
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'ticket comment';
UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'ticket complete';
UPDATE `command` SET `permission` = @id+6 WHERE `name` = 'ticket delete';
UPDATE `command` SET `permission` = @id+7 WHERE `name` = 'ticket escalate';
UPDATE `command` SET `permission` = @id+8 WHERE `name` = 'ticket escalatedlist';
UPDATE `command` SET `permission` = @id+9 WHERE `name` = 'ticket list';
UPDATE `command` SET `permission` = @id+10 WHERE `name` = 'ticket onlinelist';
UPDATE `command` SET `permission` = @id+11 WHERE `name` = 'ticket reset';
UPDATE `command` SET `permission` = @id+12 WHERE `name` = 'ticket response';
UPDATE `command` SET `permission` = @id+13 WHERE `name` = 'ticket response append';
UPDATE `command` SET `permission` = @id+14 WHERE `name` = 'ticket response appendln';
UPDATE `command` SET `permission` = @id+15 WHERE `name` = 'ticket togglesystem';
UPDATE `command` SET `permission` = @id+16 WHERE `name` = 'ticket unassign';
UPDATE `command` SET `permission` = @id+17 WHERE `name` = 'ticket viewid';
UPDATE `command` SET `permission` = @id+18 WHERE `name` = 'ticket viewname';

View File

@@ -0,0 +1,19 @@
/* cs_titles.cpp & cs_wp.cpp */
SET @id = 761;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'titles';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'titles add';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'titles current';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'titles remove';
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'titles set';
UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'titles set mask';
UPDATE `command` SET `permission` = @id+6 WHERE `name` = 'wp';
UPDATE `command` SET `permission` = @id+7 WHERE `name` = 'wp add';
UPDATE `command` SET `permission` = @id+8 WHERE `name` = 'wp event';
UPDATE `command` SET `permission` = @id+9 WHERE `name` = 'wp load';
UPDATE `command` SET `permission` = @id+10 WHERE `name` = 'wp modify';
UPDATE `command` SET `permission` = @id+11 WHERE `name` = 'wp unload';
UPDATE `command` SET `permission` = @id+12 WHERE `name` = 'wp reload';
UPDATE `command` SET `permission` = @id+13 WHERE `name` = 'wp show';

View File

@@ -0,0 +1,2 @@
-- Update command table and remove obsolete permissions (0 = non existent permission)
UPDATE `command` SET `permission` = 0 WHERE `permission` IN (7, 8, 9, 10, 12);

View File

@@ -0,0 +1,16 @@
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = 201 WHERE `name` = 'rbac account';
UPDATE `command` SET `permission` = 202 WHERE `name` = 'rbac account group';
UPDATE `command` SET `permission` = 203 WHERE `name` = 'rbac account group add';
UPDATE `command` SET `permission` = 204 WHERE `name` = 'rbac account group remove';
UPDATE `command` SET `permission` = 205 WHERE `name` = 'rbac account role';
UPDATE `command` SET `permission` = 206 WHERE `name` = 'rbac account role grant';
UPDATE `command` SET `permission` = 207 WHERE `name` = 'rbac account role deny';
UPDATE `command` SET `permission` = 208 WHERE `name` = 'rbac account role revoke';
UPDATE `command` SET `permission` = 209 WHERE `name` = 'rbac account permission';
UPDATE `command` SET `permission` = 210 WHERE `name` = 'rbac account permission grant';
UPDATE `command` SET `permission` = 211 WHERE `name` = 'rbac account permission deny';
UPDATE `command` SET `permission` = 212 WHERE `name` = 'rbac account permission revoke';
UPDATE `command` SET `permission` = 214 WHERE `name` = 'rbac account list groups';
UPDATE `command` SET `permission` = 215 WHERE `name` = 'rbac account list roles';
UPDATE `command` SET `permission` = 216 WHERE `name` = 'rbac account list permissions';

View File

@@ -0,0 +1,9 @@
UPDATE `command` SET `permission`=214 WHERE `name`='rbac list groups';
UPDATE `command` SET `permission`=215 WHERE `name`='rbac list roles';
UPDATE `command` SET `permission`=216 WHERE `name`='rbac list permissions';
UPDATE `command` SET `permission`=262 WHERE `name`='bf enable';
UPDATE `command` SET `permission`=576 WHERE `name`='npc delete';
UPDATE `command` SET `permission`=577 WHERE `name`='npc delete item';
UPDATE `command` SET `permission`=578 WHERE `name`='npc follow';
UPDATE `command` SET `permission`=579 WHERE `name`='npc follow stop';
UPDATE `command` SET `permission`=316 WHERE `name`='debug play cinematic';

View File

@@ -0,0 +1,66 @@
DELETE FROM `command` WHERE `name` = 'account email';
DELETE FROM `command` WHERE `name` = 'account set sec email';
DELETE FROM `command` WHERE `name` = 'account set sec regmail';
INSERT INTO `command` (`name`, `permission`, `help`) VALUES
('account email', 263, 'Syntax: .account email $oldemail $currentpassword $newemail $newemailconfirmation\r\n\r\n Change your account email. You may need to check the actual security mode to see if email input is necessary for password change'),
('account set sec email', 265, 'Syntax: .account set sec email $accountname $email $emailconfirmation\r\n\r\nSet the email for entered player account.'),
('account set sec regmail', 266, 'Syntax: .account set sec regmail $account $regmail $regmailconfirmation\r\n\r\nSets the regmail for entered player account.');
/* cs_cast.cpp */
SET @id = 267;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'cast';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'cast back';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'cast dist';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'cast self';
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'cast target';
UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'cast dest';
/* cs_go.cpp */
SET @id = 377;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'go';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'go creature';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'go graveyard';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'go grid';
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'go object';
UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'go taxinode';
UPDATE `command` SET `permission` = @id+6 WHERE `name` = 'go ticket';
UPDATE `command` SET `permission` = @id+7 WHERE `name` = 'go trigger';
UPDATE `command` SET `permission` = @id+8 WHERE `name` = 'go xyz';
UPDATE `command` SET `permission` = @id+9 WHERE `name` = 'go zonexy';
/* cs_gobject.cpp */
SET @id = 387;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'gobject';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'gobject activate';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'gobject add';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'gobject add temp';
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'gobject delete';
UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'gobject info';
UPDATE `command` SET `permission` = @id+6 WHERE `name` = 'gobject move';
UPDATE `command` SET `permission` = @id+7 WHERE `name` = 'gobject near';
UPDATE `command` SET `permission` = @id+8 WHERE `name` = 'gobject set';
UPDATE `command` SET `permission` = @id+9 WHERE `name` = 'gobject set phase';
UPDATE `command` SET `permission` = @id+10 WHERE `name` = 'gobject set state';
UPDATE `command` SET `permission` = @id+11 WHERE `name` = 'gobject target';
UPDATE `command` SET `permission` = @id+12 WHERE `name` = 'gobject turn';
/* cs_instance.cpp */
SET @id = 412;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'instance';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'instance listbinds';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'instance unbind';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'instance stats';
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'instance savedata';

View File

@@ -0,0 +1 @@
UPDATE `creature_template` SET `modelid1`=1126,`modelid2`=16925 WHERE `entry`=21393;

File diff suppressed because it is too large Load Diff

View File

@@ -59,6 +59,7 @@ void AddSC_event_commandscript();
void AddSC_gm_commandscript();
void AddSC_go_commandscript();
void AddSC_gobject_commandscript();
void AddSC_group_commandscript();
void AddSC_guild_commandscript();
void AddSC_honor_commandscript();
void AddSC_instance_commandscript();
@@ -71,10 +72,12 @@ void AddSC_misc_commandscript();
void AddSC_mmaps_commandscript();
void AddSC_modify_commandscript();
void AddSC_npc_commandscript();
void AddSC_pet_commandscript();
void AddSC_quest_commandscript();
void AddSC_rbac_commandscript();
void AddSC_reload_commandscript();
void AddSC_reset_commandscript();
void AddSC_send_commandscript();
void AddSC_server_commandscript();
void AddSC_tele_commandscript();
void AddSC_ticket_commandscript();
@@ -746,6 +749,7 @@ void AddCommandScripts()
AddSC_gm_commandscript();
AddSC_go_commandscript();
AddSC_gobject_commandscript();
AddSC_group_commandscript();
AddSC_guild_commandscript();
AddSC_honor_commandscript();
AddSC_instance_commandscript();
@@ -759,9 +763,11 @@ void AddCommandScripts()
AddSC_modify_commandscript();
AddSC_npc_commandscript();
AddSC_quest_commandscript();
AddSC_pet_commandscript();
AddSC_rbac_commandscript();
AddSC_reload_commandscript();
AddSC_reset_commandscript();
AddSC_send_commandscript();
AddSC_server_commandscript();
AddSC_tele_commandscript();
AddSC_ticket_commandscript();

View File

@@ -8,109 +8,11 @@
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
file(GLOB_RECURSE sources_Commands Commands/*.cpp Commands/*.h)
set(scripts_STAT_SRCS
${scripts_STAT_SRCS}
Commands/cs_account.cpp
Commands/cs_achievement.cpp
Commands/cs_arena.cpp
Commands/cs_ban.cpp
Commands/cs_bf.cpp
Commands/cs_cast.cpp
Commands/cs_character.cpp
Commands/cs_cheat.cpp
Commands/cs_debug.cpp
Commands/cs_deserter.cpp
Commands/cs_disable.cpp
Commands/cs_event.cpp
Commands/cs_gm.cpp
Commands/cs_go.cpp
Commands/cs_gobject.cpp
Commands/cs_guild.cpp
Commands/cs_honor.cpp
Commands/cs_instance.cpp
Commands/cs_learn.cpp
Commands/cs_lfg.cpp
Commands/cs_list.cpp
Commands/cs_lookup.cpp
Commands/cs_message.cpp
Commands/cs_misc.cpp
Commands/cs_modify.cpp
Commands/cs_npc.cpp
Commands/cs_quest.cpp
Commands/cs_rbac.cpp
Commands/cs_reload.cpp
Commands/cs_reset.cpp
Commands/cs_tele.cpp
Commands/cs_ticket.cpp
Commands/cs_server.cpp
Commands/cs_titles.cpp
Commands/cs_wp.cpp
Commands/cs_mmaps.cpp
# Commands/cs_pdump.cpp
# Commands/cs_channel.cpp
# Commands/cs_pet.cpp
# Commands/cs_aura.cpp
# Commands/cs_unaura.cpp
# Commands/cs_nameannounce.cpp
# Commands/cs_gmnameannounce.cpp
# Commands/cs_announce.cpp
# Commands/cs_gmannounce.cpp
# Commands/cs_notify.cpp
# Commands/cs_gmnotify.cpp
# Commands/cs_appear.cpp
# Commands/cs_summon.cpp
# Commands/cs_groupsummon.cpp
# Commands/cs_commands.cpp
# Commands/cs_demorph.cpp
# Commands/cs_die.cpp
# Commands/cs_revive.cpp
# Commands/cs_dismount.cpp
# Commands/cs_guid.cpp
# Commands/cs_help.cpp
# Commands/cs_itemmove.cpp
# Commands/cs_cooldown.cpp
# Commands/cs_unlearn.cpp
# Commands/cs_distance.cpp
# Commands/cs_recall.cpp
# Commands/cs_save.cpp
# Commands/cs_saveall.cpp
# Commands/cs_kick.cpp
# Commands/cs_start.cpp
# Commands/cs_taxicheat.cpp
# Commands/cs_linkgrave.cpp
# Commands/cs_neargrave.cpp
# Commands/cs_explorecheat.cpp
# Commands/cs_hover.cpp
# Commands/cs_levelup.cpp
# Commands/cs_showarea.cpp
# Commands/cs_hidearea.cpp
# Commands/cs_additem.cpp
# Commands/cs_additemset.cpp
# Commands/cs_bank.cpp
# Commands/cs_wchange.cpp
# Commands/cs_maxskill.cpp
# Commands/cs_setskill.cpp
# Commands/cs_whispers.cpp
# Commands/cs_pinfo.cpp
# Commands/cs_respawn.cpp
# Commands/cs_send.cpp
# Commands/cs_mute.cpp
# Commands/cs_unmute.cpp
# Commands/cs_movegens.cpp
# Commands/cs_cometome.cpp
# Commands/cs_damage.cpp
# Commands/cs_combatstop.cpp
# Commands/cs_flusharenapoints.cpp
# Commands/cs_repairitems.cpp
# Commands/cs_waterwalk.cpp
# Commands/cs_freeze.cpp
# Commands/cs_unfreeze.cpp
# Commands/cs_listfreeze.cpp
# Commands/cs_possess.cpp
# Commands/cs_unpossess.cpp
# Commands/cs_bindsight.cpp
# Commands/cs_unbindsight.cpp
# Commands/cs_playall.cpp
${sources_Commands}
)
message(" -> Prepared: Commands")

View File

@@ -91,7 +91,7 @@ public:
{ "areatriggers", RBAC_PERM_COMMAND_DEBUG_AREATRIGGERS, false, &HandleDebugAreaTriggersCommand, "", NULL },
{ "los", RBAC_PERM_COMMAND_DEBUG_LOS, false, &HandleDebugLoSCommand, "", NULL },
{ "moveflags", RBAC_PERM_COMMAND_DEBUG_MOVEFLAGS, false, &HandleDebugMoveflagsCommand, "", NULL },
{ "phase", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleDebugPhaseCommand, "", NULL },
{ "phase", RBAC_PERM_COMMAND_DEBUG_PHASE, false, &HandleDebugPhaseCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =

View File

@@ -0,0 +1,338 @@
/*
* Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "Chat.h"
#include "Language.h"
#include "LFG.h"
#include "Player.h"
#include "ObjectMgr.h"
#include "GroupMgr.h"
#include "ScriptMgr.h"
class group_commandscript : public CommandScript
{
public:
group_commandscript() : CommandScript("group_commandscript") { }
ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand groupCommandTable[] =
{
{ "leader", RBAC_PERM_COMMAND_GROUP_LEADER, false, &HandleGroupLeaderCommand, "", NULL },
{ "disband", RBAC_PERM_COMMAND_GROUP_DISBAND, false, &HandleGroupDisbandCommand, "", NULL },
{ "remove", RBAC_PERM_COMMAND_GROUP_REMOVE, false, &HandleGroupRemoveCommand, "", NULL },
{ "join", RBAC_PERM_COMMAND_GROUP_JOIN, false, &HandleGroupJoinCommand, "", NULL },
{ "list", RBAC_PERM_COMMAND_GROUP_LIST, false, &HandleGroupListCommand, "", NULL },
{ "summon", RBAC_PERM_COMMAND_GROUP_SUMMON, false, &HandleGroupSummonCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "group", RBAC_PERM_COMMAND_GROUP, false, NULL, "", groupCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}
// Summon group of player
static bool HandleGroupSummonCommand(ChatHandler* handler, char const* args)
{
Player* target;
if (!handler->extractPlayerTarget((char*)args, &target))
return false;
// check online security
if (handler->HasLowerSecurity(target, 0))
return false;
Group* group = target->GetGroup();
std::string nameLink = handler->GetNameLink(target);
if (!group)
{
handler->PSendSysMessage(LANG_NOT_IN_GROUP, nameLink.c_str());
handler->SetSentErrorMessage(true);
return false;
}
Player* gmPlayer = handler->GetSession()->GetPlayer();
Group* gmGroup = gmPlayer->GetGroup();
Map* gmMap = gmPlayer->GetMap();
bool toInstance = gmMap->Instanceable();
// we are in instance, and can summon only player in our group with us as lead
if (toInstance && (
!gmGroup || group->GetLeaderGUID() != gmPlayer->GetGUID() ||
gmGroup->GetLeaderGUID() != gmPlayer->GetGUID()))
// the last check is a bit excessive, but let it be, just in case
{
handler->SendSysMessage(LANG_CANNOT_SUMMON_TO_INST);
handler->SetSentErrorMessage(true);
return false;
}
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
{
Player* player = itr->GetSource();
if (!player || player == gmPlayer || !player->GetSession())
continue;
// check online security
if (handler->HasLowerSecurity(player, 0))
return false;
std::string plNameLink = handler->GetNameLink(player);
if (player->IsBeingTeleported())
{
handler->PSendSysMessage(LANG_IS_TELEPORTED, plNameLink.c_str());
handler->SetSentErrorMessage(true);
return false;
}
if (toInstance)
{
Map* playerMap = player->GetMap();
if (playerMap->Instanceable() && playerMap->GetInstanceId() != gmMap->GetInstanceId())
{
// cannot summon from instance to instance
handler->PSendSysMessage(LANG_CANNOT_SUMMON_TO_INST, plNameLink.c_str());
handler->SetSentErrorMessage(true);
return false;
}
}
handler->PSendSysMessage(LANG_SUMMONING, plNameLink.c_str(), "");
if (handler->needReportToTarget(player))
ChatHandler(player->GetSession()).PSendSysMessage(LANG_SUMMONED_BY, handler->GetNameLink().c_str());
// stop flight if need
if (player->IsInFlight())
{
player->GetMotionMaster()->MovementExpired();
player->CleanupAfterTaxiFlight();
}
// save only in non-flight case
else
player->SaveRecallPosition();
// before GM
float x, y, z;
gmPlayer->GetClosePoint(x, y, z, player->GetObjectSize());
player->TeleportTo(gmPlayer->GetMapId(), x, y, z, player->GetOrientation());
}
return true;
}
static bool HandleGroupLeaderCommand(ChatHandler* handler, char const* args)
{
Player* player = NULL;
Group* group = NULL;
uint64 guid = 0;
char* nameStr = strtok((char*)args, " ");
if (!handler->GetPlayerGroupAndGUIDByName(nameStr, player, group, guid))
return false;
if (!group)
{
handler->PSendSysMessage(LANG_GROUP_NOT_IN_GROUP, player->GetName().c_str());
handler->SetSentErrorMessage(true);
return false;
}
if (group->GetLeaderGUID() != guid)
{
group->ChangeLeader(guid);
group->SendUpdate();
}
return true;
}
static bool HandleGroupDisbandCommand(ChatHandler* handler, char const* args)
{
Player* player = NULL;
Group* group = NULL;
uint64 guid = 0;
char* nameStr = strtok((char*)args, " ");
if (!handler->GetPlayerGroupAndGUIDByName(nameStr, player, group, guid))
return false;
if (!group)
{
handler->PSendSysMessage(LANG_GROUP_NOT_IN_GROUP, player->GetName().c_str());
handler->SetSentErrorMessage(true);
return false;
}
group->Disband();
return true;
}
static bool HandleGroupRemoveCommand(ChatHandler* handler, char const* args)
{
Player* player = NULL;
Group* group = NULL;
uint64 guid = 0;
char* nameStr = strtok((char*)args, " ");
if (!handler->GetPlayerGroupAndGUIDByName(nameStr, player, group, guid))
return false;
if (!group)
{
handler->PSendSysMessage(LANG_GROUP_NOT_IN_GROUP, player->GetName().c_str());
handler->SetSentErrorMessage(true);
return false;
}
group->RemoveMember(guid);
return true;
}
static bool HandleGroupJoinCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
Player* playerSource = NULL;
Player* playerTarget = NULL;
Group* groupSource = NULL;
Group* groupTarget = NULL;
uint64 guidSource = 0;
uint64 guidTarget = 0;
char* nameplgrStr = strtok((char*)args, " ");
char* nameplStr = strtok(NULL, " ");
if (!handler->GetPlayerGroupAndGUIDByName(nameplgrStr, playerSource, groupSource, guidSource, true))
return false;
if (!groupSource)
{
handler->PSendSysMessage(LANG_GROUP_NOT_IN_GROUP, playerSource->GetName().c_str());
handler->SetSentErrorMessage(true);
return false;
}
if (!handler->GetPlayerGroupAndGUIDByName(nameplStr, playerTarget, groupTarget, guidTarget, true))
return false;
if (groupTarget || playerTarget->GetGroup() == groupSource)
{
handler->PSendSysMessage(LANG_GROUP_ALREADY_IN_GROUP, playerTarget->GetName().c_str());
handler->SetSentErrorMessage(true);
return false;
}
if (!groupSource->IsFull())
{
handler->PSendSysMessage(LANG_GROUP_FULL);
handler->SetSentErrorMessage(true);
return false;
}
groupSource->AddMember(playerTarget);
groupSource->BroadcastGroupUpdate();
handler->PSendSysMessage(LANG_GROUP_PLAYER_JOINED, playerTarget->GetName().c_str(), playerSource->GetName().c_str());
return true;
}
static bool HandleGroupListCommand(ChatHandler* handler, char const* args)
{
Player* playerTarget;
uint64 guidTarget;
std::string nameTarget;
uint32 parseGUID = MAKE_NEW_GUID(atol((char*)args), 0, HIGHGUID_PLAYER);
if (sObjectMgr->GetPlayerNameByGUID(parseGUID, nameTarget))
{
playerTarget = sObjectMgr->GetPlayerByLowGUID(parseGUID);
guidTarget = parseGUID;
}
else if (!handler->extractPlayerTarget((char*)args, &playerTarget, &guidTarget, &nameTarget))
return false;
Group* groupTarget = NULL;
if (playerTarget)
groupTarget = playerTarget->GetGroup();
if (!groupTarget)
{
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_GROUP_MEMBER);
stmt->setUInt32(0, guidTarget);
PreparedQueryResult resultGroup = CharacterDatabase.Query(stmt);
if (resultGroup)
groupTarget = sGroupMgr->GetGroupByDbStoreId((*resultGroup)[0].GetUInt32());
}
if (!groupTarget)
{
handler->PSendSysMessage(LANG_GROUP_NOT_IN_GROUP, nameTarget.c_str());
handler->SetSentErrorMessage(true);
return false;
}
handler->PSendSysMessage(LANG_GROUP_TYPE, (groupTarget->isRaidGroup() ? "raid" : "party"));
Group::MemberSlotList const& members = groupTarget->GetMemberSlots();
for (Group::MemberSlotList::const_iterator itr = members.begin(); itr != members.end(); ++itr)
{
Group::MemberSlot const& slot = *itr;
std::string flags;
if (slot.flags & MEMBER_FLAG_ASSISTANT)
flags = "Assistant";
if (slot.flags & MEMBER_FLAG_MAINTANK)
{
if (!flags.empty())
flags.append(", ");
flags.append("MainTank");
}
if (slot.flags & MEMBER_FLAG_MAINASSIST)
{
if (!flags.empty())
flags.append(", ");
flags.append("MainAssist");
}
if (flags.empty())
flags = "None";
Player* p = ObjectAccessor::FindPlayer((*itr).guid);
const char* onlineState = (p && p->IsInWorld()) ? "online" : "offline";
handler->PSendSysMessage(LANG_GROUP_PLAYER_NAME_GUID, slot.name.c_str(), onlineState,
GUID_LOPART(slot.guid), flags.c_str(), lfg::GetRolesString(slot.roles).c_str());
}
return true;
}
};
void AddSC_group_commandscript()
{
new group_commandscript();
}

View File

@@ -44,84 +44,56 @@ public:
ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand groupCommandTable[] =
{
{ "leader", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleGroupLeaderCommand, "", NULL },
{ "disband", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleGroupDisbandCommand, "", NULL },
{ "remove", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleGroupRemoveCommand, "", NULL },
{ "join", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleGroupJoinCommand, "", NULL },
{ "list", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleGroupListCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand petCommandTable[] =
{
{ "create", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleCreatePetCommand, "", NULL },
{ "learn", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandlePetLearnCommand, "", NULL },
{ "unlearn", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandlePetUnlearnCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand sendCommandTable[] =
{
{ "items", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleSendItemsCommand, "", NULL },
{ "mail", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleSendMailCommand, "", NULL },
{ "message", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleSendMessageCommand, "", NULL },
{ "money", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleSendMoneyCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "dev", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDevCommand, "", NULL },
{ "gps", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleGPSCommand, "", NULL },
{ "aura", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleAuraCommand, "", NULL },
{ "unaura", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleUnAuraCommand, "", NULL },
{ "appear", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleAppearCommand, "", NULL },
{ "summon", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleSummonCommand, "", NULL },
{ "groupsummon", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleGroupSummonCommand, "", NULL },
{ "commands", RBAC_PERM_PLAYER_COMMANDS, true, &HandleCommandsCommand, "", NULL },
{ "die", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDieCommand, "", NULL },
{ "revive", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReviveCommand, "", NULL },
{ "dismount", RBAC_PERM_PLAYER_COMMANDS, false, &HandleDismountCommand, "", NULL },
{ "guid", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleGUIDCommand, "", NULL },
{ "help", RBAC_PERM_PLAYER_COMMANDS, true, &HandleHelpCommand, "", NULL },
{ "itemmove", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleItemMoveCommand, "", NULL },
{ "cooldown", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleCooldownCommand, "", NULL },
{ "distance", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleGetDistanceCommand, "", NULL },
{ "recall", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleRecallCommand, "", NULL },
{ "save", RBAC_PERM_PLAYER_COMMANDS, false, &HandleSaveCommand, "", NULL },
{ "saveall", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleSaveAllCommand, "", NULL },
{ "kick", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleKickPlayerCommand, "", NULL },
{ "unstuck", RBAC_PERM_PLAYER_COMMANDS, true, &HandleUnstuckCommand, "", NULL },
{ "linkgrave", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleLinkGraveCommand, "", NULL },
{ "neargrave", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleNearGraveCommand, "", NULL },
{ "showarea", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleShowAreaCommand, "", NULL },
{ "hidearea", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleHideAreaCommand, "", NULL },
{ "additem", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleAddItemCommand, "", NULL },
{ "additemset", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleAddItemSetCommand, "", NULL },
{ "bank", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleBankCommand, "", NULL },
{ "wchange", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleChangeWeather, "", NULL },
{ "maxskill", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleMaxSkillCommand, "", NULL },
{ "setskill", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleSetSkillCommand, "", NULL },
{ "pinfo", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandlePInfoCommand, "", NULL },
{ "respawn", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleRespawnCommand, "", NULL },
{ "send", RBAC_PERM_MODERATOR_COMMANDS, true, NULL, "", sendCommandTable },
{ "pet", RBAC_PERM_GAMEMASTER_COMMANDS, false, NULL, "", petCommandTable },
{ "mute", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleMuteCommand, "", NULL },
{ "unmute", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleUnmuteCommand, "", NULL },
{ "movegens", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleMovegensCommand, "", NULL },
{ "cometome", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleComeToMeCommand, "", NULL },
{ "damage", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDamageCommand, "", NULL },
{ "combatstop", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleCombatStopCommand, "", NULL },
{ "repairitems", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleRepairitemsCommand, "", NULL },
{ "freeze", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleFreezeCommand, "", NULL },
{ "unfreeze", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleUnFreezeCommand, "", NULL },
{ "listfreeze", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleListFreezeCommand, "", NULL },
{ "group", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, NULL, "", groupCommandTable },
{ "possess", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, HandlePossessCommand, "", NULL },
{ "unpossess", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, HandleUnPossessCommand, "", NULL },
{ "bindsight", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, HandleBindSightCommand, "", NULL },
{ "unbindsight", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, HandleUnbindSightCommand, "", NULL },
{ "playall", RBAC_PERM_GAMEMASTER_COMMANDS, false, HandlePlayAllCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
{ "additem", RBAC_PERM_COMMAND_ADDITEM, false, &HandleAddItemCommand, "", NULL },
{ "additemset", RBAC_PERM_COMMAND_ADDITEMSET, false, &HandleAddItemSetCommand, "", NULL },
{ "appear", RBAC_PERM_COMMAND_APPEAR, false, &HandleAppearCommand, "", NULL },
{ "aura", RBAC_PERM_COMMAND_AURA, false, &HandleAuraCommand, "", NULL },
{ "bank", RBAC_PERM_COMMAND_BANK, false, &HandleBankCommand, "", NULL },
{ "bindsight", RBAC_PERM_COMMAND_BINDSIGHT, false, &HandleBindSightCommand, "", NULL },
{ "combatstop", RBAC_PERM_COMMAND_COMBATSTOP, true, &HandleCombatStopCommand, "", NULL },
{ "cometome", RBAC_PERM_COMMAND_COMETOME, false, &HandleComeToMeCommand, "", NULL },
{ "commands", RBAC_PERM_COMMAND_COMMANDS, true, &HandleCommandsCommand, "", NULL },
{ "cooldown", RBAC_PERM_COMMAND_COOLDOWN, false, &HandleCooldownCommand, "", NULL },
{ "damage", RBAC_PERM_COMMAND_DAMAGE, false, &HandleDamageCommand, "", NULL },
{ "dev", RBAC_PERM_COMMAND_DEV, false, &HandleDevCommand, "", NULL },
{ "die", RBAC_PERM_COMMAND_DIE, false, &HandleDieCommand, "", NULL },
{ "dismount", RBAC_PERM_COMMAND_DISMOUNT, false, &HandleDismountCommand, "", NULL },
{ "distance", RBAC_PERM_COMMAND_DISTANCE, false, &HandleGetDistanceCommand, "", NULL },
{ "freeze", RBAC_PERM_COMMAND_FREEZE, false, &HandleFreezeCommand, "", NULL },
{ "gps", RBAC_PERM_COMMAND_GPS, false, &HandleGPSCommand, "", NULL },
{ "guid", RBAC_PERM_COMMAND_GUID, false, &HandleGUIDCommand, "", NULL },
{ "help", RBAC_PERM_COMMAND_HELP, true, &HandleHelpCommand, "", NULL },
{ "hidearea", RBAC_PERM_COMMAND_HIDEAREA, false, &HandleHideAreaCommand, "", NULL },
{ "itemmove", RBAC_PERM_COMMAND_ITEMMOVE, false, &HandleItemMoveCommand, "", NULL },
{ "kick", RBAC_PERM_COMMAND_KICK, true, &HandleKickPlayerCommand, "", NULL },
{ "linkgrave", RBAC_PERM_COMMAND_LINKGRAVE, false, &HandleLinkGraveCommand, "", NULL },
{ "listfreeze", RBAC_PERM_COMMAND_LISTFREEZE, false, &HandleListFreezeCommand, "", NULL },
{ "maxskill", RBAC_PERM_COMMAND_MAXSKILL, false, &HandleMaxSkillCommand, "", NULL },
{ "movegens", RBAC_PERM_COMMAND_MOVEGENS, false, &HandleMovegensCommand, "", NULL },
{ "mute", RBAC_PERM_COMMAND_MUTE, true, &HandleMuteCommand, "", NULL },
{ "neargrave", RBAC_PERM_COMMAND_NEARGRAVE, false, &HandleNearGraveCommand, "", NULL },
{ "pinfo", RBAC_PERM_COMMAND_PINFO, true, &HandlePInfoCommand, "", NULL },
{ "playall", RBAC_PERM_COMMAND_PLAYALL, false, &HandlePlayAllCommand, "", NULL },
{ "possess", RBAC_PERM_COMMAND_POSSESS, false, &HandlePossessCommand, "", NULL },
{ "recall", RBAC_PERM_COMMAND_RECALL, false, &HandleRecallCommand, "", NULL },
{ "repairitems", RBAC_PERM_COMMAND_REPAIRITEMS, true, &HandleRepairitemsCommand, "", NULL },
{ "respawn", RBAC_PERM_COMMAND_RESPAWN, false, &HandleRespawnCommand, "", NULL },
{ "revive", RBAC_PERM_COMMAND_REVIVE, true, &HandleReviveCommand, "", NULL },
{ "saveall", RBAC_PERM_COMMAND_SAVEALL, true, &HandleSaveAllCommand, "", NULL },
{ "save", RBAC_PERM_COMMAND_SAVE, false, &HandleSaveCommand, "", NULL },
{ "setskill", RBAC_PERM_COMMAND_SETSKILL, false, &HandleSetSkillCommand, "", NULL },
{ "showarea", RBAC_PERM_COMMAND_SHOWAREA, false, &HandleShowAreaCommand, "", NULL },
{ "summon", RBAC_PERM_COMMAND_SUMMON, false, &HandleSummonCommand, "", NULL },
{ "unaura", RBAC_PERM_COMMAND_UNAURA, false, &HandleUnAuraCommand, "", NULL },
{ "unbindsight", RBAC_PERM_COMMAND_UNBINDSIGHT, false, HandleUnbindSightCommand, "", NULL },
{ "unfreeze", RBAC_PERM_COMMAND_UNFREEZE, false, &HandleUnFreezeCommand, "", NULL },
{ "unmute", RBAC_PERM_COMMAND_UNMUTE, true, &HandleUnmuteCommand, "", NULL },
{ "unpossess", RBAC_PERM_COMMAND_UNPOSSESS, false, &HandleUnPossessCommand, "", NULL },
{ "unstuck", RBAC_PERM_COMMAND_UNSTUCK, true, &HandleUnstuckCommand, "", NULL },
{ "wchange", RBAC_PERM_COMMAND_WCHANGE, false, &HandleChangeWeather, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}
@@ -545,97 +517,6 @@ public:
return true;
}
// Summon group of player
static bool HandleGroupSummonCommand(ChatHandler* handler, char const* args)
{
Player* target;
if (!handler->extractPlayerTarget((char*)args, &target))
return false;
// check online security
if (handler->HasLowerSecurity(target, 0))
return false;
Group* group = target->GetGroup();
std::string nameLink = handler->GetNameLink(target);
if (!group)
{
handler->PSendSysMessage(LANG_NOT_IN_GROUP, nameLink.c_str());
handler->SetSentErrorMessage(true);
return false;
}
Map* gmMap = handler->GetSession()->GetPlayer()->GetMap();
bool toInstance = gmMap->Instanceable();
// we are in instance, and can summon only player in our group with us as lead
if (toInstance && (
!handler->GetSession()->GetPlayer()->GetGroup() || (group->GetLeaderGUID() != handler->GetSession()->GetPlayer()->GetGUID()) ||
(handler->GetSession()->GetPlayer()->GetGroup()->GetLeaderGUID() != handler->GetSession()->GetPlayer()->GetGUID())))
// the last check is a bit excessive, but let it be, just in case
{
handler->SendSysMessage(LANG_CANNOT_SUMMON_TO_INST);
handler->SetSentErrorMessage(true);
return false;
}
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
{
Player* player = itr->GetSource();
if (!player || player == handler->GetSession()->GetPlayer() || !player->GetSession())
continue;
// check online security
if (handler->HasLowerSecurity(player, 0))
return false;
std::string plNameLink = handler->GetNameLink(player);
if (player->IsBeingTeleported() == true)
{
handler->PSendSysMessage(LANG_IS_TELEPORTED, plNameLink.c_str());
handler->SetSentErrorMessage(true);
return false;
}
if (toInstance)
{
Map* playerMap = player->GetMap();
if (playerMap->Instanceable() && playerMap->GetInstanceId() != gmMap->GetInstanceId())
{
// cannot summon from instance to instance
handler->PSendSysMessage(LANG_CANNOT_SUMMON_TO_INST, plNameLink.c_str());
handler->SetSentErrorMessage(true);
return false;
}
}
handler->PSendSysMessage(LANG_SUMMONING, plNameLink.c_str(), "");
if (handler->needReportToTarget(player))
ChatHandler(player->GetSession()).PSendSysMessage(LANG_SUMMONED_BY, handler->GetNameLink().c_str());
// stop flight if need
if (player->IsInFlight())
{
player->GetMotionMaster()->MovementExpired();
player->CleanupAfterTaxiFlight();
}
// save only in non-flight case
else
player->SaveRecallPosition();
// before GM
float x, y, z;
handler->GetSession()->GetPlayer()->GetClosePoint(x, y, z, player->GetObjectSize());
player->TeleportTo(handler->GetSession()->GetPlayer()->GetMapId(), x, y, z, player->GetOrientation());
}
return true;
}
static bool HandleCommandsCommand(ChatHandler* handler, char const* /*args*/)
{
@@ -2351,380 +2232,6 @@ public:
return true;
}
// Send mail by command
static bool HandleSendMailCommand(ChatHandler* handler, char const* args)
{
// format: name "subject text" "mail text"
Player* target;
uint64 targetGuid;
std::string targetName;
if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid, &targetName))
return false;
char* tail1 = strtok(NULL, "");
if (!tail1)
return false;
char const* msgSubject = handler->extractQuotedArg(tail1);
if (!msgSubject)
return false;
char* tail2 = strtok(NULL, "");
if (!tail2)
return false;
char const* msgText = handler->extractQuotedArg(tail2);
if (!msgText)
return false;
// msgSubject, msgText isn't NUL after prev. check
std::string subject = msgSubject;
std::string text = msgText;
// from console show not existed sender
MailSender sender(MAIL_NORMAL, handler->GetSession() ? handler->GetSession()->GetPlayer()->GetGUIDLow() : 0, MAIL_STATIONERY_GM);
/// @todo Fix poor design
SQLTransaction trans = CharacterDatabase.BeginTransaction();
MailDraft(subject, text)
.SendMailTo(trans, MailReceiver(target, GUID_LOPART(targetGuid)), sender);
CharacterDatabase.CommitTransaction(trans);
std::string nameLink = handler->playerLink(targetName);
handler->PSendSysMessage(LANG_MAIL_SENT, nameLink.c_str());
return true;
}
// Send items by mail
static bool HandleSendItemsCommand(ChatHandler* handler, char const* args)
{
// format: name "subject text" "mail text" item1[:count1] item2[:count2] ... item12[:count12]
Player* receiver;
uint64 receiverGuid;
std::string receiverName;
if (!handler->extractPlayerTarget((char*)args, &receiver, &receiverGuid, &receiverName))
return false;
char* tail1 = strtok(NULL, "");
if (!tail1)
return false;
char const* msgSubject = handler->extractQuotedArg(tail1);
if (!msgSubject)
return false;
char* tail2 = strtok(NULL, "");
if (!tail2)
return false;
char const* msgText = handler->extractQuotedArg(tail2);
if (!msgText)
return false;
// msgSubject, msgText isn't NUL after prev. check
std::string subject = msgSubject;
std::string text = msgText;
// extract items
typedef std::pair<uint32, uint32> ItemPair;
typedef std::list< ItemPair > ItemPairs;
ItemPairs items;
// get all tail string
char* tail = strtok(NULL, "");
// get from tail next item str
while (char* itemStr = strtok(tail, " "))
{
// and get new tail
tail = strtok(NULL, "");
// parse item str
char const* itemIdStr = strtok(itemStr, ":");
char const* itemCountStr = strtok(NULL, " ");
uint32 itemId = atoi(itemIdStr);
if (!itemId)
return false;
ItemTemplate const* item_proto = sObjectMgr->GetItemTemplate(itemId);
if (!item_proto)
{
handler->PSendSysMessage(LANG_COMMAND_ITEMIDINVALID, itemId);
handler->SetSentErrorMessage(true);
return false;
}
uint32 itemCount = itemCountStr ? atoi(itemCountStr) : 1;
if (itemCount < 1 || (item_proto->MaxCount > 0 && itemCount > uint32(item_proto->MaxCount)))
{
handler->PSendSysMessage(LANG_COMMAND_INVALID_ITEM_COUNT, itemCount, itemId);
handler->SetSentErrorMessage(true);
return false;
}
while (itemCount > item_proto->GetMaxStackSize())
{
items.push_back(ItemPair(itemId, item_proto->GetMaxStackSize()));
itemCount -= item_proto->GetMaxStackSize();
}
items.push_back(ItemPair(itemId, itemCount));
if (items.size() > MAX_MAIL_ITEMS)
{
handler->PSendSysMessage(LANG_COMMAND_MAIL_ITEMS_LIMIT, MAX_MAIL_ITEMS);
handler->SetSentErrorMessage(true);
return false;
}
}
// from console show not existed sender
MailSender sender(MAIL_NORMAL, handler->GetSession() ? handler->GetSession()->GetPlayer()->GetGUIDLow() : 0, MAIL_STATIONERY_GM);
// fill mail
MailDraft draft(subject, text);
SQLTransaction trans = CharacterDatabase.BeginTransaction();
for (ItemPairs::const_iterator itr = items.begin(); itr != items.end(); ++itr)
{
if (Item* item = Item::CreateItem(itr->first, itr->second, handler->GetSession() ? handler->GetSession()->GetPlayer() : 0))
{
item->SaveToDB(trans); // save for prevent lost at next mail load, if send fail then item will deleted
draft.AddItem(item);
}
}
draft.SendMailTo(trans, MailReceiver(receiver, GUID_LOPART(receiverGuid)), sender);
CharacterDatabase.CommitTransaction(trans);
std::string nameLink = handler->playerLink(receiverName);
handler->PSendSysMessage(LANG_MAIL_SENT, nameLink.c_str());
return true;
}
/// Send money by mail
static bool HandleSendMoneyCommand(ChatHandler* handler, char const* args)
{
/// format: name "subject text" "mail text" money
Player* receiver;
uint64 receiverGuid;
std::string receiverName;
if (!handler->extractPlayerTarget((char*)args, &receiver, &receiverGuid, &receiverName))
return false;
char* tail1 = strtok(NULL, "");
if (!tail1)
return false;
char* msgSubject = handler->extractQuotedArg(tail1);
if (!msgSubject)
return false;
char* tail2 = strtok(NULL, "");
if (!tail2)
return false;
char* msgText = handler->extractQuotedArg(tail2);
if (!msgText)
return false;
char* moneyStr = strtok(NULL, "");
int32 money = moneyStr ? atoi(moneyStr) : 0;
if (money <= 0)
return false;
// msgSubject, msgText isn't NUL after prev. check
std::string subject = msgSubject;
std::string text = msgText;
// from console show not existed sender
MailSender sender(MAIL_NORMAL, handler->GetSession() ? handler->GetSession()->GetPlayer()->GetGUIDLow() : 0, MAIL_STATIONERY_GM);
SQLTransaction trans = CharacterDatabase.BeginTransaction();
MailDraft(subject, text)
.AddMoney(money)
.SendMailTo(trans, MailReceiver(receiver, GUID_LOPART(receiverGuid)), sender);
CharacterDatabase.CommitTransaction(trans);
std::string nameLink = handler->playerLink(receiverName);
handler->PSendSysMessage(LANG_MAIL_SENT, nameLink.c_str());
return true;
}
/// Send a message to a player in game
static bool HandleSendMessageCommand(ChatHandler* handler, char const* args)
{
/// - Find the player
Player* player;
if (!handler->extractPlayerTarget((char*)args, &player))
return false;
char* msgStr = strtok(NULL, "");
if (!msgStr)
return false;
///- Check that he is not logging out.
if (player->GetSession()->isLogingOut())
{
handler->SendSysMessage(LANG_PLAYER_NOT_FOUND);
handler->SetSentErrorMessage(true);
return false;
}
/// - Send the message
// Use SendAreaTriggerMessage for fastest delivery.
player->GetSession()->SendAreaTriggerMessage("%s", msgStr);
player->GetSession()->SendAreaTriggerMessage("|cffff0000[Message from administrator]:|r");
// Confirmation message
std::string nameLink = handler->GetNameLink(player);
handler->PSendSysMessage(LANG_SENDMESSAGE, nameLink.c_str(), msgStr);
return true;
}
static bool HandleCreatePetCommand(ChatHandler* handler, char const* /*args*/)
{
Player* player = handler->GetSession()->GetPlayer();
Creature* creatureTarget = handler->getSelectedCreature();
if (!creatureTarget || creatureTarget->IsPet() || creatureTarget->GetTypeId() == TYPEID_PLAYER)
{
handler->PSendSysMessage(LANG_SELECT_CREATURE);
handler->SetSentErrorMessage(true);
return false;
}
CreatureTemplate const* creatrueTemplate = sObjectMgr->GetCreatureTemplate(creatureTarget->GetEntry());
// Creatures with family 0 crashes the server
if (!creatrueTemplate->family)
{
handler->PSendSysMessage("This creature cannot be tamed. (family id: 0).");
handler->SetSentErrorMessage(true);
return false;
}
if (player->GetPetGUID())
{
handler->PSendSysMessage("You already have a pet");
handler->SetSentErrorMessage(true);
return false;
}
// Everything looks OK, create new pet
Pet* pet = new Pet(player, HUNTER_PET);
if (!pet->CreateBaseAtCreature(creatureTarget))
{
delete pet;
handler->PSendSysMessage("Error 1");
return false;
}
creatureTarget->setDeathState(JUST_DIED);
creatureTarget->RemoveCorpse();
creatureTarget->SetHealth(0); // just for nice GM-mode view
pet->SetUInt64Value(UNIT_FIELD_CREATEDBY, player->GetGUID());
pet->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE, player->getFaction());
if (!pet->InitStatsForLevel(creatureTarget->getLevel()))
{
TC_LOG_ERROR(LOG_FILTER_GENERAL, "InitStatsForLevel() in EffectTameCreature failed! Pet deleted.");
handler->PSendSysMessage("Error 2");
delete pet;
return false;
}
// prepare visual effect for levelup
pet->SetUInt32Value(UNIT_FIELD_LEVEL, creatureTarget->getLevel()-1);
pet->GetCharmInfo()->SetPetNumber(sObjectMgr->GeneratePetNumber(), true);
// this enables pet details window (Shift+P)
pet->InitPetCreateSpells();
pet->SetFullHealth();
pet->GetMap()->AddToMap(pet->ToCreature());
// visual effect for levelup
pet->SetUInt32Value(UNIT_FIELD_LEVEL, creatureTarget->getLevel());
player->SetMinion(pet, true);
pet->SavePetToDB(PET_SAVE_AS_CURRENT);
player->PetSpellInitialize();
return true;
}
static bool HandlePetLearnCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
Player* player = handler->GetSession()->GetPlayer();
Pet* pet = player->GetPet();
if (!pet)
{
handler->PSendSysMessage("You have no pet");
handler->SetSentErrorMessage(true);
return false;
}
uint32 spellId = handler->extractSpellIdFromLink((char*)args);
if (!spellId || !sSpellMgr->GetSpellInfo(spellId))
return false;
// Check if pet already has it
if (pet->HasSpell(spellId))
{
handler->PSendSysMessage("Pet already has spell: %u", spellId);
handler->SetSentErrorMessage(true);
return false;
}
// Check if spell is valid
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellId);
if (!spellInfo || !SpellMgr::IsSpellValid(spellInfo))
{
handler->PSendSysMessage(LANG_COMMAND_SPELL_BROKEN, spellId);
handler->SetSentErrorMessage(true);
return false;
}
pet->learnSpell(spellId);
handler->PSendSysMessage("Pet has learned spell %u", spellId);
return true;
}
static bool HandlePetUnlearnCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
Player* player = handler->GetSession()->GetPlayer();
Pet* pet = player->GetPet();
if (!pet)
{
handler->PSendSysMessage("You have no pet");
handler->SetSentErrorMessage(true);
return false;
}
uint32 spellId = handler->extractSpellIdFromLink((char*)args);
if (pet->HasSpell(spellId))
pet->removeSpell(spellId, false);
else
handler->PSendSysMessage("Pet doesn't have that spell");
return true;
}
static bool HandleFreezeCommand(ChatHandler* handler, char const* args)
{
std::string name;
@@ -2887,177 +2394,6 @@ public:
return true;
}
static bool HandleGroupLeaderCommand(ChatHandler* handler, char const* args)
{
Player* player = NULL;
Group* group = NULL;
uint64 guid = 0;
char* nameStr = strtok((char*)args, " ");
if (handler->GetPlayerGroupAndGUIDByName(nameStr, player, group, guid))
if (group && group->GetLeaderGUID() != guid)
{
group->ChangeLeader(guid);
group->SendUpdate();
}
return true;
}
static bool HandleGroupDisbandCommand(ChatHandler* handler, char const* args)
{
Player* player = NULL;
Group* group = NULL;
uint64 guid = 0;
char* nameStr = strtok((char*)args, " ");
if (handler->GetPlayerGroupAndGUIDByName(nameStr, player, group, guid))
if (group)
group->Disband();
return true;
}
static bool HandleGroupRemoveCommand(ChatHandler* handler, char const* args)
{
Player* player = NULL;
Group* group = NULL;
uint64 guid = 0;
char* nameStr = strtok((char*)args, " ");
if (handler->GetPlayerGroupAndGUIDByName(nameStr, player, group, guid, true))
if (group)
group->RemoveMember(guid);
return true;
}
static bool HandleGroupJoinCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
Player* playerSource = NULL;
Player* playerTarget = NULL;
Group* groupSource = NULL;
Group* groupTarget = NULL;
uint64 guidSource = 0;
uint64 guidTarget = 0;
char* nameplgrStr = strtok((char*)args, " ");
char* nameplStr = strtok(NULL, " ");
if (handler->GetPlayerGroupAndGUIDByName(nameplgrStr, playerSource, groupSource, guidSource, true))
{
if (groupSource)
{
if (handler->GetPlayerGroupAndGUIDByName(nameplStr, playerTarget, groupTarget, guidTarget, true))
{
if (!groupTarget && playerTarget->GetGroup() != groupSource)
{
if (!groupSource->IsFull())
{
groupSource->AddMember(playerTarget);
groupSource->BroadcastGroupUpdate();
handler->PSendSysMessage(LANG_GROUP_PLAYER_JOINED, playerTarget->GetName().c_str(), playerSource->GetName().c_str());
return true;
}
else
{
// group is full
handler->PSendSysMessage(LANG_GROUP_FULL);
return true;
}
}
else
{
// group is full or target player already in a group
handler->PSendSysMessage(LANG_GROUP_ALREADY_IN_GROUP, playerTarget->GetName().c_str());
return true;
}
}
}
else
{
// specified source player is not in a group
handler->PSendSysMessage(LANG_GROUP_NOT_IN_GROUP, playerSource->GetName().c_str());
return true;
}
}
return true;
}
static bool HandleGroupListCommand(ChatHandler* handler, char const* args)
{
Player* playerTarget;
uint64 guidTarget;
std::string nameTarget;
uint32 parseGUID = MAKE_NEW_GUID(atol((char*)args), 0, HIGHGUID_PLAYER);
if (sObjectMgr->GetPlayerNameByGUID(parseGUID, nameTarget))
{
playerTarget = sObjectMgr->GetPlayerByLowGUID(parseGUID);
guidTarget = parseGUID;
}
else if (!handler->extractPlayerTarget((char*)args, &playerTarget, &guidTarget, &nameTarget))
return false;
Group* groupTarget = NULL;
if (playerTarget)
groupTarget = playerTarget->GetGroup();
if (!groupTarget)
{
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_GROUP_MEMBER);
stmt->setUInt32(0, guidTarget);
PreparedQueryResult resultGroup = CharacterDatabase.Query(stmt);
if (resultGroup)
groupTarget = sGroupMgr->GetGroupByDbStoreId((*resultGroup)[0].GetUInt32());
}
if (groupTarget)
{
handler->PSendSysMessage(LANG_GROUP_TYPE, (groupTarget->isRaidGroup() ? "raid" : "party"));
Group::MemberSlotList const& members = groupTarget->GetMemberSlots();
for (Group::MemberSlotList::const_iterator itr = members.begin(); itr != members.end(); ++itr)
{
Group::MemberSlot const& slot = *itr;
std::string flags;
if (slot.flags & MEMBER_FLAG_ASSISTANT)
flags = "Assistant";
if (slot.flags & MEMBER_FLAG_MAINTANK)
{
if (!flags.empty())
flags.append(", ");
flags.append("MainTank");
}
if (slot.flags & MEMBER_FLAG_MAINASSIST)
{
if (!flags.empty())
flags.append(", ");
flags.append("MainAssist");
}
if (flags.empty())
flags = "None";
Player* p = ObjectAccessor::FindPlayer((*itr).guid);
const char* onlineState = (p && p->IsInWorld()) ? "online" : "offline";
handler->PSendSysMessage(LANG_GROUP_PLAYER_NAME_GUID, slot.name.c_str(), onlineState,
GUID_LOPART(slot.guid), flags.c_str(), lfg::GetRolesString(slot.roles).c_str());
}
}
else
handler->PSendSysMessage(LANG_GROUP_NOT_IN_GROUP, nameTarget.c_str());
return true;
}
static bool HandlePlayAllCommand(ChatHandler* handler, char const* args)
{
if (!*args)

View File

@@ -45,18 +45,18 @@ public:
{
static ChatCommand mmapCommandTable[] =
{
{ "path", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleMmapPathCommand, "", NULL },
{ "loc", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleMmapLocCommand, "", NULL },
{ "loadedtiles", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleMmapLoadedTilesCommand, "", NULL },
{ "stats", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleMmapStatsCommand, "", NULL },
{ "testarea", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleMmapTestArea, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
{ "loadedtiles", RBAC_PERM_COMMAND_MMAP_LOADEDTILES, false, &HandleMmapLoadedTilesCommand, "", NULL },
{ "loc", RBAC_PERM_COMMAND_MMAP_LOC, false, &HandleMmapLocCommand, "", NULL },
{ "path", RBAC_PERM_COMMAND_MMAP_PATH, false, &HandleMmapPathCommand, "", NULL },
{ "stats", RBAC_PERM_COMMAND_MMAP_STATS, false, &HandleMmapStatsCommand, "", NULL },
{ "testarea", RBAC_PERM_COMMAND_MMAP_TESTAREA, false, &HandleMmapTestArea, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "mmap", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", mmapCommandTable },
{ NULL, 0, false, NULL, "", NULL }
{ "mmap", RBAC_PERM_COMMAND_MMAP, true, NULL, "", mmapCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}

View File

@@ -41,44 +41,44 @@ public:
{
static ChatCommand modifyspeedCommandTable[] =
{
{ "fly", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyFlyCommand, "", NULL },
{ "all", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyASpeedCommand, "", NULL },
{ "walk", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifySpeedCommand, "", NULL },
{ "backwalk", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyBWalkCommand, "", NULL },
{ "swim", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifySwimCommand, "", NULL },
{ "", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyASpeedCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
{ "all", RBAC_PERM_COMMAND_MODIFY_SPEED_ALL, false, &HandleModifyASpeedCommand, "", NULL },
{ "backwalk", RBAC_PERM_COMMAND_MODIFY_SPEED_BACKWALK, false, &HandleModifyBWalkCommand, "", NULL },
{ "fly", RBAC_PERM_COMMAND_MODIFY_SPEED_FLY, false, &HandleModifyFlyCommand, "", NULL },
{ "walk", RBAC_PERM_COMMAND_MODIFY_SPEED_WALK, false, &HandleModifySpeedCommand, "", NULL },
{ "swim", RBAC_PERM_COMMAND_MODIFY_SPEED_SWIM, false, &HandleModifySwimCommand, "", NULL },
{ "", RBAC_PERM_COMMAND_MODIFY_SPEED, false, &HandleModifyASpeedCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand modifyCommandTable[] =
{
{ "hp", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyHPCommand, "", NULL },
{ "mana", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyManaCommand, "", NULL },
{ "rage", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyRageCommand, "", NULL },
{ "runicpower", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyRunicPowerCommand, "", NULL },
{ "energy", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyEnergyCommand, "", NULL },
{ "money", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyMoneyCommand, "", NULL },
{ "scale", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyScaleCommand, "", NULL },
{ "bit", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyBitCommand, "", NULL },
{ "faction", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyFactionCommand, "", NULL },
{ "spell", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifySpellCommand, "", NULL },
{ "talentpoints", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyTalentCommand, "", NULL },
{ "mount", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyMountCommand, "", NULL },
{ "honor", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyHonorCommand, "", NULL },
{ "reputation", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleModifyRepCommand, "", NULL },
{ "drunk", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyDrunkCommand, "", NULL },
{ "standstate", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleModifyStandStateCommand, "", NULL },
{ "phase", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleModifyPhaseCommand, "", NULL },
{ "gender", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleModifyGenderCommand, "", NULL },
{ "currency", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleModifyCurrencyCommand, "", NULL },
{ "speed", RBAC_PERM_MODERATOR_COMMANDS, false, NULL, "", modifyspeedCommandTable },
{ NULL, 0, false, NULL, "", NULL }
{ "bit", RBAC_PERM_COMMAND_MODIFY_BIT, false, &HandleModifyBitCommand, "", NULL },
{ "currency", RBAC_PERM_COMMAND_MODIFY_CURRENCY, false, &HandleModifyCurrencyCommand, "", NULL },
{ "drunk", RBAC_PERM_COMMAND_MODIFY_DRUNK, false, &HandleModifyDrunkCommand, "", NULL },
{ "energy", RBAC_PERM_COMMAND_MODIFY_ENERGY, false, &HandleModifyEnergyCommand, "", NULL },
{ "faction", RBAC_PERM_COMMAND_MODIFY_FACTION, false, &HandleModifyFactionCommand, "", NULL },
{ "gender", RBAC_PERM_COMMAND_MODIFY_GENDER, false, &HandleModifyGenderCommand, "", NULL },
{ "honor", RBAC_PERM_COMMAND_MODIFY_HONOR, false, &HandleModifyHonorCommand, "", NULL },
{ "hp", RBAC_PERM_COMMAND_MODIFY_HP, false, &HandleModifyHPCommand, "", NULL },
{ "mana", RBAC_PERM_COMMAND_MODIFY_MANA, false, &HandleModifyManaCommand, "", NULL },
{ "money", RBAC_PERM_COMMAND_MODIFY_MONEY, false, &HandleModifyMoneyCommand, "", NULL },
{ "mount", RBAC_PERM_COMMAND_MODIFY_MOUNT, false, &HandleModifyMountCommand, "", NULL },
{ "phase", RBAC_PERM_COMMAND_MODIFY_PHASE, false, &HandleModifyPhaseCommand, "", NULL },
{ "rage", RBAC_PERM_COMMAND_MODIFY_RAGE, false, &HandleModifyRageCommand, "", NULL },
{ "reputation", RBAC_PERM_COMMAND_MODIFY_REPUTATION, false, &HandleModifyRepCommand, "", NULL },
{ "runicpower", RBAC_PERM_COMMAND_MODIFY_RUNICPOWER, false, &HandleModifyRunicPowerCommand, "", NULL },
{ "scale", RBAC_PERM_COMMAND_MODIFY_SCALE, false, &HandleModifyScaleCommand, "", NULL },
{ "speed", RBAC_PERM_COMMAND_MODIFY_SPEED, false, NULL, "", modifyspeedCommandTable },
{ "spell", RBAC_PERM_COMMAND_MODIFY_SPELL, false, &HandleModifySpellCommand, "", NULL },
{ "standstate", RBAC_PERM_COMMAND_MODIFY_STANDSTATE, false, &HandleModifyStandStateCommand, "", NULL },
{ "talentpoints", RBAC_PERM_COMMAND_MODIFY_TALENTPOINTS, false, &HandleModifyTalentCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "morph", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleModifyMorphCommand, "", NULL },
{ "demorph", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleDeMorphCommand, "", NULL },
{ "modify", RBAC_PERM_MODERATOR_COMMANDS, false, NULL, "", modifyCommandTable },
{ NULL, 0, false, NULL, "", NULL }
{ "morph", RBAC_PERM_COMMAND_MORPH, false, &HandleModifyMorphCommand, "", NULL },
{ "demorph", RBAC_PERM_COMMAND_DEMORPH, false, &HandleDeMorphCommand, "", NULL },
{ "modify", RBAC_PERM_COMMAND_MODIFY, false, NULL, "", modifyCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}

View File

@@ -154,69 +154,65 @@ public:
{
static ChatCommand npcAddCommandTable[] =
{
{ "formation", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleNpcAddFormationCommand, "", NULL },
{ "item", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleNpcAddVendorItemCommand, "", NULL },
{ "move", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleNpcAddMoveCommand, "", NULL },
{ "temp", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleNpcAddTempSpawnCommand, "", NULL },
//{@todo fix or remove this command
{ "weapon", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleNpcAddWeaponCommand, "", NULL },
//}
{ "", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleNpcAddCommand, "", NULL },
{ NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL }
{ "formation", RBAC_PERM_COMMAND_NPC_ADD_FORMATION, false, &HandleNpcAddFormationCommand, "", NULL },
{ "item", RBAC_PERM_COMMAND_NPC_ADD_ITEM, false, &HandleNpcAddVendorItemCommand, "", NULL },
{ "move", RBAC_PERM_COMMAND_NPC_ADD_MOVE, false, &HandleNpcAddMoveCommand, "", NULL },
{ "temp", RBAC_PERM_COMMAND_NPC_ADD_TEMP, false, &HandleNpcAddTempSpawnCommand, "", NULL },
//{ "weapon", RBAC_PERM_COMMAND_NPC_ADD_WEAPON, false, &HandleNpcAddWeaponCommand, "", NULL },
{ "", RBAC_PERM_COMMAND_NPC_ADD, false, &HandleNpcAddCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand npcDeleteCommandTable[] =
{
{ "item", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleNpcDeleteVendorItemCommand, "", NULL },
{ "", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleNpcDeleteCommand, "", NULL },
{ NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL }
{ "item", RBAC_PERM_COMMAND_NPC_DELETE_ITEM, false, &HandleNpcDeleteVendorItemCommand, "", NULL },
{ "", RBAC_PERM_COMMAND_NPC_DELETE, false, &HandleNpcDeleteCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand npcFollowCommandTable[] =
{
{ "stop", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleNpcUnFollowCommand, "", NULL },
{ "", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleNpcFollowCommand, "", NULL },
{ NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL }
{ "stop", RBAC_PERM_COMMAND_NPC_FOLLOW_STOP, false, &HandleNpcUnFollowCommand, "", NULL },
{ "", RBAC_PERM_COMMAND_NPC_FOLLOW, false, &HandleNpcFollowCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand npcSetCommandTable[] =
{
{ "allowmove", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleNpcSetAllowMovementCommand, "", NULL },
{ "entry", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleNpcSetEntryCommand, "", NULL },
{ "factionid", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleNpcSetFactionIdCommand, "", NULL },
{ "flag", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleNpcSetFlagCommand, "", NULL },
{ "level", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleNpcSetLevelCommand, "", NULL },
{ "link", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleNpcSetLinkCommand, "", NULL },
{ "model", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleNpcSetModelCommand, "", NULL },
{ "movetype", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleNpcSetMoveTypeCommand, "", NULL },
{ "phase", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleNpcSetPhaseCommand, "", NULL },
{ "spawndist", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleNpcSetSpawnDistCommand, "", NULL },
{ "spawntime", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleNpcSetSpawnTimeCommand, "", NULL },
{ "data", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleNpcSetDataCommand, "", NULL },
//{ @todo fix or remove these commands
{ "name", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleNpcSetNameCommand, "", NULL },
{ "subname", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleNpcSetSubNameCommand, "", NULL },
//}
{ NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL }
{ "allowmove", RBAC_PERM_COMMAND_NPC_SET_ALLOWMOVE, false, &HandleNpcSetAllowMovementCommand, "", NULL },
{ "entry", RBAC_PERM_COMMAND_NPC_SET_ENTRY, false, &HandleNpcSetEntryCommand, "", NULL },
{ "factionid", RBAC_PERM_COMMAND_NPC_SET_FACTIONID, false, &HandleNpcSetFactionIdCommand, "", NULL },
{ "flag", RBAC_PERM_COMMAND_NPC_SET_FLAG, false, &HandleNpcSetFlagCommand, "", NULL },
{ "level", RBAC_PERM_COMMAND_NPC_SET_LEVEL, false, &HandleNpcSetLevelCommand, "", NULL },
{ "link", RBAC_PERM_COMMAND_NPC_SET_LINK, false, &HandleNpcSetLinkCommand, "", NULL },
{ "model", RBAC_PERM_COMMAND_NPC_SET_MODEL, false, &HandleNpcSetModelCommand, "", NULL },
{ "movetype", RBAC_PERM_COMMAND_NPC_SET_MOVETYPE, false, &HandleNpcSetMoveTypeCommand, "", NULL },
{ "phase", RBAC_PERM_COMMAND_NPC_SET_PHASE, false, &HandleNpcSetPhaseCommand, "", NULL },
{ "spawndist", RBAC_PERM_COMMAND_NPC_SET_SPAWNDIST, false, &HandleNpcSetSpawnDistCommand, "", NULL },
{ "spawntime", RBAC_PERM_COMMAND_NPC_SET_SPAWNTIME, false, &HandleNpcSetSpawnTimeCommand, "", NULL },
{ "data", RBAC_PERM_COMMAND_NPC_SET_DATA, false, &HandleNpcSetDataCommand, "", NULL },
//{ "name", RBAC_PERM_COMMAND_NPC_SET_NAME, false, &HandleNpcSetNameCommand, "", NULL },
//{ "subname", RBAC_PERM_COMMAND_NPC_SET_SUBNAME, false, &HandleNpcSetSubNameCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand npcCommandTable[] =
{
{ "info", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleNpcInfoCommand, "", NULL },
{ "near", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleNpcNearCommand, "", NULL },
{ "move", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleNpcMoveCommand, "", NULL },
{ "playemote", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleNpcPlayEmoteCommand, "", NULL },
{ "say", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleNpcSayCommand, "", NULL },
{ "textemote", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleNpcTextEmoteCommand, "", NULL },
{ "whisper", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleNpcWhisperCommand, "", NULL },
{ "yell", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleNpcYellCommand, "", NULL },
{ "tame", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleNpcTameCommand, "", NULL },
{ "add", RBAC_PERM_GAMEMASTER_COMMANDS, false, NULL, "", npcAddCommandTable },
{ "delete", RBAC_PERM_GAMEMASTER_COMMANDS, false, NULL, "", npcDeleteCommandTable },
{ "follow", RBAC_PERM_GAMEMASTER_COMMANDS, false, NULL, "", npcFollowCommandTable },
{ "set", RBAC_PERM_GAMEMASTER_COMMANDS, false, NULL, "", npcSetCommandTable },
{ NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL }
{ "info", RBAC_PERM_COMMAND_NPC_INFO, false, &HandleNpcInfoCommand, "", NULL },
{ "near", RBAC_PERM_COMMAND_NPC_NEAR, false, &HandleNpcNearCommand, "", NULL },
{ "move", RBAC_PERM_COMMAND_NPC_MOVE, false, &HandleNpcMoveCommand, "", NULL },
{ "playemote", RBAC_PERM_COMMAND_NPC_PLAYEMOTE, false, &HandleNpcPlayEmoteCommand, "", NULL },
{ "say", RBAC_PERM_COMMAND_NPC_SAY, false, &HandleNpcSayCommand, "", NULL },
{ "textemote", RBAC_PERM_COMMAND_NPC_TEXTEMOTE, false, &HandleNpcTextEmoteCommand, "", NULL },
{ "whisper", RBAC_PERM_COMMAND_NPC_WHISPER, false, &HandleNpcWhisperCommand, "", NULL },
{ "yell", RBAC_PERM_COMMAND_NPC_YELL, false, &HandleNpcYellCommand, "", NULL },
{ "tame", RBAC_PERM_COMMAND_NPC_TAME, false, &HandleNpcTameCommand, "", NULL },
{ "add", RBAC_PERM_COMMAND_NPC_ADD, false, NULL, "", npcAddCommandTable },
{ "delete", RBAC_PERM_COMMAND_NPC_DELETE, false, NULL, "", npcDeleteCommandTable },
{ "follow", RBAC_PERM_COMMAND_NPC_FOLLOW, false, NULL, "", npcFollowCommandTable },
{ "set", RBAC_PERM_COMMAND_NPC_SET, false, NULL, "", npcSetCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "npc", RBAC_PERM_MODERATOR_COMMANDS, false, NULL, "", npcCommandTable },
{ NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL }
{ "npc", RBAC_PERM_COMMAND_NPC, false, NULL, "", npcCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}

View File

@@ -0,0 +1,190 @@
/*
* Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "Chat.h"
#include "Language.h"
#include "Pet.h"
#include "Player.h"
#include "ObjectMgr.h"
#include "ScriptMgr.h"
class pet_commandscript : public CommandScript
{
public:
pet_commandscript() : CommandScript("pet_commandscript") { }
ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand petCommandTable[] =
{
{ "create", RBAC_PERM_COMMAND_PET_CREATE, false, &HandlePetCreateCommand, "", NULL },
{ "learn", RBAC_PERM_COMMAND_PET_LEARN, false, &HandlePetLearnCommand, "", NULL },
{ "unlearn", RBAC_PERM_COMMAND_PET_UNLEARN, false, &HandlePetUnlearnCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "pet", RBAC_PERM_COMMAND_PET, false, NULL, "", petCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}
static bool HandlePetCreateCommand(ChatHandler* handler, char const* /*args*/)
{
Player* player = handler->GetSession()->GetPlayer();
Creature* creatureTarget = handler->getSelectedCreature();
if (!creatureTarget || creatureTarget->IsPet() || creatureTarget->GetTypeId() == TYPEID_PLAYER)
{
handler->PSendSysMessage(LANG_SELECT_CREATURE);
handler->SetSentErrorMessage(true);
return false;
}
CreatureTemplate const* creatrueTemplate = sObjectMgr->GetCreatureTemplate(creatureTarget->GetEntry());
// Creatures with family 0 crashes the server
if (!creatrueTemplate->family)
{
handler->PSendSysMessage("This creature cannot be tamed. (family id: 0).");
handler->SetSentErrorMessage(true);
return false;
}
if (player->GetPetGUID())
{
handler->PSendSysMessage("You already have a pet");
handler->SetSentErrorMessage(true);
return false;
}
// Everything looks OK, create new pet
Pet* pet = new Pet(player, HUNTER_PET);
if (!pet->CreateBaseAtCreature(creatureTarget))
{
delete pet;
handler->PSendSysMessage("Error 1");
return false;
}
creatureTarget->setDeathState(JUST_DIED);
creatureTarget->RemoveCorpse();
creatureTarget->SetHealth(0); // just for nice GM-mode view
pet->SetUInt64Value(UNIT_FIELD_CREATEDBY, player->GetGUID());
pet->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE, player->getFaction());
if (!pet->InitStatsForLevel(creatureTarget->getLevel()))
{
TC_LOG_ERROR(LOG_FILTER_GENERAL, "InitStatsForLevel() in EffectTameCreature failed! Pet deleted.");
handler->PSendSysMessage("Error 2");
delete pet;
return false;
}
// prepare visual effect for levelup
pet->SetUInt32Value(UNIT_FIELD_LEVEL, creatureTarget->getLevel()-1);
pet->GetCharmInfo()->SetPetNumber(sObjectMgr->GeneratePetNumber(), true);
// this enables pet details window (Shift+P)
pet->InitPetCreateSpells();
pet->SetFullHealth();
pet->GetMap()->AddToMap(pet->ToCreature());
// visual effect for levelup
pet->SetUInt32Value(UNIT_FIELD_LEVEL, creatureTarget->getLevel());
player->SetMinion(pet, true);
pet->SavePetToDB(PET_SAVE_AS_CURRENT);
player->PetSpellInitialize();
return true;
}
static bool HandlePetLearnCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
Player* player = handler->GetSession()->GetPlayer();
Pet* pet = player->GetPet();
if (!pet)
{
handler->PSendSysMessage("You have no pet");
handler->SetSentErrorMessage(true);
return false;
}
uint32 spellId = handler->extractSpellIdFromLink((char*)args);
if (!spellId || !sSpellMgr->GetSpellInfo(spellId))
return false;
// Check if pet already has it
if (pet->HasSpell(spellId))
{
handler->PSendSysMessage("Pet already has spell: %u", spellId);
handler->SetSentErrorMessage(true);
return false;
}
// Check if spell is valid
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellId);
if (!spellInfo || !SpellMgr::IsSpellValid(spellInfo))
{
handler->PSendSysMessage(LANG_COMMAND_SPELL_BROKEN, spellId);
handler->SetSentErrorMessage(true);
return false;
}
pet->learnSpell(spellId);
handler->PSendSysMessage("Pet has learned spell %u", spellId);
return true;
}
static bool HandlePetUnlearnCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
Player* player = handler->GetSession()->GetPlayer();
Pet* pet = player->GetPet();
if (!pet)
{
handler->PSendSysMessage("You have no pet");
handler->SetSentErrorMessage(true);
return false;
}
uint32 spellId = handler->extractSpellIdFromLink((char*)args);
if (pet->HasSpell(spellId))
pet->removeSpell(spellId, false);
else
handler->PSendSysMessage("Pet doesn't have that spell");
return true;
}
};
void AddSC_pet_commandscript()
{
new pet_commandscript();
}

View File

@@ -37,16 +37,16 @@ public:
{
static ChatCommand questCommandTable[] =
{
{ "add", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleQuestAdd, "", NULL },
{ "complete", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleQuestComplete, "", NULL },
{ "remove", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleQuestRemove, "", NULL },
{ "reward", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleQuestReward, "", NULL },
{ NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL }
{ "add", RBAC_PERM_COMMAND_QUEST_ADD, false, &HandleQuestAdd, "", NULL },
{ "complete", RBAC_PERM_COMMAND_QUEST_COMPLETE, false, &HandleQuestComplete, "", NULL },
{ "remove", RBAC_PERM_COMMAND_QUEST_REMOVE, false, &HandleQuestRemove, "", NULL },
{ "reward", RBAC_PERM_COMMAND_QUEST_REWARD, false, &HandleQuestReward, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "quest", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, NULL, "", questCommandTable },
{ NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL }
{ "quest", RBAC_PERM_COMMAND_QUEST, false, NULL, "", questCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}

View File

@@ -64,7 +64,7 @@ public:
{ "grant", RBAC_PERM_COMMAND_RBAC_ACC_ROLE_GRANT, true, &HandleRBACRoleGrantCommand, "", NULL },
{ "deny", RBAC_PERM_COMMAND_RBAC_ACC_ROLE_DENY, true, &HandleRBACRoleDenyCommand, "", NULL },
{ "revoke", RBAC_PERM_COMMAND_RBAC_ACC_ROLE_REVOKE, true, &HandleRBACRoleRevokeCommand, "", NULL },
{ "", RBAC_PERM_COMMAND_RBAC_ACC_ROLE, true, &HandleRBACRoleListCommand, "", NULL },
{ "", RBAC_PERM_COMMAND_RBAC_ACC_ROLE, true, &HandleRBACRoleListCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
@@ -73,7 +73,7 @@ public:
{ "grant", RBAC_PERM_COMMAND_RBAC_ACC_PERM_GRANT, true, &HandleRBACPermGrantCommand, "", NULL },
{ "deny", RBAC_PERM_COMMAND_RBAC_ACC_PERM_DENY, true, &HandleRBACPermDenyCommand, "", NULL },
{ "revoke", RBAC_PERM_COMMAND_RBAC_ACC_PERM_REVOKE, true, &HandleRBACPermRevokeCommand, "", NULL },
{ "", RBAC_PERM_COMMAND_RBAC_ACC_PERM, true, &HandleRBACPermListCommand, "", NULL },
{ "", RBAC_PERM_COMMAND_RBAC_ACC_PERM, true, &HandleRBACPermListCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};

View File

@@ -50,115 +50,115 @@ public:
{
static ChatCommand reloadAllCommandTable[] =
{
{ "achievement", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadAllAchievementCommand, "", NULL },
{ "area", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadAllAreaCommand, "", NULL },
{ "gossips", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadAllGossipsCommand, "", NULL },
{ "item", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadAllItemCommand, "", NULL },
{ "locales", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadAllLocalesCommand, "", NULL },
{ "loot", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadAllLootCommand, "", NULL },
{ "npc", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadAllNpcCommand, "", NULL },
{ "quest", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadAllQuestCommand, "", NULL },
{ "scripts", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadAllScriptsCommand, "", NULL },
{ "spell", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadAllSpellCommand, "", NULL },
{ "", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadAllCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
{ "achievement", RBAC_PERM_COMMANDS_RELOAD_ALL_ACHIEVEMENT, true, &HandleReloadAllAchievementCommand, "", NULL },
{ "area", RBAC_PERM_COMMANDS_RELOAD_ALL_AREA, true, &HandleReloadAllAreaCommand, "", NULL },
{ "gossips", RBAC_PERM_COMMANDS_RELOAD_ALL_GOSSIP, true, &HandleReloadAllGossipsCommand, "", NULL },
{ "item", RBAC_PERM_COMMANDS_RELOAD_ALL_ITEM, true, &HandleReloadAllItemCommand, "", NULL },
{ "locales", RBAC_PERM_COMMANDS_RELOAD_ALL_LOCALES, true, &HandleReloadAllLocalesCommand, "", NULL },
{ "loot", RBAC_PERM_COMMANDS_RELOAD_ALL_LOOT, true, &HandleReloadAllLootCommand, "", NULL },
{ "npc", RBAC_PERM_COMMANDS_RELOAD_ALL_NPC, true, &HandleReloadAllNpcCommand, "", NULL },
{ "quest", RBAC_PERM_COMMANDS_RELOAD_ALL_QUEST, true, &HandleReloadAllQuestCommand, "", NULL },
{ "scripts", RBAC_PERM_COMMANDS_RELOAD_ALL_SCRIPTS, true, &HandleReloadAllScriptsCommand, "", NULL },
{ "spell", RBAC_PERM_COMMANDS_RELOAD_ALL_SPELL, true, &HandleReloadAllSpellCommand, "", NULL },
{ "", RBAC_PERM_COMMANDS_RELOAD_ALL, true, &HandleReloadAllCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand reloadCommandTable[] =
{
{ "auctions", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadAuctionsCommand, "", NULL },
{ "access_requirement", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadAccessRequirementCommand, "", NULL },
{ "achievement_criteria_data", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadAchievementCriteriaDataCommand, "", NULL },
{ "achievement_reward", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadAchievementRewardCommand, "", NULL },
{ "all", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", reloadAllCommandTable },
{ "areatrigger_involvedrelation", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadQuestAreaTriggersCommand, "", NULL },
{ "areatrigger_tavern", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadAreaTriggerTavernCommand, "", NULL },
{ "areatrigger_teleport", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadAreaTriggerTeleportCommand, "", NULL },
{ "autobroadcast", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadAutobroadcastCommand, "", NULL },
{ "command", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadCommandCommand, "", NULL },
{ "conditions", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadConditions, "", NULL },
{ "config", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadConfigCommand, "", NULL },
{ "creature_text", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadCreatureText, "", NULL },
{ "creature_questender", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadCreatureQuestEnderCommand, "", NULL },
{ "creature_linked_respawn", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleReloadLinkedRespawnCommand, "", NULL },
{ "creature_loot_template", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadLootTemplatesCreatureCommand, "", NULL },
{ "creature_onkill_reputation", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadOnKillReputationCommand, "", NULL },
{ "creature_queststarter", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadCreatureQuestStarterCommand, "", NULL },
{ "creature_summon_groups", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadCreatureSummonGroupsCommand, "", NULL },
{ "creature_template", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadCreatureTemplateCommand, "", NULL },
//{ "db_script_string", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadDbScriptStringCommand, "", NULL },
{ "disables", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadDisablesCommand, "", NULL },
{ "disenchant_loot_template", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadLootTemplatesDisenchantCommand, "", NULL },
{ "event_scripts", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadEventScriptsCommand, "", NULL },
{ "fishing_loot_template", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadLootTemplatesFishingCommand, "", NULL },
{ "game_graveyard_zone", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadGameGraveyardZoneCommand, "", NULL },
{ "game_tele", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadGameTeleCommand, "", NULL },
{ "gameobject_questender", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadGOQuestEnderCommand, "", NULL },
{ "gameobject_loot_template", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadLootTemplatesGameobjectCommand, "", NULL },
{ "gameobject_queststarter", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadGOQuestStarterCommand, "", NULL },
{ "gm_tickets", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadGMTicketsCommand, "", NULL },
{ "gossip_menu", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadGossipMenuCommand, "", NULL },
{ "gossip_menu_option", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadGossipMenuOptionCommand, "", NULL },
{ "item_enchantment_template", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadItemEnchantementsCommand, "", NULL },
{ "item_loot_template", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadLootTemplatesItemCommand, "", NULL },
{ "lfg_dungeon_rewards", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadLfgRewardsCommand, "", NULL },
{ "locales_achievement_reward", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadLocalesAchievementRewardCommand, "", NULL },
{ "locales_creature", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadLocalesCreatureCommand, "", NULL },
{ "locales_creature_text", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadLocalesCreatureTextCommand, "", NULL },
{ "locales_gameobject", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadLocalesGameobjectCommand, "", NULL },
{ "locales_gossip_menu_option", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadLocalesGossipMenuOptionCommand, "", NULL },
{ "locales_item", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadLocalesItemCommand, "", NULL },
{ "locales_npc_text", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadLocalesNpcTextCommand, "", NULL },
{ "locales_page_text", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadLocalesPageTextCommand, "", NULL },
{ "locales_points_of_interest", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadLocalesPointsOfInterestCommand, "", NULL },
{ "locales_quest", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadLocalesQuestCommand, "", NULL },
{ "mail_level_reward", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadMailLevelRewardCommand, "", NULL },
{ "mail_loot_template", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadLootTemplatesMailCommand, "", NULL },
{ "milling_loot_template", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadLootTemplatesMillingCommand, "", NULL },
{ "npc_spellclick_spells", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadSpellClickSpellsCommand, "", NULL},
{ "npc_trainer", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadNpcTrainerCommand, "", NULL },
{ "npc_vendor", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadNpcVendorCommand, "", NULL },
{ "page_text", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadPageTextsCommand, "", NULL },
{ "pickpocketing_loot_template", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadLootTemplatesPickpocketingCommand, "", NULL},
{ "points_of_interest", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadPointsOfInterestCommand, "", NULL },
{ "prospecting_loot_template", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadLootTemplatesProspectingCommand, "", NULL },
{ "quest_poi", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadQuestPOICommand, "", NULL },
{ "quest_template", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadQuestTemplateCommand, "", NULL },
{ "rbac", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadRBACCommand, "", NULL },
{ "reference_loot_template", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadLootTemplatesReferenceCommand, "", NULL },
{ "reserved_name", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadReservedNameCommand, "", NULL },
{ "reputation_reward_rate", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadReputationRewardRateCommand, "", NULL },
{ "reputation_spillover_template", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadReputationRewardRateCommand, "", NULL },
{ "skill_discovery_template", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadSkillDiscoveryTemplateCommand, "", NULL },
{ "skill_extra_item_template", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadSkillExtraItemTemplateCommand, "", NULL },
{ "skill_fishing_base_level", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadSkillFishingBaseLevelCommand, "", NULL },
{ "skinning_loot_template", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadLootTemplatesSkinningCommand, "", NULL },
{ "smart_scripts", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadSmartScripts, "", NULL },
{ "spell_required", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadSpellRequiredCommand, "", NULL },
{ "spell_area", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadSpellAreaCommand, "", NULL },
{ "spell_bonus_data", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadSpellBonusesCommand, "", NULL },
{ "spell_group", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadSpellGroupsCommand, "", NULL },
{ "spell_learn_spell", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadSpellLearnSpellCommand, "", NULL },
{ "spell_loot_template", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadLootTemplatesSpellCommand, "", NULL },
{ "spell_linked_spell", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadSpellLinkedSpellCommand, "", NULL },
{ "spell_pet_auras", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadSpellPetAurasCommand, "", NULL },
{ "spell_proc_event", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadSpellProcEventCommand, "", NULL },
{ "spell_proc", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadSpellProcsCommand, "", NULL },
{ "spell_scripts", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadSpellScriptsCommand, "", NULL },
{ "spell_target_position", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadSpellTargetPositionCommand, "", NULL },
{ "spell_threats", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadSpellThreatsCommand, "", NULL },
{ "spell_group_stack_rules", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadSpellGroupStackRulesCommand, "", NULL },
{ "trinity_string", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadTrinityStringCommand, "", NULL },
{ "warden_action", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadWardenactionCommand, "", NULL },
{ "waypoint_scripts", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadWpScriptsCommand, "", NULL },
{ "waypoint_data", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadWpCommand, "", NULL },
{ "vehicle_accessory", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadVehicleAccessoryCommand, "", NULL },
{ "vehicle_template_accessory", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleReloadVehicleTemplateAccessoryCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
{ "auctions", RBAC_PERM_COMMANDS_RELOAD_AUCTIONS, true, &HandleReloadAuctionsCommand, "", NULL },
{ "access_requirement", RBAC_PERM_COMMANDS_RELOAD_ACCESS_REQUIREMENT, true, &HandleReloadAccessRequirementCommand, "", NULL },
{ "achievement_criteria_data", RBAC_PERM_COMMANDS_RELOAD_ACHIEVEMENT_CRITERIA_DATA, true, &HandleReloadAchievementCriteriaDataCommand, "", NULL },
{ "achievement_reward", RBAC_PERM_COMMANDS_RELOAD_ACHIEVEMENT_REWARD, true, &HandleReloadAchievementRewardCommand, "", NULL },
{ "all", RBAC_PERM_COMMANDS_RELOAD_ALL, true, NULL, "", reloadAllCommandTable },
{ "areatrigger_involvedrelation", RBAC_PERM_COMMANDS_RELOAD_AREATRIGGER_INVOLVEDRELATION, true, &HandleReloadQuestAreaTriggersCommand, "", NULL },
{ "areatrigger_tavern", RBAC_PERM_COMMANDS_RELOAD_AREATRIGGER_TAVERN, true, &HandleReloadAreaTriggerTavernCommand, "", NULL },
{ "areatrigger_teleport", RBAC_PERM_COMMANDS_RELOAD_AREATRIGGER_TELEPORT, true, &HandleReloadAreaTriggerTeleportCommand, "", NULL },
{ "autobroadcast", RBAC_PERM_COMMANDS_RELOAD_AUTOBROADCAST, true, &HandleReloadAutobroadcastCommand, "", NULL },
{ "command", RBAC_PERM_COMMANDS_RELOAD_COMMAND, true, &HandleReloadCommandCommand, "", NULL },
{ "conditions", RBAC_PERM_COMMANDS_RELOAD_CONDITIONS, true, &HandleReloadConditions, "", NULL },
{ "config", RBAC_PERM_COMMANDS_RELOAD_CONFIG, true, &HandleReloadConfigCommand, "", NULL },
{ "creature_text", RBAC_PERM_COMMANDS_RELOAD_CREATURE_TEXT, true, &HandleReloadCreatureText, "", NULL },
{ "creature_questender", RBAC_PERM_COMMANDS_RELOAD_CREATURE_QUESTENDER, true, &HandleReloadCreatureQuestEnderCommand, "", NULL },
{ "creature_linked_respawn", RBAC_PERM_COMMANDS_RELOAD_CREATURE_LINKED_RESPAWN, true, &HandleReloadLinkedRespawnCommand, "", NULL },
{ "creature_loot_template", RBAC_PERM_COMMANDS_RELOAD_CREATURE_LOOT_TEMPLATE, true, &HandleReloadLootTemplatesCreatureCommand, "", NULL },
{ "creature_onkill_reputation", RBAC_PERM_COMMANDS_RELOAD_CREATURE_ONKILL_REPUTATION, true, &HandleReloadOnKillReputationCommand, "", NULL },
{ "creature_queststarter", RBAC_PERM_COMMANDS_RELOAD_CREATURE_QUESTSTARTER, true, &HandleReloadCreatureQuestStarterCommand, "", NULL },
{ "creature_summon_groups", RBAC_PERM_COMMANDS_RELOAD_CREATURE_SUMMON_GROUPS, true, &HandleReloadCreatureSummonGroupsCommand, "", NULL },
{ "creature_template", RBAC_PERM_COMMANDS_RELOAD_CREATURE_TEMPLATE, true, &HandleReloadCreatureTemplateCommand, "", NULL },
//{ "db_script_string", RBAC_PERM_COMMANDS_RELOAD_, true, &HandleReloadDbScriptStringCommand, "", NULL },
{ "disables", RBAC_PERM_COMMANDS_RELOAD_DISABLES, true, &HandleReloadDisablesCommand, "", NULL },
{ "disenchant_loot_template", RBAC_PERM_COMMANDS_RELOAD_DISENCHANT_LOOT_TEMPLATE, true, &HandleReloadLootTemplatesDisenchantCommand, "", NULL },
{ "event_scripts", RBAC_PERM_COMMANDS_RELOAD_EVENT_SCRIPTS, true, &HandleReloadEventScriptsCommand, "", NULL },
{ "fishing_loot_template", RBAC_PERM_COMMANDS_RELOAD_FISHING_LOOT_TEMPLATE, true, &HandleReloadLootTemplatesFishingCommand, "", NULL },
{ "game_graveyard_zone", RBAC_PERM_COMMANDS_RELOAD_GAME_GRAVEYARD_ZONE, true, &HandleReloadGameGraveyardZoneCommand, "", NULL },
{ "game_tele", RBAC_PERM_COMMANDS_RELOAD_GAME_TELE, true, &HandleReloadGameTeleCommand, "", NULL },
{ "gameobject_questender", RBAC_PERM_COMMANDS_RELOAD_GAMEOBJECT_QUESTENDER, true, &HandleReloadGOQuestEnderCommand, "", NULL },
{ "gameobject_loot_template", RBAC_PERM_COMMANDS_RELOAD_GAMEOBJECT_QUEST_LOOT_TEMPLATE, true, &HandleReloadLootTemplatesGameobjectCommand, "", NULL },
{ "gameobject_queststarter", RBAC_PERM_COMMANDS_RELOAD_GAMEOBJECT_QUESTSTARTER, true, &HandleReloadGOQuestStarterCommand, "", NULL },
{ "gm_tickets", RBAC_PERM_COMMANDS_RELOAD_GM_TICKETS, true, &HandleReloadGMTicketsCommand, "", NULL },
{ "gossip_menu", RBAC_PERM_COMMANDS_RELOAD_GOSSIP_MENU, true, &HandleReloadGossipMenuCommand, "", NULL },
{ "gossip_menu_option", RBAC_PERM_COMMANDS_RELOAD_GOSSIP_MENU_OPTION, true, &HandleReloadGossipMenuOptionCommand, "", NULL },
{ "item_enchantment_template", RBAC_PERM_COMMANDS_RELOAD_ITEM_ENCHANTMENT_TEMPLATE, true, &HandleReloadItemEnchantementsCommand, "", NULL },
{ "item_loot_template", RBAC_PERM_COMMANDS_RELOAD_ITEM_LOOT_TEMPLATE, true, &HandleReloadLootTemplatesItemCommand, "", NULL },
{ "lfg_dungeon_rewards", RBAC_PERM_COMMANDS_RELOAD_LFG_DUNGEON_REWARDS, true, &HandleReloadLfgRewardsCommand, "", NULL },
{ "locales_achievement_reward", RBAC_PERM_COMMANDS_RELOAD_LOCALES_ACHIEVEMENT_REWARD, true, &HandleReloadLocalesAchievementRewardCommand, "", NULL },
{ "locales_creature", RBAC_PERM_COMMANDS_RELOAD_LOCALES_CRETURE, true, &HandleReloadLocalesCreatureCommand, "", NULL },
{ "locales_creature_text", RBAC_PERM_COMMANDS_RELOAD_LOCALES_CRETURE_TEXT, true, &HandleReloadLocalesCreatureTextCommand, "", NULL },
{ "locales_gameobject", RBAC_PERM_COMMANDS_RELOAD_LOCALES_GAMEOBJECT, true, &HandleReloadLocalesGameobjectCommand, "", NULL },
{ "locales_gossip_menu_option", RBAC_PERM_COMMANDS_RELOAD_LOCALES_GOSSIP_MENU_OPTION, true, &HandleReloadLocalesGossipMenuOptionCommand, "", NULL },
{ "locales_item", RBAC_PERM_COMMANDS_RELOAD_LOCALES_ITEM, true, &HandleReloadLocalesItemCommand, "", NULL },
{ "locales_npc_text", RBAC_PERM_COMMANDS_RELOAD_LOCALES_NPC_TEXT, true, &HandleReloadLocalesNpcTextCommand, "", NULL },
{ "locales_page_text", RBAC_PERM_COMMANDS_RELOAD_LOCALES_PAGE_TEXT, true, &HandleReloadLocalesPageTextCommand, "", NULL },
{ "locales_points_of_interest", RBAC_PERM_COMMANDS_RELOAD_LOCALES_POINTS_OF_INTEREST, true, &HandleReloadLocalesPointsOfInterestCommand, "", NULL },
{ "locales_quest", RBAC_PERM_COMMANDS_RELOAD_LOCALES_QUEST, true, &HandleReloadLocalesQuestCommand, "", NULL },
{ "mail_level_reward", RBAC_PERM_COMMANDS_RELOAD_MAIL_LEVEL_REWARD, true, &HandleReloadMailLevelRewardCommand, "", NULL },
{ "mail_loot_template", RBAC_PERM_COMMANDS_RELOAD_MAIL_LOOT_TEMPLATE, true, &HandleReloadLootTemplatesMailCommand, "", NULL },
{ "milling_loot_template", RBAC_PERM_COMMANDS_RELOAD_MILLING_LOOT_TEMPLATE, true, &HandleReloadLootTemplatesMillingCommand, "", NULL },
{ "npc_spellclick_spells", RBAC_PERM_COMMANDS_RELOAD_NPC_SPELLCLICK_SPELLS, true, &HandleReloadSpellClickSpellsCommand, "", NULL},
{ "npc_trainer", RBAC_PERM_COMMANDS_RELOAD_NPC_TRAINER, true, &HandleReloadNpcTrainerCommand, "", NULL },
{ "npc_vendor", RBAC_PERM_COMMANDS_RELOAD_NPC_VENDOR, true, &HandleReloadNpcVendorCommand, "", NULL },
{ "page_text", RBAC_PERM_COMMANDS_RELOAD_PAGE_TEXT, true, &HandleReloadPageTextsCommand, "", NULL },
{ "pickpocketing_loot_template", RBAC_PERM_COMMANDS_RELOAD_PICKPOCKETING_LOOT_TEMPLATE, true, &HandleReloadLootTemplatesPickpocketingCommand, "", NULL},
{ "points_of_interest", RBAC_PERM_COMMANDS_RELOAD_POINTS_OF_INTEREST, true, &HandleReloadPointsOfInterestCommand, "", NULL },
{ "prospecting_loot_template", RBAC_PERM_COMMANDS_RELOAD_PROSPECTING_LOOT_TEMPLATE, true, &HandleReloadLootTemplatesProspectingCommand, "", NULL },
{ "quest_poi", RBAC_PERM_COMMANDS_RELOAD_QUEST_POI, true, &HandleReloadQuestPOICommand, "", NULL },
{ "quest_template", RBAC_PERM_COMMANDS_RELOAD_QUEST_TEMPLATE, true, &HandleReloadQuestTemplateCommand, "", NULL },
{ "rbac", RBAC_PERM_COMMANDS_RELOAD_RBAC, true, &HandleReloadRBACCommand, "", NULL },
{ "reference_loot_template", RBAC_PERM_COMMANDS_RELOAD_REFERENCE_LOOT_TEMPLATE, true, &HandleReloadLootTemplatesReferenceCommand, "", NULL },
{ "reserved_name", RBAC_PERM_COMMANDS_RELOAD_RESERVED_NAME, true, &HandleReloadReservedNameCommand, "", NULL },
{ "reputation_reward_rate", RBAC_PERM_COMMANDS_RELOAD_REPUTATION_REWARD_RATE, true, &HandleReloadReputationRewardRateCommand, "", NULL },
{ "reputation_spillover_template", RBAC_PERM_COMMANDS_RELOAD_SPILLOVER_TEMPLATE, true, &HandleReloadReputationRewardRateCommand, "", NULL },
{ "skill_discovery_template", RBAC_PERM_COMMANDS_RELOAD_SKILL_DISCOVERY_TEMPLATE, true, &HandleReloadSkillDiscoveryTemplateCommand, "", NULL },
{ "skill_extra_item_template", RBAC_PERM_COMMANDS_RELOAD_SKILL_EXTRA_ITEM_TEMPLATE, true, &HandleReloadSkillExtraItemTemplateCommand, "", NULL },
{ "skill_fishing_base_level", RBAC_PERM_COMMANDS_RELOAD_SKILL_FISHING_BASE_LEVEL, true, &HandleReloadSkillFishingBaseLevelCommand, "", NULL },
{ "skinning_loot_template", RBAC_PERM_COMMANDS_RELOAD_SKINNING_LOOT_TEMPLATE, true, &HandleReloadLootTemplatesSkinningCommand, "", NULL },
{ "smart_scripts", RBAC_PERM_COMMANDS_RELOAD_SMART_SCRIPTS, true, &HandleReloadSmartScripts, "", NULL },
{ "spell_required", RBAC_PERM_COMMANDS_RELOAD_SPELL_REQUIRED, true, &HandleReloadSpellRequiredCommand, "", NULL },
{ "spell_area", RBAC_PERM_COMMANDS_RELOAD_SPELL_AREA, true, &HandleReloadSpellAreaCommand, "", NULL },
{ "spell_bonus_data", RBAC_PERM_COMMANDS_RELOAD_SPELL_BONUS_DATA, true, &HandleReloadSpellBonusesCommand, "", NULL },
{ "spell_group", RBAC_PERM_COMMANDS_RELOAD_SPELL_GROUP, true, &HandleReloadSpellGroupsCommand, "", NULL },
{ "spell_learn_spell", RBAC_PERM_COMMANDS_RELOAD_SPELL_LEARN_SPELL, true, &HandleReloadSpellLearnSpellCommand, "", NULL },
{ "spell_loot_template", RBAC_PERM_COMMANDS_RELOAD_SPELL_LOOT_TEMPLATE, true, &HandleReloadLootTemplatesSpellCommand, "", NULL },
{ "spell_linked_spell", RBAC_PERM_COMMANDS_RELOAD_SPELL_LINKED_SPELL, true, &HandleReloadSpellLinkedSpellCommand, "", NULL },
{ "spell_pet_auras", RBAC_PERM_COMMANDS_RELOAD_SPELL_PET_AURAS, true, &HandleReloadSpellPetAurasCommand, "", NULL },
{ "spell_proc_event", RBAC_PERM_COMMANDS_RELOAD_SPELL_PROC_EVENT, true, &HandleReloadSpellProcEventCommand, "", NULL },
{ "spell_proc", RBAC_PERM_COMMANDS_RELOAD_SPELL_PROC, true, &HandleReloadSpellProcsCommand, "", NULL },
{ "spell_scripts", RBAC_PERM_COMMANDS_RELOAD_SPELL_SCRIPTS, true, &HandleReloadSpellScriptsCommand, "", NULL },
{ "spell_target_position", RBAC_PERM_COMMANDS_RELOAD_SPELL_TARGET_POSITION, true, &HandleReloadSpellTargetPositionCommand, "", NULL },
{ "spell_threats", RBAC_PERM_COMMANDS_RELOAD_SPELL_THREATS, true, &HandleReloadSpellThreatsCommand, "", NULL },
{ "spell_group_stack_rules", RBAC_PERM_COMMANDS_RELOAD_SPELL_GROUP_STACK_RULES, true, &HandleReloadSpellGroupStackRulesCommand, "", NULL },
{ "trinity_string", RBAC_PERM_COMMANDS_RELOAD_TRINITY_STRING, true, &HandleReloadTrinityStringCommand, "", NULL },
{ "warden_action", RBAC_PERM_COMMANDS_RELOAD_WARDEN_ACTION, true, &HandleReloadWardenactionCommand, "", NULL },
{ "waypoint_scripts", RBAC_PERM_COMMANDS_RELOAD_WAYPOINT_SCRIPTS, true, &HandleReloadWpScriptsCommand, "", NULL },
{ "waypoint_data", RBAC_PERM_COMMANDS_RELOAD_WAYPOINT_DATA, true, &HandleReloadWpCommand, "", NULL },
{ "vehicle_accessory", RBAC_PERM_COMMANDS_RELOAD_VEHICLE_ACCESORY, true, &HandleReloadVehicleAccessoryCommand, "", NULL },
{ "vehicle_template_accessory", RBAC_PERM_COMMANDS_RELOAD_VEHICLE_TEMPLATE_ACCESSORY, true, &HandleReloadVehicleTemplateAccessoryCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "reload", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", reloadCommandTable },
{ NULL, 0, false, NULL, "", NULL }
{ "reload", RBAC_PERM_COMMANDS_RELOAD, true, NULL, "", reloadCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}

View File

@@ -39,19 +39,19 @@ public:
{
static ChatCommand resetCommandTable[] =
{
{ "achievements", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleResetAchievementsCommand, "", NULL },
{ "honor", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleResetHonorCommand, "", NULL },
{ "level", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleResetLevelCommand, "", NULL },
{ "spells", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleResetSpellsCommand, "", NULL },
{ "stats", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleResetStatsCommand, "", NULL },
{ "talents", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleResetTalentsCommand, "", NULL },
{ "all", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleResetAllCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
{ "achievements", RBAC_PERM_COMMAND_RESET_ACHIEVEMENTS, true, &HandleResetAchievementsCommand, "", NULL },
{ "honor", RBAC_PERM_COMMAND_RESET_HONOR, true, &HandleResetHonorCommand, "", NULL },
{ "level", RBAC_PERM_COMMAND_RESET_LEVEL, true, &HandleResetLevelCommand, "", NULL },
{ "spells", RBAC_PERM_COMMAND_RESET_SPELLS, true, &HandleResetSpellsCommand, "", NULL },
{ "stats", RBAC_PERM_COMMAND_RESET_STATS, true, &HandleResetStatsCommand, "", NULL },
{ "talents", RBAC_PERM_COMMAND_RESET_TALENTS, true, &HandleResetTalentsCommand, "", NULL },
{ "all", RBAC_PERM_COMMAND_RESET_ALL, true, &HandleResetAllCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "reset", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", resetCommandTable },
{ NULL, 0, false, NULL, "", NULL }
{ "reset", RBAC_PERM_COMMAND_RESET, true, NULL, "", resetCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}

View File

@@ -0,0 +1,289 @@
/*
* Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "Chat.h"
#include "Language.h"
#include "Pet.h"
#include "Player.h"
#include "ObjectMgr.h"
#include "ScriptMgr.h"
class send_commandscript : public CommandScript
{
public:
send_commandscript() : CommandScript("send_commandscript") { }
ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand sendCommandTable[] =
{
{ "items", RBAC_PERM_COMMAND_SEND_ITEMS, true, &HandleSendItemsCommand, "", NULL },
{ "mail", RBAC_PERM_COMMAND_SEND_MAIL, true, &HandleSendMailCommand, "", NULL },
{ "message", RBAC_PERM_COMMAND_SEND_MESSAGE, true, &HandleSendMessageCommand, "", NULL },
{ "money", RBAC_PERM_COMMAND_SEND_MONEY, true, &HandleSendMoneyCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "send", RBAC_PERM_COMMAND_SEND, false, NULL, "", sendCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}
// Send mail by command
static bool HandleSendMailCommand(ChatHandler* handler, char const* args)
{
// format: name "subject text" "mail text"
Player* target;
uint64 targetGuid;
std::string targetName;
if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid, &targetName))
return false;
char* tail1 = strtok(NULL, "");
if (!tail1)
return false;
char const* msgSubject = handler->extractQuotedArg(tail1);
if (!msgSubject)
return false;
char* tail2 = strtok(NULL, "");
if (!tail2)
return false;
char const* msgText = handler->extractQuotedArg(tail2);
if (!msgText)
return false;
// msgSubject, msgText isn't NUL after prev. check
std::string subject = msgSubject;
std::string text = msgText;
// from console show not existed sender
MailSender sender(MAIL_NORMAL, handler->GetSession() ? handler->GetSession()->GetPlayer()->GetGUIDLow() : 0, MAIL_STATIONERY_GM);
/// @todo Fix poor design
SQLTransaction trans = CharacterDatabase.BeginTransaction();
MailDraft(subject, text)
.SendMailTo(trans, MailReceiver(target, GUID_LOPART(targetGuid)), sender);
CharacterDatabase.CommitTransaction(trans);
std::string nameLink = handler->playerLink(targetName);
handler->PSendSysMessage(LANG_MAIL_SENT, nameLink.c_str());
return true;
}
// Send items by mail
static bool HandleSendItemsCommand(ChatHandler* handler, char const* args)
{
// format: name "subject text" "mail text" item1[:count1] item2[:count2] ... item12[:count12]
Player* receiver;
uint64 receiverGuid;
std::string receiverName;
if (!handler->extractPlayerTarget((char*)args, &receiver, &receiverGuid, &receiverName))
return false;
char* tail1 = strtok(NULL, "");
if (!tail1)
return false;
char const* msgSubject = handler->extractQuotedArg(tail1);
if (!msgSubject)
return false;
char* tail2 = strtok(NULL, "");
if (!tail2)
return false;
char const* msgText = handler->extractQuotedArg(tail2);
if (!msgText)
return false;
// msgSubject, msgText isn't NUL after prev. check
std::string subject = msgSubject;
std::string text = msgText;
// extract items
typedef std::pair<uint32, uint32> ItemPair;
typedef std::list< ItemPair > ItemPairs;
ItemPairs items;
// get all tail string
char* tail = strtok(NULL, "");
// get from tail next item str
while (char* itemStr = strtok(tail, " "))
{
// and get new tail
tail = strtok(NULL, "");
// parse item str
char const* itemIdStr = strtok(itemStr, ":");
char const* itemCountStr = strtok(NULL, " ");
uint32 itemId = atoi(itemIdStr);
if (!itemId)
return false;
ItemTemplate const* item_proto = sObjectMgr->GetItemTemplate(itemId);
if (!item_proto)
{
handler->PSendSysMessage(LANG_COMMAND_ITEMIDINVALID, itemId);
handler->SetSentErrorMessage(true);
return false;
}
uint32 itemCount = itemCountStr ? atoi(itemCountStr) : 1;
if (itemCount < 1 || (item_proto->MaxCount > 0 && itemCount > uint32(item_proto->MaxCount)))
{
handler->PSendSysMessage(LANG_COMMAND_INVALID_ITEM_COUNT, itemCount, itemId);
handler->SetSentErrorMessage(true);
return false;
}
while (itemCount > item_proto->GetMaxStackSize())
{
items.push_back(ItemPair(itemId, item_proto->GetMaxStackSize()));
itemCount -= item_proto->GetMaxStackSize();
}
items.push_back(ItemPair(itemId, itemCount));
if (items.size() > MAX_MAIL_ITEMS)
{
handler->PSendSysMessage(LANG_COMMAND_MAIL_ITEMS_LIMIT, MAX_MAIL_ITEMS);
handler->SetSentErrorMessage(true);
return false;
}
}
// from console show not existed sender
MailSender sender(MAIL_NORMAL, handler->GetSession() ? handler->GetSession()->GetPlayer()->GetGUIDLow() : 0, MAIL_STATIONERY_GM);
// fill mail
MailDraft draft(subject, text);
SQLTransaction trans = CharacterDatabase.BeginTransaction();
for (ItemPairs::const_iterator itr = items.begin(); itr != items.end(); ++itr)
{
if (Item* item = Item::CreateItem(itr->first, itr->second, handler->GetSession() ? handler->GetSession()->GetPlayer() : 0))
{
item->SaveToDB(trans); // save for prevent lost at next mail load, if send fail then item will deleted
draft.AddItem(item);
}
}
draft.SendMailTo(trans, MailReceiver(receiver, GUID_LOPART(receiverGuid)), sender);
CharacterDatabase.CommitTransaction(trans);
std::string nameLink = handler->playerLink(receiverName);
handler->PSendSysMessage(LANG_MAIL_SENT, nameLink.c_str());
return true;
}
/// Send money by mail
static bool HandleSendMoneyCommand(ChatHandler* handler, char const* args)
{
/// format: name "subject text" "mail text" money
Player* receiver;
uint64 receiverGuid;
std::string receiverName;
if (!handler->extractPlayerTarget((char*)args, &receiver, &receiverGuid, &receiverName))
return false;
char* tail1 = strtok(NULL, "");
if (!tail1)
return false;
char* msgSubject = handler->extractQuotedArg(tail1);
if (!msgSubject)
return false;
char* tail2 = strtok(NULL, "");
if (!tail2)
return false;
char* msgText = handler->extractQuotedArg(tail2);
if (!msgText)
return false;
char* moneyStr = strtok(NULL, "");
int32 money = moneyStr ? atoi(moneyStr) : 0;
if (money <= 0)
return false;
// msgSubject, msgText isn't NUL after prev. check
std::string subject = msgSubject;
std::string text = msgText;
// from console show not existed sender
MailSender sender(MAIL_NORMAL, handler->GetSession() ? handler->GetSession()->GetPlayer()->GetGUIDLow() : 0, MAIL_STATIONERY_GM);
SQLTransaction trans = CharacterDatabase.BeginTransaction();
MailDraft(subject, text)
.AddMoney(money)
.SendMailTo(trans, MailReceiver(receiver, GUID_LOPART(receiverGuid)), sender);
CharacterDatabase.CommitTransaction(trans);
std::string nameLink = handler->playerLink(receiverName);
handler->PSendSysMessage(LANG_MAIL_SENT, nameLink.c_str());
return true;
}
/// Send a message to a player in game
static bool HandleSendMessageCommand(ChatHandler* handler, char const* args)
{
/// - Find the player
Player* player;
if (!handler->extractPlayerTarget((char*)args, &player))
return false;
char* msgStr = strtok(NULL, "");
if (!msgStr)
return false;
///- Check that he is not logging out.
if (player->GetSession()->isLogingOut())
{
handler->SendSysMessage(LANG_PLAYER_NOT_FOUND);
handler->SetSentErrorMessage(true);
return false;
}
/// - Send the message
// Use SendAreaTriggerMessage for fastest delivery.
player->GetSession()->SendAreaTriggerMessage("%s", msgStr);
player->GetSession()->SendAreaTriggerMessage("|cffff0000[Message from administrator]:|r");
// Confirmation message
std::string nameLink = handler->GetNameLink(player);
handler->PSendSysMessage(LANG_SENDMESSAGE, nameLink.c_str(), msgStr);
return true;
}
};
void AddSC_send_commandscript()
{
new send_commandscript();
}

View File

@@ -39,60 +39,60 @@ public:
{
static ChatCommand serverIdleRestartCommandTable[] =
{
{ "cancel", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleServerShutDownCancelCommand, "", NULL },
{ "" , RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleServerIdleRestartCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
{ "cancel", RBAC_PERM_COMMAND_SERVER_IDLERESTART_CANCEL, true, &HandleServerShutDownCancelCommand, "", NULL },
{ "" , RBAC_PERM_COMMAND_SERVER_IDLERESTART, true, &HandleServerIdleRestartCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand serverIdleShutdownCommandTable[] =
{
{ "cancel", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleServerShutDownCancelCommand, "", NULL },
{ "" , RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleServerIdleShutDownCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
{ "cancel", RBAC_PERM_COMMAND_SERVER_IDLESHUTDOWN_CANCEL, true, &HandleServerShutDownCancelCommand, "", NULL },
{ "" , RBAC_PERM_COMMAND_SERVER_IDLESHUTDOWN, true, &HandleServerIdleShutDownCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand serverRestartCommandTable[] =
{
{ "cancel", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleServerShutDownCancelCommand, "", NULL },
{ "" , RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleServerRestartCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
{ "cancel", RBAC_PERM_COMMAND_SERVER_RESTART_CANCEL, true, &HandleServerShutDownCancelCommand, "", NULL },
{ "" , RBAC_PERM_COMMAND_SERVER_RESTART, true, &HandleServerRestartCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand serverShutdownCommandTable[] =
{
{ "cancel", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleServerShutDownCancelCommand, "", NULL },
{ "" , RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleServerShutDownCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
{ "cancel", RBAC_PERM_COMMAND_SERVER_SHUTDOWN_CANCEL, true, &HandleServerShutDownCancelCommand, "", NULL },
{ "" , RBAC_PERM_COMMAND_SERVER_SHUTDOWN, true, &HandleServerShutDownCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand serverSetCommandTable[] =
{
{ "difftime", RBAC_PERM_CONSOLE_COMMANDS, true, &HandleServerSetDiffTimeCommand, "", NULL },
{ "loglevel", RBAC_PERM_CONSOLE_COMMANDS, true, &HandleServerSetLogLevelCommand, "", NULL },
{ "motd", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleServerSetMotdCommand, "", NULL },
{ "closed", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleServerSetClosedCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
{ "difftime", RBAC_PERM_COMMAND_SERVER_SET_DIFFTIME, true, &HandleServerSetDiffTimeCommand, "", NULL },
{ "loglevel", RBAC_PERM_COMMAND_SERVER_SET_LOGLEVEL, true, &HandleServerSetLogLevelCommand, "", NULL },
{ "motd", RBAC_PERM_COMMAND_SERVER_SET_MOTD, true, &HandleServerSetMotdCommand, "", NULL },
{ "closed", RBAC_PERM_COMMAND_SERVER_SET_CLOSED, true, &HandleServerSetClosedCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand serverCommandTable[] =
{
{ "corpses", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleServerCorpsesCommand, "", NULL },
{ "exit", RBAC_PERM_CONSOLE_COMMANDS, true, &HandleServerExitCommand, "", NULL },
{ "idlerestart", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", serverIdleRestartCommandTable },
{ "idleshutdown", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", serverIdleShutdownCommandTable },
{ "info", RBAC_PERM_PLAYER_COMMANDS, true, &HandleServerInfoCommand, "", NULL },
{ "motd", RBAC_PERM_PLAYER_COMMANDS, true, &HandleServerMotdCommand, "", NULL },
{ "plimit", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleServerPLimitCommand, "", NULL },
{ "restart", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", serverRestartCommandTable },
{ "shutdown", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", serverShutdownCommandTable },
{ "set", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", serverSetCommandTable },
{ NULL, 0, false, NULL, "", NULL }
{ "corpses", RBAC_PERM_COMMAND_SERVER_CORPSES, true, &HandleServerCorpsesCommand, "", NULL },
{ "exit", RBAC_PERM_COMMAND_SERVER_EXIT, true, &HandleServerExitCommand, "", NULL },
{ "idlerestart", RBAC_PERM_COMMAND_SERVER_IDLERESTART, true, NULL, "", serverIdleRestartCommandTable },
{ "idleshutdown", RBAC_PERM_COMMAND_SERVER_IDLESHUTDOWN, true, NULL, "", serverIdleShutdownCommandTable },
{ "info", RBAC_PERM_COMMAND_SERVER_INFO, true, &HandleServerInfoCommand, "", NULL },
{ "motd", RBAC_PERM_COMMAND_SERVER_MOTD, true, &HandleServerMotdCommand, "", NULL },
{ "plimit", RBAC_PERM_COMMAND_SERVER_PLIMIT, true, &HandleServerPLimitCommand, "", NULL },
{ "restart", RBAC_PERM_COMMAND_SERVER_RESTART, true, NULL, "", serverRestartCommandTable },
{ "shutdown", RBAC_PERM_COMMAND_SERVER_SHUTDOWN, true, NULL, "", serverShutdownCommandTable },
{ "set", RBAC_PERM_COMMAND_SERVER_SET, true, NULL, "", serverSetCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "server", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", serverCommandTable },
{ NULL, 0, false, NULL, "", NULL }
{ "server", RBAC_PERM_COMMAND_SERVER, true, NULL, "", serverCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}

View File

@@ -39,17 +39,17 @@ public:
{
static ChatCommand teleCommandTable[] =
{
{ "add", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleTeleAddCommand, "", NULL },
{ "del", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleTeleDelCommand, "", NULL },
{ "name", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleTeleNameCommand, "", NULL },
{ "group", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleTeleGroupCommand, "", NULL },
{ "", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleTeleCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
{ "add", RBAC_PERM_COMMAND_TELE_ADD, false, &HandleTeleAddCommand, "", NULL },
{ "del", RBAC_PERM_COMMAND_TELE_DEL, true, &HandleTeleDelCommand, "", NULL },
{ "name", RBAC_PERM_COMMAND_TELE_NAME, true, &HandleTeleNameCommand, "", NULL },
{ "group", RBAC_PERM_COMMAND_TELE_GROUP, false, &HandleTeleGroupCommand, "", NULL },
{ "", RBAC_PERM_COMMAND_TELE, false, &HandleTeleCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "tele", RBAC_PERM_MODERATOR_COMMANDS, false, NULL, "", teleCommandTable },
{ NULL, 0, false, NULL, "", NULL }
{ "tele", RBAC_PERM_COMMAND_TELE, false, NULL, "", teleCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}

View File

@@ -40,34 +40,34 @@ public:
{
static ChatCommand ticketResponseCommandTable[] =
{
{ "append", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleGMTicketResponseAppendCommand, "", NULL },
{ "appendln", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleGMTicketResponseAppendLnCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
{ "append", RBAC_PERM_COMMAND_TICKET_RESPONSE_APPEND, true, &HandleGMTicketResponseAppendCommand, "", NULL },
{ "appendln", RBAC_PERM_COMMAND_TICKET_RESPONSE_APPENDLN, true, &HandleGMTicketResponseAppendLnCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand ticketCommandTable[] =
{
{ "assign", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleGMTicketAssignToCommand, "", NULL },
{ "close", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleGMTicketCloseByIdCommand, "", NULL },
{ "closedlist", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleGMTicketListClosedCommand, "", NULL },
{ "comment", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleGMTicketCommentCommand, "", NULL },
{ "complete", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleGMTicketCompleteCommand, "", NULL },
{ "delete", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleGMTicketDeleteByIdCommand, "", NULL },
{ "escalate", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleGMTicketEscalateCommand, "", NULL },
{ "escalatedlist", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleGMTicketListEscalatedCommand, "", NULL },
{ "list", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleGMTicketListCommand, "", NULL },
{ "onlinelist", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleGMTicketListOnlineCommand, "", NULL },
{ "reset", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleGMTicketResetCommand, "", NULL },
{ "response", RBAC_PERM_MODERATOR_COMMANDS, true, NULL, "", ticketResponseCommandTable },
{ "togglesystem", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleToggleGMTicketSystem, "", NULL },
{ "unassign", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleGMTicketUnAssignCommand, "", NULL },
{ "viewid", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleGMTicketGetByIdCommand, "", NULL },
{ "viewname", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleGMTicketGetByNameCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
{ "assign", RBAC_PERM_COMMAND_TICKET_ASSIGN, true, &HandleGMTicketAssignToCommand, "", NULL },
{ "close", RBAC_PERM_COMMAND_TICKET_CLOSE, true, &HandleGMTicketCloseByIdCommand, "", NULL },
{ "closedlist", RBAC_PERM_COMMAND_TICKET_CLOSEDLIST, true, &HandleGMTicketListClosedCommand, "", NULL },
{ "comment", RBAC_PERM_COMMAND_TICKET_COMMENT, true, &HandleGMTicketCommentCommand, "", NULL },
{ "complete", RBAC_PERM_COMMAND_TICKET_COMPLETE, true, &HandleGMTicketCompleteCommand, "", NULL },
{ "delete", RBAC_PERM_COMMAND_TICKET_DELETE, true, &HandleGMTicketDeleteByIdCommand, "", NULL },
{ "escalate", RBAC_PERM_COMMAND_TICKET_ESCALATE, true, &HandleGMTicketEscalateCommand, "", NULL },
{ "escalatedlist", RBAC_PERM_COMMAND_TICKET_ESCALATEDLIST, true, &HandleGMTicketListEscalatedCommand, "", NULL },
{ "list", RBAC_PERM_COMMAND_TICKET_LIST, true, &HandleGMTicketListCommand, "", NULL },
{ "onlinelist", RBAC_PERM_COMMAND_TICKET_ONLINELIST, true, &HandleGMTicketListOnlineCommand, "", NULL },
{ "reset", RBAC_PERM_COMMAND_TICKET_RESET, true, &HandleGMTicketResetCommand, "", NULL },
{ "response", RBAC_PERM_COMMAND_TICKET_RESPONSE, true, NULL, "", ticketResponseCommandTable },
{ "togglesystem", RBAC_PERM_COMMAND_TICKET_TOGGLESYSTEM, true, &HandleToggleGMTicketSystem, "", NULL },
{ "unassign", RBAC_PERM_COMMAND_TICKET_UNASSIGN, true, &HandleGMTicketUnAssignCommand, "", NULL },
{ "viewid", RBAC_PERM_COMMAND_TICKET_VIEWID, true, &HandleGMTicketGetByIdCommand, "", NULL },
{ "viewname", RBAC_PERM_COMMAND_TICKET_VIEWNAME, true, &HandleGMTicketGetByNameCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "ticket", RBAC_PERM_MODERATOR_COMMANDS, false, NULL, "", ticketCommandTable },
{ NULL, 0, false, NULL, "", NULL }
{ "ticket", RBAC_PERM_COMMAND_TICKET, false, NULL, "", ticketCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}

View File

@@ -37,21 +37,21 @@ public:
{
static ChatCommand titlesSetCommandTable[] =
{
{ "mask", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleTitlesSetMaskCommand, "", NULL },
{ NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL }
{ "mask", RBAC_PERM_COMMAND_TITLES_SET_MASK, false, &HandleTitlesSetMaskCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand titlesCommandTable[] =
{
{ "add", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleTitlesAddCommand, "", NULL },
{ "current", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleTitlesCurrentCommand, "", NULL },
{ "remove", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleTitlesRemoveCommand, "", NULL },
{ "set", RBAC_PERM_GAMEMASTER_COMMANDS, false, NULL, "", titlesSetCommandTable },
{ NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL }
{ "add", RBAC_PERM_COMMAND_TITLES_ADD, false, &HandleTitlesAddCommand, "", NULL },
{ "current", RBAC_PERM_COMMAND_TITLES_CURRENT, false, &HandleTitlesCurrentCommand, "", NULL },
{ "remove", RBAC_PERM_COMMAND_TITLES_REMOVE, false, &HandleTitlesRemoveCommand, "", NULL },
{ "set", RBAC_PERM_COMMAND_TITLES_SET, false, NULL, "", titlesSetCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "titles", RBAC_PERM_GAMEMASTER_COMMANDS, false, NULL, "", titlesCommandTable },
{ NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL }
{ "titles", RBAC_PERM_COMMAND_TITLES, false, NULL, "", titlesCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}

View File

@@ -38,19 +38,19 @@ public:
{
static ChatCommand wpCommandTable[] =
{
{ "add", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleWpAddCommand, "", NULL },
{ "event", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleWpEventCommand, "", NULL },
{ "load", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleWpLoadCommand, "", NULL },
{ "modify", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleWpModifyCommand, "", NULL },
{ "unload", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleWpUnLoadCommand, "", NULL },
{ "reload", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleWpReloadCommand, "", NULL },
{ "show", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleWpShowCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
{ "add", RBAC_PERM_COMMAND_WP_ADD, false, &HandleWpAddCommand, "", NULL },
{ "event", RBAC_PERM_COMMAND_WP_EVENT, false, &HandleWpEventCommand, "", NULL },
{ "load", RBAC_PERM_COMMAND_WP_LOAD, false, &HandleWpLoadCommand, "", NULL },
{ "modify", RBAC_PERM_COMMAND_WP_MODIFY, false, &HandleWpModifyCommand, "", NULL },
{ "unload", RBAC_PERM_COMMAND_WP_UNLOAD, false, &HandleWpUnLoadCommand, "", NULL },
{ "reload", RBAC_PERM_COMMAND_WP_RELOAD, false, &HandleWpReloadCommand, "", NULL },
{ "show", RBAC_PERM_COMMAND_WP_SHOW, false, &HandleWpShowCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "wp", RBAC_PERM_GAMEMASTER_COMMANDS, false, NULL, "", wpCommandTable },
{ NULL, 0, false, NULL, "", NULL }
{ "wp", RBAC_PERM_COMMAND_WP, false, NULL, "", wpCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}