aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAnubisss <none@none>2009-10-20 16:13:47 +0200
committerAnubisss <none@none>2009-10-20 16:13:47 +0200
commit6d6942fef247d4984be4c57af802af94d3d137ae (patch)
tree48c173aefad7790a1e645255955b2842a69805da /src
parent4654e9e446ed7e939d3ea97cc6f3d4fad17c1c25 (diff)
*Fix startup with trinityinterface(without trinityscripts, -DDO_SCRIPTS=0) in *nix. Patch by alexsot.
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/bindings/interface/CMakeLists.txt1
-rw-r--r--src/bindings/interface/ScriptMgr.cpp112
-rw-r--r--src/bindings/interface/ScriptMgr.h14
3 files changed, 127 insertions, 0 deletions
diff --git a/src/bindings/interface/CMakeLists.txt b/src/bindings/interface/CMakeLists.txt
index 4cffc6446fd..47159df79cc 100644
--- a/src/bindings/interface/CMakeLists.txt
+++ b/src/bindings/interface/CMakeLists.txt
@@ -9,6 +9,7 @@ SET(trinityinterface_LIB_SRCS
Scripts/sc_default.cpp
Scripts/sc_defines.cpp
Scripts/sc_defines.h
+ Scripts/on_events.cpp
)
add_library(trinityinterface SHARED ${trinityinterface_LIB_SRCS})
diff --git a/src/bindings/interface/ScriptMgr.cpp b/src/bindings/interface/ScriptMgr.cpp
index 154d612678d..52e0b912a1e 100644
--- a/src/bindings/interface/ScriptMgr.cpp
+++ b/src/bindings/interface/ScriptMgr.cpp
@@ -84,6 +84,118 @@ void Script::RegisterSelf()
//*** Functions to be Exported ***
TRINITY_DLL_EXPORT
+void OnLogin(Player *pPlayer)
+{
+ Script *tmpscript = m_scripts[GetScriptId("scripted_on_events")];
+ if (!tmpscript || !tmpscript->pOnLogin) return;
+ tmpscript->pOnLogin(pPlayer);
+}
+
+TRINITY_DLL_EXPORT
+void OnLogout(Player *pPlayer)
+{
+ Script *tmpscript = m_scripts[GetScriptId("scripted_on_events")];
+ if (!tmpscript || !tmpscript->pOnLogout) return;
+ tmpscript->pOnLogout(pPlayer);
+}
+
+TRINITY_DLL_EXPORT
+void OnPVPKill(Player *killer, Player *killed)
+{
+ Script *tmpscript = m_scripts[GetScriptId("scripted_on_events")];
+ if (!tmpscript || !tmpscript->pOnPVPKill) return;
+ tmpscript->pOnPVPKill(killer, 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/interface/ScriptMgr.h b/src/bindings/interface/ScriptMgr.h
index 9b3c59d17ca..4bcaaa7ad5a 100644
--- a/src/bindings/interface/ScriptMgr.h
+++ b/src/bindings/interface/ScriptMgr.h
@@ -49,6 +49,20 @@ struct Script
std::string Name;
//Methods to be scripted
+ 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 );