Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- *
- * @ This file is created by deZender.Net
- * @ deZender (PHP4 Decoder for eAccelerator & MMCache)
- *
- * @ Version : 1.1.3.0
- * @ Author : DeZender
- * @ Release on : 17.05.2011
- * @ Official site : http://DeZender.Net
- *
- */
- function check_recruit($id, $time) {
- global $db;
- $result = $db->query( 'SELECT unit,num_unit,num_finished,time_start,time_finished,time_per_unit,villageid from recruit where id=\'' . $id . '\'' );
- if ($row = $db->Fetch( $result )) {
- if (['num_unit'] < $units_finished = floor( $diff_time = $time - $row['time_start'] / $row['time_per_unit'] ) - $row['num_finished'] + $row['num_finished']) {
- $units_finished = $row['num_unit'] - ['num_finished'];
- }
- $db->query( 'UPDATE unit_place SET ' . $row['unit'] . '=' . ['unit'] . ( '+\'' . $units_finished . '\' where villages_from_id=\'' ) . ['villageid'] . '\' AND villages_to_id=\'' . ['villageid'] . '\'' );
- $db->query( 'UPDATE villages SET all_' . $row['unit'] . '=all_' . ['unit'] . ( '+\'' . $units_finished . '\' where id=\'' ) . ['villageid'] . '\'' );
- if ($units_finished + $row['num_finished'] == ['num_unit']) {
- $db->query( 'DELETE from recruit where id=\'' . $id . '\'' );
- return true;
- }
- $db->query( 'UPDATE recruit SET num_finished=num_finished+\'' . $units_finished . '\' where id=\'' . $id . '\'' );
- return $row['time_start'] + ( $units_finished + ['num_finished'] ) * ['time_per_unit'] + ['time_per_unit'];
- }
- }
- function check_builds($id) {
- global $db;
- $done = false;
- $reload_village = array( );
- $reload_player = array( );
- $result = $db->query( 'SELECT villageid,building,end_time from build where id=\'' . $id . '\'' );
- while ($row = $db->Fetch( $result )) {
- $db->query( 'DELETE from build where id=\'' . $id . '\'' );
- if ($db->affectedRows( ) == 1) {
- $result2 = $db->query( 'SELECT COUNT(*) AS build_count from build where villageid=\'' . $row['villageid'] . '\'' );
- if ($row2 = $db->Fetch( $result2 )['build_count'] == '0') {
- $add_sql = ',main_build=\'\' ';
- } else {
- $result2 = $db->query( 'SELECT building,end_time from build where villageid=\'' . $row['villageid'] . '\' order by end_time LIMIT 1' );
- $add_sql = ',main_build=\'' . $next_build = $db->Fetch( $result2 )['building'] . ',' . ['end_time'] . '\' ';
- }
- if (!( ( ( ( !( $row['building'] == 'storage' ) && !( $row['building'] == 'wood' ) ) && !( $row['building'] == 'stone' ) ) && !( $row['building'] == 'iron' ) ))) {
- $res = $db->query( 'SELECT last_prod_aktu,wood,stone,iron,r_wood,r_stone,r_iron,storage from villages where id=' . $row['villageid'] . '' );
- ressis( $villagedata, $row['end_time'] );
- }
- $db->query( 'UPDATE villages SET ' . $row['building'] . '=' . ['building'] . ( '+1 ' . $add_sql . ' where id=\'' ) . ['villageid'] . '\'' );
- return $row['villageid'];
- }
- }
- }
- function check_tech($id) {
- global $db;
- $return = array( );
- $result = $db->query( 'SELECT research,villageid from research where id=\'' . $id . '\'' );
- while ($row = $db->Fetch( $result )) {
- $db->query( 'DELETE from research where id=\'' . $id . '\'' );
- $db->query( 'UPDATE villages SET unit_' . $row['research'] . '_tec_level=unit_' . ['research'] . '_tec_level+\'1\',smith_tec=\'\' where id=\'' . ['villageid'] . '\'' );
- }
- }
- function check_dealers($id, $event_id) {
- global $db;
- global $cl_reports;
- $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 . '\'' );
- $row = $db->Fetch( $result );
- $also_back = false;
- if ($row['type'] == 'to') {
- $db->query( 'UPDATE villages SET r_wood=r_wood+' . $row['wood'] . ',r_stone=r_stone+' . ['stone'] . ',r_iron=r_iron+' . ['iron'] . ' where id=' . ['to_village'] . '' );
- $start_time = $row['end_time'];
- if ($end_time = $row['end_time'] + ( ['end_time'] - ['start_time'] ) <= time( )) {
- $also_back = true;
- }
- $db->query( 'UPDATE dealers SET wood=0,stone=0,iron=0,start_time=' . $start_time . ',end_time=' . $end_time . ',type=\'back\' where id=' . $id );
- $db->query( 'UPDATE events SET can_knot=0,event_time=' . $end_time . ',cid=0 WHERE event_id=' . $id . ' AND event_type=\'dealers\'' );
- $result = $db->query( 'SELECT name from villages where id=' . $row['from_village'] . '' );
- $from_village = $db->Fetch( $result );
- $result = $db->query( 'SELECT username from users where id=' . $row['to_userid'] . '' );
- $to_user = $db->Fetch( $result );
- $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'] );
- if (!( $also_back)) {
- $db->query( 'DELETE from run_events where id=\'' . $event_id . 'dealers\'' );
- return false;
- }
- }
- if (!( ( !( $row['type'] == 'back' ) && !$also_back ))) {
- $db->query( 'UPDATE villages SET dealers_outside=dealers_outside-' . $row['dealers'] . ',r_wood=r_wood+' . ['wood'] . ',r_stone=r_stone+' . ['stone'] . ',r_iron=r_iron+' . ['iron'] . ' where id=' . ['from_village'] . '' );
- $db->query( 'DELETE from dealers where id=' . $id );
- return true;
- }
- }
- function do_movement($id, $event_id, $time) {
- global $db;
- $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 . '\'' );
- $row = $db->Fetch( $result );
- $row['id'] = $id;
- if (!( isset( $row['type'] ))) {
- $row['type'] = '';
- }
- switch ($row['type']) {
- case 'attack': {
- global $session;
- return do_movement_attack( $row, $event_id, $time );
- }
- case 'support': {
- if ($row['die'] == '1') {
- $db->query( 'DELETE from movements where id=' . $row['id'] . '' );
- return true;
- }
- return do_movement_support( $row );
- }
- case 'return': {
- if ($row['die'] == '1') {
- $db->query( 'DELETE from movements where id=' . $row['id'] . '' );
- return true;
- }
- return do_movement_return( $row );
- }
- case 'back': {
- if ($row['die'] == '1') {
- $db->query( 'DELETE from movements where id=' . $row['id'] . '' );
- return true;
- }
- return do_movement_back( $row );
- }
- case 'cancel': {
- if ($row['die'] == '1') {
- $db->query( 'DELETE from movements where id=' . $row['id'] . '' );
- return true;
- }
- return do_movement_back( $row );
- }
- }
- }
- function do_movement_back($row) {
- global $cl_units;
- global $db;
- $sql = 'UPDATE unit_place SET ';
- $first = true;
- $i = 0;
- $ex_units = explode( ';', $row['units'] );
- foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
- if ($first) {
- $sql .= $dbname . '=' . $dbname . '+\'' . $ex_units[$i] . '\'';
- $first = false;
- } else {
- $sql .= ',' . $dbname . '=' . $dbname . '+\'' . $ex_units[$i] . '\'';
- }
- ++$i;
- }
- $sql .= ' WHERE villages_from_id=\'' . $row['from_village'] . '\' AND villages_to_id=\'' . ['from_village'] . '\'';
- $db->query( $sql );
- $db->query( 'DELETE from movements where id=\'' . $row['id'] . '\'' );
- return true;
- }
- function do_movement_return($row) {
- global $cl_units;
- global $db;
- $sql = 'UPDATE unit_place SET ';
- $first = true;
- $i = 0;
- $ex_units = explode( ';', $row['units'] );
- foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
- if ($first) {
- $sql .= $dbname . '=' . $dbname . '+\'' . $ex_units[$i] . '\'';
- $first = false;
- } else {
- $sql .= ',' . $dbname . '=' . $dbname . '+\'' . $ex_units[$i] . '\'';
- }
- ++$i;
- }
- $sql .= ' WHERE villages_from_id=\'' . $row['to_village'] . '\' AND villages_to_id=\'' . ['to_village'] . '\'';
- $db->query( $sql );
- if (!( ( ( !( 0 < $row['wood'] ) && !( 0 < $row['stone'] ) ) && !( 0 < $row['iron'] ) ))) {
- $db->query( 'UPDATE villages SET r_wood=r_wood+\'' . $row['wood'] . '\',r_stone=r_stone+\'' . ['stone'] . '\',r_iron=r_iron+\'' . ['iron'] . '\' where id=\'' . ['to_village'] . '\'' );
- }
- $db->query( 'DELETE from movements where id=\'' . $row['id'] . '\'' );
- return true;
- }
- function do_movement_attack($row, $event_id, $event_time, $var = '') {
- global $db;
- global $cl_units;
- global $cl_builds;
- global $config;
- global $arr_maxhide;
- global $cl_reports;
- $reload_allys = array( );
- $del_event = false;
- $att_ex_units = explode( ';', $row['units'] );
- $i = 0;
- foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
- $att[] = $att_ex_units[$i];
- ++$i;
- }
- $first = true;
- $techs = '';
- foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
- while ($first) {
- $techs .= $dbname . '_tec_level AS ' . $dbname;
- $first = false;
- break;
- }
- $techs .= ',' . $dbname . '_tec_level AS ' . $dbname;
- }
- $result = $db->query( 'SELECT ' . $techs . ' from villages where id=\'' . $row['from_village'] . '\'' );
- $att_tech = $db->Fetch( $result );
- $first = true;
- $units = '';
- foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
- while ($first) {
- $units .= 'SUM(' . $dbname . ') AS ' . $dbname;
- $first = false;
- break;
- }
- $units .= ',SUM(' . $dbname . ') AS ' . $dbname;
- }
- $result = $db->query( 'SELECT ' . $units . ' from unit_place where villages_to_id=\'' . $row['to_village'] . '\'' );
- $def = $db->Fetch( $result );
- $first = true;
- $techs = '';
- foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
- while ($first) {
- $techs .= $dbname . '_tec_level AS ' . $dbname;
- $first = false;
- break;
- }
- $techs .= ',' . $dbname . '_tec_level AS ' . $dbname;
- }
- if (!( empty( $row['building'] ))) {
- if ($row['building'] != 'storage') {
- if ($row['building'] != 'hide') {
- if ($row['building'] != 'wall') {
- if ($row['building'] != 'wood') {
- if ($row['building'] != 'stone') {
- if ($row['building'] != 'iron') {
- $techs .= ',' . $row['building'];
- }
- }
- }
- }
- }
- }
- }
- $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'] . '\'' );
- $others['def_wall'] = $def_tech = $db->Fetch( $result )['wall'];
- if ($row['building'] != 'wall') {
- unset( $def_tech[wall] );
- }
- $def_ress['r_wood'] = $def_tech['r_wood'];
- unset( $def_tech[r_wood] );
- $def_ress['r_stone'] = $def_tech['r_stone'];
- unset( $def_tech[r_stone] );
- $def_ress['r_iron'] = $def_tech['r_iron'];
- unset( $def_tech[r_iron] );
- $def_ress['wood'] = $def_tech['wood'];
- if ($row['building'] != 'wood') {
- unset( $def_tech[wood] );
- }
- $def_ress['stone'] = $def_tech['stone'];
- if ($row['building'] != 'stone') {
- unset( $def_tech[stone] );
- }
- $def_ress['iron'] = $def_tech['iron'];
- if ($row['building'] != 'iron') {
- unset( $def_tech[iron] );
- }
- $def_ress['hide'] = $def_tech['hide'];
- if ($row['building'] != 'hide') {
- unset( $def_tech[hide] );
- }
- $def_ress['storage'] = $def_tech['storage'];
- if ($row['building'] != 'storage') {
- unset( $def_tech[storage] );
- }
- $def_ress['last_prod_aktu'] = $def_tech['last_prod_aktu'];
- unset( $def_tech[last_prod_aktu] );
- $def_ress['id'] = $row['to_village'];
- $def_agreement['agreement'] = $def_tech['agreement'];
- unset( $def_tech[agreement] );
- $def_agreement['agreement_aktu'] = $def_tech['agreement_aktu'];
- unset( $def_tech[agreement] );
- $def_agreement['id'] = $row['to_village'];
- $def_attacks = $def_tech['attacks'];
- unset( $def_tech[attacks] );
- $def_snobed_by = $def_tech['snobed_by'];
- unset( $def_tech[snobed_by] );
- if (!( empty( $row['building'] ))) {
- $others['def_building'] = $def_tech[$row['building']];
- $others['cata_building'] = $row['building'];
- unset( $def_tech[$row['building']] );
- } else {
- $others['def_building'] = 0;
- $others['cata_building'] = '';
- }
- $others['luck'] = mt_rand( -25, 25 );
- if ($config['moral_activ']) {
- if ($row['to_userid'] == '-1') {
- $others['moral'] = 100;
- } else {
- $result = $db->query( 'SELECT points from users where id=\'' . $row['from_userid'] . '\'' );
- $att_player = $db->Fetch( $result );
- $result = $db->query( 'SELECT points from users where id=\'' . $row['to_userid'] . '\'' );
- $def_player = $db->Fetch( $result );
- $others['moral'] = calc_moral( $def_player['points'], $att_player['points'] );
- }
- } else {
- $others['moral'] = 100;
- }
- $simulate = simulate( $att, $att_tech, $def, $def_tech, $others );
- if ($row['building'] == 'storage') {
- $def_ress['storage'] = $simulate['others']['new_building'];
- }
- $max_booty = 0;
- foreach ($cl_units->get_array( 'dbname' ) as $dbname) {
- $max_booty += $cl_units->get_booty( $dbname ) * ( $simulate['att'][$dbname] - ['att_lose'][$dbname] );
- }
- $ress_calc = ressis( $def_ress, $event_time );
- $ress_calc['r_wood'] -= $arr_maxhide[$def_ress['hide']];
- $ress_calc['r_stone'] -= $arr_maxhide[$def_ress['hide']];
- $ress_calc['r_iron'] -= $arr_maxhide[$def_ress['hide']];
- $ress_calc['r_wood'] = ( $ress_calc['r_wood'] < 0 ? 0 : $ress_calc['r_wood'] );
- $ress_calc['r_stone'] = ( $ress_calc['r_stone'] < 0 ? 0 : $ress_calc['r_stone'] );
- $ress_calc['r_iron'] = ( $ress_calc['r_iron'] < 0 ? 0 : $ress_calc['r_iron'] );
- $ress_calc['all_ress'] = $ress_calc['r_wood'] + ['r_stone'] + ['r_iron'];
- ( true ? $ress_calc['all_ress'] == '0' : 0 );
- $ress_calc['procent_wood'] = 100 / $ress_calc['all_ress'] * ['r_wood'];
- ( true ? $ress_calc['all_ress'] == '0' : 0 );
- $ress_calc['procent_stone'] = 100 / $ress_calc['all_ress'] * ['r_stone'];
- ( true ? $ress_calc['all_ress'] == '0' : 0 );
- $ress_calc['procent_iron'] = 100 / $ress_calc['all_ress'] * ['r_iron'];
- $booty['wood'] = ( $ress_calc['r_wood'] < $max_ress_booty = floor( $max_booty * ( $ress_calc['procent_wood'] / 100 ) ) ? $ress_calc['r_wood'] : $max_ress_booty );
- $booty['stone'] = ( $ress_calc['r_stone'] < $max_ress_booty = floor( $max_booty * ( $ress_calc['procent_stone'] / 100 ) ) ? $ress_calc['r_stone'] : $max_ress_booty );
- $booty['iron'] = ( $ress_calc['r_iron'] < $max_ress_booty = floor( $max_booty * ( $ress_calc['procent_iron'] / 100 ) ) ? $ress_calc['r_iron'] : $max_ress_booty );
- $stolen_booty = $booty['wood'] + ['stone'] + ['iron'];
- $not_enough_wood = false;
- $not_enough_stone = false;
- $not_enough_iron = false;
- while ($stolen_booty < $max_booty) {
- if ($stolen_booty < $max_booty) {
- if (0 < $ress_calc['r_wood'] - $booty['wood']) {
- ++$booty['wood'];
- ++$stolen_booty;
- }
- } else {
- $not_enough_wood = true;
- }
- if ($stolen_booty < $max_booty) {
- if (0 < $ress_calc['r_stone'] - $booty['stone']) {
- ++$booty['stone'];
- ++$stolen_booty;
- }
- } else {
- $not_enough_stone = true;
- }
- if ($stolen_booty < $max_booty) {
- if (0 < $ress_calc['r_iron'] - $booty['iron']) {
- ++$booty['iron'];
- ++$stolen_booty;
- }
- } else {
- $not_enough_iron = true;
- }
- while ($not_enough_wood) {
- while ($not_enough_stone) {
- if ($not_enough_iron) {
- }
- break 2;
- }
- break;
- }
- }
- ...............................................
- ......................
- ........
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement