aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortartalo <none@none>2009-10-20 21:41:08 +0200
committertartalo <none@none>2009-10-20 21:41:08 +0200
commit04df8f4c640ad86b499d73a3ac8af78341618448 (patch)
tree2042de50d0fe58eb918ca9f98a93718e66d9346a /src
parentfd6448dbc0ac275651372054613cae1ca2789454 (diff)
parente8b0211e19b8540e7dd241c848dbd892e51002b0 (diff)
merge
--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
-rw-r--r--src/bindings/interface/Scripts/on_events.cpp108
4 files changed, 235 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 );
diff --git a/src/bindings/interface/Scripts/on_events.cpp b/src/bindings/interface/Scripts/on_events.cpp
new file mode 100644
index 00000000000..bfac9b33519
--- /dev/null
+++ b/src/bindings/interface/Scripts/on_events.cpp
@@ -0,0 +1,108 @@
+#include "sc_defines.h"
+#include <cstring>
+
+//This function is called when the player logs in (every login)
+void OnLogin(Player *pPlayer)
+{
+
+}
+
+//This function is called when the player logs out
+void OnLogout(Player *pPlayer)
+{
+
+}
+
+//This function is called when the player kills another player
+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;
+ newscript = new Script;
+ newscript->Name = "scripted_on_events";
+ 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();
+}