diff options
| author | maximius <none@none> | 2009-09-23 20:19:21 -0700 |
|---|---|---|
| committer | maximius <none@none> | 2009-09-23 20:19:21 -0700 |
| commit | 906b00465ad7c41a018a6c6ea3f37b6c466d38cd (patch) | |
| tree | df4aa409d11e89d85fa8d8c3e9a0c424df29f612 /src/bindings/scripts | |
| parent | 8102372a67098e1af65888b0b411eb3b47814bf0 (diff) | |
*add 11 new event hooks to the OnEvents system, by Hawthorne
--HG--
branch : trunk
Diffstat (limited to 'src/bindings/scripts')
| -rw-r--r-- | src/bindings/scripts/ScriptMgr.cpp | 88 | ||||
| -rw-r--r-- | src/bindings/scripts/ScriptMgr.h | 11 | ||||
| -rw-r--r-- | src/bindings/scripts/include/precompiled.h | 2 | ||||
| -rw-r--r-- | src/bindings/scripts/scripts/custom/on_events.cpp | 77 |
4 files changed, 178 insertions, 0 deletions
diff --git a/src/bindings/scripts/ScriptMgr.cpp b/src/bindings/scripts/ScriptMgr.cpp index 7d1f27b2f96..0b48f5f7cef 100644 --- a/src/bindings/scripts/ScriptMgr.cpp +++ b/src/bindings/scripts/ScriptMgr.cpp @@ -245,6 +245,94 @@ void OnPVPKill(Player *killer, Player *killed) } TRINITY_DLL_EXPORT +bool OnSpellCast (Unit *pUnitTarget, Item *pItemTarget, GameObject *pGoTarget, uint32 i, SpellEntry const *spell) +{ + Script *tmpscript = m_scripts[GetScriptId("scripted_on_events")]; + if (!tmpscript || !tmpscript->pOnSpellCast) return true; + return tmpscript->pOnSpellCast(pUnitTarget,pItemTarget,pGoTarget,i,spell); +} + +TRINITY_DLL_EXPORT +uint32 OnGetXP(Player *pPlayer, uint32 amount) +{ + Script *tmpscript = m_scripts[GetScriptId("scripted_on_events")]; + if (!tmpscript || !tmpscript->pOnGetXP) return amount; + return tmpscript->pOnGetXP(pPlayer,amount); +} + +TRINITY_DLL_EXPORT +uint32 OnGetMoney(Player *pPlayer, int32 amount) +{ + Script *tmpscript = m_scripts[GetScriptId("scripted_on_events")]; + if (!tmpscript || !tmpscript->pOnGetMoney) return amount; + return tmpscript->pOnGetMoney(pPlayer,amount); +} + +TRINITY_DLL_EXPORT +bool OnPlayerChat(Player *pPlayer, const char *text) +{ + Script *tmpscript = m_scripts[GetScriptId("scripted_on_events")]; + if (!tmpscript || !tmpscript->pOnPlayerChat) return true; + return tmpscript->pOnPlayerChat(pPlayer,text); +} + +TRINITY_DLL_EXPORT +void OnServerStartup() +{ + Script *tmpscript = m_scripts[GetScriptId("scripted_on_events")]; + if (!tmpscript || !tmpscript->pOnServerStartup) return; + tmpscript->pOnServerStartup(); +} + +TRINITY_DLL_EXPORT +void OnServerShutdown() +{ + Script *tmpscript = m_scripts[GetScriptId("scripted_on_events")]; + if (!tmpscript || !tmpscript->pOnServerShutdown) return; + tmpscript->pOnServerShutdown(); +} + +TRINITY_DLL_EXPORT +void OnAreaChange(Player *pPlayer, AreaTableEntry const *pArea) +{ + Script *tmpscript = m_scripts[GetScriptId("scripted_on_events")]; + if (!tmpscript || !tmpscript->pOnAreaChange) return; + tmpscript->pOnAreaChange(pPlayer, pArea); +} + +TRINITY_DLL_EXPORT +bool OnItemClick (Player *pPlayer, Item *pItem) +{ + Script *tmpscript = m_scripts[GetScriptId("scripted_on_events")]; + if (!tmpscript || !tmpscript->pOnItemClick) return true; + return tmpscript->pOnItemClick(pPlayer,pItem); +} + +TRINITY_DLL_EXPORT +bool OnItemOpen (Player *pPlayer, Item *pItem) +{ + Script *tmpscript = m_scripts[GetScriptId("scripted_on_events")]; + if (!tmpscript || !tmpscript->pOnItemOpen) return true; + return tmpscript->pOnItemOpen(pPlayer,pItem); +} + +TRINITY_DLL_EXPORT +bool OnGoClick (Player *pPlayer, GameObject *pGameObject) +{ + Script *tmpscript = m_scripts[GetScriptId("scripted_on_events")]; + if (!tmpscript || !tmpscript->pOnGoClick) return true; + return tmpscript->pOnGoClick(pPlayer,pGameObject); +} + +TRINITY_DLL_EXPORT +void OnCreatureKill (Player *pPlayer, Creature *pCreature) +{ + Script *tmpscript = m_scripts[GetScriptId("scripted_on_events")]; + if (!tmpscript || !tmpscript->pOnCreatureKill) return; + tmpscript->pOnCreatureKill(pPlayer,pCreature); +} + +TRINITY_DLL_EXPORT char const* ScriptsVersion() { return "Default Trinity scripting library"; diff --git a/src/bindings/scripts/ScriptMgr.h b/src/bindings/scripts/ScriptMgr.h index 5b5ce118236..9456a0da661 100644 --- a/src/bindings/scripts/ScriptMgr.h +++ b/src/bindings/scripts/ScriptMgr.h @@ -46,6 +46,17 @@ struct Script void (*pOnLogin )(Player*); void (*pOnLogout )(Player*); void (*pOnPVPKill )(Player*, Player*); + bool (*pOnSpellCast )(Unit*, Item*, GameObject*, uint32, SpellEntry const*); + uint32 (*pOnGetXP )(Player*, uint32); + int32 (*pOnGetMoney )(Player*, int32); + bool (*pOnPlayerChat )(Player*, const char*); + void (*pOnServerStartup )(); + void (*pOnServerShutdown )(); + void (*pOnAreaChange )(Player*, AreaTableEntry const*); + bool (*pOnItemClick )(Player*, Item*); + bool (*pOnItemOpen )(Player*, Item*); + bool (*pOnGoClick )(Player*, GameObject*); + void (*pOnCreatureKill )(Player*, Creature*); bool (*pGossipHello )(Player*, Creature*); bool (*pQuestAccept )(Player*, Creature*, Quest const* ); bool (*pGossipSelect )(Player*, Creature*, uint32 , uint32 ); diff --git a/src/bindings/scripts/include/precompiled.h b/src/bindings/scripts/include/precompiled.h index 46335c2d9eb..3f5bc7e7265 100644 --- a/src/bindings/scripts/include/precompiled.h +++ b/src/bindings/scripts/include/precompiled.h @@ -18,6 +18,8 @@ #include "CombatAI.h" #include "PassiveAI.h" #include "Chat.h" +#include "DBCStructure.h" +#include "DBCStores.h" #ifdef WIN32 #include <windows.h> diff --git a/src/bindings/scripts/scripts/custom/on_events.cpp b/src/bindings/scripts/scripts/custom/on_events.cpp index 0f6a23698c5..842d07f35f0 100644 --- a/src/bindings/scripts/scripts/custom/on_events.cpp +++ b/src/bindings/scripts/scripts/custom/on_events.cpp @@ -19,6 +19,71 @@ void OnPVPKill(Player *killer, Player *killed) } +//This function is called when a players AreaID changes +void OnAreaChange(Player *pPlayer, AreaTableEntry const *pArea) +{ + +} + +//This is called when a player kills a creature (non pvp) +void OnCreatureKill(Player *pPlayer, Creature *pCreature) +{ + +} + +//This function is called when a player has a money exchange +int32 OnGetMoney(Player *pPlayer, int32 amount) +{ + return amount; +} + +//This function is called whenever a player gets XP +uint32 OnGetXP(Player *pPlayer, uint32 amount) +{ + return amount; +} + +//This function is called when a player clicks a GO Object +bool OnGoClick(Player *pPlayer, GameObject *pGameObject) +{ + return true; +} + +//This function is called when a player clicks and item +bool OnItemClick(Player *pPlayer, Item *pItem) +{ + return true; +} + +//This function is called when a player opens an item (like a clam) +bool OnItemOpen(Player *pPlayer, Item *pItem) +{ + return true; +} + +//This function is called when a player sends a chat message +bool OnPlayerChat(Player *pPlayer, const char *text) +{ + return true; +} + +//this function is called when the server starts +void OnServerStartup() +{ + +} +//this function is called when the server shuts down +void OnServerShutdown() +{ + +} + +//this function is called when a player casts a spell +bool OnSpellCast(Unit *pUnitTarget, Item *pItemTarget, GameObject *pGoTarget, uint32 i, SpellEntry const *spell) +{ + return true; +} + void AddSC_onevents() { Script *newscript; @@ -27,5 +92,17 @@ void OnPVPKill(Player *killer, Player *killed) newscript->pOnLogin = &OnLogin; newscript->pOnLogout = &OnLogout; newscript->pOnPVPKill = &OnPVPKill; + newscript->pOnAreaChange = &OnAreaChange; + newscript->pOnCreatureKill = &OnCreatureKill; + newscript->pOnGetMoney = &OnGetMoney; + newscript->pOnGetXP = &OnGetXP; + newscript->pOnGoClick = &OnGoClick; + newscript->pOnItemClick = &OnItemClick; + newscript->pOnItemOpen = &OnItemOpen; + newscript->pOnPlayerChat = &OnPlayerChat; + newscript->pOnServerShutdown = &OnServerShutdown; + newscript->pOnServerStartup = &OnServerStartup; + newscript->pOnSpellCast = &OnSpellCast; + newscript->RegisterSelf(); } |
