*Fix startup with trinityinterface(without trinityscripts, -DDO_SCRIPTS=0) in *nix. Patch by alexsot.

--HG--
branch : trunk
This commit is contained in:
Anubisss
2009-10-20 16:13:47 +02:00
parent 4654e9e446
commit 6d6942fef2
3 changed files with 127 additions and 0 deletions

View File

@@ -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})

View File

@@ -83,6 +83,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()
{

View File

@@ -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 );