Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2012
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 37.97 KB | None | 0 0
  1. <?php
  2. /**
  3. *
  4. * @ This file is created by deZender.Net
  5. * @ deZender (PHP4 Decoder for eAccelerator & MMCache)
  6. *
  7. * @ Version : 1.1.3.0
  8. * @ Author : DeZender
  9. * @ Release on : 17.05.2011
  10. * @ Official site : http://DeZender.Net
  11. *
  12. */
  13.  
  14. function check_recruit($id, $time) {
  15. global $db;
  16.  
  17. $result = $db->query( 'SELECT unit,num_unit,num_finished,time_start,time_finished,time_per_unit,villageid from recruit where id=\'' . $id . '\'' );
  18.  
  19. if ($row = $db->Fetch( $result )) {
  20. if ($row['num_unit'] < $units_finished = floor( $diff_time = $time - $row['time_start'] / $row['time_per_unit'] ) - $row['num_finished'] + $row['num_finished']) {
  21. $units_finished = $row['num_unit'] - $row['num_finished'];
  22. }
  23.  
  24. $db->query( 'UPDATE unit_place SET ' . $row['unit'] . '=' . $row['unit'] . ( '+\'' . $units_finished . '\' where villages_from_id=\'' ) . $row['villageid'] . '\' AND villages_to_id=\'' . $row['villageid'] . '\'' );
  25. $db->query( 'UPDATE villages SET all_' . $row['unit'] . '=all_' . $row['unit'] . ( '+\'' . $units_finished . '\' where id=\'' ) . $row['villageid'] . '\'' );
  26.  
  27. if ($units_finished + $row['num_finished'] == $row['num_unit']) {
  28. $db->query( 'DELETE from recruit where id=\'' . $id . '\'' );
  29. return true;
  30. }
  31.  
  32. $db->query( 'UPDATE recruit SET num_finished=num_finished+\'' . $units_finished . '\' where id=\'' . $id . '\'' );
  33. return $row['time_start'] + ( $units_finished + $row['num_finished'] ) * $row['time_per_unit'] + $row['time_per_unit'];
  34. }
  35.  
  36. }
  37.  
  38. function check_builds($id) {
  39. global $db;
  40.  
  41. $done = false;
  42. $reload_village = array( );
  43. $reload_player = array( );
  44. $result = $db->query( 'SELECT villageid,building,end_time from build where id=\'' . $id . '\'' );
  45.  
  46. while ($row = $db->Fetch( $result )) {
  47. $db->query( 'DELETE from build where id=\'' . $id . '\'' );
  48.  
  49. if ($db->affectedRows( ) == 1) {
  50. $result2 = $db->query( 'SELECT COUNT(*) AS build_count from build where villageid=\'' . $row['villageid'] . '\'' );
  51. $row2 = $db->Fetch( $result2 );
  52.  
  53. if ($row2['build_count'] == '0') {
  54. $add_sql = ',main_build=\'\' ';
  55. } else {
  56. $result2 = $db->query( 'SELECT building,end_time from build where villageid=\'' . $row['villageid'] . '\' order by end_time LIMIT 1' );
  57. $next_build = $db->Fetch( $result2 );
  58. $add_sql = ',main_build=\'' . $next_build['building'] . ',' . $next_build['end_time'] . '\' ';
  59. }
  60.  
  61.  
  62. if (!( ( ( ( !( $row['building'] == 'storage' ) && !( $row['building'] == 'wood' ) ) && !( $row['building'] == 'stone' ) ) && !( $row['building'] == 'iron' ) ))) {
  63. $res = $db->query( 'SELECT last_prod_aktu,wood,stone,iron,r_wood,r_stone,r_iron,storage from villages where id=' . $row['villageid'] . '' );
  64. ressis( $villagedata, $row['end_time'] );
  65. }
  66.  
  67. $db->query( 'UPDATE villages SET ' . $row['building'] . '=' . $row['building'] . ( '+1 ' . $add_sql . ' where id=\'' ) . $row['villageid'] . '\'' );
  68. return $row['villageid'];
  69. }
  70. }
  71.  
  72. }
  73.  
  74. function check_tech($id) {
  75. global $db;
  76.  
  77. $return = array( );
  78. $result = $db->query( 'SELECT research,villageid from research where id=\'' . $id . '\'' );
  79.  
  80. while ($row = $db->Fetch( $result )) {
  81. $db->query( 'DELETE from research where id=\'' . $id . '\'' );
  82. $db->query( 'UPDATE villages SET unit_' . $row['research'] . '_tec_level=unit_' . $row['research'] . '_tec_level+\'1\',smith_tec=\'\' where id=\'' . $row['villageid'] . '\'' );
  83. }
  84.  
  85. }
  86.  
  87. function check_dealers($id, $event_id) {
  88. global $db;
  89. global $cl_reports;
  90.  
  91. $result = $db->query( 'SELECT dealers,wood,stone,iron,type,from_village,to_village,start_time,end_time,from_userid,to_userid from dealers where id=\'' . $id . '\'' );
  92. $row = $db->Fetch( $result );
  93. $also_back = false;
  94.  
  95. if ($row['type'] == 'to') {
  96. $db->query( 'UPDATE villages SET r_wood=r_wood+' . $row['wood'] . ',r_stone=r_stone+' . $row['stone'] . ',r_iron=r_iron+' . $row['iron'] . ' where id=' . $row['to_village'] . '' );
  97. $start_time = $row['end_time'];
  98.  
  99. if ($end_time = $row['end_time'] + ( $row['end_time'] - $row['start_time'] ) <= time( )) {
  100. $also_back = true;
  101. }
  102.  
  103. $db->query( 'UPDATE dealers SET wood=0,stone=0,iron=0,start_time=' . $start_time . ',end_time=' . $end_time . ',type=\'back\' where id=' . $id );
  104. $db->query( 'UPDATE events SET can_knot=0,event_time=' . $end_time . ',cid=0 WHERE event_id=' . $id . ' AND event_type=\'dealers\'' );
  105. $result = $db->query( 'SELECT name from villages where id=' . $row['from_village'] . '' );
  106. $from_village = $db->Fetch( $result );
  107. $result = $db->query( 'SELECT username from users where id=' . $row['to_userid'] . '' );
  108. $to_user = $db->Fetch( $result );
  109. $cl_reports->sendRess( $row['from_userid'], $row['from_village'], entparse( $from_village['name'] ), $row['to_userid'], entparse( $to_user['username'] ), $row['to_village'], $row['wood'], $row['stone'], $row['iron'], $row['end_time'] );
  110.  
  111. if (!( $also_back)) {
  112. $db->query( 'DELETE from run_events where id=\'' . $event_id . 'dealers\'' );
  113. return false;
  114. }
  115. }
  116.  
  117. if (!( ( !( $row['type'] == 'back' ) && !$also_back ))) {
  118. $db->query( 'UPDATE villages SET dealers_outside=dealers_outside-' . $row['dealers'] . ',r_wood=r_wood+' . $row['wood'] . ',r_stone=r_stone+' . $row['stone'] . ',r_iron=r_iron+' . $row['iron'] . ' where id=' . $row['from_village'] . '' );
  119. $db->query( 'DELETE from dealers where id=' . $id );
  120. return true;
  121. }
  122.  
  123. }
  124.  
  125. function do_movement($id, $event_id, $time) {
  126. global $db;
  127.  
  128. $result = $db->query( 'SELECT die,from_village,to_village,units,type,start_time,end_time,building,from_userid,to_userid,to_userid,wood,stone,iron from movements where id=\'' . $id . '\'' );
  129. $row = $db->Fetch( $result );
  130. $row['id'] = $id;
  131.  
  132. if (!( isset( $row['type'] ))) {
  133. $row['type'] = '';
  134. }
  135.  
  136. switch ($row['type']) {
  137. case 'attack': {
  138. global $session;
  139.  
  140. return do_movement_attack( $row, $event_id, $time );
  141. }
  142.  
  143. case 'support': {
  144. if ($row['die'] == '1') {
  145. $db->query( 'DELETE from movements where id=' . $row['id'] . '' );
  146. return true;
  147. }
  148.  
  149. return do_movement_support( $row );
  150. }
  151.  
  152. case 'return': {
  153. if ($row['die'] == '1') {
  154. $db->query( 'DELETE from movements where id=' . $row['id'] . '' );
  155. return true;
  156. }
  157.  
  158. return do_movement_return( $row );
  159. }
  160.  
  161. case 'back': {
  162. if ($row['die'] == '1') {
  163. $db->query( 'DELETE from movements where id=' . $row['id'] . '' );
  164. return true;
  165. }
  166.  
  167. return do_movement_back( $row );
  168. }
  169.  
  170. case 'cancel': {
  171. if ($row['die'] == '1') {
  172. $db->query( 'DELETE from movements where id=' . $row['id'] . '' );
  173. return true;
  174. }
  175.  
  176. return do_movement_back( $row );
  177. }
  178. }
  179.  
  180. }
  181.  
  182. function do_movement_back($row) {
  183. global $cl_units;
  184. global $db;
  185.  
  186. $sql = 'UPDATE unit_place SET ';
  187. $first = true;
  188. $i = 0;
  189. $ex_units = explode( ';', $row['units'] );
  190.  
  191. foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
  192. if ($first) {
  193. $sql .= $dbname . '=' . $dbname . '+\'' . $ex_units[$i] . '\'';
  194. $first = false;
  195. } else {
  196. $sql .= ',' . $dbname . '=' . $dbname . '+\'' . $ex_units[$i] . '\'';
  197. }
  198.  
  199. ++$i;
  200. }
  201.  
  202. $sql .= ' WHERE villages_from_id=\'' . $row['from_village'] . '\' AND villages_to_id=\'' . $row['from_village'] . '\'';
  203. $db->query( $sql );
  204. $db->query( 'DELETE from movements where id=\'' . $row['id'] . '\'' );
  205. return true;
  206. }
  207.  
  208. function do_movement_return($row) {
  209. global $cl_units;
  210. global $db;
  211.  
  212. $sql = 'UPDATE unit_place SET ';
  213. $first = true;
  214. $i = 0;
  215. $ex_units = explode( ';', $row['units'] );
  216.  
  217. foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
  218. if ($first) {
  219. $sql .= $dbname . '=' . $dbname . '+\'' . $ex_units[$i] . '\'';
  220. $first = false;
  221. } else {
  222. $sql .= ',' . $dbname . '=' . $dbname . '+\'' . $ex_units[$i] . '\'';
  223. }
  224.  
  225. ++$i;
  226. }
  227.  
  228. $sql .= ' WHERE villages_from_id=\'' . $row['to_village'] . '\' AND villages_to_id=\'' . $row['to_village'] . '\'';
  229. $db->query( $sql );
  230.  
  231. if (!( ( ( !( 0 < $row['wood'] ) && !( 0 < $row['stone'] ) ) && !( 0 < $row['iron'] ) ))) {
  232. $db->query( 'UPDATE villages SET r_wood=r_wood+\'' . $row['wood'] . '\',r_stone=r_stone+\'' . $row['stone'] . '\',r_iron=r_iron+\'' . $row['iron'] . '\' where id=\'' . $row['to_village'] . '\'' );
  233. }
  234.  
  235. $db->query( 'DELETE from movements where id=\'' . $row['id'] . '\'' );
  236. return true;
  237. }
  238.  
  239. function do_movement_attack($row, $event_id, $event_time, $var = '') {
  240. global $db;
  241. global $cl_units;
  242. global $cl_builds;
  243. global $config;
  244. global $arr_maxhide;
  245. global $cl_reports;
  246.  
  247. $reload_allys = array( );
  248. $del_event = false;
  249. $att_ex_units = explode( ';', $row['units'] );
  250. $i = 0;
  251.  
  252. foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
  253. $att[] = $att_ex_units[$i];
  254. ++$i;
  255. }
  256.  
  257. $first = true;
  258. $techs = '';
  259.  
  260. foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
  261. while ($first) {
  262. $techs .= $dbname . '_tec_level AS ' . $dbname;
  263. $first = false;
  264. break;
  265. }
  266.  
  267. $techs .= ',' . $dbname . '_tec_level AS ' . $dbname;
  268. }
  269.  
  270. $result = $db->query( 'SELECT ' . $techs . ' from villages where id=\'' . $row['from_village'] . '\'' );
  271. $att_tech = $db->Fetch( $result );
  272. $first = true;
  273. $units = '';
  274.  
  275. foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
  276. while ($first) {
  277. $units .= 'SUM(' . $dbname . ') AS ' . $dbname;
  278. $first = false;
  279. break;
  280. }
  281.  
  282. $units .= ',SUM(' . $dbname . ') AS ' . $dbname;
  283. }
  284.  
  285. $result = $db->query( 'SELECT ' . $units . ' from unit_place where villages_to_id=\'' . $row['to_village'] . '\'' );
  286. $def = $db->Fetch( $result );
  287. $first = true;
  288. $techs = '';
  289.  
  290. foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
  291. while ($first) {
  292. $techs .= $dbname . '_tec_level AS ' . $dbname;
  293. $first = false;
  294. break;
  295. }
  296.  
  297. $techs .= ',' . $dbname . '_tec_level AS ' . $dbname;
  298. }
  299.  
  300.  
  301. if (!( empty( $row['building'] ))) {
  302. if ($row['building'] != 'storage') {
  303. if ($row['building'] != 'hide') {
  304. if ($row['building'] != 'wall') {
  305. if ($row['building'] != 'wood') {
  306. if ($row['building'] != 'stone') {
  307. if ($row['building'] != 'iron') {
  308. $techs .= ',' . $row['building'];
  309. }
  310. }
  311. }
  312. }
  313. }
  314. }
  315. }
  316.  
  317. $result = $db->query( 'SELECT ' . $techs . ',wall,r_wood,r_stone,r_iron,last_prod_aktu,storage,hide,wood,stone,iron,agreement,agreement_aktu,attacks,snobed_by from villages where id=\'' . $row['to_village'] . '\'' );
  318. $def_tech = $db->Fetch( $result );
  319. $others['def_wall'] = $def_tech['wall'];
  320.  
  321. if ($row['building'] != 'wall') {
  322. unset( $def_tech[wall] );
  323. }
  324.  
  325. $def_ress['r_wood'] = $def_tech['r_wood'];
  326. unset( $def_tech[r_wood] );
  327. $def_ress['r_stone'] = $def_tech['r_stone'];
  328. unset( $def_tech[r_stone] );
  329. $def_ress['r_iron'] = $def_tech['r_iron'];
  330. unset( $def_tech[r_iron] );
  331. $def_ress['wood'] = $def_tech['wood'];
  332.  
  333. if ($row['building'] != 'wood') {
  334. unset( $def_tech[wood] );
  335. }
  336.  
  337. $def_ress['stone'] = $def_tech['stone'];
  338.  
  339. if ($row['building'] != 'stone') {
  340. unset( $def_tech[stone] );
  341. }
  342.  
  343. $def_ress['iron'] = $def_tech['iron'];
  344.  
  345. if ($row['building'] != 'iron') {
  346. unset( $def_tech[iron] );
  347. }
  348.  
  349. $def_ress['hide'] = $def_tech['hide'];
  350.  
  351. if ($row['building'] != 'hide') {
  352. unset( $def_tech[hide] );
  353. }
  354.  
  355. $def_ress['storage'] = $def_tech['storage'];
  356.  
  357. if ($row['building'] != 'storage') {
  358. unset( $def_tech[storage] );
  359. }
  360.  
  361. $def_ress['last_prod_aktu'] = $def_tech['last_prod_aktu'];
  362. unset( $def_tech[last_prod_aktu] );
  363. $def_ress['id'] = $row['to_village'];
  364. $def_agreement['agreement'] = $def_tech['agreement'];
  365. unset( $def_tech[agreement] );
  366. $def_agreement['agreement_aktu'] = $def_tech['agreement_aktu'];
  367. unset( $def_tech[agreement] );
  368. $def_agreement['id'] = $row['to_village'];
  369. $def_attacks = $def_tech['attacks'];
  370. unset( $def_tech[attacks] );
  371. $def_snobed_by = $def_tech['snobed_by'];
  372. unset( $def_tech[snobed_by] );
  373.  
  374. if (!( empty( $row['building'] ))) {
  375. $others['def_building'] = $def_tech[$row['building']];
  376. $others['cata_building'] = $row['building'];
  377. unset( $def_tech[$row['building']] );
  378. } else {
  379. $others['def_building'] = 0;
  380. $others['cata_building'] = '';
  381. }
  382.  
  383. $others['luck'] = mt_rand( -25, 25 );
  384.  
  385. if ($config['moral_activ']) {
  386. if ($row['to_userid'] == '-1') {
  387. $others['moral'] = 100;
  388. } else {
  389. $result = $db->query( 'SELECT points from users where id=\'' . $row['from_userid'] . '\'' );
  390. $att_player = $db->Fetch( $result );
  391. $result = $db->query( 'SELECT points from users where id=\'' . $row['to_userid'] . '\'' );
  392. $def_player = $db->Fetch( $result );
  393. $others['moral'] = calc_moral( $def_player['points'], $att_player['points'] );
  394. }
  395. } else {
  396. $others['moral'] = 100;
  397. }
  398.  
  399. $simulate = simulate( $att, $att_tech, $def, $def_tech, $others );
  400.  
  401. if ($row['building'] == 'storage') {
  402. $def_ress['storage'] = $simulate['others']['new_building'];
  403. }
  404.  
  405. $max_booty = 0;
  406.  
  407. foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
  408. $max_booty += $cl_units->get_booty( $dbname ) * ( $simulate['att'][$dbname] - $simulate['att_lose'][$dbname] );
  409. }
  410.  
  411. $ress_calc = ressis( $def_ress, $event_time );
  412. $ress_calc['r_wood'] -= $arr_maxhide[$def_ress['hide']];
  413. $ress_calc['r_stone'] -= $arr_maxhide[$def_ress['hide']];
  414. $ress_calc['r_iron'] -= $arr_maxhide[$def_ress['hide']];
  415. $ress_calc['r_wood'] = ( $ress_calc['r_wood'] < 0 ? 0 : $ress_calc['r_wood'] );
  416. $ress_calc['r_stone'] = ( $ress_calc['r_stone'] < 0 ? 0 : $ress_calc['r_stone'] );
  417. $ress_calc['r_iron'] = ( $ress_calc['r_iron'] < 0 ? 0 : $ress_calc['r_iron'] );
  418. $ress_calc['all_ress'] = $ress_calc['r_wood'] + $ress_calc['r_stone'] + $ress_calc['r_iron'];
  419. ( true ? $ress_calc['all_ress'] == '0' : 0 );
  420. $ress_calc['procent_wood'] = 100 / $ress_calc['all_ress'] * $ress_calc['r_wood'];
  421. ( true ? $ress_calc['all_ress'] == '0' : 0 );
  422. $ress_calc['procent_stone'] = 100 / $ress_calc['all_ress'] * $ress_calc['r_stone'];
  423. ( true ? $ress_calc['all_ress'] == '0' : 0 );
  424. $ress_calc['procent_iron'] = 100 / $ress_calc['all_ress'] * $ress_calc['r_iron'];
  425. $booty['wood'] = ( $ress_calc['r_wood'] < $max_ress_booty = floor( $max_booty * ( $ress_calc['procent_wood'] / 100 ) ) ? $ress_calc['r_wood'] : $max_ress_booty );
  426. $booty['stone'] = ( $ress_calc['r_stone'] < $max_ress_booty = floor( $max_booty * ( $ress_calc['procent_stone'] / 100 ) ) ? $ress_calc['r_stone'] : $max_ress_booty );
  427. $booty['iron'] = ( $ress_calc['r_iron'] < $max_ress_booty = floor( $max_booty * ( $ress_calc['procent_iron'] / 100 ) ) ? $ress_calc['r_iron'] : $max_ress_booty );
  428. $stolen_booty = $booty['wood'] + $booty['stone'] + $booty['iron'];
  429. $not_enough_wood = false;
  430. $not_enough_stone = false;
  431. $not_enough_iron = false;
  432.  
  433. while ($stolen_booty < $max_booty) {
  434. if ($stolen_booty < $max_booty) {
  435. if (0 < $ress_calc['r_wood'] - $booty['wood']) {
  436. ++$booty['wood'];
  437. ++$stolen_booty;
  438. }
  439. } else {
  440. $not_enough_wood = true;
  441. }
  442.  
  443.  
  444. if ($stolen_booty < $max_booty) {
  445. if (0 < $ress_calc['r_stone'] - $booty['stone']) {
  446. ++$booty['stone'];
  447. ++$stolen_booty;
  448. }
  449. } else {
  450. $not_enough_stone = true;
  451. }
  452.  
  453.  
  454. if ($stolen_booty < $max_booty) {
  455. if (0 < $ress_calc['r_iron'] - $booty['iron']) {
  456. ++$booty['iron'];
  457. ++$stolen_booty;
  458. }
  459. } else {
  460. $not_enough_iron = true;
  461. }
  462.  
  463.  
  464. while ($not_enough_wood) {
  465. while ($not_enough_stone) {
  466. if ($not_enough_iron) {
  467. }
  468.  
  469. break 2;
  470. }
  471.  
  472. break;
  473. }
  474. }
  475.  
  476. $market_ress['wood'] = 0;
  477. $market_ress['stone'] = 0;
  478. $market_ress['iron'] = 0;
  479.  
  480. if ($stolen_booty < $max_booty) {
  481. $result = $db->query( 'SELECT sell,sell_ress,id from offers where from_village=' . $row['to_village'] . '' );
  482.  
  483. while ($offers = $db->Fetch( $result )) {
  484. while (!( $max_booty <= $stolen_booty)) {
  485. $db->query( 'DELETE from offers_multi where id=' . $offers['id'] . ( ' LIMIT ' . $offers_num = ceil( $ress = $max_booty - $stolen_booty / $offers['sell'] ) ) );
  486.  
  487. if ($ress < $offers_ress = $num = $db->affectedRows( ) * $offers['sell']) {
  488. $booty[$offers['sell_ress']] += $ress;
  489. $market_ress[$offers['sell_ress']] += $ress;
  490. $stolen_booty += $ress;
  491. $db->query( 'UPDATE villages SET r_' . $offers['sell_ress'] . '=r_' . $offers['sell_ress'] . '+' . $ress_to_village = $offers_ress - $ress . ' where id=' . $row['to_village'] . '' );
  492. } else {
  493. $booty[$offers['sell_ress']] += $offers_ress;
  494. $market_ress[$offers['sell_ress']] += $offers_ress;
  495. $stolen_booty += $offers_ress;
  496. }
  497.  
  498.  
  499. if ($db->NumRows( $db->query( 'SELECT id from offers_multi where id=' . $offers['id'] . '' ) ) == 0) {
  500. $db->query( 'DELETE from offers where id=' . $offers['id'] . '' );
  501. } else {
  502. $db->query( 'UPDATE offers SET multi=multi-' . $num . ' where id=\'' . $offers['id'] . '\'' );
  503. }
  504.  
  505. $db->query( 'UPDATE villages SET dealers_outside=dealers_outside-' . ceil( $offers['sell'] / 1000 ) * $num . ' where id=' . $row['to_village'] . '' );
  506. break;
  507. }
  508. }
  509. }
  510.  
  511. $rows_query = array( );
  512. $sql = 'UPDATE villages SET ';
  513. $bh_profit = 0;
  514.  
  515. if ($others['def_wall'] != $simulate['others']['new_wall']) {
  516. $rows_query[] = 'wall=\'' . $simulate['others']['new_wall'] . '\'';
  517.  
  518. for ($n = $simulate['others']['new_wall'] + 1; $n <= $others['def_wall']; ++$n) {
  519. $bh_profit += $cl_builds->get_bh( 'wall', $n );
  520. }
  521. }
  522.  
  523. if ($others['def_building'] != $simulate['others']['new_building']) {
  524. $rows_query[] = $others['cata_building'] . '=\'' . $simulate['others']['new_building'] . '\'';
  525.  
  526. for ($n = $simulate['others']['new_building'] + 1; $n <= $others['def_building']; ++$n) {
  527. $bh_profit += $cl_builds->get_bh( $others['cata_building'], $n );
  528. }
  529. }
  530.  
  531. if ($booty['wood'] != '0') {
  532. $rows_query[] = 'r_wood=r_wood-\'' . ( $booty['wood'] - $market_ress['wood'] ) . '\'';
  533. }
  534.  
  535. if ($booty['stone'] != '0') {
  536. $rows_query[] = 'r_stone=r_stone-\'' . ( $booty['stone'] - $market_ress['stone'] ) . '\'';
  537. }
  538.  
  539. if ($booty['iron'] != '0') {
  540. $rows_query[] = 'r_iron=r_iron-\'' . ( $booty['iron'] - $market_ress['iron'] ) . '\'';
  541. }
  542.  
  543. if (0 < $bh_profit) {
  544. $rows_query[] = 'r_bh=r_bh-\'' . $bh_profit . '\'';
  545. }
  546.  
  547. $insert_snobed_def = false;
  548.  
  549. if ($simulate['att']['unit_snob'] - $simulate['att_lose']['unit_snob']) {
  550. $agreement_abzug = mt_rand( 20, 35 );
  551. $def_agreement['agreement'] = calc_agreement( $def_agreement, $event_time );
  552. $agreement = $def_agreement['agreement'] . ';';
  553. $def_agreement['agreement'] -= $agreement_abzug;
  554. $agreement .= $def_agreement['agreement'];
  555. $rows_query[] = 'agreement_aktu=\'' . $event_time . '\'';
  556.  
  557. if ($def_agreement['agreement'] < 0) {
  558. $rows_query[] = 'agreement=\'25\'';
  559.  
  560. foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
  561. $u_querys[] = '' . $dbname;
  562. }
  563.  
  564. $result = $db->query( 'SELECT ' . implode( ',', $u_querys ) . ' from unit_place where villages_from_id=' . $row['to_village'] . ' AND villages_to_id=' . $row['to_village'] . '' );
  565. $in_village_units = $db->Fetch( $result );
  566. $querys = array( );
  567.  
  568. foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
  569. $querys[] = 'all_' . $dbname . '';
  570. }
  571.  
  572. $result = $db->query( 'SELECT ' . implode( ',', $querys ) . ' from villages where id=\'' . $row['to_village'] . '\'' );
  573. $outside_units_row = $db->Fetch( $result );
  574. $outside_units = array( );
  575. $bh_outside = 0;
  576. $units_in_village = array( );
  577.  
  578. foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
  579. $outside_units[] = $outside_units_row['all_' . $dbname] - $simulate['def'][$dbname];
  580. $bh_outside += ( $outside_units_row['all_' . $dbname] - $in_village_units[$dbname] ) * $cl_units->get_bhprice( $dbname );
  581. $rows_query[] = 'all_' . $dbname . '=0';
  582. }
  583.  
  584. $outside_deff_village = implode( ';', $outside_units );
  585. $del_event = true;
  586. $db->query( 'DELETE from movements where id=' . $row['id'] . '' );
  587. $res = $db->query( 'SELECT SUM(unit_snob) AS snob_count from unit_place where villages_from_id=' . $row['to_village'] . ' AND villages_from_id!=villages_to_id' );
  588. $res = $db->Fetch( $res );
  589.  
  590. if ($res['snob_count'] != 0) {
  591. $db->query( 'UPDATE villages SET recruited_snobs=recruited_snobs-' . $res['snob_count'] . ' where id=' . $row['to_village'] . '' );
  592. }
  593.  
  594. $db->query( 'DELETE from unit_place where villages_from_id=' . $row['to_village'] . ' AND villages_from_id!=villages_to_id' );
  595. $result = $db->query( 'SELECT id,units,type from movements where send_from_village=' . $row['to_village'] . '' );
  596.  
  597. while ($mov = $db->Fetch( $result )) {
  598. $units = explode( ';', $mov['units'] );
  599. $i = 0;
  600.  
  601. foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
  602. if ($dbname == 'unit_snob') {
  603. if ($units[$i] != 0) {
  604. $db->query( 'UPDATE villages SET recruited_snobs=recruited_snobs-' . $units[$i] . ' where id=' . $row['to_village'] . '' );
  605. }
  606. }
  607.  
  608. ++$i;
  609. }
  610.  
  611.  
  612. while ($mov['type'] != 'attack') {
  613. $db->query( 'DELETE from events where event_id=\'' . $mov['id'] . '\' AND event_type=\'movement\'' );
  614. $db->query( 'DELETE from movements where id=' . $mov['id'] . '' );
  615. break;
  616. }
  617. }
  618.  
  619. $db->query( 'UPDATE events SET user_id=' . $row['from_userid'] . ' where villageid=' . $row['to_village'] . '' );
  620. $db->query( 'UPDATE movements SET die=\'1\', from_userid=' . $row['from_userid'] . ' where send_from_village=\'' . $row['to_village'] . '\'' );
  621. $db->query( 'UPDATE movements SET to_userid=' . $row['from_userid'] . ' where to_village=' . $row['to_village'] . ' AND type=\'attack\'' );
  622. $rows_query[] = 'userid=\'' . $row['from_userid'] . '\'';
  623. $rows_query[] = 'r_bh=r_bh-\'' . $bh_outside . '\'';
  624. $rows_query[] = 'snobed_by=\'' . $row['from_village'] . '\'';
  625.  
  626. if ($def_snobed_by != -1) {
  627. $db->query( 'UPDATE villages SET control_villages=control_villages-\'1\' where id=\'' . $def_snobed_by . '\'' );
  628. }
  629.  
  630. $db->query( 'UPDATE villages SET control_villages=control_villages+\'1\',recruited_snobs=recruited_snobs-\'1\',all_unit_snob=all_unit_snob-\'1\',r_bh=r_bh-' . $cl_units->get_bhprice( 'unit_snob' ) . ' where id=\'' . $row['from_village'] . '\'' );
  631.  
  632. if (!( in_array( $row['to_userid'], $reload_allys ))) {
  633. $reload_alllys[] = $row['to_userid'];
  634. }
  635.  
  636. if (!( in_array( $row['from_userid'], $reload_allys ))) {
  637. $reload_alllys[] = $row['from_userid'];
  638. }
  639.  
  640. --$def_attacks;
  641. $result = $db->query( 'SELECT username from users where id=\'' . $row['from_userid'] . '\'' );
  642. $att_player = $db->Fetch( $result );
  643. $db->query( 'UPDATE users SET villages=villages-\'1\',attacks=attacks-\'' . $def_attacks . '\',ennobled_by=\'' . $att_player['username'] . '\' where id=\'' . $row['to_userid'] . '\'' );
  644. $db->query( 'UPDATE offers set userid=' . $row['from_userid'] . ' where from_village=' . $row['to_village'] . '' );
  645. $db->query( 'UPDATE users SET villages=villages+\'1\',attacks=attacks+\'' . $def_attacks . '\' where id=\'' . $row['from_userid'] . '\'' );
  646. $db->query( 'UPDATE dealers SET from_userid=\'' . $row['from_userid'] . '\' where from_village=\'' . $row['to_village'] . '\'' );
  647. $db->query( 'UPDATE dealers SET to_userid=\'' . $row['from_userid'] . '\' where to_village=\'' . $row['to_village'] . '\'' );
  648. $insert_snobed_def = true;
  649. } else {
  650. $rows_query[] = 'agreement=agreement-\'' . $agreement_abzug . '\'';
  651. $outside_deff_village = '';
  652. }
  653. } else {
  654. $agreement = '100;100';
  655. $outside_deff_village = '';
  656. }
  657.  
  658. $rows_query[] = 'attacks=attacks-\'1\'';
  659. $sql .= implode( ',', $rows_query );
  660. $sql .= ' where id=\'' . $row['to_village'] . '\'';
  661.  
  662. if (0 < count( $rows_query )) {
  663. $db->query( $sql );
  664. }
  665.  
  666. if ($insert_snobed_def) {
  667. reload_player_points( $row['from_userid'] );
  668. reload_player_points( $row['to_userid'] );
  669. reload_player_rangs( );
  670. }
  671.  
  672. if (!( ( !( $others['def_wall'] != $simulate['others']['new_wall'] ) && !( $others['def_building'] != $simulate['others']['new_building'] ) ))) {
  673. reload_village_points( $row['to_village'] );
  674. reload_player_points( $row['to_userid'] );
  675. reload_player_rangs( );
  676.  
  677. if (!( in_array( $row['to_userid'], $reload_allys ))) {
  678. $reload_alllys[] = $row['to_userid'];
  679. }
  680. }
  681.  
  682. $new_att_units = array( );
  683. $att_bh_profit = 0;
  684. $all_units_died_att = true;
  685.  
  686. foreach ($simulate['att'] as $unit => $num) {
  687. $new_att_units[] = $num - $simulate['att_lose'][];
  688. $att_bh_profit += $simulate['att_lose'][$unit] * $cl_units->get_bhprice( $unit );
  689.  
  690. while ($num - $simulate['att_lose'][$unit] != '0') {
  691. $all_units_died_att = false;
  692. break;
  693. }
  694. }
  695.  
  696. $return_end = $row['end_time'] + ( ['end_time'] - ['start_time'] );
  697. $do_return_try = true;
  698.  
  699. if (!( ( !$all_units_died_att && !( $row['die'] == 1 ) ))) {
  700. $db->query( 'DELETE from movements where id=\'' . $row['id'] . '\'' );
  701. $del_event = true;
  702. $do_return_try = false;
  703. } else {
  704. $sql = 'UPDATE movements SET ';
  705. $sql .= 'wood=\'' . $booty['wood'] . '\',stone=\'' . ['stone'] . '\',iron=\'' . ['iron'] . '\'';
  706. $sql .= ',units=\'' . implode( ';', $new_att_units ) . '\',type=\'return\',to_hidden=\'1\'';
  707. $sql .= ',from_village=\'' . $row['to_village'] . '\', from_userid=\'' . ['to_userid'] . '\'';
  708. $sql .= ',to_village=\'' . $row['from_village'] . '\',to_userid=\'' . ['from_userid'] . '\'';
  709. $sql .= ',start_time=' . $row['end_time'] . ',end_time=\'' . $return_end . '\'';
  710. $sql .= ' where id=\'' . $row['id'] . '\'';
  711. $db->query( $sql );
  712. }
  713.  
  714. $db->query( 'UPDATE users SET attacks=attacks-\'1\' where id=\'' . $row['to_userid'] . '\'' );
  715. $units_accounteFor = array( );
  716. $abzug = array( );
  717. $max_abzug = array( );
  718. $result = $db->query( 'SELECT ' . implode( ',', $cl_units->get_array( 'dbname' ) ) . ',villages_from_id from unit_place where villages_to_id=\'' . $row['to_village'] . '\'' );
  719.  
  720. while ($row_unitplace = $db->Fetch( $result )) {
  721. foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
  722. if (!( isset( $units_accounteFor[] ))) {
  723. $units_accounteFor[$dbname] = 0;
  724. }
  725.  
  726. if ($row_unitplace[$dbname] != 0) {
  727. if ($simulate['def_lose'][$dbname] != 0) {
  728. $v_abzug = $simulate['def_lose'][$dbname] * ( 100 / ['def'][$dbname] * $row_unitplace[$dbname] / 100 );
  729. }
  730. } else {
  731. $v_abzug = 0;
  732. }
  733.  
  734. $abzug[$row_unitplace['villages_from_id']][$dbname] = round( $v_abzug );
  735. $max_abzug[$row_unitplace['villages_from_id']][$dbname] = $row_unitplace[$dbname];
  736. $units_accounteFor[$dbname] += $abzug[$row_unitplace['villages_from_id']][$dbname];
  737. }
  738. }
  739.  
  740.  
  741. if (true) {
  742. foreach ($abzug as $id => $arr) {
  743. foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
  744. while ($units_accounteFor[] != $simulate['def_lose'][$dbname]) {
  745. while ($abzug[$id][$dbname] != 0) {
  746. while ($abzug[$id][$dbname] != $max_abzug[$id][$dbname]) {
  747. while ($simulate['def_lose'][$dbname] < $units_accounteFor[$dbname]) {
  748. --$abzug[$id][$dbname];
  749. --$units_accounteFor[$dbname];
  750. break 4;
  751. }
  752.  
  753. ++$abzug[$id][$dbname];
  754. ++$units_accounteFor[$dbname];
  755. break 3;
  756. }
  757.  
  758. break 2;
  759. }
  760.  
  761. break;
  762. }
  763. }
  764. }
  765. }
  766.  
  767. if ($insert_snobed_def) {
  768. $sqlq = 'INSERT into unit_place (villages_from_id,villages_to_id,' . implode( ',', $cl_units->get_array( 'dbname' ) ) . ') VALUES (\'' . $row['from_village'] . '\',\'' . ['to_village'] . '\'';
  769.  
  770. foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
  771. while ( == 'unit_snob') {
  772. $sqlq .= ',\'' . ( $simulate['att'][$dbname] - ['att_lose'][$dbname] - 1 ) . '\'';
  773. break;
  774. }
  775.  
  776. $sqlq .= ',\'' . ( $simulate['att'][$dbname] - ['att_lose'][$dbname] ) . '\'';
  777. }
  778.  
  779. $sqlq .= ')';
  780. $db->query( $sqlq );
  781. }
  782.  
  783. $result = $db->query( 'SELECT name from villages where id=\'' . $row['to_village'] . '\'' );
  784. $arr = $db->Fetch( $result );
  785. $row['to_villagename'] = html_entity_decode( entparse( $arr['name'] ) );
  786. $bh_def = 0;
  787.  
  788. foreach ($abzug as $id => $arr) {
  789. $sql = 'UPDATE unit_place SET ';
  790. $row_query = array( );
  791.  
  792. foreach ($abzug[$id] as $dbname => $num) {
  793. $row_query[] = . '=' . $dbname . '-\'' . $num . '\'';
  794. }
  795.  
  796. $sql .= implode( ',', $row_query );
  797. $sql .= ' WHERE villages_from_id=\'' . $id . '\' AND villages_to_id=\'' . $row['to_village'] . '\'';
  798. $db->query( $sql );
  799. $bh = 0;
  800.  
  801. foreach ($abzug[$id] as $dbname => $num) {
  802. $bh += $cl_units->get_bhprice( $dbname ) * $num;
  803. }
  804.  
  805. $bh_def += $bh;
  806. $sql = 'UPDATE villages SET ';
  807. $row_query = array( );
  808.  
  809. if (!( ( $def_agreement['agreement'] < 0 && $id == $row['to_village'] ))) {
  810. foreach ($abzug[$id] as $dbname => $num) {
  811. $row_query[] = 'all_' . . '=all_' . $dbname . '-\'' . $num . '\'';
  812. }
  813. }
  814.  
  815. if ($abzug[$id]['unit_snob'] != 0) {
  816. $row_query[] = 'recruited_snobs=recruited_snobs-' . $abzug[$id]['unit_snob'] . '';
  817. }
  818.  
  819. $row_query[] = 'r_bh=r_bh-\'' . $bh . '\'';
  820. $sql .= implode( ',', $row_query );
  821. $sql .= ' WHERE id=\'' . $id . '\'';
  822. $db->query( $sql );
  823. $all_units_died = true;
  824. $no_units_died = true;
  825.  
  826. foreach ($abzug[$id] as $dbname => $num) {
  827. if ($max_abzug[$id][] - $num) {
  828. $all_units_died = false;
  829. }
  830.  
  831.  
  832. while ($max_abzug[$id][$dbname] != $num) {
  833. $no_units_died = false;
  834. break;
  835. }
  836. }
  837.  
  838.  
  839. while ($id != $row['to_village']) {
  840. if ($all_units_died) {
  841. $color = 'red';
  842. } else {
  843. if ($no_units_died) {
  844. $color = 'green';
  845. } else {
  846. $color = 'yellow';
  847. }
  848. }
  849.  
  850. $result = $db->query( 'SELECT name,userid from villages where id=\'' . $id . '\'' );
  851. $arr = $db->Fetch( $result );
  852. $support_villagename = html_entity_decode( entparse( $arr['name'] ) );
  853. $result = $db->query( 'SELECT id from users where id=\'' . $arr['userid'] . '\'' );
  854. $support_userid = $arr = $db->Fetch( $result )['id'];
  855. $cl_reports->support_attack( $support_userid, $id, $support_villagename, $row['to_userid'], $row['to_village'], $row['to_villagename'], $color, $event_time, implode( ';', $max_abzug[$id] ), implode( ';', $abzug[$id] ) );
  856.  
  857. while ($all_units_died) {
  858. $db->query( 'DELETE from unit_place WHERE villages_from_id=\'' . $id . '\' AND villages_to_id=\'' . $row['to_village'] . '\'' );
  859. break 2;
  860. }
  861.  
  862. break;
  863. }
  864. }
  865.  
  866. $db->query( 'UPDATE users SET killed_units_att=killed_units_att+' . $bh_def . ',killed_units_altogether=killed_units_altogether+' . $bh_def . ' where id=' . $row['from_userid'] . '' );
  867. $row_querys = array( );
  868.  
  869. if ($row['die'] != 1) {
  870. $row_querys[] = 'r_bh=r_bh-\'' . $att_bh_profit . '\'';
  871. }
  872.  
  873. $db->query( 'UPDATE users SET killed_units_def=killed_units_def+' . $att_bh_profit . ',killed_units_altogether=killed_units_altogether+' . $att_bh_profit . ' where id=' . $row['to_userid'] . '' );
  874.  
  875. if ($simulate['att_lose']['unit_snob'] != 0) {
  876. if ($row['die'] != 1) {
  877. $row_querys[] = 'recruited_snobs=recruited_snobs-' . $simulate['att_lose']['unit_snob'];
  878. }
  879. }
  880.  
  881. if ($row['die'] != 1) {
  882. foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
  883. $row_querys[] = 'all_' . . '=all_' . $dbname . '-\'' . $simulate['att_lose'][$dbname] . '\'';
  884. }
  885. }
  886.  
  887. if (count( $row_querys )) {
  888. $db->query( 'UPDATE villages SET ' . implode( ',', $row_querys ) . ' where id=\'' . $row['from_village'] . '\'' );
  889. }
  890.  
  891. $result = $db->query( 'SELECT username from users where id=\'' . $row['from_userid'] . '\'' );
  892. $arr = $db->Fetch( $result );
  893. $row['from_username'] = html_entity_decode( entparse( $arr['username'] ) );
  894. $ram = $others['def_wall'] . ';' . $simulate['others']['new_wall'];
  895. $catapult = $others['def_building'] . ';' . $simulate['others']['new_building'] . ';' . ['cata_building'];
  896. $booty = $booty['wood'] . ';' . ['stone'] . ';' . ['iron'] . ';' . $stolen_booty . ( ';' . $max_booty );
  897. $cl_reports->attack( $row['from_userid'], $row['from_username'], $row['from_village'], $row['to_userid'], $row['to_village'], $row['to_villagename'], $simulate['others']['wins'], $simulate['others']['att_color'], $simulate['others']['def_color'], $row['end_time'], implode( ';', $simulate['att'] ), implode( ';', $simulate['att_lose'] ), implode( ';', $simulate['def'] ), implode( ';', $simulate['def_lose'] ), $outside_deff_village, $agreement, $ram, $catapult, $booty, $others['luck'], $others['moral'], $simulate['others']['see_def_units'] );
  898.  
  899. if (!( $all_units_died_att)) {
  900. if (!( $row['die'] == 1)) {
  901. $db->query( 'UPDATE events SET event_time=\'' . $return_end . '\',can_knot=0,cid=0 where event_id=\'' . $row['id'] . '\' AND event_type=\'movement\'' );
  902. $db->query( 'DELETE from run_events where id=\'' . $event_id . 'movement\'' );
  903. }
  904. }
  905.  
  906. $reloaded = array( );
  907.  
  908. foreach ($reload_allys as $id) {
  909. $result = $db->query( 'SELECT ally from users where id=' . );
  910.  
  911. if (!( in_array( $r = $db->Fetch( $result )['ally'], $reloaded ))) {
  912. reload_ally_points( $r['ally'] );
  913. }
  914.  
  915. $reloaded[] = $r['ally'];
  916. }
  917.  
  918. reload_ally_rangs( );
  919.  
  920. if ($do_return_try) {
  921. if (!( $del_event)) {
  922. if ($return_end <= time( )) {
  923. $del_event = do_movement( $row['id'], $event_id, $event_time );
  924. }
  925. }
  926. }
  927.  
  928. return $del_event;
  929. }
  930.  
  931. function do_movement_support($row) {
  932. global $cl_units;
  933. global $db;
  934. global $cl_reports;
  935.  
  936. $result = $db->query( 'SELECT COUNT(villages_to_id) AS count from unit_place where villages_from_id=\'' . $row['from_village'] . '\' AND villages_to_id=\'' . ['to_village'] . '\'' );
  937.  
  938. if ($exist_support = $db->Fetch( $result )['count'] == '0') {
  939. $sql = 'INSERT into unit_place (';
  940. $first = true;
  941.  
  942. foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
  943. while ($first) {
  944. $sql .= '' . $dbname;
  945. $first = false;
  946. break;
  947. }
  948.  
  949. $sql .= ',' . $dbname;
  950. }
  951.  
  952. $sql .= ',villages_from_id,villages_to_id) VALUES (';
  953. $first = true;
  954. $i = 0;
  955. $ex_units = explode( ';', $row['units'] );
  956.  
  957. foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
  958. if ($first) {
  959. $sql .= '\'' . $ex_units[$i] . '\'';
  960. $first = false;
  961. } else {
  962. $sql .= ',\'' . $ex_units[$i] . '\'';
  963. }
  964.  
  965. ++$i;
  966. }
  967.  
  968. $sql .= ',\'' . $row['from_village'] . '\',\'' . ['to_village'] . '\')';
  969. } else {
  970. $sql = 'UPDATE unit_place SET ';
  971. $first = true;
  972. $i = 0;
  973. $ex_units = explode( ';', $row['units'] );
  974.  
  975. foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
  976. if ($first) {
  977. $sql .= $dbname . '=' . $dbname . '+\'' . $ex_units[$i] . '\'';
  978. $first = false;
  979. } else {
  980. $sql .= ',' . $dbname . '=' . $dbname . '+\'' . $ex_units[$i] . '\'';
  981. }
  982.  
  983. ++$i;
  984. }
  985.  
  986. $sql .= ' where villages_from_id=\'' . $row['from_village'] . '\' AND villages_to_id=\'' . ['to_village'] . '\'';
  987. }
  988.  
  989. $db->query( $sql );
  990. $result = $db->query( 'SELECT username from users where id=\'' . $row['to_userid'] . '\'' );
  991. $arr = $db->Fetch( $result );
  992. $row['to_username'] = entparse( $arr['username'] );
  993. $result = $db->query( 'SELECT name from villages where id=\'' . $row['from_village'] . '\'' );
  994. $arr = $db->Fetch( $result );
  995. $row['from_villagename'] = entparse( $arr['name'] );
  996. $cl_reports->support( $row['from_userid'], $row['from_village'], $row['from_villagename'], $row['to_userid'], $row['to_username'], $row['to_village'], $row['units'], $row['end_time'] );
  997. $db->query( 'DELETE from movements where id=\'' . $row['id'] . '\'' );
  998. return true;
  999. }
  1000.  
  1001. function check_events() {
  1002. global $db;
  1003.  
  1004. $time = time( );
  1005. $reload_village_points = array( );
  1006. $event_ids = array( );
  1007. $do_event = true;
  1008. $i = 0;
  1009. $reload_allys = array( );
  1010. $result = $db->query( 'SELECT id,user_id,event_type,event_id,knot_event from events where event_time<\'' . $time . '\' order by event_time,id' );
  1011.  
  1012. while ($row = $db->Fetch( $result )) {
  1013. $delete_event = false;
  1014. $do_event = true;
  1015. $event_ids[$i] = $row['event_type'] . '_' . ['event_id'];
  1016.  
  1017. if ($do_event) {
  1018. switch ($row['event_type']) {
  1019. case 'build': {
  1020. if (isset( $villageid = check_builds( $row['event_id'] ) )) {
  1021. $reload_village_points[] = $villageid;
  1022. $delete_event = true;
  1023. break;
  1024. }
  1025. }
  1026.  
  1027. case 'movement': {
  1028. $do_mov = true;
  1029.  
  1030. if ($movement_return = do_movement( $row['event_id'], ['id'], $time )) {
  1031. $delete_event = true;
  1032. break;
  1033. }
  1034. }
  1035.  
  1036. case 'recruit': {
  1037. if (!( is_numeric( $rekruit = check_recruit( $row['event_id'], $time ) ))) {
  1038. $delete_event = true;
  1039. break;
  1040. } else {
  1041. $delete_event = false;
  1042. $db->query( 'UPDATE events SET event_time=\'' . $rekruit . '\',cid=\'0\' where id=\'' . $row['id'] . '\'' );
  1043. $db->query( 'DELETE from run_events where id=\'' . $row['id'] . ['event_type'] . '\'' );
  1044. break;
  1045. }
  1046. }
  1047.  
  1048. case 'research': {
  1049. check_tech( $row['event_id'] );
  1050. $delete_event = true;
  1051. break;
  1052. }
  1053.  
  1054. case 'dealers': {
  1055. $delete_event = check_dealers( $row['event_id'], ['id'] );
  1056. }
  1057. }
  1058. }
  1059.  
  1060. if ($delete_event) {
  1061. $db->query( 'DELETE from events where id=\'' . $row['id'] . '\'' );
  1062. } else {
  1063. $db->query( 'UPDATE events SET is_locked=0 where id=' . $row['id'] . ' AND is_locked=1' );
  1064. }
  1065.  
  1066. ++$i;
  1067. }
  1068.  
  1069. $reload_player_points = array( );
  1070.  
  1071. foreach ($reload_village_points as $villageid) {
  1072. reload_village_points( $villageid );
  1073. $res = $db->query( 'SELECT userid FROM `villages` WHERE id = ' . $villageid );
  1074.  
  1075. while (!( in_array( $village = $db->fetch( $res )['user_id'], $reload_player_points ))) {
  1076. $reload_player_points[] = $village['userid'];
  1077. break;
  1078. }
  1079. }
  1080.  
  1081.  
  1082. foreach ($reload_player_points as $playerid) {
  1083. reload_player_points( $playerid );
  1084. reload_player_rangs( );
  1085. }
  1086.  
  1087. }
  1088.  
  1089. include( 'include.inc.php' );
  1090.  
  1091. for ($i = 0; $i < 10000; ++$i) {
  1092. check_events( );
  1093. }
  1094.  
  1095. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement