diff options
author | tartalo <none@none> | 2009-10-20 21:41:08 +0200 |
---|---|---|
committer | tartalo <none@none> | 2009-10-20 21:41:08 +0200 |
commit | 04df8f4c640ad86b499d73a3ac8af78341618448 (patch) | |
tree | 2042de50d0fe58eb918ca9f98a93718e66d9346a /src | |
parent | fd6448dbc0ac275651372054613cae1ca2789454 (diff) | |
parent | e8b0211e19b8540e7dd241c848dbd892e51002b0 (diff) |
merge
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/bindings/interface/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/bindings/interface/ScriptMgr.cpp | 112 | ||||
-rw-r--r-- | src/bindings/interface/ScriptMgr.h | 14 | ||||
-rw-r--r-- | src/bindings/interface/Scripts/on_events.cpp | 108 |
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(); +} |