<?php

session_start();
$tm = microtime();
$tm = explode(' ', $tm);
$tm = $tm[0] + $tm[1];

if (!isset($CRON_CORE)) {
    require_once('../../_incl_data/__config.php');
}

if (isset($_GET['cron_core'])) {
    function getIPblock()
    {
        return isset($_SERVER['HTTP_X_REAL_IP']) ? $_SERVER['HTTP_X_REAL_IP'] : $_SERVER['REMOTE_ADDR'];
    }
}

if (!isset($CRON_CORE)) {
    define('GAME', true);
    require_once('../../_incl_data/class/__db_connect.php');
}

function e($t)
{
    mysql_query(
        'INSERT INTO `chat` (`text`,`city`,`to`,`type`,`new`,`time`) VALUES ("core #' . date('d.m.Y') . ' %' . date(
            'H:i:s'
        ) . ' (Êðèòè÷åñêàÿ îøèáêà): <b>' . mysql_real_escape_string($t) . '</b>","capitalcity","INFINITY","6","1","-1")'
    );
}

if (isset($_GET['cron_core'])) {

    $id = [
        'id' => $_GET['uid'],
        'pass' => $_GET['pass'],
    ];
    if (md5($id['id'] . '_brfCOreW@!_' . $id['pass']) == $_GET['cron_core']) {
        $uzr = mysql_fetch_array(
            mysql_query(
                'SELECT `id`,`login`,`pass` FROM `users` WHERE `id` = "' . mysql_real_escape_string(
                    $id['id']
                ) . '" AND `pass` = "' . mysql_real_escape_string($id['pass']) . '" LIMIT 1'
            )
        );
        if (isset($uzr['id'])) {
            $CRON_CORE = true;
            $_COOKIE['login'] = $uzr['login'];
            $_COOKIE['pass'] = $uzr['pass'];
            $_POST['id'] = 'reflesh';
        }
        unset($uzr);
    }
}

if (!isset($CRON_CORE)) {
    header('Expires: Mon, 26 Jul 1970 05:00:00 GMT');
    header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
    header('Cache-Control: no-store, no-cache, must-revalidate');
    header('Cache-Control: post-check=0, pre-check=0', false);
    header('Pragma: no-cache');
    header('Content-Type: text/html; charset=windows-1251');
}

