Advertisement
Guest User

Untitled

a guest
Jun 2nd, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 82.55 KB | None | 0 0
  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.  
  13.  if (isset($_SESSION["user"][0])) {$faction=faction($_SESSION["user"][10]); $imgs=$_SESSION["user"][13]; $fimgs=$faction[2];}
  14.  else {$imgs="default/"; $fimgs="1/";}
  15.  
  16. function msg($msg)
  17. {
  18.  header("Location: msg.php?msg=".$msg);
  19. }
  20.  
  21. function label($msg)
  22. {
  23.  echo "<font face=\"Fixedsys\" color=\"red\">".$msg."</font>";}
  24.  
  25. function clean($str)
  26. {
  27.  if (is_numeric($str)) $str=floor($str);
  28.  $cleaned=strip_tags($str);
  29.  $cleaned=htmlspecialchars($cleaned);
  30.  $cleaned=mysql_real_escape_string($cleaned);
  31.  $to_clean=array("%20", "\"", "'", "\\", "=", ";", ":");
  32.  $cleaned=str_replace($to_clean, "", $cleaned);
  33.  return $cleaned;
  34. }
  35.  
  36. function gen_stats($dur)
  37. {
  38.  global $db_id;
  39.  
  40.  $query="SELECT count(*) FROM users";
  41.  $result=mysql_query($query, $db_id);
  42.  $row[0]=mysql_fetch_row($result);
  43.  $query="SELECT count(*) FROM users where hour(timediff(now(), lastVisit))<".$dur;
  44.  $result=mysql_query($query, $db_id);
  45.  $row[1]=mysql_fetch_row($result);
  46.  
  47.  return $row;
  48. }
  49.  
  50. function clean_u($dur)
  51. {
  52.  global $db_id;
  53.  
  54.  $query="SELECT id FROM users where hour(timediff(now(), lastVisit))/24>".$dur;
  55.  $result=mysql_query($query, $db_id); $nr=0;
  56.  for (; $row=mysql_fetch_row($result); $nr++) del_u($row[0]);
  57.  
  58.  return $nr;
  59. }
  60.  
  61. function town_stats($col)
  62. {
  63.  global $db_id;
  64.  
  65.  $query="SELECT * from towns order by ".$col." desc";
  66.  $result=mysql_query($query, $db_id); $town_stats=array();
  67.  for ($i=0; $row=mysql_fetch_row($result); $i++) $town_stats[$i]=$row;
  68.  
  69.  return $town_stats;
  70. }
  71.  
  72. function user_stats($col)
  73. {
  74.  global $db_id;
  75.  
  76.  $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";
  77.  $result=mysql_query($query, $db_id); $user_stats=array();
  78.  for ($i=0; $row=mysql_fetch_row($result); $i++) $user_stats[$i]=$row;
  79.  
  80.  return $user_stats;
  81. }
  82.  
  83. function alliance_stats($col)
  84. {
  85.  global $db_id;
  86.  
  87.  $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";
  88.  $result=mysql_query($query, $db_id); $alliance_stats=array();
  89.  for ($i=0; $row=mysql_fetch_row($result); $i++) $alliance_stats[$i]=$row;
  90.  
  91.  return $alliance_stats;
  92. }
  93.  
  94. function is_user($name, $email, $ip)
  95. {
  96.  global $db_id;
  97.  
  98.  $query="select count(*) from users where name='".$name."' or email='".$email."' or ip='".$ip."'";
  99.  $result=mysql_query($query, $db_id);
  100.  
  101.  $row=mysql_fetch_row($result);
  102.  return $row[0];
  103. }
  104.  
  105. function login($name, $pass)
  106. {
  107.  global $db_id;
  108.  
  109.  $query="select * from users where name='".$name."' and pass='".$pass."' and level>0";
  110.  $result=mysql_query($query, $db_id);
  111.  
  112.  $row=mysql_fetch_row($result);
  113.  return $row;
  114. }
  115.  
  116. function sitted($account, $sitter)
  117. {
  118.  global $db_id;
  119.  
  120.  $query="select * from users where name='".$account."' and sitter='".$sitter."' and level>0";
  121.  $result=mysql_query($query, $db_id);
  122.  
  123.  $row=mysql_fetch_row($result);
  124.  return $row;
  125. }
  126.  
  127. function user($id)
  128. {
  129.  global $db_id;
  130.  
  131.  $query="select * from users where id=".preg_replace("/[^0-9]/","", $id);
  132.  $result=mysql_query($query, $db_id);
  133.  if ($result)
  134.  {
  135.   $row=mysql_fetch_row($result);
  136.   $row[1]=stripslashes($row[1]); $row[9]=stripslashes($row[9]);
  137.   return $row;
  138.  } else return 0;
  139. }
  140.  
  141. function users()
  142. {
  143.  global $db_id;
  144.  
  145.  $query="select * from users";
  146.  $result=mysql_query($query, $db_id); $users=array();
  147.  for ($i=0; $row=mysql_fetch_row($result); $i++)
  148.  {
  149.   $users[$i]=$row;
  150.   $users[$i][1]=stripslashes($users[$i][9]); $users[$i][9]=stripslashes($users[$i][9]);
  151.  }
  152.  return $users;
  153. }
  154.  
  155. function user_($name)
  156. {
  157.  global $db_id;
  158.  
  159.  $query="select * from users where name='".$name."'";
  160.  $result=mysql_query($query, $db_id);
  161.  
  162.  if ($result)
  163.  {
  164.   $row=mysql_fetch_row($result);
  165.   $row[1]=stripslashes($row[1]); $row[9]=stripslashes($row[9]);
  166.   return $row;
  167.  } else return 0;
  168. }
  169.  
  170. function config()
  171. {
  172.  global $db_id;
  173.  
  174.  $config=array();
  175.  $query="select * from config order by ord asc";
  176.  $result=mysql_query($query, $db_id);
  177.  for ($i=0; $row=mysql_fetch_row($result); $i++) $config[$i]=$row;
  178.  return $config;
  179. }
  180.  
  181. function config_($var, $val)
  182. {
  183.  global $db_id;
  184.  
  185.  $query="update config set value='".$val."' where name='".$var."'";
  186.  $result=mysql_query($query, $db_id);
  187.  if ($result) return 1;
  188.  else return 0;
  189. }
  190.  
  191. function g_points($names, $q)
  192. {
  193.  global $db_id;
  194.  
  195.  $query="update users set points=points+".$q." where name in (".$names.")";
  196.  $result=mysql_query($query, $db_id);
  197.  if ($result) return 1;
  198.  else return 0;
  199. }
  200.  
  201. function alliance_all($id)
  202. {
  203.  global $db_id;
  204.  
  205.  $query="select * from alliances where id=".$id;
  206.  $result=mysql_query($query, $db_id); $alliance=array();
  207.  $alliance[0]=mysql_fetch_row($result);
  208.  if (!$alliance[0][0]) { return 0;}
  209.  $query="select * from users where alliance=".$alliance[0][0];
  210.  $result=mysql_query($query, $db_id);
  211.  for ($i=0; $alliance[1][$i]=mysql_fetch_row($result); $i++) ;
  212.  $query="select * from pacts where type=0 and (a1=".$alliance[0][0]." or a2=".$alliance[0][0].")";
  213.  $result=mysql_query($query, $db_id);
  214. for ($i=0; $alliance[2][$i]=mysql_fetch_row($result); $i++) ;
  215.  $query="select * from pacts where type=1 and (a1=".$alliance[0][0]." or a2=".$alliance[0][0].")";
  216.  $result=mysql_query($query, $db_id);
  217.  for ($i=0; $alliance[3][$i]=mysql_fetch_row($result); $i++) ;
  218.  
  219.  return $alliance;
  220. }
  221.  
  222. function alliance_($name)
  223. {
  224.  global $db_id;
  225.  
  226.  $query="select * from alliances where name='".$name."'";
  227.  $result=mysql_query($query, $db_id);
  228.  
  229.  $row=mysql_fetch_row($result);
  230.  return $row;
  231. }
  232.  
  233. function alliance($id)
  234. {
  235.  global $db_id;
  236.  
  237.  $query="select * from alliances where id='".$id."'";
  238.  $result=mysql_query($query, $db_id);
  239.  
  240.  $row=mysql_fetch_row($result);
  241.  return $row;
  242. }
  243.  
  244. function forum_pruning()
  245. {
  246.  global $db_id;
  247.  
  248.  $query="select id from forums where parent not in (select id from forums) and parent!=0";
  249.  $result=mysql_query($query, $db_id); $nr=0;
  250.  for ($i=0; $row=mysql_fetch_row($result); $i++) {forum(3, $row[$i][0], 0, 0, 0, 0); $nr++;}
  251.  return $nr;
  252. }
  253.  
  254. function forum($a, $id, $alliance, $parent, $name, $desc)
  255. {
  256.  global $db_id;
  257.  
  258.  switch($a)
  259.  {
  260.   case '0'://read
  261.    $forums=array();
  262.    $query="select * from forums where alliance=".$alliance." and parent=".$parent." order by name";
  263.    $result=mysql_query($query, $db_id);
  264.    for ($i=0; $row=mysql_fetch_row($result); $i++)
  265.    {
  266.     $forums[0][$i]=$row;
  267.     $query="select count(*) from threads where forum=".$forums[0][$i][0];
  268.     $row=mysql_fetch_row(mysql_query($query, $db_id));
  269.     $forums[0][$i][5]=$row[0];
  270.    }
  271.    $query="select parent from forums where id=".$parent;
  272.    $result=mysql_query($query, $db_id); $row=mysql_fetch_row($result);
  273.    if ($row[0]) $forums[1]=$row[0]; else $forums[1]=0;
  274.    return $forums;
  275.   break;
  276.   case '1'://add
  277.   if ($name)
  278.   {
  279.    $query="insert into forums (alliance, parent, name, description) values (".$alliance.", ".$parent.", '".$name."', '".$desc."')";
  280.    $result=mysql_query($query, $db_id);
  281.    if ($result) return 1; else return 0;
  282.   } else return 0;
  283.   break;
  284.   case '2'://edit
  285.    $query="update forums set parent=".$parent.", name='".$name."', description='".$desc."' where id=".$id;
  286.    $result=mysql_query($query, $db_id);
  287.    if ($result) return 1; else return 0;
  288.   break;
  289.   case '3'://delete
  290.    $query="delete from posts where thread in (select id from threads where forum=".$id.")";
  291.    $result=mysql_query($query, $db_id);
  292.    $query="delete from threads where forum=".$id;
  293.    $result=mysql_query($query, $db_id);
  294.    $query="delete from forums where id=".$id;
  295.    $result=mysql_query($query, $db_id);
  296.    if ($result) return 1; else return 0;
  297.   break;
  298.  }
  299. }
  300.  
  301. function thread($a, $id, $forum, $author, $name, $desc, $content)
  302. {
  303.  global $db_id;
  304.  
  305.  switch($a)
  306.  {
  307.   case '0'://read
  308.   if (!$id)
  309.   {
  310.    $threads=array();
  311.    $query="select * from threads where forum=".$forum." order by date";
  312.    $result=mysql_query($query, $db_id);
  313.    for ($i=0; $row=mysql_fetch_row($result); $i++)
  314.    {
  315.     $threads[$i]=$row;
  316.     $query="select count(*) from posts where thread=".$threads[$i][0];
  317.     $row=mysql_fetch_row(mysql_query($query, $db_id));
  318.     $threads[$i][7]=$row[0];
  319.    }
  320.    return $threads;
  321.   }
  322.   else
  323.   {
  324.    $query="select * from threads where id=".$id;
  325.    $thread=mysql_fetch_row(mysql_query($query, $db_id));
  326.    return $thread;
  327.   }
  328.   break;
  329.   case '1'://add
  330.   if ($name)
  331.   {
  332.    $query="insert into threads (forum, author, date, name, description, content) values (".$forum.", ".$author.", now(), '".$name."', '".$desc."', '".$content."')";
  333.    $result=mysql_query($query, $db_id);
  334.    if ($result) return 1; else return 0;
  335.   } else return 0;
  336.   break;
  337.   case '2'://edit
  338.    $query="update threads set forum=".$forum.", name='".$name."', description='".$desc."', content='".$content."', date=now() where id=".$id;
  339.    $result=mysql_query($query, $db_id);
  340.    if ($result) return 1; else return 0;
  341.   break;
  342.   case '3'://delete
  343.    $query="delete from posts where thread=".$id;
  344.    $result=mysql_query($query, $db_id);
  345.    $query="delete from threads where id=".$id;
  346.    $result=mysql_query($query, $db_id);
  347.    if ($result) return 1; else return 0;
  348.   break;
  349.  }
  350. }
  351.  
  352. function post($a, $id, $thread, $author, $desc, $content)
  353. {
  354.  global $db_id;
  355.  
  356.  switch($a)
  357.  {
  358.   case '0'://read
  359.   if (!$id)
  360.   {
  361.    $posts=array();
  362.    $query="select * from posts where thread=".$thread." order by date";
  363.    $result=mysql_query($query, $db_id);
  364.    for ($i=0; $row=mysql_fetch_row($result); $i++) $posts[$i]=$row;
  365.    return $posts;
  366.   }
  367.   else
  368.   {
  369.    $query="select * from posts where id=".$id;
  370.    $post=mysql_fetch_row(mysql_query($query, $db_id));
  371.    return $post;
  372.   }
  373.   break;
  374.   case '1'://add
  375.   if ($content)
  376.   {
  377.    $query="insert into posts (thread, author, date, description, content) values (".$thread.", ".$author.", now(), '".$desc."', '".$content."')";
  378.    $result=mysql_query($query, $db_id);
  379.    if ($result) return 1; else return 0;
  380.   } else return 0;
  381.   break;
  382.   case '2'://edit
  383.    $query="update posts set description='".$desc."', content='".$content."', date=now() where id=".$id;
  384.    $result=mysql_query($query, $db_id);
  385.    if ($result) return 1; else return 0;
  386.   break;
  387.   case '3'://delete
  388.    $query="delete from posts where id=".$id;
  389.    $result=mysql_query($query, $db_id);
  390.    if ($result) return 1; else return 0;
  391.   break;
  392.  }
  393. }
  394.  
  395. function faction($id)
  396. {
  397.  global $db_id;
  398.  
  399.  $query="select * from factions where id=".$id;
  400.  $result=mysql_query($query, $db_id);
  401.  
  402.  $row=mysql_fetch_row($result);
  403.  return $row;
  404. }
  405.  
  406. function factions()
  407. {
  408.  global $db_id;
  409.  
  410.  $factions=array();
  411.  $query="select * from factions";
  412.  $result=mysql_query($query, $db_id);
  413.  
  414.  for ($i=0; $row=mysql_fetch_row($result); $i++) $factions[$i]=$row;
  415.  return $factions;
  416. }
  417.  
  418. function town($id)
  419. {
  420.  global $db_id;
  421.  
  422.  $query="select * from towns where id=".$id;
  423.  $result=mysql_query($query, $db_id);
  424.  if ($result)
  425.  {
  426.   $row=mysql_fetch_row($result);
  427.   $row[2]=stripslashes($row[2]); $row[14]=stripslashes($row[14]);
  428.   return $row;
  429.  } else return 0;
  430. }
  431.  
  432. function town_($name)
  433. {
  434.  global $db_id;
  435.  
  436.  $query="select * from towns where name='".$name."'";
  437.  $result=mysql_query($query, $db_id);
  438.  
  439.  if ($result)
  440.  {
  441.   $row=mysql_fetch_row($result);
  442.   $row[2]=stripslashes($row[2]); $row[14]=stripslashes($row[14]);
  443.   return $row;
  444.  } else return 0;
  445. }
  446.  
  447. function town_xy($id)
  448. {
  449.  global $db_id;
  450.  
  451.  $query="select * from map where type=3 and subtype=".$id;
  452.  $result=mysql_query($query, $db_id);
  453.  $row=mysql_fetch_row($result);
  454.  return $row;
  455. }
  456.  
  457. function towns($id)
  458. {
  459.  global $db_id;
  460.  
  461.  $query="select * from towns where owner=".$id." order by isCapital desc";
  462.  $result=mysql_query($query, $db_id); $towns=array();
  463.  
  464.  for ($i=0; $row=mysql_fetch_row($result); $i++) {$towns[$i]=$row; $towns[$i][2]=stripslashes($row[2]); $towns[$i][14]=stripslashes($row[14]);}
  465.  return $towns;
  466. }
  467.  
  468. function buildings($faction)
  469. {
  470.  global $db_id, $lang;
  471.  
  472.  $query="select * from buildings where faction=".$faction;
  473.  $result=mysql_query($query, $db_id); $buildings=array();
  474.  
  475.  for ($i=0; $row=mysql_fetch_row($result); $i++)
  476.  {
  477.   $buildings[$i]=$row;
  478.   if (isset($lang['buildings']))
  479.   {
  480.    $buildings[$i][2]=$lang['buildings'][$faction-1][$i][0];
  481.    $buildings[$i][8]=$lang['buildings'][$faction-1][$i][1];
  482.   }
  483.  }
  484.  return $buildings;
  485. }
  486.  
  487. function weapons($faction)
  488. {
  489.  global $db_id, $lang;
  490.  
  491.  $query="select * from weapons where faction=".$faction;
  492.  $result=mysql_query($query, $db_id); $weapons=array();
  493.  
  494.  for ($i=0; $row=mysql_fetch_row($result); $i++)
  495.  {
  496.         $weapons[$i]=$row;
  497.         if (isset($lang['weapons']))
  498.   {
  499.    $weapons[$i][2]=$lang['weapons'][$faction-1][$i][0];
  500.    $weapons[$i][5]=$lang['weapons'][$faction-1][$i][1];
  501.   }
  502.  }
  503.  return $weapons;
  504. }
  505.  
  506. function units($faction)
  507. {
  508.  global $db_id, $lang;
  509.  
  510.  $query="select * from units where faction=".$faction;
  511.  $result=mysql_query($query, $db_id); $units=array();
  512.  
  513.  for ($i=0; $row=mysql_fetch_row($result); $i++)
  514.  {
  515.         $units[$i]=$row;
  516.         if (isset($lang['units']))
  517.   {
  518.    $units[$i][2]=$lang['units'][$faction-1][$i][0];
  519.    $units[$i][10]=$lang['units'][$faction-1][$i][1];
  520.   }
  521.  }
  522.  return $units;
  523. }
  524.  
  525. function get_land()
  526. {
  527.  global $db_id;
  528.  
  529.  $query="select x, y from map where type=1";
  530.  $result=mysql_query($query, $db_id);
  531.  
  532.  for ($i=0; $row=mysql_fetch_row($result); $i++) $land[$i]=$row;
  533.  return $land;
  534. }
  535.  
  536. function map($x, $y)
  537. {
  538.  global $db_id;
  539.  
  540.  $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";
  541.  $result=mysql_query($query, $db_id);
  542.   $data=array();
  543.  for ($i=0; $row=mysql_fetch_row($result); $i++) $data[$i]=$row;
  544.  return $data;
  545. }
  546.  
  547. function sector($x, $y)
  548. {
  549.  global $db_id;
  550.  
  551.  $query="select * from map where x=".$x." and y=".$y;
  552.  $result=mysql_query($query, $db_id);
  553.  
  554.  $row=mysql_fetch_row($result);
  555.  return $row;
  556. }
  557.  
  558. function map_img($data, $x, $y, &$i, $imgs)
  559. {
  560.  echo "src='".$imgs."map/env_";
  561. if (isset($data[$i][0]))
  562. {
  563.  if (($data[$i][0]==$x)&&($data[$i][1]==$y))
  564.  {
  565.   if ($data[$i][2]==3)
  566.   {
  567.    $town=town($data[$i][3]);
  568.    if ($town[3]<=100) echo "31";
  569.    else if (($town[3]>100)&&($town[3]<=200)) echo "32";
  570.    else if (($town[3]>200)&&($town[3]<=300)) echo "33";
  571.    else if ($town[3]>300) echo "34";
  572.   }
  573.   else if (!$data[$i][2]) echo "0".rand(1, 4);
  574.   else echo $data[$i][2].$data[$i][3];
  575.   if ($i<count($data)-1) $i++;
  576.  }
  577.  else echo "x";
  578.  echo ".gif'";
  579. }
  580. else echo "x.gif'";
  581. }
  582.  
  583. function map_lnk($data, $x, $y, &$i)
  584. {
  585. if (isset($data[$i][0]))
  586. {
  587.  if (($data[$i][0]==$x)&&($data[$i][1]==$y))
  588.  {
  589.   if ($data[$i][2]==3)
  590.   {
  591.    $town=town($data[$i][3]);
  592.    if ($town[1])
  593.    {
  594.     $usr=user($town[1]); $alliance=alliance($usr[11]);
  595.                 if (isset($_SESSION["user"][0])) $towns=towns($_SESSION["user"][0]); else $towns[0][0]=0;
  596.     echo "href=\"javascript: xmenu(".$usr[0].", ".$town[0].", ".$towns[0][0].")\" onMouseOver=\"desc('".$town[2]."', '".$usr[1]."', '".$town[3]."', '".$alliance[1]."')\" onMouseOut=\"desc('Description', '', '', '')\"";
  597.    }
  598.    else echo "href='aquire.php?id=".$town[0]."' onMouseOver=\"desc('".$town[2]."', '[abandoned]', '".$town[3]."', '')\" onMouseOut=\"desc('Description', '', '', '')\"";
  599.   }
  600.   else if (!$data[$i][2]) echo "href=\"javascript: template('map_.php', 'x=".$x."&y=".$y."')\" onMouseOver=\"desc('Water', '-', '-', '-')\" onMouseOut=\"desc('Description', '', '', '')\"";
  601.   else if ($data[$i][2]==2) echo "href=\"javascript: template('map_.php', 'x=".$x."&y=".$y."')\" onMouseOver=\"desc('Mountains', '-', '-', '-')\" onMouseOut=\"desc('Description', '', '', '')\"";
  602.   else if ($data[$i][2]==1) echo "href=\"javascript: template('map_.php', 'x=".$x."&y=".$y."')\" onMouseOver=\"desc('Land', '-', '-', '-')\" onMouseOut=\"desc('Description', '', '', '')\"";
  603.   if ($i<count($data)-1) $i++;
  604.  }
  605.  else echo "href=\"javascript: template('map_.php', 'x=".$x."&y=".$y."')\" onMouseOver=\"desc('void', '-', '-', '-')\" onMouseOut=\"desc('Description', '', '', '')\"";
  606. }
  607. else echo "href=\"javascript: template('map_.php', 'x=".$x."&y=".$y."')\" onMouseOver=\"desc('void', '-', '-', '-')\" onMouseOut=\"desc('Description', '', '', '')\"";
  608. }
  609.  
  610. function update_lastVisit($id)
  611. {
  612.  global $db_id;
  613.  
  614.  $query="select count(*) from reports where recipient=".$id." and timediff((select lastVisit from users where id=".$id."), sent)<'00:00:01'";
  615.  $result=mysql_query($query, $db_id);
  616.  $row[0]=mysql_fetch_row($result); $row[0]=$row[0][0];
  617.  $query="select count(*) from messages where recipient=".$id." and timediff((select lastVisit from users where id=".$id."), sent)<'00:00:01'";
  618.  $result=mysql_query($query, $db_id);
  619.  $row[1]=mysql_fetch_row($result); $row[1]=$row[1][0];
  620.  $query="update users set lastVisit=now(), ip='".$_SERVER["REMOTE_ADDR"]."' where id=".$id;
  621.  mysql_query($query, $db_id);
  622.  
  623.  return $row;
  624. }
  625.  
  626. function update_taxes($production, $morale, $id)
  627. {
  628.  global $db_id;
  629.  
  630.  $query="update towns set production='".$production."', morale=".$morale." where id=".$id;
  631.  mysql_query($query, $db_id);
  632. }
  633.  
  634. function update_formation($id, $gen)
  635. {
  636.  global $db_id;
  637. $town=town($id);
  638.  
  639.  $query="update towns set general='".$gen."' where id=".$id;
  640.  $result=mysql_query($query, $db_id);
  641.  
  642.  if ($result) header("Location: gen.php?town=".$id);
  643.  else msg("Failed.".mysql_error());
  644. }
  645.  
  646. function update_town($name, $desc, $id)
  647. {
  648.  global $db_id;
  649.  
  650.  $query="select count(*) from towns where name='".$name."' and id!=".$id;
  651.  $result=mysql_query($query, $db_id);
  652.  $row=mysql_fetch_row($result);
  653.  if (!$row[0])
  654.  {
  655.   $query="update towns set name='".$name."', description='".$desc."' where id=".$id;
  656.   mysql_query($query, $db_id);
  657.  } else msg("Name taken.");
  658. }
  659.  
  660. function purge($id)
  661. {
  662.  global $db_id;
  663.  
  664.  $query="update map set type=1, subtype=3 where type=3 and subtype=".$id;
  665.  mysql_query($query, $db_id);
  666.  $query="delete from a_queue where a_queue.town=".$id." or a_queue.target=".$id;
  667.  mysql_query($query, $db_id);
  668.  $query="delete from c_queue where c_queue.town=".$id;
  669.  mysql_query($query, $db_id);
  670.  $query="delete from t_queue where t_queue.seller=".$id." or t_queue.buyer=".$id;
  671.  mysql_query($query, $db_id);
  672.  $query="delete from u_queue where u_queue.town=".$id;
  673.  mysql_query($query, $db_id);
  674.  $query="delete from uup_queue where uup_queue.town=".$id;
  675.  mysql_query($query, $db_id);
  676.  $query="delete from w_queue where w_queue.town=".$id;
  677.  mysql_query($query, $db_id);
  678.  $query="delete from towns where id=".$id;
  679.  mysql_query($query, $db_id);
  680. }
  681.  
  682. function abandon($id)
  683. {
  684.  global $db_id;
  685.  
  686.  $query="update towns set owner=0 where id=".$id;
  687.  mysql_query($query, $db_id);
  688. }
  689.  
  690. function aquire($id, $owner)
  691. {
  692.  global $db_id;
  693.  
  694.  $query="update towns set owner=".$owner." where id=".$id;
  695.  mysql_query($query, $db_id);
  696. }
  697.  
  698. function update_a($name, $desc, $id)
  699. {
  700.  global $db_id;
  701.  
  702.  $query="select count(*) from alliances where name='".$name."' and id!=".$id;
  703.  $result=mysql_query($query, $db_id);
  704.  $row=mysql_fetch_row($result);
  705.  if (!$row[0])
  706.  {
  707.   $query="update alliances set name='".$name."', description='".$desc."' where id=".$id;
  708.   mysql_query($query, $db_id);
  709.  } else msg("Name taken.");
  710. }
  711.  
  712. function update_rank($id, $rank)
  713. {
  714.  global $db_id;
  715.  
  716.  $query="update users set rank='".$rank."' where id=".$id;
  717.  $result=mysql_query($query, $db_id);
  718.  if ($result) return 1;
  719.  else return 0;
  720. }
  721.  
  722. function check_d($id)
  723. {
  724.  global $db_id;
  725.  
  726.  $query="select timediff(dueTime, now()) from d_queue where user=".$id;
  727.  $result=mysql_query($query, $db_id);
  728.  $row=mysql_fetch_row($result);
  729.  if ($row[0][0])
  730.   if ($row[0][0]=="-")
  731.   {
  732.    $query="update map set type=1, subtype=6 where subtype in (select id from towns where owner=".$id.")";
  733.    mysql_query($query, $db_id);
  734.    $query="select id from alliances where founder=".$id;
  735.    $result=mysql_query($query, $db_id); $row=mysql_fetch_row($result);
  736.    if ($row[0])//if the user is an alliance founder
  737.    {
  738.     $query="delete from alliances where id=".$row[0];
  739.     mysql_query($query, $db_id);
  740.     $query="delete from pacts where (a1=".$row[0]." or a2=".$row[0].")";
  741.     mysql_query($query, $db_id);
  742.    }
  743.    $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."))";
  744.    mysql_query($query, $db_id);
  745.    $query="delete from c_queue where c_queue.town in (select id from towns where owner=".$id.")";
  746.    mysql_query($query, $db_id);
  747.    $query="delete from d_queue where user=".$id;
  748.    mysql_query($query, $db_id);
  749.    $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."))";
  750.    mysql_query($query, $db_id);
  751.    $query="delete from u_queue where u_queue.town in (select id from towns where owner=".$id.")";
  752.    mysql_query($query, $db_id);
  753.    $query="delete from uup_queue where uup_queue.town in (select id from towns where owner=".$id.")";
  754.    mysql_query($query, $db_id);
  755.    $query="delete from w_queue where w_queue.town in (select id from towns where owner=".$id.")";
  756.    mysql_query($query, $db_id);
  757.    $query="delete from messages where recipient=".$id;
  758.    mysql_query($query, $db_id);
  759.    $query="delete from reports where recipient=".$id;
  760.    mysql_query($query, $db_id);
  761.    $query="delete from towns where owner=".$id;
  762.    mysql_query($query, $db_id);
  763.    $query="delete from users where id=".$id;
  764.    mysql_query($query, $db_id);
  765.    return 0;
  766.   }
  767.   return 1;
  768. }
  769.  
  770. function del_u($id)
  771. {
  772.  global $db_id;
  773.  
  774.    $query="update map set type=1, subtype=6 where subtype in (select id from towns where owner=".$id.")";
  775.    mysql_query($query, $db_id);
  776.    $query="select id from alliances where founder=".$id;
  777.    $result=mysql_query($query, $db_id); $row=mysql_fetch_row($result);
  778.    if ($row[0])//if the user is an alliance founder
  779.    {
  780.     $query="delete from alliances where id=".$row[0];
  781.     mysql_query($query, $db_id);
  782.     $query="delete from pacts where (a1=".$row[0]." or a2=".$row[0].")";
  783.     mysql_query($query, $db_id);
  784.    }
  785.    $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."))";
  786.    mysql_query($query, $db_id);
  787.    $query="delete from c_queue where c_queue.town in (select id from towns where owner=".$id.")";
  788.    mysql_query($query, $db_id);
  789.    $query="delete from d_queue where user=".$id;
  790.    mysql_query($query, $db_id);
  791.    $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."))";
  792.    mysql_query($query, $db_id);
  793.    $query="delete from u_queue where u_queue.town in (select id from towns where owner=".$id.")";
  794.    mysql_query($query, $db_id);
  795.    $query="delete from uup_queue where uup_queue.town in (select id from towns where owner=".$id.")";
  796.    mysql_query($query, $db_id);
  797.    $query="delete from w_queue where w_queue.town in (select id from towns where owner=".$id.")";
  798.    mysql_query($query, $db_id);
  799.    $query="delete from messages where recipient=".$id;
  800.    mysql_query($query, $db_id);
  801.    $query="delete from reports where recipient=".$id;
  802.    mysql_query($query, $db_id);
  803.    $query="delete from towns where owner=".$id;
  804.    mysql_query($query, $db_id);
  805.    $query="delete from users where id=".$id;
  806.    mysql_query($query, $db_id);
  807. }
  808.  
  809. function check_r($id)
  810. {
  811.  global $db_id;
  812.  
  813.  $query="select production, resources, limits, timediff(now(), lastCheck), morale, upkeep, population from towns where id=".$id;
  814.  $result=mysql_query($query, $db_id);
  815.  $row=mysql_fetch_row($result);
  816.  $time=explode(":", $row[3]); $time=$time[0]+$time[1]/60+$time[2]/3600;
  817.  $res=explode("-", $row[1]); $prod=explode("-", $row[0]); $lim=explode("-", $row[2]); $m=$row[4]/100;
  818.  if ($prod[0]-$row[5]-$row[6]<5) $prod[0]=$row[5]+$row[6]+5;//noob protection against negative crop production values
  819.  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];
  820.  if ($res[1]+$prod[1]*$time*$m<=$lim[1]) $res[1]+=$prod[1]*$time*$m; else $res[1]=$lim[1];
  821.  if ($res[2]+$prod[2]*$time*$m<=$lim[1]) $res[2]+=$prod[2]*$time*$m; else $res[2]=$lim[1];
  822.  if ($res[3]+$prod[3]*$time*$m<=$lim[1]) $res[3]+=$prod[3]*$time*$m; else $res[3]=$lim[1];
  823.  if ($res[4]+$prod[4]*$time<=$lim[2]) $res[4]+=$prod[4]*$time; else $res[4]=$lim[2];
  824.  $res=$res[0]."-".$res[1]."-".$res[2]."-".$res[3]."-".$res[4];
  825.  
  826.  $query="update towns set resources='".$res."', lastCheck=now() where id=".$id;
  827.  $result=mysql_query($query, $db_id);
  828. }
  829.  
  830. function check_c($id, $faction)
  831. {
  832.  global $db_id, $tdif;
  833. $town=town($id);
  834. $buildings=buildings($faction);
  835. $data=explode("-", $town[8]); $res=explode("-", $town[10]); $lim=explode("-", $town[11]); $prod=explode("-", $town[9]); $land=explode("/", $town[13]);
  836. $land[0]=explode("-", $land[0]); $land[1]=explode("-", $land[1]); $land[2]=explode("-", $land[2]); $land[3]=explode("-", $land[3]);
  837.  
  838.  $query="select timediff(dueTime".$tdif.", now()), b, subB from c_queue where town=".$id." order by dueTime asc";
  839.  $result=mysql_query($query, $db_id);
  840.  for (; $row=mysql_fetch_row($result); )
  841.  if ($row[0][0]=="-")
  842.  {
  843.   if ($row[2]>-1)
  844.   {
  845.    $land[$row[1]][$row[2]]++; $ldata="";
  846.    for ($i=0; $i<count($land); $i++) $ldata[$i]=implode("-", $land[$i]);
  847.    $ldata=implode("/", $ldata);
  848.    $out=explode("-", $buildings[$row[1]][5]); $prod[$row[1]]=0;
  849.    for ($i=0; $i<count($land[$row[1]]); $i++)
  850.    if ($land[$row[1]][$i]) $prod[$row[1]]+=$out[$land[$row[1]][$i]-1];
  851.    $pdata=implode("-", $prod);
  852.    $query="update towns set land='".$ldata."', production='".$pdata."' where id=".$id;
  853.    mysql_query($query, $db_id);
  854.   }
  855.   else switch($row[1])
  856.   {
  857.    case 0:
  858.    {
  859.     $data[$row[1]]=1; $bdata=implode("-", $data);
  860.     $query="update towns set buildings='".$bdata."' where id=".$id;
  861.     mysql_query($query, $db_id);
  862.    } break;
  863.    case 1:
  864.    {
  865.     $data[$row[1]]=1; $bdata=implode("-", $data);
  866.     $query="update towns set buildings='".$bdata."' where id=".$id;
  867.     mysql_query($query, $db_id);
  868.    } break;
  869.    case 2:
  870.    {
  871.     $data[$row[1]]=1; $bdata=implode("-", $data);
  872.     $query="update towns set buildings='".$bdata."' where id=".$id;
  873.     mysql_query($query, $db_id);
  874.    } break;
  875.    case 3:
  876.    {
  877.     $data[$row[1]]=1; $bdata=implode("-", $data);
  878.     $query="update towns set buildings='".$bdata."' where id=".$id;
  879.     mysql_query($query, $db_id);
  880.    } break;
  881.    case 4:
  882.    {
  883.     $data[4]++; $lim[0]=explode("-", $buildings[4][5]); $lim[0]=$lim[0][$data[4]-1]; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  884.     $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  885.     mysql_query($query, $db_id);
  886.    } break;
  887.    case 5:
  888.    {
  889.     $data[5]++; $lim[1]=explode("-", $buildings[5][5]); $lim[1]=$lim[1][$data[5]-1]; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  890.     $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  891.     mysql_query($query, $db_id);
  892.    } break;
  893.    case 6:
  894.    {
  895.     $data[6]++; $lim[5]=explode("-", $buildings[6][5]); $lim[5]=$lim[5][$data[6]-1]; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  896.     $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  897.     mysql_query($query, $db_id);
  898.    } break;
  899.    case 7:
  900.    {
  901.     $data[7]++; $lim[4]=explode("-", $buildings[7][5]); $lim[4]=$lim[4][$data[7]-1]; $lim[2]+=800; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  902.     $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  903.     mysql_query($query, $db_id);
  904.    } break;
  905.    case 8:
  906.    {
  907.     $data[8]++; $lim[3]=explode("-", $buildings[8][5]); $lim[3]=$lim[3][$data[8]-1]; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  908.     $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  909.     mysql_query($query, $db_id);
  910.    } break;
  911.    case 9:
  912.    {
  913.     $data[9]++; $bdata=implode("-", $data);
  914.     $query="update towns set buildings='".$bdata."' where id=".$id;
  915.     mysql_query($query, $db_id);
  916.    } break;
  917.    case 10:
  918.    {
  919.     $data[10]++; $bdata=implode("-", $data);
  920.     $query="update towns set buildings='".$bdata."' where id=".$id;
  921.     mysql_query($query, $db_id);
  922.    } break;
  923.    case 11:
  924.    {
  925.     $mdata=explode("-", $buildings[11][5]);
  926.     $data[11]++; $bdata=implode("-", $data);
  927.     $query="update towns set buildings='".$bdata."', morale=".(100-$prod[4]+$mdata[$data[11]-1])." where id=".$id;
  928.     mysql_query($query, $db_id);
  929.    } break;
  930.    case 12:
  931.    {
  932.     $data[12]++; $bdata=implode("-", $data);
  933.     $query="update towns set buildings='".$bdata."' where id=".$id;
  934.     mysql_query($query, $db_id);
  935.    } break;
  936.    case 13:
  937.    {
  938.     $data[13]++; $lim[6]=explode("-", $buildings[13][5]); $lim[6]=$lim[6][$data[13]-1]; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  939.     $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  940.     mysql_query($query, $db_id);
  941.    } break;
  942.    case 14:
  943.    {
  944.     $data[14]++; $lim[7]=explode("-", $buildings[14][5]); $lim[7]=$lim[7][$data[14]-1]; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  945.     $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  946.     mysql_query($query, $db_id);
  947.    } break;
  948.    case 15:
  949.    {
  950.     $data[15]++; $lim[8]=explode("-", $buildings[15][5]); $lim[8]=$lim[8][$data[15]-1]; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  951.     $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  952.     mysql_query($query, $db_id);
  953.    } break;
  954.    case 16:
  955.    {
  956.     $data[16]=1; $bdata=implode("-", $data);
  957.     $query="update towns set buildings='".$bdata."' where id=".$id;
  958.     mysql_query($query, $db_id);
  959.    } break;
  960.    case 17:
  961.    {
  962.     $data[17]++; $bdata=implode("-", $data);
  963.     $query="update towns set buildings='".$bdata."' where id=".$id;
  964.     mysql_query($query, $db_id);
  965.    } break;
  966.    case 18:
  967.    {
  968.     $data[18]++; $lim[9]=explode("-", $buildings[18][5]); $lim[9]=$lim[9][$data[18]-1]; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  969.     $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  970.     mysql_query($query, $db_id);
  971.    } break;
  972.    case 19:
  973.    {
  974.     $data[19]++; $lim[10]=explode("-", $buildings[19][5]); $lim[10]=$lim[10][$data[19]-1]; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  975.     $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  976.     mysql_query($query, $db_id);
  977.    } break;
  978.    case 20:
  979.    {
  980.     $data[20]++; $lim[11]=explode("-", $buildings[20][5]); $lim[11]=$lim[11][$data[20]-1]; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  981.     $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  982.     mysql_query($query, $db_id);
  983.    } break;
  984.    case 21:
  985.    {
  986.     $data[21]++; $lim[12]=explode("-", $buildings[21][5]); $lim[12]=$lim[12][$data[21]-1]; $bdata=implode("-", $data); $ldata=implode("-", $lim);
  987.     $query="update towns set buildings='".$bdata."', limits='".$ldata."' where id=".$id;
  988.     mysql_query($query, $db_id);
  989.    } break;
  990.    default: ;
  991.   }
  992.   $query="delete from c_queue where c_queue.town=".$id." and c_queue.b=".$row[1]." and c_queue.subB=".$row[2];
  993.   mysql_query($query, $db_id);
  994.  }
  995. }
  996.  
  997. function check_w($id)
  998. {
  999.  global $db_id, $tdif;
  1000. $town=town($id);
  1001. $data=explode("-", $town[6]);
  1002.  
  1003.  $query="select timediff(dueTime".$tdif.", now()), type, quantity from w_queue where town=".$id." order by dueTime asc";
  1004.  $result=mysql_query($query, $db_id);
  1005.  for (; $row=mysql_fetch_row($result); )
  1006.   if ($row[0][0]=="-")
  1007.   {
  1008.    $data[$row[1]]+=$row[2]; $d=implode("-", $data);
  1009.    $query="update towns set weapons='".$d."' where id=".$id;
  1010.    mysql_query($query, $db_id);
  1011.    $query="delete from w_queue where town=".$id." and type=".$row[1];
  1012.    mysql_query($query, $db_id);
  1013.   }
  1014. }
  1015.  
  1016. function html_weaps($weaps)
  1017. {
  1018.  global $imgs, $fimgs;
  1019.  $html_data="<table class='q_table' style='border-collapse: collapse' width='600' border='1'><tr>";
  1020.  for ($i=0; $i<count($weaps); $i++) $html_data.="<td><img src='".$imgs.$fimgs."1".$i.".gif'></td>";
  1021.  $html_data.="</tr><tr>";
  1022.  for ($i=0; $i<count($weaps); $i++) $html_data.="<td>".$weaps[$i]."</td>";
  1023.     $html_data.="</tr></table>";
  1024.  
  1025.  return $html_data;
  1026. }
  1027.  
  1028. function html_res($res)
  1029. {
  1030.  global $imgs, $fimgs;
  1031.  $html_data="<table class='q_table' style='border-collapse: collapse' width='600' border='1'><tr>";
  1032.  for ($i=0; $i<count($res); $i++) $html_data.="<td><img height='25' src='".$imgs.$fimgs."0".$i.".gif'></td>";
  1033.  $html_data.="</tr><tr>";
  1034.  for ($i=0; $i<count($res); $i++) $html_data.="<td>".round($res[$i])."</td>";
  1035.     $html_data.="</tr></table>";
  1036.  
  1037.  return $html_data;
  1038. }
  1039.  
  1040. function html_army($army, $f)
  1041. {
  1042.  global $imgs, $fimgs;
  1043.  $units=units($f);
  1044.  $html_data="<table class='q_table' style='border-collapse: collapse' width='600' border='1'><tr>";
  1045.  for ($i=0; $i<count($army); $i++) $html_data.="<td><img height='25' src='".$imgs.$fimgs."2".$i.".gif' title='".$units[$i][2]."'></td>";
  1046.  $html_data.="</tr><tr>";
  1047.  for ($i=0; $i<count($army); $i++) $html_data.="<td>".$army[$i]."</td>";
  1048.     $html_data.="</tr></table>";
  1049.  
  1050.  return $html_data;
  1051. }
  1052.  
  1053. function check_a($id)
  1054. {
  1055.  global $db_id, $tdif;
  1056.  
  1057.  $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";
  1058.  $result=mysql_query($query, $db_id);
  1059.  for (; $line=mysql_fetch_row($result); )
  1060.   if ($line[0][0]=="-")
  1061.   {
  1062.    $town=town($line[1]); $lim=explode("-", $town[11]);
  1063.    $to_owner=user($town[1]);
  1064.    $target=town($line[2]);
  1065.    $ta_owner=user($target[1]);
  1066.             check_r($target[0]);
  1067.    if ($target[0])//if the target town exists
  1068.     if ($line[3])//if it is not a reinforcement
  1069.     {
  1070.      $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]);
  1071.      $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]);
  1072.      $data[2]=$line[3]; $data[3]=explode("-", $line[10]); $data[4]=explode("-", $line[11]); $data[5]=$line[12];
  1073.      if (!$line[4])//if phase 0
  1074.      {
  1075.       $data=battle($data); $siege_target=-1; $buildings=buildings($ta_owner[10]);
  1076.       $line[13]=explode("-", $line[13]);
  1077.       $date=strtotime("+".$line[13][0]." hours ".$line[13][1]." minutes", strtotime($line[14]));
  1078.       $date=strftime("%Y-%m-%d %H:%M:%S", $date);
  1079.       //population update due to possible siege damage
  1080.        if ($target[8]!=implode("-", $data[0][3]))
  1081.        {
  1082.         $target[8]=explode("-", $target[8]);
  1083.         for ($i=0; $i<22; $i++) if ($target[8][$i]>$data[0][3][$i])
  1084.         {
  1085.                                     $siege_target=$i;
  1086.            $buildings[$i][7]=explode("-", $buildings[$i][7]);
  1087.             $target[3]-=$buildings[$i][7][$target[8][$i]];
  1088.         }
  1089.        }
  1090.  
  1091.       if ($data[1][1][11]<100)
  1092.       {
  1093.        $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];
  1094.        mysql_query($query, $db_id);
  1095.       }
  1096.       else//if there are 100 or more colonists in attacking army
  1097.       {
  1098.                             $data[1][1][11]-=100;
  1099.                             $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];
  1100.                             mysql_query($query, $db_id);
  1101.                             send_report($to_owner[0], "captured town", "You have captured the town of ".$target[2].".");
  1102.                             send_report($ta_owner[0], "town captured", "The town ".$target[2]." has been captured by ".$town[2].".");
  1103.       }
  1104.       if (!$data[5]) $data[5]=array("[no info]");
  1105.       $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];
  1106.       mysql_query($query, $db_id);
  1107.                         $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]);
  1108.                         if ($siege_target>-1) $siege_target="</br>Demolished building: ".$buildings[$siege_target][2]; else $siege_target="";
  1109.       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);
  1110.                         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);
  1111.      }
  1112.      else if ($town[0])//if phase 1
  1113.      {
  1114.       $army=explode("-", $town[7]); for ($i=0; $i<13; $i++) $army[$i]+=$data[1][1][$i];
  1115.       $ogen=explode("-", $town[15]); if ($data[1][2][0]) {$data[1][2][3]=$ogen[3]; $ogen=$data[1][2];} $ogen=implode("-", $ogen);
  1116.       $res=explode("-", $town[10]); for ($i=0; $i<5; $i++) $res[$i]+=$data[3][$i]; $res=implode("-", $res);
  1117.       $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);
  1118.       $query="update towns set army='".implode("-", $army)."', upkeep=".array_sum($army).", general='".$ogen."', resources='".$res."', weapons='".$weaps."' where id=".$town[0];
  1119.       mysql_query($query, $db_id);
  1120.       $query="delete from a_queue where town=".$town[0]." and id=".$line[15];
  1121.       mysql_query($query, $db_id);
  1122.      }
  1123.     }
  1124.     else//reinforce target
  1125.     {
  1126.      $army=explode("-", $target[7]); $qarmy=explode("-", $line[5]); for ($i=0; $i<count($army); $i++) $army[$i]+=$qarmy[$i];
  1127.      $query="update towns set army='".implode("-", $army)."', upkeep=".array_sum($army)." where id=".$target[0];
  1128.      mysql_query($query, $db_id);
  1129.      $query="delete from a_queue where town=".$town[0]." and id=".$line[15];
  1130.      mysql_query($query, $db_id);
  1131.                     $line[5]=html_army($qarmy, $to_owner[10]);
  1132.      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>");
  1133.      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>");
  1134.     }
  1135.    else if ($town[0])//if source town exists
  1136.    {
  1137.     $army=explode("-", $town[7]); for ($i=0; $i<13; $i++) $army[$i]+=$data[1][1][$i];
  1138.     $ogen=explode("-", $town[15]); if ($data[1][2][0]) {$data[1][2][3]=$ogen[3]; $ogen=$data[1][2];} $ogen=implode("-", $ogen);
  1139.     $res=explode("-", $town[10]); for ($i=0; $i<5; $i++) $res[$i]+=$data[3][$i]; $res=implode("-", $res);
  1140.     $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);
  1141.     $query="update towns set army='".implode("-", $army)."', upkeep=".array_sum($army).", general='".$ogen."', resources='".$res."', weapons='".$weaps."' where id=".$town[0];
  1142.     mysql_query($query, $db_id);
  1143.     $query="delete from a_queue where town=".$town[0]." and id=".$line[15];
  1144.     mysql_query($query, $db_id);
  1145.    }
  1146.    else//if there is no target town and no source town
  1147.    {
  1148.     $query="delete from a_queue where town=".$town[0]." and id=".$line[15];
  1149.     mysql_query($query, $db_id);
  1150.    }
  1151.   }
  1152. }
  1153.  
  1154. function check_u($id)
  1155. {
  1156.  global $db_id, $tdif;
  1157. $town=town($id);
  1158. $data=explode("-", $town[7]);
  1159.  
  1160.  $query="select timediff(dueTime".$tdif.", now()), type, quantity from u_queue where town=".$id." order by dueTime asc";
  1161.  $result=mysql_query($query, $db_id);
  1162.  for (; $row=mysql_fetch_row($result); )
  1163.   if ($row[0][0]=="-")
  1164.   {
  1165.    $data[$row[1]]+=$row[2]; $d=implode("-", $data);
  1166.    $query="update towns set army='".$d."' where id=".$id;
  1167.    mysql_query($query, $db_id);
  1168.    $query="delete from u_queue where town=".$id." and type=".$row[1];
  1169.    mysql_query($query, $db_id);
  1170.   }
  1171. }
  1172.  
  1173. function check_uup($id)
  1174. {
  1175.  global $db_id, $tdif;
  1176. $town=town($id);
  1177. $data[17]=explode("-", $town[17]); $data[18]=explode("-", $town[18]); $data[19]=explode("-", $town[19]);
  1178.  
  1179.  $query="select timediff(dueTime".$tdif.", now()), unit, tree from uup_queue where town=".$id." order by dueTime asc";
  1180.  $result=mysql_query($query, $db_id);
  1181.  for (; $row=mysql_fetch_row($result); )
  1182.   if ($row[0][0]=="-")
  1183.   {
  1184.    $data[$row[2]][$row[1]]++; $d=implode("-", $data[$row[2]]);
  1185.    if ($row[2]==17) $col="uUpgrades"; else if ($row[2]==18) $col="wUpgrades"; else if ($row[2]==19) $col="aUpgrades";
  1186.    $query="update towns set ".$col."='".$d."' where id=".$id;
  1187.    mysql_query($query, $db_id);
  1188.    $query="delete from uup_queue where town=".$id." and unit=".$row[1]." and tree=".$row[2];
  1189.    mysql_query($query, $db_id);
  1190.   }
  1191. }
  1192.  
  1193. function check_t($id)
  1194. {
  1195.  global $db_id, $tdif;
  1196.  
  1197.  $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";
  1198.  $result=mysql_query($query, $db_id);
  1199.  
  1200.  for (; $offer=mysql_fetch_row($result); )
  1201.   if ($offer[0][0]=="-")
  1202.   {
  1203.    $seller=town($offer[1]);
  1204.    $buyer=town($offer[2]);
  1205.    if ($offer[6]) {$scol="weapons"; $sdata=explode("-", $seller[6]);} else {$scol="resources"; $sdata=explode("-", $seller[10]);}
  1206.    if ($offer[3]) {$bcol="weapons"; $bdata=explode("-", $buyer[6]);} else {$bcol="resources"; $bdata=explode("-", $buyer[10]);}
  1207.    $sdata[$offer[7]]+=$offer[8]; $bdata[$offer[4]]+=$offer[5];
  1208.    $sdata=implode("-", $sdata); $bdata=implode("-", $bdata);
  1209.   $query="update towns set ".$scol."='".$sdata."' where id=".$seller[0];
  1210.    mysql_query($query, $db_id);
  1211.    $query="update towns set ".$bcol."='".$bdata."' where id=".$buyer[0];
  1212.    mysql_query($query, $db_id);
  1213.    $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];
  1214.    mysql_query($query, $db_id);
  1215.   }
  1216. }
  1217.  
  1218. function check_d_all()
  1219. {
  1220.  global $db_id;
  1221.  
  1222.  $query="select timediff(dueTime, now()), user from d_queue";
  1223.  $result=mysql_query($query, $db_id); $d_list=array(); $d=0;
  1224.  for ($i=0; $row=mysql_fetch_row($result); $i++)
  1225.  {
  1226.   $d_list[$i]=$row;
  1227.   if ($row[0][0]=="-") if (!check_d($row[1])) $d++;
  1228.  }
  1229.  msg($d." users deleted. ".(count($d_list)-$d)." accounts not due.");
  1230. }
  1231.  
  1232. function get_d($id)
  1233. {
  1234.  global $db_id;
  1235.  
  1236.  $query="select timediff(dueTime, now()) from d_queue where user=".$id;
  1237.  $result=mysql_query($query, $db_id);
  1238.  $row=mysql_fetch_row($result);
  1239.  return $row[0];
  1240. }
  1241.  
  1242. function get_con($id)
  1243. {
  1244.  global $db_id;
  1245.  
  1246.  $query="select b from c_queue where town=".$id;
  1247.  $result=mysql_query($query, $db_id);
  1248.  $b=array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
  1249.  for ($i=0; $row=mysql_fetch_row($result); $i++) $b[$row[0]]=1;
  1250.  return $b;
  1251. }
  1252.  
  1253. function get_wea($id)
  1254. {
  1255.  global $db_id;
  1256.  
  1257.  $query="select type from w_queue where town=".$id;
  1258.  $result=mysql_query($query, $db_id);
  1259.  $w=array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
  1260.  for ($i=0; $row=mysql_fetch_row($result); $i++) $w[$row[0]]=1;
  1261.  return $w;
  1262. }
  1263.  
  1264. function get_uup($id)
  1265. {
  1266.  global $db_id;
  1267.  
  1268.  $query="select unit from uup_queue where town=".$id;
  1269.  $result=mysql_query($query, $db_id);
  1270.  $u=array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
  1271.  for ($i=0; $row=mysql_fetch_row($result); $i++) $u[$row[0]]=1;
  1272.  return $u;
  1273. }
  1274.  
  1275. function get_uns($id)
  1276. {
  1277.  global $db_id;
  1278.  
  1279.  $query="select type from u_queue where town=".$id;
  1280.  $result=mysql_query($query, $db_id);
  1281.  $u=array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
  1282.  for ($i=0; $row=mysql_fetch_row($result); $i++) $u[$row[0]]=1;
  1283.  return $u;
  1284. }
  1285.  
  1286. function get_tr($id)
  1287. {
  1288.  global $db_id;
  1289.  
  1290.  $merchants=0;
  1291.  $query="select sType, sQ from t_queue where seller=".$id;
  1292.  $result=mysql_query($query, $db_id);
  1293.  for (; $row=mysql_fetch_row($result); )
  1294.   if ($row[0]) $merchants+=ceil($row[1]/50); else $merchants+=ceil($row[1]/500);
  1295.  $query="select bType, bQ from t_queue where buyer=".$id;
  1296.  $result=mysql_query($query, $db_id);
  1297.  for (; $row=mysql_fetch_row($result); )
  1298.   if ($row[0]) $merchants+=ceil($row[1]/50); else $merchants+=ceil($row[1]/500);
  1299.  
  1300.  return $merchants;
  1301. }
  1302.  
  1303. function get_t($id)
  1304. {
  1305.  global $db_id, $tdif;
  1306.  
  1307.  $tq=array();
  1308.  $query="select sType, sSubType, sQ, bType, bSubType, bQ from t_queue where seller=".$id." and type=0";
  1309.  $result=mysql_query($query, $db_id);
  1310.  for ($i=0; $tq[0][$i]=mysql_fetch_row($result); $i++) ;
  1311.  $query="select bType, bSubType, bQ, buyer, timediff(dueTime".$tdif.", now()), sType, sSubType, sQ from t_queue where seller=".$id." and type=1";
  1312.  $result=mysql_query($query, $db_id);
  1313.  for ($i=0; $tq[1][$i]=mysql_fetch_row($result); $i++) ;
  1314.  $query="select sType, sSubType, sQ, seller, timediff(dueTime".$tdif.", now()), bType, bSubType, bQ from t_queue where buyer=".$id." and type=1";
  1315.  $result=mysql_query($query, $db_id);
  1316.  for ($i=0; $tq[2][$i]=mysql_fetch_row($result); $i++) ;
  1317.  
  1318.  return $tq;
  1319. }
  1320.  
  1321. function get_w($id)
  1322. {
  1323.  global $db_id, $tdif;
  1324.  
  1325.  $query="select timediff(dueTime".$tdif.", now()), type, quantity from w_queue where town=".$id." order by dueTime asc";
  1326.  $result=mysql_query($query, $db_id); $wq=array();
  1327.  for ($i=0; $row=mysql_fetch_row($result); $i++) $wq[$i]=$row;
  1328.  return $wq;
  1329. }
  1330.  
  1331. function get_u($id)
  1332. {
  1333.  global $db_id, $tdif;
  1334.  
  1335.  $query="select timediff(dueTime".$tdif.", now()), type, quantity from u_queue where town=".$id." order by dueTime asc";
  1336.  $result=mysql_query($query, $db_id); $uq=array();
  1337.  for ($i=0; $row=mysql_fetch_row($result); $i++) $uq[$i]=$row;
  1338.  return $uq;
  1339. }
  1340.  
  1341. function get_a($id)
  1342. {
  1343.  global $db_id, $tdif;
  1344.  
  1345.  $query="select timediff(dueTime".$tdif.", now()), target, type, army, general, id from a_queue where town=".$id." and phase=0 order by dueTime asc";
  1346.  $result=mysql_query($query, $db_id); $aq=array();
  1347.  for ($i=0; $row=mysql_fetch_row($result); $i++) $aq[$i]=$row;
  1348.  return $aq;
  1349. }
  1350.  
  1351. function get_ia($id)
  1352. {
  1353.  global $db_id, $tdif;
  1354.  
  1355.  $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";
  1356.  $result=mysql_query($query, $db_id); $iaq=array();
  1357.  for ($i=0; $row=mysql_fetch_row($result); $i++) $iaq[$i]=$row;
  1358.  return $iaq;
  1359. }
  1360.  
  1361. function get_up($id)
  1362. {
  1363.  global $db_id, $tdif;
  1364.  
  1365.  $query="select timediff(dueTime".$tdif.", now()), unit, tree from uup_queue where town=".$id." order by dueTime asc";
  1366.  $result=mysql_query($query, $db_id); $upq=array();
  1367.  for ($i=0; $row=mysql_fetch_row($result); $i++) $upq[$i]=$row;
  1368.  return $upq;
  1369. }
  1370.  
  1371. function get_c($id)
  1372. {
  1373.  global $db_id, $tdif;
  1374.  
  1375.  $query="select timediff(dueTime".$tdif.", now()), b, subB from c_queue where town=".$id." order by dueTime asc";
  1376.  $result=mysql_query($query, $db_id); $cq=array();
  1377.  for ($i=0; $row=mysql_fetch_row($result); $i++) $cq[$i]=$row;
  1378.  return $cq;
  1379. }
  1380.  
  1381. function get_pact($a1, $a2)
  1382. {
  1383.  global $db_id;
  1384.  
  1385.  $query="select type from pacts where (a1=".$a1." and a2=".$a2.") or (a1=".$a2." and a2=".$a1.")";
  1386.  $result=mysql_query($query, $db_id);
  1387.  $row=mysql_fetch_row($result);
  1388.  return $row[0];
  1389. }
  1390.  
  1391. function cancel_d($id)
  1392. {
  1393.  global $db_id;
  1394.  
  1395.  $query="delete from d_queue where user=".$id;
  1396.  $result=mysql_query($query, $db_id);
  1397.  if ($result) msg("Delete request withdrawn.");
  1398.  else msg("Failed.".mysql_error());
  1399. }
  1400.  
  1401. function cancel_c($id, $b, $subB, $res, $faction)
  1402. {
  1403.  global $db_id;
  1404. $town=town($id);
  1405. $buildings=buildings($faction);
  1406. $data=explode("-", $town[8]); $land=explode("/", $town[13]); $upk=explode("-", $buildings[$b][7]);
  1407. $land[0]=explode("-", $land[0]); $land[1]=explode("-", $land[1]); $land[2]=explode("-", $land[2]); $land[3]=explode("-", $land[3]);
  1408.  
  1409.   if ($subB==-1) $pop=$town[3]-$upk[$data[$b]];
  1410.   else $pop=$town[3]-$upk[$land[$b][$subB]];
  1411.  $query="update towns set resources='".$res."', population=".$pop." where id=".$id;
  1412.  $result=mysql_query($query, $db_id);
  1413.  $query="delete from c_queue where town=".$id." and b=".$b;
  1414.  $result=mysql_query($query, $db_id);
  1415.  if ($result) echo "<script type='text/javascript'>history.go(-1)</script>";
  1416.  else msg("Failed.".mysql_error());
  1417. }
  1418.  
  1419. function cancel_a($id, $tid, $army, $gen)
  1420. {
  1421.  global $db_id;
  1422.  
  1423.  $army=explode("-", $army);
  1424.  $query="update towns set army='".implode("-", $army)."', upkeep=".array_sum($army).", general='".$gen."' where id=".$id;
  1425.  $result=mysql_query($query, $db_id);
  1426.  $query="delete from a_queue where town=".$id." and id=".$tid;
  1427.  $result=mysql_query($query, $db_id);
  1428.  if ($result) header("Location: dispatch.php?town=".$id);
  1429.  else msg("Failed.".mysql_error());
  1430. }
  1431.  
  1432. function cancel_w($id, $type, $res)
  1433. {
  1434.  global $db_id;
  1435.  
  1436.  $query="update towns set resources='".$res."' where id=".$id;
  1437.  $result=mysql_query($query, $db_id);
  1438.  $query="delete from w_queue where town=".$id." and type=".$type;
  1439.  $result=mysql_query($query, $db_id);
  1440.  if ($result) echo "<script type='text/javascript'>history.go(-1)</script>";
  1441.  else msg("Failed.".mysql_error());
  1442. }
  1443.  
  1444. function cancel_u($id, $type, $res, $weaps, $q)
  1445. {
  1446.  global $db_id;
  1447. $town=town($id); $town[7]=explode("-", $town[7]);
  1448.  
  1449.  $query="update towns set resources='".$res."', weapons='".$weaps."', upkeep=".array_sum($town[7])." where id=".$id;
  1450.  $result=mysql_query($query, $db_id);
  1451.  $query="delete from u_queue where town=".$id." and type=".$type;
  1452.  $result=mysql_query($query, $db_id);
  1453.  if ($result) echo "<script type='text/javascript'>history.go(-1)</script>";
  1454.  else msg("Failed.".mysql_error());
  1455. }
  1456.  
  1457. function cancel_uup($id, $unit, $tree, $res)
  1458. {
  1459.  global $db_id;
  1460.  
  1461.  $query="update towns set resources='".$res."' where id=".$id;
  1462.  $result=mysql_query($query, $db_id);
  1463.  $query="delete from uup_queue where town=".$id." and unit=".$unit." and tree=".$tree;
  1464.  $result=mysql_query($query, $db_id);
  1465.  if ($result) echo "<script type='text/javascript'>history.go(-1)</script>";
  1466.  else msg("Failed.".mysql_error());
  1467. }
  1468.  
  1469. function cancel_t($id, $sType, $sSubType, $bType, $bSubType, $res)
  1470. {
  1471.  global $db_id;
  1472. $town=town($id);
  1473. $data=explode("-", $town[6]);
  1474.  
  1475.  if ($sType) $scol="weapons"; else $scol="resources";
  1476.  $query="update towns set ".$scol."='".$res."' where id=".$id;
  1477.  $result=mysql_query($query, $db_id);
  1478.  $query="delete from t_queue where seller=".$id." and sType=".$sType." and sSubType=".$sSubType." and bType=".$bType." and bSubType=".$bSubType;
  1479.  $result=mysql_query($query, $db_id);
  1480.  if ($result) header("Location: marketplace.php?town=".$id);
  1481.  else msg("Failed.".mysql_error());
  1482. }
  1483.  
  1484. function send_report($to, $subject, $contents)
  1485. {
  1486.  global $db_id;
  1487.  
  1488.  $query="insert into reports(recipient, subject, contents, sent) values(".$to.", '".mysql_real_escape_string($subject)."', '".mysql_real_escape_string($contents)."', now())";
  1489.  $result=mysql_query($query, $db_id);
  1490.  if ($result) return 1;
  1491.  else return 0;
  1492. }
  1493.  
  1494. function send_to_all($subject, $contents)
  1495. {
  1496.  global $db_id;
  1497.  
  1498.  $users=users();
  1499.  for ($i=0; $i<count($users); $i++)
  1500.  {
  1501.   $query="insert into reports(recipient, subject, contents, sent) values(".$users[$i][0].", '".$subject."', '".$contents."', now())";
  1502.   mysql_query($query, $db_id);
  1503.  }
  1504. }
  1505.  
  1506. function send_message($from, $to, $subject, $contents)
  1507. {
  1508.  global $db_id;
  1509.  
  1510.  $query="insert into messages(sender, recipient, subject, contents, sent) values(".$from.", ".$to.", '".$subject."', '".$contents."', now())";
  1511.  $result=mysql_query($query, $db_id);
  1512.  if ($result) return 1;
  1513.  else return 0;
  1514. }
  1515.  
  1516. function msg_rep_alert($id)
  1517. {
  1518.  global $db_id;
  1519.  
  1520.  $output=array();
  1521.  $query="select count(*) from reports where recipient=".$id." and timediff('".$_SESSION["user"][6]."', sent)<'00:00:00'";
  1522.  $result=mysql_query($query, $db_id); $output[0]=mysql_fetch_row($result);
  1523.  $query="select count(*) from messages where recipient=".$id." and timediff('".$_SESSION["user"][6]."', sent)<'00:00:00'";
  1524.  $result=mysql_query($query, $db_id); $output[1]=mysql_fetch_row($result);
  1525.  return $output;
  1526. }
  1527.  
  1528. function messages($id)
  1529. {
  1530.  global $db_id;
  1531.  
  1532.  $query="select * from messages where recipient=".$id." order by sent desc";
  1533.  $result=mysql_query($query, $db_id); $reports=array();
  1534.  for ($i=0; $row=mysql_fetch_row($result); $i++)
  1535.  {
  1536.         $reports[$i]=$row;
  1537.         if (strtotime($row[5])>strtotime($_SESSION["user"][6])) $reports[$i][6]=1; else $reports[$i][6]=0;//if message is new
  1538.  }
  1539.  return $reports;
  1540. }
  1541.  
  1542. function reports($id)
  1543. {
  1544.  global $db_id;
  1545.  
  1546.  $query="select * from reports where recipient=".$id." order by sent desc";
  1547.  $result=mysql_query($query, $db_id); $reports=array();
  1548.  for ($i=0; $row=mysql_fetch_row($result); $i++)
  1549.  {
  1550.         $reports[$i]=$row;
  1551.         if (strtotime($row[4])<strtotime($_SESSION["user"][4])) $reports[$i][5]=1; else $reports[$i][5]=0;//if report is new
  1552.  }
  1553.  return $reports;
  1554. }
  1555.  
  1556. function offers($sType, $sSubType, $bType, $bSubType)
  1557. {
  1558.  global $db_id;
  1559.  
  1560.  $offers=array();
  1561.  $query="select * from t_queue where type=0 and sType=".$sType." and sSubType=".$sSubType." and bType=".$bType." and bSubType=".$bSubType;
  1562.  $result=mysql_query($query, $db_id);
  1563.  for ($i=0; $row=mysql_fetch_row($result); $i++) $offers[$i]=$row;
  1564.  return $offers;
  1565. }
  1566.  
  1567. function offer($seller, $sType, $sSubType, $bType, $bSubType)
  1568. {
  1569.  global $db_id;
  1570.  
  1571.  $query="select * from t_queue where seller=".$seller." and sType=".$sType." and sSubType=".$sSubType." and bType=".$bType." and bSubType=".$bSubType;
  1572.  $result=mysql_query($query, $db_id);
  1573.  $row=mysql_fetch_row($result);
  1574.  return $row;
  1575. }
  1576.  
  1577. function report($id)
  1578. {
  1579.  global $db_id;
  1580.  
  1581.  $query="select * from reports where id=".$id;
  1582.  $result=mysql_query($query, $db_id); $reports=array();
  1583.  $row=mysql_fetch_row($result);
  1584.  return $row;
  1585. }
  1586.  
  1587. function message($id)
  1588. {
  1589.  global $db_id;
  1590.  
  1591.  $query="select * from messages where id=".$id;
  1592.  $result=mysql_query($query, $db_id); $reports=array();
  1593.  $row=mysql_fetch_row($result);
  1594.  return $row;
  1595. }
  1596.  
  1597. function delrep($id, $owner)
  1598. {
  1599.  global $db_id;
  1600. $report=report($id);
  1601.  
  1602.  if ($owner!=$report[1]) { msg($lang['accessDenied']);}
  1603.  else
  1604.  {
  1605.  $query="delete from reports where id=".$id;
  1606.  $result=mysql_query($query, $db_id); $reports=array();
  1607.  if ($result) header('Location: reports.php?page=0');
  1608.  else msg("Failed.".mysql_error());
  1609.  }
  1610. }
  1611.  
  1612. function delallrep($id)
  1613. {
  1614.  global $db_id;
  1615.  
  1616.  $query="delete from reports where recipient=".$id;
  1617.  $result=mysql_query($query, $db_id); $reports=array();
  1618.  if ($result) header('Location: reports.php?page=0');
  1619.  else msg("Failed.".mysql_error());
  1620. }
  1621.  
  1622. function delmsg($id, $owner)
  1623. {
  1624.  global $db_id;
  1625. $message=message($id);
  1626.  
  1627.  if ($owner!=$message[2]) { msg($lang['accessDenied']);}
  1628.  else
  1629.  {
  1630.  $query="delete from messages where id=".$id;
  1631.  $result=mysql_query($query, $db_id); $reports=array();
  1632.  if ($result) header('Location: messages.php?page=0');
  1633.  else msg("Failed.".mysql_error());
  1634.  }
  1635. }
  1636.  
  1637. function delallmsg($id)
  1638. {
  1639.  global $db_id;
  1640.  
  1641.  $query="delete from messages where recipient=".$id;
  1642.  $result=mysql_query($query, $db_id); $reports=array();
  1643.  if ($result) header('Location: messages.php?page=0');
  1644.  else msg("Failed.".mysql_error());
  1645. }
  1646.  
  1647. function delacc($id)
  1648. {
  1649.  global $db_id;
  1650.  
  1651.  $query="select count(*) from d_queue where user=".$id;
  1652.  $result=mysql_query($query, $db_id);
  1653.  $row=mysql_fetch_row($result);
  1654.  if (!$row[0])
  1655.  {
  1656.   $date=strtotime("+1 day"); $date=strftime("%Y-%m-%d %H:%M:%S", $date);
  1657.   $query="insert into d_queue(user, dueTime) values('".$id."', '".$date."')";
  1658.   $result=mysql_query($query, $db_id);
  1659.   if ($result) msg("Account will be deleted in 24 hours.");
  1660.   else msg("Failed.".mysql_error());
  1661.  } else msg("Account is already scheduled for deletion.");
  1662. }
  1663.  
  1664. function build($id, $b, $subB, $time, $res, $faction)
  1665. {
  1666.  global $db_id;
  1667.  $town=town($id); $buildings=buildings($faction); $data=explode("-", $town[8]); $land=explode("/", $town[13]); $upk=explode("-", $buildings[$b][7]);
  1668.  $land[0]=explode("-", $land[0]); $land[1]=explode("-", $land[1]); $land[2]=explode("-", $land[2]); $land[3]=explode("-", $land[3]);
  1669.  
  1670.  $time=explode(":", $time);
  1671.  
  1672.  $query="select max(dueTime) from c_queue where town=".$id;
  1673.  $result=mysql_query($query, $db_id);
  1674.  $row=mysql_fetch_row($result);
  1675.  if ($row[0]!="") $date=strtotime("+".$time[0]." hours ".$time[1]." minutes ".($time[2]+rand(0, 9))." seconds", strtotime($row[0])); else $date=strtotime("+".$time[0]." hours ".$time[1]." minutes ".($time[2]+rand(0, 9))." seconds");
  1676.  $date=strftime("%Y-%m-%d %H:%M:%S", $date);
  1677.  $query="insert into c_queue(town, dueTime, b, subB) values('".$id."', '".$date."', '".$b."', '".$subB."')";
  1678.  $result=mysql_query($query, $db_id);
  1679.  $query="update towns set resources='".$res."' where id=".$id;
  1680.  $result=mysql_query($query, $db_id);
  1681.  if ($subB==-1) $pop=$town[3]+$upk[$data[$b]];
  1682.  else $pop=$town[3]+$upk[$land[$b][$subB]];
  1683.  $query="update towns set population=".$pop." where id=".$id;
  1684.  $result=mysql_query($query, $db_id);
  1685.  
  1686.  if ($result) echo "<script type='text/javascript'>history.go(-1)</script>";
  1687.  else msg("Failed.".mysql_error());
  1688. }
  1689.  
  1690. function forge($a, $id, $type, $q, $time, $res)
  1691. {
  1692.  global $db_id;
  1693.  $town=town($id);
  1694.  
  1695.  $time=explode(":", $time);
  1696.  
  1697.  if (!$a) $query="select max(dueTime) from w_queue where town=".$id;
  1698.  else $query="select dueTime from w_queue where town=".$id." and type=".$type;
  1699.  $result=mysql_query($query, $db_id); $row=mysql_fetch_row($result);
  1700.  if ($row[0]!="") $date=strtotime("+".$time[0]." hours ".$time[1]." minutes ".$time[2]." seconds", strtotime($row[0])); else $date=strtotime("+".$time[0]." hours ".$time[1]." minutes ".$time[2]." seconds");
  1701.  $date=strftime("%Y-%m-%d %H:%M:%S", $date);
  1702.  if (!$a) $query="insert into w_queue(town, dueTime, type, quantity) values('".$id."', '".$date."', '".$type."', '".$q."')";
  1703.  else $query="update w_queue set dueTime='".$date."', quantity=quantity+".$q." where town=".$id." and type=".$type;
  1704.  $result=mysql_query($query, $db_id);
  1705.  $query="update towns set resources='".$res."' where id=".$id;
  1706.  $result=mysql_query($query, $db_id);
  1707.  if ($result) echo "<script type='text/javascript'>history.go(-1)</script>";
  1708.  else msg("Failed.".mysql_error());
  1709. }
  1710.  
  1711. function train($a, $id, $type, $q, $time, $res, $weaps)
  1712. {
  1713.  global $db_id;
  1714.  $town=town($id); $town[7]=explode("-", $town[7]);
  1715.  
  1716.  $time=explode(":", $time);
  1717.  
  1718.  if (!$a) $query="select max(dueTime) from u_queue where town=".$id;
  1719.  else $query="select dueTime from u_queue where town=".$id." and type=".$type;
  1720.  $result=mysql_query($query, $db_id);
  1721.  $row=mysql_fetch_row($result);
  1722.  if ($row[0]!="") $date=strtotime("+".$time[0]." hours ".$time[1]." minutes ".$time[2]." seconds", strtotime($row[0])); else $date=strtotime("+".$time[0]." hours ".$time[1]." minutes ".$time[2]." seconds");
  1723.  $date=strftime("%Y-%m-%d %H:%M:%S", $date);
  1724.  if (!$a) $query="insert into u_queue(town, dueTime, type, quantity) values('".$id."', '".$date."', '".$type."', '".$q."')";
  1725.  else $query="update u_queue set dueTime='".$date."', quantity=quantity+".$q." where town=".$id." and type=".$type;
  1726.  $result=mysql_query($query, $db_id);
  1727.  $query="update towns set resources='".$res."', weapons='".$weaps."', upkeep=".(array_sum($town[7])+$q)." where id=".$id;
  1728.  $result=mysql_query($query, $db_id);
  1729.  if ($result) echo "<script type='text/javascript'>history.go(-1)</script>";
  1730.  else msg("Failed.".mysql_error());
  1731. }
  1732.  
  1733. function set_gen($id, $utype)
  1734. {
  1735.  global $db_id;
  1736. $town=town($id);
  1737.  
  1738.  $query="update towns set general='1-1-".$utype."-0' where id=".$id;
  1739.  $result=mysql_query($query, $db_id);
  1740.  if ($result) msg("Unit promoted to general. You can only have one general. Promoting another unit will demote the current general.");
  1741.  else msg("Failed.".mysql_error());
  1742. }
  1743.  
  1744. function battle($data)
  1745. {
  1746.  $d_units=units($data[0][0]);
  1747.  $a_units=units($data[1][0]);
  1748.  $def=array(); $atk=array(); $data[0][10]=$data[0][1]; $data[1][10]=$data[1][1];
  1749.  $bo[0][1]=$data[0][4][6]; $bo[0][0]=$data[0][4][7]; $bo[1][1]=0; $bo[1][0]=0;//def&atk bonuses
  1750.  switch($data[0][2][3])
  1751.  {
  1752.   case 1: $bo[0][0]+=0.25*$bo[0][0]; $bo[0][1]-=0.25*$bo[0][1]; break;//offensive
  1753.   case 2: $bo[0][0]-=0.25*$bo[0][0]; $bo[0][1]+=0.25*$bo[0][1]; break;//defensive
  1754.  }
  1755.  switch($data[1][2][3])
  1756.  {
  1757.   case 1: $bo[1][0]+=0.25*$bo[1][0]; $bo[1][1]-=0.25*$bo[1][1]; break;//offensive
  1758.   case 2: $bo[1][0]-=0.25*$bo[1][0]; $bo[1][1]+=0.25*$bo[1][1]; break;//defensive
  1759.  }
  1760.  //naval combat
  1761.  if ((($data[1][1][9])||($data[1][1][10]))&&(($data[0][1][9])||($data[0][1][10])))
  1762.  {
  1763.   $def[0]=($d_units[9][5]+$data[0][7][9])*$data[0][1][9]+($d_units[10][5]+$data[0][7][10])*$data[0][1][10]; $def[1]=($d_units[9][6]+$data[0][8][9])*$data[0][1][9]+($d_units[10][6]+$data[0][8][10])*$data[0][1][10]; $def[2]=($d_units[9][7]+$data[0][9][9]+$d_units[10][7]+$data[0][9][10])/2;
  1764.   $def[1]+=$def[1]*$bo[0][0]/100; $def[2]+=$def[2]*$bo[0][1]/100;
  1765.   $atk[0]=($a_units[9][5]+$data[1][3][9])*$data[1][1][9]+($a_units[10][5]+$data[1][3][10])*$data[1][1][10]; $atk[1]=($a_units[9][6]+$data[1][4][9])*$data[1][1][9]+($a_units[10][6]+$data[1][4][10])*$data[1][1][10]; $atk[2]=($a_units[9][7]+$data[1][5][9]+$a_units[10][7]+$data[1][5][10])/2;
  1766.   $atk[1]+=$atk[1]*$bo[1][0]/100; $atk[2]+=$atk[2]*$bo[1][1]/100;
  1767.   $ah=$def[0]/$atk[1]*(100-$def[2])/100; $dh=$atk[0]/$def[1]*(100-$atk[2])/100;
  1768.   $admg=($atk[0]-$ah*$def[1]*(100-$atk[2])/100)/$atk[0]; $ddmg=($def[0]-$dh*$atk[1]*(100-$def[2])/100)/$def[0];
  1769.   if ($admg<0) $admg=0; else if ($admg>1) $admg=1;
  1770.   if ($ddmg<0) $ddmg=0; else if ($ddmg>1) $ddmg=1;
  1771.   if ($ah<$dh)//if attacking ships win
  1772.   {
  1773.    $data[1][1][9]=ceil($data[1][1][9]*$admg); $data[1][1][10]=ceil($data[1][1][10]*$admg);
  1774.    $data[0][1][9]=0; $data[0][1][10]=0;
  1775.    for ($i=0; $i<count($a_units); $i++) if (($i<9)||($i>10)) $data[1][1][$i]=ceil($data[1][1][$i]*$admg);//drowned units
  1776.   }
  1777.   else//if defending ships win
  1778.   {
  1779.    $data[0][1][9]=ceil($data[0][1][9]*$ddmg); $data[0][1][10]=ceil($data[0][1][10]*$ddmg);
  1780.    $data[1][1]=array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
  1781.    $data[0][2][1]++; if ($data[1][2][1]) $data[1][2][1]--;//defending general promoted, the other demoted
  1782.    $data[3]=array(0, 0, 0, 0, 0); $data[4]=array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
  1783.    return $data;
  1784.   }
  1785.  }
  1786.  //land combat
  1787.  $def[0]=0; $def[1]=0; $def[2]=0; $atk[0]=0; $atk[1]=0; $atk[2]=0;
  1788.  for ($i=0; $i<count($d_units); $i++) if (($i<9)||($i>10))
  1789.  {
  1790.   $def[0]+=($d_units[$i][5]+$data[0][7][$i])*$data[0][1][$i]; $def[1]+=($d_units[$i][6]+$data[0][8][$i])*$data[0][1][$i]; $def[2]+=$d_units[$i][7]+$data[0][9][$i];
  1791.   $atk[0]+=($a_units[$i][5]+$data[1][3][$i])*$data[1][1][$i]; $atk[1]+=($a_units[$i][6]+$data[1][4][$i])*$data[1][1][$i]; $atk[2]+=$a_units[$i][7]+$data[1][5][$i];
  1792.  }
  1793.  if ($data[0][2][0]) {$def[1]+=($d_units[$data[0][2][2]][6]+$data[0][8][$data[0][2][2]])*$data[0][2][1]; $def[2]+=$d_units[$data[0][2][2]][7]+$data[0][9][$data[0][2][2]];}
  1794.  if ($data[1][2][0]) {$atk[1]+=($a_units[$data[1][2][2]][6]+$data[1][4][$data[1][2][2]])*$data[1][2][1]; $atk[2]+=$a_units[$data[1][2][2]][7]+$data[1][5][$data[1][2][2]];}
  1795.  $def[2]/=11; $def[1]+=$def[1]*$bo[0][0]/100; $def[2]+=$def[2]*$bo[0][1]/100;
  1796.  $atk[2]/=11; $atk[1]+=$atk[1]*$bo[1][0]/100; $atk[2]+=$atk[2]*$bo[1][1]/100;
  1797.  /*
  1798.  $atk - attacker data
  1799.  $def - defender data
  1800.  ---
  1801.  0 - hp, 1 - atk, 2 - def
  1802.  */
  1803.  if (($atk[0])&&($def[0]))//if any attaking/defending troops remained
  1804.  {
  1805.   $ah=$def[0]/$atk[1]*(100-$def[2])/100; $dh=$atk[0]/$def[1]*(100-$atk[2])/100;
  1806.   $admg=($atk[0]-$ah*$def[1]*(100-$atk[2])/100)/$atk[0]; $ddmg=($def[0]-$dh*$atk[1]*(100-$def[2])/100)/$def[0];
  1807.   $qadmg=($atk[0]-$def[1]*(100-$atk[2])/100)/$atk[0]; $qddmg=($def[0]-$atk[1]*(100-$def[2])/100)/$def[0];
  1808.   if ($admg<0) $admg=0; else if ($admg>1) $admg=1;
  1809.   if ($ddmg<0) $ddmg=0; else if ($ddmg>1) $ddmg=1;
  1810.   if ($qadmg<0) $qadmg=0; else if ($qadmg>1) $qadmg=1;
  1811.   if ($qddmg<0) $qddmg=0; else if ($qddmg>1) $qddmg=1;
  1812.   if ($ah<$dh)//if attackers win
  1813.   {
  1814.    if ($data[2]==2)//if there was an 'attack'
  1815.    {
  1816.     $atc=0;
  1817.     for ($i=0; $i<count($d_units); $i++) {$data[1][1][$i]=ceil($data[1][1][$i]*$admg); $atc+=$data[1][1][$i];}
  1818.     $data[0][1]=array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
  1819.     //siege damage
  1820.     if (($data[1][1][7])||($data[1][1][8])) {$b=rand(0, 21); if ($data[0][3][$b]) $data[0][3][$b]--;}
  1821.     //plunder
  1822.     $atc*=10;//each unit can carry 10 of each resource
  1823.     for ($i=0; $i<5; $i++)
  1824.     if ($atc>0)
  1825.     {
  1826.      if ($data[0][5][$i]-$data[0][4][5]>$atc) {$data[3][$i]=$atc; $data[0][5][$i]-=$atc;} else if ($data[0][5][$i]-$data[0][4][5]>0) {$data[3][$i]=$data[0][5][$i]-$data[0][4][5]; $data[0][5][$i]=$data[0][4][5];} else $data[3][$i]=0;
  1827.     } else $data[3][$i]=0;
  1828.     $atc/=10;//each unit can carry 1 of each weapon
  1829.     for ($i=0; $i<11; $i++)
  1830.     if ($atc>0)
  1831.     {
  1832.      if ($data[0][6][$i]>$atc) {$data[4][$i]=$atc; $data[0][6][$i]-=$atc;} else {$data[4][$i]=$data[0][6][$i]; $data[0][6][$i]=0;}
  1833.     } else $data[4][$i]=0;
  1834.     $data[1][2][1]++; if ($data[0][2][1]) $data[0][2][1]--;//attacking general promoted, the other demoted
  1835.    }
  1836.    else//if there was a 'raid' or 'spy' mission
  1837.    {
  1838.     $atc=0;
  1839.     for ($i=0; $i<count($d_units); $i++)
  1840.     {
  1841.      $data[1][1][$i]=ceil($data[1][1][$i]*$qadmg); $data[0][1][$i]=ceil($data[0][1][$i]*$qddmg); $atc+=$data[1][1][$i];
  1842.      //check to see if one side >> the other
  1843.      if ($data[1][1][$i]<=0) $data[1][1][$i]=0; if ($data[0][1][$i]<=0) $data[0][1][$i]=0;
  1844.     }
  1845.     $atc*=10;//each unit can carry 10 of each resource
  1846.     for ($i=0; $i<5; $i++)
  1847.     if ($atc>0)
  1848.     {
  1849.      if ($data[0][5][$i]-$data[0][4][5]>$atc) {$data[3][$i]=$atc; $data[0][5][$i]-=$atc;} else if ($data[0][5][$i]-$data[0][4][5]>0) {$data[3][$i]=$data[0][5][$i]-$data[0][4][5]; $data[0][5][$i]=$data[0][4][5];} else $data[3][$i]=0;
  1850.     } else $data[3][$i]=0;
  1851.     $atc/=10;//each unit can carry 1 of each weapon
  1852.     for ($i=0; $i<11; $i++)
  1853.     if ($atc>0)
  1854.     {
  1855.      if ($data[0][6][$i]>$atc) {$data[4][$i]=$atc; $data[0][6][$i]-=$atc;} else {$data[4][$i]=$data[0][6][$i]; $data[0][6][$i]=0;}
  1856.     } else $data[4][$i]=0;
  1857.     if ($data[2]==3) $data[5]=$data[0][1];
  1858.    }
  1859.   }
  1860.   else//if defenders win
  1861.   {
  1862.    if ($data[2]==2)//if there was an 'attack'
  1863.    {
  1864.     for ($i=0; $i<count($a_units); $i++) $data[0][1][$i]=ceil($data[0][1][$i]*$ddmg);
  1865.     $data[1][1]=array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
  1866.     $data[0][2][1]++; if ($data[1][2][1]) $data[1][2][1]--;//defending general promoted, the other demoted
  1867.     $data[3]=array(0, 0, 0, 0, 0); $data[4]=array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
  1868.    }
  1869.    else//if there was a 'raid' or 'spy' mission
  1870.     for ($i=0; $i<count($a_units); $i++)
  1871.     {
  1872.      $data[0][1][$i]=ceil($data[0][1][$i]*$qddmg); $data[1][1][$i]=ceil($data[1][1][$i]*$qadmg);
  1873.      //check to see if one side >> the other
  1874.      if ($data[0][1][$i]<=0) $data[0][1][$i]=0; if ($data[1][1][$i]<=0) $data[1][1][$i]=0;
  1875.     }
  1876.     $data[3]=array(0, 0, 0, 0, 0); $data[4]=array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
  1877.   }
  1878.  }
  1879.  else if ($atk[0])//if there are no defenders
  1880.  {
  1881.   //if attack, siege damage
  1882.   if ($data[2]==2) if (($data[1][1][7])||($data[1][1][8])) {$b=rand(0, 21); if ($data[0][3][$b]) $data[0][3][$b]--;}
  1883.   $atc=0; for ($i=0; $i<count($d_units); $i++) $atc+=$data[1][1][$i];
  1884.   $atc*=10;//each unit can carry 10 of each resource
  1885.   for ($i=0; $i<5; $i++) if ($data[0][5][$i]-$data[0][4][5]>$atc) {$data[3][$i]=$atc; $data[0][5][$i]-=$atc;} else if ($data[0][5][$i]-$data[0][4][5]>0) {$data[3][$i]=$data[0][5][$i]-$data[0][4][5]; $data[0][5][$i]=$data[0][4][5];} else $data[3][$i]=0;
  1886.   $atc/=10;//each unit can carry 1 of each weapon
  1887.   for ($i=0; $i<11; $i++) if ($data[0][6][$i]>$atc) {$data[4][$i]=$atc; $data[0][6][$i]-=$atc;} else {$data[4][$i]=$data[0][6][$i]; $data[0][6][$i]=0;}
  1888.   $data[5]=$data[0][1];
  1889.  }
  1890.  return $data;
  1891. }
  1892.  
  1893. function trade($id, $buyer, $sQ, $sType, $sSubType, $bQ, $bType, $bSubType, $type, $dueTime, $res, $maxTime)
  1894. {
  1895.  global $db_id;
  1896. $town=town($id);
  1897. $loc=town_xy($id);
  1898. if ($sType) $scol="weapons"; else $scol="resources";
  1899.  
  1900.  $query="select count(*) from t_queue where seller=".$id." and sType=".$sType." and sSubType=".$sSubType." and bType=".$bType." and bSubType=".$bSubType;
  1901.  $result=mysql_query($query, $db_id);
  1902.  $row=mysql_fetch_row($result);
  1903.  if (!$row[0])
  1904.  {
  1905.   $query="insert into t_queue(seller, buyer, sType, sSubType, sQ, bType, bSubType, bQ, type, dueTime, x, y, water, maxTime) values(".$id.", ".$buyer.", ".$sType.", ".$sSubType.", ".$sQ.", ".$bType.", ".$bSubType.", ".$bQ.", ".$type.", '".$dueTime."', ".$loc[0].", ".$loc[1].", ".$town[16].", ".$maxTime.")";
  1906.   mysql_query($query, $db_id);
  1907.   $query="update towns set ".$scol."='".$res."' where id=".$id;
  1908.   $result=mysql_query($query, $db_id);
  1909.   if ($result) header("Location: marketplace.php?town=".$id);
  1910.   else msg("Failed.".mysql_error());
  1911.  } else { msg("You already have an offer/transport of same type underway.");}
  1912. }
  1913.  
  1914. function npc_trade($id, $res)
  1915. {
  1916.  global $db_id;
  1917.  
  1918.  $query="update towns set resources='".$res."' where id=".$id;
  1919.  $result=mysql_query($query, $db_id);
  1920.  if ($result) return 1; else return 0;
  1921. }
  1922.  
  1923. function upgrade_u($id, $res, $unit, $tree, $time)
  1924. {
  1925.  global $db_id;
  1926.  
  1927.  $time=explode(":", $time);
  1928.  $query="select max(dueTime) from uup_queue where town=".$id;
  1929.  $result=mysql_query($query, $db_id);
  1930.  $row=mysql_fetch_row($result);
  1931.  if ($row[0]!="") $date=strtotime("+ ".$time[0]." hours ".$time[1]." minutes", strtotime($row[0]));
  1932.  else $date=strtotime("+ ".$time[0]." hours ".$time[1]." minutes");
  1933.  $date=strftime("%Y-%m-%d %H:%M:%S", $date);
  1934.  $query="insert into uup_queue(town, unit, tree, dueTime) values(".$id.", ".$unit.", ".$tree.", '".$date."')";
  1935.  mysql_query($query, $db_id);
  1936.  $query="update towns set resources='".$res."' where id=".$id;
  1937.  $result=mysql_query($query, $db_id);
  1938.  if (!$result) msg("Failed.".mysql_error());
  1939. }
  1940.  
  1941. function dispatch($town, $target, $type, $dueTime, $time, $qarmy, $army, $gen)
  1942. {
  1943.  global $db_id;
  1944.  
  1945.  $query="select max(id), count(*) from a_queue where town=".$town[0];
  1946.  $result=mysql_query($query, $db_id);
  1947.  $id=mysql_fetch_row($result);
  1948.  if ($id[1]) $id=$id[0]+1; else $id=1;
  1949.  $query="insert into a_queue(town, target, id, type, phase, dueTime, army, general, uup, wup, aup, sent) values(".$town[0].", ".$target[0].", ".$id.", ".$type.", 0, '".$dueTime."', '".$qarmy."', '".$gen."', '".$town[17]."', '".$town[18]."', '".$town[19]."', '".$time."')";
  1950.  mysql_query($query, $db_id); $army=explode("-", $army);
  1951.  $ogen=explode("-", $town[15]); $gen=explode("-", $gen); if (($gen[0])&&($type)) $ogen[0]=0; $ogen=implode("-", $ogen);
  1952.  $query="update towns set army='".implode("-", $army)."', general='".$ogen."', upkeep=".array_sum($army)." where id=".$town[0];
  1953.  $result=mysql_query($query, $db_id);
  1954.  if (!$result) msg("Failed.".mysql_error());
  1955. }
  1956.  
  1957. function pass($id, $pass)
  1958. {
  1959.  global $db_id;
  1960.  
  1961.  $query="update users set pass='".$pass."' where id=".$id;
  1962.  $result=mysql_query($query, $db_id);
  1963.  if ($result) msg("Succes. Password changed.");
  1964.  else msg("Failure.".mysql_error());
  1965. }
  1966.  
  1967. function ban($name, $value)
  1968. {
  1969.  global $db_id;
  1970.  
  1971.  $query="update users set level='".$value."' where name='".$name."'";
  1972.  $result=mysql_query($query, $db_id);
  1973.  if ($result)
  1974.   if ($value) msg("Succes. User '".$name."' level changed.");
  1975.   else msg("Succes. User '".$name."' level changed.");
  1976.  else msg("Failure.".mysql_error());
  1977. }
  1978.  
  1979. function ch_capital($name, $usr_id)
  1980. {
  1981.  global $db_id;
  1982.  
  1983.  $usr=user($usr_id); $town=town_($name);
  1984.  if ($town[1]==$usr_id)
  1985.   if($town[0])
  1986.   {
  1987.    $query="select id from towns where isCapital=1 and owner=".$usr[0];
  1988.    $result=mysql_query($query, $db_id); $row=mysql_fetch_row($result);
  1989.    $query="update towns set isCapital=0 where id=".$row[0];
  1990.    mysql_query($query, $db_id);
  1991.    $query="update towns set isCapital=1 where id=".$town[0];
  1992.    $result=mysql_query($query, $db_id);
  1993.    if ($result) msg("Succes. The town '".$town[2]."' is now your capital.");
  1994.    else msg("Failed.".mysql_error());
  1995.   }
  1996.         else msg("Did not succeed.");
  1997.  else msg("You are not the owner of this town.");
  1998. }
  1999.  
  2000. function ch_lang($id, $lang)
  2001. {
  2002.  global $db_id;
  2003.  
  2004.  $query="update users set lang='".$lang."' where id=".$id;
  2005.  $result=mysql_query($query, $db_id);
  2006.  if ($result) return 1;
  2007.  else return 0;
  2008. }
  2009.  
  2010. function profile($id, $email, $desc, $sitter, $grpath, $lang)
  2011. {
  2012.  global $db_id;
  2013.  
  2014.  $query="update users set email='".$email."', description='".$desc."', sitter='".$sitter."', grPath='".$grpath."', lang='".$lang."' where id=".$id;
  2015.  $result=mysql_query($query, $db_id);
  2016.  if ($result) msg("Succes. Profile changed.");
  2017.  else msg("Failure.".mysql_error());
  2018. }
  2019.  
  2020. function reg($name, $pass, $email, $faction)
  2021. {
  2022.  global $db_id;
  2023.  
  2024.  $query="insert into users(name, pass, email, level, joined, lastVisit, points, ip, grPath, faction) values('".$name."', '".$pass."', '".$email."', 1, now(), now(), 0, '".$_SERVER["REMOTE_ADDR"]."', 'default/', ".$faction.")";
  2025.  $result=mysql_query($query, $db_id);
  2026.  if ($result) msg("Succes. You are now registered as '".$name."'. You can now login and create your town.");
  2027.  else msg("Failed.".mysql_error());
  2028. }
  2029.  
  2030. function a_create($name, $founder)
  2031. {
  2032.  global $db_id;
  2033.  
  2034.  $query="select count(*) from alliances where name='".$name."'";
  2035.  $result=mysql_query($query, $db_id);
  2036.  $row=mysql_fetch_row($result);
  2037.  if ($row[0]) { msg("Name taken.");}
  2038.  else
  2039.  {
  2040.   $query="insert into alliances(name, founder) values('".$name."', ".$founder.")";
  2041.   $result=mysql_query($query, $db_id);
  2042.   $query="select LAST_INSERT_ID()";
  2043.   $result=mysql_query($query, $db_id);
  2044.   $row=mysql_fetch_row($result);
  2045.   $query="update users set alliance=".$row[0].", rank='founder' where id=".$founder;
  2046.   $result=mysql_query($query, $db_id);
  2047.   if ($result) return $row[0];
  2048.   else msg("Failed.".mysql_error());
  2049.  }
  2050. }
  2051.  
  2052. function a_join($a_id, $usr_id)
  2053. {
  2054.  global $db_id;
  2055.  
  2056.  $query="select count(*) from reports where recipient=".$usr_id." and subject='Invitation/".$a_id."'";
  2057.  $result=mysql_query($query, $db_id);
  2058.  $row=mysql_fetch_row($result);
  2059.  if ($row[0])
  2060.  {
  2061.   $query="delete from reports where recipient=".$usr_id." and subject='Invitation/".$a_id."'";
  2062.   mysql_query($query, $db_id);
  2063.   $query="update users set alliance=".$a_id.", rank='member' where id=".$usr_id;
  2064.   $result=mysql_query($query, $db_id);
  2065.   if ($result) return 1;
  2066.  }
  2067.  else { return 0;}
  2068. }
  2069.  
  2070. function a_quit($id)
  2071. {
  2072.  global $db_id;
  2073.  
  2074.  $query="update users set alliance=0 where id=".$id;
  2075.  $result=mysql_query($query, $db_id);
  2076.  if ($result) return 1;
  2077.  else return 0;
  2078. }
  2079.  
  2080. function a_del($id)
  2081. {
  2082.  global $db_id;
  2083.  
  2084.  $query="delete from alliances where id=".$id;
  2085.  $result=mysql_query($query, $db_id);
  2086.  $query="delete from pacts where a1=".$id." or a2=".$id;
  2087.  $result=mysql_query($query, $db_id);
  2088.  if ($result) return 1;
  2089.  else return 0;
  2090. }
  2091.  
  2092. function pact($type, $name, $id)
  2093. {
  2094.  global $db_id;
  2095. $a2=alliance_($name);
  2096. $a1=alliance($id);
  2097. $usr=user($a1[2]);
  2098.  
  2099. if (!$type)
  2100. {
  2101.  if (send_report($a2[2], "Peace pact/".$a1[0]."-".$a2[0], "You have been invited to make peace with the <a class='q_link' href='a_view.php?id=".$a1[0]."'>".$a1[1]."</a> alliance, founded by <a class='q_link' href='profile_view.php?id=".$a1[2]."'>".$usr[1]."</a>.</br></br>[ <a class='q_link' href='peace_.php?a1=".$a1[0]."&a2=".$a2[0]."'>accept</a> ]")) return 1;
  2102.  else return 0;
  2103. }
  2104. else
  2105. {
  2106.  $query="delete from pacts where type=0 and ((a1=".$a1[0]." and a2=".$a2[0].") or ((a1=".$a2[0]." and a2=".$a1[0].")))";
  2107.  mysql_query($query, $db_id);
  2108.  $query="insert into pacts(type, a1, a2) values(1, ".$a1[0].", ".$a2[0].")";
  2109.  $result=mysql_query($query, $db_id);
  2110.  if ($result) return 1;
  2111.  else return 0;
  2112. }
  2113.  return 0;
  2114. }
  2115.  
  2116. function peace_($a1, $a2)
  2117. {
  2118.  global $db_id;
  2119. $a1=alliance($a1);
  2120. $a2=alliance($a2);
  2121.  
  2122.  $query="select count(*) from reports where recipient=".$a2[2]." and subject='Peace pact/".$a1[0]."-".$a2[0]."'";
  2123.  $result=mysql_query($query, $db_id);
  2124.  $row=mysql_fetch_row($result);
  2125.  if (!$row[0]) { return 0;}
  2126.  $query="delete from pacts where type=1 and ((a1=".$a2[0]." and a2=".$a1[0].") or ((a1=".$a1[0]." and a2=".$a2[0].")))";
  2127.  mysql_query($query, $db_id);
  2128.  $query="delete from reports where recipient=".$a2[2]." and subject='Peace pact/".$a1[0]."-".$a2[0]."'";
  2129.  mysql_query($query, $db_id);
  2130.  $query="insert into pacts(type, a1, a2) values(0, ".$a1[0].", ".$a2[0].")";
  2131.  $result=mysql_query($query, $db_id);
  2132.  if ($result) return 1;
  2133.  else return 0;
  2134. }
  2135.  
  2136. function dis_peace($a1, $a2)
  2137. {
  2138.  global $db_id;
  2139.  
  2140.  $query="delete from pacts where a1=".$a1." and a2=".$a2;
  2141.  $result=mysql_query($query, $db_id);
  2142.  if ($result) return 1;
  2143.  else return 0;
  2144. }
  2145.  
  2146. function o_accept($id, $seller, $sType, $sSubType, $bType, $bSubType, $res, $dueTime)
  2147. {
  2148.  global $db_id;
  2149.  
  2150.  if ($bType) $bcol="weapons"; else $bcol="resources";
  2151.  $query="update t_queue set type=1, buyer=".$id.", dueTime='".$dueTime."' where seller=".$seller." and sType=".$sType." and sSubType=".$sSubType." and bType=".$bType." and bSubType=".$bSubType;
  2152.  $result=mysql_query($query, $db_id);
  2153.  $query="update towns set ".$bcol."='".$res."' where id=".$id;
  2154.  $result=mysql_query($query, $db_id);
  2155.  if ($result) header("Location: marketplace.php?town=".$id);
  2156.  else msg("Failed.".mysql_error());
  2157. }
  2158.  
  2159. function create($owner, $name, $x, $y, $is_cap)
  2160. {
  2161.  global $db_id;
  2162.  
  2163.  $query="select count(*) from towns where name='".$name."'";
  2164.  $result=mysql_query($query, $db_id);
  2165.  $row=mysql_fetch_row($result);
  2166.  if ($row[0]) { msg("Name taken.");}
  2167.  else
  2168.  {
  2169.  $land=rand(1, 4);
  2170.  switch($land)
  2171.  {
  2172.     case 1: $land="0-0-0-0-0-0/0-0-0-0/0-0-0-0/0-0-0-0"; break;
  2173.     case 2: $land="0-0-0-0/0-0-0-0-0-0/0-0-0-0/0-0-0-0"; break;
  2174.     case 3: $land="0-0-0-0/0-0-0-0/0-0-0-0-0-0/0-0-0-0"; break;
  2175.     case 4: $land="0-0-0-0/0-0-0-0/0-0-0-0/0-0-0-0-0-0"; break;
  2176.  }
  2177.  
  2178.  $query="select subtype from map where ((x=".$x." and y=".($y-1).") or (x=".($x-1)." and y=".$y.") or (x=".$x." and y=".($y+1).") or (x=".($x+1)." and y=".$y.")) and type=0";
  2179.  $result=mysql_query($query, $db_id);
  2180.  $index=-1;
  2181.  while ($row=mysql_fetch_row($result)) if ($row[0]>-1) $index=$row[0];
  2182.  
  2183.  $query="insert into towns(owner, name, population, isCapital, morale, weapons, army, buildings, production, resources, limits, upkeep, land, general, water, uUpgrades, wUpgrades, aUpgrades, lastCheck) values(".$owner.", '".$name."', 2, ".$is_cap.", 100, '0-0-0-0-0-0-0-0-0-0-0', '0-0-0-0-0-0-0-0-0-0-0-0-0', '0-0-0-0-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0-0-0-0', '15-6-6-6-0', '500-300-300-300-150', '600-400-200-20-100-0-0-0-0-0-0-0-0', 0, '".$land."', '0-0-0-0', ".$index.", '0-0-0-0-0-0-0-0-0-0-0-0-0', '0-0-0-0-0-0-0-0-0-0-0-0-0', '0-0-0-0-0-0-0-0-0-0-0-0-0', now())";
  2184.  mysql_query($query, $db_id);
  2185.  
  2186.   $query="select LAST_INSERT_ID()";
  2187.   $result=mysql_query($query, $db_id);
  2188.   $row=mysql_fetch_row($result);
  2189.  
  2190.  $query="update map set type=3, subtype=".$row[0]." where x=".$x." and y=".$y;
  2191.  mysql_query($query, $db_id);
  2192.  
  2193.  if (!$is_cap)
  2194.  {
  2195.   $towns=towns($_SESSION["user"][0]);
  2196.   $army=explode("-", $towns[0][7]); $army[11]-=100; $army=implode("-", $army);
  2197.   $query="update towns set army='".$army."', upkeep=upkeep-100 where id=".$towns[0][0];
  2198.   mysql_query($query, $db_id);
  2199.  }
  2200.  if ($result) msg("Succes. You town has been created. Read the beginner's guide found in the help section.");
  2201.  else msg("Failed.".mysql_error());
  2202.  }
  2203. }
  2204.  
  2205. function install($name, $pass, $email, $faction)
  2206. {
  2207.  global $db_id;
  2208.  
  2209.  $query="insert into users(name, pass, email, level, joined, lastVisit, points, ip, grPath, faction) values('".$name."', '".$pass."', '".$email."', 5, now(), now(), 0, '".$_SERVER["REMOTE_ADDR"]."', 'default/', ".$faction.")";
  2210.  $result=mysql_query($query, $db_id);
  2211.  
  2212.  $handle = fopen ("map.dat","r") or
  2213.  die("Error opening map data file."); $ok=1;
  2214.  for ($i=0; $info[$i] = fscanf ($handle, "%i %i %i %i"); $i++)
  2215.  {
  2216.   if (!$info[$i][3])
  2217.    switch($info[$i][2])
  2218.    {
  2219.        case 1: $info[$i][3]=rand(1, 6); break;
  2220.        case 2: $info[$i][3]=rand(1, 4); break;
  2221.        default: ;
  2222.    }
  2223.         $query="insert into map(x, y, type, subtype) values (".$info[$i][0] .", ".$info[$i][1].", ".$info[$i][2].", ".$info[$i][3].")";
  2224.         $result=mysql_query($query, $db_id);    if (!$result) $ok=0;
  2225.  }
  2226.  fclose($handle);
  2227.  if ($ok) msg(" Succes. Map data added.");
  2228.  else msg("Failed.".mysql_error());
  2229. }
  2230. //chat functions
  2231. function send_chat($se, $sid, $msg, $re)
  2232. {
  2233.  global $db_id;
  2234.  
  2235.  $query="insert into chat (sId, timeStamp, message, recipient, sender) values (".$sid.", now(), '".$msg."', ".$re.", ".$se.")";
  2236.  mysql_query($query, $db_id);
  2237. }
  2238.  
  2239. function mute($id, $v)
  2240. {
  2241.  global $db_id;
  2242.  
  2243.  $query="update users set mute=".$v." where id=".$id;
  2244.  mysql_query($query, $db_id);
  2245. }
  2246.  
  2247. function get_chat($id, $sid, $lcheck, $span)
  2248. {
  2249.  global $db_id, $tdif;
  2250.  
  2251.  $query="delete from chat where hour(timediff(now(), timeStamp))>".($span/60)." or minute(timediff(now(), timeStamp))>".($span%60);
  2252.  $result=mysql_query($query, $db_id);
  2253.  $query="select message from chat where (sId=".$sid." and timeStamp>'".$lcheck."'".$tdif." and ((recipient=0 or recipient=".$id.") or sender=".$id.")) or (timeStamp>'".$lcheck."'".$tdif." and recipient=".$id.")";
  2254.  $result=mysql_query($query, $db_id);
  2255.  $msgs=array(); for ($i=0; $row=mysql_fetch_row($result); $i++) $msgs[$i]=$row[0];
  2256.  return $msgs;
  2257. }
  2258.  
  2259. function chat_s()
  2260. {
  2261.  global $db_id;
  2262.  
  2263.  $query="select * from chat_s";
  2264.  $result=mysql_query($query, $db_id);
  2265.  $chat_s=array(); for ($i=0; $row=mysql_fetch_row($result); $i++) $chat_s[$i]=$row;
  2266.  return $chat_s;
  2267. }
  2268.  
  2269. function update_room($a, $ri, $rn)
  2270. {
  2271.  global $db_id;
  2272.  
  2273.  switch ($a)
  2274.  {
  2275.   case 1: $query="insert into chat_s (name) values ('".$rn."')"; break;
  2276.   case 2: $query="update chat_s set name='".$rn."' where id=".$ri; break;
  2277.   case 3: $query="delete from chat_s where id=".$ri; break;
  2278.   default: ;
  2279.  }
  2280.  mysql_query($query, $db_id);
  2281. }
  2282. //end of chat functions
  2283. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement