master
Marrub 2015-03-12 05:00:45 -04:00
parent 183e7b4a82
commit bf75fbf690
3 changed files with 31 additions and 3 deletions

View File

@ -281,12 +281,22 @@ struct PLAYER_s *PLAYER_New(CBasePlayer *pPlayer)
luaL_getmetatable(g_L, "PLAYER_s"); luaL_getmetatable(g_L, "PLAYER_s");
lua_setmetatable(g_L, -2); lua_setmetatable(g_L, -2);
player->ply = pPlayer;
player->pev = pPlayer->pev; player->pev = pPlayer->pev;
return player; return player;
} }
struct PLAYER_s *PLAYER_New(entvars_t *pev)
{
struct PLAYER_s *player = (struct PLAYER_s *)lua_newuserdata(g_L, sizeof(struct PLAYER_s));
luaL_getmetatable(g_L, "PLAYER_s");
lua_setmetatable(g_L, -2);
player->pev = pev;
return player;
}
static struct PLAYER_s *PLAYER_Get(lua_State *L) static struct PLAYER_s *PLAYER_Get(lua_State *L)
{ {
struct PLAYER_s *player; struct PLAYER_s *player;

View File

@ -9,12 +9,12 @@
struct gsLuaRun_s struct gsLuaRun_s
{ {
BOOL LRUN_CHLR_PLAYER_SPAWN = TRUE, BOOL LRUN_CHLR_PLAYER_SPAWN = TRUE,
LRUN_CHLR_PLAYER_THINK = TRUE; LRUN_CHLR_PLAYER_THINK = TRUE,
LRUN_CHLR_PLAYER_KILLED = TRUE;
}; };
struct PLAYER_s struct PLAYER_s
{ {
CBasePlayer *ply;
entvars_t *pev; entvars_t *pev;
}; };
@ -23,6 +23,7 @@ extern BOOL g_bLuaInitialized;
extern struct gsLuaRun_s g_gsLuaRun; extern struct gsLuaRun_s g_gsLuaRun;
struct PLAYER_s *PLAYER_New(CBasePlayer *pPlayer); struct PLAYER_s *PLAYER_New(CBasePlayer *pPlayer);
struct PLAYER_s *PLAYER_New(entvars_t *pev);
void LuaInit(void); void LuaInit(void);
void LuaQuit(void); void LuaQuit(void);

View File

@ -196,6 +196,23 @@ int CHalfLifeRules :: IPointsForKill( CBasePlayer *pAttacker, CBasePlayer *pKill
//========================================================= //=========================================================
void CHalfLifeRules :: PlayerKilled( CBasePlayer *pVictim, entvars_t *pKiller, entvars_t *pInflictor ) void CHalfLifeRules :: PlayerKilled( CBasePlayer *pVictim, entvars_t *pKiller, entvars_t *pInflictor )
{ {
if(g_gsLuaRun.LRUN_CHLR_PLAYER_KILLED)
{
BOOL bRun;
bRun = LuaGet("GAME", LUA_TTABLE, FALSE, FALSE);
if(bRun) bRun = LuaGet("PlayerKilled", LUA_TFUNCTION, TRUE, FALSE);
if(bRun)
{
PLAYER_New(pVictim);
PLAYER_New(pKiller);
PLAYER_New(pInflictor);
LuaCall("GAME.PlayerKilled");
}
else
{
g_gsLuaRun.LRUN_CHLR_PLAYER_KILLED = FALSE;
}
}
} }
//========================================================= //=========================================================