feat(premium): zero cooldown hearthstone for premium players
This commit is contained in:
@@ -2,11 +2,13 @@ local PLAYER_EVENT_ON_LOGIN = 3
|
|||||||
local PLAYER_EVENT_ON_SPELL_CAST = 5
|
local PLAYER_EVENT_ON_SPELL_CAST = 5
|
||||||
local PLAYER_EVENT_ON_LOGOUT = 4
|
local PLAYER_EVENT_ON_LOGOUT = 4
|
||||||
local PLAYER_EVENT_ON_COMMAND = 42
|
local PLAYER_EVENT_ON_COMMAND = 42
|
||||||
|
local PLAYER_EVENT_ON_BEFORE_TELEPORT = 67
|
||||||
|
|
||||||
|
|
||||||
local ACCOUNT_FLAG_RECURRING_BILLING = 8192
|
local ACCOUNT_FLAG_RECURRING_BILLING = 8192
|
||||||
|
|
||||||
local SUMMON_SQUIRE_SPELL_ID = 80000
|
local SUMMON_SQUIRE_SPELL_ID = 80000
|
||||||
|
local HEARTHSTONE_SPELL_ID = 8690
|
||||||
|
|
||||||
local SQUIRE_CREATURE_TEMPLATE_ID = 9000001
|
local SQUIRE_CREATURE_TEMPLATE_ID = 9000001
|
||||||
|
|
||||||
@@ -184,9 +186,18 @@ local function OnLogout(event, player)
|
|||||||
squires_table[player:GetGUID()] = nil
|
squires_table[player:GetGUID()] = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function OnBeforeTeleport(player, mapid, x, y, z, orientation, options, target)
|
||||||
|
if not IsPremium(player) then return end
|
||||||
|
|
||||||
|
if player:FindCurrentSpellBySpellId(HEARTHSTONE_SPELL_ID) then
|
||||||
|
player:ResetSpellCooldown(HEARTHSTONE_SPELL_ID, true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
RegisterCreatureGossipEvent(SQUIRE_CREATURE_TEMPLATE_ID, 1, OnGossipHello)
|
RegisterCreatureGossipEvent(SQUIRE_CREATURE_TEMPLATE_ID, 1, OnGossipHello)
|
||||||
RegisterCreatureGossipEvent(SQUIRE_CREATURE_TEMPLATE_ID, 2, OnGossipSelect)
|
RegisterCreatureGossipEvent(SQUIRE_CREATURE_TEMPLATE_ID, 2, OnGossipSelect)
|
||||||
RegisterPlayerEvent(PLAYER_EVENT_ON_LOGIN, OnLogin)
|
RegisterPlayerEvent(PLAYER_EVENT_ON_LOGIN, OnLogin)
|
||||||
RegisterPlayerEvent(PLAYER_EVENT_ON_LOGOUT, OnLogout)
|
RegisterPlayerEvent(PLAYER_EVENT_ON_LOGOUT, OnLogout)
|
||||||
RegisterPlayerEvent(PLAYER_EVENT_ON_COMMAND, OnCommand)
|
RegisterPlayerEvent(PLAYER_EVENT_ON_COMMAND, OnCommand)
|
||||||
RegisterPlayerEvent(PLAYER_EVENT_ON_SPELL_CAST, OnSpellCast)
|
RegisterPlayerEvent(PLAYER_EVENT_ON_SPELL_CAST, OnSpellCast)
|
||||||
|
RegisterPlayerEvent(PLAYER_EVENT_ON_BEFORE_TELEPORT, OnBeforeTeleport)
|
||||||
|
|||||||
@@ -244,15 +244,13 @@ public:
|
|||||||
class Eluna_AllMapScript : public AllMapScript
|
class Eluna_AllMapScript : public AllMapScript
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Eluna_AllMapScript() : AllMapScript("Eluna_AllMapScript", {
|
Eluna_AllMapScript() : AllMapScript("Eluna_AllMapScript", {ALLMAPHOOK_ON_BEFORE_CREATE_INSTANCE_SCRIPT,
|
||||||
ALLMAPHOOK_ON_BEFORE_CREATE_INSTANCE_SCRIPT,
|
|
||||||
ALLMAPHOOK_ON_DESTROY_INSTANCE,
|
ALLMAPHOOK_ON_DESTROY_INSTANCE,
|
||||||
ALLMAPHOOK_ON_CREATE_MAP,
|
ALLMAPHOOK_ON_CREATE_MAP,
|
||||||
ALLMAPHOOK_ON_DESTROY_MAP,
|
ALLMAPHOOK_ON_DESTROY_MAP,
|
||||||
ALLMAPHOOK_ON_PLAYER_ENTER_ALL,
|
ALLMAPHOOK_ON_PLAYER_ENTER_ALL,
|
||||||
ALLMAPHOOK_ON_PLAYER_LEAVE_ALL,
|
ALLMAPHOOK_ON_PLAYER_LEAVE_ALL,
|
||||||
ALLMAPHOOK_ON_MAP_UPDATE
|
ALLMAPHOOK_ON_MAP_UPDATE}) {}
|
||||||
}) { }
|
|
||||||
|
|
||||||
void OnBeforeCreateInstanceScript(InstanceMap *instanceMap, InstanceScript **instanceData, bool /*load*/, std::string /*data*/, uint32 /*completedEncounterMask*/) override
|
void OnBeforeCreateInstanceScript(InstanceMap *instanceMap, InstanceScript **instanceData, bool /*load*/, std::string /*data*/, uint32 /*completedEncounterMask*/) override
|
||||||
{
|
{
|
||||||
@@ -294,12 +292,10 @@ public:
|
|||||||
class Eluna_AuctionHouseScript : public AuctionHouseScript
|
class Eluna_AuctionHouseScript : public AuctionHouseScript
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Eluna_AuctionHouseScript() : AuctionHouseScript("Eluna_AuctionHouseScript", {
|
Eluna_AuctionHouseScript() : AuctionHouseScript("Eluna_AuctionHouseScript", {AUCTIONHOUSEHOOK_ON_AUCTION_ADD,
|
||||||
AUCTIONHOUSEHOOK_ON_AUCTION_ADD,
|
|
||||||
AUCTIONHOUSEHOOK_ON_AUCTION_REMOVE,
|
AUCTIONHOUSEHOOK_ON_AUCTION_REMOVE,
|
||||||
AUCTIONHOUSEHOOK_ON_AUCTION_SUCCESSFUL,
|
AUCTIONHOUSEHOOK_ON_AUCTION_SUCCESSFUL,
|
||||||
AUCTIONHOUSEHOOK_ON_AUCTION_EXPIRE
|
AUCTIONHOUSEHOOK_ON_AUCTION_EXPIRE}) {}
|
||||||
}) { }
|
|
||||||
|
|
||||||
void OnAuctionAdd(AuctionHouseObject *ah, AuctionEntry *entry) override
|
void OnAuctionAdd(AuctionHouseObject *ah, AuctionEntry *entry) override
|
||||||
{
|
{
|
||||||
@@ -325,12 +321,10 @@ public:
|
|||||||
class Eluna_BGScript : public BGScript
|
class Eluna_BGScript : public BGScript
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Eluna_BGScript() : BGScript("Eluna_BGScript", {
|
Eluna_BGScript() : BGScript("Eluna_BGScript", {ALLBATTLEGROUNDHOOK_ON_BATTLEGROUND_START,
|
||||||
ALLBATTLEGROUNDHOOK_ON_BATTLEGROUND_START,
|
|
||||||
ALLBATTLEGROUNDHOOK_ON_BATTLEGROUND_END,
|
ALLBATTLEGROUNDHOOK_ON_BATTLEGROUND_END,
|
||||||
ALLBATTLEGROUNDHOOK_ON_BATTLEGROUND_DESTROY,
|
ALLBATTLEGROUNDHOOK_ON_BATTLEGROUND_DESTROY,
|
||||||
ALLBATTLEGROUNDHOOK_ON_BATTLEGROUND_CREATE
|
ALLBATTLEGROUNDHOOK_ON_BATTLEGROUND_CREATE}) {}
|
||||||
}) { }
|
|
||||||
|
|
||||||
void OnBattlegroundStart(Battleground *bg) override
|
void OnBattlegroundStart(Battleground *bg) override
|
||||||
{
|
{
|
||||||
@@ -356,9 +350,7 @@ public:
|
|||||||
class Eluna_CommandSC : public CommandSC
|
class Eluna_CommandSC : public CommandSC
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Eluna_CommandSC() : CommandSC("Eluna_CommandSC", {
|
Eluna_CommandSC() : CommandSC("Eluna_CommandSC", {ALLCOMMANDHOOK_ON_TRY_EXECUTE_COMMAND}) {}
|
||||||
ALLCOMMANDHOOK_ON_TRY_EXECUTE_COMMAND
|
|
||||||
}) { }
|
|
||||||
|
|
||||||
bool OnTryExecuteCommand(ChatHandler &handler, std::string_view cmdStr) override
|
bool OnTryExecuteCommand(ChatHandler &handler, std::string_view cmdStr) override
|
||||||
{
|
{
|
||||||
@@ -395,10 +387,8 @@ public:
|
|||||||
class Eluna_GameEventScript : public GameEventScript
|
class Eluna_GameEventScript : public GameEventScript
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Eluna_GameEventScript() : GameEventScript("Eluna_GameEventScript", {
|
Eluna_GameEventScript() : GameEventScript("Eluna_GameEventScript", {GAMEEVENTHOOK_ON_START,
|
||||||
GAMEEVENTHOOK_ON_START,
|
GAMEEVENTHOOK_ON_STOP}) {}
|
||||||
GAMEEVENTHOOK_ON_STOP
|
|
||||||
}) { }
|
|
||||||
|
|
||||||
void OnStart(uint16 eventID) override
|
void OnStart(uint16 eventID) override
|
||||||
{
|
{
|
||||||
@@ -414,14 +404,12 @@ public:
|
|||||||
class Eluna_GroupScript : public GroupScript
|
class Eluna_GroupScript : public GroupScript
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Eluna_GroupScript() : GroupScript("Eluna_GroupScript", {
|
Eluna_GroupScript() : GroupScript("Eluna_GroupScript", {GROUPHOOK_ON_ADD_MEMBER,
|
||||||
GROUPHOOK_ON_ADD_MEMBER,
|
|
||||||
GROUPHOOK_ON_INVITE_MEMBER,
|
GROUPHOOK_ON_INVITE_MEMBER,
|
||||||
GROUPHOOK_ON_REMOVE_MEMBER,
|
GROUPHOOK_ON_REMOVE_MEMBER,
|
||||||
GROUPHOOK_ON_CHANGE_LEADER,
|
GROUPHOOK_ON_CHANGE_LEADER,
|
||||||
GROUPHOOK_ON_DISBAND,
|
GROUPHOOK_ON_DISBAND,
|
||||||
GROUPHOOK_ON_CREATE
|
GROUPHOOK_ON_CREATE}) {}
|
||||||
}) { }
|
|
||||||
|
|
||||||
void OnAddMember(Group *group, ObjectGuid guid) override
|
void OnAddMember(Group *group, ObjectGuid guid) override
|
||||||
{
|
{
|
||||||
@@ -457,8 +445,7 @@ public:
|
|||||||
class Eluna_GuildScript : public GuildScript
|
class Eluna_GuildScript : public GuildScript
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Eluna_GuildScript() : GuildScript("Eluna_GuildScript", {
|
Eluna_GuildScript() : GuildScript("Eluna_GuildScript", {GUILDHOOK_ON_ADD_MEMBER,
|
||||||
GUILDHOOK_ON_ADD_MEMBER,
|
|
||||||
GUILDHOOK_ON_REMOVE_MEMBER,
|
GUILDHOOK_ON_REMOVE_MEMBER,
|
||||||
GUILDHOOK_ON_MOTD_CHANGED,
|
GUILDHOOK_ON_MOTD_CHANGED,
|
||||||
GUILDHOOK_ON_INFO_CHANGED,
|
GUILDHOOK_ON_INFO_CHANGED,
|
||||||
@@ -468,8 +455,7 @@ public:
|
|||||||
GUILDHOOK_ON_MEMBER_DEPOSIT_MONEY,
|
GUILDHOOK_ON_MEMBER_DEPOSIT_MONEY,
|
||||||
GUILDHOOK_ON_ITEM_MOVE,
|
GUILDHOOK_ON_ITEM_MOVE,
|
||||||
GUILDHOOK_ON_EVENT,
|
GUILDHOOK_ON_EVENT,
|
||||||
GUILDHOOK_ON_BANK_EVENT
|
GUILDHOOK_ON_BANK_EVENT}) {}
|
||||||
}) { }
|
|
||||||
|
|
||||||
void OnAddMember(Guild *guild, Player *player, uint8 &plRank) override
|
void OnAddMember(Guild *guild, Player *player, uint8 &plRank) override
|
||||||
{
|
{
|
||||||
@@ -531,9 +517,7 @@ public:
|
|||||||
class Eluna_LootScript : public LootScript
|
class Eluna_LootScript : public LootScript
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Eluna_LootScript() : LootScript("Eluna_LootScript", {
|
Eluna_LootScript() : LootScript("Eluna_LootScript", {LOOTHOOK_ON_LOOT_MONEY}) {}
|
||||||
LOOTHOOK_ON_LOOT_MONEY
|
|
||||||
}) { }
|
|
||||||
|
|
||||||
void OnLootMoney(Player *player, uint32 gold) override
|
void OnLootMoney(Player *player, uint32 gold) override
|
||||||
{
|
{
|
||||||
@@ -544,9 +528,7 @@ public:
|
|||||||
class Eluna_MiscScript : public MiscScript
|
class Eluna_MiscScript : public MiscScript
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Eluna_MiscScript() : MiscScript("Eluna_MiscScript", {
|
Eluna_MiscScript() : MiscScript("Eluna_MiscScript", {MISCHOOK_GET_DIALOG_STATUS}) {}
|
||||||
MISCHOOK_GET_DIALOG_STATUS
|
|
||||||
}) { }
|
|
||||||
|
|
||||||
void GetDialogStatus(Player *player, Object *questgiver) override
|
void GetDialogStatus(Player *player, Object *questgiver) override
|
||||||
{
|
{
|
||||||
@@ -560,9 +542,7 @@ public:
|
|||||||
class Eluna_PetScript : public PetScript
|
class Eluna_PetScript : public PetScript
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Eluna_PetScript() : PetScript("Eluna_PetScript", {
|
Eluna_PetScript() : PetScript("Eluna_PetScript", {PETHOOK_ON_PET_ADD_TO_WORLD}) {}
|
||||||
PETHOOK_ON_PET_ADD_TO_WORLD
|
|
||||||
}) { }
|
|
||||||
|
|
||||||
void OnPetAddToWorld(Pet *pet) override
|
void OnPetAddToWorld(Pet *pet) override
|
||||||
{
|
{
|
||||||
@@ -573,8 +553,7 @@ public:
|
|||||||
class Eluna_PlayerScript : public PlayerScript
|
class Eluna_PlayerScript : public PlayerScript
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Eluna_PlayerScript() : PlayerScript("Eluna_PlayerScript", {
|
Eluna_PlayerScript() : PlayerScript("Eluna_PlayerScript", {PLAYERHOOK_ON_PLAYER_RESURRECT,
|
||||||
PLAYERHOOK_ON_PLAYER_RESURRECT,
|
|
||||||
PLAYERHOOK_CAN_PLAYER_USE_CHAT,
|
PLAYERHOOK_CAN_PLAYER_USE_CHAT,
|
||||||
PLAYERHOOK_CAN_PLAYER_USE_PRIVATE_CHAT,
|
PLAYERHOOK_CAN_PLAYER_USE_PRIVATE_CHAT,
|
||||||
PLAYERHOOK_CAN_PLAYER_USE_GROUP_CHAT,
|
PLAYERHOOK_CAN_PLAYER_USE_GROUP_CHAT,
|
||||||
@@ -632,8 +611,8 @@ public:
|
|||||||
PLAYERHOOK_ON_CAN_UPDATE_SKILL,
|
PLAYERHOOK_ON_CAN_UPDATE_SKILL,
|
||||||
PLAYERHOOK_ON_BEFORE_UPDATE_SKILL,
|
PLAYERHOOK_ON_BEFORE_UPDATE_SKILL,
|
||||||
PLAYERHOOK_ON_UPDATE_SKILL,
|
PLAYERHOOK_ON_UPDATE_SKILL,
|
||||||
PLAYERHOOK_CAN_RESURRECT
|
PLAYERHOOK_CAN_RESURRECT,
|
||||||
}) { }
|
PLAYERHOOK_ON_BEFORE_TELEPORT}) {}
|
||||||
|
|
||||||
void OnPlayerResurrect(Player *player, float /*restore_percent*/, bool & /*applySickness*/) override
|
void OnPlayerResurrect(Player *player, float /*restore_percent*/, bool & /*applySickness*/) override
|
||||||
{
|
{
|
||||||
@@ -949,15 +928,18 @@ public:
|
|||||||
{
|
{
|
||||||
return sEluna->CanPlayerResurrect(player);
|
return sEluna->CanPlayerResurrect(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool OnPlayerBeforeTeleport(Player *player, uint32 mapid, float x, float y, float z, float orientation, uint32 options, Unit *target)
|
||||||
|
{
|
||||||
|
return sEluna->OnPlayerBeforeTeleport(player, mapid, x, y, z, orientation, options, target);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class Eluna_ServerScript : public ServerScript
|
class Eluna_ServerScript : public ServerScript
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Eluna_ServerScript() : ServerScript("Eluna_ServerScript", {
|
Eluna_ServerScript() : ServerScript("Eluna_ServerScript", {SERVERHOOK_CAN_PACKET_SEND,
|
||||||
SERVERHOOK_CAN_PACKET_SEND,
|
SERVERHOOK_CAN_PACKET_RECEIVE}) {}
|
||||||
SERVERHOOK_CAN_PACKET_RECEIVE
|
|
||||||
}) { }
|
|
||||||
|
|
||||||
bool CanPacketSend(WorldSession *session, WorldPacket const &packet) override
|
bool CanPacketSend(WorldSession *session, WorldPacket const &packet) override
|
||||||
{
|
{
|
||||||
@@ -979,14 +961,12 @@ public:
|
|||||||
class Eluna_SpellSC : public SpellSC
|
class Eluna_SpellSC : public SpellSC
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Eluna_SpellSC() : SpellSC("Eluna_SpellSC", {
|
Eluna_SpellSC() : SpellSC("Eluna_SpellSC", {ALLSPELLHOOK_ON_DUMMY_EFFECT_GAMEOBJECT,
|
||||||
ALLSPELLHOOK_ON_DUMMY_EFFECT_GAMEOBJECT,
|
|
||||||
ALLSPELLHOOK_ON_DUMMY_EFFECT_CREATURE,
|
ALLSPELLHOOK_ON_DUMMY_EFFECT_CREATURE,
|
||||||
ALLSPELLHOOK_ON_DUMMY_EFFECT_ITEM,
|
ALLSPELLHOOK_ON_DUMMY_EFFECT_ITEM,
|
||||||
ALLSPELLHOOK_ON_CAST_CANCEL,
|
ALLSPELLHOOK_ON_CAST_CANCEL,
|
||||||
ALLSPELLHOOK_ON_CAST,
|
ALLSPELLHOOK_ON_CAST,
|
||||||
ALLSPELLHOOK_ON_PREPARE
|
ALLSPELLHOOK_ON_PREPARE}) {}
|
||||||
}) { }
|
|
||||||
|
|
||||||
void OnDummyEffect(WorldObject *caster, uint32 spellID, SpellEffIndex effIndex, GameObject *gameObjTarget) override
|
void OnDummyEffect(WorldObject *caster, uint32 spellID, SpellEffIndex effIndex, GameObject *gameObjTarget) override
|
||||||
{
|
{
|
||||||
@@ -1053,12 +1033,10 @@ public:
|
|||||||
class Eluna_WorldObjectScript : public WorldObjectScript
|
class Eluna_WorldObjectScript : public WorldObjectScript
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Eluna_WorldObjectScript() : WorldObjectScript("Eluna_WorldObjectScript", {
|
Eluna_WorldObjectScript() : WorldObjectScript("Eluna_WorldObjectScript", {WORLDOBJECTHOOK_ON_WORLD_OBJECT_DESTROY,
|
||||||
WORLDOBJECTHOOK_ON_WORLD_OBJECT_DESTROY,
|
|
||||||
WORLDOBJECTHOOK_ON_WORLD_OBJECT_CREATE,
|
WORLDOBJECTHOOK_ON_WORLD_OBJECT_CREATE,
|
||||||
WORLDOBJECTHOOK_ON_WORLD_OBJECT_SET_MAP,
|
WORLDOBJECTHOOK_ON_WORLD_OBJECT_SET_MAP,
|
||||||
WORLDOBJECTHOOK_ON_WORLD_OBJECT_UPDATE
|
WORLDOBJECTHOOK_ON_WORLD_OBJECT_UPDATE}) {}
|
||||||
}) { }
|
|
||||||
|
|
||||||
void OnWorldObjectDestroy(WorldObject *object) override
|
void OnWorldObjectDestroy(WorldObject *object) override
|
||||||
{
|
{
|
||||||
@@ -1085,8 +1063,7 @@ public:
|
|||||||
class Eluna_WorldScript : public WorldScript
|
class Eluna_WorldScript : public WorldScript
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Eluna_WorldScript() : WorldScript("Eluna_WorldScript", {
|
Eluna_WorldScript() : WorldScript("Eluna_WorldScript", {WORLDHOOK_ON_OPEN_STATE_CHANGE,
|
||||||
WORLDHOOK_ON_OPEN_STATE_CHANGE,
|
|
||||||
WORLDHOOK_ON_BEFORE_CONFIG_LOAD,
|
WORLDHOOK_ON_BEFORE_CONFIG_LOAD,
|
||||||
WORLDHOOK_ON_AFTER_CONFIG_LOAD,
|
WORLDHOOK_ON_AFTER_CONFIG_LOAD,
|
||||||
WORLDHOOK_ON_SHUTDOWN_INITIATE,
|
WORLDHOOK_ON_SHUTDOWN_INITIATE,
|
||||||
@@ -1095,8 +1072,7 @@ public:
|
|||||||
WORLDHOOK_ON_STARTUP,
|
WORLDHOOK_ON_STARTUP,
|
||||||
WORLDHOOK_ON_SHUTDOWN,
|
WORLDHOOK_ON_SHUTDOWN,
|
||||||
WORLDHOOK_ON_AFTER_UNLOAD_ALL_MAPS,
|
WORLDHOOK_ON_AFTER_UNLOAD_ALL_MAPS,
|
||||||
WORLDHOOK_ON_BEFORE_WORLD_INITIALIZED
|
WORLDHOOK_ON_BEFORE_WORLD_INITIALIZED}) {}
|
||||||
}) { }
|
|
||||||
|
|
||||||
void OnOpenStateChange(bool open) override
|
void OnOpenStateChange(bool open) override
|
||||||
{
|
{
|
||||||
@@ -1163,12 +1139,10 @@ public:
|
|||||||
class Eluna_TicketScript : public TicketScript
|
class Eluna_TicketScript : public TicketScript
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Eluna_TicketScript() : TicketScript("Eluna_TicketScript", {
|
Eluna_TicketScript() : TicketScript("Eluna_TicketScript", {TICKETHOOK_ON_TICKET_CREATE,
|
||||||
TICKETHOOK_ON_TICKET_CREATE,
|
|
||||||
TICKETHOOK_ON_TICKET_UPDATE_LAST_CHANGE,
|
TICKETHOOK_ON_TICKET_UPDATE_LAST_CHANGE,
|
||||||
TICKETHOOK_ON_TICKET_CLOSE,
|
TICKETHOOK_ON_TICKET_CLOSE,
|
||||||
TICKETHOOK_ON_TICKET_RESOLVE
|
TICKETHOOK_ON_TICKET_RESOLVE}) {}
|
||||||
}) { }
|
|
||||||
|
|
||||||
void OnTicketCreate(GmTicket *ticket) override
|
void OnTicketCreate(GmTicket *ticket) override
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -233,6 +233,7 @@ namespace Hooks
|
|||||||
PLAYER_EVENT_ON_AURA_APPLY = 64, // (event, player, aura)
|
PLAYER_EVENT_ON_AURA_APPLY = 64, // (event, player, aura)
|
||||||
PLAYER_EVENT_ON_HEAL = 65, // (event, player, target, gain) - Can return new heal amount
|
PLAYER_EVENT_ON_HEAL = 65, // (event, player, target, gain) - Can return new heal amount
|
||||||
PLAYER_EVENT_ON_DAMAGE = 66, // (event, player, target, damage) - Can return new damage amount
|
PLAYER_EVENT_ON_DAMAGE = 66, // (event, player, target, damage) - Can return new damage amount
|
||||||
|
PLAYER_EVENT_ON_BEFORE_TELEPORT = 67, // (event, player, mapid, x, y, z, orientation, options, target)
|
||||||
|
|
||||||
PLAYER_EVENT_COUNT
|
PLAYER_EVENT_COUNT
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -497,6 +497,7 @@ public:
|
|||||||
void OnPlayerAuraApply(Player* player, Aura* aura);
|
void OnPlayerAuraApply(Player* player, Aura* aura);
|
||||||
void OnPlayerHeal(Player* player, Unit* target, uint32& gain);
|
void OnPlayerHeal(Player* player, Unit* target, uint32& gain);
|
||||||
void OnPlayerDamage(Player* player, Unit* target, uint32& gain);
|
void OnPlayerDamage(Player* player, Unit* target, uint32& gain);
|
||||||
|
void OnBeforeTeleport(Player* player, uint32 mapid, float x, float y, float z, float orientation, uint32 options, Unit* target);
|
||||||
|
|
||||||
/* Vehicle */
|
/* Vehicle */
|
||||||
void OnInstall(Vehicle* vehicle);
|
void OnInstall(Vehicle* vehicle);
|
||||||
|
|||||||
@@ -826,3 +826,19 @@ void Eluna::OnPlayerDamage(Player* player, Unit* target, uint32& damage)
|
|||||||
|
|
||||||
CleanUpStack(3);
|
CleanUpStack(3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Eluna::OnPlayerBeforeTeleport(Player* player, uint32 mapid, float x, float y, float z, float orientation, uint32 options, Unit* target)
|
||||||
|
{
|
||||||
|
START_HOOK(PLAYER_EVENT_ON_BEFORE_TELEPORT);
|
||||||
|
|
||||||
|
Push(player);
|
||||||
|
Push(mapid);
|
||||||
|
Push(x);
|
||||||
|
Push(y);
|
||||||
|
Push(z);
|
||||||
|
Push(orientation);
|
||||||
|
Push(options);
|
||||||
|
Push(target);
|
||||||
|
|
||||||
|
return CallAllFunctionsBool(PlayerEventBindings, key);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user