aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormegamage <none@none>2009-08-24 20:30:52 -0500
committermegamage <none@none>2009-08-24 20:30:52 -0500
commit5df31bd4b3fddf35a884e3608210be25d4e94b9f (patch)
tree4f0912fa60e7ada4a8794b67a07a95e054a4881d
parent4a1a82c5e223ab5fa35ae898783c7771fc73fef4 (diff)
[8412] Update some new and old client supported shift-links to proper format. Author: VladimirMangos
* List all client and server side supported shift-link types updated in Chat.cpp * Now Henchant anf Hglyph links can be used in commands as spell links. * Hitem and Hquest links changed to client supported form. --HG-- branch : trunk
-rw-r--r--sql/FULL/world_trinity_string_full.sql4
-rw-r--r--sql/updates/5361_8412_world_trinity_string.sql6
-rw-r--r--src/game/Chat.cpp32
-rw-r--r--src/game/Level3.cpp10
4 files changed, 40 insertions, 12 deletions
diff --git a/sql/FULL/world_trinity_string_full.sql b/sql/FULL/world_trinity_string_full.sql
index 2a165f9f7e6..050eedd516c 100644
--- a/sql/FULL/world_trinity_string_full.sql
+++ b/sql/FULL/world_trinity_string_full.sql
@@ -395,8 +395,8 @@ INSERT INTO `trinity_string` (`entry`, `content_default`, `content_loc1`, `conte
(509, '%d - sender: %s (guid: %u account: %u ) receiver: %s (guid: %u account: %u ) %s', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(510, '%d - owner: %s (guid: %u account: %u ) %s', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(511, 'Wrong link type!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
-(512, '%d - |cffffffff|Hitem:%d:0:0:0:0:0:0:0|h[%s]|h|r ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
-(513, '%d - |cffffffff|Hquest:%d|h[%s]|h|r %s', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
+(512, '%d - |cffffffff|Hitem:%d:0:0:0:0:0:0:0:0|h[%s]|h|r ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
+(513, '%d - |cffffffff|Hquest:%d:%d|h[%s]|h|r %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(514, '%d - |cffffffff|Hcreature_entry:%d|h[%s]|h|r ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(515, '%d - |cffffffff|Hcreature:%d|h[%s X:%f Y:%f Z:%f MapId:%d]|h|r ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(516, '%d - |cffffffff|Hgameobject_entry:%d|h[%s]|h|r ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
diff --git a/sql/updates/5361_8412_world_trinity_string.sql b/sql/updates/5361_8412_world_trinity_string.sql
new file mode 100644
index 00000000000..63ba25094fa
--- /dev/null
+++ b/sql/updates/5361_8412_world_trinity_string.sql
@@ -0,0 +1,6 @@
+-- ALTER TABLE db_version CHANGE COLUMN required_8399_01_mangos_spell_elixir required_8412_01_mangos_mangos_string bit;
+
+DELETE FROM trinity_string WHERE entry IN(512,513);
+INSERT INTO trinity_string VALUES
+(512,'%d - |cffffffff|Hitem:%d:0:0:0:0:0:0:0:0|h[%s]|h|r ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
+(513,'%d - |cffffffff|Hquest:%d:%d|h[%s]|h|r %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp
index d3c3213059f..999440b0538 100644
--- a/src/game/Chat.cpp
+++ b/src/game/Chat.cpp
@@ -36,16 +36,21 @@
#include "UpdateMask.h"
// Supported shift-links (client generated and server side)
+// |color|Hachievement:achievement_id:player_guid:0:0:0:0:0:0:0:0|h[name]|h|r
+// - client, item icon shift click, not used in server currently
// |color|Harea:area_id|h[name]|h|r
// |color|Hcreature:creature_guid|h[name]|h|r
// |color|Hcreature_entry:creature_id|h[name]|h|r
+// |color|Henchant:recipe_spell_id|h[prof_name: recipe_name]|h|r - client, at shift click in recipes list dialog
// |color|Hgameevent:id|h[name]|h|r
// |color|Hgameobject:go_guid|h[name]|h|r
// |color|Hgameobject_entry:go_id|h[name]|h|r
-// |color|Hitem:item_id:perm_ench_id:0:0|h[name]|h|r
+// |color|Hglyph:glyph_slot_id:glyph_prop_id|h[%s]|h|r - client, at shift click in glyphs dialog, GlyphSlot.dbc, GlyphProperties.dbc
+// |color|Hitem:item_id:perm_ench_id:gem1:gem2:gem3:0:0:0:reporter_level|h[name]|h|r
+// - client, item icon shift click
// |color|Hitemset:itemset_id|h[name]|h|r
// |color|Hplayer:name|h[name]|h|r - client, in some messages, at click copy only name instead link
-// |color|Hquest:quest_id|h[name]|h|r
+// |color|Hquest:quest_id:quest_level|h[name]|h|r - client, quest list name shift-click
// |color|Hskill:skill_id|h[name]|h|r
// |color|Hspell:spell_id|h[name]|h|r - client, spellbook spell icon shift-click
// |color|Htalent:talent_id,rank|h[name]|h|r - client, talent icon shift-click
@@ -1480,9 +1485,11 @@ GameObject* ChatHandler::GetObjectGlobalyWithGuidOrNearWithDbGuid(uint32 lowguid
enum SpellLinkType
{
- SPELL_LINK_SPELL = 0,
- SPELL_LINK_TALENT = 1,
- SPELL_LINK_TRADE = 2
+ SPELL_LINK_SPELL = 0,
+ SPELL_LINK_TALENT = 1,
+ SPELL_LINK_TRADE = 2,
+ SPELL_LINK_ENCHANT = 3,
+ SPELL_LINK_GLYPH = 4
};
static char const* const spellKeys[] =
@@ -1490,11 +1497,15 @@ static char const* const spellKeys[] =
"Hspell", // normal spell
"Htalent", // talent spell
"Htrade", // profession/skill spell
+ "Henchant", // enchanting recipe spell
+ "Hglyph", // glyph
0
};
uint32 ChatHandler::extractSpellIdFromLink(char* text)
{
+ // number or [name] Shift-click form |color|Henchant:recipe_spell_id|h[prof_name: recipe_name]|h|r
+ // number or [name] Shift-click form |color|Hglyph:glyph_slot_id:glyph_prop_id|h[%s]|h|r
// number or [name] Shift-click form |color|Hspell:spell_id|h[name]|h|r
// number or [name] Shift-click form |color|Htalent:talent_id,rank|h[name]|h|r
// number or [name] Shift-click form |color|Htrade:spell_id,skill_id,max_value,cur_value|h[name]|h|r
@@ -1527,7 +1538,18 @@ uint32 ChatHandler::extractSpellIdFromLink(char* text)
return talentEntry->RankID[rank];
}
case SPELL_LINK_TRADE:
+ case SPELL_LINK_ENCHANT:
return id;
+ case SPELL_LINK_GLYPH:
+ {
+ uint32 glyph_prop_id = param1_str ? (uint32)atol(param1_str) : 0;
+
+ GlyphPropertiesEntry const* glyphPropEntry = sGlyphPropertiesStore.LookupEntry(glyph_prop_id);
+ if(!glyphPropEntry)
+ return 0;
+
+ return glyphPropEntry->SpellId;
+ }
}
// unknown type?
diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp
index 7b69d03da38..d51db1d5a7a 100644
--- a/src/game/Level3.cpp
+++ b/src/game/Level3.cpp
@@ -3569,7 +3569,7 @@ bool ChatHandler::HandleLookupQuestCommand(const char* args)
}
if (m_session)
- PSendSysMessage(LANG_QUEST_LIST_CHAT,qinfo->GetQuestId(),qinfo->GetQuestId(),title.c_str(),statusStr);
+ PSendSysMessage(LANG_QUEST_LIST_CHAT,qinfo->GetQuestId(),qinfo->GetQuestId(),qinfo->GetQuestLevel(),title.c_str(),statusStr);
else
PSendSysMessage(LANG_QUEST_LIST_CONSOLE,qinfo->GetQuestId(),title.c_str(),statusStr);
@@ -3606,7 +3606,7 @@ bool ChatHandler::HandleLookupQuestCommand(const char* args)
}
if (m_session)
- PSendSysMessage(LANG_QUEST_LIST_CHAT,qinfo->GetQuestId(),qinfo->GetQuestId(),title.c_str(),statusStr);
+ PSendSysMessage(LANG_QUEST_LIST_CHAT,qinfo->GetQuestId(),qinfo->GetQuestId(),qinfo->GetQuestLevel(),title.c_str(),statusStr);
else
PSendSysMessage(LANG_QUEST_LIST_CONSOLE,qinfo->GetQuestId(),title.c_str(),statusStr);
@@ -5544,7 +5544,7 @@ bool ChatHandler::HandleQuestAdd(const char* args)
}
// .addquest #entry'
- // number or [name] Shift-click form |color|Hquest:quest_id|h[name]|h|r
+ // number or [name] Shift-click form |color|Hquest:quest_id:quest_level|h[name]|h|r
char* cId = extractKeyFromLink((char*)args,"Hquest");
if(!cId)
return false;
@@ -5598,7 +5598,7 @@ bool ChatHandler::HandleQuestRemove(const char* args)
}
// .removequest #entry'
- // number or [name] Shift-click form |color|Hquest:quest_id|h[name]|h|r
+ // number or [name] Shift-click form |color|Hquest:quest_id:quest_level|h[name]|h|r
char* cId = extractKeyFromLink((char*)args,"Hquest");
if(!cId)
return false;
@@ -5648,7 +5648,7 @@ bool ChatHandler::HandleQuestComplete(const char* args)
}
// .quest complete #entry
- // number or [name] Shift-click form |color|Hquest:quest_id|h[name]|h|r
+ // number or [name] Shift-click form |color|Hquest:quest_id:quest_level|h[name]|h|r
char* cId = extractKeyFromLink((char*)args,"Hquest");
if(!cId)
return false;