Как отправлять кликабельные ссылки (предмет, квест, достижение) игрокам?
Я имею в виду ссылку на элемент, например, когда вы Shift + щелкаете и вставляете ее в чат.
Как отправлять кликабельные ссылки (предмет, квест, достижение) игрокам?
Я имею в виду ссылку на элемент, например, когда вы Shift + щелкаете и вставляете ее в чат.
Таким образом, вы можете просто отправить код чата, и он отобразит кликабельную ссылку, например:
achievementSTR = "|cffffff00|Hachievement:"+std::to_string(achievementEntry->ID)+":"+std::to_string(p->GetGUID())+":0:0:0:0:0:0:0:0|h"+std::string(*achievementEntry->name)+"|h|r";
Затем вы отправляете его с PSendSysMessage
, например
Чтобы протестировать игру, используйте эту команду (вы должны использовать /script
для ее отображения):
/script DEFAULT_CHAT_FRAME:AddMessage("\124cff000000\124Hcreature_entry:448\124h[Click here]\124h\124r");
Обратите внимание, что |
были преобразованы в их эквивалент \124
специально для клиента.
Все коды, которые можно связать, перечислены в ChatLink. .cpp:
// 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|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: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: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
// |color|Htaxinode:id|h[name]|h|r
// |color|Htele:id|h[name]|h|r
// |color|Htitle:id|h[name]|h|r
// |color|Htrade:spell_id:cur_value:max_value:unk3int:unk3str|h[name]|h|r - client, spellbook profession icon shift-click
Вот скрипт, который помог разобраться в этом: http://www.ac-web.org/forums/showthread.php?197623-Trinity-C-Script-to-link-items-ingame