Refactored the TakeDamage API to take equipped weapon and armor into consideration (PvP untested)
http://forum.mc-server.org/showthread.php?tid=625 git-svn-id: http://mc-server.googlecode.com/svn/trunk@1087 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
@@ -366,16 +366,25 @@ void cPlugin_NewLua::OnPlayerMove( cPlayer* a_Player )
|
||||
|
||||
|
||||
|
||||
void cPlugin_NewLua::OnTakeDamage( cPawn* a_Pawn, TakeDamageInfo* a_TakeDamageInfo )
|
||||
bool cPlugin_NewLua::OnTakeDamage(cPawn & a_Receiver, TakeDamageInfo & a_TDI)
|
||||
{
|
||||
cCSLock Lock( m_CriticalSection );
|
||||
if( !PushFunction("OnTakeDamage") )
|
||||
return;
|
||||
cCSLock Lock(m_CriticalSection);
|
||||
if (!PushFunction("OnTakeDamage"))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
tolua_pushusertype(m_LuaState, a_Pawn, "cPawn");
|
||||
tolua_pushusertype(m_LuaState, a_TakeDamageInfo, "TakeDamageInfo");
|
||||
tolua_pushusertype(m_LuaState, &a_Receiver, "cPawn");
|
||||
tolua_pushusertype(m_LuaState, &a_TDI, "TakeDamageInfo");
|
||||
|
||||
CallFunction(2, 0, "OnTakeDamage");
|
||||
if (!CallFunction(2, 1, "OnTakeDamage"))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool bRetVal = (tolua_toboolean(m_LuaState, -1, 0) != 0);
|
||||
lua_pop(m_LuaState, 1);
|
||||
return bRetVal;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user