2 if(!defined(
'IN_GAME')) {
8 global $validtime,$killnum;
11 'showup' => Array(
'不需要伪装了,上吧。',
'我是静流,任务开始。'),
12 'selfbuff' => Array(
'……这个叫做拍BUFF……!',
'进行自我强化!'),
13 'selfcure' => Array(
'进行自我回复。',
'一般人大概是活不下刚才那一下的,但是我不是一般人。',
'下次再取你的小命!'),
14 'move' => Array(
'我已抵达[pls],开始执行任务。',
'目标地点:[pls]。开始搜索。',
'在[pls]发现触手,进入警戒模式。'),
15 'move2' => Array(
'非目标范围。回避至[pls]。',
'暂时回避。已抵达[pls]。',
'上一地点会误伤无辜,我已回避至[pls]。',
'不能加害无辜的人……目前我位于[pls]。'),
16 'combat' => Array(
'……歼灭[plyr]。',
'[plyr],吃招!',
'目标:[plyr],抹杀开始!'),
17 'itm' => Array(
'[itm]位于[plss]。',
'在[plss]地点发现[itm]。',
'[itm]存在于[plss]。'),
18 'unfound' => Array(
'……[unfound]在地图上不存在。欺骗风纪委员是违反校规的。',
'找不到这个物品啊:[unfound]……要我做一个出来么?'),
23 if(!$gamevars[
'sanmaact']){
24 $checkMinionSurvive =
"SELECT * FROM {$tablepre}players WHERE `type` =91 AND `name` = 'AC专业职人'";
25 $ifMinionSurvive = $db->query($checkMinionSurvive);
26 $minionHP = $db->fetch_array($ifMinionSurvive);
28 if ($minionHP [
'hp'] > 0){
33 $cht = $sanmachat[
'showup']; shuffle($cht); $cht = $cht[0];
34 $db->query(
"INSERT INTO {$tablepre}chat (type,`time`,send,recv,msg) VALUES ('2','$now','【SANMA_TK】','','$cht')");
35 include_once
GAME_ROOT .
'./include/system.func.php';
37 $gamevars[
'sanmaact'] = 1;
40 }
elseif(!$gamevars[
'sanmadead']){
43 $checkSanma = $db->query(
"SELECT * FROM {$tablepre}players WHERE type = 15 AND name = '【SANMA_TK】'");
44 $sdata = $db->fetch_array($checkSanma);
45 $spid = $sdata[
'pid'];
47 if($sdata[
'hp'] <= 0){
48 $gamevars[
'sanmadead'] = 1;
51 global $pls,$pid,$name,$rp,$killnum,$state;
54 $rpqrylimit = round($validnum/2);
55 if($rpqrylimit <= 1){$rpqrylimit = 1;}
56 $result = $db->query(
"SELECT pid,name,rp,validtime FROM {$tablepre}players WHERE type = 0 AND hp > 0 ORDER BY (rp / ($now - validtime)) DESC LIMIT $rpqrylimit");
57 $rptopdata = $db->fetch_array(
$result);
59 while($rpr = $db->fetch_array(
$result)){
60 $rplist[
'pid'] = $rpr;
62 $rplist[$rptopdata[
'pid']] = $rptopdata;
64 if(!$sdata[
'achievement']){
65 $sdata[
'achievement'] = Array(
'chatid' => 0,
'curenum' => 0);
67 $sdata[
'achievement'] = json_decode($sdata[
'achievement'],
true);
69 $svars = & $sdata[
'achievement'];
70 $chatid = & $svars[
'chatid'];
71 $curenum = & $svars[
'curenum'];
76 if(!$chatid){$chatid = 0;}
78 $chatid = (int)$chatid; $chatlimit = (int)$chatlimit;
79 $result = $db->query(
"SELECT * FROM {$tablepre}chat WHERE cid>$chatid AND send != '【SANMA_TK】' AND type='0' ORDER BY cid DESC LIMIT $chatlimit");
81 while($chat = $db->fetch_array(
$result)) {
83 $nowchatid = $chat[
'cid'];
85 if($nowchatid > $chatid){
90 $checkcdata = Array();
94 if((strpos($val[
'msg'],
'静流')!==
false || strpos($val[
'msg'],
'SANMA')!==
false) && (strpos($val[
'msg'],
'位置')!==
false || strpos($val[
'msg'],
'哪')!==
false)){
101 '草帽' =>
'《小黄的草帽》',
'钓鱼竿' =>
'《小黄的钓鱼竿》',
'行军靴' =>
'《小黄的行军靴》',
102 '月宫 亚由' =>
'月宫 亚由的半身像',
'神尾 观铃' =>
'神尾 观铃的半身像',
'古河 渚' =>
'古河 渚的半身像',
103 '天泽 郁末' =>
'天泽 郁末的半身像',
'长森 瑞佳' =>
'长森 瑞佳的半身像',
'枣 铃' =>
'枣 铃的半身像',
104 '咏叹调' =>
'四季流转的咏叹调',
'覆唱诗' =>
'旁观轮回的覆唱诗',
107 $checkitms = Array();
108 if(!empty($checkcdata)){
109 foreach($prcslist as $pkey => $pval){
110 if(strpos($pkey,
' ')!==
false){
111 list($pkey1,$pkey2) = explode(
' ',$pkey);
112 foreach($checkcdata as $val){
113 if(strpos($val[
'msg'],$pkey1)!==
false && strpos($val[
'msg'],$pkey2)!==
false){
114 $checkitms[] = $pval;
119 foreach($checkcdata as $val){
120 if(strpos($val[
'msg'],$pkey)!==
false){
121 $checkitms[] = $pval;
128 if(!empty($checkitms)){
131 foreach($checkitms as $val){
132 $qrywhere .=
"'".$val.
"',";
134 $qrywhere =
'('.substr($qrywhere,0,-1).
')';
135 $result = $db->query(
"SELECT * FROM {$tablepre}mapitem WHERE itm IN $qrywhere");
137 while($idata = $db->fetch_array(
$result)){
138 $itmdata[$idata[
'itm']][] = $idata[
'pls'];
142 if(!empty($itmdata)){
143 foreach($itmdata as $itm => $ipls){
144 $cht = $sanmachat[
'itm']; shuffle($cht); $cht = $cht[0];
145 $cht = str_replace(
'[itm]',$itm,$cht);
148 foreach($ipls as $pval){
149 if(!in_array($pval,$pvallist)){
150 $plss .= $plsinfo[$pval].
',';
154 $cht = str_replace(
'[plss]',substr($plss,0,-1),$cht);
155 $itmchat[] = Array(
'type' =>
'2',
'time' => $now,
'send' =>
'【SANMA_TK】',
'msg' => $cht);
159 $unfounditms = array_diff($checkitms,array_keys($itmdata));
161 if(!empty($unfounditms)){
164 foreach($unfounditms as $uval){
165 $unfound .= $uval.
',';
167 $cht = $sanmachat[
'unfound']; shuffle($cht); $cht = $cht[0];
168 $cht = str_replace(
'[unfound]',substr($unfound,0,-1),$cht);
169 $itmchat[] = Array(
'type' =>
'2',
'time' => $now,
'send' =>
'【SANMA_TK】',
'msg' => $cht);
171 if(!empty($itmchat)){
172 $db->multi_insert(
"{$tablepre}chat",$itmchat);
178 if($sdata[
'hp'] <= $sdata[
'mhp'] * 0.75){
181 if(rand(0,4) < $curenum){
183 $sdata[
'hp'] = $sdata[
'mhp'] = round($sdata[
'mhp']*1.05);
184 $sdata[
'att'] = round($sdata[
'att']*1.1);
185 $sdata[
'def'] = round($sdata[
'def']*1.1);
186 foreach(array(
'wp',
'wk',
'wg',
'wc',
'wd',
'wf') as $val){
187 $sdata[$val] = round($sdata[$val]*1.1);
189 $cht = $sanmachat[
'selfbuff'];
191 $sdata[
'hp'] = $sdata[
'mhp'];
192 $cht = $sanmachat[
'selfcure'];
195 shuffle($cht); $cht = $cht[0];
196 $db->query(
"INSERT INTO {$tablepre}chat (type,`time`,send,recv,msg) VALUES ('2','$now','【SANMA_TK】','','{$cht}')");
198 }
elseif(rand(0,99) < $rate && in_array($pid,array_keys($rplist)) && $rp >= 50){
199 $mvflg = $cmbtflg =
false;
201 $myrprate = $rp / ($now - $validtime);
205 $mvrate = round(($myrprate - $rpratesafe) / ($rpratelvl - $rpratesafe) * 80);
if($mvrate > 80){$mvrate = 80;}
elseif($mvrate < 0){$mvrate = 0;}
207 $cmbtrate = round(($myrprate - $rpratelvl) / ($rpratelvl2 - $rpratelvl) * 80);
if($cmbtrate > 80){$cmbtrate = 80;}
elseif($cmbtrate < 0){$cmbtrate = 0;}
215 if($sdata[
'pls'] != $pls){
217 $sdata[
'pls'] = $pls;
219 if($dice < $cmbtrate && $sdata[
'pls'] == $pls && $rptopdata[
'pid'] == $pid && $killnum > 0){
226 $sdata[
'pose'] = 2;$sdata[
'tactic'] = 3;
229 $db->array_update(
"{$tablepre}players", $sdata,
" pid = '$spid'");
230 $splsinfo = $plsinfo[$sdata[
'pls']];
231 $cht = $sanmachat[
'move']; shuffle($cht); $cht = $cht[0]; $cht = str_replace(
'[pls]',$splsinfo,$cht);
232 $db->query(
"INSERT INTO {$tablepre}chat (type,`time`,send,recv,msg) VALUES ('2','$now','【SANMA_TK】','','{$cht}')");
235 if(is_array($sdata[
'achievement'])){$sdata[
'achievement'] = json_encode($sdata[
'achievement']);}
239 $cht = $sanmachat[
'combat']; shuffle($cht); $cht = $cht[0]; $cht = str_replace(
'[plyr]',$sanmams,$cht);
240 $db->query(
"INSERT INTO {$tablepre}chat (type,`time`,send,recv,msg) VALUES ('2','$now','【SANMA_TK】','','{$cht}')");
242 }
elseif(!in_array($pid,array_keys($rplist)) || $rp < 50) {
245 if($sdata[
'pls'] == $pls){
246 $sdata[
'pose'] = 0;$sdata[
'tactic'] = 4;
248 while($sdata[
'pls'] == $pls){
249 $sdata[
'pls'] = rand(1,count($plsinfo)-1);
257 $splsinfo = $plsinfo[$sdata[
'pls']];
258 $cht = $sanmachat[
'move2']; shuffle($cht); $cht = $cht[0]; $cht = str_replace(
'[pls]',$splsinfo,$cht);
259 $db->query(
"INSERT INTO {$tablepre}chat (type,`time`,send,recv,msg) VALUES ('2','$now','【SANMA_TK】','','{$cht}')");
263 if(is_array($sdata[
'achievement'])){$sdata[
'achievement'] = json_encode($sdata[
'achievement']);}
264 $db->array_update(
"{$tablepre}players", $sdata,
" pid = '$spid'");
if(!defined('IN_GAME')) aievent($rate)
addnpc($type, $sub, $num, $time=0)
【生存者数:<?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)
if(!$cuser||!$cpass) $result