Tokiwa Battle Royale  GE777
A PHP Battle Royale inspired game
 All Data Structures Namespaces Files Functions Variables Pages
battle.func.php
Go to the documentation of this file.
1 <?php
2 
3 if(!defined('IN_GAME')) {
4  exit('Access Denied');
5 }
6 
7 
8 
9 function findenemy(&$w_pdata) {
10  global $log,$mode,$main,$cmd,$battle_title,$attinfo,$skillinfo,$wepk,$wp,$wk,$wg,$wc,$wd,$wf,$nosta,$weps;
11  global $w_type,$w_name,$w_gd,$w_sNo,$w_icon,$w_hp,$w_mhp,$w_sp,$w_msp,$w_rage,$w_wep,$w_wepk,$w_wepe,$w_lvl,$w_pose,$w_tactic,$w_inf;//,$itmsk0;
12 
13  if (CURSCRIPT == 'botservice') echo "mode=enemy_spotted\n";
14 
15  $battle_title = '发现敌人';
16  extract($w_pdata,EXTR_PREFIX_ALL,'w');
17  init_battle();
18 
19  $log .= "你发现了敌人<span class=\"red\">$w_name</span>!<br>对方好像完全没有注意到你!<br>";
20 
21 // $cmd .= '现在想要做什么?<br><br>';
22 // $cmd .= '向对手大喊:<br><input size="30" type="text" name="message" maxlength="60"><br><br>';
23 // $cmd .= '<input type="hidden" name="mode" value="combat">';
24  if (CURSCRIPT !== 'botservice')
25  {
26  $w1 = substr($wepk,1,1);
27  $w2 = substr($wepk,2,1);
28  if (($w2=='0')||($w2=='1')) {$w2='';}
29  if((($w1 == 'G')||($w1=='J'))&&($weps==$nosta)){ $w1 = 'P'; }
30 // $cmd .= '<input type="radio" name="command" id="'.$w1.'" value="'.$w1.'" checked><a onclick=sl("'.$w1.'"); href="javascript:void(0);">'."$attinfo[$w1] (${$skillinfo[$w1]})".'</a><br>';
31 // if($w2) {
32 // $cmd .= '<input type="radio" name="command" id="'.$w2.'" value="'.$w2.'"><a onclick=sl("'.$w2.'"); href="javascript:void(0);">'."$attinfo[$w2] (${$skillinfo[$w2]})".'</a><br>';
33 // }
34  include template('battlecmd');
35  $cmd = ob_get_contents();
36  ob_clean();
37  }
38 // $cmd .= '<input type="radio" name="command" id="back" value="back"><a onclick=sl("back"); href="javascript:void(0);" >逃跑</a><br>';
39 
40  $main = 'battle';
41 
42  return;
43 }
44 
45 function findteam(&$w_pdata){
46  global $log,$mode,$main,$cmd,$battle_title,$gamestate;
47  global $w_type,$w_name,$w_gd,$w_sNo,$w_icon,$w_hp,$w_mhp,$w_sp,$w_msp,$w_rage,$w_wep,$w_wepk,$w_wepe,$w_lvl,$w_pose,$w_tactic,$w_inf;//,$itmsk0;
48 
49  if($gamestate>=40){
50  $log .= '<span class="yellow">连斗阶段所有队伍取消!</span><br>';
51 
52  $mode = 'command';
53  return;
54  }
55  $battle_title = '发现队友';
56  extract($w_pdata,EXTR_PREFIX_ALL,'w');
57  init_battle(1);
58 
59  $log .= "你发现了队友<span class=\"yellow\">$w_name</span>!<br>";
60  for($i = 1;$i <= 6; $i++){
61  global ${'itm'.$i},${'itme'.$i},${'itms'.$i};
62  }
63  include template('findteam');
64  $cmd = ob_get_contents();
65  ob_clean();
66 // $cmd .= '现在想要做什么?<br><br>';
67 // $cmd .= '留言:<br><input size="30" type="text" name="message" maxlength="60"><br><br>';
68 // $cmd .= '想要转让什么?<input type="hidden" name="mode" value="senditem"><br><input type="radio" name="command" id="back" value="back" checked><a onclick=sl("back"); href="javascript:void(0);" >不转让</a><br><br>';
69 // for($i = 1;$i < 6; $i++){
70 // global ${'itms'.$i};
71 // if(${'itms'.$i}) {
72 // global ${'itm'.$i},${'itmk'.$i},${'itme'.$i};
73 // $cmd .= '<input type="radio" name="command" id="itm'.$i.'" value="itm'.$i.'"><a onclick=sl("itm'.$i.'"); href="javascript:void(0);" >'."${'itm'.$i}/${'itme'.$i}/${'itms'.$i}".'</a><br>';
74 // }
75 // }
76  $main = 'battle';
77  return;
78 }
79 
80 function findcorpse(&$w_pdata){
81  global $log,$mode,$main,$battle_title,$cmd,$iteminfo,$itemspkinfo;
82  global $w_type,$w_name,$w_gd,$w_sNo,$w_icon,$w_hp,$w_mhp,$w_wep,$w_wepk,$w_wepe,$w_lvl,$w_pose,$w_tactic,$w_inf;//,$itmsk0;
83 
84  $battle_title = '发现尸体';
85  extract($w_pdata,EXTR_PREFIX_ALL,'w');
86  init_battle(1);
87 
88  if (CURSCRIPT == 'botservice')
89  {
90  echo "mode=corpse\n";
91  foreach (Array('w_wep','w_arb','w_arh','w_ara','w_arf','w_art') as $w_value)
92  if (${$w_value.'s'})
93  {
94  echo "{$w_value}=".${$w_value}."\n";
95  echo "{$w_value}k=".${$w_value.'k'}."\n";
96  echo "{$w_value}e=".${$w_value.'e'}."\n";
97  echo "{$w_value}s=".${$w_value.'s'}."\n";
98  echo "{$w_value}sk=".${$w_value.'sk'}."\n";
99  }
100  foreach (Array('1','2','3','4','5','6') as $w_itm_id)
101  if (${'w_itms'.$w_itm_id})
102  {
103  echo "w_itm{$w_itm_id}=".${'w_itm'.$w_itm_id}."\n";
104  echo "w_itmk{$w_itm_id}=".${'w_itmk'.$w_itm_id}."\n";
105  echo "w_itme{$w_itm_id}=".${'w_itme'.$w_itm_id}."\n";
106  echo "w_itms{$w_itm_id}=".${'w_itms'.$w_itm_id}."\n";
107  echo "w_itmsk{$w_itm_id}=".${'w_itmsk'.$w_itm_id}."\n";
108  }
109  }
110  else
111  {
112  $main = 'battle';
113  $log .= '你发现了<span class="red">'.$w_name.'</span>的尸体!<br>';
114  foreach (Array('w_wepk','w_arbk','w_arhk','w_arak','w_arfk','w_artk','w_itmk0','w_itmk1','w_itmk2','w_itmk3','w_itmk4','w_itmk5','w_itmk6') as $w_k_value) {
115  if(${$w_k_value}){
116  foreach($iteminfo as $info_key => $info_value){
117  if(strpos(${$w_k_value},$info_key)===0){
118  ${$w_k_value.'_words'} = $info_value;
119  break;
120  }
121  }
122  }
123  }
124  foreach (Array('w_wepsk','w_arbsk','w_arhsk','w_arask','w_arfsk','w_artsk','w_itmsk0','w_itmsk1','w_itmsk2','w_itmsk3','w_itmsk4','w_itmsk5','w_itmsk6') as $w_sk_value) {
125  ${$w_sk_value.'_words'} = '';
126  if(${$w_sk_value} && ! is_numeric(${$w_sk_value})){
127 
128  for ($i = 0; $i < strlen($w_sk_value)-1; $i++) {
129  $sub = substr(${$w_sk_value},$i,1);
130  if(!empty($sub)){
131  ${$w_sk_value.'_words'} .= $itemspkinfo[$sub];
132  }
133  }
134 
135  }
136  }
137  include template('corpse');
138  $cmd = ob_get_contents();
139  ob_clean();
140  }
141  return;
142 }
143 
144 
145 function senditem(){
146  global $db,$tablepre,$log,$mode,$main,$command,$cmd,$battle_title,$pls,$plsinfo,$message,$now,$name,$w_log,$teamID,$gamestate,$action;
147  $mateid = str_replace('team','',$action);
148  if(!$mateid || strpos($action,'team')===false){
149  $log .= '<span class="yellow">你没有遇到队友,或已经离开现场!</span><br>';
150  $action = '';
151  $mode = 'command';
152  return;
153  }
154  if($gamestate>=40){
155  $log .= '<span class="yellow">连斗阶段无法赠送物品!</span><br>';
156  $action = '';
157  $mode = 'command';
158  return;
159  }
160  $result = $db->query("SELECT * FROM {$tablepre}players WHERE pid='$mateid'");
161  if(!$db->num_rows($result)){
162  $log .= "对方不存在!<br>";
163  $action = '';
164  $mode = 'command';
165  return;
166  }
167 
168  $edata = $db->fetch_array($result);
169  if($edata['pls'] != $pls) {
170  $log .= '<span class="yellow">'.$edata['name'].'</span>已经离开了<span class="yellow">'.$plsinfo[$pls].'</span>。<br>';
171  $mode = 'command';
172  $action = '';
173  return;
174  } elseif($edata['hp'] <= 0) {
175  $log .= '<span class="yellow">'.$edata['name'].'</span>已经死亡,不能接受物品。<br>';
176  $mode = 'command';
177  $action = '';
178  return;
179  } elseif(!$teamID || $edata['teamID']!=$teamID){
180  $log .= '<span class="yellow">'.$edata['name'].'</span>并非你的队友,不能接受物品。<br>';
181  $mode = 'command';
182  $action = '';
183  return;
184  }
185 
186  if($message){
187 // foreach ( Array('<','>',';',',') as $value ) {
188 // if(strpos($message,$value)!==false){
189 // $message = str_replace ( $value, '', $message );
190 // }
191 // }
192  $log .= "<span class=\"lime\">你对{$edata['name']}说:“{$message}”</span><br>";
193  $w_log = "<span class=\"lime\">{$name}对你说:“{$message}”</span><br>";
194  if(!$edata['type']){logsave($edata['pid'],$now,$w_log,'c');}
195  }
196 
197  if($command != 'back'){
198  $itmn = substr($command, 3);
199  global ${'itm'.$itmn},${'itmk'.$itmn},${'itme'.$itmn},${'itms'.$itmn},${'itmsk'.$itmn};
200  if (!${'itms'.$itmn}) {
201  $log .= '此道具不存在!';
202  $action = '';
203  $mode = 'command';
204  return;
205  }
206  $itm = & ${'itm'.$itmn};
207  $itmk = & ${'itmk'.$itmn};
208  $itme = & ${'itme'.$itmn};
209  $itms = & ${'itms'.$itmn};
210  $itmsk = & ${'itmsk'.$itmn};
211 
212  global $w_pid,$w_name,$w_pass,$w_type,$w_endtime,$w_gd,$w_sNo,$w_icon,$w_club,$w_hp,$w_mhp,$w_sp,$w_msp,$w_att,$w_def,$w_pls,$w_lvl,$w_exp,$w_money,$w_bid,$w_inf,$w_rage,$w_pose,$w_tactic,$w_killnum,$w_state,$w_wp,$w_wk,$w_wg,$w_wc,$w_wd,$w_wf,$w_teamID,$w_teamPass,$w_wep,$w_wepk,$w_wepe,$w_weps,$w_arb,$w_arbk,$w_arbe,$w_arbs,$w_arh,$w_arhk,$w_arhe,$w_arhs,$w_ara,$w_arak,$w_arae,$w_aras,$w_arf,$w_arfk,$w_arfe,$w_arfs,$w_art,$w_artk,$w_arte,$w_arts,$w_itm0,$w_itmk0,$w_itme0,$w_itms0,$w_itm1,$w_itmk1,$w_itme1,$w_itms1,$w_itm2,$w_itmk2,$w_itme2,$w_itms2,$w_itm3,$w_itmk3,$w_itme3,$w_itms3,$w_itm4,$w_itmk4,$w_itme4,$w_itms4,$w_itm5,$w_itmk5,$w_itme5,$w_itms5,$w_itm6,$w_itmk6,$w_itme6,$w_itms6,$w_wepsk,$w_arbsk,$w_arhsk,$w_arask,$w_arfsk,$w_artsk,$w_itmsk0,$w_itmsk1,$w_itmsk2,$w_itmsk3,$w_itmsk4,$w_itmsk5,$w_itmsk6,$nick;
213  extract($edata,EXTR_PREFIX_ALL,'w');
214 
215 
216  for($i = 1;$i <= 6; $i++){
217  if(!${'w_itms'.$i}) {
218  ${'w_itm'.$i} = $itm;
219  ${'w_itmk'.$i} = $itmk;
220  ${'w_itme'.$i} = $itme;
221  ${'w_itms'.$i} = $itms;
222  ${'w_itmsk'.$i} = $itmsk;
223  $log .= "你将<span class=\"yellow\">${'w_itm'.$i}</span>送给了<span class=\"yellow\">$w_name</span>。<br>";
224  $w_log = "<span class=\"yellow\">$name</span>将<span class=\"yellow\">${'w_itm'.$i}</span>送给了你。";
225  if(!$w_type){logsave($w_pid,$now,$w_log,'t');}
226  addnews($now,'senditem',$nick.' '.$name,$w_name,$itm);
227  w_save($w_pid);
228  $itm = $itmk = $itmsk = '';
229  $itme = $itms = 0;
230  $action = '';
231  return;
232  }
233  }
234  $log .= "<span class=\"yellow\">$w_name</span> 的包裹已经满了,不能赠送物品。<br>";
235  }
236  $action = '';
237  $mode = 'command';
238  return;
239 }
240 
241 ?>
$tablepre
Definition: config.inc.php:58
$skillinfo
$iteminfo
w_save($id)
Definition: game.func.php:328
if(!defined('IN_GAME')) findenemy(&$w_pdata)
Definition: battle.func.php:9
findcorpse(&$w_pdata)
Definition: battle.func.php:80
findteam(&$w_pdata)
Definition: battle.func.php:45
$plsinfo
$i
Definition: botservice.php:267
logsave($pid, $time, $log= '', $type= 's')
addnews($t=0, $n= '', $a='', $b='', $c= '', $d= '', $e= '')
if(PHP_VERSION< '4.3.0') $action
Definition: install.php:14
$db
Definition: clear.php:32
$itemspkinfo
【生存者数:<?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
$log
Definition: botservice.php:34
$main
Definition: command.php:457
$now
Definition: clear.php:23
$attinfo
$gamestate
Definition: gameinfo.php:4
const CURSCRIPT
Definition: admin.php:3
$nosta
Definition: resources_1.php:13
senditem()
init_battle($ismeet=0)
Definition: game.func.php:170
$cmd
Definition: botservice.php:51
if(!$cuser||!$cpass) $result
Definition: admin.php:25