PageRenderTime 29ms CodeModel.GetById 33ms RepoModel.GetById 0ms app.codeStats 0ms

/func.php

https://bitbucket.org/jugoslin/phpdevana
PHP | 2283 lines | 2278 code | 4 blank | 1 comment | 5 complexity | adfcfcf8fdde0cd73309672f2aaea651 MD5 | raw file

Large files files are truncated, but you can click here to view the full file

  1. <?php
  2. $db_id = mysql_connect($db_host, $db_user, $db_pass)
  3. or die("Could not connect to DB.");
  4. mysql_select_db($db_name, $db_id)
  5. or die("Database not found.");
  6. //time difference; gets for how much the mysql server time is ahead, compared to the http server time;
  7. $query="SELECT timediff(now(), '".date("Y-m-d H:i:s")."')";
  8. $result=mysql_query($query, $db_id);
  9. $tdif=mysql_fetch_row($result); $tdif=explode(":", $tdif[0]);
  10. if ($tdif[0][0]=="-") {$tdif[0]=abs($tdif[0]); $tdif[3]="-";}
  11. else $tdif[3]="+"; $tdif=" ".$tdif[3]." interval ".$tdif[0]." hour ".$tdif[3]." interval ".$tdif[1]." minute ".$tdif[3]." interval ".$tdif[2]." second";
  12. if (isset($_SESSION["user"][0])) {$faction=faction($_SESSION["user"][10]); $imgs=$_SESSION["user"][13]; $fimgs=$faction[2];}
  13. else {$imgs="default/"; $fimgs="1/";}
  14. function msg($msg)
  15. {
  16. header("Location: msg.php?msg=".$msg);
  17. }
  18. function label($msg)
  19. {
  20. echo "<font face=\"Fixedsys\" color=\"red\">".$msg."</font>";}
  21. function clean($str)
  22. {
  23. if (is_numeric($str)) $str=floor($str);
  24. $cleaned=strip_tags($str);
  25. $cleaned=htmlspecialchars($cleaned);
  26. $cleaned=mysql_real_escape_string($cleaned);
  27. $to_clean=array("%20", "\"", "'", "\\", "=", ";", ":");
  28. $cleaned=str_replace($to_clean, "", $cleaned);
  29. return $cleaned;
  30. }
  31. function gen_stats($dur)
  32. {
  33. global $db_id;
  34. $query="SELECT count(*) FROM users";
  35. $result=mysql_query($query, $db_id);
  36. $row[0]=mysql_fetch_row($result);
  37. $query="SELECT count(*) FROM users where hour(timediff(now(), lastVisit))<".$dur;
  38. $result=mysql_query($query, $db_id);
  39. $row[1]=mysql_fetch_row($result);
  40. return $row;
  41. }
  42. function clean_u($dur)
  43. {
  44. global $db_id;
  45. $query="SELECT id FROM users where hour(timediff(now(), lastVisit))/24>".$dur;
  46. $result=mysql_query($query, $db_id); $nr=0;
  47. for (; $row=mysql_fetch_row($result); $nr++) del_u($row[0]);
  48. return $nr;
  49. }
  50. function town_stats($col)
  51. {
  52. global $db_id;
  53. $query="SELECT * from towns order by ".$col." desc";
  54. $result=mysql_query($query, $db_id); $town_stats=array();
  55. for ($i=0; $row=mysql_fetch_row($result); $i++) $town_stats[$i]=$row;
  56. return $town_stats;
  57. }
  58. function user_stats($col)
  59. {
  60. global $db_id;
  61. $query="select id, name, (select sum(".$col.") from towns where owner=users.id) from users order by (select sum(".$col.") from towns where owner=users.id) desc";
  62. $result=mysql_query($query, $db_id); $user_stats=array();
  63. for ($i=0; $row=mysql_fetch_row($result); $i++) $user_stats[$i]=$row;
  64. return $user_stats;
  65. }
  66. function alliance_stats($col)
  67. {
  68. global $db_id;
  69. $query="select id, name, (select sum(".$col.") from towns where owner in (select id from users where alliance=alliances.id)) from alliances order by (select sum(".$col.") from towns where owner in (select id from users where alliance=alliances.id)) desc";
  70. $result=mysql_query($query, $db_id); $alliance_stats=array();
  71. for ($i=0; $row=mysql_fetch_row($result); $i++) $alliance_stats[$i]=$row;
  72. return $alliance_stats;
  73. }
  74. function is_user($name, $email, $ip)
  75. {
  76. global $db_id;
  77. $query="select count(*) from users where name='".$name."' or email='".$email."' or ip='".$ip."'";
  78. $result=mysql_query($query, $db_id);
  79. $row=mysql_fetch_row($result);
  80. return $row[0];
  81. }
  82. function login($name, $pass)
  83. {
  84. global $db_id;
  85. $query="select * from users where name='".$name."' and pass='".$pass."' and level>0";
  86. $result=mysql_query($query, $db_id);
  87. $row=mysql_fetch_row($result);
  88. return $row;
  89. }
  90. function sitted($account, $sitter)
  91. {
  92. global $db_id;
  93. $query="select * from users where name='".$account."' and sitter='".$sitter."' and level>0";
  94. $result=mysql_query($query, $db_id);
  95. $row=mysql_fetch_row($result);
  96. return $row;
  97. }
  98. function user($id)
  99. {
  100. global $db_id;
  101. $query="select * from users where id=".preg_replace("/[^0-9]/","", $id);
  102. $result=mysql_query($query, $db_id);
  103. if ($result)
  104. {
  105. $row=mysql_fetch_row($result);
  106. $row[1]=stripslashes($row[1]); $row[9]=stripslashes($row[9]);
  107. return $row;
  108. } else return 0;
  109. }
  110. function users()
  111. {
  112. global $db_id;
  113. $query="select * from users";
  114. $result=mysql_query($query, $db_id); $users=array();
  115. for ($i=0; $row=mysql_fetch_row($result); $i++)
  116. {
  117. $users[$i]=$row;
  118. $users[$i][1]=stripslashes($users[$i][9]); $users[$i][9]=stripslashes($users[$i][9]);
  119. }
  120. return $users;
  121. }
  122. function user_($name)
  123. {
  124. global $db_id;
  125. $query="select * from users where name='".$name."'";
  126. $result=mysql_query($query, $db_id);
  127. if ($result)
  128. {
  129. $row=mysql_fetch_row($result);
  130. $row[1]=stripslashes($row[1]); $row[9]=stripslashes($row[9]);
  131. return $row;
  132. } else return 0;
  133. }
  134. function config()
  135. {
  136. global $db_id;
  137. $config=array();
  138. $query="select * from config order by ord asc";
  139. $result=mysql_query($query, $db_id);
  140. for ($i=0; $row=mysql_fetch_row($result); $i++) $config[$i]=$row;
  141. return $config;
  142. }
  143. function config_($var, $val)
  144. {
  145. global $db_id;
  146. $query="update config set value='".$val."' where name='".$var."'";
  147. $result=mysql_query($query, $db_id);
  148. if ($result) return 1;
  149. else return 0;
  150. }
  151. function g_points($names, $q)
  152. {
  153. global $db_id;
  154. $query="update users set points=points+".$q." where name in (".$names.")";
  155. $result=mysql_query($query, $db_id);
  156. if ($result) return 1;
  157. else return 0;
  158. }
  159. function alliance_all($id)
  160. {
  161. global $db_id;
  162. $query="select * from alliances where id=".$id;
  163. $result=mysql_query($query, $db_id); $alliance=array();
  164. $alliance[0]=mysql_fetch_row($result);
  165. if (!$alliance[0][0]) { return 0;}
  166. $query="select * from users where alliance=".$alliance[0][0];
  167. $result=mysql_query($query, $db_id);
  168. for ($i=0; $alliance[1][$i]=mysql_fetch_row($result); $i++) ;
  169. $query="select * from pacts where type=0 and (a1=".$alliance[0][0]." or a2=".$alliance[0][0].")";
  170. $result=mysql_query($query, $db_id);
  171. for ($i=0; $alliance[2][$i]=mysql_fetch_row($result); $i++) ;
  172. $query="select * from pacts where type=1 and (a1=".$alliance[0][0]." or a2=".$alliance[0][0].")";
  173. $result=mysql_query($query, $db_id);
  174. for ($i=0; $alliance[3][$i]=mysql_fetch_row($result); $i++) ;
  175. return $alliance;
  176. }
  177. function alliance_($name)
  178. {
  179. global $db_id;
  180. $query="select * from alliances where name='".$name."'";
  181. $result=mysql_query($query, $db_id);
  182. $row=mysql_fetch_row($result);
  183. return $row;
  184. }
  185. function alliance($id)
  186. {
  187. global $db_id;
  188. $query="select * from alliances where id='".$id."'";
  189. $result=mysql_query($query, $db_id);
  190. $row=mysql_fetch_row($result);
  191. return $row;
  192. }
  193. function forum_pruning()
  194. {
  195. global $db_id;
  196. $query="select id from forums where parent not in (select id from forums) and parent!=0";
  197. $result=mysql_query($query, $db_id); $nr=0;
  198. for ($i=0; $row=mysql_fetch_row($result); $i++) {forum(3, $row[$i][0], 0, 0, 0, 0); $nr++;}
  199. return $nr;
  200. }
  201. function forum($a, $id, $alliance, $parent, $name, $desc)
  202. {
  203. global $db_id;
  204. switch($a)
  205. {
  206. case '0'://read
  207. $forums=array();
  208. $query="select * from forums where alliance=".$alliance." and parent=".$parent." order by name";
  209. $result=mysql_query($query, $db_id);
  210. for ($i=0; $row=mysql_fetch_row($result); $i++)
  211. {
  212. $forums[0][$i]=$row;
  213. $query="select count(*) from threads where forum=".$forums[0][$i][0];
  214. $row=mysql_fetch_row(mysql_query($query, $db_id));
  215. $forums[0][$i][5]=$row[0];
  216. }
  217. $query="select parent from forums where id=".$parent;
  218. $result=mysql_query($query, $db_id); $row=mysql_fetch_row($result);
  219. if ($row[0]) $forums[1]=$row[0]; else $forums[1]=0;
  220. return $forums;
  221. break;
  222. case '1'://add
  223. if ($name)
  224. {
  225. $query="insert into forums (alliance, parent, name, description) values (".$alliance.", ".$parent.", '".$name."', '".$desc."')";
  226. $result=mysql_query($query, $db_id);
  227. if ($result) return 1; else return 0;
  228. } else return 0;
  229. break;
  230. case '2'://edit
  231. $query="update forums set parent=".$parent.", name='".$name."', description='".$desc."' where id=".$id;
  232. $result=mysql_query($query, $db_id);
  233. if ($result) return 1; else return 0;
  234. break;
  235. case '3'://delete
  236. $query="delete from posts where thread in (select id from threads where forum=".$id.")";
  237. $result=mysql_query($query, $db_id);
  238. $query="delete from threads where forum=".$id;
  239. $result=mysql_query($query, $db_id);
  240. $query="delete from forums where id=".$id;
  241. $result=mysql_query($query, $db_id);
  242. if ($result) return 1; else return 0;
  243. break;
  244. }
  245. }
  246. function thread($a, $id, $forum, $author, $name, $desc, $content)
  247. {
  248. global $db_id;
  249. switch($a)
  250. {
  251. case '0'://read
  252. if (!$id)
  253. {
  254. $threads=array();
  255. $query="select * from threads where forum=".$forum." order by date";
  256. $result=mysql_query($query, $db_id);
  257. for ($i=0; $row=mysql_fetch_row($result); $i++)
  258. {
  259. $threads[$i]=$row;
  260. $query="select count(*) from posts where thread=".$threads[$i][0];
  261. $row=mysql_fetch_row(mysql_query($query, $db_id));
  262. $threads[$i][7]=$row[0];
  263. }
  264. return $threads;
  265. }
  266. else
  267. {
  268. $query="select * from threads where id=".$id;
  269. $thread=mysql_fetch_row(mysql_query($query, $db_id));
  270. return $thread;
  271. }
  272. break;
  273. case '1'://add
  274. if ($name)
  275. {
  276. $query="insert into threads (forum, author, date, name, description, content) values (".$forum.", ".$author.", now(), '".$name."', '".$desc."', '".$content."')";
  277. $result=mysql_query($query, $db_id);
  278. if ($result) return 1; else return 0;
  279. } else return 0;
  280. break;
  281. case '2'://edit
  282. $query="update threads set forum=".$forum.", name='".$name."', description='".$desc."', content='".$content."', date=now() where id=".$id;
  283. $result=mysql_query($query, $db_id);
  284. if ($result) return 1; else return 0;
  285. break;
  286. case '3'://delete
  287. $query="delete from posts where thread=".$id;
  288. $result=mysql_query($query, $db_id);
  289. $query="delete from threads where id=".$id;
  290. $result=mysql_query($query, $db_id);
  291. if ($result) return 1; else return 0;
  292. break;
  293. }
  294. }
  295. function post($a, $id, $thread, $author, $desc, $content)
  296. {
  297. global $db_id;
  298. switch($a)
  299. {
  300. case '0'://read
  301. if (!$id)
  302. {
  303. $posts=array();
  304. $query="select * from posts where thread=".$thread." order by date";
  305. $result=mysql_query($query, $db_id);
  306. for ($i=0; $row=mysql_fetch_row($result); $i++) $posts[$i]=$row;
  307. return $posts;
  308. }
  309. else
  310. {
  311. $query="select * from posts where id=".$id;
  312. $post=mysql_fetch_row(mysql_query($query, $db_id));
  313. return $post;
  314. }
  315. break;
  316. case '1'://add
  317. if ($content)
  318. {
  319. $query="insert into posts (thread, author, date, description, content) values (".$thread.", ".$author.", now(), '".$desc."', '".$content."')";
  320. $result=mysql_query($query, $db_id);
  321. if ($result) return 1; else return 0;
  322. } else return 0;
  323. break;
  324. case '2'://edit
  325. $query="update posts set description='".$desc."', content='".$content."', date=now() where id=".$id;
  326. $result=mysql_query($query, $db_id);
  327. if ($result) return 1; else return 0;
  328. break;
  329. case '3'://delete
  330. $query="delete from posts where id=".$id;
  331. $result=mysql_query($query, $db_id);
  332. if ($result) return 1; else return 0;
  333. break;
  334. }
  335. }
  336. function faction($id)
  337. {
  338. global $db_id;
  339. $query="select * from factions where id=".$id;
  340. $result=mysql_query($query, $db_id);
  341. $row=mysql_fetch_row($result);
  342. return $row;
  343. }
  344. function factions()
  345. {
  346. global $db_id;
  347. $factions=array();
  348. $query="select * from factions";
  349. $result=mysql_query($query, $db_id);
  350. for ($i=0; $row=mysql_fetch_row($result); $i++) $factions[$i]=$row;
  351. return $factions;
  352. }
  353. function town($id)
  354. {
  355. global $db_id;
  356. $query="select * from towns where id=".$id;
  357. $result=mysql_query($query, $db_id);
  358. if ($result)
  359. {
  360. $row=mysql_fetch_row($result);
  361. $row[2]=stripslashes($row[2]); $row[14]=stripslashes($row[14]);
  362. return $row;
  363. } else return 0;
  364. }
  365. function town_($name)
  366. {
  367. global $db_id;
  368. $query="select * from towns where name='".$name."'";
  369. $result=mysql_query($query, $db_id);
  370. if ($result)
  371. {
  372. $row=mysql_fetch_row($result);
  373. $row[2]=stripslashes($row[2]); $row[14]=stripslashes($row[14]);
  374. return $row;
  375. } else return 0;
  376. }
  377. function town_xy($id)
  378. {
  379. global $db_id;
  380. $query="select * from map where type=3 and subtype=".$id;
  381. $result=mysql_query($query, $db_id);
  382. $row=mysql_fetch_row($result);
  383. return $row;
  384. }
  385. function towns($id)
  386. {
  387. global $db_id;
  388. $query="select * from towns where owner=".$id." order by isCapital desc";
  389. $result=mysql_query($query, $db_id); $towns=array();
  390. for ($i=0; $row=mysql_fetch_row($result); $i++) {$towns[$i]=$row; $towns[$i][2]=stripslashes($row[2]); $towns[$i][14]=stripslashes($row[14]);}
  391. return $towns;
  392. }
  393. function buildings($faction)
  394. {
  395. global $db_id, $lang;
  396. $query="select * from buildings where faction=".$faction;
  397. $result=mysql_query($query, $db_id); $buildings=array();
  398. for ($i=0; $row=mysql_fetch_row($result); $i++)
  399. {
  400. $buildings[$i]=$row;
  401. if (isset($lang['buildings']))
  402. {
  403. $buildings[$i][2]=$lang['buildings'][$faction-1][$i][0];
  404. $buildings[$i][8]=$lang['buildings'][$faction-1][$i][1];
  405. }
  406. }
  407. return $buildings;
  408. }
  409. function weapons($faction)
  410. {
  411. global $db_id, $lang;
  412. $query="select * from weapons where faction=".$faction;
  413. $result=mysql_query($query, $db_id); $weapons=array();
  414. for ($i=0; $row=mysql_fetch_row($result); $i++)
  415. {
  416. $weapons[$i]=$row;
  417. if (isset($lang['weapons']))
  418. {
  419. $weapons[$i][2]=$lang['weapons'][$faction-1][$i][0];
  420. $weapons[$i][5]=$lang['weapons'][$faction-1][$i][1];
  421. }
  422. }
  423. return $weapons;
  424. }
  425. function units($faction)
  426. {
  427. global $db_id, $lang;
  428. $query="select * from units where faction=".$faction;
  429. $result=mysql_query($query, $db_id); $units=array();
  430. for ($i=0; $row=mysql_fetch_row($result); $i++)
  431. {
  432. $units[$i]=$row;
  433. if (isset($lang['units']))
  434. {
  435. $units[$i][2]=$lang['units'][$faction-1][$i][0];
  436. $units[$i][10]=$lang['units'][$faction-1][$i][1];
  437. }
  438. }
  439. return $units;
  440. }
  441. function get_land()
  442. {
  443. global $db_id;
  444. $query="select x, y from map where type=1";
  445. $result=mysql_query($query, $db_id);
  446. for ($i=0; $row=mysql_fetch_row($result); $i++) $land[$i]=$row;
  447. return $land;
  448. }
  449. function map($x, $y)
  450. {
  451. global $db_id;
  452. $query="select * from map where (y between ".($y-3)." and ".($y+3).") and (x between ".($x-3)." and ".($x+3).") order by y desc, x asc";
  453. $result=mysql_query($query, $db_id);
  454. $data=array();
  455. for ($i=0; $row=mysql_fetch_row($result); $i++) $data[$i]=$row;
  456. return $data;
  457. }
  458. function sector($x, $y)
  459. {
  460. global $db_id;
  461. $query="select * from map where x=".$x." and y=".$y;
  462. $result=mysql_query($query, $db_id);
  463. $row=mysql_fetch_row($result);
  464. return $row;
  465. }
  466. function map_img($data, $x, $y, &$i, $imgs)
  467. {
  468. echo "src='".$imgs."map/env_";
  469. if (isset($data[$i][0]))
  470. {
  471. if (($data[$i][0]==$x)&&($data[$i][1]==$y))
  472. {
  473. if ($data[$i][2]==3)
  474. {
  475. $town=town($data[$i][3]);
  476. if ($town[3]<=100) echo "31";
  477. else if (($town[3]>100)&&($town[3]<=200)) echo "32";
  478. else if (($town[3]>200)&&($town[3]<=300)) echo "33";
  479. else if ($town[3]>300) echo "34";
  480. }
  481. else if (!$data[$i][2]) echo "0".rand(1, 4);
  482. else echo $data[$i][2].$data[$i][3];
  483. if ($i<count($data)-1) $i++;
  484. }
  485. else echo "x";
  486. echo ".gif'";
  487. }
  488. else echo "x.gif'";
  489. }
  490. function map_lnk($data, $x, $y, &$i)
  491. {
  492. if (isset($data[$i][0]))
  493. {
  494. if (($data[$i][0]==$x)&&($data[$i][1]==$y))
  495. {
  496. if ($data[$i][2]==3)
  497. {
  498. $town=town($data[$i][3]);
  499. if ($town[1])
  500. {
  501. $usr=user($town[1]); $alliance=alliance($usr[11]);
  502. if (isset($_SESSION["user"][0])) $towns=towns($_SESSION["user"][0]); else $towns[0][0]=0;
  503. echo "href=\"javascript: xmenu(".$usr[0].", ".$town[0].", ".$towns[0][0].")\" onMouseOver=\"desc('".$town[2]."', '".$usr[1]."', '".$town[3]."', '".$alliance[1]."')\" onMouseOut=\"desc('Description', '', '', '')\"";
  504. }
  505. else echo "href='aquire.php?id=".$town[0]."' onMouseOver=\"desc('".$town[2]."', '[abandoned]', '".$town[3]."', '')\" onMouseOut=\"desc('Description', '', '', '')\"";
  506. }
  507. else if (!$data[$i][2]) echo "href=\"javascript: template('map_.php', 'x=".$x."&y=".$y."')\" onMouseOver=\"desc('Water', '-', '-', '-')\" onMouseOut=\"desc('Description', '', '', '')\"";
  508. else if ($data[$i][2]==2) echo "href=\"javascript: template('map_.php', 'x=".$x."&y=".$y."')\" onMouseOver=\"desc('Mountains', '-', '-', '-')\" onMouseOut=\"desc('Description', '', '', '')\"";
  509. else if ($data[$i][2]==1) echo "href=\"javascript: template('map_.php', 'x=".$x."&y=".$y."')\" onMouseOver=\"desc('Land', '-', '-', '-')\" onMouseOut=\"desc('Description', '', '', '')\"";
  510. if ($i<count($data)-1) $i++;
  511. }
  512. else echo "href=\"javascript: template('map_.php', 'x=".$x."&y=".$y."')\" onMouseOver=\"desc('void', '-', '-', '-')\" onMouseOut=\"desc('Description', '', '', '')\"";
  513. }
  514. else echo "href=\"javascript: template('map_.php', 'x=".$x."&y=".$y."')\" onMouseOver=\"desc('void', '-', '-', '-')\" onMouseOut=\"desc('Description', '', '', '')\"";
  515. }
  516. function update_lastVisit($id)
  517. {
  518. global $db_id;
  519. $query="select count(*) from reports where recipient=".$id." and timediff((select lastVisit from users where id=".$id."), sent)<'00:00:01'";
  520. $result=mysql_query($query, $db_id);
  521. $row[0]=mysql_fetch_row($result); $row[0]=$row[0][0];
  522. $query="select count(*) from messages where recipient=".$id." and timediff((select lastVisit from users where id=".$id."), sent)<'00:00:01'";
  523. $result=mysql_query($query, $db_id);
  524. $row[1]=mysql_fetch_row($result); $row[1]=$row[1][0];
  525. $query="update users set lastVisit=now(), ip='".$_SERVER["REMOTE_ADDR"]."' where id=".$id;
  526. mysql_query($query, $db_id);
  527. return $row;
  528. }
  529. function update_taxes($production, $morale, $id)
  530. {
  531. global $db_id;
  532. $query="update towns set production='".$production."', morale=".$morale." where id=".$id;
  533. mysql_query($query, $db_id);
  534. }
  535. function update_formation($id, $gen)
  536. {
  537. global $db_id;
  538. $town=town($id);
  539. $query="update towns set general='".$gen."' where id=".$id;
  540. $result=mysql_query($query, $db_id);
  541. if ($result) header("Location: gen.php?town=".$id);
  542. else msg("Failed.".mysql_error());
  543. }
  544. function update_town($name, $desc, $id)
  545. {
  546. global $db_id;
  547. $query="select count(*) from towns where name='".$name."' and id!=".$id;
  548. $result=mysql_query($query, $db_id);
  549. $row=mysql_fetch_row($result);
  550. if (!$row[0])
  551. {
  552. $query="update towns set name='".$name."', description='".$desc."' where id=".$id;
  553. mysql_query($query, $db_id);
  554. } else msg("Name taken.");
  555. }
  556. function purge($id)
  557. {
  558. global $db_id;
  559. $query="update map set type=1, subtype=3 where type=3 and subtype=".$id;
  560. mysql_query($query, $db_id);
  561. $query="delete from a_queue where a_queue.town=".$id." or a_queue.target=".$id;
  562. mysql_query($query, $db_id);
  563. $query="delete from c_queue where c_queue.town=".$id;
  564. mysql_query($query, $db_id);
  565. $query="delete from t_queue where t_queue.seller=".$id." or t_queue.buyer=".$id;
  566. mysql_query($query, $db_id);
  567. $query="delete from u_queue where u_queue.town=".$id;
  568. mysql_query($query, $db_id);
  569. $query="delete from uup_queue where uup_queue.town=".$id;
  570. mysql_query($query, $db_id);
  571. $query="delete from w_queue where w_queue.town=".$id;
  572. mysql_query($query, $db_id);
  573. $query="delete from towns where id=".$id;
  574. mysql_query($query, $db_id);
  575. }
  576. function abandon($id)
  577. {
  578. global $db_id;
  579. $query="update towns set owner=0 where id=".$id;
  580. mysql_query($query, $db_id);
  581. }
  582. function aquire($id, $owner)
  583. {
  584. global $db_id;
  585. $query="update towns set owner=".$owner." where id=".$id;
  586. mysql_query($query, $db_id);
  587. }
  588. function update_a($name, $desc, $id)
  589. {
  590. global $db_id;
  591. $query="select count(*) from alliances where name='".$name."' and id!=".$id;
  592. $result=mysql_query($query, $db_id);
  593. $row=mysql_fetch_row($result);
  594. if (!$row[0])
  595. {
  596. $query="update alliances set name='".$name."', description='".$desc."' where id=".$id;
  597. mysql_query($query, $db_id);
  598. } else msg("Name taken.");
  599. }
  600. function update_rank($id, $rank)
  601. {
  602. global $db_id;
  603. $query="update users set rank='".$rank."' where id=".$id;
  604. $result=mysql_query($query, $db_id);
  605. if ($result) return 1;
  606. else return 0;
  607. }
  608. function check_d($id)
  609. {
  610. global $db_id;
  611. $query="select timediff(dueTime, now()) from d_queue where user=".$id;
  612. $result=mysql_query($query, $db_id);
  613. $row=mysql_fetch_row($result);
  614. if ($row[0][0])
  615. if ($row[0][0]=="-")
  616. {
  617. $query="update map set type=1, subtype=6 where subtype in (select id from towns where owner=".$id.")";
  618. mysql_query($query, $db_id);
  619. $query="select id from alliances where founder=".$id;
  620. $result=mysql_query($query, $db_id); $row=mysql_fetch_row($result);
  621. if ($row[0])//if the user is an alliance founder
  622. {
  623. $query="delete from alliances where id=".$row[0];
  624. mysql_query($query, $db_id);
  625. $query="delete from pacts where (a1=".$row[0]." or a2=".$row[0].")";
  626. mysql_query($query, $db_id);
  627. }
  628. $query="delete from a_queue where (a_queue.town in (select id from towns where owner=".$id.") or a_queue.target in (select id from towns where owner=".$id."))";
  629. mysql_query($query, $db_id);
  630. $query="delete from c_queue where c_queue.town in (select id from towns where owner=".$id.")";
  631. mysql_query($query, $db_id);
  632. $query="delete from d_queue where user=".$id;
  633. mysql_query($query, $db_id);
  634. $query="delete from t_queue where (t_queue.seller in (select id from towns where owner=".$id.") or t_queue.buyer in (select id from towns where owner=".$id."))";
  635. mysql_query($query, $db_id);
  636. $query="delete from u_queue where u_queue.town in (select id from towns where owner=".$id.")";
  637. mysql_query($query, $db_id);
  638. $query="delete from uup_queue where uup_queue.town in (select id from towns where owner=".$id.")";
  639. mysql_query($query, $db_id);
  640. $query="delete from w_queue where w_queue.town in (select id from towns where owner=".$id.")";
  641. mysql_query($query, $db_id);
  642. $query="delete from messages where recipient=".$id;
  643. mysql_query($query, $db_id);
  644. $query="delete from reports where recipient=".$id;
  645. mysql_query($query, $db_id);
  646. $query="delete from towns where owner=".$id;
  647. mysql_query($query, $db_id);
  648. $query="delete from users where id=".$id;
  649. mysql_query($query, $db_id);
  650. return 0;
  651. }
  652. return 1;
  653. }
  654. function del_u($id)
  655. {
  656. global $db_id;
  657. $query="update map set type=1, subtype=6 where subtype in (select id from towns where owner=".$id.")";
  658. mysql_query($query, $db_id);
  659. $query="select id from alliances where founder=".$id;
  660. $result=mysql_query($query, $db_id); $row=mysql_fetch_row($result);
  661. if ($row[0])//if the user is an alliance founder
  662. {
  663. $query="delete from alliances where id=".$row[0];
  664. mysql_query($query, $db_id);
  665. $query="delete from pacts where (a1=".$row[0]." or a2=".$row[0].")";
  666. mysql_query($query, $db_id);
  667. }
  668. $query="delete from a_queue where (a_queue.town in (select id from towns where owner=".$id.") or a_queue.target in (select id from towns where owner=".$id."))";
  669. mysql_query($query, $db_id);
  670. $query="delete from c_queue where c_queue.town in (select id from towns where owner=".$id.")";
  671. mysql_query($query, $db_id);
  672. $query="delete from d_queue where user=".$id;
  673. mysql_query($query, $db_id);
  674. $query="delete from t_queue where (t_queue.seller in (select id from towns where owner=".$id.") or t_queue.buyer in (select id from towns where owner=".$id."))";
  675. mysql_query($query, $db_id);
  676. $query="delete from u_queue where u_queue.town in (select id from towns where owner=".$id.")";
  677. mysql_query($query, $db_id);
  678. $query="delete from uup_queue where uup_queue.town in (select id from towns where owner=".$id.")";
  679. mysql_query($query, $db_id);
  680. $query="delete from w_queue where w_queue.town in (select id from towns where owner=".$id.")";
  681. mysql_query($query, $db_id);
  682. $query="delete from messages where recipient=".$id;
  683. mysql_query($query, $db_id);
  684. $query="delete from reports where recipient=".$id;
  685. mysql_query($query, $db_id);
  686. $query="delete from towns where owner=".$id;
  687. mysql_query($query, $db_id);
  688. $query="delete from users where id=".$id;
  689. mysql_query($query, $db_id);
  690. }
  691. function check_r($id)
  692. {
  693. global $db_id;
  694. $query="select production, resources, limits, timediff(now(), lastCheck), morale, upkeep, population from towns where id=".$id;
  695. $result=mysql_query($query, $db_id);
  696. $row=mysql_fetch_row($result);
  697. $time=explode(":", $row[3]); $time=$time[0]+$time[1]/60+$time[2]/3600;
  698. $res=explode("-", $row[1]); $prod=explode("-", $row[0]); $lim=explode("-", $row[2]); $m=$row[4]/100;
  699. if ($prod[0]-$row[5]-$row[6]<5) $prod[0]=$row[5]+$row[6]+5;//noob protection against negative crop production values
  700. if ($res[0]+($prod[0]-$row[5]-$row[6])*$time*$m<=$lim[0]) $res[0]+=($prod[0]-$row[5]-$row[6])*$time*$m; else $res[0]=$lim[0];
  701. if ($res[1]+$prod[1]*$time*$m<=$lim[1]) $res[1]+=$prod[1]*$time*$m; else $res[1]=$lim[1];
  702. if ($res[2]+$prod[2]*$time*$m<=$lim[1]) $res[2]+=$prod[2]*$time*$m; else $res[2]=$lim[1];
  703. if ($res[3]+$prod[3]*$time*$m<=$lim[1]) $res[3]+=$prod[3]*$time*$m; else $res[3]=$lim[1];
  704. if ($res[4]+$prod[4]*$time<=$lim[2]) $res[4]+=$prod[4]*$time; else $res[4]=$lim[2];
  705. $res=$res[0]."-".$res[1]."-".$res[2]."-".$res[3]."-".$res[4];
  706. $query="update towns set resources='".$res."', lastCheck=now() where id=".$id;
  707. $result=mysql_query($query, $db_id);
  708. }
  709. function check_c($id, $faction)
  710. {
  711. global $db_id, $tdif;
  712. $town=town($id);
  713. $buildings=buildings($faction);
  714. $data=explode("-", $town[8]); $res=explode("-", $town[10]); $lim=explode("-", $town[11]); $prod=explode("-", $town[9]); $land=explode("/", $town[13]);
  715. $land[0]=explode("-", $land[0]); $land[1]=explode("-", $land[1]); $land[2]=explode("-", $land[2]); $land[3]=explode("-", $land[3]);
  716. $query="select timediff(dueTime".$tdif.", now()), b, subB from c_queue where town=".$id." order by dueTime asc";
  717. $result=mysql_query($query, $db_id);
  718. for (; $row=mysql_fetch_row($result); )
  719. if ($row[0][0]=="-")
  720. {
  721. if ($row[2]>-1)
  722. {
  723. $land[$row[1]][$row[2]]++; $ldata="";
  724. for ($i=0; $i<count($land); $i++) $ldata[$i]=implode("-", $land[$i]);
  725. $ldata=implode("/", $ldata);
  726. $out=explode("-", $buildings[$row[1]][5]); $prod[$row[1]]=0;
  727. for ($i=0; $i<count($land[$row[1]]); $i++)
  728. if ($land[$row[1]][$i]) $prod[$row[1]]+=$out[$land[$row[1]][$i]-1];
  729. $pdata=implode("-", $prod);
  730. $query="update towns set land='".$ldata."', production='".$pdata."' where id=".$id;
  731. mysql_query($query, $db_id);
  732. }
  733. else switch($row[1])
  734. {
  735. case 0:
  736. {
  737. $data[$row[1]]=1; $bdata=implode("-", $data);
  738. $query="update towns set buildings='".$bdata."' where id=".$id;
  739. mysql_query($query, $db_id);
  740. } break;
  741. case 1:
  742. {
  743. $data[$row[1]]=1; $bdata=implode("-", $data);
  744. $query="update towns set buildings='".$bdata."' where id=".$id;
  745. mysql_query($query, $db_id);
  746. } break;
  747. case 2:
  748. {
  749. $data[$row[1]]=1; $bdata=implode("-", $data);
  750. $query="update towns set buildings='".$bdata."' where id=".$id;
  751. mysql_query($query, $db_id);
  752. } break;
  753. case 3:
  754. {
  755. $data[$row[1]]=1; $bdata=implode("-", $data);
  756. $query="update towns set buildings='".$bdata."' where id=".$id;
  757. mysql_query($query, $db_id);
  758. } break;
  759. case 4:
  760. {
  761. $data[4]++; $lim[0]=explode("-", $buildings[4][5]); $lim[0]=$lim[0][$data[4]-1]; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  762. $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  763. mysql_query($query, $db_id);
  764. } break;
  765. case 5:
  766. {
  767. $data[5]++; $lim[1]=explode("-", $buildings[5][5]); $lim[1]=$lim[1][$data[5]-1]; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  768. $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  769. mysql_query($query, $db_id);
  770. } break;
  771. case 6:
  772. {
  773. $data[6]++; $lim[5]=explode("-", $buildings[6][5]); $lim[5]=$lim[5][$data[6]-1]; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  774. $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  775. mysql_query($query, $db_id);
  776. } break;
  777. case 7:
  778. {
  779. $data[7]++; $lim[4]=explode("-", $buildings[7][5]); $lim[4]=$lim[4][$data[7]-1]; $lim[2]+=800; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  780. $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  781. mysql_query($query, $db_id);
  782. } break;
  783. case 8:
  784. {
  785. $data[8]++; $lim[3]=explode("-", $buildings[8][5]); $lim[3]=$lim[3][$data[8]-1]; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  786. $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  787. mysql_query($query, $db_id);
  788. } break;
  789. case 9:
  790. {
  791. $data[9]++; $bdata=implode("-", $data);
  792. $query="update towns set buildings='".$bdata."' where id=".$id;
  793. mysql_query($query, $db_id);
  794. } break;
  795. case 10:
  796. {
  797. $data[10]++; $bdata=implode("-", $data);
  798. $query="update towns set buildings='".$bdata."' where id=".$id;
  799. mysql_query($query, $db_id);
  800. } break;
  801. case 11:
  802. {
  803. $mdata=explode("-", $buildings[11][5]);
  804. $data[11]++; $bdata=implode("-", $data);
  805. $query="update towns set buildings='".$bdata."', morale=".(100-$prod[4]+$mdata[$data[11]-1])." where id=".$id;
  806. mysql_query($query, $db_id);
  807. } break;
  808. case 12:
  809. {
  810. $data[12]++; $bdata=implode("-", $data);
  811. $query="update towns set buildings='".$bdata."' where id=".$id;
  812. mysql_query($query, $db_id);
  813. } break;
  814. case 13:
  815. {
  816. $data[13]++; $lim[6]=explode("-", $buildings[13][5]); $lim[6]=$lim[6][$data[13]-1]; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  817. $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  818. mysql_query($query, $db_id);
  819. } break;
  820. case 14:
  821. {
  822. $data[14]++; $lim[7]=explode("-", $buildings[14][5]); $lim[7]=$lim[7][$data[14]-1]; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  823. $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  824. mysql_query($query, $db_id);
  825. } break;
  826. case 15:
  827. {
  828. $data[15]++; $lim[8]=explode("-", $buildings[15][5]); $lim[8]=$lim[8][$data[15]-1]; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  829. $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  830. mysql_query($query, $db_id);
  831. } break;
  832. case 16:
  833. {
  834. $data[16]=1; $bdata=implode("-", $data);
  835. $query="update towns set buildings='".$bdata."' where id=".$id;
  836. mysql_query($query, $db_id);
  837. } break;
  838. case 17:
  839. {
  840. $data[17]++; $bdata=implode("-", $data);
  841. $query="update towns set buildings='".$bdata."' where id=".$id;
  842. mysql_query($query, $db_id);
  843. } break;
  844. case 18:
  845. {
  846. $data[18]++; $lim[9]=explode("-", $buildings[18][5]); $lim[9]=$lim[9][$data[18]-1]; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  847. $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  848. mysql_query($query, $db_id);
  849. } break;
  850. case 19:
  851. {
  852. $data[19]++; $lim[10]=explode("-", $buildings[19][5]); $lim[10]=$lim[10][$data[19]-1]; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  853. $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  854. mysql_query($query, $db_id);
  855. } break;
  856. case 20:
  857. {
  858. $data[20]++; $lim[11]=explode("-", $buildings[20][5]); $lim[11]=$lim[11][$data[20]-1]; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  859. $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  860. mysql_query($query, $db_id);
  861. } break;
  862. case 21:
  863. {
  864. $data[21]++; $lim[12]=explode("-", $buildings[21][5]); $lim[12]=$lim[12][$data[21]-1]; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  865. $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  866. mysql_query($query, $db_id);
  867. } break;
  868. default: ;
  869. }
  870. $query="delete from c_queue where c_queue.town=".$id." and c_queue.b=".$row[1]." and c_queue.subB=".$row[2];
  871. mysql_query($query, $db_id);
  872. }
  873. }
  874. function check_w($id)
  875. {
  876. global $db_id, $tdif;
  877. $town=town($id);
  878. $data=explode("-", $town[6]);
  879. $query="select timediff(dueTime".$tdif.", now()), type, quantity from w_queue where town=".$id." order by dueTime asc";
  880. $result=mysql_query($query, $db_id);
  881. for (; $row=mysql_fetch_row($result); )
  882. if ($row[0][0]=="-")
  883. {
  884. $data[$row[1]]+=$row[2]; $d=implode("-", $data);
  885. $query="update towns set weapons='".$d."' where id=".$id;
  886. mysql_query($query, $db_id);
  887. $query="delete from w_queue where town=".$id." and type=".$row[1];
  888. mysql_query($query, $db_id);
  889. }
  890. }
  891. function html_weaps($weaps)
  892. {
  893. global $imgs, $fimgs;
  894. $html_data="<table class='q_table' style='border-collapse: collapse' width='600' border='1'><tr>";
  895. for ($i=0; $i<count($weaps); $i++) $html_data.="<td><img src='".$imgs.$fimgs."1".$i.".gif'></td>";
  896. $html_data.="</tr><tr>";
  897. for ($i=0; $i<count($weaps); $i++) $html_data.="<td>".$weaps[$i]."</td>";
  898. $html_data.="</tr></table>";
  899. return $html_data;
  900. }
  901. function html_res($res)
  902. {
  903. global $imgs, $fimgs;
  904. $html_data="<table class='q_table' style='border-collapse: collapse' width='600' border='1'><tr>";
  905. for ($i=0; $i<count($res); $i++) $html_data.="<td><img height='25' src='".$imgs.$fimgs."0".$i.".gif'></td>";
  906. $html_data.="</tr><tr>";
  907. for ($i=0; $i<count($res); $i++) $html_data.="<td>".round($res[$i])."</td>";
  908. $html_data.="</tr></table>";
  909. return $html_data;
  910. }
  911. function html_army($army, $f)
  912. {
  913. global $imgs, $fimgs;
  914. $units=units($f);
  915. $html_data="<table class='q_table' style='border-collapse: collapse' width='600' border='1'><tr>";
  916. for ($i=0; $i<count($army); $i++) $html_data.="<td><img height='25' src='".$imgs.$fimgs."2".$i.".gif' title='".$units[$i][2]."'></td>";
  917. $html_data.="</tr><tr>";
  918. for ($i=0; $i<count($army); $i++) $html_data.="<td>".$army[$i]."</td>";
  919. $html_data.="</tr></table>";
  920. return $html_data;
  921. }
  922. function check_a($id)
  923. {
  924. global $db_id, $tdif;
  925. $query="select timediff(dueTime".$tdif.", now()), town, target, type, phase, army, general, uup, wup, aup, rLoot, wLoot, intel, sent, dueTime, id from a_queue where town=".$id." or target=".$id." order by dueTime asc";
  926. $result=mysql_query($query, $db_id);
  927. for (; $line=mysql_fetch_row($result); )
  928. if ($line[0][0]=="-")
  929. {
  930. $town=town($line[1]); $lim=explode("-", $town[11]);
  931. $to_owner=user($town[1]);
  932. $target=town($line[2]);
  933. $ta_owner=user($target[1]);
  934. check_r($target[0]);
  935. if ($target[0])//if the target town exists
  936. if ($line[3])//if it is not a reinforcement
  937. {
  938. $data[0][0]=$ta_owner[10]; $data[0][1]=explode("-", $target[7]); $data[0][2]=explode("-", $target[15]); $data[0][3]=explode("-", $target[8]); $data[0][4]=explode("-", $target[11]); $data[0][5]=explode("-", $target[10]); $data[0][6]=explode("-", $target[6]); $data[0][7]=explode("-", $target[17]); $data[0][8]=explode("-", $target[18]); $data[0][9]=explode("-", $target[19]);
  939. $data[1][0]=$to_owner[10]; $data[1][1]=explode("-", $line[5]); $data[1][2]=explode("-", $line[6]); $data[1][3]=explode("-", $line[7]); $data[1][4]=explode("-", $line[8]); $data[1][5]=explode("-", $line[9]);
  940. $data[2]=$line[3]; $data[3]=explode("-", $line[10]); $data[4]=explode("-", $line[11]); $data[5]=$line[12];
  941. if (!$line[4])//if phase 0
  942. {
  943. $data=battle($data); $siege_target=-1; $buildings=buildings($ta_owner[10]);
  944. $line[13]=explode("-", $line[13]);
  945. $date=strtotime("+".$line[13][0]." hours ".$line[13][1]." minutes", strtotime($line[14]));
  946. $date=strftime("%Y-%m-%d %H:%M:%S", $date);
  947. //population update due to possible siege damage
  948. if ($target[8]!=implode("-", $data[0][3]))
  949. {
  950. $target[8]=explode("-", $target[8]);
  951. for ($i=0; $i<22; $i++) if ($target[8][$i]>$data[0][3][$i])
  952. {
  953. $siege_target=$i;
  954. $buildings[$i][7]=explode("-", $buildings[$i][7]);
  955. $target[3]-=$buildings[$i][7][$target[8][$i]];
  956. }
  957. }
  958. if ($data[1][1][11]<100)
  959. {
  960. $query="update towns set population=".$target[3].", army='".implode("-", $data[0][1])."', upkeep=".array_sum($data[0][1]).", general='".implode("-", $data[0][2])."', buildings='".implode("-", $data[0][3])."', resources='".implode("-", $data[0][5])."', weapons='".implode("-", $data[0][6])."' where id=".$target[0];
  961. mysql_query($query, $db_id);
  962. }
  963. else//if there are 100 or more colonists in attacking army
  964. {
  965. $data[1][1][11]-=100;
  966. $query="update towns set owner='".$to_owner[0]."', isCapital=0, population=".$target[3].", army='".implode("-", $data[0][1])."', upkeep=".array_sum($data[0][1]).", general='".implode("-", $data[0][2])."', buildings='".implode("-", $data[0][3])."', resources='".implode("-", $data[0][5])."', weapons='".implode("-", $data[0][6])."' where id=".$target[0];
  967. mysql_query($query, $db_id);
  968. send_report($to_owner[0], "captured town", "You have captured the town of ".$target[2].".");
  969. send_report($ta_owner[0], "town captured", "The town ".$target[2]." has been captured by ".$town[2].".");
  970. }
  971. if (!$data[5]) $data[5]=array("[no info]");
  972. $query="update a_queue set phase=1, dueTime='".$date."', army='".implode("-", $data[1][1])."', general='".implode("-", $data[1][2])."', rLoot='".implode("-", $data[3])."', wLoot='".implode("-", $data[4])."', intel='".implode("-", $data[5])."' where town=".$town[0]." and id=".$line[15];
  973. mysql_query($query, $db_id);
  974. $data[0][1]=html_army($data[0][1], $ta_owner[10]); $data[1][1]=html_army($data[1][1], $to_owner[10]); $data[0][10]=html_army($data[0][10], $ta_owner[10]); $data[1][10]=html_army($data[1][10], $to_owner[10]); $data[3]=html_res($data[3]); $data[4]=html_weaps($data[4]);
  975. if ($siege_target>-1) $siege_target="</br>Demolished building: ".$buildings[$siege_target][2]; else $siege_target="";
  976. send_report($ta_owner[0], "battle report, attacked", "attacked by <a class='q_link' href='profile_view.php?id=".$town[1]."'>".$town[2]."</a></br>enemy troops before battle:</br>".$data[1][10]."</br>and after:</br>".$data[1][1]."</br>your troops before battle:</br>".$data[0][10]."</br>and after:</br>".$data[0][1].$siege_target);
  977. send_report($to_owner[0], "battle report, homecoming", "returning from <a class='q_link' href='profile_view.php?id=".$target[1]."'>".$target[2]."</a></br>your troops before battle:</br>".$data[1][10]."</br>and after:</br>".$data[1][1]."</br>enemy troops before battle:</br>".$data[0][10]."</br>and after:</br>".$data[0][1]."</br> resources looted: ".$data[3]."</br> weapons looted: ".$data[4].$siege_target);
  978. }
  979. else if ($town[0])//if phase 1
  980. {
  981. $army=explode("-", $town[7]); for ($i=0; $i<13; $i++) $army[$i]+=$data[1][1][$i];
  982. $ogen=explode("-", $town[15]); if ($data[1][2][0]) {$data[1][2][3]=$ogen[3]; $ogen=$data[1][2];} $ogen=implode("-", $ogen);
  983. $res=explode("-", $town[10]); for ($i=0; $i<5; $i++) $res[$i]+=$data[3][$i]; $res=implode("-", $res);
  984. $weaps=explode("-", $town[6]); for ($i=0; $i<11; $i++) if ($weaps[$i]+$data[4][$i]<=$lim[12]) $weaps[$i]+=$data[4][$i]; else $weaps[$i]=$lim[12]; $weaps=implode("-", $weaps);
  985. $query="update towns set army='".implode("-", $army)."', upkeep=".array_sum($army).", general='".$ogen."', resources='".$res."', weapons='".$weaps."' where id=".$town[0];
  986. mysql_query($query, $db_id);
  987. $query="delete from a_queue where town=".$town[0]." and id=".$line[15];
  988. mysql_query($query, $db_id);
  989. }
  990. }
  991. else//reinforce target
  992. {
  993. $army=explode("-", $target[7]); $qarmy=explode("-", $line[5]); for ($i=0; $i<count($army); $i++) $army[$i]+=$qarmy[$i];
  994. $query="update towns set army='".implode("-", $army)."', upkeep=".array_sum($army)." where id=".$target[0];
  995. mysql_query($query, $db_id);
  996. $query="delete from a_queue where town=".$town[0]." and id=".$line[15];
  997. mysql_query($query, $db_id);
  998. $line[5]=html_army($qarmy, $to_owner[10]);
  999. send_report($to_owner[0], "reinforcements sent", "</br>".$line[5]."</br>to <a class='q_link' href='profile_view.php?id=".$target[1]."'>".$target[2]."</a>");
  1000. send_report($ta_owner[0], "reinforcements received", "</br>".$line[5]."</br>troops arrived from <a class='q_link' href='profile_view.php?id=".$town[1]."'>".$town[2]."</a>");
  1001. }
  1002. else if ($town[0])//if source town exists
  1003. {
  1004. $army=explode("-", $town[7]); for ($i=0; $i<13; $i++) $army[$i]+=$data[1][1][$i];
  1005. $ogen=explode("-", $town[15]); if ($data[1][2][0]) {$data[1][2][3]=$ogen[3]; $ogen=$data[1][2];} $ogen=implode("-", $ogen);
  1006. $res=explode("-", $town[10]); for ($i=0; $i<5; $i++) $res[$i]+=$data[3][$i]; $res=implode("-", $res);
  1007. $weaps=explode("-", $town[6]); for ($i=0; $i<11; $i++) if ($weaps[$i]+$data[4][$i]<=$lim[12]) $weaps[$i]+=$data[4][$i]; else $weaps[$i]=$lim[12]; $weaps=implode("-", $weaps);
  1008. $query="update towns set army='".implode("-", $army)."', upkeep=".array_sum($army).", general='".$ogen."', resources='".$res."', weapons='".$weaps."' where id=".$town[0];
  1009. mysql_query($query, $db_id);
  1010. $query="delete from a_queue where town=".$town[0]." and id=".$line[15];
  1011. mysql_query($query, $db_id);
  1012. }
  1013. else//if there is no target town and no source town
  1014. {
  1015. $query="delete from a_queue where town=".$town[0]." and id=".$line[15];
  1016. mysql_query($query, $db_id);
  1017. }
  1018. }
  1019. }
  1020. function check_u($id)
  1021. {
  1022. global $db_id, $tdif;
  1023. $town=town($id);
  1024. $data=explode("-", $town[7]);
  1025. $query="select timediff(dueTime".$tdif.", now()), type, quantity from u_queue where town=".$id." order by dueTime asc";
  1026. $result=mysql_query($query, $db_id);
  1027. for (; $row=mysql_fetch_row($result); )
  1028. if ($row[0][0]=="-")
  1029. {
  1030. $data[$row[1]]+=$row[2]; $d=implode("-", $data);
  1031. $query="update towns set army='".$d."' where id=".$id;
  1032. mysql_query($query, $db_id);
  1033. $query="delete from u_queue where town=".$id." and type=".$row[1];
  1034. mysql_query($query, $db_id);
  1035. }
  1036. }
  1037. function check_uup($id)
  1038. {
  1039. global $db_id, $tdif;
  1040. $town=town($id);
  1041. $data[17]=explode("-", $town[17]); $data[18]=explode("-", $town[18]); $data[19]=explode("-", $town[19]);
  1042. $query="select timediff(dueTime".$tdif.", now()), unit, tree from uup_queue where town=".$id." order by dueTime asc";
  1043. $result=mysql_query($query, $db_id);
  1044. for (; $row=mysql_fetch_row($result); )
  1045. if ($row[0][0]=="-")
  1046. {
  1047. $data[$row[2]][$row[1]]++; $d=implode("-", $data[$row[2]]);
  1048. if ($row[2]==17) $col="uUpgrades"; else if ($row[2]==18) $col="wUpgrades"; else if ($row[2]==19) $col="aUpgrades";
  1049. $query="update towns set ".$col."='".$d."' where id=".$id;
  1050. mysql_query($query, $db_id);
  1051. $query="delete from uup_queue where town=".$id." and unit=".$row[1]." and tree=".$row[2];
  1052. mysql_query($query, $db_id);
  1053. }
  1054. }
  1055. function check_t($id)
  1056. {
  1057. global $db_id, $tdif;
  1058. $query="select timediff(dueTime".$tdif.", now()), seller, buyer, sType, sSubType, sQ, bType, bSubType, bQ from t_queue where type=1 and (seller=".$id." or buyer=".$id.") order by dueTime asc";
  1059. $result=mysql_query($query, $db_id);
  1060. for (; $offer=mysql_fetch_row($result); )
  1061. if ($offer[0][0]=="-")
  1062. {
  1063. $seller=town($offer[1]);
  1064. $buyer=town($offer[2]);
  1065. if ($offer[6]) {$scol="weapons"; $sdata=explode("-", $seller[6]);} else {$scol="resources"; $sdata=explode("-", $seller[10]);}
  1066. if ($offer[3]) {$bcol="weapons"; $bdata=explode("-", $buyer[6]);} else {$bcol="resources"; $bdata=explode("-", $buyer[10]);}
  1067. $sdata[$offer[7]]+=$offer[8]; $bdata[$offer[4]]+=$offer[5];
  1068. $sdata=implode("-", $sdata); $bdata=implode("-", $bdata);
  1069. $query="update towns set ".$scol."='".$sdata."' where id=".$seller[0];
  1070. mysql_query($query, $db_id);
  1071. $query="update towns set ".$bcol."='".$bdata."' where id=".$buyer[0];
  1072. mysql_query($query, $db_id);
  1073. $query="delete from t_queue where seller=".$offer[1]." and sType=".$offer[3]." and sSubType=".$offer[4]." and bType=".$offer[6]." and bSubType=".$offer[7];
  1074. mysql_query($query, $db_id);
  1075. }
  1076. }
  1077. function check_d_all()
  1078. {
  1079. global $db_id;
  1080. $query="select timediff(dueTime, now()), user from d_queue";
  1081. $result=mysql_query($query, $db_id); $d_list=array(); $d=0;
  1082. for ($i=0; $row=mysql_fetch_row($result); $i++)
  1083. {
  1084. $d_list[$i]=$row;
  1085. if ($row[0][0]=="-") if (!check_d($row[1])) $d++;
  1086. }
  1087. msg($d." users deleted. ".(count($d_list)-$d)." accounts not due.");
  1088. }
  1089. function get_d($id)
  1090. {
  1091. global $db_id;
  1092. $query="select timediff(dueTime, now()) from d_queue where user=".$id;
  1093. $result=mysql_query($query, $db_id);
  1094. $row=mysql_fetch_row($result);
  1095. return $row[0];
  1096. }
  1097. function get_con($id)
  1098. {
  1099. global $db_id;
  1100. $query="select b from c_queue where town=".$id;
  1101. $result=mysql_query($query, $db_id);
  1102. $b=array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
  1103. for ($i=0; $row=mysql_fetch_row($result); $i++) $b[$row[0]]=1;
  1104. return $b;
  1105. }
  1106. function get_wea($id)
  1107. {
  1108. global $db_id;
  1109. $query="select type from w_queue where town=".$id;
  1110. $result=mysql_query($query, $db_id);
  1111. $w=array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
  1112. for ($i=0; $row=mysql_fetch_row($result); $i++) $w[$row[0]]=1;
  1113. return $w;
  1114. }
  1115. function get_uup($id)
  1116. {
  1117. global $db_id;
  1118. $query="select unit from uup_queue where town=".$id;
  1119. $result=mysql_query($query, $db_id);
  1120. $u=array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
  1121. for ($i=0; $row=mysql_fetch_row($result); $i++) $u[$row[0]]=1;
  1122. return $u;
  1123. }
  1124. function get_uns($id)
  1125. {
  1126. global $db_id;
  1127. $query="select type from u_queue where town=".$id;
  1128. $result=mysql_query($query, $db_id);
  1129. $u=array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
  1130. for ($i=0; $row=mysql_fetch_row($result); $i++) $u[$row[0]]=1;
  1131. return $u;
  1132. }
  1133. function get_tr($id)
  1134. {
  1135. global $db_id;
  1136. $merchants=0;
  1137. $query="select sType, sQ from t_queue where seller=".$id;
  1138. $result=mysql_query($query, $db_id);
  1139. for (; $row=mysql_fetch_row($result); )
  1140. if ($row[0]) $merchants+=ceil($row[1]/50); else $merchants+=ceil($row[1]/500);
  1141. $query="select bType, bQ from t_queue where buyer=".$id;
  1142. $result=mysql_query($query, $db_id);
  1143. for (; $row=mysql_fetch_row($result); )
  1144. if ($row[0]) $merchants+=ceil($row[1]/50); else $merchants+=ceil($row[1]/500);
  1145. return $merchants;
  1146. }
  1147. function get_t($id)
  1148. {
  1149. global $db_id, $tdif;
  1150. $tq=array();
  1151. $query="select sType, sSubType, sQ, bType, bSubType, bQ from t_queue where seller=".$id." and type=0";
  1152. $result=mysql_query($query, $db_id);
  1153. for ($i=0; $tq[0][$i]=mysql_fetch_row($result); $i++) ;
  1154. $query="select bType, bSubType, bQ, buyer, timediff(dueTime".$tdif.", now()), sType, sSubType, sQ from t_queue where seller=".$id." and type=1";
  1155. $result=mysql_query($query, $db_id);
  1156. for ($i=0; $tq[1][$i]=mysql_fetch_row($result); $i++) ;
  1157. $query="select sType, sSubType, sQ, seller, timediff(dueTime".$tdif.", now()), bType, bSubType, bQ from t_queue where buyer=".$id." and type=1";
  1158. $result=mysql_query($query, $db_id);
  1159. for ($i=0; $tq[2][$i]=mysql_fetch_row($result); $i++) ;
  1160. return $tq;
  1161. }
  1162. function get_w($id)
  1163. {
  1164. global $db_id, $tdif;
  1165. $query="select timediff(dueTime".$tdif.", now()), type, quantity from w_queue where town=".$id." order by dueTime asc";
  1166. $result=mysql_query($query, $db_id); $wq=array();
  1167. for ($i=0; $row=mysql_fetch_row($result); $i++) $wq[$i]=$row;
  1168. return $wq;
  1169. }
  1170. function get_u($id)
  1171. {
  1172. global $db_id, $tdif;
  1173. $query="select timediff(dueTime".$tdif.", now()), type, quantity from u_queue where town=".$id." order by dueTime asc";
  1174. $result=mysql_query($query, $db_id); $uq=array();
  1175. for ($i=0; $row=mysql_fetch_row($result); $i++) $uq[$i]=$row;
  1176. return $uq;
  1177. }
  1178. function get_a($id)
  1179. {
  1180. global $db_id, $tdif;
  1181. $query="select timediff(dueTime".$tdif.", now()), target, type, army, general, id from a_queue where town=".$id." and phase=0 order by dueTime asc";
  1182. $result=mysql_query($query, $db_id); $aq=array();
  1183. for ($i=0; $row=mysql_fetch_row($result); $i++) $aq[$i]=$row;
  1184. return $aq;
  1185. }
  1186. function get_ia($id)
  1187. {
  1188. global $db_id, $tdif;
  1189. $query="select timediff(dueTime".$tdif.", now()), town, target, type, phase from a_queue where (target=".$id." and phase=0) or (town=".$id." and phase=1) order by dueTime asc";
  1190. $result=mysql_query($query, $db_id); $iaq=array();
  1191. for ($i=0; $row=mysql_fetch_row($result); $i++) $iaq[$i]=$row;
  1192. return $iaq;
  1193. }
  1194. function get_up($id)
  1195. {
  1196. global $db_id, $tdif;
  1197. $query="select timediff(dueTime".$tdif.", now()), unit, tree from uup_queue where town=".$id." order by dueTime asc";
  1198. $result=mysql_query($query, $db_id); $upq=array();
  1199. for ($i=0; $row=mysql_fetch_row($result); $i++) $upq[$i]=$row;
  1200. return $upq;
  1201. }
  1202. function get_c($id)
  1203. {
  1204. global $db_id, $tdif;
  1205. $query="select timediff(dueTime".$tdif.", now()), b, subB from c_queue where town=".$id." order by dueTime asc";
  1206. $result=mysql_query($query, $db_id); $cq=array();
  1207. for ($i=0; $row=mysql_fetch_row($result); $i++) $cq[$i]=$row;
  1208. return $cq;
  1209. }
  1210. function get_pact($a1, $a2)
  1211. {
  1212. global $db_id;
  1213. $query="select type from pacts where (a1=".$a1." and a2=".$a2.") or (a1=".$a2." and a2=".$a1.")";
  1214. $result=mysql_query($query, $db_id);
  1215. $row=mysql_fetch_row($result);
  1216. return $row[0];
  1217. }
  1218. function cancel_d($id)
  1219. {
  1220. global $db_id;
  1221. $query="delete from d_queue where user=".$id;
  1222. $result=mysql_query($query, $db_id);
  1223. if ($result) msg("Delete request withdrawn.");
  1224. else msg("Failed.".mysql_error());
  1225. }
  1226. function cancel_c($id, $b, $subB, $res, $faction)
  1227. {
  1228. global $db_id;
  1229. $town=town($id);
  1230. $buildings=buildings($faction);
  1231. $data=explode("-", $town[8]); $land=explode("/", $town[13]); $upk=explode("-", $buildings[$b][7]);
  1232. $land[0]=explode("-", $land[0]); $land[1]=explode("-", $land[1]); $land[2]=explode("-", $land[2]); $land[3]=explode("-", $land[3]);
  1233. if ($subB==-1) $pop=$town[3]-$upk[$data[$b]];
  1234. else $pop=$town[3]-$upk[$land[$b][$subB]];
  1235. $query="update towns set resources='".$res."', population=".$pop." where id=".$id;
  1236. $result=mysql_query($query, $db_id);
  1237. $query="delete from c_queue where town=".$id." and b=".$b;
  1238. $result=mysql_query($query, $db_id);
  1239. if ($result) echo "<script type='text/javascript'>history.go(-1)</script>";
  1240. else msg("Failed.".mysql_error());
  1241. }
  1242. function cancel_a($id, $tid, $army, $gen)
  1243. {
  1244. global $db_id;
  1245. $army=explode("-", $army);
  1246. $query="update towns set army='".implode("-", $army)."', upkeep=".array_sum($army).", general='".$gen."' where id=".$id;
  1247. $result=mysql_query($query, $db_id);
  1248. $query="delete from a_queue where town=".$id." and id=".$tid;
  1249. $result=mysql_query($query, $db_id);
  1250. if ($result) header("Location: dispatch.php?town=".$id);
  1251. else msg("Failed.".mysql_error());
  1252. }
  1253. function cancel_w($id, $type, $res)
  1254. {
  1255. global $db_id;
  1256. $query="update towns set resources='".$res."' where id=".$id;
  1257. $resul

Large files files are truncated, but you can click here to view the full file