mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-03-21 18:32:08 +00:00
Expose lastinputtime to Lua
This commit is contained in:
parent
436de21808
commit
80e386b16f
3 changed files with 17 additions and 5 deletions
|
@ -3572,6 +3572,7 @@ static int lib_gAddPlayer(lua_State *L)
|
|||
|
||||
newplayer->jointime = 0;
|
||||
newplayer->quittime = 0;
|
||||
newplayer->lastinputtime = 0;
|
||||
|
||||
// Read the skin argument (defaults to Sonic)
|
||||
if (!lua_isnoneornil(L, 1))
|
||||
|
|
|
@ -223,6 +223,7 @@ enum player_e
|
|||
player_blocked,
|
||||
player_jointime,
|
||||
player_quittime,
|
||||
player_lastinputtime,
|
||||
player_ping,
|
||||
#ifdef HWRENDER
|
||||
player_fovadd,
|
||||
|
@ -371,6 +372,7 @@ static const char *const player_opt[] = {
|
|||
"blocked",
|
||||
"jointime",
|
||||
"quittime",
|
||||
"lastinputtime",
|
||||
"ping",
|
||||
#ifdef HWRENDER
|
||||
"fovadd",
|
||||
|
@ -826,6 +828,9 @@ static int player_get(lua_State *L)
|
|||
case player_quittime:
|
||||
lua_pushinteger(L, plr->quittime);
|
||||
break;
|
||||
case player_lastinputtime:
|
||||
lua_pushinteger(L, plr->lastinputtime);
|
||||
break;
|
||||
case player_ping:
|
||||
lua_pushinteger(L, playerpingtable[plr - players]);
|
||||
break;
|
||||
|
@ -1349,6 +1354,9 @@ static int player_set(lua_State *L)
|
|||
case player_quittime:
|
||||
plr->quittime = (tic_t)luaL_checkinteger(L, 3);
|
||||
break;
|
||||
case player_lastinputtime:
|
||||
plr->lastinputtime = (tic_t)luaL_checkinteger(L, 3);
|
||||
break;
|
||||
#ifdef HWRENDER
|
||||
case player_fovadd:
|
||||
plr->fovadd = luaL_checkfixed(L, 3);
|
||||
|
|
|
@ -227,6 +227,7 @@ static void Got_AddPlayer(UINT8 **p, INT32 playernum)
|
|||
|
||||
newplayer->jointime = 0;
|
||||
newplayer->quittime = 0;
|
||||
newplayer->lastinputtime = 0;
|
||||
|
||||
READSTRINGN(*p, player_names[newplayernum], MAXPLAYERNAME);
|
||||
|
||||
|
@ -1282,19 +1283,21 @@ static void IdleUpdate(void)
|
|||
|
||||
for (i = 1; i < MAXPLAYERS; i++)
|
||||
{
|
||||
if (cv_idletime.value && playeringame[i] && playernode[i] != UINT8_MAX && !players[i].quittime && !players[i].spectator && !IsPlayerAdmin(i))
|
||||
if (cv_idletime.value && playeringame[i] && playernode[i] != UINT8_MAX && !players[i].quittime && !players[i].spectator && !players[i].bot && !IsPlayerAdmin(i) && i != serverplayer)
|
||||
{
|
||||
if (players[i].cmd.forwardmove || players[i].cmd.sidemove || players[i].cmd.buttons)
|
||||
players[i].lastinputtime = gametime;
|
||||
players[i].lastinputtime = 0;
|
||||
else
|
||||
players[i].lastinputtime++;
|
||||
|
||||
if (gametime - players[i].lastinputtime > (tic_t)cv_idletime.value * TICRATE * 60)
|
||||
if (players[i].lastinputtime > (tic_t)cv_idletime.value * TICRATE * 60)
|
||||
{
|
||||
players[i].lastinputtime = gametime;
|
||||
players[i].lastinputtime = 0;
|
||||
SendKick(i, KICK_MSG_IDLE | KICK_MSG_KEEP_BODY);
|
||||
}
|
||||
}
|
||||
else
|
||||
players[i].lastinputtime = gametime;
|
||||
players[i].lastinputtime = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue