mirror of
https://github.com/azerothcore/mod-ale
synced 2025-11-29 15:38:17 +08:00
feat: add PLAYER_EVENT_ON_QUEST_REWARD_ITEM, add PLAYER_EVENT_ON_CREATE_ITEM, add PLAYER_EVENT_ON_STORE_NEW_ITEM (#88)
Co-authored-by: Axel Cocat <ax.cocat@gmail.com>
This commit is contained in:
@@ -85,6 +85,9 @@ Eluna API for AC:
|
||||
- Added `RegisterPlayerEvent` `48` (`PLAYER_EVENT_ON_CAN_INIT_TRADE`): https://github.com/azerothcore/mod-eluna/pull/83
|
||||
- Added `RegisterPlayerEvent` `49` (`PLAYER_EVENT_ON_CAN_SEND_MAIL`): https://github.com/azerothcore/mod-eluna/pull/85
|
||||
- Added `RegisterPlayerEvent` `50` (`PLAYER_EVENT_ON_CAN_JOIN_LFG`): https://github.com/azerothcore/mod-eluna/pull/86
|
||||
- Added `RegisterPlayerEvent` `51` (`PLAYER_EVENT_ON_QUEST_REWARD_ITEM`): https://github.com/azerothcore/mod-eluna/pull/88
|
||||
- Added `RegisterPlayerEvent` `52` (`PLAYER_EVENT_ON_CREATE_ITEM`): https://github.com/azerothcore/mod-eluna/pull/88
|
||||
- Added `RegisterPlayerEvent` `53` (`PLAYER_EVENT_ON_STORE_NEW_ITEM`): https://github.com/azerothcore/mod-eluna/pull/88
|
||||
- Added `Player:GetMailCount()`: https://github.com/azerothcore/mod-eluna/pull/76
|
||||
- Added `Player:GetXP()`: https://github.com/azerothcore/mod-eluna/pull/77
|
||||
- Added `Player:GetAchievementCriteriaProgress()`: https://github.com/azerothcore/mod-eluna/pull/78
|
||||
|
||||
@@ -84,5 +84,8 @@ AC版的Eluna API:
|
||||
- 暴露方法 `Object:IsPlayer()`. https://github.com/azerothcore/Eluna/pull/42
|
||||
- 添加玩家注册事件44(当玩家学习技能时): `PLAYER_EVENT_ON_LEARN_SPELL`. https://github.com/azerothcore/mod-eluna/pull/46
|
||||
- 添加玩家注册事件45(当玩家完成成就时): `PLAYER_ON_ACHIEVEMENT_COMPLETE`。 https://github.com/azerothcore/mod-eluna/pull/47
|
||||
- 添加玩家注册事件51(当玩家获得任务奖励时) `PLAYER_EVENT_ON_QUEST_REWARD_ITEM`。https://github.com/azerothcore/mod-eluna/pull/88
|
||||
- 添加玩家注册事件52(当玩家创建物品时) `PLAYER_EVENT_ON_CREATE_ITEM`。https://github.com/azerothcore/mod-eluna/pull/88
|
||||
- 添加玩家注册事件53(当玩家创建物品实例时) `PLAYER_EVENT_ON_STORE_NEW_ITEM`。https://github.com/azerothcore/mod-eluna/pull/88
|
||||
- 新增参数*商人Id*到方法player:SendListInventory(object, vendorentry)中。 https://github.com/azerothcore/mod-eluna/pull/48
|
||||
- 添加方法`gameobject:AddLoot()`, 可以在线给**空**的容器中添加战利品。 https://github.com/azerothcore/mod-eluna/pull/52
|
||||
|
||||
@@ -771,6 +771,21 @@ public:
|
||||
{
|
||||
return sEluna->OnCanJoinLfg(player, roles, dungeons, comment);
|
||||
}
|
||||
|
||||
void OnQuestRewardItem(Player* player, Item* item, uint32 count) override
|
||||
{
|
||||
sEluna->OnQuestRewardItem(player, item, count);
|
||||
}
|
||||
|
||||
void OnCreateItem(Player* player, Item* item, uint32 count) override
|
||||
{
|
||||
sEluna->OnCreateItem(player, item, count);
|
||||
}
|
||||
|
||||
void OnStoreNewItem(Player* player, Item* item, uint32 count) override
|
||||
{
|
||||
sEluna->OnStoreNewItem(player, item, count);
|
||||
}
|
||||
};
|
||||
|
||||
class Eluna_ServerScript : public ServerScript
|
||||
|
||||
@@ -723,6 +723,9 @@ namespace LuaGlobalFunctions
|
||||
* PLAYER_EVENT_ON_CAN_INIT_TRADE = 48, // (event, player, target) - Can return false to prevent the trade
|
||||
* PLAYER_EVENT_ON_CAN_SEND_MAIL = 49, // (event, player, receiverGuid, mailbox, subject, body, money, cod, item) - Can return false to prevent sending the mail
|
||||
* PLAYER_EVENT_ON_CAN_JOIN_LFG = 50, // (event, player, roles, dungeons, comment) - Can return false to prevent queueing
|
||||
* PLAYER_EVENT_ON_QUEST_REWARD_ITEM = 51, // (event, player, item, count)
|
||||
* PLAYER_EVENT_ON_CREATE_ITEM = 52, // (event, player, item, count)
|
||||
* PLAYER_EVENT_ON_STORE_NEW_ITEM = 53, // (event, player, item, count)
|
||||
* };
|
||||
* </pre>
|
||||
*
|
||||
|
||||
@@ -212,6 +212,9 @@ namespace Hooks
|
||||
PLAYER_EVENT_ON_CAN_INIT_TRADE = 48, // (event, player, target) - Can return false to prevent the trade
|
||||
PLAYER_EVENT_ON_CAN_SEND_MAIL = 49, // (event, player, receiverGuid, mailbox, subject, body, money, cod, item) - Can return false to prevent sending the mail
|
||||
PLAYER_EVENT_ON_CAN_JOIN_LFG = 50, // (event, player, roles, dungeons, comment) - Can return false to prevent queueing
|
||||
PLAYER_EVENT_ON_QUEST_REWARD_ITEM = 51, // (event, player, item, count)
|
||||
PLAYER_EVENT_ON_CREATE_ITEM = 52, // (event, player, item, count)
|
||||
PLAYER_EVENT_ON_STORE_NEW_ITEM = 53, // (event, player, item, count)
|
||||
|
||||
PLAYER_EVENT_COUNT
|
||||
};
|
||||
|
||||
@@ -370,6 +370,9 @@ public:
|
||||
void OnLuaStateOpen();
|
||||
bool OnAddonMessage(Player* sender, uint32 type, std::string& msg, Player* receiver, Guild* guild, Group* group, Channel* channel);
|
||||
void OnPetAddedToWorld(Player* player, Creature* pet);
|
||||
void OnQuestRewardItem(Player* player, Item* item, uint32 count);
|
||||
void OnCreateItem(Player* player, Item* item, uint32 count);
|
||||
void OnStoreNewItem(Player* player, Item* item, uint32 count);
|
||||
|
||||
/* Item */
|
||||
void OnDummyEffect(WorldObject* pCaster, uint32 spellId, SpellEffIndex effIndex, Item* pTarget);
|
||||
|
||||
@@ -635,3 +635,30 @@ bool Eluna::OnCanJoinLfg(Player* player, uint8 roles, lfg::LfgDungeonSet& dungeo
|
||||
Push(comment);
|
||||
return CallAllFunctionsBool(PlayerEventBindings, key);
|
||||
}
|
||||
|
||||
void Eluna::OnQuestRewardItem(Player* player, Item* item, uint32 count)
|
||||
{
|
||||
START_HOOK(PLAYER_EVENT_ON_QUEST_REWARD_ITEM);
|
||||
Push(player);
|
||||
Push(item);
|
||||
Push(count);
|
||||
CallAllFunctions(PlayerEventBindings, key);
|
||||
}
|
||||
|
||||
void Eluna::OnCreateItem(Player* player, Item* item, uint32 count)
|
||||
{
|
||||
START_HOOK(PLAYER_EVENT_ON_CREATE_ITEM);
|
||||
Push(player);
|
||||
Push(item);
|
||||
Push(count);
|
||||
CallAllFunctions(PlayerEventBindings, key);
|
||||
}
|
||||
|
||||
void Eluna::OnStoreNewItem(Player* player, Item* item, uint32 count)
|
||||
{
|
||||
START_HOOK(PLAYER_EVENT_ON_STORE_NEW_ITEM);
|
||||
Push(player);
|
||||
Push(item);
|
||||
Push(count);
|
||||
CallAllFunctions(PlayerEventBindings, key);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user