if (($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' || isset($CRON_CORE)) && (isset($_POST['atack'], $_POST['block']) || (isset($_POST['id']) && $_POST['id'] == 'reflesh') || isset($_POST['usepriem']) || isset($_POST['useitem']))) {
    if (isset($_POST['useitemon'])) {
        $_POST['useitemon'] = iconv('UTF-8', 'windows-1251', $_POST['useitemon']);
    }

    unset($tm);
    $js = '';
    $u = User::start();
    $magic = new Magic();
    $priem = new Priems();

    if ($u->info['battle'] == 0) {
        $btl_last = mysql_fetch_array(
            mysql_query(
                'SELECT `id`,`battle` FROM `battle_users` WHERE `uid` = "' . $u->info['id'] . '" AND `finish` = "0" LIMIT 1'
            )
        );
        if (isset($btl_last['id']) && $u->info['battle'] == 0) {
            echo '<script>document.getElementById(\'teams\').style.display=\'none\';var battleFinishData = "' . $u->info['battle_text'] . '";</script>';
            $u->info['battle'] = $btl_last['id'];
            $u->info['battle_lsto'] = true;
            mysql_query(
                'UPDATE `stats` SET `battle_text` = "",`last_b`="0" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'
            );
            mysql_query('UPDATE `battle_users` SET `finish` = 1 WHERE `uid` = "' . $u->info['id'] . '"');
            echo '<script>alert("Ïîåäèíîê äëÿ âàñ çàâåðøèëñÿ.");location.href="main.php?finish=1";</script>';
        }
    }

    if (!isset($CRON_CORE) && (!isset($u->info['id']) || ($u->info['joinIP'] == 1 && $u->info['ip'] != $_SERVER['HTTP_X_REAL_IP']))) {
        die($c['exit']);
    }

    function json_fix_cyr($json_str)
    {
        return $json_str;
    }

    $u->stats = $u->getStats($u->info['id'], 0);

    if (!isset($CRON_CORE) && $u->info['online'] < time() - 30) {
        mysql_query(
            "UPDATE `users` SET `online`='" . time() . "',`timeMain`='" . time(
            ) . "' WHERE `id`='" . $u->info['id'] . "' LIMIT 1"
        );
    }

    $btl = new Battle();
    require_once('log_text.php');
    $btl->is = $u->is;
    $btl->items = $u->items;
    $btl->info = $btl->battleInfo($u->info['battle']);
    if (!isset($btl->info['id'])) {
        if ($u->info['battle'] == -1) {
            //çàâåðøàåì ïîåäèíîê
            $upd = mysql_query(
                'UPDATE `users` SET `battle` = "0",`online` = "' . time(
                ) . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'
            );
            if (!$upd) {
                if (!isset($CRON_CORE)) {
                    die('Îøèáêà çàâåðøåíèÿ ïîåäèíêà.');
                }
            } else {
                echo '<script>location="main.php";</script>';
            }
        } else {
            mysql_query('UPDATE `users` SET `battle` = "0" WHERE `battle` = "' . $u->info['battle'] . '" LIMIT 100');
            if (!isset($CRON_CORE)) {
                die('<script>location="main.php";</script>');
            }
        }
    } else {
        //ïîëó÷àåì ìàññèâ ñ èãðîêàìè â áîþ
        $btl->teamsTake();

        if (isset($_POST['useitem']) && $btl->testUsersLive()) {
            $magic->useItems((int)$_POST['useitem']);
            if ($u->error != '') {
                echo '<div style="color: red; font-weight: bold; text-align: center">' . $u->error . '</div>';
            }
        }

        //çàíîñèì óäàðû,ïðèåìû,ýôôåêòû è ò.ä.
        //óäàð
        if (isset($_POST['atack']) && isset($_POST['block'])) {
            $btl->addAtack();
        }
        //ïðèåì
        if (isset($_POST['usepriem']) && $btl->testUsersLive() && isset($btl->users[$btl->uids[$u->info['enemy']]])) {
            $priem->pruse($_POST['usepriem']);
        }
        //èñïîëüçóåì çàêëÿòèå / ïèðîæêè


        //ïðîâîäèì äåéñòâèÿ (óäàðû, èñïîëüçîâàíèå ïðèåìîâ, åñëè åñòü âîçìîæíîñòü íàíåñòè óäàð èëè èñïîëüçîâàòü ïðèåì)
        $btl->testActions();
        //àâòî-ñìåíà ïðîòèâíèêà, ëèáî ïðîñòî ñìåíà ïðîòèâíèêà
        if ($u->stats['hpNow'] >= 1) {
            //ðó÷íàÿ ñìåíà
            if (isset($_POST['smn']) && $_POST['smn'] != 'none') {
                /* ---------------- */
                $_POST['smn'] = iconv('UTF-8', 'windows-1251', $_POST['smn']);
                $uidz = mysql_fetch_array(
                    mysql_query(
                        'SELECT `id`,`inUser` FROM `users` WHERE `login` = "' . mysql_real_escape_string(
                            $_POST['smn']
                        ) . '" AND `battle` = "' . $u->info['battle'] . '" LIMIT 1'
                    )
                );
                if ($uidz['inUser'] > 0) {
                    $uidz['id'] = $uidz['inUser'];
                }
                $rsm = $btl->smena($uidz['id'], false);
                if ($rsm != 1) {
                    echo '<font color=red><center><b>' . $rsm . '</b></center></font>';
                }
                unset($rsm);
                $js .= 'smena_login = \'none\';';
            }
            //àâòî-ñìåíà
            if ($u->info['enemy'] == 0 || $btl->stats[$btl->uids[$u->info['enemy']]]['hpNow'] <= 0 || isset($btl->ga[$u->info['id']][$u->info['enemy']])) {
                $btl->autoSmena();
            }
        } else {
            $btl->mainStatus = 3;
        }

        //ïîëó÷àåì äàííûå î ïîåäèíêå

        //ïîëó÷àåì äàííûå î ëîãå áîÿ

        //Åñëè áîé ñûãðàí - çàâåðøàåì
        if (!isset($_POST['usepriem'])) {
            $btl->testFinish();
        }
        if ($btl->info['team_win'] == -1) {
            $js .= $btl->genTeams($u->info['id']);
        } else {
            $btl->mainStatus = 3;
            $btl->e = $u->btl_txt;
        }

        if ($btl->info['id'] == $u->info['lider']) {
            $js .= '$("#btn_down_img3").show();$("#btn_down_img4").show();';
        } else {
            $js .= '$("#btn_down_img3").hide();$("#btn_down_img4").hide();';
        }

        if (!isset($CRON_CORE)) {
            $js .= $btl->myInfo($u->info['id'], 1);
            //âûâîäèì äàííûå
            if ($btl->e != '') {
                echo '<font color="red"><center><b>' . $btl->e . '</b></center></font>';
            }
            if (isset($btl->ga[$u->info['id']][$u->info['enemy']])) {
                if ($u->info['hpNow'] >= 1) {
                    $btl->mainStatus = 2;
                }
            } else {
                if ($u->info['enemy'] != 0 && $btl->info['team_win'] == -1 && $u->info['hpNow'] >= 1) {
                    $js .= $btl->myInfo($u->info['enemy'], 2);
                }
            }
            if ($btl->info['izlom'] > 0) {
                $js .= 'volna(' . (1 + $btl->info['izlomRoundSee']) . ');';
            }
            $i = 1;
            while ($i <= 7) {
                if ($btl->users[$btl->uids[$u->info['id']]]['tactic' . $i] < 0) {
                    $btl->users[$btl->uids[$u->info['id']]]['tactic' . $i] = 0;
                }
                if ($btl->users[$btl->uids[$u->info['id']]]['tactic' . $i] > 25 && $i < 7) {
                    $btl->users[$btl->uids[$u->info['id']]]['tactic' . $i] = 25;
                }
                $i++;
            }
            $atk1 = 0;
            $rsys = $u->sys_see(0);
            if ($rsys != '') {
                $js .= $rsys;
            }
            unset($rsys);
            if (isset($btl->ga[$u->info['enemy']][$u->info['id']])) {
                $atk1 = 1;
            }
        }

        $rehtml = '';
        if (!isset($CRON_CORE)) {
            $js .= '$("#priems").html("' . $priem->seeMy(2) . '");';
            $jslog = '';
            if ($u->info['design'] != 0) {
                $jslog .= $btl->lookmLog();
            }

            $jslog .= $btl->lookLog();
            if ($jslog != '') {
                $js = $jslog . $js;
            }
            unset($jslog);

            $tmr = round(($btl->info['timeout'] / 60), 2);


            $dtxtn = '';

            $rehtml .= '<script type="text/javascript">eatk=' . $atk1 . ';
        $("#nabito").html("' . (floor($btl->users[$btl->uids[$u->info['id']]]['battle_yron'])) . $dtxtn . '");
        $("#expmaybe").html("' . (floor($btl->users[$btl->uids[$u->info['id']]]['battle_exp'])) . '");
        $("#timer_out").html("' . $tmr . '");
        $(\'#pers_magic\').html("' . $u->btlMagicList() . '");
        g_iCount = 30;
        noconnect = 15;
        connect = 1;
        $("#go_btn").show();
        $("#reflesh_btn").show();
        za = ' . (0 + $btl->stats[$btl->uids[$u->info['id']]]['zona']) . '; genZoneAtack();
        zb = ' . (0 + $btl->testZonbVis()) . '; genZoneBlock();
        refleshPoints();
        tactic(1,' . (0 + $btl->users[$btl->uids[$u->info['id']]]['tactic1']) . ');
        tactic(2,' . (0 + $btl->users[$btl->uids[$u->info['id']]]['tactic2']) . ');
        tactic(3,' . (0 + $btl->users[$btl->uids[$u->info['id']]]['tactic3']) . ');
        tactic(4,' . (0 + $btl->users[$btl->uids[$u->info['id']]]['tactic4']) . ');
        tactic(5,' . (0 + $btl->users[$btl->uids[$u->info['id']]]['tactic5']) . ');
        tactic(6,' . (0 + floor($btl->users[$btl->uids[$u->info['id']]]['tactic6'])) . ');
        smnpty=' . (0 + $u->info['smena']) . ';
        mainstatus(' . $btl->mainStatus . ');
        tactic(7,"' . (0 + $btl->users[$btl->uids[$u->info['id']]]['tactic7']) . '");
        smena_alls = "0";
        ggcode="' . $code . '";
        ' . $js . '
        </script>';

            echo($rehtml);

            if ($btl->cached) {
                $btl->clear_cache_start();
            }

            unset($atk1);
        }
        echo '<script>ggcode="' . $code . '";if(t057!=null){clearTimeout(t057);}</script>';

    }
}