Guest User

Untitled

a guest
Jun 17th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.80 KB | None | 0 0
  1. <?php
  2.  
  3. //error_reporting(E_ALL);
  4. //ini_set("display_errors", 1);
  5.  
  6. $app = isset($_REQUEST["app"])?$_REQUEST["app"]:1; # application code
  7. $uid = isset($_REQUEST['uid'])?$_REQUEST['uid']:0;
  8. $guid = isset($_REQUEST['guid'])?$_REQUEST['guid']:0;
  9. //platform defaults to 4 but can take in other values
  10. $platform = isset($_REQUEST["platform"])?$_REQUEST["platform"]:4;
  11.  
  12. $level = isset($_REQUEST['level'])?$_REQUEST['level']:0; // so we don't have to bother looking it up.
  13. $city = isset($_REQUEST['city'])?$_REQUEST['city']:0;
  14.  
  15. $buy = isset($_REQUEST['buy'])?$_REQUEST['buy']:0;
  16. $type = isset($_REQUEST['type'])?$_REQUEST['type']:0;
  17. $sell = isset($_REQUEST['sell'])?$_REQUEST['sell']:0;
  18. $count = isset($_REQUEST['count'])?$_REQUEST['count']:0;
  19. $listStore = isset($_REQUEST['liststore'])?$_REQUEST['liststore']:0;
  20.  
  21. $startBattle = isset($_REQUEST['startbattle'])?$_REQUEST['startbattle']:0;
  22. $opponent = isset($_REQUEST['opponent'])?$_REQUEST['opponent']:0;
  23. $finishBattle = isset($_REQUEST['finishbattle'])?$_REQUEST['finishbattle']:0;
  24. $attack = isset($_REQUEST['attack'])?$_REQUEST['attack']:0;
  25. $defense = isset($_REQUEST['defense'])?$_REQUEST['defense']:0;
  26.  
  27. $makeBounty = isset($_REQUEST['makebounty'])?$_REQUEST['makebounty']:0;
  28. $cash = isset($_REQUEST['cash'])?$_REQUEST['cash']:0;
  29. $takeBounty = isset($_REQUEST['takebounty'])?$_REQUEST['takebounty']:0;
  30. $finishBounty = isset($_REQUEST['finishbounty'])?$_REQUEST['finishbounty']:0;
  31. $listBounty = isset($_REQUEST['listbounty'])?$_REQUEST['listbounty']:0;
  32.  
  33. $startJob = isset($_REQUEST['startjob'])?$_REQUEST['startjob']:0;
  34. $finishJob = isset($_REQUEST['finishjob'])?$_REQUEST['finishjob']:0;
  35. $listJobs = isset($_REQUEST['listjobs'])?$_REQUEST['listjobs']:0;
  36. $specialJobs = isset($_REQUEST['specialjobs'])?$_REQUEST['specialjobs']:0;
  37.  
  38. $postMessage = isset($_REQUEST['postmessage'])?$_REQUEST['postmessage']:0;
  39. $readMessages = isset($_REQUEST['readmessages'])?$_REQUEST['readmessages']:0;
  40. $message = isset($_REQUEST['message'])?$_REQUEST['message']:'';
  41.  
  42. $news = isset($_REQUEST['news'])?$_REQUEST['news']:0;
  43. $lang = isset($_REQUEST['lang'])?$_REQUEST['lang']:'EN';
  44. $clearnews = isset($_REQUEST['clearnews'])?$_REQUEST['clearnews']:0;
  45.  
  46. $userStatus = isset($_REQUEST['userstatus'])?$_REQUEST['userstatus']:0;
  47. $handleMessage = isset($_REQUEST['handlemessage'])?$_REQUEST['handlemessage']:0;
  48. //print_r ($platform);
  49. require_once("includes.php");
  50.  
  51. $userManager = new UserManager($sql, $app);
  52. $battleManager = new BattleManager($sql, $app);
  53. $bountyManager = new BountyManager($sql, $app);
  54. $moneyManager = new MoneyManager($sql, $app);
  55. $itemManager = new ItemManager($sql, $app);
  56. $jobManager = new JobManager($sql, $app);
  57. $teamManager = new TeamManager($sql, $app);
  58. $newsManager = new NewsManager($sql, $app, $userManager);
  59. $messageManager = new MessageManager($sql, $app);
  60.  
  61. function listItems($list)
  62. {
  63. global $messageManager, $lang;
  64.  
  65. $story = '';
  66. foreach ($list as $item)
  67. {
  68. if ($story != '') { $story .= ', '; }
  69. $story .= $messageManager->composeMessage('list_item', $lang, $item);
  70. // print_r($item);
  71. // echo "$story <br />\n";
  72. }
  73. return $story;
  74. }
  75.  
  76. function startBattle($guid, $opponent)
  77. {
  78. global $userManager, $messageManager, $battleManager, $itemManager, $lang;
  79. $results = array();
  80. $lock = $userManager->battleLock($guid, $opponent);
  81. if ($lock > 0)
  82. {
  83. $attackItems = $userManager->best_offense($guid);
  84. $defenseItems = $userManager->best_defense($opponent);
  85. $results['attack'] = $attackItems;
  86. $results['defense'] = $defenseItems;
  87. $at = '';
  88. if (isset ($attackItems[0])) $at .= listItems($attackItems[0]);
  89. if (($at != '') && (count($attackItems[1]) > 0)) $at .= ', ';
  90. if (isset ($attackItems[1])) $at .= listItems($attackItems[1]);
  91. if (($at != '') && (count($attackItems[2]) > 0)) $at .= ', ';
  92. if (isset ($attackItems[2])) $at .= listItems($attackItems[2]);
  93. if ($at == '') $at = 'bare fists';
  94. $story['attack'] = $at;
  95. $def = '';
  96. if (isset ($defenseItems[0])) $def .= listItems($defenseItems[0]);
  97. if (($def != '') && (count($defenseItems[1]) > 0)) $def .= ', ';
  98. if (isset ($defenseItems[1])) $def .= listItems($defenseItems[1]);
  99. if (($def != '') && (count($defenseItems[2]) > 0)) $def .= ', ';
  100. if (isset ($defenseItems[2])) $def .= listItems($defenseItems[2]);
  101. if ($def == '') $def = 'ducking and weaving';
  102. $story['defense'] = $def;
  103.  
  104. $sequence = $battleManager->battleSequence($results['attack']['totals']['attack'], $results['defense']['totals']['defense'],
  105. $attack, $defense,
  106. $attackItems['life'], $defenseItems['life'],
  107. $attackItems, $defenseItems);
  108.  
  109. // get data for display
  110. $leftDisp = array();
  111. $leftDisp['name'] = $userManager->name($guid);
  112. $leftDisp['attackVal'] = $attackItems['totals']['attack'];
  113. $leftDisp['teamSize'] = $attackItems['team_size'];
  114. $leftDisp['max_life'] = $attackItems['life'];
  115. $leftDisp['level'] = $attackItems['level'];
  116. $lPow = '';
  117. if (isset ($attackItems['0']))
  118. {
  119. $item = $itemManager->getItem($attackItems['0'][0]['id']);
  120. //print_r($attackItems[0][0]);
  121. // echo $attackItems[0][0]['power']."'<br />\n";
  122. // $lPow = $attackItems[0][0]['power'];
  123. $leftDisp['item1'] = $item['photo'];
  124. }
  125. else $leftDisp['item1'] = '';
  126. if (isset ($attackItems['1']))
  127. {
  128. $item = $itemManager->getItem($attackItems['1'][0]['id']);
  129. // echo $attackItems[1][0]['power']."'<br />\n";
  130. // if ($lPow == '') $lPow = $attackItems[1][0]['power'];
  131. $leftDisp['item2'] = $item['photo'];
  132. }
  133. else $leftDisp['item2'] = '';
  134. if (isset ($attackItems['2']))
  135. {
  136. $item = $itemManager->getItem($attackItems['2'][0]['id']);
  137. // echo "'".$attackItems[2][0]['power']."'<br />\n";
  138. // if ($lPow == '') $lPow = $attackItems[2][0]['power'];
  139. $leftDisp['item3'] = $item['photo'];
  140. }
  141. else $leftDisp['item3'] = '';
  142. // echo "'$lPow'<br />\n";
  143. // $leftDisp['power'] = $lPow;
  144.  
  145. $rightDisp = array();
  146. $rightDisp['name'] = $userManager->name($opponent);
  147. $rightDisp['attackVal'] = $defenseItems['totals']['defense'];
  148. $rightDisp['teamSize'] = $defenseItems['team_size'];
  149. $rightDisp['max_life'] = $defenseItems['life'];
  150. $rightDisp['level'] = $defenseItems['level'];
  151. // $rPow = '';
  152. if (isset ($defenseItems['1']))
  153. {
  154. $item = $itemManager->getItem($defenseItems['1'][0]['id']);
  155. // $rPow = $defenseItems['1'][0]['power'];
  156. $rightDisp['item2'] = $item['photo'];
  157. }
  158. else $rightDisp['item2'] = '';
  159. if (isset ($defenseItems['0']))
  160. {
  161. $item = $itemManager->getItem($defenseItems['0'][0]['id']);
  162. // if ($rPow == '') $rPow = $defenseItems['0'][0]['power'];
  163. $rightDisp['item1'] = $item['photo'];
  164. }
  165. else $rightDisp['item1'] = '';
  166. if (isset ($defenseItems['2']))
  167. {
  168. $item = $itemManager->getItem($defenseItems['2'][0]['id']);
  169. // if ($rPow == '') $rPow = $defenseItems['2'][0]['power'];
  170. $rightDisp['item3'] = $item['photo'];
  171. }
  172. else $rightDisp['item3'] = '';
  173. // $rightDisp['power'] = $rPow;
  174.  
  175. $seq = array();
  176. foreach ($sequence as $round)
  177. { $seq[] = implode (',', $round); }
  178. $seq[] = $leftDisp;
  179. $seq[] = $rightDisp;
  180. $results['rounds'] = json_encode($seq); //implode (':', $seq);
  181.  
  182. $results['attackDamage'] = $attack;
  183. $results['defenseDamage'] = $defense;
  184.  
  185. $stat = $battleManager->newBattle($guid, $opponent, $attack, $defense, $results['rounds']);
  186.  
  187. $stat['actor'] = $leftDisp['name'];
  188. $stat['target'] = $rightDisp['name'];
  189.  
  190. $story['actor'] = $leftDisp['name'];
  191. $story['target'] = $rightDisp['name'];
  192.  
  193. $results['fbml_stats'] = $messageManager->composeMessage('battle_stats', $lang, $story); // compose story listing of the battle
  194. if ($attack > $defense)
  195. { $results['fbml_text'] = $messageManager->composeMessage('attack_success', $lang, $stat); }
  196. else
  197. { $results['fbml_text'] = $messageManager->composeMessage('attack_failure', $lang, $stat); }
  198.  
  199. //print_r($stat);
  200. // deducting life no longer used.
  201. //$userManager->update_dynamic ($guid, LIFE, -$defense);
  202. //$userManager->update_dynamic ($opponent, LIFE, -$attack);
  203.  
  204. $userManager->battleUnlock($guid, $opponent);
  205. }
  206. $results['battle'] = $lock;
  207. if ($lock == 0) $results['fbml_stats'] = $messageManager->composeMessage('battle_unable', $lang, array());
  208. return $results;
  209. }
  210.  
  211. function finishBattle($guid, $opponent, $attack, $defense)
  212. {
  213. global $battleManager, $userManager;
  214.  
  215. /* $battlestats['attacker'] = $user_game_id;
  216. $battlestats['defender'] = $defender;
  217. if ($attack > $defense)
  218. {
  219. while (!$debit)
  220. {
  221. $loss = round($moneyManager->balance($guid)/3);
  222. $debit = $moneyManager->debit($guid, $loss, 0, 1);
  223. }
  224. $moneyManager->credit($guid, $loss);
  225. $battlestats['value_money'] = $loss;
  226. $newsManager->addNewsRecord($defender, 'defense_failure', $battlestats);
  227. }
  228. else
  229. { $newsManager->addNewsRecord($defender, 'defense_success', $battlestats); }
  230. */
  231. return $stat;
  232. }
  233.  
  234. if ($buy)
  235. {
  236. $success = $userManager->buy($guid, $buy, $count);
  237. $results['buy'] = $success;
  238. }
  239.  
  240. if ($sell)
  241. {
  242. $success = $userManager->sell($guid, $buy, $count);
  243. $results['sell'] = $success;
  244. }
  245.  
  246. if ($listStore)
  247. {
  248. $results = $itemManager->get($level, $type, 0);
  249. }
  250.  
  251. if ($startBattle)
  252. {
  253. //echo 'starting battle ';
  254. $results = startBattle($guid, $startBattle);
  255. if ($results['battle'])
  256. {
  257. //echo 'running battle '; flush(); ob_flush();
  258.  
  259. // $results['p1'] = $userManager->user_game_status($guid);
  260. //print_r($results['p1']); flush(); ob_flush();
  261. // $results['p2'] = $userManager->user_game_status($startBattle);
  262. //print_r($results['p2']); flush(); ob_flush();
  263. //print_r($results['p2']); flush(); ob_flush();
  264. //echo "finishing battle<br/>\n"; flush(); ob_flush();
  265. // finishBattle($guid, $startBattle, $attack, $defense);
  266. $userManager->battleUnlock($guid, $startBattle);
  267.  
  268. //echo 'finished'; flush(); ob_flush();
  269.  
  270. //print_r($results);
  271. //exit;
  272. }
  273. //echo 'done with battle ';
  274. }
  275.  
  276. if ($finishBattle)
  277. {
  278. //$results = finishBattle($guid, $finishBattle, $attack, $defense);
  279. $results = $userManager->battleUnlock($guid, $finishBattle);
  280. $results['unlock'] = 1;
  281. // print_r($results);
  282. // exit;
  283. }
  284.  
  285. if ($makeBounty)
  286. {
  287. if ($moneyManager->debit($guid, $cash))
  288. {
  289. $success = $bountyManager->newBounty($makeBounty, $guid, $cash);
  290. $results['bounty'] = $success;
  291. }
  292. else
  293. {
  294. $results['bounty'] = 'money';
  295. }
  296. }
  297.  
  298. if ($takeBounty)
  299. {
  300. $success = $bountyManager->claimBounty($guid, $takeBounty);
  301. $results = $success;
  302. if ($success['success'])
  303. {
  304. $results = startBattle($guid, $success['wanted']['user_game_id']);
  305. if ($results['battle'])
  306. { //$results['battle'] = $battle;
  307. if ($results['attackDamage'] > $results['defenseDamage'])
  308. {
  309. $bountyManager->finishBounty($guid, $finishBounty);
  310. }
  311. else
  312. {
  313. $bountyManager->releaseBounty($finishBounty);
  314. }
  315. }
  316. else
  317. { $bountyManager->releaseBounty($takeBounty);
  318. $results['success'] = 0;
  319. $results['fbml_stat'] = $messgeManager->composeMessage('battle_occupied', $lang, array());
  320. }
  321. }
  322. }
  323.  
  324. if ($finishBounty)
  325. {
  326. }
  327.  
  328. if ($listBounty)
  329. {
  330. $results = $bountyManager->get($guid, $level);
  331. }
  332.  
  333. if ($startJob)
  334. {
  335. $results = $jobManager->claimJob($guid, $startJob);
  336. if (!isset($results['fail']))
  337. {
  338. if ($results['user_game_id'])
  339. {
  340. // echo "opponent ".$results['user_game_id']."<br />\n";
  341. // print_r($results);
  342. // echo "<br />\n";
  343. $battle = startBattle($guid, $results['user_game_id']);
  344. $results['battle'] = $battle;
  345. }
  346.  
  347. $resultFinish = $jobManager->finishJob($guid, $startJob);
  348. foreach ($resultFinish as $rfk=>$rf) { $results[$rfk] = $rf; }
  349.  
  350. $results['fbml_job'] = $messageManager->composeMessage('finish_job', $lang, $results);
  351. if (isset($results['drop_item']))
  352. $results['fbml_job'] .= "<br/>\n".$messageManager->composeMessage('drop_item', $lang, $results['drop_item']);
  353. if (isset($results['random_drop_item']))
  354. $results['fbml_job'] .= "<br/>\n".$messageManager->composeMessage('drop_item', $lang, $results['random_drop_item']);
  355. }
  356. else
  357. $results['fbml_job'] = $messageManager->composeMessage('fail_'.$results['fail'], $lang, $results);
  358. }
  359.  
  360. if ($finishJob)
  361. {
  362. //echo "language $lang<br/>\n";
  363.  
  364. }
  365.  
  366. if ($listJobs)
  367. {
  368. $results = $jobManager->get($level, $city, $guid);
  369. }
  370.  
  371. if ($specialJobs)
  372. {
  373. $res = $jobManager->getSpecial($level, $city, $guid);
  374. $results['flash'] = json_encode($res);
  375. }
  376.  
  377. if ($postMessage)
  378. {
  379. $results = $teamManager->newComment($postMessage, $message);
  380. }
  381.  
  382. if ($readMessages)
  383. {
  384. $results = $teamManager->comments($readMessages);
  385. }
  386.  
  387. if ($news)
  388. {
  389. $stories = $newsManager->get($news);
  390. $results = array();
  391. foreach ($stories as $article)
  392. {
  393. $results[] = $messageManager->composeMessage($article['message_bundle_key'], $lang, $article);
  394. }
  395. }
  396.  
  397. if ($clearnews)
  398. {
  399. $newsManager->clear($clearnews);
  400. }
  401.  
  402. if ($userStatus)
  403. {
  404. $res = $userManager->user_game_status($userStatus);
  405. $results['flash'] = json_encode($res);
  406. }
  407.  
  408. if ($handleMessage)
  409. {
  410.  
  411. $results = $userManager->getRealTimeStatus($handleMessage);
  412.  
  413. // $levelup = $userManager->levelUp($handleMessage);
  414. //
  415. // $awards = ''; // check awards, 1.1;
  416. // $battles = $battleManager->recentBattles($handleMessage); // list battles since last report
  417. // $results = $userManager->user_game_status($handleMessage);
  418. // $results['levelup'] = $levelup;
  419. // $results['fbml_levelup'] = $messageManager->composeMessage('levelup', $lang, $levelup);
  420. //
  421. // $results['awards'] = $awards;
  422. // $results['battles'] = $battles;
  423. }
  424.  
  425. echo json_encode($results);
  426. ?>
Add Comment
Please, Sign In to add comment