Tokiwa Battle Royale  GE777
A PHP Battle Royale inspired game
 All Data Structures Namespaces Files Functions Variables Pages
antiAFKmng.php
Go to the documentation of this file.
1 <?php
2 if(!defined('IN_ADMIN')) {
3  exit('Access Denied');
4 }
5 
6 require_once GAME_ROOT.'./include/system.func.php';
8 if($command == 'kill'){
9  kill_all_AFKer($timelimit);
10 }
11 
12 function kill_all_AFKer($timelimit=1){
14  $cmd_info = '';
15  if (!is_numeric($timelimit)){
16  $cmd_info .= '时间间隔错误!<br>';
17  return;
18  } elseif($timelimit < $antiAFKintv) {
19  $cmd_info .= '时间间隔太短,可能波及正常玩家。';
20  return;
21  }
22  $cmd_info .= '将杀死: '.$timelimit.' 分钟内没有任何行动的玩家。<br>';
23  $timelimit *= 60;
24 
25  $deadline=$now-$timelimit;
26  $result = $db->query("SELECT * FROM {$tablepre}players WHERE type=0 AND endtime < '$deadline' AND hp>'0' AND state<'10'");
27  while($al = $db->fetch_array($result)) {
28  $afkerlist[$al['pid']]=Array('name' => $al['name'] ,'pls' => $al['pls']);
29  }
30 
31  if(!$afkerlist){$cmd_info .= '没有符合条件的角色。';return;}
32  foreach($afkerlist as $kid => $kcontent){
33  $db->query("UPDATE {$tablepre}players SET hp='0',state='32' WHERE pid='$kid' AND type='0' AND hp>'0' AND state<'10'");
34  if($db->affected_rows()){
35  adminlog('killafker',$kid);
36  $cmd_info .= '角色 '.$kcontent['name'].' 被杀死。<br>';
37  addnews($now,'death32',$kcontent['name'],'',$kcontent['pls']);
38  $alivenum--;
39  $deathnum++;
40 
41  } else {
42  $cmd_info .= '无法杀死角色 '.$kcontent['name'].' 。<br>';
43  }
44  }
45  save_gameinfo();
46  return;
47 }
48 
49 //kill_all_AFKer(10);
50 echo <<<EOT
51 <form method="post" name="antiAFKmng" onsubmit="admin.php">
52 <input type="hidden" name="mode" value="antiAFKmng">
53 <input type="hidden" name="command" value="kill">
54 杀死<input type="text" name="timelimit" value="$antiAFKintv" size="4" maxlength="4">分钟内没有行动的玩家。<br>
55 <input type="submit" value="挂机党都去死吧!"><br>
56 </form>
57 EOT;
58 
59 ?>
while($gm=$db->fetch_array($result)) $cmd_info
Definition: gmlist.php:10
$tablepre
Definition: config.inc.php:58
if($command== 'kill') kill_all_AFKer($timelimit=1)
Definition: antiAFKmng.php:12
addnews($t=0, $n= '', $a='', $b='', $c= '', $d= '', $e= '')
$antiAFKertime
Definition: gamecfg_1.php:24
$db
Definition: clear.php:32
$deathnum
Definition: gameinfo.php:15
【生存者数:<?php echo $alivenum?> 人】< input type="button"value="显示全部幸存者"onClick="$('alivemode').value='all';$('gbmode').value='none';postCmd('alive','alive.php');"></p > if($gamblingon &&$gamestate >=20) elseif($gamblingon &&$gamestate<=10)
Definition: 1_alive.tpl.php:18
const GAME_ROOT
Definition: clear.php:6
$alivenum
Definition: gameinfo.php:14
$now
Definition: clear.php:23
value
Definition: 1_alive.tpl.php:10
$antiAFKintv
Definition: antiAFKmng.php:7
if(!$cuser||!$cpass) $result
Definition: admin.php:25
adminlog($op, $an1='', $an2='', $an3='')
Definition: admin.php:58
save_gameinfo()