Tokiwa Battle Royale  GE777
A PHP Battle Royale inspired game
 All Data Structures Namespaces Files Functions Variables Pages
botservice.php
Go to the documentation of this file.
1 <?php
2 
3 define('CURSCRIPT', 'botservice');
4 require './include/common.inc.php';
5 require GAME_ROOT.'./include/game.func.php';
6 require config('combatcfg',$gamecfg);
7 
8 $result = $db->query("SELECT * FROM {$tablepre}players WHERE name = '$cuser' AND type = 0");
9 
10 echo "botservice_version=0.1\n";
11 
12 if(!$db->num_rows($result))
13 {
14  echo "not_in_game=1\n";
15  exit();
16 }
17 
18 $pdata = $db->fetch_array($result);
19 if($pdata['pass'] != md5($cpass))
20 {
21  echo "wrong_passwd=1\n";
22  exit();
23 }
24 
25 if ($gamestate==0)
26 {
27  echo "game_ended=1\n";
28  exit();
29 }
30 
31 extract($pdata,EXTR_REFS);
33 
34 $log = '';
35 
36 if($hp > 0){
37  if(($now <= $noisetime+$noiselimit)&&$noisemode&&($noiseid!=$pid)&&($noiseid2!=$pid)) {
38  echo "noisetime=$noisetime\n";
39  echo "noisepls=$noisepls\n";
40  echo "noiseinfo=$noisemode\n";
41  }
42 }
43 else
44 {
45  echo "dead=1\n";
46  exit();
47 }
48 
49 $inf='';
50 
52 if((strpos($action,'corpse')===0 || strpos($action,'pacorpse')===0) && $gamestate<40 && $command!='getcorpse'){
53  $cid = strpos($action,'corpse')===0 ? str_replace('corpse','',$action) : str_replace('pacorpse','',$action);
54  if($cid){
55  $result = $db->query("SELECT * FROM {$tablepre}players WHERE pid='$cid' AND hp=0");
56  if($db->num_rows($result)>0){
57  $edata = $db->fetch_array($result);
58  include_once GAME_ROOT.'./include/game/battle.func.php';
59  findcorpse($edata);
60  extract($edata,EXTR_PREFIX_ALL,'w');
61  init_battle(1);
62  $corpseflag=1;
63  }
64  }
65 }
66 
67 if (isset($command) && (!$corpseflag || $command=='getcorpse'))
68 {
69  if ($command == 'move') {
70  include_once GAME_ROOT.'./include/game/search.func.php';
71  move($var1);
72  $cmdnum ++;
73  }
74  else if ($command == 'search')
75  {
76  include_once GAME_ROOT.'./include/game/search.func.php';
77  search();
78  $cmdnum ++;
79  }
80  else if ($command == 'itemget')
81  {
82  include_once GAME_ROOT.'./include/game/itemmain.func.php';
83  itemget();
84  }
85  else if ($command == 'getcorpse')
86  {
87  include_once GAME_ROOT.'./include/game/itemmain.func.php';
88  getcorpse($var1);
89  }
90  else if ($command == 'attack')
91  {
92  include_once GAME_ROOT.'./include/game/combat.func.php';
93  if ($var1=='back') combat(1,$var1); else combat(1);
94  }
95  else if(strpos($command,'drop') === 0)
96  {
97  include_once GAME_ROOT.'./include/game/itemmain.func.php';
98  $drop_item = substr($command,4);
99  itemdrop($drop_item);
100  }
101  else if(strpos($command,'off') === 0)
102  {
103  include_once GAME_ROOT.'./include/game/itemmain.func.php';
104  $off_item = substr($command,3);
105  itemoff($off_item);
106  }
107  else if(strpos($command,'swap') === 0)
108  {
109  include_once GAME_ROOT.'./include/game/itemmain.func.php';
110  $swap_item = substr($command,4);
111  itemdrop($swap_item);
112  itemadd();
113  }
114  else if(strpos($command,'itm') === 0)
115  {
116  include_once GAME_ROOT.'./include/game/item.func.php';
117  $item = substr($command,3);
118  itemuse($item);
119  $cmdnum ++;
120  }
121  else if ($command=="shopquery")
122  {
123  $result=$db->query("SELECT * FROM {$tablepre}shopitem WHERE item = '$item'");
124  if(!$db->num_rows($result))
125  echo "shopitemnum=0\n";
126  else
127  {
128  $iteminfo = $db->fetch_array($result);
129  if($iteminfo['area']> $areanum/$areaadd)
130  echo "shopitemnum=0\n";
131  else echo "shopitemnum={$iteminfo['num']}\n";
132  }
133  }
134  else if ($command=="shopbuy")
135  {
136  $result=$db->query("SELECT * FROM {$tablepre}shopitem WHERE item = '$item'");
137  if(!$db->num_rows($result))
138  echo "nosuchshopitem=1\n";
139  else
140  {
141  include_once GAME_ROOT.'./include/game/itemmain.func.php';
142  $iteminfo = $db->fetch_array($result);
143  $bnum = (int)$bnum;
144  if($iteminfo['num'] <= 0 || $bnum<=0 || $bnum>$iteminfo['num'] || $money < $price*$bnum || (!preg_match('/^(WC|WD|WF|Y|B|C|TN|GB|H|V|M)/',$iteminfo['itmk']) && $bnum>1) || $iteminfo['area']> $areanum/$areaadd)
145  {
146  echo "buyfailed=1\n";
147  }
148  else
149  {
150  $price = $club == 11 ? round($iteminfo['price']*0.75) : $iteminfo['price'];
151  $inum = $iteminfo['num']-$bnum;
152  $sid = $iteminfo['sid'];
153  $db->query("UPDATE {$tablepre}shopitem SET num = '$inum' WHERE sid = '$sid'");
154  $money -= $price*$bnum;
155  addnews($now,'itembuy',$name,$iteminfo['item']);
156  $itm0 = $iteminfo['item'];
157  $itmk0 = $iteminfo['itmk'];
158  $itme0 = $iteminfo['itme'];
159  $itms0 = $iteminfo['itms']*$bnum;
160  $itmsk0 = $iteminfo['itmsk'];
161  itemget();
162  echo "buysuccess=1\n";
163  }
164  }
165  }
166  else if ($command=="itemmerge")
167  {
168  include_once GAME_ROOT.'./include/game/itemmain.func.php';
169  itemmerge($merge1,$merge2);
170  }
171  else if ($command=="itemmix")
172  {
173  include_once GAME_ROOT.'./include/game/itemmain.func.php';
174  $mixlist = array(); $mask=(int)$mask;
175  for($i=1;$i<=6;$i++) if ($mask&(1<<($i-1))) $mixlist[] = $i;
176  itemmix($mixlist);
177  }
178  else if ($command=="itemadd")
179  {
180  include_once GAME_ROOT.'./include/game/itemmain.func.php';
181  itemadd();
182  }
183  else if (strpos($command,'off') === 0)
184  {
185  include_once GAME_ROOT.'./include/game/itemmain.func.php';
186  $off_item = substr($command,3);
187  itemoff($off_item);
188  }
189  else if ($command=="selectclub")
190  {
191  if ($club==0 && isset($var1) && ((int)$var1<=16))
192  {
193  $club=(int)$var1;
194  include_once GAME_ROOT.'./include/game/clubslct.func.php';
195  updateskill();
196  }
197  }
198  else if ($command=="verify")
199  {
200  $endtime=1; //用于程序开始时调用,获取全部消息列表
201  }
202 }
203 
204 if ($itms0)
205 {
206  echo "itm0=$itm0\n";
207  echo "itmk0=$itmk0\n";
208  echo "itme0=$itme0\n";
209  echo "itms0=$itms0\n";
210  echo "itmsk0=$itmsk0\n";
211  echo "mode=itemfind\n";
212 }
213 
214 foreach (Array('wep','arb','arh','ara','arf','art') as $value)
215  if (${$value.'s'})
216  {
217  echo "{$value}=".${$value}."\n";
218  echo "{$value}k=".${$value.'k'}."\n";
219  echo "{$value}e=".${$value.'e'}."\n";
220  echo "{$value}s=".${$value.'s'}."\n";
221  echo "{$value}sk=".${$value.'sk'}."\n";
222  }
223 
224 foreach (Array('1','2','3','4','5','6') as $itm_id)
225  if (${'itms'.$itm_id})
226  {
227  echo "itm{$itm_id}=".${'itm'.$itm_id}."\n";
228  echo "itmk{$itm_id}=".${'itmk'.$itm_id}."\n";
229  echo "itme{$itm_id}=".${'itme'.$itm_id}."\n";
230  echo "itms{$itm_id}=".${'itms'.$itm_id}."\n";
231  echo "itmsk{$itm_id}=".${'itmsk'.$itm_id}."\n";
232  }
233 
234 foreach (Array('mhp','hp','msp','sp','rage','money','club','inf','mss','ss','skillpoint','att','def','pls','lvl','pose','tactic','wp','wk','wc','wg','wd','wf','action') as $value)
235  echo "{$value}=".${$value}."\n";
236 
237 if ($club==0)
238 {
239  echo "clubselect=1\n";
240  include_once GAME_ROOT.'./include/game/clubslct.func.php';
241  getclub($name,$c1,$c2,$c3);
242  echo "clubchoice1=$c1\n";
243  echo "clubchoice2=$c2\n";
244  echo "clubchoice3=$c3\n";
245 }
246 
247 $z=(int)$areanum/$areaadd;
248 echo "areanum=".$z."\n";
249 $plsnum=sizeof($plsinfo)-1;
250 echo "plsnum=$plsnum\n";
251 echo "starttime=$starttime\n";
252 echo "now=$now\n";
253 $gametime=$now-$starttime;
254 echo "gametime=$gametime\n";
255 echo "nextareaaddtime=$areatime\n";
256 echo "areaaddnum=$areaadd\n";
257 $alis="";
258 for ($i=1; $i<=$plsnum; $i++) $alis.=$arealist[$i].",";
259 echo "arealist=$alis\n";
260 echo "hacked=$hack\n";
261 
262 $result = $db->query("SELECT type,sNo,pls,name,state,bid FROM {$tablepre}players WHERE type > 0 AND deathtime >= $endtime");
263 $rows=$db->num_rows($result);
264 
265 echo "npcdeathnum=$rows\n";
266 
267 $i=0;
268 while($data = $db->fetch_array($result))
269 {
270  $i++;
271  echo "deathnpctype$i={$data['type']}\n";
272  echo "deathnpcsNo$i={$data['sNo']}\n";
273  echo "deathnpcpls$i={$data['pls']}\n";
274  echo "deathnpcname$i={$data['name']}\n";
275  $t=$data['state'];
276  if ($t==20 || $t==21 || $t==22 || $t==23 || $t==24 || $t==29)
277  {
278  $rs = $db->query("SELECT sNo,name FROM {$tablepre}players WHERE pid='{$data['bid']}'");
279  $dd = $db->fetch_array($rs);
280  echo "deathnpckillersNo$i={$dd['sNo']}\n";
281  echo "deathnpckillername$i={$dd['name']}\n";
282  }
283  else
284  {
285  echo "deathnpckillersNo$i=-1\n";
286  echo "deathnpckillername$i=-1\n";
287  }
288 }
289 
290 $result = $db->query("SELECT sNo,pls,name,state,bid FROM {$tablepre}players WHERE type = 0 AND state >= 10 AND deathtime >= $endtime");
291 $rows=$db->num_rows($result);
292 echo "pcdeathnum=$rows\n";
293 $i=0;
294 while($data = $db->fetch_array($result))
295 {
296  $i++;
297  echo "deathpcsNo$i={$data['sNo']}\n";
298  echo "deathpcpls$i={$data['pls']}\n";
299  echo "deathpcname$i={$data['name']}\n";
300  echo "deathpcstate$i={$data['state']}\n";
301  $t=$data['state'];
302  if ($t==20 || $t==21 || $t==22 || $t==23 || $t==24 || $t==29)
303  {
304  $rs = $db->query("SELECT type,sNo,name FROM {$tablepre}players WHERE pid='{$data['bid']}'");
305  $dd = $db->fetch_array($rs);
306  echo "deathpckillertype$i={$dd['type']}\n";
307  echo "deathpckillersNo$i={$dd['sNo']}\n";
308  echo "deathpckillername$i={$dd['name']}\n";
309  }
310  else
311  {
312  echo "deathpckillertype$i=-1\n";
313  echo "deathpckillersNo$i=-1\n";
314  echo "deathpckillername$i=-1\n";
315  }
316 }
317 
318 echo "weather=$weather\n";
319 //echo "log=$log\n";
320 
322 
324 
325 ?>
$inf
Definition: botservice.php:49
$result
Definition: botservice.php:8
itemdrop($item)
itemoff($item)
getclub($who, &$c1, &$c2, &$c3)
$rows
Definition: botservice.php:263
$noisetime
Definition: combatinfo.php:7
$iteminfo
$noiseid2
Definition: combatinfo.php:10
$gamecfg
Definition: system.php:22
$areanum
Definition: gameinfo.php:9
findcorpse(&$w_pdata)
Definition: battle.func.php:80
$noiseid
Definition: combatinfo.php:9
itemadd()
getcorpse($item)
$plsinfo
$corpseflag
Definition: botservice.php:51
$i
Definition: botservice.php:267
$endtime
Definition: botservice.php:321
$noisemode
Definition: combatinfo.php:11
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
itemmix($mlist, $itemselect=-1)
player_save($data)
Definition: game.func.php:318
itemget()
$log
Definition: botservice.php:34
const GAME_ROOT
Definition: clear.php:6
$noiselimit
Definition: system.php:38
if(!$db->num_rows($result)) $pdata
Definition: botservice.php:18
itemmerge($itn1, $itn2)
$main
Definition: command.php:457
$now
Definition: clear.php:23
$arealist
Definition: gameinfo.php:8
updateskill()
$gamestate
Definition: gameinfo.php:4
search()
config($file= '', $cfg=1)
init_battle($ismeet=0)
Definition: game.func.php:170
if(!defined( 'IN_GAME')) itemuse($itmn)
Definition: item.func.php:7
$cmd
Definition: botservice.php:51
$starttime
Definition: gameinfo.php:5
$cpass
Definition: common.inc.php:207
if(!defined( 'IN_GAME')) combat($active=1, $wep_kind= '')
Definition: combat.func.php:7
$areaadd
Definition: gamecfg_1.php:7
if(!defined('IN_GAME')) move($moveto=99)
if(!defined('IN_GAME')) init_playerdata()
Definition: game.func.php:9