|
Принятые патчи Иногда выкладывают патчи, которые потом в итоге все-таки принимают в ядро.
Повод для гордости. |
|
Опции темы | Поиск в этой теме | Опции просмотра |
18.09.2011, 14:13 | #1 |
YTDB Dev
Регистрация: 06.03.2010
Сообщений: 259
Сказал(а) спасибо: 28
Поблагодарили 280 раз(а) в 136 сообщениях
|
[11867][patch] GOSSIP_OPTION_MAILBOX
Есть 2 турнирных нпц пета(33238 и 33239), которые помимо всего прочего, предоставляют доступ к почте игрока, воспользовался готовым решением в ядре.))
Код:
diff --git a/src/game/GossipDef.h b/src/game/GossipDef.h index 9e46bb2..b058e21 100644 --- a/src/game/GossipDef.h +++ b/src/game/GossipDef.h @@ -49,6 +49,7 @@ enum Gossip_Option GOSSIP_OPTION_ARMORER = 15, //UNIT_NPC_FLAG_ARMORER (4096) GOSSIP_OPTION_UNLEARNTALENTS = 16, //UNIT_NPC_FLAG_TRAINER (16) (bonus option for GOSSIP_OPTION_TRAINER) GOSSIP_OPTION_UNLEARNPETSKILLS = 17, //UNIT_NPC_FLAG_TRAINER (16) (bonus option for GOSSIP_OPTION_TRAINER) + GOSSIP_OPTION_MAILBOX = 18, //UNIT_NPC_FLAG_GOSSIP (8388608) GOSSIP_OPTION_MAX }; diff --git a/src/game/Player.cpp b/src/game/Player.cpp index d4e246e..cfc7498 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -13091,6 +13091,7 @@ void Player::PrepareGossipMenu(WorldObject *pSource, uint32 menuId) case GOSSIP_OPTION_PETITIONER: case GOSSIP_OPTION_TABARDDESIGNER: case GOSSIP_OPTION_AUCTIONEER: + case GOSSIP_OPTION_MAILBOX: break; // no checks default: sLog.outErrorDb("Creature entry %u have unknown gossip option %u for menu %u", pCreature->GetEntry(), itr->second.option_id, itr->second.menu_id); @@ -13317,6 +13318,10 @@ void Player::OnGossipSelect(WorldObject* pSource, uint32 gossipListId, uint32 me case GOSSIP_OPTION_AUCTIONEER: GetSession()->SendAuctionHello(((Creature*)pSource)); break; + case GOSSIP_OPTION_MAILBOX: + PlayerTalkClass->CloseGossip(); + GetSession()->SendShowMailBox(guid); + break; case GOSSIP_OPTION_SPIRITGUIDE: PrepareGossipMenu(pSource); SendPreparedGossip(pSource); Код:
REPLACE INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `action_script_id`, `box_coded`, `box_money`, `box_text`, `cond_1`, `cond_1_val_1`, `cond_1_val_2`, `cond_2`, `cond_2_val_1`, `cond_2_val_2`, `cond_3`, `cond_3_val_1`, `cond_3_val_2`) VALUES (0, 0, 0, 'Visit a mailbox.', 18, 8388608, 0, 0, 0, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0); Последний раз редактировалось NeatElves; 01.12.2011 в 00:35. |
6 пользователя(ей) сказали cпасибо: | Lordronn (18.09.2011), PSZ (19.09.2011), rsa (28.09.2011), schmoozerd (21.12.2011), Vladimir (21.12.2011) |
04.12.2011, 05:42 | #3 |
MaNGOS Dev
Регистрация: 17.11.2011
Сообщений: 99
Сказал(а) спасибо: 35
Поблагодарили 80 раз(а) в 26 сообщениях
|
About these flags:
Do you have an further data if flag 8388608 is used with other npcs in cata; or do you know of other npcs in cata that can act as a mailbox and don't have this flag? |
21.12.2011, 21:06 | #5 | |
YTDB Dev
Регистрация: 06.03.2010
Сообщений: 259
Сказал(а) спасибо: 28
Поблагодарили 280 раз(а) в 136 сообщениях
|
Осталось уточнить про 8388608:
Цитата:
|
|
22.12.2011, 02:19 | #6 |
MaNGOS Dev
Регистрация: 17.11.2011
Сообщений: 99
Сказал(а) спасибо: 35
Поблагодарили 80 раз(а) в 26 сообщениях
|
Код:
SELECT entry, name, npcflag, unit_flags, type_flags FROM creature_template WHERE entry IN (33238, 33239); -- from UDB 33238, Argent Squire, 133761, 0, 8388608 33239, Argent Gruntling, 0, 0, 8388608 -- from ytdb 33238, Argent Squire, 8522369, 768, 8388608 33239, Argent Gruntling, 8522369, 0, 8388608 -- from own sniff (wow335) -- for 33238: unit-flags 776 -- npc flag 1 -- type flags Unknown18 == 8388608 -- for 33239: unit-flags 776 -- npc flag 1 |