aboutsummaryrefslogtreecommitdiff
path: root/src/bindings/scripts
diff options
context:
space:
mode:
authormaximius <none@none>2009-09-23 20:19:21 -0700
committermaximius <none@none>2009-09-23 20:19:21 -0700
commit906b00465ad7c41a018a6c6ea3f37b6c466d38cd (patch)
treedf4aa409d11e89d85fa8d8c3e9a0c424df29f612 /src/bindings/scripts
parent8102372a67098e1af65888b0b411eb3b47814bf0 (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.cpp88
-rw-r--r--src/bindings/scripts/ScriptMgr.h11
-rw-r--r--src/bindings/scripts/include/precompiled.h2
-rw-r--r--src/bindings/scripts/scripts/custom/on_events.cpp77
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();
}