1
0

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:
madmaxoft@gmail.com
2012-12-21 11:04:08 +00:00
parent 231d6aed35
commit 912a1e7adc
62 changed files with 2532 additions and 1140 deletions

View File

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