<?php

use Core\Config;
use Core\ConversionHelper;
use Core\Db;
use User\StatsModel;

class Battle
{
    public array $mncolor = [
        1 => '006699',
        2 => '006699',
        3 => '006699',
        4 => '006699',
        5 => '006699',
        6 => '006699',
        7 => '006699',
    ]; //не крит
    public array $mcolor = [
        1 => 'A00000',
        2 => '008080',
        3 => '0000FF',
        4 => 'A52A2A',
        5 => '006699',
        6 => '006699',
        7 => '006699',
    ]; //не крит
    public array $mname = [
        'огонь' => 1,
        'воздух' => 2,
        'вода' => 3,
        'земля' => 4,
        'свет' => 5,
        'тьма' => 6,
        'серая' => 7,
    ];
    public array $prm = [
        /*
			act:	1 - когда персонаж получает повреждение
					2 - когда персонаж наносит удар
			type_of:	1 - уворот
						2 - крит
						3 - атака
						4 - защита
						5 - прочее
		*/
        1 => ['name' => 'Прикрыться', 'act' => 1, 'type_of' => 5],
        2 => ['name' => 'Вломить', 'act' => 2, 'type_of' => 3],
        4 => ['name' => 'Сильный удар', 'act' => 2, 'type_of' => 3],
        7 => ['name' => 'Активная защита', 'act' => 1, 'type_of' => 4],
        290 => ['name' => 'Вытягивание души', 'act' => 1, 'type_of' => 4],
        //Канализация
        294 => ['name' => 'Зловонная Вода', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3],
        295 => ['name' => 'Проткнуть', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3],
        296 => ['name' => 'Гнилая Кровь', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3],
        297 => ['name' => 'Собраться', 'act' => 2, 'type_of' => 0, 'moment' => 3],
        298 => ['name' => 'Приказ Слабости', 'act' => 2, 'type_of' => 3],
        141 => ['name' => 'Призрачная защита', 'act' => 2, 'type_of' => 4],
        147 => ['name' => 'Призрачный кинжал', 'act' => 2, 'type_of' => 4],
        148 => ['name' => 'Призрачный топор', 'act' => 2, 'type_of' => 4],
        149 => ['name' => 'Призрачный удар', 'act' => 2, 'type_of' => 4],
        150 => ['name' => 'Призрачное лезвие', 'act' => 2, 'type_of' => 4],
        142 => ['name' => 'Призрачный огонь', 'act' => 2, 'type_of' => 4],
        144 => ['name' => 'Призрачный воздух', 'act' => 2, 'type_of' => 4],
        146 => ['name' => 'Призрачная земля', 'act' => 2, 'type_of' => 4],
        145 => ['name' => 'Призрачная вода', 'act' => 2, 'type_of' => 4],
        8 => ['name' => 'Танец ветра', 'act' => 1, 'type_of' => 1],
        9 => ['name' => 'Дикая удача', 'act' => 2, 'type_of' => 3],
        10 => ['name' => 'Предвидение', 'act' => 1, 'type_of' => 1],
        11 => ['name' => 'Удачный удар', 'act' => 2, 'type_of' => 3],
        45 => ['name' => 'Полная защита', 'act' => 1, 'type_of' => 4],
        47 => ['name' => 'Слепая удача', 'act' => 2, 'type_of' => 2],
        48 => ['name' => 'Танец лезвий', 'act' => 1, 'type_of' => 1],
        49 => ['name' => 'Второе дыхание', 'act' => 1, 'type_of' => 1],
        138 => ['name' => 'Сокрушающий удар', 'act' => 2, 'type_of' => 3],
        140 => ['name' => 'Абсолютная защита', 'act' => 1, 'type_of' => 4],
        193 => ['name' => 'Усиленные удары', 'act' => 2, 'type_of' => 3],
        204 => ['name' => 'Обречённость', 'act' => 2, 'type_of' => 0, 'moment' => 3],
        211 => ['name' => 'Агрессивная защита', 'act' => 1, 'type_of' => 4],
        213 => ['name' => 'Коварный Уход', 'act' => 1, 'type_of' => 4],
        215 => ['name' => 'Скрытая ловкость', 'act' => 1, 'type_of' => 1],
        216 => ['name' => 'Скрытая сила', 'act' => 2, 'type_of' => 2],
        217 => ['name' => 'Разгадать тактику', 'act' => 2, 'type_of' => 0, 'moment' => 3],
        219 => ['name' => 'Точный удар', 'act' => 2, 'type_of' => 3],
        220 => ['name' => 'Ставка на опережение', 'act' => 2, 'type_of' => 0, 'moment' => 3],
        222 => ['name' => 'Последний удар', 'act' => 2, 'type_of' => 3],
        225 => ['name' => 'Магическая защита', 'act' => 1, 'type_of' => 4],
        226 => ['name' => 'Возмездие', 'act' => 1, 'type_of' => 4],
        231 => ['name' => 'Глухая защита', 'act' => 2, 'type_of' => 0, 'moment' => 3],
        234 => ['name' => 'Осторожность', 'act' => 2, 'type_of' => 4],
        235 => ['name' => 'Шокирующий удар', 'act' => 2, 'type_of' => 3],
        342 => ['name' => 'Круговая Защита', 'act' => 0, 'type_of' => 0],
        343 => ['name' => 'Натиск', 'act' => 0, 'type_of' => 0],
        237 => ['name' => 'Разведка боем', 'act' => 2, 'type_of' => 3],
        239 => ['name' => 'Поступь смерти', 'act' => 2, 'type_of' => 3],
        240 => ['name' => 'Хлебнуть крови', 'act' => 2, 'type_of' => 5]
        ,
        21 => ['name' => 'Оледенение [4]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        73 => ['name' => 'Оледенение [5]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        74 => ['name' => 'Оледенение [6]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        75 => ['name' => 'Оледенение [7]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        76 => ['name' => 'Оледенение [8]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        77 => ['name' => 'Оледенение [9]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        78 => ['name' => 'Оледенение [10]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        79 => ['name' => 'Оледенение [11]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        22 => ['name' => 'Отравление [6]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        80 => ['name' => 'Отравление [7]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        81 => ['name' => 'Отравление [8]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        82 => ['name' => 'Отравление [9]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        83 => ['name' => 'Отравление [10]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        84 => ['name' => 'Отравление [11]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        36 => ['name' => 'Регенерация [5]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        85 => ['name' => 'Регенерация [6]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        86 => ['name' => 'Регенерация [7]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        87 => ['name' => 'Регенерация [8]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        88 => ['name' => 'Регенерация [9]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        89 => ['name' => 'Регенерация [10]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        90 => ['name' => 'Регенерация [11]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        23 => ['name' => 'Ядовитое Облако [8]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        70 => ['name' => 'Ядовитое Облако [9]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        71 => ['name' => 'Ядовитое Облако [10]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        72 => ['name' => 'Ядовитое Облако [11]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        269 => ['name' => 'Иней [8]', 'act' => 2, 'type_of' => 9]
        ,
        276 => ['name' => 'Иней [9]', 'act' => 2, 'type_of' => 9]
        ,
        277 => ['name' => 'Иней [10]', 'act' => 2, 'type_of' => 9]
        ,
        270 => ['name' => 'Духи Льда', 'act' => 2, 'type_of' => 5, 'type_sec' => 5]
        ,
        280 => ['name' => 'Хватка Льда', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        281 => ['name' => 'Жертва Воде', 'act' => 2, 'type_of' => 5]
        ,
        282 => ['name' => 'Ледяное Спасение', 'act' => 2, 'type_of' => 5],
        24 => ['name' => 'Медитация', 'act' => 2, 'type_of' => 0, 'moment' => 3]
        ,
        210 => ['name' => 'Магический Барьер [4]', 'act' => 2, 'type_of' => 8]
        ,
        209 => ['name' => 'Магический Барьер [7]', 'act' => 2, 'type_of' => 8]
        ,
        208 => ['name' => 'Магический Барьер [8]', 'act' => 2, 'type_of' => 8]
        ,
        207 => ['name' => 'Магический Барьер [9]', 'act' => 2, 'type_of' => 8]
        ,
        206 => ['name' => 'Магический Барьер [10]', 'act' => 2, 'type_of' => 8]
        ,
        284 => ['name' => 'Магический Барьер [11]', 'act' => 2, 'type_of' => 8]
        ,
        175 => ['name' => 'Магический Барьер [7]', 'act' => 2, 'type_of' => 8]
        ,
        176 => ['name' => 'Магический Барьер [8]', 'act' => 2, 'type_of' => 8]
        ,
        177 => ['name' => 'Магический Барьер [9]', 'act' => 2, 'type_of' => 8]
        ,
        178 => ['name' => 'Магический Барьер [10]', 'act' => 2, 'type_of' => 8]
        ,
        179 => ['name' => 'Магический Барьер [11]', 'act' => 2, 'type_of' => 8]
        ,
        42 => ['name' => 'Метеорит [6]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        121 => ['name' => 'Метеорит [7]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        122 => ['name' => 'Метеорит [8]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        123 => ['name' => 'Метеорит [9]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        124 => ['name' => 'Метеорит [10]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        125 => ['name' => 'Метеорит [11]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        249 => ['name' => 'Каменный Щит', 'act' => 2, 'type_of' => 4]
        ,
        248 => ['name' => 'Песчаный Щит', 'act' => 2, 'type_of' => 4]
        ,
        251 => ['name' => 'Заземление: Плюс', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        252 => ['name' => 'Заземление: Минус', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        273 => ['name' => 'Туманный Образ [10]', 'act' => 1, 'type_of' => 4]
        ,
        286 => ['name' => 'Туманный Образ [9]', 'act' => 1, 'type_of' => 4]
        ,
        287 => ['name' => 'Туманный Образ [8]', 'act' => 1, 'type_of' => 4]
        ,
        288 => ['name' => 'Туманный Образ [7]', 'act' => 1, 'type_of' => 4]
        ,
        255 => ['name' => 'Воздушный Щит', 'act' => 2, 'type_of' => 8]
        ,
        337 => ['name' => 'Выпить Душу', 'act' => 2, 'type_of' => 5]
        ,
        33 => ['name' => 'Пожирающее Пламя [6]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        56 => ['name' => 'Пожирающее Пламя [7]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        57 => ['name' => 'Пожирающее Пламя [8]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        58 => ['name' => 'Пожирающее Пламя [9]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        59 => ['name' => 'Пожирающее Пламя [10]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        60 => ['name' => 'Пожирающее Пламя [11]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        245 => ['name' => 'Огненный Щит', 'act' => 2, 'type_of' => 9]
        ,
        327 => ['name' => 'Живая Вода', 'act' => 2, 'type_of' => 0, 'moment' => 3]
        ,
        328 => ['name' => 'Сушеный Мухомор', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        329 => ['name' => 'Мешочек Пыли', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        330 => ['name' => 'Отвар когтей ПГ', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        331 => ['name' => 'Отвар Василиска', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        332 => ['name' => 'Точильный Камень', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        333 => ['name' => 'Волшебный Эликсир', 'act' => 2, 'type_of' => 0, 'moment' => 3]
        ,
        334 => ['name' => 'Цепь Защитника', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        335 => [
            'name' => 'Эликсир Безумного Критовика',
            'act' => 2,
            'type_of' => 0,
            'moment' => 0,
            'moment_end' => 3,
        ]
        ,
        299 => ['name' => 'Ядовитые язвы', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        300 => ['name' => 'Элементарный заряд', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        301 => ['name' => 'Темное ранение', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        302 => ['name' => 'Подлечиться', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        303 => ['name' => 'Шкура поглощения', 'act' => 2, 'type_of' => 4]
        ,
        304 => ['name' => 'Особенное проклятье!', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3]
        ,
        305 => ['name' => 'Кровожадность', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3],
    ];

    public $cached = false;       //Кэширование данных
    public $expCoef = 0;    # % опыта в бою
    public $aBexp = 0;    //Добавочный опыт в боях
    public $mainStatus = 1;    //Отображаем главное окно (1 - можно бить, 2 - ожидаем ход противника, 3 - Проиграли. Ожидаем завершения поединка)
    public $info = [];    //Информация о поединке
    public $users;   //Информация о пользователях в этом бою
    public $stats = [];   //Информация о статах пользователей в этом бою
    public $uids = [];    //Список пользователей и их id в stats или users пример id пользователя = 555 , то $uids[555] выдаст его порядковый номер в массиве users \ stats
    public $atacks = [];  //Список ударов в этом бою (действующих)
    public $ga = [];      //Список uid кто нанес удар и по кому  $ga[ {id кто ударил} ][ {id кого ударил} ]
    public $ag = [];      //Список uid кто нанес удар и по кому  $ga[ {id кого ударили} ][ {id кто ударил} ]
    public $na = 1;            //возможность использовать удар
    public $np = 1;            //возможность использовать приемы
    public $nm = 1;            //возможность использовать заклятия
    public $hodID = 0;
    public $stnZbVs = 0;
    public $bots = [];    // ID ботов
    public $iBots = [];   // i бота
    public $stnZb = [];
    public array $uAtc = [
        'id' => 0,
        'a' => [1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0],
        'b' => 0,
    ]; //Если игрок нанес удар
    public array $lg_itm = [
        0 => [
            'грудью',
            'ребром руки',
            'лбом',
            'кулаком',
            'ногой',
            'левой ногой',
            'правой ногой',
            'коленом',
        ],
        1 => ['ножом', 'тыльной стороной лезвия ножа', 'рукоятью ножа', 'лезвием ножа'],
        2 => ['сучковатой палкой', 'поленом', 'тяжелой дубиной', 'дубиной', 'рукоятью молота'],
        3 => ['секирой', 'топором', 'лезвием секиры', 'алебардой', 'тяжелым держаком', 'длинной секирой'],
        4 => [
            'ножнами',
            'гардой',
            'мечом',
            'лезвием меча',
            'рукоятью меча',
            'тупым лезвием',
            'острой стороной меча',
            'огромным мечом',
        ],
        5 => ['сучковатой палкой', 'посохом', 'тяжелой тростью', 'корявым посохом', 'основанием посоха'],
        22 => ['костылем'],
    ]; // Чем лупили
    public array $lg_zon = [
        1 => [
            'в нос',
            'в глаз',
            'в челюсть',
            'по переносице',
            'в кадык',
            'по затылку',
            'в правый глаз',
            'в левый глаз',
            'в скулу',
        ],
        2 => ['в грудь', 'в корпус', 'в солнечное сплетение', 'в сердце', 'в область лопаток'],
        3 => ['в бок', 'по желудку', 'по левой руке', 'по правой руке'],
        4 => ['по <вырезано цензурой>', 'в пах', 'в промежность', 'по левой ягодице', 'по правой ягодице'],
        5 => ['по ногам', 'в область правой пятки', 'в область левой пятки', 'по коленной чашечке', 'по икрам'],
    ]; // Куда лупили
    public string $e;             //Ошибка (текст)
    public array $is = [];
    public array $items = [];
    //Очистка кэша для ...
    public array $uclearc = [];
    public array $ucleari = [];
    public $ainm = [];
    public $rehodeff = [];
    public $poglast = [];
    public $prlog = [];
    public $um_priem = [];
    public $restart_stats_data = [];
    public $import_atack = [];
    public $contr = [];

    //
    public $import_user = 0;
    public $pr_not_use = [], $pr_reset = [], $pr_yrn = false, $prnt = [];
    public $del_val = [], $re_pd = [];

    //Добавляем нанесенный урон

    public function __construct()
    {
        ignore_user_abort(true);
    }

    //JS информация о игроке

    public function maginfoattack($u1, $u2, $type): string
    {
        /*
		1 - огонь,
		2 - воздух,
		3 - вода,
		4 - земля
		*/
        $v_l = str_replace(' ', '&nbsp;', $this->users[$this->uids[$u1]]['login']);
        $v_z = (int)$this->stats[$this->uids[$u2]]['zm' . $type]; //защита цели
        $v_p = (int)round(
            (
                $this->stats[$this->uids[$u1]]['pzm' . $type] +
                $this->stats[$this->uids[$u1]]['pzm']
            )
            * 0.4
        ); //подавление защиты от магии
        $v_m = (int)$this->stats[$this->uids[$u1]]['pm' . $type]; //мощность мага
        //
        return ' magelogin=' . $v_l . ' onMouseOver=top.hi(this,maginfo(' . $v_z . ',' . $v_p . ',' . $v_m . ',this),event,3,1,1,1,null); onMouseOut=top.hic(); onMouseDown=top.hic(); ';
    }

    public function hphe($uid, $hp, $false_t7 = false)
    {
        global $u;
        if (!isset($this->stats[$this->uids[$uid]])) {
            echo 'WARNING! ОШИБКА! ПОТЕРЯНА ПЕРЕМЕННАЯ ЗДОРОВЬЯ ПЕРСОНАЖА!';
        } else {
            $hpnow = floor($this->stats[$this->uids[$uid]]['hpNow']);
            $hpall = $this->stats[$this->uids[$uid]]['hpAll'];
            if ($hp > 0) {
                //Хиляем
                if ($hpnow + $hp > $hpall) {
                    $hpli = $hpnow + $hp - $hpall;
                    $hp -= $hpli;
                }
                if (isset($this->stats[$this->uids[$uid]]['min_heal_proc']) && $this->stats[$this->uids[$uid]]['min_heal_proc'] < -99) {
                    $hp = 0;
                } else {
                    $hp = $hp / 100 * (100 + $this->stats[$this->uids[$uid]]['min_heal_proc']);
                }
                //Отнимаем тактику
                if (!$false_t7) {
                    if ($this->users[$this->uids[$uid]]['tactic7'] <= 0) {
                        $hp = 0;
                        $this->users[$this->uids[$uid]]['tactic7'] = 0;
                        $this->stats[$this->uids[$uid]]['tactic7'] = $this->users[$this->uids[$uid]]['tactic7'];
                    } else {
                        $gdhh = round($hp / $this->stats[$this->uids[$uid]]['hpAll'] * 10, 2);
                        if ($gdhh == 0) {
                            $gdhh = 0.01;
                        }

                        $gdhd = round($this->users[$this->uids[$uid]]['tactic7'] / $gdhh * 100);

                        $this->users[$this->uids[$uid]]['tactic7'] = round(
                            ($this->users[$this->uids[$uid]]['tactic7'] - $gdhh),
                            2
                        );
                        if ($this->users[$this->uids[$uid]]['tactic7'] < 0) {
                            $this->users[$this->uids[$uid]]['tactic7'] = 0;
                        }
                        $this->stats[$this->uids[$uid]]['tactic7'] = $this->users[$this->uids[$uid]]['tactic7'];
                        if ($gdhd < 100) {
                            $hp = floor($hp / 100 * $gdhd);
                        }
                    }
                }
            } elseif ($hp < 0) {
                //Отнимаемф
                if ($hpnow + $hp < 0) {
                    $hpli = $hpnow + $hp;
                    $hp += -($hpli);
                }
            }

            if ($this->stats[$this->uids[$uid]]['hpNow'] < 1) {
                $hp = 0;
            }

            $this->stats[$this->uids[$uid]]['last_hp'] = -$hp;
            Db::sql(
                'update stats set last_hp = ?, tactic7 = ? where id = ?', [
                    $this->users[$this->uids[$uid]]['last_hp'],
                    $this->users[$this->uids[$uid]]['tactic7'],
                    $uid,
                ]
            );
        }

        return floor($hp);
    }

    // todo stopped here //

    //Мини лог

    /**
     * Какая-то хуедрыга для номерных файлов-приёмов
     * @param int $pid
     * @param int $uid
     * @param int $id
     * @return void
     */
    public function deleffm(int $pid, int $uid, int $id)
    {
        if ($id > 0) {
            Db::sql('delete from eff_users where id = ? and v1 = ? and v2 != 0', [$id, 'priem']);
        } else {
            Db::sql('delete from eff_users where uid = ? and v1 = ? and v2 = ?', [$uid, 'priem', $pid]);
        }
    }

    //Проверяем завершение боя

    public function clear_cache_start()
    {
        $uids = implode(',', $this->ucleari);
        Db::sql('delete from battle_cache where uid in (?)', [$uids]);
    }

    //завершение поединка

    /**
     * Проверка урон приемов над защитными.
     * Игрок 1 бьет по Игроку 2 при помощи приема на hp ед. здоровья.
     * @param $u2
     * @param $hp
     * @return mixed
     */
    public function testYronPriemAttack($u2, $hp)
    {
        //Получаем приемы и смотрим когда какой действует
        foreach ($this->stats[$this->uids[$u2]]['effects'] as $effect) {
            if (
                isset($effect) &&
                $effect['id_eff'] == 22 &&
                $effect['v1'] == 'priem' &&
                (
                    $effect['v2'] == 140 ||
                    $effect['v2'] == 211 ||
                    $effect['v2'] == 45
                )
            ) {
                //Приемы от которых урон = 1 , то есть выдаем 0
                $hp['y'] = -1;
                $hp['r'] = 1;
                $hp['k'] = 2;
                $hp['m_y'] = 1;
                $hp['m_k'] = 2;
            }
        }
        return $hp;
    }

    public function takeYronNow($uid, $y)
    {
        global $u;
        if (!is_numeric($y) || !is_numeric($uid)) {
            return;
        }
        (int)$y = floor($y);
        $this->users[$this->uids[$uid]]['battle_yron'] += $y;
        $this->stats[$this->uids[$uid]]['battle_yron'] += $y;
        if ($uid == $u->info['id']) {
            $u->info['battle_yron'] += $y;
            $u->stats['battle_yron'] += $y;
        }
        Db::sql('update stats set battle_yron = battle_yron + ? where id = ?', [$y, $uid]);
    }

    public function myInfo($id, $t)
    {
        global $c, $u;
        if (!isset($this->users[$this->uids[$id]]) && $u->info['id'] != $id) {
            return false;
        }
        if ($u->info['id'] == $id || ($u->info['enemy'] == $id && $id > 0)) {
            //Всегда обновляем
            $this->users[$this->uids[$id]] = Db::getRow('select u.zag,u.id,u.login,u.login2,u.online,u.admin,u.city,u.cityreg,u.align,u.align_lvl,u.align_exp,u.clan,
					u.level,u.money,u.money3,u.money2,u.money4,u.battle,u.sex,u.obraz,u.win,u.win_t,
					u.lose,u.lose_t,u.nich,u.timeMain,u.invis,u.bot_id,u.animal,u.type_pers,
					u.notrhod,u.bot_room,u.inUser,u.inTurnir,u.inTurnirnew,u.stopexp,u.real, s.* from users as u left join stats as s on (u.id = s.id) where u.id = ?', [$id]);

            $this->stats[$this->uids[$id]] = $u->getStats($this->users[$this->uids[$id]], 0, 0, false, false, true);
            $this->stats[$this->uids[$id]]['items'] = $this->stats[$this->uids[$id]]['items'];
            $this->stats[$this->uids[$id]]['effects'] = $this->stats[$this->uids[$id]]['effects'];

        }
        $ur = $this->users[$this->uids[$id]];
        $st = $this->stats[$this->uids[$id]];
        $itm = $this->stats[$this->uids[$id]]['items'];
        $eff = $this->stats[$this->uids[$id]]['effects'];
        $ef = '';
        $i = 0;
        if ($u->info['seff'] < 1) {
            $ef .= '<div class=\"pimg\" pog=\"0\" col=\"0\" stl=\"0\" stt=\"Свернуть\"><img src=\"//img.new-combats.tech/i/eff/effs_hide.gif\"/ onclick=\"top.useMagicBattle(\'Свернуть\',7777,\'effs_show.gif\',1,2);\" onmouseover=\"top.hi(this,\'<strong>Свернуть</strong>\',event,3,1,1,1,\'\');\" onmouseout=\"top.hic();\" onmousedown=\"top.hic();\"></div>';

            while ($i != -1) {
                $nseef = 0;
                if ($this->users[$this->uids[$ur['id']]]['id'] != $u->info['id'] && $ur['id'] != 0) {
                    if ($this->stats[$this->uids[$ur['id']]]['seeAllEff'] != 1) {
                        $nseef = 1;
                        if ($eff[$i]['v1'] == 'priem') {
                            $eff[$i]['priem'] = Db::getRow('select * from priems where id = ?', [$eff[$i]['v2']]);

                        }
                        if (isset($eff[$i]['priem']['id']) && $eff[$i]['priem']['neg'] == 1) {
                            $nseef = 0;
                        }
                    }
                }

                if (isset($eff[$i]) && $eff[$i] != 'delete') {
                    if ($nseef == 0) {
                        $ei = '<strong><u>' . $eff[$i]['name'] . '</u></strong>';
                        if ($eff[$i]['x'] > 1) {
                            $ei .= ' x' . $eff[$i]['x'] . ' ';
                        }
                        if ($eff[$i]['type1'] > 0 && $eff[$i]['type1'] < 7) {
                            $ei .= ' (Эликсир)';
                        } elseif (($eff[$i]['type1'] > 6 && $eff[$i]['type1'] < 11) || $eff[$i]['type1'] == 16) {
                            $ei .= ' (Заклятие)';
                        } elseif ($eff[$i]['type1'] == 14) {
                            $ei .= ' (Прием)';
                        } elseif ($eff[$i]['type1'] == 15) {
                            $ei .= ' (Изучение)';
                        } elseif ($eff[$i]['type1'] == 17) {
                            $ei .= ' (Проклятие)';
                        } elseif ($eff[$i]['type1'] == 18 || $eff[$i]['type1'] == 19) {
                            $ei .= ' (Травма)';
                        } elseif ($eff[$i]['type1'] == 20) {
                            $ei .= ' (Пристрастие)';
                        } elseif ($eff[$i]['type1'] == 22) {
                            $ei .= ' (Ожидание)';
                        } else {
                            $ei .= ' (Эффект)';
                        }
                        $ei .= '<br>';

                        $out = '';
                        $time_still = ($eff[$i]['timeUse'] + ($eff[$i]['timeAce'] - $eff[$i]['timeUse']) + $eff[$i]['actionTime']);
                        if ($eff[$i]['timeAce'] == 0) {
                            $time_still += $eff[$i]['timeUse'];
                        }
                        $time_still -= time();
                        if ($eff[$i]['bp'] == 0 && $eff[$i]['timeUse'] != 77) {
                            if ($eff[$i]['type1'] != 13) {

                                $ei .= 'Осталось: ' . $u->timeOut($time_still) . '';
                            }
                        } else {
                            if ($eff[$i]['timeUse'] != 77 && $eff[$i]['hod'] < 1) {
                                $ei .= 'Осталось: ' . $u->timeOut($time_still) . '';
                                //$ei .= 'Зарядов: '.$out.'<br>';
                            } elseif ($eff[$i]['hod'] >= 0) {
                                $ei .= 'Зарядов: ' . $eff[$i]['hod'] . '';
                            }
                        }

                        if ($eff[$i]['user_use'] != '') {
                            if ($this->users[$this->uids[$eff[$i]['user_use']]]['login2'] != '') {
                                $ei .= '<br>Автор: <strong>' . $this->users[$this->uids[$eff[$i]['user_use']]]['login2'] . '</strong>';
                            } elseif ($this->users[$this->uids[$eff[$i]['user_use']]]['login'] != '') {
                                $ei .= '<br>Автор: <strong>' . $this->users[$this->uids[$eff[$i]['user_use']]]['login'] . '</strong>';
                            }
                        }

                        //Действие эффекта
                        $tr = '';
                        $ti = $u->items['add'];
                        $x = 0;
                        $ed = ConversionHelper::dataStringToArray($eff[$i]['data']);
                        while ($x < count($ti)) {
                            $n = $ti[$x];
                            if (isset($ed['add_' . $n], $u->is[$n]) && $n != 'pog') {
                                $z = '';
                                if ($ed['add_' . $n] > 0) {
                                    $z = '+';
                                }
                                $tr .= '<br>' . $u->is[$n] . ': ' . $z . '' . $ed['add_' . $n];
                            }
                            $x++;
                        }

                        if ($ed['add_mib1'] != 0) {
                            if ($ed['add_mab1'] != 0) {
                                $tr .= '<br>Броня головы: ' . $ed['add_mib1'] . '-' . $ed['add_mab1'] . '';
                            } else {
                                $m1l = $ed['add_mib1'];
                                if ($m1l > 0) {
                                    $m1l = '+' . $m1l;
                                }
                                $tr .= '<br>Броня головы: ' . $m1l . '';
                            }
                        }
                        if ($ed['add_mib2'] != 0) {
                            if ($ed['add_mab2'] != 0) {
                                $tr .= '<br>Броня корпуса: ' . $ed['add_mib2'] . '-' . $ed['add_mab2'] . '';
                            } else {
                                $m1l = $ed['add_mib2'];
                                if ($m1l > 0) {
                                    $m1l = '+' . $m1l;
                                }
                                $tr .= '<br>Броня корпуса: ' . $m1l . '';
                            }
                        }
                        if ($ed['add_mib3'] != 0) {
                            if ($ed['add_mab3'] != 0) {
                                $tr .= '<br>Броня пояса: ' . $ed['add_mib3'] . '-' . $ed['add_mab3'] . '';
                            } else {
                                $m1l = $ed['add_mib3'];
                                if ($m1l > 0) {
                                    $m1l = '+' . $m1l;
                                }
                                $tr .= '<br>Броня пояса: ' . $m1l . '';
                            }
                        }
                        if ($ed['add_mib4'] != 0) {
                            if ($ed['add_mab4'] != 0) {
                                $tr .= '<br>Броня ног: ' . $ed['add_mib4'] . '-' . $ed['add_mab4'] . '';
                            } else {
                                $m1l = $ed['add_mib4'];
                                if ($m1l > 0) {
                                    $m1l = '+' . $m1l;
                                }
                                $tr .= '<br>Броня ног: ' . $m1l . '';
                            }
                        }

                        $efix = 0;
                        if (isset($ed['add_pog2']) && $ed['add_pog2'] > 0) {
                            $efix = $ed['add_pog2'];
                        }
                        if (isset($ed['add_pog'])) {
                            $tr .= '<br>Магический барьер способен поглотить еще <strong>' . $ed['add_pog'] . '</strong> ед. урона';
                        }
                        if (isset($ed['add_pog2'])) {
                            $tr .= '<br>Магический барьер способен поглотить еще <strong>' . $ed['add_pog2'] . '</strong> ед. урона <small>(' . $ed['add_pog2p'] . '%)</small>';
                        }

                        if ($tr != '') {
                            $ei .= $tr;
                        }
                        if ($eff[$i]['info'] != '') {
                            $ei .= '<br><i>Информация:</i><br>' . $eff[$i]['info'];
                        }

                        $ef .= '<div class=\"pimg\" pog=\"' . $efix . '\" col=\"' . $eff[$i]['x'] . '\" stl=\"0\" stt=\"' . $ei . '\"><img src=\"//img.new-combats.tech/i/eff/' . $eff[$i]['img'] . '\"/></div>';
                        unset($efix);
                    }
                } elseif ($eff[$i] != 'delete') {
                    $i = -2;
                }
                $i++;
            }
        } else {
            $ef .= '<div class=\"pimg\" pog=\"0\" col=\"0\" stl=\"0\" stt=\"Развернуть\"><img src=\"//img.new-combats.tech/i/eff/effs_show.gif\"/ onclick=\"top.useMagicBattle(\'Развернуть\',5555,\'effs_show.gif\',1,2);\" onmouseover=\"top.hi(this,\'<strong>Развернуть</strong>\',event,3,1,1,1,\'\');\" onmouseout=\"top.hic();\" onmousedown=\"top.hic();\"></div>';
        }
        $ca = '';
        if ($ur['clan'] > 0) {
            $cl = Db::getRow('select * from clan where id = ?', [$ur['clan']]);
            if (isset($cl['id'])) {
                $ca = '<img src=\"//img.new-combats.tech/i/clan/' . $cl['name_mini'] . '.gif\" title=\"' . $cl['name'] . '\">';
            }
        }
        if ($ur['align'] > 0) {
            $ca = '<img src=\"//img.new-combats.tech/i/align/align' . $ur['align'] . '.gif\">' . $ca;
        }
        if ($ur['login2'] == '') {
            $ur['login2'] = $ur['login'];
        }
        if (floor($st['hpNow']) > $st['hpAll']) {
            $st['hpNow'] = $st['hpAll'];
        }
        if (floor($st['mpNow']) > $st['mpAll']) {
            $st['mpNow'] = $st['mpAll'];
        }
        $stsua = '<strong>' . $ur['login2'] . '</strong>';
        $stsua .= '<br>Сила: ' . $st['s1'];
        $stsua .= '<br>Ловкость: ' . $st['s2'];
        $stsua .= '<br>Интуиция: ' . $st['s3'];
        $stsua .= '<br>Выносливость: ' . $st['s4'];
        if ($st['s5'] != 0) {
            $stsua .= '<br>Интелект: ' . $st['s5'];
        }
        if ($st['s6'] != 0) {
            $stsua .= '<br>Мудрость: ' . $st['s6'];
        }
        if ($st['s7'] != 0) {
            $stsua .= '<br>Духовность: ' . $st['s7'];
        }
        if ($u->info['admin'] > 0) {
            $align = $ur['align'];
        }
        $tp_img = [
            1 => 4,
            2 => 5,
            14 => 6,
            3 => 7,
            5 => 8,
            7 => 9,
            17 => 10,
            16 => 11,
            13 => 12,
            10 => 13,
            9 => 14,
            8 => 15,
            11 => 17, //кольцо 2
            12 => 18, //кольцо 3
        ];
        $info = 'info_reflesh(' . $t . ',' . $ur['id'] . ',"' . $ca . '<a href=\"javascript:void(0)\" onclick=\"top.chat.addto(\'' . $ur['login2'] . '\',\'to\');return false;\">' . $ur['login2'] . '</a> [' . $ur['level'] . ']<a href=\"info/' . $ur['id'] . '\" target=\"_blank\"><img src=\"//img.new-combats.tech/i/inf_' . $ur['cityreg'] . '.gif\" title=\"Инф. о ' . $ur['login2'] . '\"></a>&nbsp;","' . $ur['obraz'] . '",' . floor(
                $st['hpNow']
            ) . ',' . floor($st['hpAll']) . ',' . floor(
                $st['mpNow']
            ) . ',' . floor(
                $st['mpAll']
            ) . ',0,' . $ur['sex'] . ',"' . $ef . '","' . $stsua . '", "' . $align . '", "' . $ur['zag'] . '");shpb();';
        $i = 0;
        if (is_array($itm)) {
            while ($i < count($itm)) {
                //
                if (isset($st['items_img'][$tp_img[$itm[$i]['inOdet']]])) {
                    $itm[$i]['img'] = $st['items_img'][$tp_img[$itm[$i]['inOdet']]];
                }
                //генерируем предметы
                $ttl = '<strong>' . $itm[$i]['name'] . '</strong>';
                $td = ConversionHelper::dataStringToArray($itm[$i]['data']);
                $lvar = '';
                if ($td['add_hpAll'] > 0) {
                    $td['add_hpAll'] = '+' . $td['add_hpAll'];
                    $lvar .= '<br>Уровень жизни: ' . $td['add_hpAll'] . '';
                }
                if ($td['sv_yron_max'] > 0 || $td['sv_yron_min'] > 0) {
                    $lvar .= '<br>Урон: ' . (0 + $td['sv_yron_min']) . '-' . (0 + $td['sv_yron_max']) . '';
                }
                if ($td['add_mab1'] > 0) {
                    if ($td['add_mib1'] == $td['add_mab1'] && $pl['geniration'] == 1) {
                        $m1l = '+';
                        $lvar .= '<br>Броня головы: ' . $m1l . '' . (0 + $td['add_mab1']) . '';
                    } else {
                        $lvar .= '<br>Броня головы: ' . (0 + $td['add_mib1']) . '-' . (0 + $td['add_mab1']) . '';
                    }
                }
                if ($td['add_mab2'] > 0) {
                    if ($td['add_mib2'] == $td['add_mab2'] && $pl['geniration'] == 1) {
                        $m1l = '+';
                        $lvar .= '<br>Броня корпуса: ' . $m1l . '' . (0 + $td['add_mab2']) . '';
                    } else {
                        $lvar .= '<br>Броня корпуса: ' . (0 + $td['add_mib2']) . '-' . (0 + $td['add_mab2']) . '';
                    }
                }
                if ($td['add_mab3'] > 0) {
                    if ($td['add_mib3'] == $td['add_mab3'] && $pl['geniration'] == 1) {
                        $m1l = '+';
                        $lvar .= '<br>Броня пояса: ' . $m1l . '' . (0 + $td['add_mab3']) . '';
                    } else {
                        $lvar .= '<br>Броня пояса: ' . (0 + $td['add_mib3']) . '-' . (0 + $td['add_mab3']) . '';
                    }
                }
                if ($td['add_mab4'] > 0) {
                    if ($td['add_mib4'] == $td['add_mab4'] && $pl['geniration'] == 1) {
                        $m1l = '+';
                        $lvar .= '<br>Броня ног: ' . $m1l . '' . (0 + $td['add_mab4']) . '';
                    } else {
                        $lvar .= '<br>Броня ног: ' . (0 + $td['add_mib4']) . '-' . (0 + $td['add_mab4']) . '';
                    }
                }
                if ($itm[$i]['iznosMAX'] > 0) {
                    if ($itm[$i]['iznosMAXi'] == 999999999) {
                        $lvar .= '<br>Долговечность: <font color=brown>неразрушимо</font>';
                    } else {
                        $lvar .= '<br>Долговечность: ' . floor(
                                $itm[$i]['iznosNOW']
                            ) . '/' . floor(
                                $itm[$i]['iznosMAX']
                            );
                    }
                }
                $ttl .= $lvar;
                $ccv = '';

                if ($itm[$i]['magic_inci'] != '' || $itm[$i]['magic_inc'] != '') {
                    if ($itm[$i]['magic_inc'] == '') {
                        $itm[$i]['magic_inc'] = $itm[$i]['magic_inci'];
                    }
                    $mgi = Db::getRow('select * from eff_main where id2 = ? and type1 = 12345', [$itm[$i]['magic_inc']]);
                    if (isset($mgi['id2'])) {
                        $mgilog = '';
                        $ccv .= 'top.useMagicBattle(\'' . $mgi['mname'] . '\',' . $itm[$i]['id'] . ',\'' . $mgi['img'] . '\',1,2);';
                    }
                }

                $info .= 'abitms(' . (0 + $t) . ',' . (0 + $itm[$i]['uid']) . ',' . (0 + $itm[$i]['id']) . ',' . (0 + $itm[$i]['inOdet']) . ',"' . $itm[$i]['name'] . '","' . $ttl . '","' . $itm[$i]['img'] . '","' . $ccv . '");';
                $i++;
            }
        }
        return $info;
    }

    //Проводим удар

    /**
     * Проверка на выживших.
     * Проклято и сломано.
     * @return bool
     */
    public function testUsersLive(): bool
    {
        $r = false;
        $tl = 0;
        $i = 0;
        $j = 0;
        while ($i < count($this->uids)) {
            if ($this->stats[$i]['id'] > 0) {
                if (floor($this->stats[$i]['hpNow']) < 1) {
                    $this->stats[$i]['hpNow'] = 0;
                }
                $hp[$this->users[$i]['team']] += floor($this->stats[$i]['hpNow']);
                if (!isset($tml[$this->users[$i]['team']]) && floor($this->stats[$i]['hpNow']) >= 1) {
                    $tml[$this->users[$i]['team']] = 1;
                    $tmv[$j] = $this->users[$i]['team'];
                    $tl++;
                }
            }
            $i++;
        }
        if ($tl > 1) {
            $r = true;
        }
        return $r;
    }

    //Запускаем магические предметы, если в них что-то встроено

    public function testFinish()
    {
        global $u;
        mysql_query('START TRANSACTION;');
        $test = mysql_fetch_array(
            mysql_query(
                'SELECT `id` FROM `battle` WHERE `id` = "' . $this->info['id'] . '" AND `team_win` = -1 LIMIT 1 FOR UPDATE'
            )
        );
        mysql_query('COMMIT;');
        if ($this->info['team_win'] == -1 && isset($test['id'])) {
            $hp = [];
            $tml = [];
            $tmv = [];
            $tl = 0;
            $i = 0;
            $j = 0;
            while ($i < count($this->uids)) {
                if ($this->stats[$i]['id'] > 0) {
                    if (floor($this->stats[$i]['hpNow']) < 1) {
                        $this->stats[$i]['hpNow'] = 0;
                    }
                    $hp[$this->users[$i]['team']] += floor($this->stats[$i]['hpNow']);
                    if (!isset($tml[$this->users[$i]['team']]) && floor($this->stats[$i]['hpNow']) >= 1) {
                        $tml[$this->users[$i]['team']] = 1;
                        $tmv[$j] = $this->users[$i]['team'];
                        $tl++;
                    }
                }
                $i++;
            }

            if ($tl <= 1) {
                //Доп.проверка
                $tmHpNow = [];
                $tmNow = [];
                $sp = mysql_query(
                    'SELECT `u`.`login`,`u`.`id`,`u`.`battle`,`s`.`team`,`s`.`hpNow` FROM `users` AS `u` LEFT JOIN `stats` AS `s` ON `s`.`id` = `u`.`id` WHERE `u`.`battle` = "' . $this->info['id'] . '"'
                );
                while ($pl = mysql_fetch_array($sp)) {
                    if (!isset($tmHpNow[$pl['team']])) {
                        $tmHpNow[$pl['team']] = 0;
                        $tmNow[] = $pl['team'];
                    }
                    $hpTm = floor($pl['hpNow']);
                    if ($hpTm < 0) {
                        $hpTm = 0;
                    }
                    if ($hpTm > 0) {
                        $tmHpNow[$pl['team']] += $pl['hpNow'];
                    }
                }
                $gdj = 0;
                $i = 0;
                while ($i < count($tmNow)) {
                    if (isset($tmNow[$i])) {
                        $j = $tmNow[$i];
                        if ($tmHpNow[$j] > 0) {
                            $gdj++;
                        }
                    }
                    $i++;
                }
                if ($gdj > 1) {
                    $tl = $gdj;
                    echo 'Поединок может завершиться не корректно... (Сообщите Администрации об этом)';
                }
            }

            if ($tl <= 1) {
                //завершаем поединок, кто-то один победил, либо ничья

                $i = 0;
                $tmwin = 0;
                while ($i < count($tmv)) {
                    if ($tmv[$i] >= 1 && $tml[$tmv[$i]] > 0) {
                        $tmwin = $tmv[$i];
                    }
                    $i++;
                }

                if ($this->info['izlom'] == 0) {
                    $rs = '';
                    $ts = [];
                    $tsi = 0;
                    if ($this->info['id'] > 0) {
                        //данные о игроках в бою
                        unset($this->users, $this->stats, $this->uids, $this->bots, $this->iBots);
                        $trl = mysql_query(
                            'SELECT `u`.`no_ip`,`u`.`id`,`u`.`notrhod`,`u`.`login`,`u`.`login2`,`u`.`sex`,`u`.`online`,`u`.`admin`,`u`.`align`,`u`.`align_lvl`,`u`.`align_exp`,`u`.`clan`,`u`.`level`,`u`.`battle`,`u`.`obraz`,`u`.`win`,`u`.`lose`,`u`.`nich`,`u`.`animal`,`st`.`stats`,`st`.`hpNow`,`st`.`mpNow`,`st`.`exp`,`st`.`dnow`,`st`.`team`,`st`.`battle_yron`,`st`.`battle_exp`,`st`.`enemy`,`st`.`battle_text`,`st`.`upLevel`,`st`.`timeGo`,`st`.`timeGoL`,`st`.`bot`,`st`.`lider`,`st`.`btl_cof`,`st`.`tactic1`,`st`.`tactic2`,`st`.`tactic3`,`st`.`tactic4`,`st`.`tactic5`,`st`.`tactic6`,`st`.`tactic7`,`st`.`x`,`st`.`y`,`st`.`battleEnd`,`st`.`priemslot`,`st`.`priems`,`st`.`priems_z`,`st`.`bet`,`st`.`clone`,`st`.`atack`,`st`.`bbexp`,`st`.`res_x`,`st`.`res_y`,`st`.`res_s`,`st`.`id`,`st`.`last_hp`,`st`.`last_pr`,`u`.`sex`,`u`.`money`,`u`.`money3`,`u`.`money2`,`u`.`bot_id` FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON (`u`.`id` = `st`.`id`) WHERE `u`.`battle` = "' . $this->info['id'] . '" ORDER BY `st`.`bot`  DESC'
                        );
                        $ir = 0;
                        $bi = 0;
                        $this->users = null;
                        $this->stats = null;
                        $this->uids = null;
                        $this->bots = null;
                        $this->iBots = null;
                        while ($pl = mysql_fetch_array($trl)) {
                            //записываем данные
                            if ($pl['login2'] == '') {
                                $pl['login2'] = $pl['login'];
                            }
                            $this->users[$ir] = $pl;
                            $this->uids[$pl['id']] = $ir;
                            if ($pl['bot'] > 0) {
                                $this->bots[$bi] = $pl['id'];
                                $this->iBots[$pl['id']] = $bi;
                                $bi++;
                            }
                            //записываем статы
                            $this->stats[$ir] = $u->getStats($pl, 0, 0, false, false, true);
                            $ir++;
                        }
                    }
                } elseif (!isset($this->uids[$u->info['id']])) {
                    $rs = '';
                    $ts = [];
                    $tsi = 0;
                    if ($this->info['id'] > 0) {
                        //данные о игроках в бою
                        $trl = mysql_query(
                            'SELECT `u`.`no_ip`,`u`.`id`,`u`.`notrhod`,`u`.`login`,`u`.`login2`,`u`.`sex`,`u`.`online`,`u`.`admin`,`u`.`align`,`u`.`align_lvl`,`u`.`align_exp`,`u`.`clan`,`u`.`level`,`u`.`battle`,`u`.`obraz`,`u`.`win`,`u`.`lose`,`u`.`nich`,`u`.`animal`,`st`.`stats`,`st`.`hpNow`,`st`.`mpNow`,`st`.`exp`,`st`.`dnow`,`st`.`team`,`st`.`battle_yron`,`st`.`battle_exp`,`st`.`enemy`,`st`.`battle_text`,`st`.`upLevel`,`st`.`timeGo`,`st`.`timeGoL`,`st`.`bot`,`st`.`lider`,`st`.`btl_cof`,`st`.`tactic1`,`st`.`tactic2`,`st`.`tactic3`,`st`.`tactic4`,`st`.`tactic5`,`st`.`tactic6`,`st`.`tactic7`,`st`.`x`,`st`.`y`,`st`.`battleEnd`,`st`.`priemslot`,`st`.`priems`,`st`.`priems_z`,`st`.`bet`,`st`.`clone`,`st`.`atack`,`st`.`bbexp`,`st`.`res_x`,`st`.`res_y`,`st`.`res_s`,`st`.`id`,`st`.`last_hp`,`st`.`last_pr`,`u`.`sex`,`u`.`money`,`u`.`bot_id`,`u`.`money3`,`u`.`money2` FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON (`u`.`id` = `st`.`id`) WHERE `u`.`id` = "' . $this->info['id'] . '" LIMIT 1'
                        );
                        $pl = mysql_fetch_array($trl);
                        //записываем данные
                        if ($pl['login2'] == '') {
                            $pl['login2'] = $pl['login'];
                        }
                        $this->users[] = $pl;
                        $this->uids[$pl['id']] = $ir;
                        if ($pl['bot'] > 0) {
                            $this->bots[] = $pl['id'];
                            $this->iBots[$pl['id']] = $bi;
                        }
                        //записываем статы
                        $this->stats[] = $u->getStats($pl, 0, 0, false, false, true);
                    }
                }


                if ($this->info['izlom'] > 0 && $tmwin == 1) {
                    // выкидываем ботов из боя
                    $i = 0;
                    $dlt = '';
                    $dlt2 = '';
                    $sp = mysql_query(
                        'SELECT `users`.`id`,`stats`.`bot`,`stats`.`team` FROM `users`,`stats` WHERE `users`.`battle` = "' . $this->info['id'] . '" AND `stats`.`id` = `users`.`id` LIMIT 250'
                    );
                    while ($pl = mysql_fetch_array($sp)) {
                        if ($pl['bot'] == 1 && $pl['team'] != $u->info['team']) {
                            $dlt .= ' `id`="' . $pl['id'] . '" OR';
                            $dlt2 .= ' `uid`="' . $pl['id'] . '" OR';
                            $i++;
                        }
                    }

                    if ($i > 0) {
                        $dlt = trim($dlt, 'OR');
                        $dlt2 = trim($dlt2, 'OR');
                        mysql_query('DELETE FROM `users` WHERE ' . $dlt . ' LIMIT ' . $i);
                        mysql_query('DELETE FROM `stats` WHERE ' . $dlt . ' LIMIT ' . $i);
                        mysql_query('DELETE FROM `items_users` WHERE ' . $dlt2 . ' LIMIT ' . ($i * 100));
                        mysql_query('DELETE FROM `eff_users` WHERE ' . $dlt2 . ' LIMIT ' . ($i * 100));
                    }

                    unset($i, $dlt, $dlt2);

                    $j = 0;
                    $k = 0;
                    $obr = 0;

                    //Это излом, добавляем еще ботов
                    if ($this->get_chanse(20)) {
                        //Уникальные монстры
                        if ($this->info['izlomLvl'] == 8) {
                            $bots = [
                                'Валентайский Охотник',
                                'Шипокрыл Хаоса',
                                'Шипокрыл',
                                'Лик Хаоса',
                                'Фанатик Хаоса',
                            ];
                        }
                        $logins_bot = [];
                        //
                        echo '<center><strong><font color=red>Приближается нечто...</font></strong></center>';
                        //
                        $id2 = rand(0, (count($bots) - 1));
                        $id = mysql_fetch_array(
                            mysql_query(
                                'SELECT * FROM `test_bot` WHERE `login` = "' . $bots[$id2] . '" AND `pishera` != "" AND `active` = "1" ORDER BY `level` DESC LIMIT 1'
                            )
                        );
                        $bot = $u->addNewbot(
                            $id['id'], null, null, $logins_bot, null,
                            round($this->info['izlomRoundSee'])
                        );
                        if (isset($id['id']) && $bot != false) {
                            //
                            $btxt = '';
                            if ($id['align'] > 0) {
                                $btxt = $btxt . '<img width=12 height=15 src=//img.new-combats.tech/i/align/align' . $id['align'] . '.gif >';
                            }
                            if ($id['clan'] > 0) {
                                $btxt = $btxt . '<img width=24 height=15 src=//img.new-combats.tech/i/clan/' . $id['clan'] . '.gif >';
                            }
                            $btxt = $btxt . '<strong>{u1}</strong>[' . $id['level'] . ']<a href=info/' . $id['id'] . ' target=_blank ><img width=12 height=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
                            if ($id['sex'] == 1) {
                                $btxt = $btxt . ' вмешалась в поединок.';
                            } else {
                                $btxt = $btxt . ' вмешался в поединок.';
                            }
                            $this->miniLogAdd(
                                [
                                    'login' => $id['login'],
                                    'sex' => $id['sex'],
                                    'team' => 0,
                                ], '{tm1} ' . $btxt
                            );
                            //
                            $logins_bot = $bot['logins_bot'];
                            mysql_query(
                                'UPDATE `users` SET `battle`="' . $this->info['id'] . '" WHERE `id` = "' . $bot['id'] . '" LIMIT 1'
                            );
                            mysql_query('UPDATE `stats` SET `team`="2" WHERE `id` = "' . $bot['id'] . '" LIMIT 1');
                            $u->addAction(time(), 'win_bot_' . $id['id'], '', $this->users[$i]['id']);
                            if (rand(0, 10000) < 1500) {
                                $obr++;
                            }
                            $j++;
                        }
                    } else {
                        //Обычные монстры
                        if ($this->info['izlomLvl'] == 8) {
                            $bots = [
                                'Литейщик',
                                'Проклятие Глубин',
                                'Пустынник Маньяк',
                                'Пустынник Убийца',
                                'Рабочий Мглы',
                                'Смотритель Мглы',
                                'Сторож Мглы',
                            ];
                        }
                        $logins_bot = [];
                        //
                        $id2 = rand(0, (count($bots) - 1));
                        $id = mysql_fetch_array(
                            mysql_query(
                                'SELECT * FROM `test_bot` WHERE `login` = "' . $bots[$id2] . '" AND `level` <= "' . $u->info['level'] . '" AND `pishera` != "" AND `active` = "1" ORDER BY `level` DESC LIMIT 1'
                            )
                        );
                        $bot = $u->addNewbot(
                            $id['id'], null, null, $logins_bot, null,
                            ($this->info['izlomRoundSee'] * 2)
                        );
                        if (isset($id['id']) && $bot) {
                            //
                            $btxt = '';
                            if ($id['align'] > 0) {
                                $btxt = $btxt . '<img width=12 height=15 src=//img.new-combats.tech/i/align/align' . $id['align'] . '.gif >';
                            }
                            if ($id['clan'] > 0) {
                                $btxt = $btxt . '<img width=24 height=15 src=//img.new-combats.tech/i/clan/' . $id['clan'] . '.gif >';
                            }
                            $btxt = $btxt . '<strong>{u1}</strong>[' . $id['level'] . ']<a href=info/' . $id['id'] . ' target=_blank ><img width=12 height=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
                            if ($id['sex'] == 1) {
                                $btxt = $btxt . ' вмешалась в поединок.';
                            } else {
                                $btxt = $btxt . ' вмешался в поединок.';
                            }
                            $this->miniLogAdd(
                                [
                                    'login' => $id['login'],
                                    'sex' => $id['sex'],
                                    'team' => 0,
                                ], '{tm1} ' . $btxt
                            );
                            //
                            $logins_bot = $bot['logins_bot'];
                            mysql_query(
                                'UPDATE `users` SET `battle`="' . $this->info['id'] . '" WHERE `id` = "' . $bot['id'] . '" LIMIT 1'
                            );
                            mysql_query('UPDATE `stats` SET `team`="2" WHERE `id` = "' . $bot['id'] . '" LIMIT 1');
                            if (rand(0, 10000) < 1500) {
                                $obr++;
                            }
                            $j++;
                        }
                        //
                        $id2 = rand(0, (count($bots) - 1));
                        $id = mysql_fetch_array(
                            mysql_query(
                                'SELECT * FROM `test_bot` WHERE `login` = "' . $bots[$id2] . '" AND `level` <= "' . $u->info['level'] . '" AND `pishera` != "" AND `active` = "1" ORDER BY `level` DESC LIMIT 1'
                            )
                        );
                        $bot = $u->addNewbot($id['id'], null, null, $logins_bot, null, $this->info['izlomRoundSee']);
                        if (isset($id['id']) && $bot) {
                            //
                            $btxt = '';
                            if ($id['align'] > 0) {
                                $btxt = $btxt . '<img width=12 height=15 src=//img.new-combats.tech/i/align/align' . $id['align'] . '.gif >';
                            }
                            if ($id['clan'] > 0) {
                                $btxt = $btxt . '<img width=24 height=15 src=//img.new-combats.tech/i/clan/' . $id['clan'] . '.gif >';
                            }
                            $btxt = $btxt . '<strong>{u1}</strong>[' . $id['level'] . ']<a href=info/' . $id['id'] . ' target=_blank ><img width=12 height=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
                            if ($id['sex'] == 1) {
                                $btxt = $btxt . ' вмешалась в поединок.';
                            } else {
                                $btxt = $btxt . ' вмешался в поединок.';
                            }
                            $this->miniLogAdd(
                                [
                                    'login' => $id['login'],
                                    'sex' => $id['sex'],
                                    'team' => 0,
                                ], '{tm1} ' . $btxt
                            );
                            //
                            $logins_bot = $bot['logins_bot'];
                            mysql_query(
                                'UPDATE `users` SET `battle`="' . $this->info['id'] . '" WHERE `id` = "' . $bot['id'] . '" LIMIT 1'
                            );
                            mysql_query('UPDATE `stats` SET `team`="2" WHERE `id` = "' . $bot['id'] . '" LIMIT 1');
                            if (rand(0, 10000) < 1500) {
                                $obr++;
                            }
                            $j++;
                        }
                        //
                        if (rand(0, 100) < 70) {
                            $id2 = rand(0, (count($bots) - 1));
                            $id = mysql_fetch_array(
                                mysql_query(
                                    'SELECT * FROM `test_bot` WHERE `login` = "' . $bots[$id2] . '" AND `level` <= "' . $u->info['level'] . '" AND `pishera` != "" AND `active` = "1" ORDER BY `level` DESC LIMIT 1'
                                )
                            );
                            $bot = $u->addNewbot(
                                $id['id'], null, null, $logins_bot, null,
                                $this->info['izlomRoundSee']
                            );
                            if (isset($id['id']) && $bot) {
                                //
                                $btxt = '';
                                if ($id['align'] > 0) {
                                    $btxt = $btxt . '<img width=12 height=15 src=//img.new-combats.tech/i/align/align' . $id['align'] . '.gif >';
                                }
                                if ($id['clan'] > 0) {
                                    $btxt = $btxt . '<img width=24 height=15 src=//img.new-combats.tech/i/clan/' . $id['clan'] . '.gif >';
                                }
                                $btxt = $btxt . '<strong>{u1}</strong>[' . $id['level'] . ']<a href=info/' . $id['id'] . ' target=_blank ><img width=12 height=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
                                if ($id['sex'] == 1) {
                                    $btxt = $btxt . ' вмешалась в поединок.';
                                } else {
                                    $btxt = $btxt . ' вмешался в поединок.';
                                }
                                $this->miniLogAdd(
                                    [
                                        'login' => $id['login'],
                                        'sex' => $id['sex'],
                                        'team' => 0,
                                    ], '{tm1} ' . $btxt
                                );
                                //
                                $logins_bot = $bot['logins_bot'];
                                mysql_query(
                                    'UPDATE `users` SET `battle`="' . $this->info['id'] . '" WHERE `id` = "' . $bot['id'] . '" LIMIT 1'
                                );
                                mysql_query('UPDATE `stats` SET `team`="2" WHERE `id` = "' . $bot['id'] . '" LIMIT 1');
                                if (rand(0, 10000) < 1500) {
                                    $obr++;
                                }
                                $j++;
                            }
                        }
                        //Каждые 10 вол = +1 монстр
                        $irb = floor($this->info['izlomRoundSee'] / 10);
                        while ($irb > 0) {
                            //
                            if (rand(0, 100) < 20) {
                                $id2 = rand(0, (count($bots) - 1));
                                $id = mysql_fetch_array(
                                    mysql_query(
                                        'SELECT * FROM `test_bot` WHERE `login` = "' . $bots[$id2] . '" AND `level` <= "' . $u->info['level'] . '" AND `pishera` != "" AND `active` = "1" ORDER BY `level` DESC LIMIT 1'
                                    )
                                );
                                $bot = $u->addNewbot(
                                    $id['id'], null, null, $logins_bot, null,
                                    $this->info['izlomRoundSee']
                                );
                                if (isset($id['id']) && $bot) {
                                    //
                                    $btxt = '';
                                    if ($id['align'] > 0) {
                                        $btxt = $btxt . '<img width=12 height=15 src=//img.new-combats.tech/i/align/align' . $id['align'] . '.gif >';
                                    }
                                    if ($id['clan'] > 0) {
                                        $btxt = $btxt . '<img width=24 height=15 src=//img.new-combats.tech/i/clan/' . $id['clan'] . '.gif >';
                                    }
                                    $btxt = $btxt . '<strong>{u1}</strong>[' . $id['level'] . ']<a href=info/' . $id['id'] . ' target=_blank ><img width=12 height=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
                                    if ($id['sex'] == 1) {
                                        $btxt = $btxt . ' вмешалась в поединок.';
                                    } else {
                                        $btxt = $btxt . ' вмешался в поединок.';
                                    }
                                    $this->miniLogAdd(
                                        [
                                            'login' => $id['login'],
                                            'sex' => $id['sex'],
                                            'team' => 0,
                                        ], '{tm1} ' . $btxt
                                    );
                                    //
                                    $logins_bot = $bot['logins_bot'];
                                    mysql_query(
                                        'UPDATE `users` SET `battle`="' . $this->info['id'] . '" WHERE `id` = "' . $bot['id'] . '" LIMIT 1'
                                    );
                                    mysql_query(
                                        'UPDATE `stats` SET `team`="2" WHERE `id` = "' . $bot['id'] . '" LIMIT 1'
                                    );
                                    if (rand(0, 10000) < 1500) {
                                        $obr++;
                                    }
                                    $j++;
                                }
                            }
                            $irb--;
                        }
                    }
                    //
                    unset($logins_bot);

                    if ($j == 0) {
                        //конец излома
                        $this->finishBattle($tml, $tmv, null, $tl);
                        $fin1 = mysql_query(
                            'INSERT INTO `izlom_rating` (`uid`,`time`,`voln`,`level`,`bots`,`rep`,`obr`,`btl`) VALUES ("' . $u->info['id'] . '","' . time() . '","' . $this->info['izlomRoundSee'] . '","' . $this->info['izlomLvl'] . '","0","0","' . ($this->info['izlomObr'] - $this->info['izlomObrNow']) . '","' . $this->info['id'] . '")'
                        );
                    } else {
                        $this->info['izlomRound'] = $iz['round'];
                        mysql_query(
                            'UPDATE `battle` SET `izlomObrNow` = ' . $obr . ',`izlomObr` = `izlomObr` + ' . $obr . ',`timeout` = (`timeout`+5),`izlomRound` = "' . ($this->info['izlomRound'] + 1) . '",`izlomRoundSee` = `izlomRoundSee`+1 WHERE `id` = "' . $this->info['id'] . '" LIMIT 1'
                        );
                        $this->stats[$this->uids[$u->info['id']]]['hpNow'] += $this->stats[$this->uids[$u->info['id']]]['hpAll'] * 0.25;
                        $this->stats[$this->uids[$u->info['id']]]['mpNow'] += $this->stats[$this->uids[$u->info['id']]]['mpAll'] * 0.25;
                        $this->users[$this->uids[$u->info['id']]]['hpNow'] = $this->stats[$this->uids[$u->info['id']]]['hpAll'];
                        $this->users[$this->uids[$u->info['id']]]['mpNow'] = $this->stats[$this->uids[$u->info['id']]]['mpAll'];
                        $vLog = 'at1=00000||at2=00000||zb1=' . $this->stats[$this->uids[$u1]]['zonb'] . '||zb2=' . $this->stats[$this->uids[$u2]]['zonb'] . '||bl1=' . $this->atacks[$id]['b' . $a] . '||bl2=' . $this->atacks[$id]['b' . $b] . '||time1=' . $this->atacks[$id]['time'] . '||time2=' . $this->atacks[$id]['time2'] . '||s2=' . $this->users[$this->uids[$u2]]['sex'] . '||s1=' . $this->users[$this->uids[$u1]]['sex'] . '||t2=' . $this->users[$this->uids[$u2]]['team'] . '||t1=' . $this->users[$this->uids[$u1]]['team'] . '||login1=' . $this->users[$this->uids[$u1]]['login2'] . '||login2=' . $this->users[$this->uids[$u2]]['login2'] . '';

                        $mas = [
                            'text' => '',
                            'time' => time(),
                            'vars' => '',
                            'battle' => $this->info['id'],
                            'id_hod' => ($this->hodID + 1),
                            'vars' => $vLog,
                            'type' => 1,
                        ];
                        if ($u->info['sex'] == 1) {
                            $mas['text'] = '<span class=date>' . date(
                                    'H:i'
                                ) . '</span> <strong>' . $u->info['login'] . '</strong> воспользовалась приемом &quot;<strong>Передышка</strong>&quot;.';
                        } else {
                            $mas['text'] = '<span class=date>' . date(
                                    'H:i'
                                ) . '</span> <strong>' . $u->info['login'] . '</strong> воспользовался приемом &quot;<strong>Передышка</strong>&quot;.';
                        }
                        if ($u->stats['hpNow'] < $u->stats['hpAll']) {
                            $hpSks = floor(($u->stats['hpAll'] * ((rand(15, 25)) / 100)));
                            if ($hpSks > floor($u->stats['hpAll'] - $u->stats['hpNow'])) {
                                $hpSks = floor($u->stats['hpAll'] - $u->stats['hpNow']);
                            }
                            $mas['text'] .= ' <font color=#0066aa><strong>+' . $hpSks . '</strong></font>';
                        } else {
                            $hpSks = 0;
                            $mas['text'] .= ' <font color=#0066aa><strong>--</strong></font>';
                        }
                        $mas['text'] .= ' [' . floor($u->info['hpNow'] + $hpSks) . '/' . $u->stats['hpAll'] . ']';
                        $this->add_log($mas);

                        mysql_query(
                            'UPDATE `stats` SET `hpNow` = "' . ($u->info['hpNow'] + ($u->stats['hpAll'] * ((rand(
                                            15,
                                            25
                                        )) / 100))) . '",`mpNow` = "' . ($u->info['mpNow'] + ($u->stats['mpAll'] * 0.25)) . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'
                        );
                    }
                } else {
                    //завершаем бой
                    $this->finishBattle($tml, $tmv, null, $tl);
                    if ($this->info['izlom'] > 0) {
                        $fin1 = mysql_query(
                            'INSERT INTO `izlom_rating` (`uid`,`time`,`voln`,`level`,`bots`,`rep`,`obr`,`btl`) VALUES ("' . $u->info['id'] . '","' . time() . '","' . $this->info['izlomRoundSee'] . '","' . $this->info['izlomLvl'] . '","0","0","' . ($this->info['izlomObr'] - $this->info['izlomObrNow']) . '","' . $this->info['id'] . '")'
                        );
                    }
                }
                if (isset($fin1)) {
                    mysql_query(
                        'INSERT INTO `eff_users` (`no_Ace`,`id_eff`,`overType`,`uid`,`name`,`data`,`timeUse`) VALUES ("1","31","23","' . $u->info['id'] . '","Касание Хаоса","nofastfinisheff=1","' . time() . '")'
                    );
                    $cmsg = new ChatMessage();
                    $cmsg->setCity($u->info['city']);
                    $cmsg->setRoom($u->info['room']);
                    $cmsg->setTo($u->info['login']);
                    $cmsg->setType(6);
                    $cmsg->setText(
                        'Вы создали предмет "Образец" x' . (($this->info['izlomObr'] - $this->info['izlomObrNow']) * 7)
                    );
                    (new Chat())->sendMsg($cmsg);

                    $i01 = 1;
                    while ($i01 <= (($this->info['izlomObr'] - $this->info['izlomObrNow'])) * 7) {
                        \User\ItemsModel::addItem(1226, $u->info['id'], '|sudba=' . $u->info['login']);
                        $i01++;
                    }
                    mysql_query(
                        'INSERT INTO `actions`(`uid`, `time`, `city`, `room`, `vars`, `ip`, `vals`, `val`) VALUES ("' . $u->info['id'] . '","' . time() . '","capitalcity","' . $u->info['room'] . '","izlom"," ","","")'
                    );
                    unset($fin1);
                }
            }
        } else {
            mysql_query('START TRANSACTION;');
            $test = mysql_fetch_array(
                mysql_query(
                    'SELECT `id`,`team_win`, `testfinish` FROM `battle` WHERE `id` = "' . $this->info['id'] . '" AND `team_win` != -1 LIMIT 1 FOR UPDATE'
                )
            );
            mysql_query('COMMIT;');
            if (isset($test['id'])) {
                $this->finishBattle(null, null, 10, $tl);
            }
        }
    }

    //Поглощение урона

    public function get_chanse($percent): bool
    {
        if ($percent >= 100) {
            $percent = 100;
        } elseif ($percent == 0) {
            $percent = 0;
        }
        return $this->dodge(1, $percent);
    }

    public function dodge($a, $b): bool
    {
        $i = 0;
        $arr = [];     //массив для записи уникальных случайных чисел
        while ($i < ($b - $a)) {
            while (in_array($rand, $arr)) {
                $rand = mt_rand(1, 100);
            }
            $arr[] = $rand;
            $i++;
        }
        $n = mt_rand(1, 100);
        return (bool)array_search($n, $arr);
    }

    //Поглощение урона

    private function miniLogAdd($user, $text)
    {
        $vLog = 'at1=00000||at2=00000||zb1=0||zb2=0||bl1=0||bl2=0||time1=' . time() . '||time2=' . time() . '||s1=' . $user['sex'] . '||t1=' . $user['team'] . '||login1=' . $user['login'] . '||';
        $mas1 = [
            'time' => time(),
            'battle' => $this->info['id'],
            'id_hod' => ($this->hodID + 1),
            'text' => $text,
            'vars' => $vLog,
            'zona1' => '',
            'zonb1' => '',
            'zona2' => '',
            'zonb2' => '',
            'type' => '1',
        ];
        $this->add_log($mas1);
    }

    public function add_log($mass)
    {
        if (empty($mass['text'])) {
            return;
        }
        mysql_query(
            'INSERT INTO `battle_logs` (`time`,`battle`,`id_hod`,`text`,`vars`,`type`) VALUES (unix_timestamp(), "' . $mass['battle'] . '","' . $mass['id_hod'] . '","' . $mass['text'] . '","' . $mass['vars'] . '","' . $mass['type'] . '")'
        );
        if (rand(2, 10) == 10) {
            $this->get_comment();
        }
    }


    //Тестируем удары и т.д

    public function get_comment()
    {
        $boycom = [
            'А танцуешь ты лучше.',
            'А мы что, в прятки тут играем?',
            'А вы разве пингвинов никогда не видели?',
            'А, ведь когда-то, вы были красивыми… А теперь? Ну и рожи! Жуть!',
            'А потом еще труп пинать будут.',
            'А я вчера ночью за соседями подглядывал. Они точно так же кувыркались',
            'А ведь вы живых людей дубасите...',
            'А вот я вчера в зоопарке был...',
            'А вы в стройбате не служили?',
            'А вы видели, чтобы так на улице делали!?',
            'А вы знали что ёжики размножаются в интернете?',
            'А жить-то, как хочется:',
            'А из-за чего вы собственно дерётесь?',
            'А чего ржёте, вы ещё остальных не видели',
            'А что произойдёт если ты испугаешся до полусмерти дважды?!',
            'Больше так не делай. Ты же не садист?',
            'Без комментариев...',
            'Больно ведь!',
            'Быстро ты за монитор спрятался!',
            'Все хотят попасть в рай, но никто не хочет умирать!',
            'Вчера с такой девчонкой познакомился.',
            'Всего 5 минут знакомы, а дерутся, словно супруги с 20-ти летним стажем...',
            'Все. Я так больше не могу.',
            'В конце концов, кто-то победит?',
            'Вы чего, с дерева упали?',
            'Возятся как сонные мухи... давайте я вам лучше анекдот расскажу: ...',
            'Вот видишь, как полезно чистить зубы на ночь?',
            'Вот вы все руками махаете, а за вами уже очередь',
            'Вот попадёте вы в плен и вас там будут долго бить. Но вы ничего не расскажете... и не потому, что вы такой стойкий, просто вы ничего не знаете',
            'Вы бы лучше пошли потренировались!',
            'Вы все еще разминаетесь? Позовите, когда кости в муку друг другу разминать будете.',
            'Вы же бойцы! Имейте совесть!',
            'Гаси недоумка!',
            'Да, если бы я смог это остановить, то получил бы нобелевскую премию `За мир` ',
            'Да куда они бьют?!',
            'Давайте быстрее! За вами уже очередь образовалась.',
            'Давайте обойдемся сегодня таймаутом. А? А то мне уже кошмары скоро будут сниться.',
            'Дерутся как девчонки!',
            'Дети, посмотрите налево... Ой!.. Нет, туда лучше не смотреть.',
            'Если так будет продолжаться, то скоро мы заснем!',
            'Если бы у меня было кресло-качалка, я бы в нём качался...',
            'Если вы что-то сказать хотите, то лучше молчите :)',
            'Жестокость не порок.',
            'Жизнь вне нашего клуба - это пустая трата кислорода!!!',
            'Жми! Дави! Кусай! Царапай!',
            'За такие бои надо в хаос отправлять!',
            'Знаете откуда в комиссионном магазине столько вещей? Это я после ваших гулянок собираю и сдаю туда. Иногда вместе с частями тела, застрявшими в них.',
            'Здесь люди так близки друг к другу. Просто иначе ударить нельзя.',
            'И пролитая кровь еще пульсирует...',
            'Инвалидов развелось...',
            'Какой бой!!!',
            'Кто!? Кто здесь?!',
            'Кто вас этому научил?',
            'Кузнечик, блин...',
            'Куплю импортный проигрыватель грампластинок.',
            'Лошадью ходи!',
            'Лучше враг, чем друг - враг.',
            'Ладно, вы тут пока друг друга за волосы таскайте, а я пойду, пообедаю.',
            'Мне ваш балет уже надоел!',
            'Может, начнется-таки настоящий бой???',
            'Мысли лезут в голову изнутри, а удары снаружи.',
            'Ну и где ваши коронные удары? Где живописные падения я спрашиваю!',
            'Ну, нельзя же так наотмашь лупить!',
            'Надо раньше было думать, теперь смертельно поздно...',
            'На такое зрелище билеты продавать можно. Народ ухохочется!',
            'Нет! Не надо драки! А... ладно деритесь, все равно не умеете.',
            'Нет, ну должен быть повод, должен же быть повод?',
            'Нет, я отказываюсь это комментировать!',
            'Не таких обламывали!',
            'Ну выпили вы рюмку, ну две... ну литр, ну два... так зачем же после этого драку затевать?!',
            'Ну и кто за этот погром платить будет?',
            'Ну и оскал у вас. Из вашей улыбки кастеты делать можно.',
            'Ну, что же ты..? Не печалься. Выше голову, так по ней удобней попасть.',
            'Ничего... Блок тоже удар.',
            'Обернись!!!.... Поздно...',
            'Ого! Научите меня так не делать.',
            'Осторожно! Сделаешь дырочку, уже не запломбируешь!',
            'Оно вам надо???',
            'Обычное дело...там что-то отклеилось.',
            'Ой, и заболтался я с вами...',
            'Он же не промахнётся если ты не отойдёшь!',
            'По-моему, кому-то светит инвалидность.',
            'Подкинь ему грабли, на которые он еще не наступал.',
            'Прав был кот Леопольд, давайте жить дружно?',
            'При ударе в живот нарушается кислотно-щелочной баланс.',
            'Проверь, не торчит ли у тебя нож из живота.',
            'Перестаньте мне орать!',
            'Подкинь ему грабли, на которые он еще не наступал.',
            'Прыгают тут как блохи... Все, я пошел за дихлофосом!',
            'Разбудите меня когда эта порнография закончится...',
            'Ребенок сильнее ударил бы!',
            'Славно вмазал!',
            'Славно они веселятся',
            'Смотрю вот на вас, и слезы наворачиваются.',
            'Сначала учатся ходить, а потом только в драку лезут.',
            'Так они друг другу что-нибудь сломают.',
            'Так ты ему все кости переломаешь!',
            'У меня в подъезде точно так же соседа отмудохали',
            'Убогих развелось...',
            'Ух ты, какой прыткий!',
            'Фашист!! Надо ж, так по больному месту врезать...',
            'Хватит бить его об угол моей кабинки! Мне же потом ее чинить.',
            'Хулиганы, прекратите немедленно!',
            'Хочешь, подскажу, куда он ударит?',
            'Хорошо, что у меня ловкости больше чем у вас всех, а то б вы и меня в инвалидную коляску посадили бы.',
            'Хороший бой!',
            'Хороший удар!',
            'Хиляк-разрядник!',
            'Что ты его за волосы схватил?! Отпусти немедленно!',
            'Щас я вас настигну, вот тогда мы и похохочем',
            'Это была какая-то неизвестная мне техника...',
            'Это же противник, а не глина! Хватит мяться!',
            'Это не бой, это издевательское избиение.',
            'Это поубавит спеси',
            'Это и был твой план `Б` ?',
            'Это была какая-то неизвестная мне техника...',
            'Я же предупреждал, - будет больно.',
            'Я не страдаю безумием. Я наслаждаюсь им каждую минуту :)',
            'Я красивый, я сильный, я умный, я добрый. А вот вы? Вы себя-то видели?!',
            'Я тоже умею драться, но не буду...',
            '(тревожно озираясь) я вам по секрету скажу... за вами наблюдают!',
            '<вырезано цензурой> после боя я этих <вырезано цензурой> обоих в <вырезано цензурой> и <вырезано цензурой>',
            '<вырезано цензурой> каратисты фиговы',
        ];
        if (rand(1, 12) === 1) {
            $txt = '{tm1} <i>Комментатор: ' . $boycom[rand(0, count($boycom) - 1)] . '</i>';

            $vLog = 'time1=' . time() . '';
            $mas1 = [
                'time' => time(),
                'battle' => $this->info['id'],
                'id_hod' => $this->hodID,
                'text' => '',
                'vars' => $vLog,
                'zona1' => '',
                'zonb1' => '',
                'zona2' => '',
                'zonb2' => '',
                'type' => '1',
            ];
            $mas1['text'] = $txt;
            $this->add_log($mas1);
        } else {
            return false;
        }
        return true;
    }

    //Игрок1 наносит удар Игрок2

    public function finishBattle($t, $v, $nl, $tl)
    {
        global $magic, $u, $q, $c;
        $chat = new Chat();
        mysql_query('LOCK TABLES users,stats,battle,battle_last,battle_end,chat WRITE');
        $frtu = false;
        $test = mysql_fetch_array(
            mysql_query(
                'SELECT `id`,`team_win`,`testfinish` FROM `battle` WHERE `id` = "' . $this->info['id'] . '" AND `team_win` != -1 LIMIT 1;'
            )
        );
        if ($test['testfinish'] != -1) {
            $trtt = mysql_query(
                'UPDATE `battle` SET `testfinish` = "-1" WHERE `id` = "' . $this->info['id'] . '" LIMIT 1'
            );
            $relbf = $this->info['team_win'];
            if ($nl != 10) {
                $i = 0;
                $dnr = 0;
                if ($this->info['team_win'] == -1) {
                    $this->info['team_win'] = 0;
                    while ($i < count($v)) {
                        if ($v[$i] >= 1 && $t[$v[$i]] > 0) {
                            $this->info['team_win'] = $v[$i];
                        }
                        $i++;
                    }
                }
            }

            //данные о игроках в бою
            $t = mysql_query(
                'SELECT `u`.`stopexp`,`u`.`twink`,`u`.`city`,`u`.`room`,`u`.`no_ip`,`u`.`pass`,`u`.`id`,`u`.`notrhod`,`u`.`login`,`u`.`login2`,`u`.`sex`,`u`.`online`,`u`.`admin`,`u`.`align`,`u`.`align_lvl`,`u`.`align_exp`,`u`.`clan`,`u`.`level`,`u`.`battle`,`u`.`obraz`,`u`.`win`,`u`.`lose`,`u`.`nich`,`u`.`animal`,`st`.`stats`,`st`.`hpNow`,`st`.`mpNow`,`st`.`exp`,`st`.`dnow`,`st`.`team`,`st`.`battle_yron`,`st`.`battle_exp`,`st`.`enemy`,`st`.`battle_text`,`st`.`upLevel`,`st`.`timeGo`,`st`.`timeGoL`,`st`.`bot`,`st`.`lider`,`st`.`btl_cof`,`st`.`tactic1`,`st`.`tactic2`,`st`.`tactic3`,`st`.`tactic4`,`st`.`tactic5`,`st`.`tactic6`,`st`.`tactic7`,`st`.`x`,`st`.`y`,`st`.`battleEnd`,`st`.`priemslot`,`st`.`priems`,`st`.`priems_z`,`st`.`bet`,`st`.`clone`,`st`.`atack`,`st`.`bbexp`,`st`.`res_x`,`st`.`res_y`,`st`.`res_s`,`st`.`id`,`st`.`last_hp`,`st`.`last_pr`,`u`.`sex`,`u`.`money`,`u`.`bot_id`,`u`.`money3`,`u`.`money2` FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON (`u`.`id` = `st`.`id`) WHERE `u`.`battle` = "' . $this->info['id'] . '"'
            );
            $i = 0;
            $bi = 0;
            while ($pl = mysql_fetch_array($t)) {
                //записываем данные
                if ($pl['login2'] == '') {
                    $pl['login2'] = $pl['login'];
                }
                $this->users[$i] = $pl;
                $this->uids[$pl['id']] = $i;
                if ($pl['bot'] > 0) {
                    $this->bots[$bi] = $pl['id'];
                    $this->iBots[$pl['id']] = $bi;
                    $bi++;
                }
                //записываем статы
                $this->stats[$i] = $u->getStats($pl, 0, 0, false, false, true);
                $i++;
            }
            unset($pl, $t);

            if ($this->info['time_over'] == 0) {
                $tststrt = mysql_fetch_array(
                    mysql_query(
                        'SELECT * FROM `battle` WHERE `id` = "' . $this->info['id'] . '" AND `time_over` = "0" LIMIT 1'
                    )
                );
                if (isset($tststrt['id'])) {
                    if ($this->info['inTurnir'] == 0 || $this->info['type'] == 500) {
                        mysql_query(
                            'UPDATE `battle` SET `time_over` = "' . time() . '",`team_win` = "' . $this->info['team_win'] . '" WHERE `id` = "' . $this->info['id'] . '" LIMIT 1'
                        );
                    }
                    mysql_query(
                        'UPDATE `battle_stat` SET `team_win` = "' . $this->info['team_win'] . '" WHERE `battle_id` = "' . $this->info['id'] . '"'
                    );
                    //Заносим данные о завершении боя
                    $i = 0;
                    $vl = '';
                    $vtvl = '';
                    $relu = 0;
                    while ($i < count($this->users)) {
                        $vl .= '("' . $this->users[$i]['login'] . '","' . $this->users[$i]['city'] . '","' . $this->info['id'] . '","' . $this->users[$i]['id'] . '","' . time() . '","' . $this->users[$i]['team'] . '","' . $this->users[$i]['level'] . '","' . $this->users[$i]['align'] . '","' . $this->users[$i]['clan'] . '","' . $this->users[$i]['exp'] . '","' . $this->users[$i]['bot'] . '","' . $this->users[$i]['money'] . '","' . $this->users[$i]['money2'] . '","' . $this->users[$i]['money3'] . '"),';
                        if ($this->users[$i]['team'] == $this->info['team_win'] && $this->info['team_win'] > 0) {
                            $vtvl .= '<strong>' . $this->users[$i]['login'] . '</strong>, ';
                        }
                        $i++;
                    }

                    $this->info['players_c'] = mysql_fetch_array(
                        mysql_query(
                            'SELECT COUNT(`id`) FROM `users` WHERE `login` NOT LIKE "%(зверь%" AND `battle` = "' . $this->info['id'] . '" LIMIT 1'
                        )
                    );
                    $this->info['players_c'] = $this->info['players_c'][0];

                    mysql_query(
                        'UPDATE `battle` SET `players_c` = "' . $this->info['players_c'] . '" WHERE `id` = "' . $this->info['id'] . '" LIMIT 1'
                    );

                    if ($vtvl != '') {
                        $vtvl = rtrim($vtvl, ', ');
                        $vtvl = str_replace('"', '\\\\\"', $vtvl);
                        $this->hodID++;
                        $vLog = 'time1=' . time();
                        $mass = [
                            'time' => time(),
                            'battle' => $this->info['id'],
                            'id_hod' => $this->hodID,
                            'text' => 'test',
                            'vars' => $vLog,
                            'zona1' => '',
                            'zonb1' => '',
                            'zona2' => '',
                            'zonb2' => '',
                            'type' => '1',
                        ];
                        $vtvl = 'Бой закончен, победа за ' . $vtvl . '.';
                    } else {
                        $this->info['players_cc'] = mysql_fetch_array(
                            mysql_query(
                                'SELECT COUNT(`u`.`id`) FROM `users` AS `u` LEFT JOIN `stats` AS `s` ON `s`.`id` = `u`.`id` WHERE `s`.`hpNow` > 0 AND `u`.`battle` = "' . $this->info['id'] . '" AND `s`.`team` != "' . $u->info['team'] . '" LIMIT 1'
                            )
                        );
                        $this->info['players_cc'] = $this->info['players_cc'][0];
                        $this->info['players_cc2'] = mysql_fetch_array(
                            mysql_query(
                                'SELECT COUNT(`u`.`id`) FROM `users` AS `u` LEFT JOIN `stats` AS `s` ON `s`.`id` = `u`.`id` WHERE `s`.`hpNow` >= 1 AND `u`.`battle` = "' . $this->info['id'] . '" AND `s`.`team` != "' . $u->info['team'] . '" LIMIT 1'
                            )
                        );
                        $this->info['players_cc2'] = $this->info['players_cc2'][0];
                        $inf_test = ', users: ' . $this->info['players_cc'] . ' and ' . $this->info['players_cc2'] . '';
                        $this->hodID++;
                        $vLog = 'time1=' . time();
                        $mass = [
                            'time' => time(),
                            'battle' => $this->info['id'],
                            'id_hod' => $this->hodID,
                            'text' => 'test',
                            'vars' => $vLog,
                            'zona1' => '',
                            'zonb1' => '',
                            'zona2' => '',
                            'zonb2' => '',
                            'type' => '1',
                        ];
                        $vtvl = 'Бой закончен, ничья.';
                    }
                    $ins = mysql_query(
                        'INSERT INTO `battle_logs` (`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zonb1`,`zona2`,`zonb2`,`type`) VALUES ("' . $mass['time'] . '","' . $mass['battle'] . '","' . $mass['id_hod'] . '","' . $vtvl . '","' . $mass['vars'] . '","' . $mass['zona1'] . '","' . $mass['zonb1'] . '","' . $mass['zona2'] . '","' . $mass['zonb2'] . '","' . $mass['type'] . '")'
                    );

                    $this->saveLogs();

                    if ($this->info['type'] == 99) {
                        $vLog = 'time1=' . time();
                        $mass = [
                            'time' => time(),
                            'battle' => $this->info['id'],
                            'id_hod' => $this->hodID,
                            'text' => 'test',
                            'vars' => $vLog,
                            'zona1' => '',
                            'zonb1' => '',
                            'zona2' => '',
                            'zonb2' => '',
                            'type' => '1',
                        ];
                        $vtvl = 'И победители стали калечить проигравших...';
                        $ins = mysql_query(
                            'INSERT INTO `battle_logs` (`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zonb1`,`zona2`,`zonb2`,`type`) VALUES ("' . $mass['time'] . '","' . $mass['battle'] . '","' . $mass['id_hod'] . '","' . $vtvl . '","' . $mass['vars'] . '","' . $mass['zona1'] . '","' . $mass['zonb1'] . '","' . $mass['zona2'] . '","' . $mass['zonb2'] . '","' . $mass['type'] . '")'
                        );
                        $i = 0;
                        $vtvl = '';
                        $tr_nm = [
                            1 => 'легкую',
                            2 => 'среднюю',
                            3 => 'тяжелую',
                            4 => 'неизлечимую',
                        ];
                        while ($i < count($this->users)) {
                            if ($this->users[$i]['team'] != $this->info['team_win']) {
                                $tr_pl = mysql_fetch_array(
                                    mysql_query(
                                        'SELECT `id`,`v1` FROM `eff_users` WHERE `id_eff` = 4 AND `uid` = "' . $this->users[$i]['id'] . '" AND `delete` = "0" ORDER BY `v1` DESC LIMIT 1'
                                    )
                                );
                                if (!isset($tr_pl['id']) || $tr_pl['v1'] < 3) {
                                    if ($this->info['smert'] == 1) {
                                        $tr_tp = 4;
                                    } else {
                                        $tr_tp = rand(1, 3);
                                    }
                                    if (isset($tr_pl['id'])) {
                                        $tr_tp = rand(($tr_pl['v1'] + 1), 3);
                                    }
                                    if ($this->users[$i]['sex'] == 1) {
                                        $vtvl = '<strong>' . $this->users[$i]['login'] . '</strong> получила повреждение: <font color=red>' . $tr_nm[$tr_tp] . ' травму</font>.<br>' . $vtvl;
                                    } else {
                                        $vtvl = '<strong>' . $this->users[$i]['login'] . '</strong> получил повреждение: <font color=red>' . $tr_nm[$tr_tp] . ' травму</font>.<br>' . $vtvl;
                                    }
                                    $this->addTravm($this->users[$i]['id'], $tr_tp, rand(3, 5));
                                }
                            }
                            $i++;
                        }
                        $ins = mysql_query(
                            'INSERT INTO `battle_logs` (`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zonb1`,`zona2`,`zonb2`,`type`) VALUES ("' . $mass['time'] . '","' . $mass['battle'] . '","' . $mass['id_hod'] . '","' . $vtvl . '","' . $mass['vars'] . '","' . $mass['zona1'] . '","' . $mass['zonb1'] . '","' . $mass['zona2'] . '","' . $mass['zonb2'] . '","' . $mass['type'] . '")'
                        );
                    }

                    if ($vl != '') {
                        $vl = rtrim($vl, ',');
                        mysql_query(
                            'INSERT INTO `battle_last` (`login`,`city`,`battle_id`,`uid`,`time`,`team`,`lvl`,`align`,`clan`,`exp`,`bot`,`money`,`money2`,`money3`) VALUES ' . $vl . ''
                        );
                    }

                    mysql_query(
                        'INSERT INTO `battle_end` (`battle_id`,`city`,`time`,`team_win`) VALUES ("' . $this->info['id'] . '","' . $this->info['city'] . '","' . $this->info['time_start'] . '","' . $this->info['team_win'] . '")'
                    );
                }


                $vLog = 'time1=' . time();
                $mass = [
                    'time' => time(),
                    'battle' => $this->info['id'],
                    'id_hod' => $this->hodID,
                    'text' => 'test',
                    'vars' => $vLog,
                    'zona1' => '',
                    'zonb1' => '',
                    'zona2' => '',
                    'zonb2' => '',
                    'type' => '1',
                ];
                $i = 0;
                $vtvl = '';
                $tr_nm = [
                    1 => 'легкую',
                    2 => 'среднюю',
                    3 => 'тяжелую',
                    4 => 'неизлечимую',
                ];
                while ($i < count($this->users)) {
                    if ($this->users[$i]['team'] != $this->info['team_win'] && $this->info['team_win'] > 0) {
                        $tr_pl = mysql_fetch_array(
                            mysql_query(
                                'SELECT * FROM `eff_users` WHERE `v1` = "priem" AND `v2` = 292 AND `uid` = "' . $this->users[$i]['id'] . '" AND `delete` = "0" LIMIT 1'
                            )
                        );

                        $ins = mysql_query(
                            'INSERT INTO `battle_logs` (`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zonb1`,`zona2`,`zonb2`,`type`) VALUES ("' . $mass['time'] . '","' . $mass['battle'] . '","' . $mass['id_hod'] . '","' . $vtvl2 . '","' . $mass['vars'] . '","' . $mass['zona1'] . '","' . $mass['zonb1'] . '","' . $mass['zona2'] . '","' . $mass['zonb2'] . '","' . $mass['type'] . '")'
                        );

                        if (isset($tr_pl['id'])) {
                            if (rand(0, 100) < $tr_pl['data']) {
                                $tr_tp = rand(1, 3);
                                if (isset($tr_pl['id'])) {
                                    $tr_tp = rand(($tr_pl['v1'] + 1), 3);
                                }
                                if ($this->users[$i]['sex'] == 1) {
                                    $vtvl = '<strong>' . $this->users[$i]['login'] . '</strong> получила повреждение (Искалечить, автор: <strong>' . $this->users[$this->uids[$tr_pl['user_use']]]['login'] . '</strong>): <font color=red>' . $tr_nm[$tr_tp] . ' травму</font>.<br>' . $vtvl;
                                } else {
                                    $vtvl = '<strong>' . $this->users[$i]['login'] . '</strong> получил повреждение (Искалечить, автор: <strong>' . $this->users[$this->uids[$tr_pl['user_use']]]['login'] . '</strong>): <font color=red>' . $tr_nm[$tr_tp] . ' травму</font>.<br>' . $vtvl;
                                }
                                $this->addTravm($this->users[$i]['id'], $tr_tp, rand(3, 5));
                            }
                        }
                    }
                    $i++;
                }
                if ($vtvl != '') {
                    if ($this->info['type'] != 99) {
                        $vtvl2 = 'И победители стали калечить проигравших...';
                        $ins = mysql_query(
                            'INSERT INTO `battle_logs` (`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zonb1`,`zona2`,`zonb2`,`type`) VALUES ("' . $mass['time'] . '","' . $mass['battle'] . '","' . $mass['id_hod'] . '","' . $vtvl2 . '","' . $mass['vars'] . '","' . $mass['zona1'] . '","' . $mass['zonb1'] . '","' . $mass['zona2'] . '","' . $mass['zonb2'] . '","' . $mass['type'] . '")'
                        );
                    }
                    $ins = mysql_query(
                        'INSERT INTO `battle_logs` (`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zonb1`,`zona2`,`zonb2`,`type`) VALUES ("' . $mass['time'] . '","' . $mass['battle'] . '","' . $mass['id_hod'] . '","' . $vtvl . '","' . $mass['vars'] . '","' . $mass['zona1'] . '","' . $mass['zonb1'] . '","' . $mass['zona2'] . '","' . $mass['zonb2'] . '","' . $mass['type'] . '")'
                    );
                }

                //Турнир БС
                if ($this->info['inTurnir'] > 0 && $this->info['dungeon'] != 15 && $u->info['room'] != 413) {
                    $bs = mysql_fetch_array(
                        mysql_query('SELECT * FROM `bs_turnirs` WHERE `id` = "' . $this->info['inTurnir'] . '" LIMIT 1')
                    );
                    $i = 0;
                    $j = 0;
                    while ($i < count($this->users)) {
                        if ($this->stats[$i]['hpNow'] < 1 && $this->users[$i]['clone'] == 0 && $this->stats[$i]['clone'] == 0) {
                            //Добавляем в лог БС
                            if ($this->users[$i]['sex'] == 0) {
                                $text .= '{u1} повержен и выбывает из турнира';
                            } else {
                                $text .= '{u1} повержена и выбывает из турнира';
                            }
                            //Выкидываем предметы с персонажа
                            $spik = mysql_query(
                                'SELECT `id`,`item_id` FROM `items_users` WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `delete` ="0"'
                            );
                            while ($plik = mysql_fetch_array($spik)) {

                                mysql_query(
                                    'INSERT INTO `dungeon_items` (`dn`,`item_id`,`time`,`x`,`y`) VALUES (
									"' . $this->users[$i]['dnow'] . '","' . $plik['item_id'] . '","' . (time() - 600) . '","' . $this->users[$i]['x'] . '","' . $this->users[$i]['y'] . '"
								)'
                                );
                            }
                            unset($spik, $plik);
                            //
                            $usrreal = '';
                            $usr_real = mysql_fetch_array(
                                mysql_query(
                                    'SELECT `id`,`login`,`align`,`clan`,`battle`,`level` FROM `users` WHERE `login` = "' . $this->users[$i]['login'] . '" AND `inUser` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                                )
                            );
                            if (!isset($usr_real['id'])) {
                                $usr_real = $this->users[$i];
                            }
                            if (isset($usr_real['id'])) {
                                if ($usr_real['align'] > 0) {
                                    $usrreal .= '<img src=//img.new-combats.tech/i/align/align' . $usr_real['align'] . '.gif width=12 height=15 >';
                                }
                                if ($usr_real['clan'] > 0) {
                                    $usrreal .= '<img src=//img.new-combats.tech/i/clan/' . $usr_real['clan'] . '.gif width=24 height=15 >';
                                }
                                $usrreal .= '<strong>' . $usr_real['login'] . '</strong>[' . $usr_real['level'] . ']<a target=_blank href=/info/' . $usr_real['id'] . ' ><img width=12 hiehgt=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
                            } else {
                                $mereal = '<i>Невидимка</i>[??]';
                            }
                            $text = str_replace('{u1}', $usrreal, $text);
                            mysql_query(
                                'INSERT INTO `bs_logs` (`type`,`text`,`time`,`id_bs`,`count_bs`,`city`,`m`,`u`) VALUES (
								"1", "' . mysql_real_escape_string($text) . '", "' . time() . '", "' . $bs['id'] . '", "' . $bs['count'] . '", "' . $bs['city'] . '",
								"' . round($bs['money'] * 0.85, 2) . '","' . $i . '"
							)'
                            );
                            //
                            //Удаление клона
                            mysql_query('DELETE FROM `users` WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1');
                            mysql_query('DELETE FROM `stats` WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1');
                            mysql_query('DELETE FROM `actions` WHERE `uid` = "' . $this->users[$i]['id'] . '"');
                            mysql_query('DELETE FROM `items_users` WHERE `uid` = "' . $this->users[$i]['id'] . '"');
                            mysql_query('DELETE FROM `eff_users` WHERE `uid` = "' . $this->users[$i]['id'] . '"');
                            mysql_query('DELETE FROM `users_delo` WHERE `uid` = "' . $this->users[$i]['id'] . '"');
                            //Обновление персонажа
                            mysql_query(
                                'UPDATE `users` SET `inUser` = "0" WHERE `login` = "' . $this->users[$i]['login'] . '" OR `inUser` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                            );
                            //Обновляем заявку
                            mysql_query(
                                'UPDATE `bs_zv` SET `off` = "' . time() . '" WHERE `inBot` = "' . $this->users[$i]['id'] . '" AND `off` = "0" LIMIT 1'
                            );
                            unset($text, $usrreal, $usr_real);
                            if ($this->users[$i]['pass'] != 'bstowerbot') {
                                $bs['users']--;
                                $bs['users_finish']++;
                            } else {
                                $bs['arhiv']--;
                            }
                            $j++;
                        }
                        $i++;
                    }
                    if ($j > 0) {
                        mysql_query(
                            'UPDATE `bs_turnirs` SET `arhiv` = "' . $bs['arhiv'] . '",`users` = "' . $bs['users'] . '",`users_finish` = "' . $bs['users_finish'] . '" WHERE `id` = "' . $bs['id'] . '" LIMIT 1'
                        );
                    }

                    unset($bs, $j);
                }

                //Награда за события
                if ($this->info['type'] == 500 && isset($tststrt['id'])) {
                    //Предметы которые выпадают в центр

                    $i = 0;
                    while ($i < count($this->users)) {
                        $cmsg = new ChatMessage();
                        $cmsg->setType(6);
                        $cmsg->setCity($this->users[$i]['city']);
                        $cmsg->setIsAlert(true);
                        if ($this->users[$i]['no_ip'] == 'trupojor') {
                            $mon = mysql_fetch_array(
                                mysql_query(
                                    'SELECT * FROM `aaa_monsters` WHERE `uid` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                                )
                            );
                            if (isset($mon['id'])) {
                                if ($this->info['team_win'] == 0) {
                                    //Ничья
                                    mysql_query(
                                        'UPDATE `stats` SET `hpNow` = "' . $this->stats[$i]['hpAll'] . '",`mpNow` = "' . $this->stats[$i]['mpAll'] . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                                    );
                                    $cmsg->setText(
                                        str_replace(
                                            '{b}',
                                            '<strong>' . $this->users[$i]['login'] . '</strong> [' . $this->users[$i]['level'] . ']<a target=_blank href=info/' . $this->users[$i]['id'] . ' ><img width=12 height=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>',
                                            $mon['nich_text']
                                        )
                                    );
                                    $chat->sendMsg($cmsg);
                                } elseif ($this->info['team_win'] != $this->users[$i]['team']) {
                                    //Выиграли
                                    $j = 0;
                                    $usrwin = '';
                                    while ($j < count($this->users)) {
                                        if ($this->users[$j]['no_ip'] != 'trupojor' && $this->users[$j]['bot'] == 0) {
                                            if ($this->stats[$j]['hpNow'] > 0) {
                                                $usrwin .= ', ';
                                                if ($this->users[$j]['align'] > 0) {
                                                    $usrwin .= '<img width=12 height=15 src=//img.new-combats.tech/i/align/align' . $this->users[$j]['align'] . '.gif >';
                                                }
                                                if ($this->users[$j]['clan'] > 0) {
                                                    $usrwin .= '<img width=24 height=15 src=//img.new-combats.tech/i/clan/' . $this->users[$j]['clan'] . '.gif >';
                                                }
                                                $usrwin .= '<strong>' . $this->users[$j]['login'] . '</strong> [' . $this->users[$j]['level'] . ']<a target=_blank href=info/' . $this->users[$j]['id'] . ' ><img width=12 height=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
                                            }
                                        }
                                        $j++;
                                    }
                                    if ($usrwin != '') {
                                        $usrwin = ltrim($usrwin, ', ');
                                    } else {
                                        $usrwin = '<i>Команда героев</i>';
                                    }

                                    mysql_query(
                                        'UPDATE `users` SET `room` = "303" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                                    );

                                    $truptimelast = time() + rand(1800, 3600);

                                    mysql_query(
                                        'UPDATE `stats` SET `res_x` = "' . $truptimelast . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                                    );
                                    $cmsg->setText(
                                        str_replace(
                                            '{b}',
                                            '<strong>' . $this->users[$i]['login'] . '</strong> [' . $this->users[$i]['level'] . ']<a target=_blank href=info/' . $this->users[$i]['id'] . ' ><img width=12 height=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>',
                                            str_replace('{u}', $usrwin, $mon['win_text'])
                                        )
                                    );
                                    $chat->sendMsg($cmsg);
                                    unset($usrwin);
                                } else {
                                    //Проиграли
                                    if ($mon['win_back'] == 1) {
                                        mysql_query(
                                            'UPDATE `users` SET `room` = "303" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                                        );
                                    }
                                    mysql_query(
                                        'UPDATE `stats` SET `hpNow` = "' . $this->stats[$i]['hpAll'] . '",`mpNow` = "' . $this->stats[$i]['mpAll'] . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                                    );
                                    $cmsg->setText(
                                        str_replace(
                                            '{b}',
                                            '<strong>' . $this->users[$i]['login'] . '</strong> [' . $this->users[$i]['level'] . ']<a target=_blank href=info/' . $this->users[$i]['id'] . ' ><img width=12 height=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>',
                                            $mon['lose_text']
                                        )
                                    );
                                    $chat->sendMsg($cmsg);
                                }
                            }
                        }
                        $i++;
                    }
                }
            }

            // выкидываем ботов из боя
            $i = 0;
            $botsi = 0;
            if (isset($tststrt['id'])) {
                while ($i < count($this->users)) {
                    //Тут выкидываем юзеров из Призавого хаота
                    if ($this->info['type'] == 33) {
                        $plde = mysql_fetch_array(
                            mysql_query('SELECT * FROM `users` WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1')
                        );
                        if (isset($plde['mail']) && $plde['mail'] == "haot@new-combats.com") {
                            $pld = mysql_fetch_array(
                                mysql_query(
                                    'SELECT * FROM `users` WHERE `inUser` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                                )
                            );

                            if (isset($pld['id'])) {
                                if ($this->users[$i]['battle_yron'] >= 500) {
                                    mysql_query(
                                        'UPDATE `users_achiv` SET `pg`= `pg`+1 WHERE `id` = "' . $pld['id'] . '" LIMIT 1'
                                    );

                                    if ($this->users[$i]['team'] == $this->info['team_win'] && rand(1, 100) <= 5) {
                                        \User\ItemsModel::addItem(10020, $pld['id'], '');
                                        $pld['battle_text'] .= ' За Героическое Сражение вы получаете <strong>Жетон Успеха</strong>. ';
                                    }
                                } else {
                                    $pld['battle_text'] .= ' Вы ничего не получили. <strong>Нужно набить больше 500 урона урона</strong> .';
                                }
                                $cmsg = new ChatMessage();
                                $cmsg->setCity($pld['city']);
                                $cmsg->setRoom($pld['room']);
                                $cmsg->setTo($pld['login']);
                                $cmsg->setText($pld['battle_text']);
                                $cmsg->setType(6);
                                $chat->sendMsg($cmsg);

                                mysql_query(
                                    'DELETE FROM `stats` WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                                );
                                mysql_query(
                                    'DELETE FROM `items_users` WHERE `uid` = "' . $this->users[$i]['id'] . '" LIMIT 100'
                                );
                                mysql_query(
                                    'DELETE FROM `eff_users` WHERE `uid` = "' . $this->users[$i]['id'] . '" LIMIT 100'
                                );
                                mysql_query(
                                    'UPDATE `users` SET `inUser` = "0" WHERE `inUser` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                                );
                                mysql_query(
                                    'DELETE FROM `users` WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                                );
                            }
                        }

                        unset ($plde, $pld);
                    }

                    if ($this->users[$i]['bot'] == 1) {
                        $botsi++;
                        mysql_query('DELETE FROM `users` WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1');
                        mysql_query('DELETE FROM `stats` WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1');
                        mysql_query(
                            'DELETE FROM `items_users` WHERE `uid` = "' . $this->users[$i]['id'] . '" LIMIT 100'
                        );
                        mysql_query('DELETE FROM `eff_users` WHERE `uid` = "' . $this->users[$i]['id'] . '" LIMIT 100');
                    } elseif ($this->users[$i]['bot'] == 2) {
                        $this->users[$i]['battle'] = 0;
                        mysql_query(
                            'UPDATE `users` SET `battle` = "0" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                        );
                        mysql_query(
                            'UPDATE `stats` SET `zv` = "0",`team` = "0",`exp` = `exp` + `battle_exp`,`battle_exp` = "0",`battle_yron` = "0",`enemy` = "0", `timeGo` = "' . time() . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                        );
                        mysql_query('DELETE FROM `eff_users` WHERE `uid` = "' . $this->users[$i]['id'] . '" LIMIT 100');
                    } elseif ($this->users[$i]['bot'] > 0) {
                        $this->users[$i]['battle'] = 0;
                        mysql_query(
                            'UPDATE `users` SET `battle` = "0" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                        );
                        mysql_query(
                            'UPDATE `stats` SET `zv` = "0",`team` = "0",`exp` = `exp` + `battle_exp`,`battle_exp` = "0",`battle_yron` = "0",`enemy` = "0", `timeGo` = "' . time() . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                        );
                        mysql_query('DELETE FROM `eff_users` WHERE `uid` = "' . $this->users[$i]['id'] . '" LIMIT 100');
                    }
                    if ($this->users[$i]['clone'] > 0 && $this->users[$i]['bot'] > 0 && isset($this->users[$this->uids[$this->users[$i]['clone']]]['id']) && $this->users[$this->uids[$this->users[$i]['clone']]]['team'] != $this->users[$i]['team']) {
                        //Добавляем что клон побежден
                        if ($this->users[$this->uids[$this->users[$i]['clone']]]['team'] == $this->info['team_win']) {
                            $u->addAction(time(), 'win_bot_clone', '', $this->users[$i]['clone']);
                        } elseif ($this->info['team_win'] == 0) {
                            $u->addAction(time(), 'nich_bot_clone', '', $this->users[$i]['clone']);
                        } else {
                            $u->addAction(time(), 'lose_bot_clone', '', $this->users[$i]['clone']);
                        }
                    } elseif ($this->users[$i]['bot'] > 0 && $this->users[$i]['bot_id'] > 0) {
                        //Добавляем что бота победили
                        $j = 0;
                        while ($j < count($this->users)) {
                            if ($this->users[$j]['bot'] == 0 && $this->users[$j]['team'] != $this->users[$i]['team']) {
                                if ($this->users[$j]['team'] == $this->info['team_win']) { // if($this->users[$j]['team']==$this->info['team_win']){
                                    $u->addAction(
                                        time(), 'win_bot_' . $this->users[$i]['bot_id'], '',
                                        $this->users[$j]['id']
                                    );
                                    //
                                    mysql_query(
                                        'UPDATE `dialog_act` SET `now` = `now` + 1 WHERE `uid` = "' . $this->users[$j]['id'] . '" AND 
								( `btl_bot` LIKE "' . $this->users[$i]['bot_id'] . '!%" OR `btl_bot` LIKE "%!' . $this->users[$i]['bot_id'] . '!%" ) 
								AND `val` != 1
								LIMIT 1'
                                    );
                                    //
                                } elseif ($this->info['team_win'] == 0) {
                                    $u->addAction(
                                        time(), 'nich_bot_' . $this->users[$i]['bot_id'], '',
                                        $this->users[$j]['id']
                                    );
                                } else {
                                    $u->addAction(
                                        time(), 'lose_bot_' . $this->users[$i]['bot_id'], '',
                                        $this->users[$j]['id']
                                    );
                                }
                            }
                            $j++;
                        }
                    }
                    $i++;
                }
            }

            $botss = [];

            //Из бота падают предметы
            if ($nl != 10 && $this->info['dungeon'] > 0) {
                if ($this->info['team_win'] == $u->info['team'] && $this->info['dungeon'] == 102) {
                    $j1 = mysql_fetch_array(
                        mysql_query(
                            'SELECT * FROM `laba_obj` WHERE `type` = 2 AND `lib` = "' . $this->info['dn_id'] . '" AND `x` = "' . $this->info['x'] . '" AND `y` = "' . $this->info['y'] . '" LIMIT 1'
                        )
                    );
                    if (isset($j1['id'])) {
                        mysql_query('DELETE FROM `laba_obj` WHERE `id` = "' . $j1['id'] . '" LIMIT 1');
                        //Выпадает шмотка
                        mysql_query(
                            'INSERT INTO `laba_obj` (`use`,`lib`,`time`,`type`,`x`,`y`,`vars`) VALUES (
                            "0","' . $j1['lib'] . '","' . time() . '","6","' . $j1['x'] . '","' . $j1['y'] . '","' . (0 + $botsi) . '"
                        )'
                        );
                    }
                } elseif ($this->info['team_win'] == $u->info['team']) {
                    //выйграли люди, выкидываем предметы из мобов
                    $j1 = mysql_query(
                        'SELECT * FROM `dungeon_bots` WHERE `dn` = "' . $this->info['dn_id'] . '" AND `for_dn` = "0" AND `x` = "' . $this->info['x'] . '" AND `delete` = "0" AND `y`= "' . $this->info['y'] . '" LIMIT 100'
                    );
                    while ($tbot = mysql_fetch_array($j1)) {
                        $cmsg = new ChatMessage();
                        $cmsg->setDn($this->info['dn_id']);
                        $cmsg->setCity($this->users[0]['city']);
                        $cmsg->setRoom($this->users[0]['room']);
                        $cmsg->setType(6);
                        $cmsg->setTypeTime(1);

                        $j2 = 0;
                        while ($j2 < $tbot['colvo']) {
                            if (isset($tbot['id2'])) {
                                $tbot2 = mysql_fetch_array(
                                    mysql_query(
                                        'SELECT * FROM `test_bot` WHERE `id` = "' . $tbot['id_bot'] . '" LIMIT 1'
                                    )
                                );
                                $itms = explode('|', $tbot2['p_items']);
                                $tii = 0;
                                $testdrop = 0;
                                while ($tii < count($itms) && $testdrop == 0) {
                                    $itmz = explode('=', $itms[$tii]);
                                    if ($itmz[0] > 0) {
                                        if (isset($itmz[2]) && $itmz[2] != '') { // $itmz[2] == quest888
                                            $questDrop = mysql_fetch_array(
                                                mysql_query(
                                                    'SELECT * FROM `actions` WHERE `vars` LIKE "%' . $itmz[2] . '%" AND `vals` = "go" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
                                                )
                                            );
                                        }
                                        if (!isset($questDrop['id']) && isset($itmz[2]) && $itmz[2] != '') {
                                            $itmz[1] = 0;
                                        } // Если предмет квестовый, а квеста у игрока нет, то предмет выпадет с вероятностью 0
                                        unset($questDrop);

                                        //Добавляем этот предмет в зону Х и У
                                        if ($itmz[1] * 100000 >= rand(1, 10000000)) {
                                            $tou = 0; //какому юзеру предназначено
                                            /* выделяем случайного юзера из команды */
                                            $itmnm = mysql_fetch_array(
                                                mysql_query(
                                                    'SELECT `name` FROM `items_main` WHERE `id` = "' . $itmz[0] . '" LIMIT 1'
                                                )
                                            );
                                            $itmnm = $itmnm['name'];

                                            $cmsg->setText(
                                                'У <strong>' . $tbot2['login'] . '</strong> был предмет &quot;' . $itmnm . '&quot; и кто угодно может поднять его'
                                            );
                                            $chat->sendMsg($cmsg);

                                            $ins = mysql_query(
                                                'INSERT INTO `dungeon_items` (`dn`,`user`,`item_id`,`time`,`x`,`y`) VALUES (
                                            "' . $this->info['dn_id'] . '",
                                            "' . $tou . '",
                                            "' . $itmz[0] . '",
                                            "' . time() . '",
                                            "' . $this->info['x'] . '",
                                            "' . $this->info['y'] . '")'
                                            );
                                            if (!isset($questDrop['id'])) {
                                                $testdrop = 1; //ТУТ drop-drop //quest
                                            }
                                        }
                                    }
                                    $tii++;
                                }
                            }
                            $j2++;
                        }
                        //
                        //Квест 1-15 сентября,
                        if (
                            date('m') == 9 &&
                            date('d') < 15 &&
                            !$this->get_chanse(99) &&
                            ($this->info['dungeon'] == 12 || $this->info['dungeon'] == 101)
                        ) {
                            $tou = 0; //какому юзеру предназначено
                            /* выделяем случайного юзера из команды */
                            $itmz = [
                                rand(4745, 4751),
                                100,
                            ];
                            //
                            $itmnm = mysql_fetch_array(
                                mysql_query(
                                    'SELECT `name` FROM `items_main` WHERE `id` = "' . $itmz[0] . '" LIMIT 1'
                                )
                            );
                            $itmnm = $itmnm['name'];

                            $cmsg->setText(
                                'У <strong>' . $tbot2['login'] . '</strong> был предмет &quot;' . $itmnm . '&quot; и кто угодно может поднять его'
                            );
                            $chat->sendMsg($cmsg);

                            $ins = mysql_query(
                                'INSERT INTO `dungeon_items` (`dn`,`user`,`item_id`,`time`,`x`,`y`) VALUES (
                                "' . $this->info['dn_id'] . '",
                                "' . $tou . '",
                                "' . $itmz[0] . '",
                                "' . time() . '",
                                "' . $this->info['x'] . '",
                                "' . $this->info['y'] . '")'
                            );
                        }
                        //
                        //Странички саныча,

                        if (rand(1, 100) <= 99) {
                        } elseif ($this->info['dungeon'] == 12 || $this->info['dungeon'] == 3 ||
                            $this->info['dungeon'] == 101 || $this->info['dungeon'] == 16 ||
                            $this->info['dungeon'] == 9 || $this->info['dungeon'] == 10 ||
                            $this->info['dungeon'] == 13 || $this->info['dungeon'] == 106) {
                            $tou = 0; //какому юзеру предназначено
                            // выделяем случайного юзера из команды
                            $itmz = mt_rand(3143, 3192);
                            //
                            $itmnm = mysql_fetch_array(
                                mysql_query('SELECT `name` FROM `items_main` WHERE `id` = "' . $itmz . '" LIMIT 1')
                            );
                            $itmnm = $itmnm['name'];

                            $cmsg->setText(
                                'У <strong>' . $tbot2['login'] . '</strong> был предмет &quot;' . $itmnm . '&quot; и кто угодно может поднять его'
                            );
                            $chat->sendMsg($cmsg);

                            $ins = mysql_query(
                                'INSERT INTO `dungeon_items` (`dn`,`user`,`item_id`,`time`,`x`,`y`) VALUES (
                                "' . $this->info['dn_id'] . '",
                                "' . $tou . '",
                                "' . $itmz . '",
                                "' . time() . '",
                                "' . $this->info['x'] . '",
                                "' . $this->info['y'] . '")'
                            );
                        }
                    }
                    mysql_query(
                        'UPDATE `dungeon_bots` SET `delete` = "' . time() . '" AND `inBattle` = "' . $this->info['id'] . '" WHERE `dn` = "' . $this->info['dn_id'] . '" AND `for_dn` = "0" AND `delete` = "0" '
                    );
                } else {
                    //выкидываем всех игроков в клетку RESTART
                    $dnr = 1;
                    if ($this->info['dungeon'] != 102) {
                        mysql_query(
                            'UPDATE `dungeon_bots` SET `inBattle` = "0" WHERE `dn` = "' . $this->info['dn_id'] . '" AND `for_dn` = "0" AND `x` = "' . $this->info['x'] . '" AND `y`= "' . $this->info['y'] . '"'
                        );
                    }
                }
            }

            $gm = [];
            $gms = [];
            $bm = [];
            $bms = [];

            //Квестовый раздел
            //Квестовый раздел

            //завершаем поединок
            $i = $this->uids[$u->info['id']];

            if ($this->info['team_win'] >= 0) {
                $cmsg = new ChatMessage();
                $cmsg->setCity($this->users[$i]['city']);
                $cmsg->setRoom($this->users[$i]['room']);
                $cmsg->setType(6);

                if ($this->stats[$i]['pbe'] > 0) {
                    //Бонус покупателя
                    $this->expCoef += $this->stats[$i]['pbe'];
                }

                if ($this->info['razdel'] == 5 && ($c['m'] >= 6 && $c['m'] <= 8 || $c['w'] == 0 || $c['w'] == 6)) {
                    $this->expCoef += 5;
                }

                $this->stats[$i]['exp'] += $this->expCoef;

                $this->stats[$i]['exp'] += $this->aBexp * $c['exp'];

                if ($this->stats[$i]['os4'] > 0) {
                    $this->stats[$i]['exp'] += $this->stats[$i]['os4'];
                }


                $act01 = 0;
                $this->users[$i]['battle_exp'] = round(
                    $this->users[$i]['battle_exp'] + ($this->users[$i]['battle_exp'] / 100 * (1 + $this->info['addExp'] + $this->stats[$i]['exp']))
                );

                if ($this->info['type'] == 564) {
                    //Бой с копией
                    $this->users[$i]['battle_exp'] = 0;
                }

                if ($this->info['dungeon'] == 104) {
                    $this->users[$i]['battle_exp'] = ($u->info['level'] * 2) * (count($this->uids) - 1);
                } elseif ($this->info['dungeon'] > 0 && $this->users[$i]['dnow'] != 0 && $this->info['dungeon'] != 1 && $this->users[$i]['team'] == $this->info['team_win']) {
                    $dun_limitForLevel = [
                        4 => 750,
                        5 => 1500,
                        6 => 3500,
                        7 => 8000,
                        8 => 25000,
                        9 => 50000,
                        10 => 75000,
                        11 => 100000,
                        12 => 100000,
                        13 => 100000,
                        14 => 100000,
                    ];
                    // Максимум для каждого уровня.

                    if ($this->users[$i]['battle_exp'] > 0) {
                        $dun_exp = []; // Текущий лимит опыта игрока в подземельях.
                        $rep = mysql_fetch_array(
                            mysql_query(
                                'SELECT `dungeonexp`,`id` FROM `rep` WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                            )
                        );
                        $rep = explode(',', $rep['dungeonexp']);
                        foreach ($rep as $key => $val) {
                            $val = explode('=', $val); // текущий лимит опыта в подземке
                            if (isset($val[0]) && isset($val[1]) && $val[0] != '' && $val[1] != 0) {
                                $dun_exp[(int)$val[0]] = (int)$val[1];
                            }
                        }
                        unset($rep);
                    }

                    if (!isset($dun_exp[$this->info['dungeon']])) {
                        $dun_exp[$this->info['dungeon']] = 0;
                    }

                    if (!isset($dun_limitForLevel[(int)$this->users[$i]['level']])) { // Если лимит не задан, опыт не даем.
                        $this->users[$i]['battle_exp'] = 0;
                    } elseif (
                        isset($dun_exp[$this->info['dungeon']]) &&
                        $dun_exp[$this->info['dungeon']] >= $dun_limitForLevel[(int)$this->users[$i]['level']]
                    ) { // Если лимит уже достигнут, опыт не даем.
                        $this->users[$i]['battle_exp'] = 0;
                    } elseif (
                        isset($dun_exp[$this->info['dungeon']]) &&
                        $dun_limitForLevel[(int)$this->users[$i]['level']] > $dun_exp[$this->info['dungeon']]
                    ) { // Если текущая репутация не достигла лимита.
                        if (($dun_exp[$this->info['dungeon']] + $this->users[$i]['battle_exp']) > $dun_limitForLevel[(int)$this->users[$i]['level']]) {
                            // Если опыта набрано достаточно, для достижения лимита.
                            $this->users[$i]['battle_exp'] = abs(
                                $this->users[$i]['battle_exp'] - abs(
                                    $dun_limitForLevel[(int)$this->users[$i]['level']] - ($this->users[$i]['battle_exp'] + $dun_exp[$this->info['dungeon']])
                                )
                            );
                            $dun_exp[$this->info['dungeon']] += $this->users[$i]['battle_exp'];
                        } elseif ($dun_limitForLevel[(int)$this->users[$i]['level']] > ($dun_exp[$this->info['dungeon']] + $this->users[$i]['battle_exp'])) {
                            // Если опыта недостаточно, для достижения лимита.
                            $dun_exp[$this->info['dungeon']] += $this->users[$i]['battle_exp'];
                        } else {
                            $this->users[$i]['battle_exp'] = 0;
                        }
                    } else { // В любой непонятной ситуцаии.
                        $this->users[$i]['battle_exp'] = 0;
                    }


                    if ($this->users[$i]['battle_exp'] > 0 && isset($dun_exp[$this->info['dungeon']]) && $dun_exp[$this->info['dungeon']] > 0) {
                        $dunexp = [];
                        foreach ($dun_exp as $key => $val) {
                            $dunexp[$key] = $key . '=' . $val; // текущий лимит опыта в подземке
                        }
                        $dun_exp = implode(",", $dunexp);
                        mysql_query(
                            'UPDATE `rep` SET `dungeonexp` = "' . $dun_exp . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                        );
                        unset($dunexp, $dun_exp);
                    }
                    unset($dun_limitForLevel);
                }

                $sinf = '';
                if ($c['exp_mega']) {
                    $this->users[$i]['battle_exp'] += floor(
                        $this->users[$i]['battle_exp'] / 100 * $c['exp_mega_val'][$this->users[$i]['level']]
                    );
                }

                if ($this->info['team_win'] == 0 && $this->info['type'] != 564) {
                    if ($this->users[$i]['level'] <= 1) {
                        $this->users[$i]['battle_exp'] = floor($this->users[$i]['battle_exp'] * 0.50);
                    } else {
                        $this->users[$i]['battle_exp'] = ceil($this->users[$i]['battle_exp'] * 0.10);
                    }
                    $this->users[$i]['nich'] += 1;
                } elseif ($this->users[$i]['team'] == $this->info['team_win'] && $this->info['type'] != 564) {
                    $gm[$i] = $this->info['money'];
                    $gms[$i] = $this->info['money3'];
                    $this->users[$i]['win'] += 1;
                    $act01 = 1;
                } elseif ($this->info['type'] != 564) {
                    if ($this->users[$i]['level'] <= 1) {
                        $this->users[$i]['battle_exp'] = ceil($this->users[$i]['battle_exp'] * 0.33);
                    } else {
                        $this->users[$i]['battle_exp'] = ceil($this->users[$i]['battle_exp'] * 0.10);
                    }
                    $bm[$i] = $this->info['money'];
                    $bms[$i] = $this->info['money3'];
                    $this->users[$i]['lose'] += 1;
                    $act01 = 2;
                }
                //Рассчитываем кол-во выигрышных сумм и кто сколько получил (для екр.)
                if ($this->info['money3'] > 0 && isset($gms[$i]) && $this->info['type'] != 564) {
                    $mn = [
                        'l' => 0, //сколько проигравших игроков
                        'w' => 0, //сколько выигрывших игроков
                        'm' => 0,   //сумма выигрыша (общая)
                    ];
                    if ($act01 == 1) {
                        $mn['l'] = mysql_fetch_array(
                            mysql_query(
                                'SELECT COUNT(`id`) FROM `battle_users` WHERE `battle` = "' . $this->info['id'] . '" AND `team` != "' . $this->users[$i]['team'] . '" LIMIT 1'
                            )
                        );
                        $mn['l'] = $mn['l'][0];
                        $mn['w'] = mysql_fetch_array(
                            mysql_query(
                                'SELECT COUNT(`id`) FROM `battle_users` WHERE `battle` = "' . $this->info['id'] . '" AND `team` = "' . $this->users[$i]['team'] . '" LIMIT 1'
                            )
                        );
                        $mn['w'] = $mn['w'][0];
                        $mn['m'] = round(($mn['l'] * $this->info['money3']) / 100 * 87, 2);
                        $gms[$i] = round(($mn['m'] / $mn['w']), 2);
                    }
                }
                //заносим данные в БД
                //Поломка предметов
                if ($act01 == 1) {
                    //победа
                    if ($this->users[$i]['dnow'] == 0 && $this->users[$i]['hpNow'] < 1) {
                        $lom = 0.05;
                    }
                } elseif ($act01 == 2) {
                    //поражение
                    $lom = 0.55;
                } else {
                    //ничья
                    $lom = 0.05;
                }
                $nlom = [0 => rand(0, 18), 1 => rand(0, 18), 2 => rand(0, 18), 3 => rand(0, 18)];
                if ($this->info['type'] == 564) {
                    $lom = 0;
                }
                if ($this->stats[$i]['silver'] >= 4) {
                    $lom = 0;
                }
                mysql_query(
                    'UPDATE `items_users` SET `iznosNOW` = `iznosNOW`+' . $lom . ' WHERE `inOdet` < "18" AND `inOdet` > "0" AND `uid` = "' . $this->users[$i]['id'] . '" AND `inOdet`!="0" AND `inOdet`!=' . $nlom[0] . ' AND `inOdet`!=' . $nlom[1] . ' AND `inOdet`!=' . $nlom[2] . ' AND `inOdet`!=' . $nlom[3] . ' LIMIT 18'
                );

                $prc = '';
                if ($this->users[$i]['align'] == 2) {
                    $this->users[$i]['battle_exp'] = floor($this->users[$i]['battle_exp'] / 2);
                }
                if ($this->users[$i]['animal'] > 0) {
                    $ulan = $u->testAction(
                        '`uid` = "' . $this->users[$i]['id'] . '" AND `vars` = "animal_use' . $this->info['id'] . '" LIMIT 1',
                        1
                    );
                    if (isset($ulan['id']) && $this->users[$i]['team'] == $this->info['team_win'] && $this->users[$i]['level'] > $ulan['vals']) {
                        $a004 = mysql_fetch_array(
                            mysql_query(
                                'SELECT `max_exp`,`name` FROM `users_animal` WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `id` = "' . $this->users[$i]['animal'] . '" AND `pet_in_cage` = "0" AND `delete` = "0" LIMIT 1'
                            )
                        );
                        //33% от опыта переходит зверю, но не более максимума
                        $aexp = (round($this->users[$i]['battle_exp'] / 100 * 33));
                        if ($aexp > $a004['max_exp']) {
                            $aexp = $a004['max_exp'];
                        }
                        unset($ulan);
                        //
                        $cmsg->setTo($this->users[$i]['login']);
                        $cmsg->setText("Ваш питомец «{$a004['name']}» получил опыт: <strong>$aexp</strong>");
                        $chat->sendMsg($cmsg);
                        //
                        $upd = mysql_query(
                            'UPDATE `users_animal` SET `exp` = `exp` + ' . $aexp . ' WHERE `id` = "' . $this->users[$i]['animal'] . '" AND `level` < ' . $this->users[$i]['level'] . ' LIMIT 1'
                        );
                        if ($upd) {
                            $this->users[$i]['battle_exp'] = round($this->users[$i]['battle_exp'] / 100 * 67);
                            $this->info['addExp'] -= 33.333;
                        }
                    }
                }

                $prsusers = mysql_fetch_array(
                    mysql_query(
                        'SELECT SUM(`price1`) FROM `battle_users` WHERE `battle` = "' . $this->info['id'] . '" LIMIT 1'
                    )
                );

                $btlstatus = $this->typeBattle($prsusers[0]);
                if ($this->info['smert'] == 1) {
                    $btlstatus = [150, 150, 'Жесточайшее Сражение', 'Жесточайшее Сражение'];
                }
                //
                if ($this->stats[$i]['clanpos'] > 0 && ($this->stats[$i]['clanpos'] == 1 || $this->stats[$i]['clanpos'] == 2 || $this->stats[$i]['clanpos'] == 3)) {
                    $this->info['addExp'] += 0;
                }

                unset($r1);
                //Статусная битва
                if ($btlstatus[0] > 0) {
                    if ($this->info['type'] == 99) {
                        $this->info['addExp'] += $btlstatus[1];
                    } else {
                        $this->info['addExp'] += $btlstatus[0];
                    }
                }

                if ($this->users[$i]['align'] == 2 || $this->users[$i]['haos'] > time()) {
                    $this->stats[$i]['exp'] = -($this->info['addExp'] + 50);
                }
                if ($this->info['addExp'] + $this->stats[$i]['exp'] != 0) {
                    $prc = ' (' . (100 + $this->info['addExp'] + $this->stats[$i]['exp']) . '%)';
                }
                if ($this->info['money'] > 0) {
                    if (isset($gm[$i])) {
                        $prc .= ' Вы выйграли <strong>' . $gm[$i] . ' кр.</strong> за этот бой.';
                        $u->addDelo(
                            4, $this->users[$i]['id'],
                            '&quot;<font color="olive">System.battle</font>&quot;: Персонаж выйграл <strong>' . $gm[$i] . ' кр.</strong> (В бою №' . $this->info['id'] . ').',
                            time(), $this->info['city'], 'System.battle', 0, 0
                        );
                        $this->users[$i]['money'] += $gm[$i];
                    } elseif (isset($bm[$i])) {
                        $prc .= ' Вы заплатили <strong>' . $bm[$i] . ' кр.</strong> за этот бой.';
                        $u->addDelo(
                            4, $this->users[$i]['id'],
                            '&quot;<font color="olive">System.battle</font>&quot;: Персонаж <i>проиграл</i> <strong>' . $gm[$i] . ' кр.</strong> (В бою №' . $this->info['id'] . ').',
                            time(), $this->info['city'], 'System.battle', 0, 0
                        );
                        $this->users[$i]['money'] -= $bm[$i];
                    }
                }
                if ($c['money_haot'] && $this->users[$i]['exp'] <= 200000000) {
                    if ($act01 == 1 && $this->info['razdel'] == 5 && $this->users[$i]['level'] >= 8) {
                        //Сколько нужно опыта набить
                        $trexp = [
                            8 => 1200,
                            9 => 3000,
                            10 => 4500,
                            11 => 12000,
                            12 => 20000,
                            13 => 30000,
                            14 => 30000,
                            15 => 30000,
                            16 => 30000,
                            17 => 30000,
                            18 => 30000,
                            19 => 30000,
                            20 => 30000,
                            21 => 30000,
                        ];
                        $trexp = $trexp[$this->users[$i]['level']];

                        //Какая цена фулла должна быть
                        $trmn = [
                            8 => 1000,
                            9 => 3000,
                            10 => 2500,
                            11 => 3000,
                            12 => 3000,
                            13 => 3000,
                            14 => 3000,
                            15 => 3000,
                            16 => 3000,
                            17 => 3000,
                            18 => 3000,
                            19 => 3000,
                            20 => 3000,
                            21 => 3000,
                        ];
                        $trmn = $trmn[$this->users[$i]['level']];

                        //Сколько екр дается
                        $admn = [
                            8 => 0.05, //0.05
                            9 => 0.065, //0.065
                            10 => 0.075, //0.075
                            11 => 0.085, //0.085
                            12 => 0.1, //0.1
                            13 => 0.1,
                            14 => 0.1,
                            15 => 0.1,
                            16 => 0.1,
                            17 => 0.1,
                            18 => 0.1,
                            19 => 0.1,
                            20 => 0.1,
                            21 => 0.1,
                        ];
                        $admn = $admn[$this->users[$i]['level']];

                        if ($c['m'] >= 6 && $c['m'] <= 8) {
                            //Летний период
                            if ($c['w'] == 0 || $c['w'] == 5 || $c['w'] == 6) {
                                //Выходные дни
                                $admn = $admn * 2;
                            }
                        } elseif ($c['w'] == 0 || $c['w'] == 5 || $c['w'] == 6) {
                            //Выходные дни
                            $admn = $admn * 2;
                        }
                        if ($this->users[$i]['battle_exp'] < $trexp) {
                            $prc .= ', Награда <strong>0 ЕКР</strong> за этот бой (Мало опыта набили).';
                        } elseif ($admn > 0) {
                            if ($this->info['type'] != 33) {
                                $prc .= ', Награда <strong>' . $admn . ' ЕКР</strong> за этот бой.';
                            }
                            $u->addDelo(
                                4, $this->users[$i]['id'],
                                '&quot;<font color="olive">System.battle</font>&quot;: Персонаж получил <strong>' . $admn . ' ЕКР</strong> (В бою №' . $this->info['id'] . ').',
                                time(), $this->info['city'], 'System.battle', 0, 0
                            );
                            $this->users[$i]['money2'] += $admn;
                        }
                    }
                }
                if ($this->info['money3'] > 0) {
                    if (isset($gms[$i])) {
                        $prc .= ' Вы выйграли <strong>' . $gms[$i] . ' $.</strong> за этот бой.';
                        $u->addDelo(
                            4, $this->users[$i]['id'],
                            '&quot;<font color="olive">System.battle</font>&quot;: Персонаж выйграл <strong>' . $gms[$i] . ' $.</strong> (В бою №' . $this->info['id'] . ').',
                            time(), $this->info['city'], 'System.battle', 0, 0
                        );
                        $this->users[$i]['money3'] += $gms[$i];
                        mysql_query(
                            'UPDATE `users` SET `money3` = `money3` + "' . $gms[$i] . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                        );
                    } elseif (isset($bms[$i])) {
                        $prc .= ' Вы заплатили <strong>' . $bms[$i] . ' $.</strong> за этот бой.';
                        $u->addDelo(
                            4, $this->users[$i]['id'],
                            '&quot;<font color="olive">System.battle</font>&quot;: Персонаж <i>проиграл</i> <strong>' . $gms[$i] . ' $.</strong> (В бою №' . $this->info['id'] . ').',
                            time(), $this->info['city'], 'System.battle', 0, 0
                        );
                        $this->users[$i]['money3'] -= $bms[$i];
                        mysql_query(
                            'UPDATE `users` SET `money3` = `money3` - "' . $bms[$i] . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                        );
                    }
                }

                $lime = [
                    8 => 18000,
                    9 => 28000,
                    10 => 84000,
                    11 => 100,
                    12 => 100,
                    13 => 100,
                    14 => 100,
                    15 => 100,
                    16 => 100,
                    17 => 100,
                    18 => 100,
                    19 => 100,
                    20 => 100,
                    21 => 100,
                ];

                if ($this->users[$i]['level'] < 8) {
                    $lime = 5400;
                } else {
                    $lime = $lime[$this->users[$i]['level']];
                }

                if ($this->stats[$i]['silver'] >= 5) {
                    $lime += round($lime);
                }

                if ($this->users[$i]['stopexp'] == 1) {
                    $lime = 0;
                    $this->users[$i]['battle_exp'] = 0;
                }

                if ($lime < $this->users[$i]['battle_exp'] && $c['limitedexp'] == true) {
                    $this->users[$i]['battle_exp'] = $lime;
                }

                unset($lime);

                if ($btlstatus[0] > 0) {
                    if ($this->info['type'] == 99) {
                        $prc .= ' (' . $btlstatus[3] . ')';
                    } else {
                        $prc .= ' (' . $btlstatus[2] . ')';
                    }
                }

                if ($this->info['dungeon'] == 1 && $this->users[$i]['team'] == $this->info['team_win']) {
                    //канализация лимит
                    $rep = mysql_fetch_array(
                        mysql_query(
                            'SELECT `dl1`,`id` FROM `rep` WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                        )
                    );
                    if ($rep['dl' . $this->info['dungeon']] > 0) {
                        $this->users[$i]['battle_exp'] += 3 * count($this->users);
                        if ($rep['dl' . $this->info['dungeon']] > $this->users[$i]['battle_exp']) {
                            $rep['dl' . $this->info['dungeon']] -= $this->users[$i]['battle_exp'];
                        } else {
                            $this->users[$i]['battle_exp'] = $rep['dl' . $this->info['dungeon']];
                            $rep['dl' . $this->info['dungeon']] = 0;
                        }
                        mysql_query(
                            'UPDATE `rep` SET `dl' . $this->info['dungeon'] . '` = "' . $rep['dl' . $this->info['dungeon']] . '" WHERE `id` = "' . $rep['id'] . '" LIMIT 1'
                        );
                    } else {
                        $this->users[$i]['battle_exp'] = 0;
                    }
                }

                if ($this->users[$i]['battle_exp'] < 1) {
                    $this->users[$i]['battle_exp'] = 0;
                }

                if ($this->users[$i]['battle_exp'] < 1 && $this->users[$i]['twink'] == 0) {
                    if ($this->info['money'] == 0 && $this->info['money3'] == 0 && $this->info['kingfight'] == 0 && (!isset($admnb) || $admnb == 0)) {
                        $prc = '';
                    }
                }

                if ($this->user[$i]['host_reg'] == 'real_bot_user') {
                    $this->users[$i]['battle_exp'] = round($this->users[$i]['battle_exp'] / 3);
                }

                if ($sinf != '') {
                    $sinf = ' ( ' . $sinf . ' )';
                }

                //--------------Лимит 8-9--------------
                if ($this->users[$i]['level'] == 8 && $this->users[$i]['battle_exp'] >= 23000) {
                    $this->users[$i]['battle_exp'] = 23000;
                }
                if ($this->users[$i]['level'] == 9 && $this->users[$i]['battle_exp'] >= 31000) {
                    $this->users[$i]['battle_exp'] = 31000;
                }
                if ($this->users[$i]['level'] == 10 && $this->users[$i]['battle_exp'] >= 52000) {
                    $this->users[$i]['battle_exp'] = 52000;
                }
                if ($this->users[$i]['level'] >= 11 && $this->users[$i]['battle_exp'] >= 75000) {
                    $this->users[$i]['battle_exp'] = 75000;
                }
                //-------------------------------------

                if ($this->info['type'] != 33) {
                    $this->users[$i]['battle_text'] = 'Бой закончен. Всего вами нанесено урона: <strong>' . floor(
                            $this->users[$i]['battle_yron']
                        ) . ' HP</strong>. Получено опыта: <strong>' . (0 + $this->users[$i]['battle_exp']) . '</strong>' . $prc . '.' . $sinf; //stats
                }

                /*Выпадение зубов в конце боя */
                if ($c['nolevel']) {
                    $rex95 = substr($this->users[$i]['exp'], -1);
                    if ($this->users[$i]['money4'] < 1000 && $this->users[$i]['exp'] == 12499) {
                        $rex95 = 6;
                        $rex95 = 5;
                    }
                } else {
                    $rex95 = 5;
                }

                if ($c['zuby'] && $this->info['dungeon'] == 0 && ($this->info['clone'] == 0 || $this->users[$i]['level'] < 5) && $rex95 != 9 && $this->info['type'] != 564) {
                    if ($this->users[$i]['align'] != 2 && $this->users[$i]['level'] >= 0 && $this->users[$i]['level'] < 8 && $this->users[$i]['battle_exp'] > 0) {
                        $rzb = 0;

                        if ($this->get_chanse(50)) {
                            $rzb += rand(1, 3);
                        } else {
                            if ($this->users[$i]['battle_exp'] > 15) {
                                $rzb += 1;
                            }
                        }

                        $chzbs = 100;

                        if ($this->stats[$i]['silver'] > 0) {
                            $chzbs = 150;
                        }

                        if ($this->users[$i]['battle_exp'] > 9) {
                            if ($this->users[$i]['level'] > 1) {
                                //Нормальный зуб
                                if ($this->get_chanse(25 / 100 * $chzbs)) {
                                    $rzb += 10;
                                }
                            } elseif ($this->users[$i]['level'] == 1) {
                                if ($this->get_chanse(30 / 100 * $chzbs)) {
                                    $rzb += 10;
                                }
                            }

                            if ($this->users[$i]['level'] > 3) {
                                if ($this->get_chanse(5 / 100 * $chzbs)) {
                                    $rzb += 100;
                                }
                            }
                        }

                        if ($this->users[$i]['team'] == $this->info['team_win']) {
                            //выиграли
                            if ($this->users[$i]['level'] < 8) {
                                $rzb += 1;
                            }
                        } elseif ($this->users[$i]['team'] == 0) {
                            //ничья
                            if ($this->get_chanse(25 / 100 * $chzbs) && $this->users[$i]['battle_exp'] > 2) {
                                $rzb = rand(0, 1);
                            } else {
                                $rzb = 0;
                            }
                        } else {
                            //проиграли
                            if ($this->users[$i]['level'] >= 1) {
                                $rzb = 0;
                            } else {
                                if ($this->users[$i]['battle_exp'] < 3) {
                                    $rzb = 0;
                                } elseif ($this->user[$i]['lose'] > $this->user[$i]['win']) {
                                    if ($this->get_chanse(5 / 100 * $chzbs)) {
                                        $rzb = rand(0, 1);
                                    } else {
                                        $rzb = 0;
                                    }
                                } elseif ($this->get_chanse(10 / 100 * $chzbs)) {
                                    $rzb = rand(0, 1);
                                }
                            }
                            $rzb = 0;
                        }

                        if ($rex95 == 6) {
                            if ($this->users[$i]['battle_exp'] > 10) {
                                $rzb = rand(0, 1);
                            } else {
                                $rzb = 0;
                            }
                        }

                        if ($rzb > 0 && rand(0, 1000) <= 500) {
                            $rzb = rand(1, 3);
                        }
                        if ($rzb > 0) {
                            if ($this->stats[$i]['silver'] >= 5) {
                                $rzb = $rzb * 2;
                            }
                            mysql_query(
                                'UPDATE `users` SET `money4` = `money4` + "' . $rzb . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                            );
                            $this->users[$i]['battle_text'] .= ' Вы получили <small>' . $u->zuby(
                                    $rzb,
                                    1
                                ) . '</small> за этот бой.';
                        }
                    }
                }

                if ($this->info['priz'] > 0 && true == false) { // тут были реликвии ангела.
                    //Призовой хаот
                    /*
                            [4754]
                            2-3 лвл = 1 жетон
                            4-5 лвл = 1 жетона
                            6-7 лвл = 2 жетонов
                            8-9 лвл = 3 жетонов
                            В случаи победы (х3)

                        */
                    if ($this->info['type'] != 33)//ТУТ приз хаот дроп
                    {
                        $tmon = [
                            2 => 1,
                            3 => 1,
                            4 => 1,
                            5 => 1,
                            6 => 1,
                            7 => 2,
                            8 => 3,
                            9 => 3,
                            10 => 5,
                            11 => 5,
                        ];
                        $tmon = $tmon[$this->users[$i]['level']];
                        $tmonc = mysql_fetch_array(
                            mysql_query(
                                'SELECT COUNT(*) FROM `battle` WHERE `id` IN ( SELECT `battle_id` FROM `battle_last` WHERE `uid` = "' . $this->users[$i]['id'] . '" ) AND `priz` > 0 AND `time_start` > "' . strtotime(
                                    date('d.m.Y')
                                ) . '"'
                            )
                        );
                        $tmonc = $tmonc[0];
                        if ($this->users[$i]['team'] == $this->info['team_win']) {
                            //При выигрыше увеличиваем
                            if ($tmonc < 1) {
                                $tmonc = 1;
                            } elseif ($tmonc > 96) {
                                $tmonc = 96;
                            }
                            $tmon = ($tmon * $tmonc);
                        }
                        $tmoni = 1;
                        while ($tmoni <= floor($tmon / 2)) {
                            \User\ItemsModel::addItem(0, $this->users[$i]['id'], ''); // тут были реликвии ангела.
                            $tmoni++;
                        }
                        $this->users[$i]['battle_text'] .= ' За призовой хаот вы получаете <strong>Призовой Жетон (x' . floor(
                                $tmon / 2
                            ) . ')</strong>. (Чем больше призовых хаотов вы примите за сутки, тем больше будет выдаваться жетонов при победе! Призовых хаотов посещено сегодня ' . ($tmonc) . '/96 )';
                        unset($tmon, $tmoni);
                    }
                }
                //Снижение времени Право на подвиг Титул за победу в хаоте
                if ($this->info['dungeon'] == 0 && $this->info['razdel'] == 5 && $this->users[$i]['team'] == $this->info['team_win']) {
                    //ТУТ2
                    StatsModel::addRepexpById($this->users[$i]['id'], 2); //Репутация за поб в хаоте +2
                    $check = mysql_fetch_array(
                        mysql_query(
                            'SELECT * FROM `eff_users` WHERE `id_eff` = 478 AND `uid` = "' . $this->users[$i]['id'] . '" AND `delete` = 0 ORDER BY `overType` DESC LIMIT 1;'
                        )
                    );
                    if (isset($check['id'])) {
                        $urcheck = 10000;
                        if ($this->users[$i]['level'] == 8) {
                            $urcheck = 3000;
                        } elseif ($this->users[$i]['level'] == 9) {
                            $urcheck = 7000;
                        } elseif ($this->users[$i]['level'] == 10) {
                            $urcheck = 12000;
                        } elseif ($this->users[$i]['level'] >= 11) {
                            $urcheck = 18000;
                        }

                        if ($this->users[$i]['battle_yron'] >= $urcheck) {
                            mysql_query(
                                'UPDATE `eff_users` SET `timeUse` = `timeUse` - 300  WHERE `id_eff`=478 AND `delete` = 0 AND `uid` =' . $this->users[$i]['id'] . ' LIMIT 1'
                            );
                            $this->users[$i]['battle_text'] .= ' За победу в хаоте и нанесение урона в <strong>' . $urcheck . '</strong> и более вы получаете <strong>-5 мин.</strong> к праву на подвиг!';
                        }
                    }
                    mysql_query(
                        'UPDATE `users_achiv` SET `vx`= `vx`+1 WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                    ); //

                }
                //Награда за клан вар
                if ($this->info['dungeon'] == 0 && $this->info['type'] == 250 && $this->users[$i]['team'] == $this->info['team_win']) {
                    mysql_query(
                        'UPDATE `users_achiv` SET `kw`= `kw`+1 WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                    );
                    if (date('w') == 0 || date('w') == 6 || date('w') == 4) {
                        StatsModel::addRepexpById($this->users[$i]['id'], 25); //Клановые войны(победа) 25
                    }
                }
                //Награда за клан вар
                if ($this->info['dungeon'] == 0 && $this->info['type'] == 99 && $this->users[$i]['team'] == $this->info['team_win']) {
                    if (date('w') == 0 || date('w') == 6 || date('w') == 5) {
                        StatsModel::addRepexpById($this->users[$i]['id'], 10); //Кровавые войны(победа) 10
                    }
                }

                //Новая выдача на трупожора
                if ($this->info['dungeon'] == 0 && $this->info['type'] == 500 && $this->users[$i]['team'] == $this->info['team_win'] && $this->users[$i]['no_ip'] != 'trupojor' && $this->users[$i]['bot'] == 0) {
                    if ($this->users[$i]['level'] > 9) {
                        $mid = 903093;
                    } else {
                        $mid = 89489;
                    }
                    $mon = mysql_fetch_array(
                        mysql_query('SELECT * FROM `aaa_monsters` WHERE `uid` = "' . $mid . '" LIMIT 1')
                    );

                    if ($this->users[$i]['battle_yron'] >= 2000) {
                        $ritem = rand(1, 100);
                        if ($ritem <= 20) {
                            $mon['win_itm'] = '4459@1';
                        } elseif ($ritem <= 40) {
                            $mon['win_itm'] = '4460@1';
                        } elseif ($ritem <= 60) {
                            $mon['win_itm'] = '4461@1';
                        } elseif ($ritem <= 80) {
                            $mon['win_itm'] = '4462@1';
                        } else {
                            $mon['win_itm'] = '4463@1';
                        }
                    } elseif ($this->users[$i]['battle_yron'] >= 1500) {
                        $ritem = rand(1, 100);
                        if ($ritem <= 20) {
                            $mon['win_itm'] = '4459@1';
                        } elseif ($ritem <= 40) {
                            $mon['win_itm'] = '4460@1';
                        } elseif ($ritem <= 60) {
                            $mon['win_itm'] = '4461@1';
                        } elseif ($ritem <= 80) {
                            $mon['win_itm'] = '4462@1';
                        } else {
                            $mon['win_itm'] = '4463@1';
                        }
                    } elseif ($this->users[$i]['battle_yron'] >= 1000) {
                        $ritem = rand(1, 100);
                        if ($ritem <= 25) {
                            $mon['win_itm'] = '4460@1';
                        } elseif ($ritem <= 50) {
                            $mon['win_itm'] = '4461@1';
                        } elseif ($ritem <= 75) {
                            $mon['win_itm'] = '4462@1';
                        } else {
                            $mon['win_itm'] = '4463@1';
                        }
                    } else {
                        $mon['win_itm'] = '4392@1';
                        $timewait = 0;
                    }
                    if ($this->users[$i]['battle_yron'] > 0) {
                        mysql_query(
                            'INSERT INTO `eff_users` (`no_Ace`,`id_eff`,`overType`,`uid`,`name`,`data`,`timeUse`) VALUES ("1","478","111","' . $this->users[$i]['id'] . '","Право на подвиг","pravonapodvig=1","' . time() . '")'
                        );
                    }
                    mysql_query(
                        'INSERT INTO `actions`(`uid`, `time`, `city`, `room`, `vars`, `ip`, `vals`, `val`) VALUES ("' . $this->users[$i]['id'] . '","' . (time() - $timewait) . '","capitalcity","' . $this->users[$i]['room'] . '","end_trup"," ","","")'
                    );
                    mysql_query(
                        'INSERT INTO `eff_users` (`no_Ace`,`id_eff`,`overType`,`uid`,`name`,`data`,`timeUse`) VALUES ("1","479","112","' . $u->info['id'] . '","Защита от нападения","zashitatk=1","' . time() . '")'
                    );
                    $ritem = rand(1, 1000);
                    if ($ritem == 555) {
                        $mon['win_itm'] = $mon['win_itm'] . ',5022@1';
                    }
                    //
                    $this->addGlobalItems(
                        $mid, $this->users[$i]['id'], $mon['win_itm'], $mon['win_eff'],
                        $mon['win_ico'], 1, $mon['win_money1'], $mon['win_money2']
                    ); //$mon['win_exp']

                }

                if ($this->info['razdel'] == 5 || $this->info['razdel'] == 4) {
                    if (date('d.m') == '31.10' || (date('m') == 11 && date('d') < 7)) {
                        //Хэллоуин 4504
                        $this->users[$i]['battle_text'] .= ' Вы получаете <strong>Тыква (x1)</strong>.';
                        \User\ItemsModel::addItem(4504, $this->users[$i]['id'], '|sudba=1');
                    }
                }


                //Добавляем воинственность
                if ($this->info['dungeon'] == 0 && $this->info['razdel'] == 5 && $this->users[$i]['exp'] >= 1500 /*($this->users[$i]['exp'] < 12499 || $this->users[$i]['exp'] > 12500)*/
                ) {
                    if ($this->users[$i]['battle_exp'] > 100 * $this->users[$i]['level']) {
                        $rzbvo = $this->users[$i]['battle_exp'] * 6 / 1000;

                        if ($this->users[$i]['level'] == 8) {
                            if ($rzbvo >= 100) {
                                $rzbvo = 100;
                            }
                        }
                        if ($this->users[$i]['level'] == 9) {
                            if ($rzbvo >= 150) {
                                $rzbvo = 150;
                            }
                        }
                        if ($this->users[$i]['level'] == 10) {
                            if ($rzbvo >= 200) {
                                $rzbvo = 200;
                            }
                        }
                        if ($this->users[$i]['level'] == 11) {
                            if ($rzbvo >= 250) {
                                $rzbvo = 250;
                            }
                        }
                        if ($this->users[$i]['level'] == 12) {
                            if ($rzbvo >= 250) {
                                $rzbvo = 250;
                            }
                        }


                        if ($this->info['type'] != 33) {
                            $this->users[$i]['battle_text'] .= ' Вы получили ' . $rzbvo . ' воинственности за этот бой.';
                        }
                        mysql_query(
                            'UPDATE `rep` SET `rep3` = `rep3` + "' . $rzbvo . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                        );
                        mysql_query(
                            'INSERT INTO `actions`(`uid`, `time`, `city`, `room`, `vars`, `ip`, `vals`, `val`) VALUES ("' . $this->users[$i]['id'] . '","' . time() . '","capitalcity","' . $this->users[$i]['room'] . '","end_xaot"," ","' . $zadID . '","")'
                        );
                    }
                }

                if ($this->stats[$i]['hpNow'] >= 1) {
                    $this->stats[$i]['test_heal'] = mysql_fetch_array(
                        mysql_query(
                            'SELECT SUM(`yrn`) FROM `battle_stat` WHERE `uid2` = "' . $this->users[$i]['id'] . '" AND `battle` = "' . $this->info['id'] . '" LIMIT 1'
                        )
                    );
                    $this->stats[$i]['test_heal'] = $this->stats[$i]['test_heal'][0];
                    $this->stats[$i]['test_start'] = mysql_fetch_array(
                        mysql_query(
                            'SELECT `hpStart` FROM `battle_users` WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `battle` = "' . $this->info['id'] . '" LIMIT 1'
                        )
                    );
                    $this->stats[$i]['test_start'] = $this->stats[$i]['test_start']['hpStart'];
                    //
                    $this->stats[$i]['hpNow'] = ($this->stats[$i]['test_start'] - $this->stats[$i]['test_heal']);
                    if ($this->stats[$i]['hpNow'] < 1) {
                        $this->stats[$i]['hpNow'] = 1;
                    }
                } else {
                    $this->stats[$i]['hpNow'] = 0;
                }

                unset($this->stats[$i]['test_heal']);

                $this->users[$i]['last_b'] = $this->info['id']; //stats
                $this->users[$i]['last_a'] = $act01;
                $this->users[$i]['battle'] = -1; //users
                $this->users[$i]['battle_yron'] = 0; //stats

                $this->users[$i]['exp'] += $this->users[$i]['battle_exp']; //users


                //Добавляем клан опыт (Все кроме пещер)

                if ($this->users[$i]['clan'] > 0) {
                    $cpr = 1;
                    if ($this->info['typeBattle'] == 9) {
                        $cpr = 25;
                    } elseif ($this->info['typeBattle'] == 50) {
                        $cpr = 65;
                    }
                    if ($this->stats[$i]['silver'] >= 5) {
                        $cpr = floor($cpr / 100 * 150);
                    }
                    mysql_query(
                        'UPDATE `clan` SET `exp` = `exp` + "' . round(
                            $this->users[$i]['battle_exp'] / 100 * $cpr
                        ) . '" WHERE `id` = "' . $this->users[$i]['clan'] . '" LIMIT 1'
                    );
                }

                $this->users[$i]['battle_exp'] = 0; //stats

                if ($this->users[$i]['team'] == $this->info['team_win']) {
                    mysql_query(
                        'UPDATE `rep` SET `n_capitalcity` = `n_capitalcity` + ' . $this->users[$i]['bn_capitalcity'] . ' ,`n_demonscity` = `n_demonscity` + ' . $this->users[$i]['bn_demonscity'] . ' ,`n_demonscity` = `n_demonscity` + ' . $this->users[$i]['bn_suncity'] . ' WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                    );
                }

                //репутация
                $this->users[$i]['bn_demonscity'] = 0;
                $this->users[$i]['bn_capitalcity'] = 0;
                $this->users[$i]['bn_suncity'] = 0;
                //завершение эффектов с финишем
                $spe = mysql_query(
                    'SELECT * FROM `eff_users` WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `file_finish` != "" AND `v1` = "priem" LIMIT 30'
                );
                while ($ple = mysql_fetch_array($spe)) {
                    if (file_exists('../../_incl_data/class/priems/' . $ple['file_finish'] . '.php')) {
                        require('../../_incl_data/class/priems/' . $ple['file_finish'] . '.php');
                    }
                }
                //обновляем данные
                mysql_query(
                    'DELETE FROM `eff_users` WHERE `v1` = "priem" AND `uid` = "' . $this->users[$i]['id'] . '" LIMIT 50'
                );
                if ($dnr == 1) {
                    if ($this->users[$i]['room'] == 370) {
                        $dies = mysql_fetch_array(
                            mysql_query(
                                'SELECT COUNT(`id`) FROM `dungeon_actions` WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `dn` = "' . $this->users[$i]['dnow'] . '" AND `vars` = "dielaba" LIMIT 1'
                            )
                        );
                        $dies = $dies[0];
                        mysql_query(
                            'INSERT INTO `dungeon_actions` (`dn`,`uid`,`x`,`y`,`time`,`vars`,`vals`) VALUES (
									"' . $this->users[$i]['dnow'] . '","' . $this->users[$i]['id'] . '","' . $this->users[$i]['x'] . '","' . $this->users[$i]['y'] . '","' . time() . '","dielaba",""
								)'
                        );
                    } else {
                        $dies = mysql_fetch_array(
                            mysql_query(
                                'SELECT COUNT(`id`) FROM `dungeon_actions` WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `dn` = "' . $this->users[$i]['dnow'] . '" AND `vars` = "die" LIMIT 1'
                            )
                        );
                        $dies = $dies[0];
                        mysql_query(
                            'INSERT INTO `dungeon_actions` (`dn`,`uid`,`x`,`y`,`time`,`vars`,`vals`) VALUES (
									"' . $this->users[$i]['dnow'] . '","' . $this->users[$i]['id'] . '","' . $this->users[$i]['x'] . '","' . $this->users[$i]['y'] . '","' . time() . '","die",""
								)'
                        );
                    }
                    if ($dies < 2 || $this->info['dungeon'] == 15) {
                        //
                        $tshbn = mysql_fetch_array(
                            mysql_query(
                                'SELECT `id` FROM `items_users` WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `delete` = 0 AND `item_id` = "4910" LIMIT 1'
                            )
                        );
                        if (isset($tshbn['id'])) {
                            //выбрасываем шайбу
                            mysql_query('DELETE FROM `items_users` WHERE `id` = "' . $tshbn['id'] . '" LIMIT 1');
                            //
                            mysql_query(
                                'INSERT INTO `dungeon_obj` (
										`name`,`dn`,`x`,`y`,`img`,`delete`,`action`,`for_dn`,
										`type`,`w`,`h`,`s`,`s2`,`os1`,`os2`,`os3`,`os4`,`type2`,`top`,`left`,`date`
									) VALUES (
										"Шайба","' . $this->info['dn_id'] . '","' . $this->users[$i]['x'] . '","' . $this->users[$i]['y'] . '","shaiba.png","0","fileact:15/shaiba","0",
										"0","120","220","0","0","5","8","12","0","0","0","0","{use:\'takeit\',rt1:69,rl1:-47,rt2:74,rl2:126,rt3:76,rl3:140,rt4:80,rl4:150}"
									)'
                            );
                            //
                        }
                        //телепортируем в рестарт (координата 0х0)
                        $this->users[$i]['x'] = $this->users[$i]['res_x'];
                        $this->users[$i]['y'] = $this->users[$i]['res_y'];
                        $this->users[$i]['s'] = $this->users[$i]['res_s'];
                        $r_n = mysql_fetch_array(
                            mysql_query(
                                'SELECT `name` FROM `room` WHERE `id` = "' . (int)$this->users[$i]['room'] . '" LIMIT 1'
                            )
                        );
                        if ($this->users[$i]['room'] == 370) {
                            if ($this->users[$i]['sex'] == 0) {
                                $rtxt = '<strong>' . $this->users[$i]['login'] . '</strong> трагически погиб и находится в начале лабиринта';
                            } else {
                                $rtxt = '<strong>' . $this->users[$i]['login'] . '</strong> трагически погибла и находится в начале лабиринта';
                            }
                        } else {
                            if ($this->users[$i]['sex'] == 0) {
                                $rtxt = '<strong>' . $this->users[$i]['login'] . '</strong> трагически погиб и находится в комнате &quot;' . $r_n['name'] . '&quot;';
                            } else {
                                $rtxt = '<strong>' . $this->users[$i]['login'] . '</strong> трагически погибла и находится в комнате &quot;' . $r_n['name'] . '&quot;';
                            }
                        }
                    } elseif ($this->info['dungeon'] == 102) {
                        $nld = '';
                        $lab = mysql_fetch_array(
                            mysql_query(
                                'SELECT `id`,`users` FROM `laba_now` WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                            )
                        );
                        if ($lab['users'] < 2) {
                            //Удаляем подземелье
                            mysql_query('DELETE FROM `laba_now` WHERE `id` = "' . $lab['id'] . '" LIMIT 1');
                            mysql_query('DELETE FROM `laba_map` WHERE `id` = "' . $lab['id'] . '" LIMIT 1');
                            mysql_query('DELETE FROM `laba_obj` WHERE `lib` = "' . $lab['id'] . '"');
                            mysql_query('DELETE FROM `laba_act` WHERE `lib` = "' . $lab['id'] . '"');
                            mysql_query('DELETE FROM `laba_itm` WHERE `lib` = "' . $lab['id'] . '"');
                        } else {
                            $lab['users']--;
                            mysql_query(
                                'UPDATE `laba_now` SET `users` = "' . $lab['users'] . '" WHERE `id` = "' . $lab['id'] . '" LIMIT 1'
                            );
                        }
                        mysql_query(
                            'UPDATE `stats` SET `dnow` = "0" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                        );
                        mysql_query(
                            'UPDATE `users` SET `room` = "369" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                        );
                        //удаляем все предметы которые пропадают после выхода из пещеры
                        mysql_query(
                            'UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `delete` < 1234567890 AND `inShop` = "0" AND (`dn_delete` = "1" OR `data` LIKE "%fromlaba=1%")'
                        );
                        if ($this->users[$i]['login'] != '') {
                            if ($this->users[$i]['sex'] == 0) {
                                $rtxt = '<strong>' . $this->users[$i]['login'] . '</strong> трагически погиб без права на воскрешение и покидает подземелье' . $nld;
                            } else {
                                $rtxt = '<strong>' . $this->users[$i]['login'] . '</strong> трагически погибла без права на воскрешение и покидает подземелье' . $nld;
                            }
                        }
                    } else {
                        $tinf = mysql_fetch_array(
                            mysql_query(
                                'SELECT `uid` FROM `dungeon_now` WHERE `id` = "' . $this->info['dn_id'] . '" LIMIT 1'
                            )
                        );
                        $nld = '';
                        if ($tinf['uid'] == $this->users[$i]['id']) {
                            $tinf = mysql_fetch_array(
                                mysql_query(
                                    'SELECT `id` FROM `stats` WHERE `dnow` = "' . $this->info['dn_id'] . '" AND `hpNow` >= 1 LIMIT 1'
                                )
                            );
                            if (isset($tinf['id'])) {
                                $tinf = mysql_fetch_array(
                                    mysql_query(
                                        'SELECT `id`,`login` FROM `users` WHERE `id` = "' . $tinf['id'] . '" LIMIT 1'
                                    )
                                );
                                $nld .= ', новым лидером становится &quot;' . $tinf['login'] . '&quot;';
                                mysql_query(
                                    'UPDATE `dungeon_now` SET `uid` = "' . $tinf['id'] . '" WHERE `id` = "' . $this->info['dn_id'] . '" LIMIT 1'
                                );
                            }
                        }
                        $rooms = [
                            374 => 372,        //ПТП (Кэпитал сити)
                            189 => 188,        //Водосток (Кэпитал сити)
                            392 => 393,        //Шахты (Кэпитал сити)

                            398 => 397,        //Шахты (Ангелс сити)
                            243 => 395,        //Водосток (Ангелс сити)
                            360 => 242,        //Бездна (Ангелс сити)

                            19 => 293,        //Катакомбы
                        ];
                        //	$n_rm = $rooms[$this->users[$i]['room']];
                        mysql_query(
                            'UPDATE `stats` SET `dnow` = "0" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                        );
                        mysql_query(
                            'UPDATE `users` SET `room` = "321" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                        );
                        //удаляем все предметы которые пропадают после выхода из пещеры
                        mysql_query(
                            'UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `dn_delete` = "1" LIMIT 1000'
                        );
                        mysql_query(
                            'UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $u->info['id'] . '" AND `item_id` = "1189" OR `item_id` = "4447" OR `item_id` = "1174") LIMIT 1000'
                        );

                        if ($this->users[$i]['sex'] == 0) {
                            $rtxt = '<strong>' . $this->users[$i]['login'] . '</strong> трагически погиб без права на воскрешение и покидает подземелье' . $nld;
                        } else {
                            $rtxt = '<strong>' . $this->users[$i]['login'] . '</strong> трагически погибла без права на воскрешение и покидает подземелье' . $nld;
                        }
                    }
                    if (!empty($rtxt)) {
                        $cmsg->setDn($this->info['dn_id']);
                        $cmsg->setText($rtxt);
                        $cmsg->setTypeTime(1);
                        $chat->sendMsg($cmsg);
                    }
                }

                mysql_query('UPDATE `users` SET `login2` = "" WHERE `battle` = "' . $this->info['id'] . '"');
                $upd = mysql_query(
                    'UPDATE `users` SET `login2` = "", `money` = "' . $this->users[$i]['money'] . '", `money2` = "' . $this->users[$i]['money2'] . '",`win` = "' . $this->users[$i]['win'] . '",`lose` = "' . $this->users[$i]['lose'] . '",`nich` = "' . $this->users[$i]['nich'] . '",`battle` = "-1" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                );

                if ($u->info['id'] == $this->users[$i]['id']) {
                    $u->info['battle_text'] = $this->users[$i]['battle_text'];
                }

                $upd2 = mysql_query(
                    'UPDATE `stats` SET `hpNow` = "' . $this->stats[$i]['hpNow'] . '",`mpNow` = "' . $this->stats[$i]['mpNow'] . '",`bn_capitalcity` = 0,`bn_demonscity` = 0,`smena` = 3,`tactic7` = "-100",`x`="' . $this->users[$i]['x'] . '",`y`="' . $this->users[$i]['y'] . '",`priems_z`="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|0",`last_pr`="0",`tactic1`="0",`tactic2`="0",`tactic3`="0",`tactic4`="0",`tactic5`="0",`tactic6`="0.00000000",`tactic7`="10",`exp` = "' . $this->users[$i]['exp'] . '",`battle_exp` = "' . $this->users[$i]['battle_exp'] . '",`battle_text` = "' . $this->users[$i]['battle_text'] . '",`battle_yron` = "0",`enemy` = "0",`last_b`="' . $this->info['id'] . '",`regHP` = "' . time() . '",`regMP` = "' . time() . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                );
                if ($this->info['turnir'] == 0) {
                    //пишем в чат
                    $cmsg->setTo($this->users[$i]['login']);
                    $cmsg->setText($this->users[$i]['battle_text']);
                    $chat->sendMsg($cmsg);
                } else {
                    mysql_query(
                        'UPDATE `turnirs` SET `winner` = "' . $this->info['team_win'] . '" WHERE `id` = "' . $this->info['turnir'] . '" LIMIT 1'
                    );
                }
                //завершаем сам бой
                $upd3 = mysql_query(
                    'UPDATE `battle` SET `time_over` = "' . time() . '",`team_win` = "' . $this->info['team_win'] . '" WHERE `id` = "' . $this->info['id'] . '" LIMIT 1'
                );


                // Жрать хочет
                if ($this->users[$i]['animal'] > 0) {
                    $a = mysql_fetch_array(
                        mysql_query(
                            'SELECT * FROM `users_animal` WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `id` = "' . $this->users[$i]['animal'] . '" AND `pet_in_cage` = "0" AND `delete` = "0" LIMIT 1'
                        )
                    );
                    if (isset($a['id'])) {
                        if ($a['eda'] < 1) {
                            $cmsg = new ChatMessage();
                            $cmsg->setRoom($this->users[$i]['room']);
                            $cmsg->setCity($this->users[$i]['city']);
                            $cmsg->setTo($this->users[$i]['login']);
                            $cmsg->setText('<strong>' . $a['name'] . '</strong> нуждается в еде...');
                            $cmsg->setType(6);
                            $chat->sendMsg($cmsg);
                        }
                    }
                }
                mysql_query(
                    'UPDATE `stats` SET `battle_text` = "",`last_b`="0" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                );
                mysql_query('UPDATE `battle_users` SET `finish` = 1 WHERE `uid` = "' . $this->users[$i]['id'] . '"');
                $this->saveLogs();
                if ($u->info['battle'] != 0 && !isset($u->info['battle_lsto'])) {
                    echo '<script>document.getElementById(\'teams\').style.display=\'none\';var battleFinishData = "' . $u->info['battle_text'] . '";</script>';
                }
            }

        } else {
            sleep(2);
        }
        mysql_query('UPDATE `battle` SET `testfinish` = "0" WHERE `id` = "' . $this->info['id'] . '" LIMIT 1');
        mysql_query('UNLOCK TABLES');
    }

    //Проверка зоны и блока

    /**
     * Сохраняем лог в архив
     * @return void
     */
    private function saveLogs()
    {
        Db::sql(
            'insert into battle_logs_save select id, time, battle, id_hod, text, vars, zona1, zonb1, zona2, zonb2, type from battle_logs where battle = ? and id_hod <= ?',
            [$this->info['id'], $this->hodID]
        );
        Db::sql('delete from battle_logs where battle = ?', [$this->info['id']]);
        Db::sql('delete from battle_stat where battle < ?', [$this->info['id'] - 100]);
        Db::sql('delete from battle_actions where btl = ?', [$this->info['id']]);
    }

    //Проверка ухода удара в игрока

    public function addTravm($uid, $type, $lvl)
    {
        global $u;
        $t = $type;
        if ($t == 1) {
            $name = 'Легкая травма';
            $stat = rand(1, 3); // пока без духовности
            $timeEnd = rand(1, 3);// время травмы от 1.30 до 6 часов
            $data = 'add_s' . $stat . '=-' . $lvl;
            $img = 'eff_travma1.gif';
            $v1 = 1;
        } elseif ($t == 2) {
            $name = 'Средняя травма';
            $stat = rand(1, 3); // пока без духовности
            $timeEnd = rand(3, 5);// время травмы от 6 до 12 часов
            $data = 'add_s' . $stat . '=-' . ($lvl * 2);
            $v1 = 2;
            $img = 'eff_travma2.gif';
        } elseif ($t == 3) {
            $name = 'Тяжелая травма';
            $stat = rand(1, 3); // пока без духовности
            $timeEnd = rand(5, 7);// время травмы от 12 до 6 часов
            $data = 'add_s' . $stat . '=-' . ($lvl * 3);
            $v1 = 3;
            $img = 'eff_travma3.gif';
        } elseif ($t == 4) {
            $name = 'Неизлечимая травма';
            $stat = rand(1, 3); // пока без духовности
            $timeEnd = 24;// время травмы от 24 часа
            $data = 'add_s' . $stat . '=-' . ($lvl * 50);
            $v1 = 4;
            $img = 'eff_travma4.gif';
        }
        $timeEnd *= 3600;
        $ins = mysql_query(
            'INSERT INTO `eff_users` (`overType`,`timeUse`,`hod`,`name`,`data`,`uid`, `id_eff`, `img2`, `timeAce`, `v1`) VALUES ("0","' . time() . '","-1","' . $name . '","' . $data . '","' . $uid . '", "4", "' . $img . '","' . $timeEnd . '", "' . $v1 . '")'
        );
        $ins = mysql_query(
            'INSERT INTO `eff_users` (`overType`,`timeUse`,`hod`,`name`,`data`,`uid`, `id_eff`, `img2`, `timeAce`, `v1`) VALUES ("0","' . time() . '","-1","Иммунитет: Защита от травм","add_notravma=1","' . $uid . '", "263", "cure1.gif","21600", "")'
        );
    }

    //Расчет уворота игроков

    private function typeBattle(int $x): array
    {
        $r = [0, 0, 'Обычный поединок', 'Кровавый Поединок'];
        if ($x >= 50000 && $x < 100000) {
            $r = [25, 50, 'Великая Битва', 'Кровавая Битва'];
        } elseif ($x < 500000) {
            $r = [50, 75, 'Величайшая Битва', 'Кровавая Резня'];
        } elseif ($x < 1000000) {
            $r = [75, 100, 'Историческая Битва', 'Кровавая Сеча'];
        } elseif ($x < 2500000) {
            $r = [100, 125, 'Эпохальная Битва', 'Кровавое Побоище'];
        } elseif ($x >= 5000000) {
            $r = [150, 150, 'Судный День', 'Судный День'];
        }
        return $r;
    }

    //Расчет крита игроков

    public function addGlobalItems($bid, $uid, $itm, $eff, $ico, $exp, $cr, $ecr)
    {
        global $u;
        $chat = new Chat();
        $cmsg = new ChatMessage();
        $cmsg->setType(6);
        $cmsg->setCity($this->users[$this->uids[$uid]]['city']);
        $cmsg->setRoom($this->users[$this->uids[$uid]]['room']);
        $cmsg->setTo($this->users[$this->uids[$uid]]['login']);
        $cmsg->setColor('#cb0000');
        //
        //Выпадение дропа на ЦП
        if ($bid == 1008) {
            //Старый Новый Год
            $jit = 0;
            $iit = mysql_fetch_array(
                mysql_query('SELECT COUNT(*) FROM `users` WHERE `online` > ' . (time() - 120) . '')
            );
            $iit = floor($iit[0] / 20);
            $iit = rand(1, $iit);
            while ($jit < $iit) {
                if (rand(0, 100) < 50) {
                    $svtk = [
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1461,
                        1462,
                        1463,
                        4037,
                        4038,
                        4039,
                        4040,
                        911,
                        1172,
                        1173,
                        2142,
                        2141,
                        2143,
                        2870,
                        2144,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                        1000,
                    ];
                    $svtk = $svtk[rand(0, count($svtk) - 1)];
                    if ($svtk == 1000) {
                        mysql_query(
                            'INSERT INTO `items_local`
							( `room` , `time`,`item_id`,`data`,`tr_login`,`colvo` ) VALUES
							(
								"' . $this->users[$this->uids[$uid]]['room'] . '",
								"' . time() . '",
								"' . $svtk . '",
								"|nosale=1|srok=259200",
								"' . $this->users[$this->uids[$uid]]['login'] . '",
								"1"
							),(
								"' . $this->users[$this->uids[$uid]]['room'] . '",
								"' . time() . '",
								"' . $svtk . '",
								"|nosale=1|srok=259200",
								"' . $this->users[$this->uids[$uid]]['login'] . '",
								"1"
							),(
								"' . $this->users[$this->uids[$uid]]['room'] . '",
								"' . time() . '",
								"' . $svtk . '",
								"|nosale=1|srok=259200",
								"' . $this->users[$this->uids[$uid]]['login'] . '",
								"1"
							),(
								"' . $this->users[$this->uids[$uid]]['room'] . '",
								"' . time() . '",
								"' . $svtk . '",
								"|nosale=1|srok=259200",
								"' . $this->users[$this->uids[$uid]]['login'] . '",
								"1"
							),(
								"' . $this->users[$this->uids[$uid]]['room'] . '",
								"' . time() . '",
								"' . $svtk . '",
								"|nosale=1|srok=259200",
								"' . $this->users[$this->uids[$uid]]['login'] . '",
								"1"
							),(
								"' . $this->users[$this->uids[$uid]]['room'] . '",
								"' . time() . '",
								"' . $svtk . '",
								"|nosale=1|srok=259200",
								"' . $this->users[$this->uids[$uid]]['login'] . '",
								"1"
							)'
                        );
                    }
                    mysql_query(
                        'INSERT INTO `items_local`
						( `room` , `time`,`item_id`,`data`,`tr_login`,`colvo` ) VALUES
						(
							"' . $this->users[$this->uids[$uid]]['room'] . '",
							"' . time() . '",
							"' . $svtk . '",
							"|nosale=1|srok=259200",
							"' . $this->users[$this->uids[$uid]]['login'] . '",
							"1"
						)'
                    );
                }
                $jit++;
            }
            unset($svtk);
        } elseif ($bid == 1007) {
            //Хэллоуин, Тыквоголовый CAPITAL CITY
            $jit = 0;
            $iit = mysql_fetch_array(
                mysql_query('SELECT COUNT(*) FROM `users` WHERE `online` > ' . (time() - 120) . '')
            );
            $iit = floor($iit[0] / 20);
            $iit = rand(1, $iit);
            while ($jit < $iit) {
                if (rand(0, 100) < 50) {
                    mysql_query(
                        'INSERT INTO `items_local`
						( `room` , `time`,`item_id`,`data`,`tr_login`,`colvo` ) VALUES
						(
							"' . $this->users[$this->uids[$uid]]['room'] . '",
							"' . time() . '",
							"4504",
							"",
							"' . $this->users[$this->uids[$uid]]['login'] . '",
							"1"
						)'
                    );
                }
                $jit++;
            }
        } elseif ($bid == 1006) {
            //Трупожор CAPITAL CITY
            if (rand(0, 100) < 10) {
                mysql_query(
                    'INSERT INTO `items_local`
					( `room` , `time`,`item_id`,`data`,`tr_login`,`colvo` ) VALUES
					(
						"' . $this->users[$this->uids[$uid]]['room'] . '",
						"' . time() . '",
						"4451",
						"srok=86400",
						"' . $this->users[$this->uids[$uid]]['login'] . '",
						"1"
					)'
                );
            }
        } elseif ($bid == 1000) {
            //Трупожор CAPITAL CITY
            mysql_query(
                'INSERT INTO `items_local`
					( `room` , `time`,`item_id`,`data`,`tr_login`,`colvo` ) VALUES
					(
						"' . $this->users[$this->uids[$uid]]['room'] . '",
						"' . time() . '",
						"4460",
						"srok=2592000",
						"' . $this->users[$this->uids[$uid]]['login'] . '",
						"1"
					)'
            );
        } elseif ($bid == 1001) {
            //Трупожор CAPITAL CITY
            mysql_query(
                'INSERT INTO `items_local`
					( `room` , `time`,`item_id`,`data`,`tr_login`,`colvo` ) VALUES
					(
						"' . $this->users[$this->uids[$uid]]['room'] . '",
						"' . time() . '",
						"4461",
						"srok=2592000",
						"' . $this->users[$this->uids[$uid]]['login'] . '",
						"1"
					)'
            );
        } elseif ($bid == 1002) {
            //Трупожор CAPITAL CITY
            mysql_query(
                'INSERT INTO `items_local`
					( `room` , `time`,`item_id`,`data`,`tr_login`,`colvo` ) VALUES
					(
						"' . $this->users[$this->uids[$uid]]['room'] . '",
						"' . time() . '",
						"4462",
						"srok=2592000",
						"' . $this->users[$this->uids[$uid]]['login'] . '",
						"1"
					)'
            );
        } elseif ($bid == 1003) {
            //Трупожор CAPITAL CITY
            mysql_query(
                'INSERT INTO `items_local`
					( `room` , `time`,`item_id`,`data`,`tr_login`,`colvo` ) VALUES
					(
						"' . $this->users[$this->uids[$uid]]['room'] . '",
						"' . time() . '",
						"4463",
						"srok=2592000",
						"' . $this->users[$this->uids[$uid]]['login'] . '",
						"1"
					)'
            );
        } elseif ($bid == 1004) {
            //Трупожор CAPITAL CITY
            mysql_query(
                'INSERT INTO `items_local`
					( `room` , `time`,`item_id`,`data`,`tr_login`,`colvo` ) VALUES
					(
						"' . $this->users[$this->uids[$uid]]['room'] . '",
						"' . time() . '",
						"4459",
						"srok=2592000",
						"' . $this->users[$this->uids[$uid]]['login'] . '",
						"1"
					)'
            );
        }
        if ($exp >= 0) {
            //added if, was division by zero. 27.08.22, ins.
            $this->users[$this->uids[$uid]]['battle_exp'] += round(
                $this->stats[$this->uids[$bid]]['hpAll'] > 0 ? $exp * $this->users[$this->uids[$uid]]['battle_yron'] / $this->stats[$this->uids[$bid]]['hpAll'] : $exp * $this->users[$this->uids[$uid]]['battle_yron']
            );
            mysql_query(
                'UPDATE `stats` SET `battle_exp` =  "' . mysql_real_escape_string(
                    $this->users[$this->uids[$uid]]['battle_exp']
                ) . '" WHERE `id` = "' . mysql_real_escape_string($uid) . '" LIMIT 1'
            );
        }
        //
        if ($cr != '' && $cr > 0 && $this->stats[$this->uids[$uid]]['hpNow'] > 0) {
            mysql_query(
                'UPDATE `users` SET `money` = (`money` + ' . mysql_real_escape_string(
                    $cr
                ) . ') WHERE `id` = "' . mysql_real_escape_string($uid) . '" LIMIT 1'
            );

            $cmsg->setText("<strong>Вы получили кредиты: $cr кр.</strong>");
            $chat->sendMsg($cmsg);
        }
        //
        if ($ecr != '' && $ecr > 0 && $this->stats[$this->uids[$uid]]['hpNow'] > 0) {
            $this->users[$this->uids[$uid]]['money2'] += $ecr;
            $resulttp = mysql_query(
                'UPDATE `users` SET `money2` = (`money2` + ' . mysql_real_escape_string(
                    $ecr
                ) . ') WHERE `id` = "' . $this->users[$this->uids[$uid]]['id'] . '" LIMIT 1'
            );
            if (!$resulttp) {
                $cmsg->setText("<strong>Трупожор был пуст!</strong>");
                $chat->sendMsg($cmsg);
                $u->addDelo(
                    4, $this->users[$this->uids[$uid]]['id'],
                    '&quot;<font color="olive">System.battle</font>&quot;: (В бою трупожор), ПУСТ!!! ', time(),
                    $this->users[$this->uids[$uid]]['city'], 'System.battle', 0, 0
                );
            } else {
                $cmsg->setText("<strong>Вы получили еврокредиты: $ecr екр.</strong>");
                $chat->sendMsg($cmsg);
                $u->addDelo(
                    4, $this->users[$this->uids[$uid]]['id'],
                    '&quot;<font color="olive">System.battle</font>&quot;: Персонаж получил <strong>' . $ecr . ' ЕКР</strong> (В бою трупожор), сейчас: <strong>' . $this->users[$this->uids[$uid]]['money2'] . ' ЕКР</strong>',
                    time(), $this->users[$this->uids[$uid]]['city'], 'System.battle', 0, 0
                );
            }
        }
        if ($ico != '') {
            /*
				0(тип, 1 - значок, 2 - подвиг)@
				1(время в минутах)@
				2(название картинки)@
				3(название)@
				4(требует остаться в живых 0 или 1, либо игрок умер -1)@
				5(требует набить с ботам урона в % Например 0.001)@
				6(действия например: add_s1=5|add_hpAll=50)@
				7(Требует другой значок, название картинки)@
				8(плюсует значок 0 или 1)@
				9(удаляем прошлый значок 0 or 1)
				*/
            $i = 0;
            $txt = '';
            $ico = explode('#', $ico);
            while ($i < count($ico)) {
                $ico_e = explode('@', $ico[$i]);
                if (isset($ico_e[3])) {
                    $add = 1;
                    if ($ico_e[4] == 1 && floor($this->stats[$this->uids[$uid]]['hpNow']) < 1) {
                        $add = 0;
                    }
                    if ($add == 1) {
                        $ins = false;
                        if ($ico_e[8] == 0) {
                            $ins = true;
                            if ($ico_e[9] == 1) {
                                mysql_query(
                                    'DELETE FROM `users_ico` WHERE `uid` = "' . mysql_real_escape_string(
                                        $uid
                                    ) . '" AND `img` = "' . mysql_real_escape_string($ico_e[2]) . '"'
                                );
                            }
                        } else {
                            $old_ico = mysql_fetch_array(
                                mysql_query(
                                    'SELECT `id` FROM `users_ico` WHERE `uid` = "' . mysql_real_escape_string(
                                        $uid
                                    ) . '" AND (`endTime` > "' . time() . '" OR `endTime` = 0) AND `img` = "' . mysql_real_escape_string(
                                        $ico_e[2]
                                    ) . '" LIMIT 1'
                                )
                            );
                            if (!isset($old_ico['id'])) {
                                $ins = true;
                            } else {
                                if ($old_ico['id'] > 0) {
                                    $txt .= ', &quot;' . $ico_e[3] . ' (<small>Обновление</small>)&quot;';
                                    mysql_query(
                                        'UPDATE `users_ico` SET `x` = `x` + 1,`endTime` = "' . mysql_real_escape_string(
                                            time() + $ico_e[1] * 60
                                        ) . '" WHERE `id` = "' . $old_ico['id'] . '" LIMIT 1'
                                    );
                                } else {
                                    $ins = true;
                                }
                            }
                            unset($old_ico);
                        }
                        if ($ins) {
                            if ($ico_e[9] == 1) {
                                mysql_query(
                                    'DELETE FROM `users_ico` WHERE `uid` = "' . mysql_real_escape_string(
                                        $uid
                                    ) . '" AND `img` = "' . mysql_real_escape_string($ico_e[2]) . '"'
                                );
                            }
                            mysql_query(
                                'INSERT INTO `users_ico` (`uid`,`time`,`text`,`img`,`endTime`,`type`,`bonus`) VALUES (
									"' . mysql_real_escape_string($uid) . '",
									"' . time() . '",
									"' . mysql_real_escape_string($ico_e[3]) . '",
									"' . mysql_real_escape_string($ico_e[2]) . '",
									"' . mysql_real_escape_string(time() + $ico_e[1] * 60) . '",
									"' . mysql_real_escape_string($ico_e[0]) . '",
									"' . mysql_real_escape_string($ico_e[6]) . '"
								)'
                            );
                            $txt .= ', &quot;' . $ico_e[3] . '&quot;';
                        }
                    }
                }
                $i++;
            }
            if ($txt != '') {
                $txt = ltrim($txt, ', ');
                $cmsg->setText("<strong>Вы совершили подвиг:</strong> $txt");
                $chat->sendMsg($cmsg);
            }
        }
        if ($itm != '') {
            $i = 0;
            $txt = '';
            $itm = explode(',', $itm);
            while ($i < count($itm)) {
                $itm_e = explode('@', $itm[$i]);
                if ($itm_e[0] > 0) {
                    $j = 0;
                    while ($j < $itm_e[1]) {
                        \User\ItemsModel::addItem($itm_e[0], $uid, '|' . $itm_e[2]);
                        $j++;
                    }
                    if (!isset($this->ainm[$itm_e[0]])) {
                        $this->ainm[$itm_e[0]] = mysql_fetch_array(
                            mysql_query(
                                'SELECT `id`,`name` FROM `items_main` WHERE `id` = "' . mysql_real_escape_string(
                                    $itm_e[0]
                                ) . '" LIMIT 1'
                            )
                        );
                    }
                    if (isset($this->ainm[$itm_e[0]]['id'])) {
                        //Добавляем текст о добавлении предмета
                        $txt .= ', <strong>' . $this->ainm[$itm_e[0]]['name'] . '</strong>';
                        if ($itm_e[1] > 1) {
                            $txt .= ' <strong>(x' . $itm_e[1] . ')</strong>';
                        }
                    }
                }
                $i++;
            }
            if ($txt != '') {
                $txt = ltrim($txt, ', ');
                $cmsg->setText("<strong>Вы получили предметы:</strong> $txt");
                $chat->sendMsg($cmsg);
            }
        }
        //
    }

    //Расчет парирования игроков

    public function testPog($uid, $yr)
    {
        $yr2 = $yr;
        if ($yr > 0) {
            $testmana = false;
            global $u, $priem;
            $i = 0;
            $ypg22 = 0;
            while ($i < count($this->stats[$this->uids[$uid]]['set_pog2'])) {
                $j = $this->stats[$this->uids[$uid]]['set_pog2'][$i];
                $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data'] = str_replace(
                    'add_pog2=' . $j['y'],
                    'add_pog2=$', $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data']
                );
                $dt3 = ConversionHelper::dataStringToArray($this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data']);
                if (isset($dt3['add_pog2mp'])) {
                    $priem->minMana($uid, round(round($yr2 / 100 * (100 - $dt3['add_pog2p'])) * $dt3['add_pog2mp']));
                }
                $j['y'] -= $yr2; // осталось для поглощения
                if (isset($dt3['add_pog2p'])) {
                    $yr2 = round($yr2 / 100 * (100 - $dt3['add_pog2p']));
                }
                unset($dt3);
                if ($j['y'] < 0 || ($this->stats[$this->uids[$uid]]['mpNow'] <= 0 && $dt3['add_pog2mp'] > 0)) {
                    $dt2 = ConversionHelper::dataStringToArray($this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data']);
                    if (isset($dt2['endPog']) && $dt2['endPog'] == 1) {
                        //удаляем прием
                        $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['priem'] = mysql_fetch_array(
                            mysql_query(
                                'SELECT * FROM `priems` WHERE `id` = "' . $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['v2'] . '" LIMIT 1'
                            )
                        );
                        $this->delPriem(
                            $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1],
                            $this->users[$this->uids[$uid]], 4, $uid
                        );
                        $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1] = 'delete';
                    }
                    unset($dt2);
                    $yr2 = -($j['y']);
                    $j['y'] = 0;
                }

                $this->stats[$this->uids[$uid]]['set_pog'][$i]['y'] = $j['y'];
                $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data'] = str_replace(
                    'add_pog2=$',
                    'add_pog2=' . $j['y'], $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data']
                );
                $upd = mysql_query(
                    'UPDATE `eff_users` SET `data` = "' . $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data'] . '" WHERE `id` = "' . $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['id'] . '" LIMIT 1'
                );
                $i++;
            }
        }
        return $yr2;
    }

    //Расчет блока щитом игроков

    public function delPriem(
        $pl,
        $u1,
        $t = 1,
        $u2 = false,
        $rznm = 'Очиститься Кровью',
        $k2nm = null,
        $yrn = null,
        $yrnt = null
    )
    {
        global $u, $priem;
        if (!isset($pl['priem']['id']) || isset($this->del_val['eff'][$pl['priem']['id']])) {
            return;
        }
        if ($pl['x'] > 1) {
            $pl['name'] = $pl['name'] . ' x' . $pl['x'] . '';
        }
        if ($pl['timeUse'] == 77) {
            //завершаем прием
            mysql_query('DELETE FROM `eff_users` WHERE `id` = "' . $pl['id'] . '" LIMIT 1');
        }
        $vLog = 'time1=' . time() . '||s1=' . $u1['sex'] . '||t1=' . $u1['team'] . '||login1=' . $u1['login'] . '';
        if (isset($u2['id'])) {
            $vLog .= '||s2=' . $u2['sex'] . '||t2=' . $u2['team'] . '||login2=' . $u2['login'] . '';
        }
        $mas1 = [
            'time' => time(),
            'battle' => $this->info['id'],
            'id_hod' => $this->hodID,
            'text' => '',
            'vars' => $vLog,
            'zona1' => '',
            'zonb1' => '',
            'zona2' => '',
            'zonb2' => '',
            'type' => '1',
        ];
        if ($t == 4) {
            $mas1['id_hod']++;
            $t = 2;
        }
        if ($t == 1) {
            $mas1['id_hod']++;
            if ($pl['priem']['file'] != '0') {
                if (file_exists('../../_incl_data/class/priems/' . $pl['priem']['file'] . '.php')) {
                    require('priems/' . $pl['priem']['file'] . '.php');
                }
            } elseif ($pl['priem']['file3'] != '0') {
                if (file_exists('../../_incl_data/class/priems/' . $pl['priem']['file3'] . '.php')) {
                    require('priems/' . $pl['priem']['file3'] . '.php');
                }
            } else {
                $mas1['text'] = '{tm1} {u1} {1x16x0} прием &quot;<strong>' . $pl['name'] . '</strong>&quot;.';
                $this->del_val['eff'][$pl['priem']['id']] = true;
            }
        } elseif ($t == 2) {
            $mas1['text'] = '{tm1} У персонажа {u1} закончилось действие магии &quot;<strong>' . $pl['name'] . '</strong>&quot;.';
        } elseif ($t == 99) {
            $mas1['text'] = '{u1} Снял эфект &quot;<strong>' . $pl['name'] . '</strong>&quot; с помощью <strong>' . $rznm . '</strong> .';
        } else {
            if ($t == 100) {
                $mas1['id_hod']++;
            }
            $mas1['text'] = '{tm1} Закончилось действие эффекта &quot;<strong>' . $pl['name'] . '</strong>&quot; для {u1}.';
        }
        if ($pl['priem']['id'] != 24) {
            $this->add_log($mas1);
        }
        $this->stats[$this->uids[$pl['uid']]] = $u->getStats($pl['uid'], 0, 0, false, false, true);
    }

    //Расчет контрудара игроков

    public function priemAddLogFast($u1, $u2, $prm, $text, $hodID, $tm)
    {
        $vLog = 'prm=' . $prm . '||time1=' . $tm . '||time2=' . $tm . '||s1=' . $this->users[$this->uids[$u1]]['sex'] . '||s2=' . $this->users[$this->uids[$u2]]['sex'] . '||t2=' . $this->users[$this->uids[$u2]]['team'] . '||t1=' . $this->users[$this->uids[$u1]]['team'] . '||login1=' . $this->users[$this->uids[$u1]]['login2'] . '||login2=' . $this->users[$this->uids[$u2]]['login2'] . '';
        $mas = [
            'text' => $text,
            'time' => time(),
            'vars' => '',
            'battle' => $this->info['id'],
            'id_hod' => ($this->hodID + $hodID),
            'vars' => $vLog,
            'type' => 1,
        ];
        $this->add_log($mas);
    }

    //Выделение из лог текста

    public function yronGetrazmenStats($s, $z)
    {
        global $u;
        /*
			1     - шлем
			2     - наручи
			3     - оружие (правая рука)
			4     - рубаха
			5     - броня
			6     - плащ
			7     - пояс
			8     - серьги
			9     - амулет
			10-12 - кольца
			13    - перчатки
			14    - оружие / щит (левая рука)
			16    - поножи
			17    - ботинки
			*/
        $zi = [ //Предметы влияющие на зоны
            1 => [1, 8, 9, 52], //голова
            2 => [4, 5, 6], //грудь
            3 => [2, 4, 5, 6, 13], //живот
            4 => [7, 16, 10, 11, 12], //пояс
            5 => [17],  //ноги
        ];
        $zi = $zi[$z];
        $i = 0;
        while ($i < count($zi)) {
            $t = $u->items['add'];
            $ii = 0;
            while ($ii < count($s['items'])) {
                if (isset($s['items'][$ii]) && $s['items'][$ii]['inOdet'] == $zi[$i]) {
                    $po = ConversionHelper::dataStringToArray($s['items'][$ii]['data']);
                    $x = 0;
                    while ($x < count($t)) {
                        $n = $t[$x];
                        if (isset($po['sv_' . $n])) {
                            $s[$n] += $po['sv_' . $n];
                            if ($n == 'za') {
                                $iii = 1;
                                while ($iii <= 4) {
                                    $s['za' . $iii] += $po['sv_' . $n];
                                    $iii++;
                                }
                            } elseif ($n == 'zm') {
                                $iii = 1;
                                while ($iii <= 4) {
                                    $s['zm' . $iii] += $po['sv_' . $n];
                                    $iii++;
                                }
                            } elseif ($n == 'zma') {
                                $iii = 1;
                                while ($iii <= 7) {
                                    $s['zma' . $iii] += $po['sv_' . $n];
                                    $iii++;
                                }
                            }
                        }
                        $x++;
                    }
                }
                $ii++;
            }
            $i++;
        }
        return $s;
    }

    //Добавляем статистику

    /**
     * Трогать очень осторожно. Этот шайтан как-то проверяет приёмы на враге
     * и рассчитывает урон учитывая и эти приёмы тоже.
     * @param $uid1
     * @param $uid2
     * @param $priem
     * @param $yron
     * @param $profil
     * @param $stabil
     * @param $test
     * @param $inlog
     * @return float|int|mixed
     */
    public function testYronPriem($uid1, $uid2, $priem, $yron, $profil, $stabil, $test = false, $inlog = 0)
    {
        /*
				profil = {
					-1 - урон оружием
					-2 - урон магией
					 0 - неизвестно
					 1-4  - профильный оружия
					 5-12 - профильный магия
				}
				stabil - урон не подвержен мощностям и т.д
        */
        //Проверка
        $a = 1;
        $b = 2;
        $u1 = $uid1;
        $u2 = $uid2;

        //Проверяем приемы защиты игрока $u1 на урон игрока $u2
        //Получаем приемы и смотрим когда какой действует
        if (!isset($this->stats[$this->uids[$u2]]['u_priem'])) {
            $eff = $this->stats[$this->uids[$u2]]['effects'];
            $j = 0;
            while ($j <= count($eff)) {
                if (isset($eff[$j]) && $eff[$j]['id_eff'] == 22 && $eff[$j]['v1'] == 'priem' && $eff[$j]['v2'] > 0) {
                    $this->stats[$this->uids[$u2]]['u_priem'][] = [
                        $j,
                        $eff[$j]['v2'],
                        $this->prm[$eff[$j]['v2']]['act'],
                        $eff[$j]['id'],
                        $this->prm[$eff[$j]['v2']]['type_of'],
                        $this->prm[$eff[$j]['v2']]['moment'],
                    ];
                }
                $j++;
            }
            unset($eff);
        }
        //Приемы защиты
        $j = 0;
        while ($j <= count($this->stats[$this->uids[$u2]]['u_priem'])) {
            if ($this->stats[$this->uids[$u2]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u2]]['u_priem'][$j][4] == 4) {
                if (file_exists(
                    '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u2]]['u_priem'][$j][1] . '.php'
                )) {
                    $pr_momental_this = $u2;
                    require('priem/' . $this->stats[$this->uids[$u2]]['u_priem'][$j][1] . '.php');
                    $yron = $fx_moment($u2, $u1, $j, $yron, $profil);
                    unset(${'fx_moment'});
                }
            }
            $j++;
        }

        //Прочие приемы
        $j = 0;
        while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
            if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 5) {
                if (file_exists(
                    '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                )) {
                    $pr_momental_this = $u1;
                    require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                    if (isset($fx_moment)) {
                        $yron = $fx_moment($u1, $u2, $j, $yron, $profil, $inlog);
                    }
                    unset(${'fx_moment'});
                }
            }
            $j++;
        }

        //Прочие приемы (влияет на урон от моментальных приемов)
        $j = 0;
        while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
            if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][7] == 5) {
                if (file_exists(
                    '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                )) {
                    $pr_momental_this_seven = $u1;
                    require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                    if (isset($fx_moment_seven)) {
                        $yron = $fx_moment_seven($u1, $u2, $j, $yron, $profil, $inlog);
                    }
                    unset(${'fx_moment_seven'});
                }
            }
            if ($this->stats[$this->uids[$u1]]['u_priem'][$j][1] == 180) {
                // Переохлаждение (снижает урон на 10%). Пан или пропал.
                $x = Db::getValue('select x from eff_users where v2 = 180 and uid = ?', [$u1]);
                $yron = 0.1 * $x;
            }
            $j++;
        }

        //Прочие приемы
        $j = 0;
        while ($j <= count($this->stats[$this->uids[$u2]]['u_priem'])) {
            if ($this->stats[$this->uids[$u2]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u2]]['u_priem'][$j][4] == 8) {
                if (file_exists(
                    '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u2]]['u_priem'][$j][1] . '.php'
                )) {
                    $pr_momental_this = $u2;
                    require('priem/' . $this->stats[$this->uids[$u2]]['u_priem'][$j][1] . '.php');
                    if (isset($fx_moment)) {
                        $yron = $fx_moment($u2, $u1, $j, $yron, $profil, $inlog);
                    }
                    unset(${'fx_moment'});
                }
            }
            if ($this->stats[$this->uids[$u2]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u2]]['u_priem'][$j][4] == 9) {
                if (file_exists(
                    '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u2]]['u_priem'][$j][1] . '.php'
                )) {
                    $pr_momental_this = $u2;
                    require('priem/' . $this->stats[$this->uids[$u2]]['u_priem'][$j][1] . '.php');
                    if (isset($fx_moment)) {
                        $yron = $fx_moment($u2, $u1, $j, $yron, $profil, $inlog);
                    }
                    unset(${'fx_moment'});
                }
            }
            $j++;
        }

        if ($this->stats[$this->uids[$u2]]['zaproc'] > 0) {
            $yron = round($yron - $yron * $this->stats[$this->uids[$uid2]]['zaproc'] / 100);
            if ($yron < 1) {
                $yron = 1;
            }
        }
        return $yron;
    }

    public function priemYronSave($u1, $u2, $yron, $type)
    {
        //$type 0 - урон , 1 - хил

        $this->testUserInfoBattle($u1);
        $this->testUserInfoBattle($u2);

        if (isset($this->uids[$u1])) {
            if ($this->stats[$this->uids[$u2]]['hpAll'] <= 1000) {
                $adt6 = round(0.1 * (floor($yron) / $this->stats[$this->uids[$u2]]['hpAll'] * 100), 10);
            } else {
                $adt6 = round(0.1 * (floor($yron) / 1000 * 100), 10);
            }

            if ($yron > $this->stats[$this->uids[$u2]]['hpNow']) {
                $yron = $this->stats[$this->uids[$u2]]['hpNow'];
            }

            if ($yron > 0) {
                $this->users[$this->uids[$u1]]['battle_yron'] += $yron;
                $this->users[$this->uids[$u1]]['battle_exp'] += round(
                    $this->testExp($yron, $this->stats[$this->uids[$u2]])
                );
                if ($this->stats[$this->uids[$u2]]['this_animal'] == 0) {
                    $this->users[$this->uids[$u1]]['tactic6'] += $adt6;
                    $this->stats[$this->uids[$u1]]['tactic6'] += $adt6;
                } else {
                    $this->users[$this->uids[$u1]]['tactic6'] += $adt6 / 3;
                    $this->stats[$this->uids[$u1]]['tactic6'] += $adt6 / 3;
                }
            } else {
                $adt6 = 0;
            }
            //
            $this->users[$this->uids[$u2]]['last_hp'] = -$yron;
            //
            mysql_query(
                'UPDATE `stats` SET	
					`tactic6`	  = `tactic6` + "' . $adt6 . '",
					`battle_yron` = `battle_yron` + "' . $yron . '",
					`battle_exp`  = `battle_exp` + "' . round(
                    $this->testExp($yron, $this->stats[$this->uids[$u2]])
                ) . '"					
				WHERE `id` = "' . $u1 . '" LIMIT 1'
            );
            //
            mysql_query(
                'UPDATE `stats` SET	
					`last_hp` 	  = "' . $this->users[$this->uids[$u2]]['last_hp'] . '"					
				WHERE `id` = "' . $u2 . '" LIMIT 1'
            );
        }
        $this->addNewStat(
            [
                1 => [
                    'battle' => $this->info['id'],
                    'uid1' => $this->users[$this->uids[$u1]]['id'],
                    'uid2' => $this->users[$this->uids[$u2]]['id'],
                    'time' => time(),
                    'type' => 0,
                    'a' => '10000',
                    'b' => 0,
                    'type_a' => 1,
                    'type_b' => 0,
                    'ma' => 1,
                    'mb' => 1,
                    'yrn' => $yron,
                    'yrn_krit' => 0,
                    'tm1' => $this->users[$this->uids[$u1]]['team'],
                    'tm2' => $this->users[$this->uids[$u2]]['team'],
                ],
            ]
        );
    }

    //Добавляем статистику ударов

    public function testUserInfoBattle($uid)
    {
        global $u;
        if (!isset($this->uids[$uid])) {
            //Заносим данные об игроке снова (видимо он погиб и его стерло с инфо)
            if (!isset($this->uids[$uid])) {
                $this->uids[$uid] = count($this->users);
            }
            $this->users[$this->uids[$uid]] = mysql_fetch_array(
                mysql_query(
                    'SELECT
								
				`u`.`id`,`u`.`login`,`u`.`login2`,`u`.`online`,`u`.`admin`,`u`.`city`,`u`.`cityreg`,`u`.`align`,`u`.`align_lvl`,`u`.`align_exp`,`u`.`clan`,
				`u`.`level`,`u`.`money`,`u`.`money3`,`u`.`money2`,`u`.`money4`,`u`.`battle`,`u`.`sex`,`u`.`obraz`,`u`.`win`,`u`.`win_t`,
				`u`.`lose`,`u`.`lose_t`,`u`.`nich`,`u`.`timeMain`,`u`.`invis`,`u`.`bot_id`,`u`.`animal`,`u`.`type_pers`,
				`u`.`notrhod`,`u`.`bot_room`,`u`.`inUser`,`u`.`inTurnir`,`u`.`inTurnirnew`,`u`.`stopexp`,`u`.`real`,
										
				`st`.*				
				
				FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON (`u`.`id` = `st`.`id`) WHERE `u`.`id` = "' . $uid . '" LIMIT 1'
                )
            );
            $this->stats[$this->uids[$uid]] = $u->getStats($this->users[$this->uids[$uid]], 0, 0, false, false, true);
        }
    }

    //Добавляем размены в лог

    public function hpSee($now, $all, $type = 1): string
    {
        $r = '[' . $now . '/' . $all . ']';
        if ($all > 10000) {
            $type = 2;
        }
        if ($type == 2) {
            $p1 = floor($now / $all * 100);
            $r = '[' . $p1 . '/100%]';
        }
        return $r;
    }

    //Добавляем в лог действия приема

    public function lookLog(): string
    {
        global $c, $u, $log_text;
        $hodID = mysql_fetch_array(
            mysql_query(
                'SELECT `id`,`id_hod` FROM `battle_logs` WHERE `battle` = "' . $this->info['id'] . '" ORDER BY `time` ASC LIMIT 1'
            )
        );
        if ($hodID['id_hod'] <= 1) {
            $u->info['alog'] = 0;
        }
        if (isset($hodID['id']) && $this->info['team_win'] != -1) {
            $hodID = mysql_fetch_array(
                mysql_query(
                    'SELECT `id` FROM `battle_logs_save` WHERE `battle` = "' . $this->info['id'] . '" ORDER BY `time` ASC LIMIT 1'
                )
            );
        }
        $hodID = $hodID['id'] ?? 0;

        $updt = 0;
        $js = '';
        $pll = 0;
        if ($_POST['idlog'] < 1) {
            $_POST['idlog'] = 0;
        }
        $talog = mysql_fetch_array(
            mysql_query('SELECT `alog` FROM `stats` WHERE `id` = "' . $u->info['id'] . '" LIMIT 1')
        );
        $sp = mysql_query(
            'SELECT 
            `id`,`type`,`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zona2`,`zonb1`,`zonb2`
            FROM `battle_logs` 
            WHERE `battle` = "' . $this->info['id'] . '" AND `id_hod` >= ' . $talog['alog'] . ' ORDER BY `id` DESC'
        );
        if (isset($sp) && $this->info['team_win'] != -1) {
            $sp = mysql_query(
                'SELECT 
            `id`,`type`,`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zona2`,`zonb1`,`zonb2`
            FROM `battle_logs_save`
            WHERE `battle` = "' . $this->info['id'] . '" AND `id_hod` >= ' . $talog['alog'] . ' ORDER BY `id` DESC'
            );
        }
        $jin = 0;
        $forYou2 = 0;
        if (is_array($sp)) {
            while ($pl = mysql_fetch_array($sp)) {
                if ($jin == 0) {
                    $u->info['alog'] = $pl['id_hod'];
                }
                $jin++;

                $rt = $pl['text'];
                $pl['vars'] = str_replace('^^^^', 'rvnO', $pl['vars']);
                $rt = str_replace(
                    '{tm1}', '<span class=\"date {fru}\">' . date('H:i', $pl['time']) . '</span>',
                    $rt
                );
                $rt = str_replace(
                    '{tm2}', '<span class=\"date {fru}\">' . date('H:i', $pl['time']) . '</span>',
                    $rt
                );
                $rt = str_replace(
                    '{tm3}',
                    '<span class=\"date {fru}\">' . date('d.m.Y H:i', $pl['time']) . '</span>', $rt
                );
                $rt = str_replace(
                    '{tm4}',
                    '<span class=\"date {fru}\">' . date('d.m.Y H:i', $pl['time']) . '</span>', $rt
                );
                $pl['text'] = $rt;

                unset($rt);
                if ($pll < $pl['id']) {
                    $pll = $pl['id'];
                }
                $js = 'add_log(' . $pl['id'] . ',' . $forYou2 . ',"' . $pl['text'] . '",' . $pl['id_hod'] . ',0,0,"' . str_replace(
                        '"',
                        '&quot;', $pl['vars']
                    ) . '");' . $js;
            }
        }
        mysql_query(
            'UPDATE `stats` SET `alog`="' . $u->info['alog'] . '" WHERE `id` ="' . $u->info['id'] . '" LIMIT 1'
        );
        $js .= 'id_log=' . $pll . ';';
        return $js;
    }

    //Добавляем в лог действия приема (без атаки)

    public function lookmLog(): string
    {
        global $c, $u, $log_text;
        $js = '';
        $pll = 0;

        if ($this->info['type'] != 9) {
            $hodID = mysql_fetch_array(
                mysql_query(
                    'SELECT `id`,`id_hod` FROM `battle_logs` WHERE `battle` = "' . $this->info['id'] . '" ORDER BY `time` ASC LIMIT 1'
                )
            );
            if ($hodID['id_hod'] <= 1) {
                $u->info['mlog'] = 0;
            }
            if (isset($hodID['id']) && $this->info['team_win'] != -1) {
                $hodID = mysql_fetch_array(
                    mysql_query(
                        'SELECT `id` FROM `battle_logs_save` WHERE `battle` = "' . $this->info['id'] . '" ORDER BY `time` ASC LIMIT 1'
                    )
                );
            }
            $hodID = $hodID['id'] ?? 0;
            $tmlog = mysql_fetch_array(
                mysql_query('SELECT `mlog` FROM `stats` WHERE `id` = "' . $u->info['id'] . '" LIMIT 1')
            );
            $spm = mysql_query(
                'SELECT 
				`id`,`type`,`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zona2`,`zonb1`,`zonb2`
				FROM `battle_logs` 
				WHERE `battle` = "' . $this->info['id'] . '" AND `id_hod` >= ' . $tmlog['mlog'] . ' AND `vars` LIKE "%' . $u->info['login'] . '%" ORDER BY `id` DESC'
            );

            if (isset($spm) && $this->info['team_win'] != -1) {
                $spm = mysql_query(
                    'SELECT 
				`id`,`type`,`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zona2`,`zonb1`,`zonb2`
				FROM `battle_logs_save` 
				WHERE `battle` = "' . $this->info['id'] . '" AND `id_hod` >= ' . $tmlog['mlog'] . ' AND `vars` LIKE "%' . $u->info['login'] . '%" ORDER BY `id` DESC'
                );
            }

            $jin = 0;
            $forYou2 = 0;
            if (is_array($spm)) {
                while ($plm = mysql_fetch_array($spm)) {
                    if ($jin == 0) {
                        $u->info['mlog'] = $plm['id_hod'];
                    }
                    $jin++;
                    $rt = $plm['text'];
                    $plm['vars'] = str_replace('^^^^', 'rvnO', $plm['vars']);
                    $rt = str_replace(
                        '{tm1}', '<span class=\"date {fru}\">' . date('H:i', $plm['time']) . '</span>', $rt
                    );
                    $rt = str_replace(
                        '{tm2}', '<span class=\"date {fru}\">' . date('H:i', $plm['time']) . '</span>', $rt
                    );
                    $rt = str_replace(
                        '{tm3}', '<span class=\"date {fru}\">' . date('d.m.Y H:i', $plm['time']) . '</span>',
                        $rt
                    );
                    $rt = str_replace(
                        '{tm4}', '<span class=\"date {fru}\">' . date('d.m.Y H:i', $plm['time']) . '</span>',
                        $rt
                    );
                    $plm['text'] = $rt;
                    unset($rt);
                    if ($pll < $plm['id']) {
                        $pll = $plm['id'];
                    }
                    $js = 'add_mlog(' . $plm['id'] . ',' . $forYou2 . ',"' . $plm['text'] . '",' . $plm['id_hod'] . ',0,0,"' . str_replace(
                            '"',
                            '&quot;', $plm['vars']
                        ) . '");' . $js;
                }
            }
            $js .= 'id_mlog=' . $pll . ';';
            mysql_query(
                'UPDATE `stats` SET `mlog`="' . $u->info['mlog'] . '" WHERE `id` ="' . $u->info['id'] . '" LIMIT 1'
            );
        }
        return $js;
    }

    //Считаем контру

    public function weaponAt($item, $st, $x): int
    {
        $tp = 0;
        $tp20 = 0;
        if (isset($item['id'])) {
            $itm = \Core\ConversionHelper::dataStringToArray($item['data']);
            //начинаем расчет урона
            $min = $itm['sv_yron_min'] + $itm['yron_min'] + $st['minAtack'];
            $max = $itm['sv_yron_max'] + $itm['yron_max'] + $st['maxAtack'];
            if ($x != 0) {
                /*
					Колющий - 60% Силы и 40% Ловкости.
					Рубящий - 70% Силы 20% Ловкости и 20% Интуиции.
					Дробящий - 100% Силы.
					Режущий - 60% Силы и 40% Интуиции.
					*/
                //Тип урона: 0 - нет урона, 1 - колющий, 2 - рубящий, 3 - дробящий, 4 - режущий, 5 - огонь, 6 - воздух, 7 - вода, 8 - земля, 9 - свет, 10 - тьма, 11 - серая
                if ($x == 1) {
                    //колющий
                    $wst = $st['s2'] * 1;
                    $min += 5 + (ceil($wst * 1.4) / 1.25) + $st['minAtack'];
                    $max += 7 + (ceil(0.4 + $min / 0.9) / 1.25) + $st['maxAtack'];
                    $tp20 = 1;
                } elseif ($x == 2) {
                    //рубящий
                    $wst = $st['s1'] * 0.75;
                    $min += 5 + (ceil($wst * 1.4) / 1) + $st['minAtack'];
                    $max += 7 + (ceil(0.4 + $min / 0.9) / 1.25) + $st['maxAtack'];
                    $tp20 = 2;
                } elseif ($x == 3) {
                    //дробящий
                    $wst = $st['s4'] * 1.5;
                    $min += 5 + (ceil($wst * 1.4) / 1.25) + $st['minAtack'];
                    $max += 7 + (ceil(0.4 + $min / 0.9) / 1.25) + $st['maxAtack'];
                    $tp20 = 3;
                } elseif ($x == 4) {
                    //режущий
                    $wst = $st['s3'] * 1;
                    $min += 5 + (ceil($wst * 1.4) / 1.25) + $st['minAtack'];
                    $max += 7 + (ceil(0.4 + $min / 0.9) / 1.25) + $st['maxAtack'];
                    $tp20 = 4;
                } elseif ($x >= 5 && $x <= 22) {
                    //урон магии и магии стихий
                    $wst = $st['s1'] * 0.01 + $st['s2'] * 0.01 + $st['s3'] * 0.01 + $st['s5'] * 0.06;
                    $min += 3 + (ceil($wst * 1.4) / 2.25) + $st['minAtack'];
                    $max += 5 + (ceil(0.4 + $min / 0.9) / 2.25) + $st['maxAtack'];
                    $tp20 = 5;
                }

                $wst = ($st['s1'] * 0.02 + $st['s2'] * 0.02 + $st['s3'] * 0.05);
                $min1 = -2 + ceil($wst * 1.4) / 1.25;
                $max1 = 4 + ceil(0.4 + $min1 / 0.9) / 1.25;

                $min = round(($min + $min1));
            }
            $tp = rand(($min + $max) / 3.5, (($min + $max) / 3.5 + (($min + $max) / 3.5) / 100 * 7));
        }
        return $tp;
    }


    //Расчитываем статы для конкретной зоны атаки

    public function weaponAt22($item, $st): array
    {
        $min = 0;
        $max = 0;
        if (isset($item['id'])) {
            $itm = \Core\ConversionHelper::dataStringToArray($item['data']);
            //начинаем расчет урона
            $min = $itm['sv_yron_min'] + $itm['yron_min'] + $st['minAtack'];
            $max = $itm['sv_yron_max'] + $itm['yron_max'] + $st['maxAtack'];
        }
        return [$min, $max];
    }

    //Расчитываем ед. урона

    public function form_mf($u, $au): float
    {
        $v = $u * 5.1 - $au * 5.1;
        if ($v < 0) {
            $v = 0;
        }
        $r = (1 - (pow(99 / 100, (($v) / 100)))) * 100;
        return round($r);
    }

    //Считаем урон

    public function autoSmena()
    {
        global $u;
        $ms = [];
        $ms_all = [];
        $ms_ansf = [];
        $i = 0;
        $j = 0;
        $z = 0;
        while ($i < count($this->users)) {
            if (isset($this->users[$i]) && $this->users[$i]['id'] != $u->info['id'] && $this->users[$i]['team'] != $u->info['team'] && $this->stats[$i]['hpNow'] > 0 && -($u->info['enemy']) != $this->users[$i]['id']) {
                if (!isset($this->ga[$u->info['id']][$this->users[$i]['id']])) {
                    $ms[$j] = $this->users[$i]['id'];
                    $j++;
                }
                if (!isset($this->uids[(-($u->info['enemy']))])) {
                    $ms_all[] = $this->users[$i]['id'];
                }
                if (isset($this->ga[$this->users[$i]['id']][$u->info['id']])) {
                    $ms_ansf[$z] = $this->users[$i]['id'];
                    $z++;
                }
            }
            $i++;
        }
        $msh = [];
        if ($j == 0 && $z == 0) {
            $enemydie = 0;
            if (isset($this->stats[$this->uids[$u->info['enemy']]])) {
                $u->info['enemy'] = 0;
                $enemydie = 1;
            }
            if ((!isset($this->uids[(-($u->info['enemy']))]) || $this->stats[$this->uids[(-($u->info['enemy']))]]['hpNow'] < 1) && ($u->info['enemy'] < 0 || $enemydie == 1)) {
                $i = 0;
                $j = 0;
                while ($i < count($this->users)) {
                    if (isset($this->users[$i]) && $this->users[$i]['id'] != $u->info['id'] && $this->users[$i]['team'] != $u->info['team'] && $this->stats[$i]['hpNow'] >= 1 && -($u->info['enemy']) != $this->users[$i]['id']) {
                        $ms[$j] = $this->users[$i]['id'];
                        $msh[$ms[$j]] = true;
                        $j++;
                    }
                    $i++;
                }
            }
        }

        $ms = $ms[rand(0, $j - 1)];
        $ms_ansf = $ms_ansf[rand(0, $z - 1)];
        if ($z > 0) {
            $this->smena($ms_ansf, true);
        } elseif ($j > 0) {
            if (isset($msh[$ms])) {
                $this->smena($ms, true, true);
            } else {
                $this->smena($ms, true);
            }
        } else {
            if ($u->info['enemy'] < 0) {
                $smnr5 = $this->smena(-($u->info['enemy']), true);
                unset($smnr5);
            }
        }
    }

    //Обновление здоровья

    public function smena($uid, $auto = false, $lastdie = false)
    {
        global $u;
        if ((!$auto && $u->info['smena'] > 0) || $auto) {
            if ($this->stats[$this->uids[$u->info['id']]]['hpNow'] >= 1) {
                if (isset($this->uids[$uid]) && $uid != $u->info['id'] && $this->users[$this->uids[$uid]]['team'] != $this->users[$this->uids[$u->info['id']]]['team']) {
                    if (!isset($this->ga[$u->info['id']][$uid]) || $lastdie) {
                        if (ceil($this->stats[$this->uids[$uid]]['hpNow']) >= 1) {
                            //меняем противника
                            if (!$auto) {
                                $u->info['smena']--;
                            }
                            $upd = mysql_query(
                                'UPDATE `stats` SET `enemy` = "' . $uid . '",`smena` = "' . $u->info['smena'] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'
                            );
                            $u->info['enemy'] = $uid;
                            $this->users[$this->uids[$uid]]['smena'] = $u->info['smena'];
                            $this->users[$this->uids[$u->info['id']]]['enemy'] = $uid;
                            return 1;
                        } else {
                            return 'Нельзя сменить, противник уже мертв';
                        }
                    } else {
                        return 'Нельзя сменить на выбранную цель!';
                    }
                } else {
                    return 'Нельзя сменить на выбранную цель []';
                }
            } else {
                return 'Для вас поединок закончен, ожидайте пока завершат другие...';
            }
        } else {
            return 'У вас закончились смены противника';
        }
    }

    //Добавляем новую статистику игрока

    public function testActions()
    {
        //проверяем удары
        $m = mysql_query('SELECT * FROM `battle_act` WHERE `battle` = "' . $this->info['id'] . '" ORDER BY `id` ASC');
        $i = 0;
        $botA = [];
        $botR = [];
        while ($pl = mysql_fetch_array($m)) {
            $pluids = mysql_fetch_array(
                mysql_query(
                    'SELECT `hpNow` FROM `stats` WHERE (`id` = "' . $pl['uid1'] . '"  AND `hpNow` <= 0) OR (`id` = "' . $pl['uid2'] . '" AND `hpNow` <= 0) LIMIT 1'
                )
            );
            $pltest = mysql_fetch_array(
                mysql_query('SELECT * FROM `battle_act`  WHERE `id` = "' . $pl['id'] . '" LIMIT 1')
            );
            if (isset($pltest['id'])) {
                if (isset($pluids['hpNow'])) {
                    mysql_query('DELETE FROM `battle_act` WHERE `id` = "' . $pl['id'] . '" LIMIT 1');
                } elseif ($pl['time'] + $this->info['timeout'] > time()) {
                    //удар не пропущен по тайму, просто заносим данные
                    $this->atacks[$pl['id']] = $pl;
                    $this->ga[$pl['uid1']][$pl['uid2']] = $pl['id'];
                    $this->ag[$pl['uid2']][$pl['uid1']] = $pl['id'];
                    if (isset($this->iBots[$pl['uid1']])) {
                        //ударил бот и нет ответа
                        $botA[$pl['uid1']] = $pl['id'];
                    } elseif (isset($this->iBots[$pl['uid2']])) {
                        //ударили бота и он не ответил
                        $botR[$pl['uid2']] = $pl['id'];
                        if ($this->users[$this->uids[$pl['uid2']]]['timeGo'] < time()) {
                            $this->botAtack($pl['uid1'], $pl, 2);
                        }
                    }
                } else {
                    //пропуск по тайму
                    $pl['time'] = time();
                    if ($pl['a1'] == 0 && $pl['a2'] == 0) {
                        //игрок 1 пропустил по тайму
                        $pl['out1'] = time();
                        $pl['tout1'] = 1;
                        //игрок 2 пропустил по тайму
                        $pl['out2'] = time();
                        $pl['tout2'] = 1;
                    } elseif ($pl['a1'] == 0) {
                        //игрок 1 пропустил по тайму
                        $pl['out1'] = time();
                        $pl['tout1'] = 1;
                    } elseif ($pl['a2'] == 0) {
                        //игрок 2 пропустил по тайму
                        $pl['out2'] = time();
                        $pl['tout2'] = 1;
                    }
                    //наносим удар по пропуску
                    $this->atacks[$pl['id']] = $pl;
                    $this->startAtack($pl['id']);
                    mysql_query('DELETE FROM `battle_act` WHERE `id` = "' . $pl['id'] . '"');
                }
            }
        }
        //тест удара
        if ($this->uAtc['id'] > 0 && $this->na == 1) {
            if ($pl['out1'] == 0 && $pl['out2'] == 0) {
                //Может разменяться только тот кто бил
                if ($pl['uid1'] == $u->info['id'] || $pl['uid2'] == $u->info['id']) {
                    $this->addNewAtack();
                }
            } else {
                $this->addNewAtack();
            }
        }
        //тест, бот делает удары
        while ($i < count($this->bots)) {
            $bot = $this->bots[$i];
            if (isset($bot) && $this->stats[$this->uids[$bot]]['hpNow'] >= 1 && $this->stats[$this->uids[$bot]]['pass'] != 'saintlucia') { //Тут проверка на бота saintlucia
                $j = 0;
                while ($j < count($this->users)) {
                    if ($this->info['razdel'] == 0) {
                        $tnbot = time() + rand(1, 1);
                    } else {
                        $tnbot = time() + rand(1, 2);
                    }
                    if ($this->users[$j]['timeGo'] < time() && $this->users[$this->uids[$bot]]['timeGo'] < time()) {
                        if ($this->users[$j]['hpNow'] >= 1 && $this->users[$this->uids[$bot]]['hpNow'] >= 1 && $this->users[$this->uids[$bot]]['team'] != $this->users[$j]['team']) {
                            if (isset($this->users[$j]) && $this->stats[$j]['hpNow'] >= 1 && $this->stats[$this->uids[$bot]]['hpNow'] >= 1 && !isset($this->ga[$bot][$this->users[$j]['id']]) && !isset($this->ag[$bot][$this->users[$j]['id']]) && $this->users[$j]['id'] != $bot && $this->users[$j]['team'] != $this->users[$this->uids[$bot]]['team']) {
                                if ($this->users[$j]['timeGo'] < time() && $this->users[$this->uids[$bot]]['timeGo'] < time()) {
                                    $this->botAtack($this->users[$j]['id'], $bot, 1);
                                    mysql_query(
                                        'UPDATE `stats` SET `timeGo` = "' . $tnbot . '" WHERE `id` = "' . $this->users[$this->uids[$bot]]['id'] . '" LIMIT 1'
                                    );
                                }
                            } elseif (isset($this->users[$i]) && $this->users[$i]['bot'] > 0 && $this->stats[$i]['hpNow'] >= 1 && $this->stats[$this->uids[$bot]]['hpNow'] >= 1 && $this->users[$i]['id'] != $bot && $this->users[$i]['team'] != $this->users[$this->uids[$bot]]['team']) {
                                if ($this->users[$j]['timeGo'] < time() && $this->users[$this->uids[$bot]]['timeGo'] < time() && $this->botAct($bot)) {
                                    if (!isset($this->ga[$bot][$this->users[$i]['id']]) && $this->users[$this->uids[$bot]]['timeGo'] < time() && !isset($this->ag[$bot][$this->users[$i]['id']])) {
                                        $this->botAtack($this->users[$i]['id'], $bot, 1);
                                        mysql_query(
                                            'UPDATE `stats` SET `timeGo` = "' . $tnbot . '" WHERE `id` = "' . $this->users[$this->uids[$bot]]['id'] . '" LIMIT 1'
                                        );
                                    } elseif (!isset($this->ag[$bot][$this->users[$i]['id']]) && isset($this->ga[$bot][$this->users[$i]['id']]) && $this->users[$this->uids[$bot]]['timeGo'] < time()) {
                                        $this->botAtack($bot, $this->users[$i]['id'], 1);
                                        mysql_query(
                                            'UPDATE `stats` SET `timeGo` = "' . $tnbot . '" WHERE `id` = "' . $this->users[$this->uids[$bot]]['id'] . '" LIMIT 1'
                                        );
                                    }
                                }
                            } else {
                                //Удары между ботами
                                if ($this->users[$j]['timeGo'] < time() && $this->users[$this->uids[$bot]]['timeGo'] < time() && $this->users[$j]['hpNow'] >= 1 && $this->users[$this->uids[$bot]]['hpNow'] >= 1) {
                                    $this->atacks[$this->ga[$bot][$this->users[$j]['id']]]['a1'] = rand(
                                            1, 5
                                        ) . '' . rand(
                                            1,
                                            5
                                        ) . rand(1, 5) . rand(1, 5) . rand(1, 5);
                                    $this->atacks[$this->ga[$bot][$this->users[$j]['id']]]['b1'] = rand(1, 5);
                                    $this->atacks[$this->ga[$bot][$this->users[$j]['id']]]['a2'] = rand(
                                            1, 5
                                        ) . '' . rand(
                                            1,
                                            5
                                        ) . rand(1, 5) . rand(1, 5) . rand(1, 5);
                                    $this->atacks[$this->ga[$bot][$this->users[$j]['id']]]['b2'] = rand(1, 5);
                                    $this->atacks[$this->ag[$bot][$this->users[$j]['id']]]['a1'] = rand(
                                            1, 5
                                        ) . '' . rand(
                                            1,
                                            5
                                        ) . rand(1, 5) . rand(1, 5) . rand(1, 5);
                                    $this->atacks[$this->ag[$bot][$this->users[$j]['id']]]['b1'] = rand(1, 5);
                                    $this->atacks[$this->ag[$bot][$this->users[$j]['id']]]['a2'] = rand(
                                            1, 5
                                        ) . '' . rand(
                                            1,
                                            5
                                        ) . rand(1, 5) . rand(1, 5) . rand(1, 5);
                                    $this->atacks[$this->ag[$bot][$this->users[$j]['id']]]['b2'] = rand(1, 5);
                                    if (isset($this->ga[$bot][$this->users[$j]['id']]) && $this->users[$j]['bot'] > 0) {
                                        if ($this->users[$j]['timeGo'] < time() && $this->users[$this->uids[$bot]]['timeGo'] < time()) {
                                            $tnbot = time() + rand(3, 7);
                                            if ($this->info['type'] == 329) { // тестовый бой
                                                $tnbot = time() - 1;
                                            }
                                            $this->startAtack($this->ga[$bot][$this->users[$j]['id']]);
                                            $this->users[$this->uids[$bot]]['timeGo'] = $tnbot;
                                            mysql_query(
                                                'UPDATE `stats` SET `timeGo` = "' . $tnbot . '" WHERE `id` = "' . $this->users[$this->uids[$bot]]['id'] . '" LIMIT 1'
                                            );
                                        }
                                    } elseif (isset($this->ag[$bot][$this->users[$j]['id']]) && $this->users[$j]['bot'] > 0) {
                                        if ($this->users[$this->uids[$bot]]['timeGo'] < time() && $this->users[$j]['timeGo'] < time()) {
                                            $this->startAtack($this->ag[$bot][$this->users[$j]['id']]);
                                            $tnbot = time() + rand(3, 7);
                                            if ($this->info['type'] == 329) { // тестовый бой
                                                $tnbot = time() - 1;
                                            }
                                            $this->users[$this->uids[$bot]]['timeGo'] = $tnbot;
                                            mysql_query(
                                                'UPDATE `stats` SET `timeGo` = "' . $tnbot . '" WHERE `id` = "' . $this->users[$this->uids[$bot]]['id'] . '" LIMIT 1'
                                            );
                                        }
                                    }
                                }
                            }
                        } else {
                        }
                    }
                    $j++;
                }
            }
            $i++;
        }
    }

    //Проверяем приемы

    public function botAtack($uid, $pl, $tp)
    {
        $test_atack = mysql_fetch_array(
            mysql_query(
                'SELECT `id` FROM `battle_act` WHERE `battle` = "' . $this->info['id'] . '" AND ((
				`uid1` = "' . $pl . '" AND `uid2` = "' . $uid . '"
			) OR (
				`uid2` = "' . $pl . '" AND `uid1` = "' . $uid . '"
			)) LIMIT 1'
            )
        );

        if ($tp == 1 && !isset($test_atack['id'])) {
            $test_uid = mysql_fetch_array(
                mysql_query('SELECT * FROM `stats` WHERE `id` = "' . $uid . '" AND `hpNow` >= 1 LIMIT 1')
            );
            $test_pl = mysql_fetch_array(
                mysql_query('SELECT * FROM `stats` WHERE `id` = "' . $pl . '" AND `hpNow` >= 1 LIMIT 1')
            );
            if (isset($test_uid['id']) && isset($test_pl['id']) && $test_uid['id'] != $test_pl['id']) {
                $a = rand(1, 5) . '' . rand(1, 5) . '' . rand(1, 5) . '' . rand(1, 5) . '' . rand(1, 5);
                $b = rand(1, 5);
                $d = mysql_query(
                    'INSERT INTO `battle_act` (`battle`,`time`,`uid1`,`uid2`,`a1`,`b1`) VALUES ("' . $this->info['id'] . '","' . time() . '","' . $pl . '","' . $uid . '","' . $a . '","' . $b . '")'
                );
            }
        } elseif ($tp == 2) {
            //бот отвечает на удар
            $test_uid = mysql_fetch_array(
                mysql_query('SELECT * FROM `stats` WHERE `id` = "' . $uid . '" AND `hpNow` >= 1 LIMIT 1')
            );
            $test_pl = mysql_fetch_array(
                mysql_query('SELECT * FROM `stats` WHERE `id` = "' . $pl['uid2'] . '" AND `hpNow` >= 1 LIMIT 1')
            );
            if (isset($test_uid['id']) && isset($test_pl['id']) && $test_uid['id'] != $test_pl['id']) {
                $bot = $this->users[$this->uids[$pl['uid2']]];
                $na = ['id' => 0, 'a' => [1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0], 'b' => 0];
                $a222 = rand(1, 5) . '_' . rand(1, 5) . '_' . rand(1, 5) . '_' . rand(1, 5) . '_' . rand(1, 5);
                $a = explode('_', $a222);
                $i = 1;
                $na['id'] = time();
                while ($i <= 5) {
                    if (isset($a[$i - 1])) {
                        $a[$i - 1] = intval(round($a[$i - 1]));
                        if ($a[$i - 1] >= 1 && $a[$i - 1] <= 5) {
                            $na['a'][$i] = $a[$i - 1];
                        } else {
                            $na['a'][$i] = 0;
                        }
                    }
                    $i++;
                }
                $na['b'] = rand(1, 5);
                //Проводим удар

                $this->atacks[$pl['id']]['a2'] = $a222;
                $this->atacks[$pl['id']]['b2'] = $na['b'];
                $this->startAtack($pl['id']);
            }
        }
    }

    //Приемы которые используются моментально

    public function startAtack($id)
    {
        global $c, $u, $log_text, $priem;
        $this->prlog = [];
        $this->inport_user = 0;
        $vrm = [
            'uid1' => $this->atacks[$id]['uid1'],
            'uid2' => $this->atacks[$id]['uid2'],
        ];

        if (isset($this->atacks[$id]) && $this->atacks[$id]['lock'] == 0) {
            //Прием разгадать тактику
            $i = 1;
            $j = 2;
            $k = 0;
            $unpr = '';
            while ($i <= 2) {
                $untac = mysql_fetch_array(
                    mysql_query(
                        'SELECT `id` FROM `eff_users` WHERE `v1` = "priem" AND `v2` = "217" AND `uid` = "' . $this->atacks[$id]['uid' . $i] . '" AND `delete` = 0 LIMIT 1'
                    )
                );
                $agrs = mysql_fetch_array(
                    mysql_query(
                        'SELECT `id` FROM `eff_users` WHERE `v1` = "priem" AND `v2` = "211" AND `uid` = "' . $this->atacks[$id]['uid' . $j] . '" AND `delete` = 0 LIMIT 1'
                    )
                );
                if (isset($untac['id']) && !isset($agrs['id'])) {
                    $pvr['sp'] = mysql_query(
                        'SELECT `a`.* FROM `eff_users` AS `a` WHERE `a`.`uid` = "' . $this->atacks[$id]['uid' . $j] . '" AND `a`.`delete` = 0 AND `a`.`v1` = "priem"
							AND `a`.`v2` != 222 AND `a`.`v2` != 238	AND `a`.`v2` != 228	AND `a`.`v2` != 229
							AND `a`.`v2` != 139	AND `a`.`v2` != 188	AND `a`.`v2` != 226	AND `a`.`v2` != 211
							AND `a`.`v2` != 49	AND `a`.`v2` != 233	AND `a`.`v2` != 227	AND `a`.`v2` != 220
							AND `a`.`v2` != 191	AND `a`.`v2` != 332	AND `a`.`v2` != 333	AND `a`.`v2` != 334
							AND `a`.`v2` != 335	AND `a`.`v2` != 236	AND `a`.`v2` != 201
							AND `a`.`v2` != 261 AND `a`.`v2` != 262 AND `a`.`v2` != 206 AND `a`.`v2` != 207 AND `a`.`v2` != 208 AND `a`.`v2` != 209
							AND `a`.`v2` != 210 AND `a`.`v2` != 284
							AND `a`.`v2` != 263 AND `a`.`v2` != 258 AND `a`.`v2` != 29 AND `a`.`v2` != 30
							AND `a`.`v2` != 31 AND `a`.`v2` != 32 AND `a`.`v2` != 256 AND `a`.`v2` != 249
							AND `a`.`v2` != 248 AND `a`.`v2` != 187 AND `a`.`v2` != 245 AND `a`.`v2` != 175
							AND `a`.`v2` != 176 AND `a`.`v2` != 177 AND `a`.`v2` != 178 AND `a`.`v2` != 179
							AND `a`.`v2` != 285 AND `a`.`v2` != 36 AND `a`.`v2` != 85 AND `a`.`v2` != 86
							AND `a`.`v2` != 87 AND `a`.`v2` != 88 AND `a`.`v2` != 89 AND `a`.`v2` != 90
							AND `a`.`v2` != 269 AND `a`.`v2` != 276 AND `a`.`v2` != 277 AND `a`.`v2` != 270
							AND `a`.`v2` != 174	AND `a`.`v2` != 324	AND `a`.`v2` != 217				
							AND `name` NOT LIKE "%Иммунитет%"
						LIMIT 30'
                    );
                    while ($pvr['pl'] = mysql_fetch_array($pvr['sp'])) {
                        $pvr['pl']['priem'] = mysql_fetch_array(
                            mysql_query('SELECT * FROM `priems` WHERE `id` = "' . $pvr['pl']['v2'] . '" LIMIT 1')
                        );
                        if (isset($pvr['pl']['priem']['id']) && $pvr['pl']['priem']['neg'] == 0) {
                            $this->delPriem($pvr['pl'], $this->users[$this->uids[$this->atacks[$id]['uid' . $j]]], 100);
                        }
                    }
                }
                $j--;
                $i++;
            }

            //Восстановление манны 1% за ход
            if ($this->atacks[$id]['out1'] == 0) {
                if ($this->stats[$this->uids[$this->atacks[$id]['uid1']]]['s6'] / 4 < $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['level']) {
                    $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['mpNow'] += floor(
                        $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['level'] + $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['hod_minmana']
                    );
                } else {
                    $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['mpNow'] += floor(
                        $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['s6'] / 4 + $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['hod_minmana']
                    );
                }
                $this->users[$this->uids[$this->atacks[$id]['uid1']]]['mpNow'] = $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['mpNow'];
            }
            //
            if ($this->atacks[$id]['out2'] == 0) {
                if ($this->stats[$this->uids[$this->atacks[$id]['uid2']]]['s6'] / 4 < $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['level']) {
                    $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['mpNow'] += floor(
                        $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['level'] + $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['hod_minmana']
                    );
                } else {
                    $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['mpNow'] += floor(
                        $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['s6'] / 4 + $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['hod_minmana']
                    );
                }
                $this->users[$this->uids[$this->atacks[$id]['uid2']]]['mpNow'] = $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['mpNow'];
            }

            //Антистаты
            if ($this->stats[$this->uids[$this->atacks[$id]['uid1']]]['antm3'] != 0) {
                $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['m3'] -= round(
                    $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['antm3']
                );
            }
            if ($this->stats[$this->uids[$this->atacks[$id]['uid2']]]['antm3'] != 0) {
                $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['m3'] -= round(
                    $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['antm3']
                );
            }

            $last_yrn = [
                1 => $this->users[$this->uids[$this->atacks[$id]['uid1']]]['battle_yron'],
                2 => $this->users[$this->uids[$this->atacks[$id]['uid2']]]['battle_yron'],
            ];

            //Расчет количества блоков и противников
            $this->testZonb($this->atacks[$id]['uid1'], $this->atacks[$id]['uid2']);

            //Запускаем магию предметов
            $this->magicItems($this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'], $id);
            $this->magicItems($this->atacks[$id]['uid2'], $this->atacks[$id]['uid1'], $id);

            // Получаем приемы игроков
            $this->priemsRazmen($id, $at);
            $this->priemsRazmenMoment($id, $at);
            $this->priemsRazmen($id, $at);

            $at = $this->newRazmen($id);

            // Тестируем какие еще могут быть варианты при ударе
            // Уворот, парирование, крит, пробить блок, блок щитом
            // Блок щитом (если есть щит, конечно)

            $at = $this->mf2Razmen($id, $at, $v); //крит
            $at = $this->mf3Razmen($id, $at, $v); //парирование
            $at = $this->mf4Razmen($id, $at, $v); //блок щитом

            $at = $this->mf1Razmen($id, $at, $v); //уворот
            $at = $this->mf5Razmen($id, $at, $v); //контрудар

            $at = $this->yronRazmen($id, $at);  //расчет урона

            // Проверяем приемы
            // Получаем приемы игроков
            $at = $this->priemsTestRazmen($id, $at);
            // Собираем размен (пересчитываем и расчитываем урон и т.д)
            $at = $this->priemsRestartRazmen($id, $at); //Повторная проверка приемов (если требуется)

            //Минусуем поглощенный урон
            if (count($this->stats[$this->uids[$this->atacks[$id]['uid1']]]['set_pog']) > 0) {
                $this->testPogB($this->atacks[$id]['uid1'], 1, $id, 1);
            }
            if (count($this->stats[$this->uids[$this->atacks[$id]['uid2']]]['set_pog']) > 0) {
                $this->testPogB($this->atacks[$id]['uid2'], 1, $id, 1);
            }

            // Обновляем НР и добавляем тактики
            $at = $this->updateHealth($id, $at);

            // Заносим в логи + записываем статистику боя
            $this->addlogRazmen($id, $at);

            //Запускаем магию предметов
            $this->magicItems($this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'], $id);
            $this->magicItems($this->atacks[$id]['uid2'], $this->atacks[$id]['uid1'], $id);

            //Возращаем зоны блока
            $this->restZonb($this->atacks[$id]['uid1'], $this->atacks[$id]['uid2']);
            //обновляем задержки приемов
            $zd1 = explode('|', $this->users[$this->uids[$this->atacks[$id]['uid1']]]['priems_z']);
            $zd2 = explode('|', $this->users[$this->uids[$this->atacks[$id]['uid2']]]['priems_z']);
            $zd1id = explode('|', $this->users[$this->uids[$this->atacks[$id]['uid1']]]['priems']);
            $zd2id = explode('|', $this->users[$this->uids[$this->atacks[$id]['uid2']]]['priems']);
            $prmos = [];
            $i5 = 0;

            while ($i5 < 51) {
                if (isset($zd1[$i5]) && $zd1[$i5] > 0) {
                    //Если приемы не требуют ход
                    $zd1[$i5] -= 1;
                } else {
                    $zd1[$i5] = 0;
                }
                if (isset($zd2[$i5]) && $zd2[$i5] > 0) {
                    //Если приемы не требуют ход
                    $zd2[$i5] -= 1;
                } else {
                    $zd2[$i5] = 0;
                }
                $i5++;
            }
            unset($prmos);

            if ($this->users[$this->uids[$this->atacks[$id]['uid1']]]['enemy'] == $this->users[$this->uids[$this->atacks[$id]['uid2']]]['id']) {
                $this->users[$this->uids[$this->atacks[$id]['uid1']]]['enemy'] = -$this->users[$this->uids[$this->atacks[$id]['uid1']]]['enemy'];
            }

            if ($this->users[$this->uids[$this->atacks[$id]['uid2']]]['enemy'] == $this->users[$this->uids[$this->atacks[$id]['uid1']]]['id']) {
                $this->users[$this->uids[$this->atacks[$id]['uid2']]]['enemy'] = -$this->users[$this->uids[$this->atacks[$id]['uid2']]]['enemy'];
            }

            $this->users[$this->uids[$this->atacks[$id]['uid1']]]['priems_z'] = implode('|', $zd1);
            $this->users[$this->uids[$this->atacks[$id]['uid2']]]['priems_z'] = implode('|', $zd2);
            if ($this->atacks[$id]['uid1'] == $u->info['id']) {
                $u->info['priems_z'] = implode('|', $zd1);
            } elseif ($this->atacks[$id]['uid2'] == $u->info['id']) {
                $u->info['priems_z'] = implode('|', $zd2);
            }
            //Проверяем тактики
            $i = 1;
            while ($i <= 6) {
                if ($this->users[$this->uids[$this->atacks[$id]['uid1']]]['tactic' . $i] > 25) {
                    $this->users[$this->uids[$this->atacks[$id]['uid1']]]['tactic' . $i] = 25;
                } elseif ($this->users[$this->uids[$this->atacks[$id]['uid1']]]['tactic' . $i] <= 0) {
                    $this->users[$this->uids[$this->atacks[$id]['uid1']]]['tactic' . $i] = 0;
                }
                if ($this->users[$this->uids[$this->atacks[$id]['uid2']]]['tactic' . $i] > 25) {
                    $this->users[$this->uids[$this->atacks[$id]['uid2']]]['tactic' . $i] = 25;
                } elseif ($this->users[$this->uids[$this->atacks[$id]['uid2']]]['tactic' . $i] <= 0) {
                    $this->users[$this->uids[$this->atacks[$id]['uid2']]]['tactic' . $i] = 0;
                }
                $i++;
            }
            //Обновляем задержки предметов
            mysql_query(
                'UPDATE `items_users` SET `btl_zd` = `btl_zd` - 1 WHERE (`uid` = "' . $this->atacks[$id]['uid1'] . '" OR `uid` = "' . $this->atacks[$id]['uid2'] . '") AND `btl_zd` > 0 AND `inOdet` > 0 LIMIT 100'
            );
            mysql_query(
                'UPDATE `users` SET `notrhod` = "-1" WHERE `id` = "' . $this->atacks[$id]['uid1'] . '" OR `id` = "' . $this->atacks[$id]['uid2'] . '" LIMIT 2'
            );

            //Обновляем задержки пирожков
            mysql_query(
                'UPDATE `pirogi` SET `hod` = `hod` - 1 WHERE `btl` = "' . $this->info['id'] . '" AND (`uid` = "' . $this->atacks[$id]['uid1'] . '" OR `uid` = "' . $this->atacks[$id]['uid2'] . '")'
            );
            mysql_query(
                'UPDATE `tactic` SET `hod` = `hod` - 1 WHERE `btl` = "' . $this->info['id'] . '" AND (`uid` = "' . $this->atacks[$id]['uid1'] . '" OR `uid` = "' . $this->atacks[$id]['uid2'] . '")'
            );

            //Тактики
            mysql_query('DELETE FROM `pirogi` WHERE `btl` = "' . $this->info['id'] . '" AND `hod` < 1');
            mysql_query('DELETE FROM `tactic` WHERE `btl` = "' . $this->info['id'] . '" AND `hod` < 1');

            //Обновляем задержки пирожков
            mysql_query(
                'UPDATE `spells` SET `hod` = `hod` - 1 WHERE `btl` = "' . $this->info['id'] . '" AND (`uid` = "' . $this->atacks[$id]['uid1'] . '" OR `uid` = "' . $this->atacks[$id]['uid2'] . '")'
            );
            mysql_query('DELETE FROM `spells` WHERE `btl` = "' . $this->info['id'] . '" AND `hod` < 1');

            //Обновляем данные в battle_users
            mysql_query(
                'UPDATE `battle_users` SET `hp` = "' . $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['hpNow'] . '"
					WHERE `battle` = "' . $this->info['id'] . '" AND `uid` = "' . $this->atacks[$id]['uid1'] . '" LIMIT 1'
            );
            mysql_query(
                'UPDATE `battle_users` SET `hp` = "' . $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['hpNow'] . '"
					WHERE `battle` = "' . $this->info['id'] . '" AND `uid` = "' . $this->atacks[$id]['uid2'] . '" LIMIT 1'
            );
            //Восстановление манны 25% от мудрости за ход

            $last_yrn = [
                1 => $last_yrn[1],
                2 => $last_yrn[2],
                10 => $this->users[$this->uids[$this->atacks[$id]['uid1']]]['battle_yron'],
                20 => $this->users[$this->uids[$this->atacks[$id]['uid2']]]['battle_yron'],
            ];

            $last_yrn[100] = floor($last_yrn[10] - $last_yrn[1]);
            $last_yrn[200] = floor($last_yrn[20] - $last_yrn[2]);

            if ($this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod'] > 0) {
                $this->save_stats(
                    $this->yhod_user(
                        $this->atacks[$id]['uid2'], $this->atacks[$id]['uid1'],
                        $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod']
                    )
                );
            } elseif ($this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod'] > 0) {
                $this->save_stats(
                    $this->yhod_user(
                        $this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'],
                        $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod']
                    )
                );
            }
            mysql_query(
                'UPDATE `stats` SET
				
					`hpNow` = "' . $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['hpNow'] . '",
					`mpNow` = "' . $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['mpNow'] . '",
					`tactic1` = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['tactic1'] . '",
					`tactic2` = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['tactic2'] . '",
					`tactic3` = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['tactic3'] . '",
					`tactic4` = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['tactic4'] . '",
					`tactic5` = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['tactic5'] . '",
					`tactic6` = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['tactic6'] . '",
					`tactic7` = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['tactic7'] . '",
					
					`enemy` 	  = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['enemy'] . '",
					`battle_yron` = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['battle_yron'] . '",
					`last_hp` 	  = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['last_hp'] . '",
					`battle_exp`  = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['battle_exp'] . '",
					`priems_z`  = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['priems_z'] . '"
					
				WHERE `id` = "' . $this->atacks[$id]['uid1'] . '" LIMIT 1'
            );
            mysql_query(
                'UPDATE `stats` SET
				
					`hpNow` = "' . $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['hpNow'] . '",
					`mpNow` = "' . $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['mpNow'] . '",
					`tactic1` = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['tactic1'] . '",
					`tactic2` = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['tactic2'] . '",
					`tactic3` = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['tactic3'] . '",
					`tactic4` = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['tactic4'] . '",
					`tactic5` = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['tactic5'] . '",
					`tactic6` = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['tactic6'] . '",
					`tactic7` = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['tactic7'] . '",
					
					`enemy` 	  = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['enemy'] . '",
					`battle_yron` = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['battle_yron'] . '",
					`last_hp` 	  = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['last_hp'] . '",
					`battle_exp`  = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['battle_exp'] . '",
					`priems_z`  = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['priems_z'] . '"
					
				WHERE `id` = "' . $this->atacks[$id]['uid2'] . '" LIMIT 1'
            );
            $this->priemsRazmenMomentEnd($id, $at);
            //Минусуем заряд приема \ эффекта
            $j = 1;
            $jn = 1;
            while ($j <= 2) {
                $eff = $this->stats[$this->uids[$this->atacks[$id]['uid' . $j]]]['effects'];
                $i = 0;
                while ($i < count($eff)) {
                    if (isset($eff[$i])) {
                        if ($eff[$i]['timeUse'] == 77 && $eff[$i]['hod'] > -1) {
                            $eff[$i]['hod']--;
                            $eff[$i]['priem'] = mysql_fetch_array(
                                mysql_query('SELECT * FROM `priems` WHERE `id` = "' . $eff[$i]['v2'] . '" LIMIT 1')
                            );
                            if (round($eff[$i]['priem']['minmana'] * $eff[$i]['x']) != 0) {
                                //Отнимаем ману у того кто кастовал
                                $priem->minMana(
                                    $eff[$i]['user_use'],
                                    round($eff[$i]['priem']['minmana'] * $eff[$i]['x'])
                                );
                                if ($this->stats[$this->uids[$eff[$i]['user_use']]]['mpNow'] <= 0) {
                                    $eff[$i]['hod'] = 0;
                                }
                            }
                            if (strripos($eff[$i]['data'], 'minprocmanahod')) {
                                $pvr = [
                                    'x1' => 0,
                                    'x2' => 0,
                                    'd' => '',
                                    'i' => 0,
                                    'uid' => $eff[$i]['uid'],
                                    'color' => '',
                                    'color2' => '',
                                    'effx' => '',
                                    'x' => $eff[$i]['name'],
                                ];
                                $pvr['d'] = explode('|', $eff[$i]['data']);
                                while ($pvr['i'] < count($pvr['d'])) {
                                    if (isset($pvr['d'][$pvr['i']])) {
                                        $pvr['d1'] = explode('=', $pvr['d'][$pvr['i']]);
                                        if ($pvr['d1'][0] == 'minprocmanahod') {
                                            $pvr['d1'] = explode('x', $pvr['d1'][1]);
                                            $pvr['x1'] = $pvr['d1'][0];
                                            $pvr['x2'] = $pvr['d1'][1];
                                        }
                                    }
                                    $pvr['i']++;
                                }

                                $pvr['mp'] = round(
                                    $this->stats[$this->uids[$pvr['uid']]]['mpAll'] / 100 * rand(
                                        $pvr['x1'],
                                        $pvr['x2']
                                    )
                                );
                                $pvr['mpSee'] = 0;
                                $pvr['mpNow'] = floor($this->stats[$this->uids[$pvr['uid']]]['mpNow']);
                                $pvr['mpAll'] = $this->stats[$this->uids[$pvr['uid']]]['mpAll'];
                                $pvr['mpTr'] = $pvr['mpAll'] - $pvr['mpNow'];

                                if ($pvr['mpTr'] > 0) {
                                    //Требуется хилл
                                    if ($pvr['mpTr'] < $pvr['mp']) {
                                        $pvr['mp'] = $pvr['mpTr'];
                                    }
                                    $pvr['mpSee'] = '+' . $pvr['mp'];
                                    $pvr['mpNow'] += $pvr['mp'];
                                }
                                if ($pvr['mpNow'] > $pvr['mpAll']) {
                                    $pvr['mpNow'] = $pvr['mpAll'];
                                } elseif ($pvr['mpNow'] < 0) {
                                    $pvr['mpNow'] = 0;
                                }
                                if ($pvr['mpSee'] == 0) {
                                    $pvr['mpSee'] = '--';
                                }

                                $btl->stats[$btl->uids[$pvr['uid']]]['mpNow'] = $pvr['mpNow'];
                                $btl->users[$btl->uids[$pvr['uid']]]['mpNow'] = $pvr['mpNow'];
                                mysql_query(
                                    'UPDATE `stats` SET `mpNow` = "' . $btl->stats[$btl->uids[$pvr['uid']]]['mpNow'] . '" WHERE `id` = "' . $pvr['uid'] . '" LIMIT 1'
                                );

                                $pvr['text'] = $this->addlt(1, 21, $this->users[$this->uids[$pvr['uid']]]['sex'], null);
                                $pvr['text2'] = '{tm1} ' . $pvr['text'] . ' на <font Color=#006699><strong>' . $pvr['mpSee'] . '</strong></font> [' . $pvr['mpNow'] . '/' . $pvr['mpAll'] . '] (Мана)';
                                $this->priemAddLog(
                                    $id, 1, 2, $pvr['uid'], 0,
                                    '<font color^^^^#' . $pvr['color2'] . '>' . $pvr['x'] . '</font>',
                                    $pvr['text2'],
                                    ($this->hodID + 0)
                                );
                                unset($pvr);
                            }

                            if (isset($this->rehodeff[$eff[$i]['id']])) {
                                $eff[$i]['hod'] = $this->rehodeff[$eff[$i]['id']];
                            }
                            if ($eff[$i]['hod'] > 0) {
                                $this->stats[$this->uids[$this->atacks[$id]['uid' . $j]]]['effects']['hod'] = $eff[$i]['hod'];
                                mysql_query(
                                    'UPDATE `eff_users` SET `hod` = "' . $eff[$i]['hod'] . '" WHERE `id` = "' . $eff[$i]['id'] . '" LIMIT 1'
                                );
                            } else {
                                //удаляем прием
                                if ($eff[$i]['v2'] > 0) {
                                    if ($j == 1) {
                                        $jn = 2;
                                    } else {
                                        $jn = 1;
                                    }
                                    $this->delPriem(
                                        $eff[$i], $this->users[$this->uids[$this->atacks[$id]['uid' . $j]]],
                                        3, $this->atacks[$id]['uid' . $jn]
                                    );
                                }
                            }
                        } elseif ($eff[$i]['timeUse'] == 77 && $eff[$i]['hod'] == -2) {
                            $eff[$i]['priem'] = mysql_fetch_array(
                                mysql_query('SELECT * FROM `priems` WHERE `id` = "' . $eff[$i]['v2'] . '" LIMIT 1')
                            );
                            $priem->hodUsePriem($eff[$i], $eff[$i]['priem']);
                        } else {
                            $eff[$i]['priem'] = mysql_fetch_array(
                                mysql_query('SELECT * FROM `priems` WHERE `id` = "' . $eff[$i]['v2'] . '" LIMIT 1')
                            );
                            if (isset($eff[$i]['priem']['minmana']) && round(
                                    $eff[$i]['priem']['minmana'] * $eff[$i]['x']
                                ) != 0) {
                                //Отнимаем ману у того кто кастовал
                                $priem->minMana(
                                    $eff[$i]['user_use'],
                                    round($eff[$i]['priem']['minmana'] * $eff[$i]['x'])
                                );
                                if ($this->stats[$this->uids[$eff[$i]['user_use']]]['mpNow'] <= 0) {
                                    $eff[$i]['hod'] = 0;
                                    if (isset($this->rehodeff[$eff[$i]['id']])) {
                                        $eff[$i]['hod'] = $this->rehodeff[$eff[$i]['id']];
                                    }
                                    if ($eff[$i]['v2'] > 0) {
                                        if ($j == 1) {
                                            $jn = 2;
                                        } else {
                                            $jn = 1;
                                        }
                                        $this->delPriem(
                                            $eff[$i],
                                            $this->users[$this->uids[$this->atacks[$id]['uid' . $j]]], 3,
                                            $this->atacks[$id]['uid' . $jn]
                                        );
                                    }
                                }
                            } elseif ($eff[$i]['timeUse'] > 100 && $eff[$i]['hod'] > -1 && $c['effz'] > 0) {
                                $eff[$i]['hod']--;
                                if (isset($this->rehodeff[$eff[$i]['id']])) {
                                    $eff[$i]['hod'] = $this->rehodeff[$eff[$i]['id']];
                                }
                                if ($eff[$i]['hod'] > 0) {
                                    $this->stats[$this->uids[$this->atacks[$id]['uid' . $j]]]['effects']['hod'] = $eff[$i]['hod'];
                                    mysql_query(
                                        'UPDATE `eff_users` SET `hod` = "' . $eff[$i]['hod'] . '" WHERE `id` = "' . $eff[$i]['id'] . '" LIMIT 1'
                                    );
                                } else {
                                    //удаляем прием
                                    if ($eff[$i]['v2'] > 0) {
                                        if ($j == 1) {
                                            $jn = 2;
                                        } else {
                                            $jn = 1;
                                        }
                                        $this->delPriem(
                                            $eff[$i],
                                            $this->users[$this->uids[$this->atacks[$id]['uid' . $j]]], 3,
                                            $this->atacks[$id]['uid' . $jn]
                                        );
                                    }
                                }
                            }
                        }
                    }
                    $i++;
                }
                $j++;
            }
            //Проверяем
            if ($c['propsk_die'] > 0 && $this->info['razdel'] == 0 && $this->info['dn_id'] == 0 && $this->info['izlom'] == 0) {
                $cn1 = mysql_fetch_array(
                    mysql_query(
                        'SELECT COUNT(*) FROM `battle_out` WHERE `battle` = "' . $this->info['id'] . '" AND `uid1` = "' . $this->atacks[$id]['uid1'] . '" LIMIT 1'
                    )
                );
                $cn2 = mysql_fetch_array(
                    mysql_query(
                        'SELECT COUNT(*) FROM `battle_out` WHERE `battle` = "' . $this->info['id'] . '" AND `uid1` = "' . $this->atacks[$id]['uid2'] . '" LIMIT 1'
                    )
                );
                if ($cn1[0] > 3) {
                    $pvr['text2'] = '{tm1} Персонаж {u1} был убит из-за большого количества пропусков хода.';
                    $this->priemAddLog(
                        $id, 1, 2, $this->atacks[$id]['uid1'], 0, '',
                        $pvr['text2'],
                        ($this->hodID + 0)
                    );
                    unset($pvr);
                    mysql_query(
                        'UPDATE `stats` SET `hpNow` = 0 WHERE `id` = "' . $this->atacks[$id]['uid1'] . '" LIMIT 1'
                    );
                }
                if ($cn2[0] > $c['propsk_die']) {
                    $pvr['text2'] = '{tm1} Персонаж {u1} был убит из-за большого количества пропусков хода.';
                    $this->priemAddLog(
                        $id, 1, 2, $this->atacks[$id]['uid2'], 0, '',
                        $pvr['text2'],
                        ($this->hodID + 0)
                    );
                    unset($pvr);
                    mysql_query(
                        'UPDATE `stats` SET `hpNow` = 0 WHERE `id` = "' . $this->atacks[$id]['uid2'] . '" LIMIT 1'
                    );
                }
            }
            //
            //Обновляем текущего противника
            if ($u->info['id'] == $this->atacks[$id]['uid1']) {
                $u->info['enemy'] = $this->users[$this->uids[$this->atacks[$id]['uid1']]]['enemy'];
            }
            if ($u->info['id'] == $this->atacks[$id]['uid2']) {
                $u->info['enemy'] = $this->users[$this->uids[$this->atacks[$id]['uid2']]]['enemy'];
            }
            //Удаляем размен из базы //ТУТ возможен лаг удаления
            mysql_query(
                'DELETE FROM `battle_act` WHERE ( `uid1` = "' . $this->atacks[$id]['uid1'] . '" AND `uid2` = "' . $this->atacks[$id]['uid2'] . '" ) OR
				( `uid2` = "' . $this->atacks[$id]['uid1'] . '" AND `uid1` = "' . $this->atacks[$id]['uid2'] . '" )'
            );
            unset($old_s1, $old_s2);
            unset($this->ga[$this->atacks[$id]['uid1']][$this->atacks[$id]['uid2']], $this->ga[$this->atacks[$id]['uid2']][$this->atacks[$id]['uid1']]);
            unset($this->ag[$this->atacks[$id]['uid1']][$this->atacks[$id]['uid2']], $this->ag[$this->atacks[$id]['uid2']][$this->atacks[$id]['uid1']]);
            unset($this->atacks[$id]);
            mysql_query('DELETE FROM `battle_act` WHERE `id` = "' . $id . '" LIMIT 1');
            unset($old_s1, $old_s2);
        }
    }

    //Приемы которые используются моментально (в конце хода)

    public function testZonb($uid, $uid2)
    {
        $zba = [];

        $zba[1] = $this->stats[$this->uids[$uid]]['zonb'];
        $zba[2] = $this->stats[$this->uids[$uid2]]['zonb'];

        if ($this->stnZb[$uid] == 0) {
            $zba[1] = $this->stats[$this->uids[$uid]]['zonb'];
            $this->stnZb[$uid] = $zba[1];
        } else {
            $zba[1] = $this->stnZb[$uid];
        }

        if ($this->stnZb[$uid2] == 0) {
            $zba[2] = $this->stats[$this->uids[$uid2]]['zonb'];
            $this->stnZb[$uid] = $zba[2];
        } else {
            $zba[2] = $this->stnZb[$uid2];
        }

        if ($zba[1] > 3) {
            $zba[1] = 3;
        }
        if ($zba[2] > 3) {
            $zba[2] = 3;
        }

        //Блоки игрока 1
        if (
            (
                $this->stats[$this->uids[$uid2]]['weapon1'] == 1 ||
                $this->stats[$this->uids[$uid2]]['weapon2'] == 1
            ) &&
            $this->stats[$this->uids[$uid]]['weapon1'] != 1 &&
            $this->stats[$this->uids[$uid]]['weapon2'] != 1
        ) {
            $zba[1] -= 1;
        }

        //Блоки игрока 2
        if (
            (
                $this->stats[$this->uids[$uid]]['weapon1'] == 1 ||
                $this->stats[$this->uids[$uid]]['weapon2'] == 1
            ) &&
            $this->stats[$this->uids[$uid2]]['weapon1'] != 1 &&
            $this->stats[$this->uids[$uid2]]['weapon2'] != 1
        ) {
            $zba[2] -= 1;
        }

        if ($zba[1] < 1) {
            $zba[1] = 1;
        }
        if ($zba[2] < 1) {
            $zba[2] = 1;
        }

        $this->stats[$this->uids[$uid]]['zonb'] = $zba[1];
        $this->stats[$this->uids[$uid2]]['zonb'] = $zba[2];
        if (
            $this->stats[$this->uids[$uid]]['min_zonb'] > 0 &&
            $this->stats[$this->uids[$uid]]['zonb'] < $this->stats[$this->uids[$uid]]['min_zonb']
        ) {
            $this->stats[$this->uids[$uid]]['zonb'] = $this->stats[$this->uids[$uid]]['min_zonb'];
        }
        if (
            $this->stats[$this->uids[$uid2]]['min_zonb'] > 0 &&
            $this->stats[$this->uids[$uid2]]['zonb'] < $this->stats[$this->uids[$uid2]]['min_zonb']
        ) {
            $this->stats[$this->uids[$uid2]]['zonb'] = $this->stats[$this->uids[$uid2]]['min_zonb'];
        }
    }

    //Используем приемы

    public function magicItems($uid1, $uid2, $end)
    {
        global $u, $priem, $c, $code;
        if (!isset($this->stats[$this->uids[$uid1]])) {
            return;
        }
        $i = 0;
        while ($i < count($this->stats[$this->uids[$uid1]]['items'])) {
            $itm = $this->stats[$this->uids[$uid1]]['items'][$i];
            if (isset($itm['id'])) {
                $e = ConversionHelper::dataStringToArray($itm['data']);
                if (isset($e['bm_a1'])) {
                    if ($end > 0) {
                        if (file_exists('../../_incl_data/class/priems/' . $e['bm_a1'] . '.end.php')) {
                            require('../../_incl_data/class/priems/' . $e['bm_a1'] . '.end.php');
                        }
                    } else {
                        if (file_exists('../../_incl_data/class/priems/' . $e['bm_a1'] . '.php')) {
                            require('../../_incl_data/class/priems/' . $e['bm_a1'] . '.php');
                        }
                    }
                }
            }
            $i++;
        }
        unset($itm);
    }

    //Повторная проверка приемов

    public function priemsRazmen($id, $at)
    {
        if ($at == 'fast') {
            $uid1 = $id[0];
            $uid2 = $id[1];
        } else {
            $uid1 = $this->atacks[$id]['uid1'];
            $uid2 = $this->atacks[$id]['uid2'];
        }
        $i = 1;
        while ($i <= 2) {
            if ($i == 1) {
                $a = 1;
                $b = 2;
                $u1 = ${'uid1'};
                $u2 = ${'uid2'};
            } else {
                $a = 2;
                $b = 1;
                $u1 = ${'uid2'};
                $u2 = ${'uid1'};
            }

            //Получаем приемы и смотрим когда какой действует
            $eff = $this->stats[$this->uids[$u1]]['effects'];
            $this->stats[$this->uids[$u1]]['u_priem'] = [];
            $j = 0;
            while ($j <= count($eff)) {
                if (isset($eff[$j]) && $eff[$j]['id_eff'] == 22 && $eff[$j]['v1'] == 'priem' && $eff[$j]['v2'] > 0) {
                    $this->stats[$this->uids[$u1]]['u_priem'][] = [
                        $j,
                        $eff[$j]['v2'],
                        $this->prm[$eff[$j]['v2']]['act'],
                        $eff[$j]['id'],
                        $this->prm[$eff[$j]['v2']]['type_of'],
                        $this->prm[$eff[$j]['v2']]['moment'],
                        $this->prm[$eff[$j]['v2']]['moment_end'],
                        $this->prm[$eff[$j]['v2']]['type_sec'],
                    ];
                }
                $j++;
            }
            $i++;
        }
    }

    //Проверка действия приема

    public function priemsRazmenMoment($id, $at)
    {
        $uid1 = $this->atacks[$id]['uid1'];
        $uid2 = $this->atacks[$id]['uid2'];

        $i = 1;
        while ($i <= 2) {
            if ($i == 1) {
                $a = 1;
                $b = 2;
                $u1 = ${'uid1'};
                $u2 = ${'uid2'};
            } else {
                $a = 2;
                $b = 1;
                $u1 = ${'uid2'};
                $u2 = ${'uid1'};
            }
            if (!isset($at['p']['p_cast'])) {
                $at['p'] = $at;
                $at['p']['p_cast'] = true;
            }
            //Приемы ухода от удара
            if (!isset($this->stats[$this->uids[$u2]]['nopryh']) || $this->stats[$this->uids[$u2]]['nopryh'] == 0) {
                $j = 0;
                while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
                    if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][5] == 1) {
                        if (file_exists(
                            '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                        )) {
                            $pr_used_this = $u1;
                            $pr_moment = true;
                            require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                            $at = $fx_priem($id, $at, $u1, $j);
                            unset(${'fx_priem'});
                            $this->stats[$this->uids[$u2]]['nopryh']--;
                        }
                    }
                    $j++;
                }
            }
            //Приемы крита
            $j = 0;
            while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
                if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][5] == 2) {
                    if (file_exists(
                        '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                    )) {
                        $pr_used_this = $u1;
                        $pr_moment = true;
                        require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                        $at = $fx_priem($id, $at, $u1, $j);
                        unset(${'fx_priem'});
                    }
                }
                $j++;
            }
            //Приемы атаки
            $j = 0;
            while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
                if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][5] == 3) {
                    if (file_exists(
                        '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                    )) {
                        $pr_used_this = $u1;
                        $pr_moment = true;
                        require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                        if (isset($fx_priem)) {
                            $at = $fx_priem($id, $at, $u1, $j);
                        }
                        unset(${'fx_priem'});
                    }
                }
                $j++;
            }
            //Приемы защиты
            $j = 0;
            while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
                if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][5] == 4) {
                    if ($this->testPriemVarTrueZash(
                            $i, 1, $this->stats[$this->uids[$u1]]['u_priem'][$j][1], $a, $b,
                            $u1, $u2
                        ) == false) {
                    } elseif (file_exists(
                        '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                    )) {
                        $pr_used_this = $u1;
                        $pr_moment = true;
                        require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                        $at = $fx_priem($id, $at, $u1, $j);
                        unset(${'fx_priem'});
                    }
                }
                $j++;
            }
            //Прочие приемы
            $j = 0;
            while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
                if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][5] == 5) {
                    if (file_exists(
                        '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                    )) {
                        $pr_used_this = $u1;
                        $pr_moment = true;
                        require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                        $at = $fx_priem($id, $at, $u1, $j);
                        unset(${'fx_priem'});
                    }
                }
                $j++;
            }
            $i++;
        }
        return $at;
    }

    //Проверка урона приемов

    /**
     * @param $i
     * @param $id
     * @param $pid
     * @param $a
     * @param $b
     * @param $u1
     * @param $u2
     * @return bool
     * @deprecated always returns true
     */
    public function testPriemVarTrueZash($i, $id, $pid, $a, $b, $u1, $u2): bool
    {
        return true;
    }

    public function newRazmen($id, $at = null)
    {
        $uid1 = $this->atacks[$id]['uid1'];
        $uid2 = $this->atacks[$id]['uid2'];

        if ($this->atacks[$id]['out1'] == 0) {
            $at[1] = $this->usersTestAtack($id, $uid1, $uid2);
        } else {
            $at[1] = [0];
        }
        if ($this->atacks[$id]['out2'] == 0) {
            $at[2] = $this->usersTestAtack($id, $uid2, $uid1);
        } else {
            $at[2] = [0];
        }

        return $at;
    }

    //Опыт + набитый урон за удар приемом\магией

    public function usersTestAtack($id, $uid1, $uid2): array
    {
        $r = [];
        $block = [
            0,
            0,
            0,
            0,
            0,
            0,
        ];

        //Проверка блоков
        $i = 1;
        if ($uid1 == $this->atacks[$id]['uid1']) {
            $a = 2;
            $j = $this->atacks[$id]['b2'];
            $atack = [
                0,
                $this->atacks[$id]['a1'][0],
                $this->atacks[$id]['a1'][1],
                $this->atacks[$id]['a1'][2],
                $this->atacks[$id]['a1'][3],
                $this->atacks[$id]['a1'][4],
            ];
        } elseif ($uid2 == $this->atacks[$id]['uid1']) {
            $a = 1;
            $j = $this->atacks[$id]['b1'];
            $atack = [
                0,
                $this->atacks[$id]['a2'][0],
                $this->atacks[$id]['a2'][1],
                $this->atacks[$id]['a2'][2],
                $this->atacks[$id]['a2'][3],
                $this->atacks[$id]['a2'][4],
            ];
        }
        if ($this->atacks[$id]['out' . $a] == 0) {
            while ($i <= $this->stats[$this->uids[$uid2]]['zonb']) {
                $block[$j] = 1;
                $j++;
                if ($j > 5 || $j < 1) {
                    $j = 1;
                }
                $i++;
            }
        }
        //Проверка ударов
        $i = 1;
        while ($i <= $this->stats[$this->uids[$uid1]]['zona']) {
            if (!isset($atack[$i]) || $atack[$i] == 0) {
                $atack[$i] = rand(1, 5);
            }
            if ($atack[$i] > 0) {
                if ($block[$atack[$i]] == 1) {
                    //удар был заблокирован
                    // КУДА БИЛ , ТИП УДАРА
                    $r['atack'][] = [$atack[$i], 3, 0];
                } else {
                    //Удар прошел
                    // КУДА БИЛ , ТИП УДАРА
                    $r['atack'][] = [$atack[$i], 1, 0];
                }
            }
            $i++;
        }
        return $r;
    }

    //Наносим удар между игроками

    public function mf5Razmen($id, $at, $v, $rjd = 0)
    {
        global $u;

        $uid1 = $this->atacks[$id]['uid1'];
        $uid2 = $this->atacks[$id]['uid2'];

        if ($this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod'] > 0) {
            $uid1 = $this->yhod_user(
                $this->atacks[$id]['uid2'], $this->atacks[$id]['uid1'],
                $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod']
            );
        } elseif ($this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod'] > 0) {
            $uid2 = $this->yhod_user(
                $this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'],
                $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod']
            );
        }

        $i = 1;
        while ($i <= 2) {
            if ($i == 1) {
                $a = 1;
                $b = 2;
                $u1 = ${'uid1'};
                $u2 = ${'uid2'};
            } else {
                $a = 2;
                $b = 1;
                $u1 = ${'uid2'};
                $u2 = ${'uid1'};
            }

            //Расчет контрудара Цели (u2) по Атакующему (u1)
            $j = 0;
            if ($rjd > 0) {
                $j = $rjd - 1;
            }
            while ($j < count($at[$a]['atack']) && $j < 8) {
                // КУДА БИЛ , ТИП УДАРА
                if ($at[$a]['atack'][$j][2] == $v) {
                    if ($at[$a]['atack'][$j][1] == 2) {
                        if ($this->mfs(
                                6, [
                                'u1' => $u1,
                                'u2' => $u2,
                                'a' => $this->stats[$this->uids[$u2]]['m6'],
                                'b' => $this->stats[$this->uids[$u1]]['m6'],
                            ], $this->users[$this->uids[$u1]]['level'], $this->users[$this->uids[$u2]]['level']
                            ) == 1) {
                            //контрудар, гад :)
                            $at[$a]['atack'][$j][1] = 8;
                            $rnd_a = rand(1, 5);
                            $rjd = count($at[$b]['atack']);
                            if (!$this->testRazmenblock1($id, $u2, $u1, $rnd_a)) {
                                $at[$b]['atack'][] = [$rnd_a, 1, 0, 1]; // 3 , 0 , 1
                            } else {
                                $at[$b]['atack'][] = [$rnd_a, 3, 0, 1]; // 3 , 0 , 1
                            }
                            $at = $this->contrRestart($id, $at, 1, $rjd);
                        }
                    }
                }
                $j++;
            }
            $i++;
        }
        return $at;
    }

    public function testRazmenblock1($id, $uid1, $uid2, $atack): bool
    {
        $r = false;
        //Проверка блоков
        $i = 1;
        if ($uid1 == $this->atacks[$id]['uid1']) {
            $j = $this->atacks[$id]['b2'];
        } elseif ($uid2 == $this->atacks[$id]['uid1']) {
            $j = $this->atacks[$id]['b1'];
        }
        if ($this->atacks[$id]['out2'] == 0) {
            while ($i <= $this->stats[$this->uids[$uid2]]['zonb']) {
                $block[$j] = 1;
                $j++;
                if ($j > 5 || $j < 1) {
                    $j = 1;
                }
                $i++;
            }
        }
        //Проверка ударов
        if ($atack > 0) {
            $r = $block[$atack] == 1;
        }
        return $r;
    }

    public function contrRestart($id, $at, $v, $rjd = 0)
    {
        //уворот
        $at = $this->mf1Razmen($id, $at, $v, true, $rjd);
        //парирование
        $at = $this->mf3Razmen($id, $at, $v, true, $rjd);
        //контрудар
        //$at = $this->mf5Razmen($id,$at,$v,true,$rjd);
        //блок щитом (если есть щит, конечно)
        $at = $this->mf4Razmen($id, $at, $v, true, $rjd);
        //Проверяем урон
        //$at = $this->yronRazmen($id,$at);
        //крит
        $at = $this->mf2Razmen($id, $at, $v, true, $rjd);
        $at = $this->yronRazmen($id, $at, true, $rjd);
        return $at;
    }

    public function mf1Razmen($id, $at, $v, $pat = false, $rjd = 0)
    {
        global $u;

        if ($pat) {
            $pat = $at;
            $at = $pat['p'];
        } else {
            unset($pat);
        }

        $uid1 = $this->atacks[$id]['uid1'];
        $uid2 = $this->atacks[$id]['uid2'];

        if ($this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod'] > 0) {
            $uid1 = $this->yhod_user(
                $this->atacks[$id]['uid2'], $this->atacks[$id]['uid1'],
                $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod']
            );
        } elseif ($this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod'] > 0) {
            $uid2 = $this->yhod_user(
                $this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'],
                $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod']
            );
        }

        $i = 1;
        while ($i <= 2) {
            if ($i == 1) {
                $a = 1;
                $b = 2;
                $u1 = ${'uid1'};
                $u2 = ${'uid2'};
            } else {
                $a = 2;
                $b = 1;
                $u1 = ${'uid2'};
                $u2 = ${'uid1'};
            }

            //Расчет уворота Цели (u2) от Атакующего (u1)
            $j = 0;
            $wp01 = 3;
            $k01 = 0;
            if ($rjd > 0) {
                $j = $rjd - 1;
            }
            if (is_array($at[$a]['atack'])) {
                while ($j < count($at[$a]['atack']) && $j < 8) {
                    // КУДА БИЛ , ТИП УДАРА
                    if ($k01 == 0 && isset($this->stats[$this->uids[$u1]]['wp3id'])) {
                        //Левая рука
                        $wp01 = 3;
                        $k01 = 1;
                    } else {
                        //Правая рука
                        if (isset($this->stats[$this->uids[$u1]]['wp14id']) && $this->stats[$this->uids[$u1]]['items'][$this->stats[$this->uids[$u1]]['wp14id']]['type'] != 13) {
                            $wp01 = 14;
                        } else {
                            $wp01 = 3;
                        }
                        $k01 = 0;
                    }
                    $witm01 = 0;
                    $witm_type01 = 0;
                    $witm01 = $this->stats[$this->uids[$u1]]['items'][$this->stats[$this->uids[$u1]]['wp' . $wp01 . 'id']];
                    $witm_data01 = ConversionHelper::dataStringToArray($witm01['data']);
                    if ($at[$a]['atack'][$j][2] == $v) {
                        $tyv = $this->mfs(
                            2, [
                            'u1' => $u1,
                            'u2' => $u2,
                            'mf' => $this->stats[$this->uids[$u2]]['m4'],
                            'amf' => (int)$this->stats[$this->uids[$u2]]['m15'],
                            'smf' => ($this->stats[$this->uids[$u1]]['m5'] + $witm_data01['sv_m5']),
                            'asmf' => $this->stats[$this->uids[$u1]]['m21'],
                        ], $this->users[$this->uids[$u1]]['level'], $this->users[$this->uids[$u2]]['level']
                        );
                        if ($tyv == 1 && $this->atacks[$id]['out' . $b] == 0) {
                            //увернулся, гад :)
                            $this->stats[$this->uids[$u1]]['nopryh'] = floor(
                                0 + (int)$this->stats[$this->uids[$u1]]['nopryh']
                            );
                            if (!isset($this->stats[$this->uids[$u1]]['nopryh']) || $this->stats[$this->uids[$u1]]['nopryh'] <= 0) {
                                $at[$a]['atack'][$j][1] = 2;
                            } else {
                                $this->stats[$this->uids[$u1]]['nopryh']--;
                                $this->stats[$this->uids[$u1]]['nopryh_act']++;
                            }
                        }
                    }
                    $j++;
                }
            }
            $i++;
        }
        unset($witm01, $witm_type01, $wp01, $k01);

        if (isset($pat) && $pat) {
            $pat['p'] = $at;
            $at = $pat;
        }
        return $at;
    }

    public function yhod_user($uid1, $uid2, $type)
    {
        // 1 - кто бьет .  2 - в кого бьют . тип
        //Удал летит прямо в противника
        if ($this->import_user == 0) {
            $r = $uid1;
            $rand_user = false;
            if ($type == 2) {
                //Случайный персонаж из своей команды (в том числе игрок)
                $i = 0;
                while ($i < count($this->users)) {
                    if ($this->users[$i]['team'] == $this->users[$this->uids[$uid2]]['team']) {
                        $rand_user[] = $this->users[$i]['id'];
                    }
                    $i++;
                }
            } elseif ($type == 4) {
                //Случайный персонаж, любой
                $i = 0;
                while ($i < count($this->users)) {
                    //if( $this->users[$i]['team'] == $this->users[$this->uids[$uid1]]['team'] ) {
                    $rand_user[] = $this->users[$i]['id'];
                    //}
                    $i++;
                }
            } elseif ($type == 5) {
                //Случайный персонаж, любой (кроме игрока)
                $i = 0;
                while ($i < count($this->users)) {
                    if ($this->users[$i]['team'] == $this->users[$this->uids[$uid2]]['team'] && $uid2 != $this->users[$i]['id']) {
                        $rand_user[] = $this->users[$i]['id'];
                    }
                    $i++;
                }
            } elseif ($type == 6) {
                //Случайный персонаж из команды противника
                $i = 0;
                while ($i < count($this->users)) {
                    if ($this->users[$i]['team'] != $this->users[$this->uids[$uid2]]['team']) {
                        $rand_user[] = $this->users[$i]['id'];
                    }
                    $i++;
                }
            } elseif ($type > 100) {
                //Удар идет в конкретного игрока
                if (!isset($this->users[$this->uids[$type]]) || $this->users[$this->uids[$type]]['id'] != $type) {
                    $r = $uid2;
                } else {
                    $r = $type;
                }
            }
            if ($rand_user && count($rand_user) > 0) {
                $r = $rand_user[rand(0, (count($rand_user) - 1))];
            }
            $this->import_user = $r;
        } else {
            $r = $this->import_user;
        }
        return $r;
    }

    //Сохранение данные

    public function mfs($type, $mf, $lvl1, $lvl2): int
    {
        $rval = 0;
        switch ($type) {
            case 1:
                //Крит
                if ($mf['amf'] < 0) {
                    $mf['amf'] = 0;
                }
                if ($mf['mf'] < 0) {
                    $mf['mf'] = 0;
                }
                if ($mf['mf'] > $mf['smf']) {
                    $rval = 100 - floor(((($mf['smf']) / ($mf['mf'] + 1)) * 100));
                }

                if ($rval < 1) {
                    $rval = 0;
                }
                if ($rval > 75) {
                    $rval = 75;
                }
                if ($mf['amf'] >= 1) {
                    if ($mf['amf'] > 100) {
                        $mf['amf'] = 100;
                    }
                    if (($mf['amf'] * 100) >= mt_rand(1, 10000)) {
                        $rval = 100;
                    }
                }
                break;
            case 2:
                if ($mf['mf'] < 0) {
                    $mf['mf'] = 0;
                }
                if ($mf['amf'] < 0) {
                    $mf['amf'] = 0;
                }
                if ($mf['smf'] < 0) {
                    $mf['smf'] = 0;
                }
                if ($mf['asmf'] < 0) {
                    $mf['asmf'] = 0;
                }
                if ($mf['mf'] > $mf['smf']) {
                    $rval = 100 - floor(((($mf['smf']) / ($mf['mf'] + 1)) * 100)); //2.5
                }
                if ($rval < 1) {
                    $rval = 0;
                }
                if ($rval > 75) {
                    $rval = 75;
                }
                if ($mf['asmf'] >= 0) {
                    if ($mf['asmf'] > 100) {
                        $mf['asmf'] = 100;
                    }
                    if ($mf['asmf'] >= rand(1, 100)) {
                        $rval = 0;
                    }
                }
                if ($mf['amf'] >= 0) {
                    if ($mf['amf'] > 100) {
                        $mf['amf'] = 100;
                    }
                    if ($mf['amf'] >= rand(1, 100)) {
                        $rval = 100;
                    }
                }
                break;
            case 3:
                if ($mf[1] < 1) {
                    $mf[1] = 1;
                }
                if ($mf[2] < 1) {
                    $mf[2] = 1;
                }
                $rval = $mf[1] - $mf[2] / 2;
                if ($rval > 75) {
                    $rval = 75;
                }
                if ($rval < 1) {
                    $rval = 1;
                }
                break;
            case 4:
                $mf = round($mf * 0.6);
                if ($mf < 1) {
                    $mf = 0;
                }
                if ($mf > 100) {
                    $mf = 100;
                }
                $rval = min($mf, 100); //пробой брони
                break;
            case 5:
                if ($mf < 1) {
                    $mf = 0;
                }
                $rval = min($mf, 85); //блок щитом
                break;
            case 6:
                //Контрудар
                if ($mf['a'] > 0) {
                    if ($mf['b'] > 0) {
                        $rval = round($mf['a'] - ($mf['b'] / 2));
                    } else {
                        $rval = $mf['a'];
                    }
                }
                if ($rval < 1) {
                    $rval = 0;
                }
                if ($rval > 75) {
                    $rval = 75;
                }
                break;
        }
        return $this->get_chanse($rval) ? 1 : 0;
    }

    //Отображение НР

    public function mf3Razmen($id, $at, $v, $pat = false, $rjd = 0)
    {
        if ($pat) {
            $pat = $at;
            $at = $pat['p'];
        } else {
            unset($pat);
        }

        $uid1 = $this->atacks[$id]['uid1'];
        $uid2 = $this->atacks[$id]['uid2'];

        if ($this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod'] > 0) {
            $uid1 = $this->yhod_user(
                $this->atacks[$id]['uid2'], $this->atacks[$id]['uid1'],
                $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod']
            );
        } elseif ($this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod'] > 0) {
            $uid2 = $this->yhod_user(
                $this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'],
                $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod']
            );
        }

        $i = 1;
        while ($i <= 2) {
            if ($i == 1) {
                $a = 1;
                $b = 2;
                $u1 = ${'uid1'};
                $u2 = ${'uid2'};
            } else {
                $a = 2;
                $b = 1;
                $u1 = ${'uid2'};
                $u2 = ${'uid1'};
            }

            //Расчет парирования Цели (u2) от Атакующего (u1)
            $j = 0;
            if ($rjd > 0) {
                $j = $rjd - 1;
            }

            if (is_array($at[$a]['atack'])) {
                while ($j < count($at[$a]['atack']) && $j < 8) {
                    // КУДА БИЛ , ТИП УДАРА
                    if ((!isset($this->stats[$this->uids[$u2]]['no_pr1']) || $this->stats[$this->uids[$u2]]['no_pr1'] == 0) && $at[$a]['atack'][$j][2] == $v) {
                        if ($this->mfs(
                                3, [
                                'u1' => $u1,
                                'u2' => $u2,
                                '1' => $this->stats[$this->uids[$u2]]['m7'],
                                '2' => $this->stats[$this->uids[$u1]]['m7'],
                            ], $this->users[$this->uids[$u1]]['level'],
                                $this->users[$this->uids[$u2]]['level']
                            ) == 1 && $this->atacks[$id]['out' . $b] == 0) {
                            //Парировал, гад :)
                            $this->stats[$this->uids[$u1]]['nopryh'] = floor(
                                0 + (int)$this->stats[$this->uids[$u1]]['nopryh']
                            );
                            if ((!isset($this->stats[$this->uids[$u1]]['nopryh']) || $this->stats[$this->uids[$u1]]['nopryh'] == 0) && $this->stats[$this->uids[$u1]]['nopryh_act'] < 1) {
                                $at[$a]['atack'][$j][1] = 6;
                                $this->stats[$this->uids[$u1]]['nopryh']--;
                                $this->stats[$this->uids[$u1]]['nopryh_act']++;
                            }
                        }
                    }
                    $j++;
                }
            }
            $i++;
        }

        if (isset($pat) && $pat) {
            $pat['p'] = $at;
            $at = $pat;
        }

        return $at;
    }


    //Выводим лог боя

    public function mf4Razmen($id, $at, $v, $pat = false, $rjd = 0)
    {
        if ($pat) {
            $pat = $at;
            $at = $pat['p'];
        } else {
            unset($pat);
        }

        $uid1 = $this->atacks[$id]['uid1'];
        $uid2 = $this->atacks[$id]['uid2'];

        if ($this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod'] > 0) {
            $uid1 = $this->yhod_user(
                $this->atacks[$id]['uid2'], $this->atacks[$id]['uid1'],
                $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod']
            );
        } elseif ($this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod'] > 0) {
            $uid2 = $this->yhod_user(
                $this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'],
                $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod']
            );
        }

        $i = 1;
        while ($i <= 2) {
            if ($i == 1) {
                $a = 1;
                $b = 2;
                $u1 = ${'uid1'};
                $u2 = ${'uid2'};
            } else {
                $a = 2;
                $b = 1;
                $u1 = ${'uid2'};
                $u2 = ${'uid1'};
            }
            if ($this->stats[$this->uids[$u2]]['sheld1'] > 0) {
                //Расчет блока щитом Цели (u2) от Атакующего (u1)
                $j = 0;
                while ($j < count($at[$a]['atack']) && $j < 8) {
                    // КУДА БИЛ , ТИП УДАРА
                    if ($at[$a]['atack'][$j][2] == $v) {
                        if ($this->mfs(
                                5,
                                ($this->stats[$this->uids[$u2]]['m8'] / 2 + $this->stats[$this->uids[$u2]]['m18']),
                                $this->users[$this->uids[$u1]]['level'],
                                $this->users[$this->uids[$u2]]['level']
                            ) == 1 && $this->atacks[$id]['out' . $b] == 0) {
                            //блокировал щитом, гад :)
                            $at[$a]['atack'][$j][1] = 7;
                        }
                    }
                    $j++;
                }
            }
            $i++;
        }

        if (isset($pat) && $pat) {
            $pat['p'] = $at;
            $at = $pat;
        }

        return $at;
    }

    //Новый лог Мой Лог

    public function mf2Razmen($id, $at, $v, $pat = false, $rjd = 0)
    {
        global $u;
        if ($pat) {
            $pat = $at;
            $at = $pat['p'];
        } else {
            unset($pat);
        }

        $uid1 = $this->atacks[$id]['uid1'];
        $uid2 = $this->atacks[$id]['uid2'];

        if ($this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod'] > 0) {
            $uid1 = $this->yhod_user(
                $this->atacks[$id]['uid2'], $this->atacks[$id]['uid1'],
                $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod']
            );
        } elseif ($this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod'] > 0) {
            $uid2 = $this->yhod_user(
                $this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'],
                $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod']
            );
        }

        $i = 1;
        while ($i <= 2) {
            if ($i == 1) {
                $a = 1;
                $b = 2;
                $u1 = ${'uid1'};
                $u2 = ${'uid2'};
            } else {
                $a = 2;
                $b = 1;
                $u1 = ${'uid2'};
                $u2 = ${'uid1'};
            }

            //Расчет крита Атакующего (u1) по Цели (u2)
            $j = 0;
            $wp01 = 0;
            $k01 = 0;
            if ($rjd > 0) {
                $j = $rjd - 1;
            }

            if (is_array($at[$a]['atack'])) {
                while ($j < count($at[$a]['atack']) && $j <= 8) {
                    // КУДА БИЛ , ТИП УДАРА
                    if ($k01 == 0 && isset($this->stats[$this->uids[$u1]]['wp3id'])) {
                        //Левая рука
                        $wp01 = 3;
                        $k01 = 1;
                    } else {
                        //Правая рука
                        if (isset($this->stats[$this->uids[$u1]]['wp14id']) && $this->stats[$this->uids[$u1]]['items'][$this->stats[$this->uids[$u1]]['wp14id']]['type'] != 13) {
                            $wp01 = 14;
                        } else {
                            $wp01 = 3;
                        }
                        $k01 = 0;
                    }
                    $witm01 = 0;
                    $witm_type01 = 0;
                    $witm01 = $this->stats[$this->uids[$u1]]['items'][$this->stats[$this->uids[$u1]]['wp' . $wp01 . 'id']];
                    $witm_data01 = ConversionHelper::dataStringToArray($witm01['data']);
                    if ($this->mfs(
                            1, [
                            'u1' => $u1,
                            'u2' => $u2,
                            'mf' => $this->stats[$this->uids[$u1]]['m1'] + $witm_data01['sv_m1'],
                            'amf' => $this->stats[$this->uids[$u1]]['m14'],
                            'smf' => $this->stats[$this->uids[$u2]]['m2'],
                            'aamf1' => (int)$this->stats[$this->uids[$u2]]['enemy_am1'],
                        ], $this->users[$this->uids[$u1]]['level'], $this->users[$this->uids[$u2]]['level']
                        ) == 1) {
                        //кританул, гад :)
                        if ($at[$a]['atack'][$j][1] == 3) {
                            //в блок
                            $at[$a]['atack'][$j][1] = 4; //Тут тест
                        } elseif ($at[$a]['atack'][$j][1] != 2 && $at[$a]['atack'][$j][1] != 6 && $at[$a]['atack'][$j][1] != 7 && $at[$a]['atack'][$j][1] != 8) {
                            //обычный крит
                            $at[$a]['atack'][$j][1] = 5;
                        } else {
                            $at[$a]['atack'][$j][1] = 1;
                        }
                    }
                    $j++;
                }
            }
            $i++;
        }
        unset($witm01, $witm_type01, $k01, $wp01);

        if (isset($pat) && $pat) {
            $pat['p'] = $at;
            $at = $pat;
        }

        return $at;
    }
    //======================

    //Добавляем в лог

    public function yronRazmen($id, $at, $pat = false, $rjd = 0)
    {
        if ($pat) {
            $pat = $at;
            $at = $pat['p'];
        } else {
            unset($pat);
        }

        $uid1 = $this->atacks[$id]['uid1'];
        $uid2 = $this->atacks[$id]['uid2'];

        if ($this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod'] > 0) {
            $yhod = [1 => 1, 2 => 0];
        } elseif ($this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod'] > 0) {
            $yhod = [1 => 0, 2 => 1];
        }

        $i = 1;
        while ($i <= 2) {
            if ($i == 1) {
                $a = 1;
                $b = 2;
                $u1 = ${'uid1'};
                $u2 = ${'uid2'};
            } else {
                $a = 2;
                $b = 1;
                $u1 = ${'uid2'};
                $u2 = ${'uid1'};
            }

            $j = 0;
            $k = 0;
            $wp = 3;
            if ($rjd > 0) {
                $j = $rjd - 1;
            }

            if (is_array($at[$a]['atack'])) {
                while ($j < count($at[$a]['atack']) && $j < 8) {
                    if ($k == 0 && isset($this->stats[$this->uids[$u1]]['wp3id'])) {
                        //Левая рука
                        $wp = 3;
                        $k = 1;
                    } else {
                        //Правая рука
                        if (isset($this->stats[$this->uids[$u1]]['wp14id']) && $this->stats[$this->uids[$u1]]['items'][$this->stats[$this->uids[$u1]]['wp14id']]['type'] != 13) {
                            $wp = 14;
                        } else {
                            if (isset($this->stats[$this->uids[$u1]]['wp3id'])) {
                                $wp = 3;
                            } else {
                                //нет оружия
                                $wp = 3;
                            }
                        }
                        $k = 0;
                    }
                    $witm = $this->stats[$this->uids[$u1]]['items'][$this->stats[$this->uids[$u1]]['wp' . $wp . 'id']];
                    $witm_type = $this->weaponTx($witm);
                    $at[$a]['atack'][$j]['wt'] = $witm['type'];
                    $at[$a]['atack'][$j]['yhod'] = $yhod[$a];
                    if (!isset($at[$a]['atack'][$j]['yron']) && (
                            $at[$a]['atack'][$j][1] == 1 ||
                            $at[$a]['atack'][$j][1] == 4 ||
                            $at[$a]['atack'][$j][1] == 5)
                    ) {
                        $at[$a]['atack'][$j]['yron'] = $this->yronGetrazmen(
                            $u1, $u2, $wp, $at[$a]['atack'][$j][0],
                        );

                        if ($at[$a]['atack'][$j][1] == 4) {
                            $at[$a]['atack'][$j]['yron']['y_old'] = $at[$a]['atack'][$j]['yron']['y'];
                            $at[$a]['atack'][$j]['yron']['y'] = round($at[$a]['atack'][$j]['yron']['k'] / 2);
                        } elseif ($at[$a]['atack'][$j][1] == 5) {
                            $at[$a]['atack'][$j]['yron']['y_old'] = $at[$a]['atack'][$j]['yron']['y'];
                            $at[$a]['atack'][$j]['yron']['y'] = $at[$a]['atack'][$j]['yron']['k'];
                        }
                        $at[$a]['atack'][$j]['yron']['2h'] = $witm['2h'];
                        $at[$a]['atack'][$j]['yron']['w'] = $wp;
                        if ($at[$a]['atack'][$j]['yron']['y'] < 1) {
                            $at[$a]['atack'][$j]['yron']['r'] = '--';
                        } else {
                            $at[$a]['atack'][$j]['yron']['r'] = '-' . $at[$a]['atack'][$j]['yron']['y'];
                        }
                    } else {
                        $at[$a]['atack'][$j]['block'] = $this->yronGetrazmen(
                            $u1, $u2, $wp, $at[$a]['atack'][$j][0],
                            $yhod[$b]
                        );
                        if ($at[$a]['atack'][$j][1] == 4) {
                            $at[$a]['atack'][$j]['block']['y_old'] = $at[$a]['atack'][$j]['block']['y'];
                            $at[$a]['atack'][$j]['block']['y'] = round($at[$a]['atack'][$j]['block']['k'] / 2);
                        } elseif ($at[$a]['atack'][$j][1] == 5) {
                            $at[$a]['atack'][$j]['block']['y_old'] = $at[$a]['atack'][$j]['block']['y'];
                            $at[$a]['atack'][$j]['block']['y'] = $at[$a]['atack'][$j]['block']['k'];
                        }
                        $at[$a]['atack'][$j]['block']['2h'] = $witm['2h'];
                        $at[$a]['atack'][$j]['block']['w'] = $wp;
                        if ($at[$a]['atack'][$j]['block']['y'] < 1) {
                            $at[$a]['atack'][$j]['block']['r'] = '--';
                        } else {
                            $at[$a]['atack'][$j]['block']['r'] = '-' . $at[$a]['atack'][$j]['block']['y'];
                        }
                    }
                    $j++;
                }
            }
            $i++;
        }
        if (isset($pat) && $pat) {
            $pat['p'] = $at;
            $at = $pat;
        }
        return $at;
    }

    ///Комментатор

    public function weaponTx($item)
    {
        global $u;
        $tp = 0;
        if (!isset($item['id'])) {
            $i = 1;
            while ($i <= 4) {
                $itm['tya' . $i] = 1;
                $i++;
            }
        }
        $itm = ConversionHelper::dataStringToArray($item['data']);
        $t[0]['z'] = 0;
        $t[0]['t'] = 0;
        //колящий урон
        $t[1]['z'] = round(0 + $itm['tya1']);
        $t[1]['t'] = 1;
        //рубящий урон
        $t[2]['z'] = round(0 + $itm['tya2']);
        $t[2]['t'] = 2;
        //дробящий урон
        $t[3]['z'] = round(0 + $itm['tya3']);
        $t[3]['t'] = 3;
        //режущий урон
        $t[4]['z'] = round(0 + $itm['tya4']);
        $t[4]['t'] = 4;
        //урон огня
        $t[5]['z'] = round(0 + $itm['tym1']);
        $t[5]['t'] = 5;
        //урон воздуха
        $t[6]['z'] = round(0 + $itm['tym2']);
        $t[6]['t'] = 6;
        //урон воды
        $t[7]['z'] = round(0 + $itm['tym3']);
        $t[7]['t'] = 7;
        //урон земли
        $t[8]['z'] = round(0 + $itm['tym4']);
        $t[8]['t'] = 8;
        //урон света
        $t[9]['z'] = round(0 + $itm['tym5']);
        $t[9]['t'] = 9;
        //урон тьмы
        $t[10]['z'] = round(0 + $itm['tym6']);
        $t[10]['t'] = 10;
        //урон серой магией
        $t[11]['z'] = round(0 + $itm['tym7']);
        $t[11]['t'] = 11;

        $tpt = $t[0]['z'];
        $tpmin = $t[0];
        $tpmax = $t[0];
        $i = 1;

        while ($i <= 11) {
            if ($t[$i]['z'] > $tpt) {
                $tpt = $t[$i]['z'];
                $tpmax = $t[$i];
                $ii = $i;
            }
            $i++;
        }
        $t[$ii]['z'] = 0;

        $tpt = $t[0]['z'];
        $i = 1;
        while ($i <= 11) {
            if ($t[$i]['z'] > $tpt) {
                $tpt = $t[$i]['z'];
                $tpmin = $t[$i];
            }
            $i++;
        }

        $setclass = rand(1, 100);

        if ($setclass > $tpmax['z']) {
            $tp = $tpmin['t'];
        } else {
            $tp = $tpmax['t'];
        }

        return $tp;
    }

    //Расчет типа удара от оружия

    public function yronGetrazmen($uid1, $uid2, $wp, $zona): array
    {
        global $u;

        $r = [
            'y' => 0,
            'r' => '--',
        ];
        //Определяем тип урона
        /*
				Колющий
				Рубящий
				Режущий
				Дробящий
			*/
        $witm = 0;
        $witm_type = 0;

        if ($wp > 0) {
            $witm = $this->stats[$this->uids[$uid1]]['items'][$this->stats[$this->uids[$uid1]]['wp' . $wp . 'id']];
            $witm_data = ConversionHelper::dataStringToArray($witm['data']);
            $witm_type = $this->weaponTx($witm);
        }
        if ($witm_type == 0 || $witm_type == 12) {
            $witm_type2 = '';
        } else {
            $witm_type2 = $witm_type;
        }
        $r['t'] = $witm_type2;
        //Расчет брони
        /*
				голова
				грудь
				живот
				пояс
				ноги
			*/
        $bron = [
            1 => [$this->stats[$this->uids[$uid2]]['mib1'], $this->stats[$this->uids[$uid2]]['mab1']],
            2 => [$this->stats[$this->uids[$uid2]]['mib2'], $this->stats[$this->uids[$uid2]]['mab2']],
            3 => [$this->stats[$this->uids[$uid2]]['mib2'], $this->stats[$this->uids[$uid2]]['mab2']],
            4 => [$this->stats[$this->uids[$uid2]]['mib3'], $this->stats[$this->uids[$uid2]]['mab3']],
            5 => [$this->stats[$this->uids[$uid2]]['mib4'], $this->stats[$this->uids[$uid2]]['mab4']],
        ];
        //
        //Увеличиваем параметры от текущего оружия которым бьем
        $iii = 1;
        while ($iii <= 7) {
            if (isset($witm_data['sv_a' . $iii]) && $witm_data['sv_a' . $iii] != 0) {
                $this->stats[$this->uids[$uid1]]['a' . $iii] += $witm_data['sv_a' . $iii];
            }
            if (isset($witm_data['sv_mg' . $iii]) && $witm_data['sv_mg' . $iii] != 0) {
                $this->stats[$this->uids[$uid1]]['mg' . $iii] += $witm_data['sv_mg' . $iii];
            }
            $iii++;
        }
        $iii = 1;
        while ($iii <= 4) {
            if (isset($witm_data['sv_aall']) && $witm_data['sv_aall'] != 0) {
                $this->stats[$this->uids[$uid1]]['a' . $iii] += $witm_data['sv_aall'];
            }
            $iii++;
        }
        $iii = 1;
        while ($iii <= 4) {
            if (isset($witm_data['sv_mall']) && $witm_data['sv_mall'] != 0) {
                $this->stats[$this->uids[$uid1]]['mg' . $iii] += $witm_data['sv_mall'];
            }
            $iii++;
        }
        $iii = 1;
        while ($iii <= 7) {
            if (isset($witm_data['sv_m2all']) && $witm_data['sv_m2all'] != 0) {
                $this->stats[$this->uids[$uid1]]['mg' . $iii] += $witm_data['sv_m2all'];
            }
            $iii++;
        }

        if (isset($witm_data['sv_m3']) && $witm_data['sv_m3'] != 0) {
            $this->stats[$this->uids[$uid1]]['m3'] += $witm_data['sv_m3'];
        }

        $iii = 1;
        while ($iii <= 7) {
            if (isset($witm_data['sv_pa' . $iii]) && $witm_data['sv_pa' . $iii] != 0) {
                $this->stats[$this->uids[$uid1]]['pa' . $iii] += $witm_data['sv_pa' . $iii] + $witm_data['sv_m10'];
            }
            if (isset($witm_data['sv_pm' . $iii]) && $witm_data['sv_pm' . $iii] != 0) {
                $this->stats[$this->uids[$uid1]]['pm' . $iii] += $witm_data['sv_pm' . $iii] + $witm_data['sv_m11a'];
                if ($iii < 5) {
                    $this->stats[$this->uids[$uid1]]['pm' . $iii] += $witm_data['sv_m11'];
                }
            }
            $iii++;
        }
        //
        //мощность + подавление мощности противником
        $wAp = 0;
        $w3p = 0;
        $w14p = 0;

        if ($witm_type == 12) {
            //удар кулаком
            $wAp += $this->stats[$this->uids[$uid1]]['m10'];
            if ($this->users[$this->uids[$uid1]]['align'] == 7) {
                $wAp += 15;
            }
        } elseif ($witm_type < 5) {
            $wAp += $this->stats[$this->uids[$uid1]]['pa' . $witm_type . '']/* + $this->stats[$this->uids[$uid1]]['m10'] + $witm_data['sv_pa'.$witm_type.'']*/
            ;
            $wAp -= $this->stats[$this->uids[$uid2]]['antpa' . $witm_type . ''];
        } else {
            $wAp += $this->stats[$this->uids[$uid1]]['m10'] + $this->stats[$this->uids[$uid1]]['pm' . ($witm_type - 4) . ''] + $this->stats[$this->uids[$uid1]]['m11a'] + $witm_data['sv_pm' . ($witm_type - 4) . ''];
            $wAp -= $this->stats[$this->uids[$uid2]]['antpm' . ($witm_type - 4) . ''];
        }

        //Владение данным оружием
        $vladenie = 0;

        //Пробой брони
        $proboi = 0;
        $witm_data['m9'] = $this->stats[$this->uids[$uid1]]['m9'];
        if (rand(1, 100) < floor($witm_data['m9'] / 2)) {
            $proboi = floor($witm_data['m9'] / 2);
            $r['pb'] = 1;
        }

        $y = $this->yrn(
            $this->stats[$this->uids[$uid1]],
            $this->stats[$this->uids[$uid2]],
            $this->users[$this->uids[$uid1]],
            $this->users[$this->uids[$uid2]],
            $this->users[$this->uids[$uid1]]['level'],
            $this->users[$this->uids[$uid2]]['level'],
            $witm_type,
            $this->stats[$this->uids[$uid1]]['minAtack'], //мин. урон (добавочный)
            $this->stats[$this->uids[$uid1]]['maxAtack'], //макс. урон
            $bron[$zona][0], //броня мин.
            $bron[$zona][1], //броня макс
            $vladenie, //владения
            (($wAp /*+ $w3p + $w14p*/)), //мощность урона
            (round($this->stats[$this->uids[$uid1]]['m3'])), //мощность крита
            (($this->stats[$this->uids[$uid2]]['za' . $witm_type2]) - $this->stats[$this->uids[$uid1]]['pza']),
            //защита от урона
            $this->stats[$this->uids[$uid1]]['ozash'], //подавление защиты
            $proboi, //пробой брони
            0, //хз
            ($witm_data['sv_yron_min'] + $this->stats[$this->uids[$uid1]]['yron_min']),
            ($witm_data['sv_yron_max'] + $this->stats[$this->uids[$uid1]]['yron_max']),
            $this->stats[$this->uids[$uid2]]['zaproc'],
            $this->stats[$this->uids[$uid2]]['zmproc'],
            (($this->stats[$this->uids[$uid2]]['zm' . ($witm_type2 - 4)]) - round(
                    $this->stats[$this->uids[$uid1]]['pzm'] * 0.8
                )),
            //защита от урона
            $this->stats[$this->uids[$uid1]]['omzash'], //подавление защиты
            $witm['type'],
            $witm
        );

        $r['y'] = round(rand($y['min'] + $proboi, $y['max'] + round($proboi / 2)));
        $r['k'] = round(rand($y['Kmin'] + round($proboi / 4), $y['Kmax'] + round($proboi / 8)));

        $r['m_y'] = $y['max'];
        $r['m_k'] = $y['Kmax'];

        $r['bRND'] = $y['bRND'];

        $r['w_type'] = $witm_type;

        //Если второе оружие - урон ниже на 50%
        $wp1 = $this->stats[$this->uids[$uid1]]['items'][$this->stats[$this->uids[$uid1]]['wp3id']];
        $wp2 = $this->stats[$this->uids[$uid1]]['items'][$this->stats[$this->uids[$uid1]]['wp14id']];

        //тип от оружия
        if ($witm['type'] == 18) {
            $tp = 1;
        } elseif ($witm['type'] == 19) {
            $tp = 2;
        } elseif ($witm['type'] == 20) {
            $tp = 3;
        } elseif ($witm['type'] == 21) {
            $tp = 4;
        } else {
            $tp = 0;
        }

        if ($tp != $witm_type && $wp > 0) // ТУТ
        {
            (int)$r['y'] = round((int)$r['y'] / 3);
            $r['r'] = round($r['r'] / 3);
            $r['k'] = round($r['k'] / 3);
            $r['m_k'] = round($r['m_k'] / 3);
            $r['m_y'] = round($r['m_y'] / 3);
        }

        if (isset($this->stats[$this->uids[$uid2]]['zaproc'])) {
            $r['y'] = round($r['y'] - $r['y'] * $this->stats[$this->uids[$uid2]]['zaproc'] / 100);
            (int)$r['r'] = round((int)$r['r'] - (int)$r['r'] * (int)$this->stats[$this->uids[$uid2]]['zaproc'] / 100);
            $r['k'] = round($r['k'] - $r['k'] * $this->stats[$this->uids[$uid2]]['zaproc'] / 100);
            $r['m_k'] = round($r['m_k'] - $r['m_k'] * $this->stats[$this->uids[$uid2]]['zaproc'] / 100);
            $r['m_y'] = round($r['m_y'] - $r['m_y'] * $this->stats[$this->uids[$uid2]]['zaproc'] / 100);
            if ($r['k'] < 1) {
                $r['k'] = 2;
            }
        }

        if ($r['y'] < 1) {
            $r['y'] = 1;
        }
        if ($r['r'] >= 0) {
            $r['r'] = -1;
        }
        if ($r['k'] < 1) {
            $r['k'] = 1;
        }
        if ($r['m_k'] < 1) {
            $r['m_k'] = 1;
        }
        if ($r['m_y'] < 1) {
            $r['m_y'] = 1;
        }
        return $r;
    }


    //Расчет урона от оружия

    public function yrn(
        $st1,
        $st2,
        $u1,
        $u2,
        $level,
        $level2 = null,
        $type,
        $min_yron,
        $max_yron,
        $min_bron = null,
        $max_bron = null,
        $vladenie,
        $power_yron,
        $power_krit,
        $zashita,
        $ozashita = null,
        $proboi,
        $weapom_damage,
        $weapom_min,
        $weapom_max,
        $za_proc = null,
        $zm_proc = null,
        $zashitam = null, // pzm тут!
        $ozashitam = null,
        $wp_type,
        $witm
    ): array
    {
        global $u;

        //Поправка
        if ($zashita < 1) {
            $zashita = 1;
        }

        if ($min_yron < 1) {
            $min_yron = 1;
        }

        if ($max_yron < 1) {
            $max_yron = 1;
        }

        if (!isset($type) || $type == '') {
            $type = 12;
        }

        //Параметры для возврвата
        $r = ['min' => 0, 'max' => 0, 'type' => $type];
        $p = [
            'Y' => 0,
            'B' => [0 => 0, 1 => 0, 'rnd' => false],
            'L' => $level,
            'W' => [$weapom_min, $weapom_max, 'rnd' => false], //минимальный урон //максимальный урон добавочный
            'U' => $vladenie, //владение оружием
            'M' => $power_yron, //мощность урона
            'K' => $power_krit, //мощность крита
            'S' => 0,  //влияние статов на проф.урон
            'T' => 1,   //Кф. оружия
            'iT' => 1,    //Итоговый доп. Кф. оружия
            /*
					(S) - влияние наших статов на профильный урон
					Колющий: S = Сила * 0,3 + Ловкость * 0,7
					Рубящий: S = Сила * 0,5 + Ловкость * 0,25 + Интуиция * 0,25
					Дробящий: S = Сила * 1
					Режущий: S = Сила * 0,3 + Интуиция * 0,7
				*/
        ];

        $witmdata = \Core\ConversionHelper::dataStringToArray($witm['data']);

        //Расчет типа урона

        if ($wp_type == 18) {
            $r['type'] = 1;
        } elseif ($wp_type == 19) {
            $r['type'] = 2;
        } elseif ($wp_type == 20) {
            $r['type'] = 3;
        } elseif ($wp_type == 21) {
            $r['type'] = 4;
        } else {
            $r['type'] = 0;
        }
        //ТУТ Профильный урон
        //колющий
        if ($r['type'] == 1) {
            $p['S'] = $st1['s1'] * 0.25 + $st1['s2'] * 0.75;
            $p['U'] = $st1['a1'] * 1.00; //кинжалы
            //рубящий
        } elseif ($r['type'] == 2) {
            $p['S'] = $st1['s1'] * 1.20;
            $p['U'] = $st1['a2'] * 1.00; //топоры
            //дробящий
        } elseif ($r['type'] == 3) {
            $p['S'] = $st1['s1'] * 0.5 + $st1['s4'] * 1.00;
            $p['U'] = $st1['a3'] * 1.00; //дубины
            //режущий
        } elseif ($r['type'] == 4) {
            $p['S'] = $st1['s3'] * 1.00;
            $p['U'] = $st1['a4'] * 1.00; //мечи
            //Магиечески
        } else {
            $p['S'] = 0;
            $p['U'] = 0; // для кулака(нужно переписывать
        }

        $r['bron']['rnd'] = rand($r['bron'][0], $r['bron'][1]);

        //Остальные расчеты	 (коэфицент)
        $p['B'][0] = 2 + $level + $st1['s1'] - round($st1['s1'] / 5);
        $p['B'][1] = $p['B'][0] + 3;
        $p['B']['rnd'] = rand($p['B'][0], $p['B'][1]);
        $p['W']['rnd'] = rand($p['W'][0], $p['W'][1]);

        //Обычный урон
        if ($r['type'] == 12) {
            $r['min'] = ($p['B'][0] + $weapom_min) * $p['T'] * (1 + $p['M'] / 100);
            $r['max'] = ($p['B'][1] + $weapom_max) * $p['T'] * (1 + $p['M'] / 100);
        } else {
            $r['min'] = (($p['B'][0] + $p['S'] * 2 + $weapom_min * 2 + $p['U'] * 2) * $p['T']) * (1 + $p['M'] / 100);
            $r['max'] = (($p['B'][1] + $p['S'] * 2 + $weapom_max * 2 + $p['U'] * 2) * $p['T']) * (1 + $p['M'] / 100);
        }

        $r['bRND'] = $p['B']['rnd'];
        $r['Kmin'] = ceil((2 + (0 + $p['K'] / 100)) * $r['min']);
        $r['Kmax'] = ceil((2 + (0 + $p['K'] / 100)) * $r['max']);

        //Расчет брони
        //для обычного
        if ($r['type'] < 5 || $r['type'] == 12) {
            $r['min_abron'] = round($r['min'] * 0.05);
            $r['max_abron'] = round($r['max'] * 0.05);
            if ($proboi != 0) {
                $r['bron']['rndold'] = $r['bron']['rnd'];
                $r['bron']['rnd'] = 0;
            }
            $r['Kmin'] -= $r['bron']['rnd'] * 2; //было умножить на 2
            $r['Kmax'] -= $r['bron']['rnd'] * 2; //было умножить на 2
            $r['min'] -= $r['bron']['rnd']; //не было деления ни на чо.
            $r['max'] -= $r['bron']['rnd']; //не было деления ни на чо.
        }

        //Расчет защиты (не более 80%)
        if ($r['type'] < 5 || $r['type'] == 12) {
            $r['min'] = round($r['min'] / 100 * (100 - $this->zago($st2['za'])));
            $r['max'] = round($r['max'] / 100 * (100 - $this->zago($st2['za'])));
            $r['Kmin'] = round($r['Kmin'] / 100 * (100 - $this->zago($st2['za'])));
            $r['Kmax'] = round($r['Kmax'] / 100 * (100 - $this->zago($st2['za'])));
        } else {
            $r['min'] = round($r['min'] / 100 * (100 - $this->zmgo($st2['zm'])));
            $r['max'] = round($r['max'] / 100 * (100 - $this->zmgo($st2['zm'])));
            $r['Kmin'] = round($r['Kmin'] / 100 * (100 - $this->zmgo($st2['zm'])));
            $r['Kmax'] = round($r['Kmax'] / 100 * (100 - $this->zmgo($st2['zm'])));
        }

        $r['min'] = round($r['min']);
        $r['max'] = round($r['max']);
        $r['Kmin'] = round($r['Kmin']);
        $r['Kmax'] = round($r['Kmax']);

        $min_yrn = 0; //%

        if ($u1['clone'] > 0) {
            $min_yrn = 75;
        }

        $r['min'] -= floor($r['min'] / 100 * $min_yrn);
        $r['max'] -= floor($r['max'] / 100 * $min_yrn);
        $r['Kmin'] -= floor($r['Kmin'] / 100 * ($min_yrn));
        $r['Kmax'] -= floor($r['Kmax'] / 100 * ($min_yrn));
        $r['min_'] -= floor($r['min_'] / 100 * $min_yrn);
        $r['max_'] -= floor($r['max_'] / 100 * $min_yrn);
        $r['Kmin_'] -= floor($r['Kmin_'] / 100 * ($min_yrn));
        $r['Kmax_'] -= floor($r['Kmax_'] / 100 * ($min_yrn));

        $defd = mysql_fetch_array(
            mysql_query(
                'SELECT SUM(`vals`) FROM `battle_actions` WHERE `btl` = "' . $this->info['id'] . '" AND `vars` = "use_defteam' . $u2['team'] . '" LIMIT 1'
            )
        );
        if ($defd[0] > 100) {
            $defd[0] = 100;
        }
        $defd = 0 + $defd[0];
        $powd = mysql_fetch_array(
            mysql_query(
                'SELECT SUM(`vals`) FROM `battle_actions` WHERE `btl` = "' . $this->info['id'] . '" AND `vars` = "use_powteam' . $u1['team'] . '" LIMIT 1'
            )
        );
        if ($powd[0] > 100) {
            $powd[0] = 100;
        }
        $powd = 0 + $powd[0];
        $defd = $defd - $powd;

        $r['min'] -= floor($defd);
        $r['max'] -= floor($defd);
        $r['Kmin'] -= floor($defd * 2);
        $r['Kmax'] -= floor($defd * 2);
        $r['min_'] -= floor($defd);
        $r['max_'] -= floor($defd);
        $r['Kmin_'] -= floor($defd * 2);
        $r['Kmax_'] -= floor($defd * 2);
        $r['min'] += $st1['maxAtack'];
        $r['max'] += $st1['maxAtack'];
        $r['Kmin'] += $st1['maxAtack'] * 2;
        $r['Kmin'] += $st1['maxAtack'] * 2;

        if ($r['min'] < 1) {
            $r['min'] = 1;
        }
        if ($r['max'] < 1) {
            $r['max'] = 1;
        }
        if ($r['Kmin'] < 2) {
            $r['Kmin'] = 2;
        }
        if ($r['Kmax'] < 2) {
            $r['Kmax'] = 2;
        }
        if ($r['Kmin_'] < 2) {
            $r['Kmin_'] = 2;
        }
        if ($r['Kmin_'] < 2) {
            $r['Kmax_'] = 2;
        }

        $r['m_k'] = $r['Kmax'];

        return $r;
    }

    //Расчет урона от оружия

    public function zago($v): float
    {
        if ($v > 1700) {
            $v = 1700;
        }
        return round((1 - (pow(0.5, ($v / 399.51)))) * 100, 2);
    }


    //Расчет защиты

    public function zmgo($v)
    {
        return (1 - (pow(0.5, ($v / 250)))) * 100;
    }

    //Расчет защиты (магия)

    public function priemsTestRazmen($id, $at)
    {
        $uid1 = $this->atacks[$id]['uid1'];
        $uid2 = $this->atacks[$id]['uid2'];

        $i = 1;
        while ($i <= 2) {
            if ($i == 1) {
                $a = 1;
                $b = 2;
                $u1 = ${'uid1'};
                $u2 = ${'uid2'};
            } else {
                $a = 2;
                $b = 1;
                $u1 = ${'uid2'};
                $u2 = ${'uid1'};
            }

            if (!isset($at['p']['p_cast'])) {
                $at['p'] = $at;
                $at['p']['p_cast'] = true;
            }

            //ставка

            $j = 0;
            while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
                if ($this->stats[$this->uids[$u1]]['u_priem'][$j][1] == 220 || $this->stats[$this->uids[$u1]]['u_priem'][$j][1] == 237
                    || $this->stats[$this->uids[$u1]]['u_priem'][$j][1] == 286 || $this->stats[$this->uids[$u1]]['u_priem'][$j][1] == 287 || $this->stats[$this->uids[$u1]]['u_priem'][$j][1] == 288
                    || $this->stats[$this->uids[$u1]]['u_priem'][$j][1] == 213) {
                    if (file_exists(
                        '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                    )) {
                        $pr_used_this = $u1;
                        require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                        $at = $fx_priem($id, $at, $u1, $j);
                        unset(${'fx_priem'});
                    }
                }
                $j++;
            }

            //Приемы ухода от удара
            if (!isset($this->stats[$this->uids[$u2]]['nopryh']) || $this->stats[$this->uids[$u2]]['nopryh'] == 0) {
                $j = 0;
                while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
                    if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 1) {
                        if (file_exists(
                            '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                        )) {
                            $pr_used_this = $u1;
                            require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                            $at = $fx_priem($id, $at, $u1, $j);
                            unset(${'fx_priem'});
                            $this->stats[$this->uids[$u2]]['nopryh']--;
                        }
                    }
                    $j++;
                }
            }
            //Приемы крита
            $j = 0;
            while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
                if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 2) {
                    if (file_exists(
                        '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                    )) {
                        $pr_used_this = $u1;
                        require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                        $at = $fx_priem($id, $at, $u1, $j);
                        unset(${'fx_priem'});
                    }
                }
                $j++;
            }

            //Приемы атаки
            $j = 0;
            while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
                if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 3) {
                    if (file_exists(
                        '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                    )) {
                        $pr_used_this = $u1;
                        require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                        if (isset($fx_priem)) {
                            $at = $fx_priem($id, $at, $u1, $j);
                        }
                        unset(${'fx_priem'});
                    }
                }
                $j++;
            }

            //Приемы защиты
            $j = 0;
            while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
                if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 4) {
                    if (!$this->testPriemVarTrueZash(
                        $i, 3, $this->stats[$this->uids[$u1]]['u_priem'][$j][1], $a, $b,
                        $u1, $u2
                    )) {
                    } elseif (file_exists(
                        '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                    )) {
                        $pr_used_this = $u1;
                        require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                        if (isset($fx_priem)) {
                            $at = $fx_priem($id, $at, $u1, $j);
                        }
                        unset(${'fx_priem'});
                    }
                }
                $j++;
            }

            //Прочие приемы
            $j = 0;
            while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
                if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 5) {
                    if (file_exists(
                        '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                    )) {
                        $pr_used_this = $u1;
                        require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                        if (isset($fx_priem)) {
                            $at = $fx_priem($id, $at, $u1, $j);
                        }
                        unset(${'fx_priem'});
                    }
                }
                $j++;
            }
            $i++;
        }

        $i = 1;
        while ($i <= 2) {
            if ($i == 1) {
                $a = 1;
                $b = 2;
                $u1 = ${'uid1'};
                $u2 = ${'uid2'};
            } else {
                $a = 2;
                $b = 1;
                $u1 = ${'uid2'};
                $u2 = ${'uid1'};
            }

            if (!isset($at['p']['p_cast'])) {
                $at['p'] = $at;
                $at['p']['p_cast'] = true;
            }

            //Прочие приемы
            $j = 0;
            while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
                if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 8) {
                    if (file_exists(
                        '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                    )) {
                        $pr_used_this = $u1;
                        require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                        $at = $fx_priem($id, $at, $u1, $j);
                        unset(${'fx_priem'});
                    }
                }
                $j++;
            }

            //Прочие приемы
            $j = 0;
            while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
                if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 9) {
                    if (file_exists(
                        '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                    )) {
                        $pr_used_this = $u1;
                        require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                        $at = $fx_priem($id, $at, $u1, $j);
                        unset(${'fx_priem'});
                    }
                }
                $j++;
            }
            $i++;
        }
        return $at;
    }

    public function priemsRestartRazmen($id, $at)
    {
        if (isset($at['p'])) {
            //Проверка
            $uid1 = $this->atacks[$id]['uid1'];
            $uid2 = $this->atacks[$id]['uid2'];
            /*
					Если возникнут проблемы с приемами, придется переписать алгоритм, сейчас он выглядит так:
						Цикл 1. Проверяем пользователя
						Цикл 2 внутри Цикла 1. Проверяем приемы поторые пользователь использовал
					Придется сделать:
						Цикл 1. Проверяем пользователя
						Цикл 2 внутри Цикла 1. Проверяем приемы уворота
						Цикл 3. Проверяем пользователя
						Цикл 4 внутри Цикла 3. Проверяем приемы крита
						и т.д.
				*/
            $i = 1;
            while ($i <= 2) {
                if ($i == 1) {
                    $a = 1;
                    $b = 2;
                    $u1 = ${'uid1'};
                    $u2 = ${'uid2'};
                } else {
                    $a = 2;
                    $b = 1;
                    $u1 = ${'uid2'};
                    $u2 = ${'uid1'};
                }

                if (!isset($at['p']['p_cast'])) {
                    $at['p'] = $at;
                    $at['p']['p_cast'] = true;
                }

                //Приемы ухода от удара
                if (!isset($this->stats[$this->uids[$u2]]['nopryh']) || $this->stats[$this->uids[$u2]]['nopryh'] == 0) {
                    $j = 0;
                    while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
                        if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 1) {
                            if (file_exists(
                                '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                            )) {
                                $pr_tested_this = $u1;
                                require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                                $at = $fx_priem($id, $at, $u1, $j);
                                unset(${'fx_priem'});
                                $this->stats[$this->uids[$u2]]['nopryh']--;
                            }
                        }
                        $j++;
                    }
                }
                //Приемы крита
                $j = 0;
                while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
                    if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 2) {
                        if (file_exists(
                            '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                        )) {
                            $pr_tested_this = $u1;
                            require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                            $at = $fx_priem($id, $at, $u1, $j);
                            unset(${'fx_priem'});
                        }
                    }
                    $j++;
                }
                //Приемы защиты
                $j = 0;
                while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
                    if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 4) {
                        if ($this->testPriemVarTrueZash(
                                $i, 4, $this->stats[$this->uids[$u1]]['u_priem'][$j][1], $a, $b,
                                $u1, $u2
                            ) == false) {
                        } elseif (file_exists(
                            '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                        )) {
                            $pr_tested_this = $u1;
                            require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                            $at = $fx_priem($id, $at, $u1, $j);
                            unset(${'fx_priem'});
                        }
                    }
                    $j++;
                }
                //Приемы атаки
                $j = 0;
                while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
                    if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 3) {
                        if (file_exists(
                            '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                        )) {
                            $pr_tested_this = $u1;
                            require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                            $at = $fx_priem($id, $at, $u1, $j);
                            unset(${'fx_priem'});
                        }
                    }
                    $j++;
                }
                //Прочие приемы
                $j = 0;
                while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
                    if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 5) {
                        if (file_exists(
                            '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                        )) {
                            $pr_tested_this = $u1;
                            require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                            $at = $fx_priem($id, $at, $u1, $j);
                            unset(${'fx_priem'});
                        }
                    }
                    $j++;
                }
                //Прочие приемы
                $j = 0;
                while ($j <= count($this->stats[$this->uids[$u2]]['u_priem'])) {
                    if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u2]]['u_priem'][$j][4] == 8) {
                        if (file_exists(
                            '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u2]]['u_priem'][$j][1] . '.php'
                        )) {
                            $pr_tested_this = $u2;
                            require('priem/' . $this->stats[$this->uids[$u2]]['u_priem'][$j][1] . '.php');
                            $at = $fx_priem($id, $at, $u2, $j);
                            unset(${'fx_priem'});
                        }
                    }
                    $j++;
                }
                //Прочие приемы
                $j = 0;
                while ($j <= count($this->stats[$this->uids[$u2]]['u_priem'])) {
                    if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u2]]['u_priem'][$j][4] == 9) {
                        if (file_exists(
                            '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u2]]['u_priem'][$j][1] . '.php'
                        )) {
                            $pr_tested_this = $u2;
                            require('priem/' . $this->stats[$this->uids[$u2]]['u_priem'][$j][1] . '.php');
                            $at = $fx_priem($id, $at, $u2, $j);
                            unset(${'fx_priem'});
                        }
                    }
                    $j++;
                }

                $i++;
            }
            $at = $at['p'];
            unset($at['p']);
        }
        return $at;
    }

    public function testPogB($uid, $yr, $pliid, $test = 0)
    {
        $yr2 = $yr;
        $checktuman = mysql_fetch_array(
            mysql_query(
                'SELECT * FROM `eff_users` WHERE `uid` = "' . $uid . '" 
			AND (`v2` = 273 OR `v2` = 286 OR `v2` = 287 OR `v2` = 288)
			AND `delete` =0 LIMIT 1'
            )
        ); //проверка на туманный образ
        if ($yr > 0 && !isset($checktuman['id'])) {
            $testmana = false;
            global $u, $priem;
            $i = 0;
            $ypg22 = 0;
            while ($i < count($this->stats[$this->uids[$uid]]['set_pog2'])) {
                $j = $this->stats[$this->uids[$uid]]['set_pog2'][$i];
                if ($this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['id'] == $pliid || $test == 1) {
                    $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data'] = str_replace(
                        'add_pog2=' . $j['y'],
                        'add_pog2=$', $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data']
                    );
                    $dt3 = ConversionHelper::dataStringToArray($this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data']);
                    $dt30 = 0;
                    $dt30 = floor($j['y'] / $yr2 * 100);
                    if ($dt30 < $dt3['add_pog2p']) {
                        $dt3['add_pog2p'] = $dt30;
                    }
                    unset($dt30);
                    if (isset($dt3['add_pog2mp'])) {
                        if ((round(
                                round($yr2 / 100 * (100 - $dt3['add_pog2p'])) * $dt3['add_pog2mp']
                            )) > $this->stats[$this->uids[$uid]]['mpNow']) {
                            //не хватило маны, считаем сколько хватит % от поглощенного урона
                            $j['yhj'] = $this->stats[$this->uids[$uid]]['mpNow'] / (round(
                                    round($yr2 / 100 * (100 - $dt3['add_pog2p'])) * $dt3['add_pog2mp']
                                )) * 100;
                            $j['yhj'] = floor($j['yhj']); //Сколько % мы можем поглотить
                            $dt3['add_pog2p'] = floor($dt3['add_pog2p'] / 100 * $j['yhj']);
                        }
                        if ($test == 1) {
                            $priem->minMana($uid, round(round($yr2 / 100 * $dt3['add_pog2p']) * $dt3['add_pog2mp']));
                        }
                    }
                    if (!isset($this->poglast[$uid])) {
                        $this->poglast[$uid] = 0;
                    }
                    $this->poglast[$uid] += $yr2;
                    if ($test == 1) {
                        //$j['y'] -= $this->poglast[$uid]; // осталось для поглощения
                        $j['y'] -= round($this->poglast[$uid] / 100 * $dt3['add_pog2p']);
                        $priem->minMana(
                            $uid,
                            round(round($this->poglast[$uid] / 100 * $dt3['add_pog2p']) * $dt3['add_pog2mp'])
                        );
                    }
                    if (isset($dt3['add_pog2p'])) {
                        $yr2 = round($yr2 / 100 * (100 - $dt3['add_pog2p']));
                    }
                    if ($j['y'] < 0 || ($this->stats[$this->uids[$uid]]['mpNow'] <= 0 && $dt3['add_pog2mp'] > 0)) {
                        $dt2 = ConversionHelper::dataStringToArray($this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data']);
                        if (isset($dt2['endPog']) && $dt2['endPog'] == 1) {
                            //удаляем прием
                            //Добавляем в лог
                            $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['priem'] = mysql_fetch_array(
                                mysql_query(
                                    'SELECT * FROM `priems` WHERE `id` = "' . $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['v2'] . '" LIMIT 1'
                                )
                            );
                            $this->delPriem(
                                $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1],
                                $this->users[$this->uids[$uid]], 4, $uid
                            );
                            $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1] = 'delete';
                        }
                        unset($dt2);
                        $j['y'] = 0;
                    }
                    $this->stats[$this->uids[$uid]]['set_pog'][$i]['y'] = $j['y'];
                    if (isset($this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data'])) {
                        $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data'] = str_replace(
                            'add_pog2=$',
                            'add_pog2=' . $j['y'], $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data']
                        );
                        $upd = mysql_query(
                            'UPDATE `eff_users` SET `data` = "' . $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data'] . '" WHERE `id` = "' . $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['id'] . '" LIMIT 1'
                        );
                    }
                    if ($j['y'] - $this->poglast[$uid] + $yr2 < 0) {
                        $yr -= $yr + ($j['y'] - $this->poglast[$uid] + $yr2);
                        $yr2 = $yr;
                        $i = count($this->stats[$this->uids[$uid]]['set_pog2']) + 1;
                    }
                }
                $i++;
            }
        }
        unset($checktuman);
        return $yr2;
    }

    public function updateHealth($id, $at): array
    {
        $uid1 = $this->atacks[$id]['uid1'];
        $uid2 = $this->atacks[$id]['uid2'];

        if ($this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod'] > 0) {
            $uid1 = $this->yhod_user(
                $this->atacks[$id]['uid2'], $this->atacks[$id]['uid1'],
                $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod']
            );
        } elseif ($this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod'] > 0) {
            $uid2 = $this->yhod_user(
                $this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'],
                $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod']
            );
        }

        $i = 1;
        while ($i <= 2) {
            if ($i == 1) {
                $a = 1;
                $b = 2;
                $u1 = ${'uid1'};
                $u2 = ${'uid2'};
            } else {
                $a = 2;
                $b = 1;
                $u1 = ${'uid2'};
                $u2 = ${'uid1'};
            }

            //Рассчет дополнительных тактик
            if ($this->atacks[$id]['out' . $b] > 0) {
                //Игрок ${'u'.$a} получает тактики, возможно
                if (rand(0, 100) < min(floor($this->stats[$this->uids[$u1]]['m6'] / 5), 20)) {
                    //выдаем тактику контрудара
                    if ($this->stats[$this->uids[$u2]]['this_animal'] == 0) {
                        $this->users[$this->uids[$u1]]['tactic3']++;
                    }
                }
                if (rand(0, 100) < min(floor($this->stats[$this->uids[$u1]]['m8'] / 4), 20)) {
                    //выдаем тактику щита
                    if ($this->stats[$this->uids[$u2]]['this_animal'] == 0) {
                        $this->users[$this->uids[$u1]]['tactic4']++;
                    }
                }
            }

            //Расчет удара Цели (u2) по Атакующему (u1)
            $j = 0;
            $k = 0;
            $wp = 3;
            while ($j < count($at[$a]['atack']) && $j < 8) {
                //Добавляем тактики
                if ($at[$a]['atack'][$j][1] == 1) {
                    //u1 ударил обычным ударом u2
                    if ($this->stats[$this->uids[$u2]]['this_animal'] == 0) {
                        $this->users[$this->uids[$u1]]['tactic1']++;
                    }
                    //Двуручка
                    if ($at[$a]['atack'][$j]['yron']['2h'] == 1 && $this->stats[$this->uids[$u2]]['this_animal'] == 0) {
                        $this->users[$this->uids[$u1]]['tactic1'] += 2;
                    }
                } elseif ($at[$a]['atack'][$j][1] != 2) {
                    if ($at[$a]['atack'][$j][1] == 3) {
                        //u2 заблокировал удар u1
                        if ($this->stats[$this->uids[$u2]]['this_animal'] == 0) {
                            $this->users[$this->uids[$u2]]['tactic4']++;
                        }
                    } elseif ($at[$a]['atack'][$j][1] == 4) {
                        //u1 пробил блок u2 критом
                        if (!isset($at[$a]['atack'][$j]['notactic2'])) {
                            if ($this->stats[$this->uids[$u2]]['this_animal'] == 0) {
                                $this->users[$this->uids[$u1]]['tactic2']++;
                            }
                        }
                        $this->users[$this->uids[$u2]]['tactic4']++; //тактика за пробив блок
                    } elseif ($at[$a]['atack'][$j][1] == 5) {
                        //u1 ударил критическим ударом u2
                        if (!isset($at[$a]['atack'][$j]['notactic2'])) {
                            if ($this->stats[$this->uids[$u2]]['this_animal'] == 0) {
                                $this->users[$this->uids[$u1]]['tactic2'] += 2;
                            }
                            //Двуручка
                            if ($at[$a]['atack'][$j]['yron']['2h'] == 1 && $this->stats[$this->uids[$u2]]['this_animal'] == 0) {
                                $this->users[$this->uids[$u1]]['tactic2'] += 1;
                            }
                        }
                    } elseif ($at[$a]['atack'][$j][1] == 6) {
                        //u2 парировал удар u1
                        if (!isset($at[$a]['atack'][$j]['notactic5']) && $this->stats[$this->uids[$u1]]['this_animal'] == 0) {
                            $this->users[$this->uids[$u2]]['tactic5']++;
                        }
                    } elseif ($at[$a]['atack'][$j][1] == 7) {
                        //u2 блокировал щитом удар u1 //ТУТ ЩИТ
                        if ($this->stats[$this->uids[$u2]]['this_animal'] == 0) {
                            $this->users[$this->uids[$u2]]['tactic4']++;
                        }
                    } elseif ($at[$a]['atack'][$j][1] == 8) {
                        //u2 увернулся от удара u1 и нанес по нему контрудар
                        if ($this->stats[$this->uids[$u1]]['this_animal'] == 0) {
                            $this->users[$this->uids[$u2]]['tactic3']++;
                        }
                    }
                }
                // КУДА БИЛ , ТИП УДАРА
                if (isset($at[$a]['atack'][$j]['yron']) && (
                        $at[$a]['atack'][$j][1] == 1 ||
                        $at[$a]['atack'][$j][1] == 4 ||
                        $at[$a]['atack'][$j][1] == 5)) {
                    //

                    if ($this->stats[$this->uids[$u2]]['hpNow'] <= $at[$a]['atack'][$j]['yron']['y']) {
                        $at[$a]['atack'][$j]['yron']['y'] = $this->stats[$this->uids[$u2]]['hpNow'];
                    }
                    if ($this->stats[$this->uids[$u2]]['hpNow'] <= $at[$a]['atack'][$j]['yron']['k']) {
                        $at[$a]['atack'][$j]['yron']['k'] = $this->stats[$this->uids[$u2]]['hpNow'];
                    }

                    if ($at[$a]['atack'][$j]['yron']['y'] < 0) {
                        $at[$a]['atack'][$j]['yron']['y'] = 1;
                        $at[$a]['atack'][$j]['yron']['r'] = -1;
                        $at[$a]['atack'][$j]['yron']['k'] = 1;
                    }
                    if ($this->stats[$this->uids[$u2]]['hpNow'] < 1) {
                        $at[$a]['atack'][$j]['yron']['y'] = 0;
                        $at[$a]['atack'][$j]['yron']['r'] = -1;
                        $at[$a]['atack'][$j]['yron']['k'] = 0;
                    }

                    //Добавляем нанесенный урон и опыт
                    $this->takeExp($u1, $at[$a]['atack'][$j]['yron']['y'], $u1, $u2);
                    //Отнимаем НР
                    $this->stats[$this->uids[$u2]]['hpNow'] -= $at[$a]['atack'][$j]['yron']['y'];
                    $this->users[$this->uids[$u2]]['last_hp'] = -$at[$a]['atack'][$j]['yron']['y'];
                    $at[$a]['atack'][$j]['yron']['hp'] = $this->stats[$this->uids[$u2]]['hpNow'];
                    if ($at[$a]['atack'][$j]['yron']['hp'] < 1) {
                        $at[$a]['atack'][$j]['yron']['hp'] = 0;
                    }
                    $at[$a]['atack'][$j]['yron']['hpAll'] = $this->stats[$this->uids[$u2]]['hpAll'];
                    if ($at[$a]['atack'][$j]['yron']['hp'] > $at[$a]['atack'][$j]['yron']['hpAll']) {
                        $at[$a]['atack'][$j]['yron']['hp'] = $at[$a]['atack'][$j]['yron']['hpAll'];
                    }
                    //Травмирование
                    if (rand(0, 100) <= 50) {
                        if ($at[$a]['atack'][$j][1] == 4 || $at[$a]['atack'][$j][1] == 5) {
                            if (!isset($at[$a]['atack'][$j]['yron']['travma']) && rand(
                                    0,
                                    1000
                                ) < 500 && $this->users[$this->uids[$u2]]['level'] > 1 && $this->stats[$this->uids[$u1]] > 1) {
                                $trvm_chns = floor(rand(0, 200) / 10);
                                if ($trvm_chns > 3 || $trvm_chns < 1) {
                                    $trvm_chns = 0;
                                }
                                $at[$a]['atack'][$j]['yron']['travma'] = [$trvm_chns, 'Обыкновенная травма'];
                                unset($trvm_chns);
                            }
                        }
                    }
                }
                $j++;
            }
            $i++;
        }
        return $at;
    }

    /**
     * Добавляем опыт \ нанесенный урон.
     * Кривовсрато, на переделку.
     * @param $id
     * @param $y
     * @param $id1
     * @param $id2
     * @param $mgregen
     * @param $nobattle_uron
     * @return void
     */
    public function takeExp($id, $y, $id1, $id2, $mgregen = false, $nobattle_uron = false)
    {
        global $u;
        if (isset($this->users[$this->uids[$id]])) {
            $s1 = $this->stats[$this->uids[$id1]];
            $s2 = $this->stats[$this->uids[$id2]];
            if ($id1 != $id2) {
                $e = $this->testExp($y, $s2);
            } else {
                $e = 0;
            }

            if ((int)$this->users[$this->uids[$id1]]['bot_id'] == 0 && $this->users[$this->uids[$id1]]['dnow'] != 0 && $this->info['dungeon'] != 1) {
                $dun_limitForLevel = [ // Максимум для каждого уровня.
                    4 => 750,
                    5 => 1500,
                    6 => 3500,
                    7 => 8000,
                    8 => 25000,
                    9 => 50000,
                    10 => 75000,
                    11 => 125000,
                    12 => 250000,
                    13 => 500000,
                    14 => 750000,
                ];
                $dun_expFactor = [ // Максимум для каждого уровня.
                    4 => 5,
                    5 => 5,
                    6 => 5,
                    7 => 5,
                    8 => 5,
                    9 => 3,
                    10 => 1,
                    11 => 1,
                    12 => 1,
                    13 => 1,
                    14 => 1,
                ];

                if (isset($dun_expFactor[(int)$this->users[$this->uids[$id1]]['level']])) {
                    $e = $e * $dun_expFactor[(int)$this->users[$this->uids[$id1]]['level']];
                }
                if ($this->info['dungeon'] > 1 && $this->users[$this->uids[$id1]]['battle'] > 0) { // пещерный лимит
                    $dun_exp = []; // Текущий лимит опыта игрока в подземельях.
                    $rep = Db::getValue(
                        'select dungeonexp from rep where id = ?', [$this->users[$this->uids[$id1]]['id']]
                    );
                    $rep = explode(',', $rep);
                    foreach ($rep as $key => $val) {
                        $val = explode('=', $val);
                        if (isset($val[0]) && isset($val[1]) && $val[0] != '' && $val[1] != 0) {
                            $dun_exp[(int)$val[0]] = (int)$val[1];
                        } // текущий лимит опыта в подземке
                    }
                    unset($rep);

                    if (!isset($dun_exp[$this->info['dungeon']])) {
                        $dun_exp[$this->info['dungeon']] = 0;
                    }
                    if (!isset($dun_limitForLevel[(int)$this->users[$this->uids[$id1]]['level']])) { // Если лимит не задан, опыт не даем.
                        $e = 0;
                    } elseif (
                        isset($dun_exp[$this->info['dungeon']]) &&
                        $dun_exp[$this->info['dungeon']] >= $dun_limitForLevel[(int)$this->users[$this->uids[$id1]]['level']]
                    ) { // Если лимит уже достигнут, опыт не даем.
                        $e = 0;
                    } elseif (
                        isset($dun_exp[$this->info['dungeon']]) &&
                        $dun_limitForLevel[(int)$this->users[$this->uids[$id1]]['level']] > $dun_exp[$this->info['dungeon']]
                    ) { // Если текущая репутация не достигла лимита.
                        if (($dun_exp[$this->info['dungeon']] + $e) > $dun_limitForLevel[(int)$this->users[$this->uids[$id1]]['level']]) {
                            // Если опыта набрано достаточно, для достижения лимита.
                            $e = abs(
                                $e - abs(
                                    $dun_limitForLevel[(int)$this->users[$this->uids[$id1]]['level']] - ($e + $dun_exp[$this->info['dungeon']])
                                )
                            );
                            $dun_exp[$this->info['dungeon']] += $e;
                        } elseif ($dun_limitForLevel[(int)$this->users[$this->uids[$id1]]['level']] > ($dun_exp[$this->info['dungeon']] + $e)) {
                            // Если опыта недостаточно, для достижения лимита.
                            $dun_exp[$this->info['dungeon']] += $e;
                        } else {
                            $e = 0;
                        }
                    } else { // В любой непонятной ситуцаии.
                        $e = 0;
                    }
                }
                // Опыт в пещерах.
                if ($this->info['dungeon'] == 102) {
                    $e = floor($e * 0.002);
                }
            }

            $this->users[$this->uids[$id1]]['battle_exp'] += floor($e);
            if (!$mgregen && !$nobattle_uron) {
                $this->users[$this->uids[$id1]]['battle_yron'] += floor($y);
                if ($this->stats[$this->uids[$id1]]['notactic'] != 1) {
                    if ($s2['hpAll'] <= 1000) {
                        if ($this->stats[$this->uids[$id2]]['this_animal'] == 0) {
                            $this->users[$this->uids[$id1]]['tactic6'] += round(
                                0.1 * (floor($y) / $s2['hpAll'] * 100),
                                10
                            );
                        } else {
                            $this->users[$this->uids[$id1]]['tactic6'] += round(
                                    0.1 * (floor($y) / $s2['hpAll'] * 100),
                                    10
                                ) / 3;
                        }
                    } else {
                        if ($this->stats[$this->uids[$id2]]['this_animal'] == 0) {
                            $this->users[$this->uids[$id1]]['tactic6'] += round(0.1 * (floor($y) / 1000 * 100), 10);
                        } else {
                            $this->users[$this->uids[$id1]]['tactic6'] += round(0.1 * (floor($y) / 1000 * 100), 10) / 3;
                        }
                    }
                }
            }

            Db::sql(
                'update stats set last_hp = ?, tactic6 = ?, battle_yron = ?, battle_exp = ? where id = ?', [
                    $this->users[$this->uids[$id1]]['last_hp'],
                    $this->users[$this->uids[$id1]]['tactic6'],
                    $this->users[$this->uids[$id1]]['battle_yron'],
                    $this->users[$this->uids[$id1]]['battle_exp'],
                    (int)$id1,
                ]
            );

            $this->stats[$this->uids[$id1]]['battle_exp'] = $this->users[$this->uids[$id1]]['battle_exp'];
            $this->clearСache($id1);
            $this->stats[$this->uids[$id1]]['tactic6'] = $this->users[$this->uids[$id1]]['tactic6'];
            if ($id1 == $u->info['id']) {
                $u->info['tactic6'] = $this->users[$this->uids[$id1]]['tactic6'];
                $u->stats['tactic6'] = $this->users[$this->uids[$id1]]['tactic6'];
                $u->info['battle_exp'] = $this->users[$this->uids[$id1]]['battle_exp'];
                $u->info['battle_yron'] = $this->users[$this->uids[$id1]]['battle_yron'];
                $u->info['notactic'] = $this->users[$this->uids[$id1]]['notactic'];
                $u->stats['notactic'] = $this->users[$this->uids[$id1]]['notactic'];
            }


        }
    }

    //Расчет мф. (новая)

    /**
     * Расчет опыта
     * @param $y
     * @param $s2
     * @return int
     */
    private function testExp($y, $s2): int
    {
        if ($s2['levels'] == 'undefined' || $this->users[$this->uids[$s2['id']]]['pass'] == 'saintlucia') {
            return 0;
        }

        $y = max(0, (int)$y);
        $expmultiplier = 1;
        if ($this->users[$this->uids[$s2['id']]]['level'] >= 8) {
            $expmultiplier = $this->users[$this->uids[$s2['id']]]['level'] - 5;
        }

        if ($s2['hpNow'] < 0) {
            $y = 0;
        }
        if ($s2['hpNow'] < $y) {
            $y = max(0, $s2['hpNow']);
        }
        $addExp = $y * $expmultiplier;
        if ($s2['hpAll'] - $y <= 0) {
            $addExp = 100;
        }

        if ($this->info['razdel'] != 5 && Config::get('exp_limit_many')) {
            $texp = Db::getValue(
                'select count(*) from battle_users as a where uid = ? and battle in (select battle from battle_users where uid = ? and team != a.team and time_enter > unix_timestamp() - 86400)'
            );
            //
            if ($texp > 5) {
                $addExp = 0;
            } elseif ($texp > 4) {
                $addExp = $addExp * 0.50;
            } elseif ($texp > 3) {
                $addExp = $addExp * 0.75;
            } elseif ($texp > 2) {
                $addExp = $addExp * 1.00;
            } elseif ($texp > 1) {
                $addExp = $addExp * 1.00;
            } else {
                $addExp = $addExp * 1.00;
            }
        }
        return (int)round($addExp);
    }

    //Расчет МФ

    private function clearСache($uid)
    {
        if ($uid > 0 && !isset($this->uclearc[$uid])) {
            $this->uclearc[$uid] = true;
            $this->ucleari[] = $uid;
        }
    }

    public function addlogRazmen($id, $at): bool
    {
        global $u;

        $r = '';

        $uid1 = $this->atacks[$id]['uid1'];
        $uid2 = $this->atacks[$id]['uid2'];

        $this->hodID++;

        $dies = [
            1 => 0,
            2 => 0,
        ];

        //массив для статистики
        $stat = [
            1 => [
                'uid1' => 0,
                'uid2' => 0,
                'time' => time(),
                'type' => 0,
                'a' => '00000',
                'b' => '0',
                'type_a' => '',
                'type_b' => '0',
                'yrn' => 0,
                'yrn_krit' => 0,
                'ma' => 0,
                'mb' => 0,
                'tm1' => 0,
                'tm2' => 0,
            ],
            2 => [
                'uid1' => 0,
                'uid2' => 0,
                'time' => time(),
                'type' => 0,
                'a' => '00000',
                'b' => '0',
                'type_a' => '',
                'type_b' => '0',
                'yrn' => 0,
                'yrn_krit' => 0,
                'ma' => 0,
                'mb' => 0,
                'tm1' => 0,
                'tm2' => 0,
            ],
        ];


        $i = 1;
        while ($i <= 2) {
            if ($i == 1) {
                $a = 1;
                $b = 2;
                $u1 = ${'uid1'};
                $u2 = ${'uid2'};
            } else {
                $a = 2;
                $b = 1;
                $u1 = ${'uid2'};
                $u2 = ${'uid1'};
            }

            if ($this->stats[$this->uids[$u1]]['yhod'] <= 0 && $this->stats[$this->uids[$u2]]['yhod'] > 0) {
                $u2 = $this->yhod_user($u1, $u2, $this->stats[$this->uids[$u2]]['yhod']);
            }

            $s1 = $this->users[$this->uids[$u1]]['sex'];
            $s2 = $this->users[$this->uids[$u2]]['sex'];

            $stat[$a]['uid1'] = $u1;
            $stat[$a]['uid2'] = $u2;
            $stat[$a]['ma'] = $this->stats[$this->uids[$u1]]['zona'];
            $stat[$a]['mb'] = $this->stats[$this->uids[$u1]]['zonb'];
            $stat[$a]['tm1'] = $this->users[$this->uids[$u1]]['team'];
            $stat[$a]['tm2'] = $this->users[$this->uids[$u2]]['team'];
            $stat[$a]['a'] = $this->atacks[$id]['a' . $a];
            $stat[$a]['b'] = $this->atacks[$id]['b' . $a];

            $vLog = 'at1=00000||at2=00000||zb1=' . $this->stats[$this->uids[$u1]]['zonb'] . '||zb2=' . $this->stats[$this->uids[$u2]]['zonb'] . '||bl1=' . $this->atacks[$id]['b' . $a] . '||bl2=' . $this->atacks[$id]['b' . $b] . '||time1=' . $this->atacks[$id]['time'] . '||time2=' . $this->atacks[$id]['time2'] . '||s' . $a . '=' . $s1 . '||s' . $b . '=' . $s2 . '||t2=' . $this->users[$this->uids[$u2]]['team'] . '||t1=' . $this->users[$this->uids[$u1]]['team'] . '||login1=' . $this->users[$this->uids[$u1]]['login2'] . '||login2=' . $this->users[$this->uids[$u2]]['login2'] . '';

            $mas = [
                'text' => '',
                'time' => time(),
                'vars' => '',
                'battle' => $this->info['id'],
                'id_hod' => $this->hodID,
                'vars' => $vLog,
                'type' => 1,
            ];

            if (!isset($at[$a]['atack'])) { //ТУТ тест пропуска
                if ($this->atacks[$id]['tpo' . $a] == 2) {
                    $mas['text'] .= '{u1} потратил свой ход на магию.';
                } else {
                    //
                    if ($this->info['razdel'] == 0 && $this->info['dn_id'] == 0 && $this->info['izlom'] == 0) {
                        mysql_query(
                            'INSERT INTO `battle_out` (`battle`,`uid1`,`uid2`,`time`,`out`) VALUES (
								"' . $this->info['id'] . '","' . $u1 . '","' . $u2 . '","' . time() . '","1"
							)'
                        );
                    }
                    //
                    if (isset($u1)) {
                        $mas['text'] .= '{u1} пропустил свой ход.';
                        //Проверка сброс туманок
                        mysql_query(
                            'UPDATE `eff_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $u1 . '" AND `delete` = 0 AND `v1` = "priem" AND (`v2`=288 OR  `v2`=287 OR `v2`=286 OR `v2`=273) LIMIT 1'
                        );
                    }
                }
                $mas['text'] = '{tm1} ' . $mas['text'];
                $this->add_log($mas);
            } else {
                $j = 0;
                while ($j < count($at[$a]['atack']) && $j < 8) {
                    //
                    $mas['text'] = '';
                    //
                    $wt = [
                        21 => 4,
                        22 => 5,
                        20 => 2,
                        28 => 2,
                        19 => 3,
                        18 => 1,
                        26 => 22,
                    ];
                    $par = [
                        'zona' => '{zn2_' . $at[$a]['atack'][$j][0] . '} ',
                        'kyda' => $this->lg_zon[$at[$a]['atack'][$j][0]][rand(
                            0,
                            (count($this->lg_zon[$at[$a]['atack'][$j][0]]) - 1)
                        )],
                        'chem' => $this->lg_itm[$wt[$at[$a]['atack'][$j]['wt']]][rand(
                            0,
                            (count($this->lg_itm[$wt[$at[$a]['atack'][$j]['wt']]]) - 1)
                        )],
                    ];
                    //
                    $this->atacks[$id]['uid_' . $u1 . '_t' . $at[$a]['atack'][$j][1]]++;
                    //
                    //
                    $this->asr($u1, $u2, $at[$a]['atack'][$j][1]);
                    //
                    if ($at[$a]['atack'][$j][1] == 1) {
                        //u1 ударил обычным ударом u2
                        $mas['text'] .= $par['zona'] . '{u2} ' . $this->addlt($b, 1, $s2, null) . '' . $this->addlt(
                                $b,
                                2, $s2, null
                            ) . '' . $this->addlt($a, 3, $s1, null) . ' {u1} ' . $this->addlt(
                                $a, 4,
                                $s1, null
                            ) . '' . $this->addlt($a, 5, $s1, null) . '' . $this->addlt(
                                $a, 6, $s1,
                                null
                            ) . ' ' . $this->addlt(
                                1, 7, $s1,
                                $at[$a]['atack'][$j]['yron']['t']
                            ) . ' ' . $par['chem'] . ' ' . $par['kyda'] . '. ';
                    } elseif ($at[$a]['atack'][$j][1] == 2) {
                        //u2 увернулся от u1
                        $mas['text'] .= $par['zona'] . '{u1} ' . $this->addlt($a, 8, $s1, null) . '' . $this->addlt(
                                $a,
                                9, $s1, null
                            ) . ' {u2} <font color=#0071a3><strong>' . $this->addlt(
                                $b, 11, $s2,
                                null
                            ) . '</strong></font> ' . $par['chem'] . ' ' . $par['kyda'] . '. ';
                    } elseif ($at[$a]['atack'][$j][1] == 3) {
                        //u2 заблокировал удар u1
                        $mas['text'] .= $par['zona'] . '{u1} ' . $this->addlt($a, 8, $s1, null) . '' . $this->addlt(
                                $a,
                                9, $s1, null
                            ) . ' {u2} <font color=#356d37><strong>' . $this->addlt(
                                $b, 10, $s2,
                                null
                            ) . '</strong></font> ' . $this->addlt(
                                1, 7, 0, $s1,
                                $at[$a]['atack'][$j]['yron']['t']
                            ) . ' ' . $par['chem'] . ' ' . $par['kyda'] . '. ';
                    } elseif ($at[$a]['atack'][$j][1] == 4) {
                        //u1 пробил блок u2 критом
                        if (isset($at[$a]['atack'][$j]['yron']['t'])) {
                            $mas['text'] .= $par['zona'] . '{u2} ' . $this->addlt(
                                    $b, 1, $s2,
                                    null
                                ) . '' . $this->addlt($b, 2, $s2, null) . '' . $this->addlt(
                                    $a, 3, $s1,
                                    null
                                ) . ' {u1} ' . $this->addlt($a, 4, $s1, null) . '' . $this->addlt(
                                    $a, 5, $s1,
                                    null
                                ) . ', <u><font color=red>пробив блок</font></u>, ' . $this->addlt(
                                    $a, 6, $s1,
                                    null
                                ) . ' ' . $this->addlt(
                                    1, 7, $s1,
                                    $at[$a]['atack'][$j]['yron']['t']
                                ) . ' ' . $par['chem'] . ' ' . $par['kyda'] . '. ';
                        }
                    } elseif ($at[$a]['atack'][$j][1] == 5) {
                        //u1 ударил критическим ударом u2
                        $mas['text'] .= $par['zona'] . '{u2} ' . $this->addlt($b, 1, $s2, null) . '' . $this->addlt(
                                $b,
                                2, $s2, null
                            ) . '' . $this->addlt($a, 3, $s1, null) . ' {u1} ' . $this->addlt(
                                $a, 4,
                                $s1, null
                            ) . '' . $this->addlt($a, 5, $s1, null) . '' . $this->addlt(
                                $a, 6, $s1,
                                null
                            ) . ' ' . $this->addlt(
                                1, 7, $s1,
                                $at[$a]['atack'][$j]['yron']['t']
                            ) . ' ' . $par['chem'] . ' ' . $par['kyda'] . '. ';
                    } elseif ($at[$a]['atack'][$j][1] == 6) {
                        //u2 парировал удар u1
                        $mas['text'] .= $par['zona'] . '{u1} ' . $this->addlt($a, 8, $s1, null) . '' . $this->addlt(
                                $a,
                                9, $s1,
                                null
                            ) . ' {u2} неожиданно <strong><font color=#c59400>парировал</font></strong> ' . $this->addlt(
                                1,
                                7, 0, $s1,
                                $at[$a]['atack'][$j]['yron']['t']
                            ) . ' ' . $par['chem'] . ' ' . $par['kyda'] . '. ';
                    } elseif ($at[$a]['atack'][$j][1] == 7) {
                        //u2 блокировал щитом удар u1
                        $mas['text'] .= $par['zona'] . '{u1} ' . $this->addlt($a, 8, $s1, null) . '' . $this->addlt(
                                $a,
                                9, $s1,
                                null
                            ) . ' {u2}, воспользовавшись <u><font color=#356d37>своим щитом</font></u>, ' . $this->addlt(
                                $b,
                                10, $s2, null
                            ) . ' ' . $this->addlt(
                                1, 7, 0, $s1,
                                $at[$a]['atack'][$j]['yron']['t']
                            ) . ' ' . $par['chem'] . ' ' . $par['kyda'] . '. ';
                    } elseif ($at[$a]['atack'][$j][1] == 8) {
                        //u2 увернулся от удара u1 и нанес по нему контрудар
                        $mas['text'] .= $par['zona'] . '{u1} ' . $this->addlt($a, 8, $s1, null) . '' . $this->addlt(
                                $a,
                                9, $s1, null
                            ) . ' {u2} <font color=#0071a3><strong>' . $this->addlt(
                                $b, 11, $s2,
                                null
                            ) . '</strong></font> ' . $par['chem'] . ' ' . $par['kyda'] . ' и нанес контрудар. ';
                    }

                    $stat[$a]['type_a'] .= '' . $at[$a]['atack'][$j][1] . '';
                    if ((!isset($this->stats[$this->uids[$u2]]['notravma']) || $this->stats[$this->uids[$u2]]['notravma'] == 0) && isset($at[$a]['atack'][$j]['yron']['travma']) && $at[$a]['atack'][$j]['yron']['travma'][0] > 0 && floor(
                            $at[$a]['atack'][$j]['yron']['hp']
                        ) <= 0) {
                        $tr_pl = mysql_fetch_array(
                            mysql_query(
                                'SELECT `id`,`v1` FROM `eff_users` WHERE `id_eff` = 4 AND `uid` = "' . $u2 . '" AND `delete` = "0" ORDER BY `v1` DESC LIMIT 1'
                            )
                        );
                        if (!isset($tr_pl['id']) || $tr_pl['v1'] < 3) {
                            //263
                            if (isset($tr_pl['id'])) {
                                $at[$a]['atack'][$j]['yron']['travma'][0] = rand(($tr_pl['v1'] + 1), 3);
                            }
                            $tr_pl2 = mysql_fetch_array(
                                mysql_query(
                                    'SELECT `id` FROM `eff_users` WHERE `uid` = "' . $u2 . '" AND `delete` = "0" AND `name` LIKE "%Защита от травм%" LIMIT 1'
                                )
                            );
                            if (!isset($tr_pl2['id']) && $at[$a]['atack'][$j]['yron']['travma'][0] <= 3) {
                                $mas['text'] = rtrim($mas['text'], '. ');
                                $mas['text'] .= ', <font color=red>нанеся противнику <strong>';
                                if ($at[$a]['atack'][$j]['yron']['travma'][0] == 1) {
                                    $mas['text'] .= 'Легкую';
                                    $this->addTravm($u2, 1, rand(3, 5));
                                } elseif ($at[$a]['atack'][$j]['yron']['travma'][0] == 2) {
                                    $mas['text'] .= 'Среднюю';
                                    $this->addTravm($u2, 2, rand(3, 5));
                                } elseif ($at[$a]['atack'][$j]['yron']['travma'][0] == 3) {
                                    $mas['text'] .= 'Тяжелую';
                                    $this->addTravm($u2, 3, rand(3, 5));
                                }
                                $mas['text'] .= ' травму</strong></font>. ';
                            }
                        }
                        unset($tr_pl);
                    }
                    if ($at[$a]['atack'][$j]['yron']['pb'] == 1 && isset($at[$a]['atack'][$j]['yron']['hp'])) {
                        $mas['text'] = rtrim($mas['text'], '. ');
                        $mas['text'] .= ' <i>пробив броню</i>. ';
                    }
                    if ($at[$a]['atack'][$j][3] == 1) {
                        $mas['text'] .= '(контрудар) ';
                    }
                    if (isset($at[$a]['atack'][$j]['yron'])) {
                        if ($at[$a]['atack'][$j]['yron']['w'] == 3) {
                            $mas['textWP'] = '(правая&nbsp;рука)';
                        } elseif ($at[$a]['atack'][$j]['yron']['w'] == 14) {
                            $mas['textWP'] = '(левая&nbsp;рука)';
                        } else {
                            $mas['textWP'] = '(непонятно&nbsp;чем)';
                        }
                        if ($at[$a]['atack'][$j][1] == 4 || $at[$a]['atack'][$j][1] == 5 || $at[$a]['atack'][$j][1] == 1) {
                            if ($at[$a]['atack'][$j]['yron']['y'] < 1) {
                                $at[$a]['atack'][$j]['yron']['r'] = '--';
                            }
                        }
                        if ($at[$a]['atack'][$j][1] == 4 || $at[$a]['atack'][$j][1] == 5) {
                            $stat[$a]['yrn_krit'] += -$at[$a]['atack'][$j]['yron']['r'];
                            $mas['text'] .= ' <font title=' . $mas['textWP'] . ' color=#ff0000><strong>' . $at[$a]['atack'][$j]['yron']['r'] . '</strong></font>';
                        } else {
                            $mas['text'] .= ' <font title=' . $mas['textWP'] . ' color=#0066aa><strong>' . $at[$a]['atack'][$j]['yron']['r'] . '</strong></font>';
                        }
                        $stat[$a]['yrn'] += -$at[$a]['atack'][$j]['yron']['r'];
                    }
                    if (isset($at[$a]['atack'][$j]['yron']['hp'])) {
                        if ($this->users[$this->uids[$u2]]['align'] == 9) {
                            $at[$a]['atack'][$j]['yron']['hp'] = $at[$a]['atack'][$j]['yron']['hp'] / ($at[$a]['atack'][$j]['yron']['hpAll'] / 100);
                            $at[$a]['atack'][$j]['yron']['hpAll'] = '100%';
                        }
                        $mas['text'] .= ' [' . floor($at[$a]['atack'][$j]['yron']['hp']) . '/' . floor(
                                $at[$a]['atack'][$j]['yron']['hpAll']
                            ) . ']';
                    }
                    if ($mas['text'] != '') {
                        $mas['text'] = '{tm1} ' . $mas['text'];
                    }

                    if (is_array($at[$a]['atack'][$j]['yron']['plog'])) {
                        $il = 0;
                        while ($il <= count($at[$a]['atack'][$j]['yron']['plog'])) {
                            if (isset($at[$a]['atack'][$j]['yron']['plog'][$il])) {
                                eval($at[$a]['atack'][$j]['yron']['plog'][$il]);
                            }
                            $il++;
                        }
                    }
                    $this->add_log($mas);
                    $j++;
                }
            }
            $i++;
        }

        //Добавляем статистику + записываем в баттл_юзерс НР игроков
        $this->addNewStat($stat);

        //Вывод в лог смерти персонажа
        if (floor($this->stats[$this->uids[$u1]]['hpNow']) < 1) {
            $dies[1] = 1;
        }
        if (floor($this->stats[$this->uids[$u2]]['hpNow']) < 1) {
            $dies[2] = 1;
        }
        if ($dies[1] > 0 || $dies[2] > 0) {
            $s1 = $this->users[$this->uids[$u1]]['sex'];
            $s2 = $this->users[$this->uids[$u2]]['sex'];

            $vLog = 'at1=00000||at2=00000||zb1=' . $this->stats[$this->uids[$u1]]['zonb'] . '||zb2=' . $this->stats[$this->uids[$u2]]['zonb'] . '||bl1=' . $this->atacks[$id]['b' . $a] . '||bl2=' . $this->atacks[$id]['b' . $b] . '||time1=' . $this->atacks[$id]['time'] . '||time2=' . $this->atacks[$id]['time2'] . '||s2=' . $this->users[$this->uids[$u2]]['sex'] . '||s1=' . $this->users[$this->uids[$u1]]['sex'] . '||t2=' . $this->users[$this->uids[$u2]]['team'] . '||t1=' . $this->users[$this->uids[$u1]]['team'] . '||login1=' . $this->users[$this->uids[$u1]]['login2'] . '||login2=' . $this->users[$this->uids[$u2]]['login2'] . '';

            $mas = [
                'text' => '',
                'time' => time(),
                'vars' => '',
                'battle' => $this->info['id'],
                'id_hod' => $this->hodID,
                'vars' => $vLog,
                'type' => 1,
            ];

            $rtngwin = [1, 2, 3, 5, 10, 20, 40, 80, 160];
            $rtnglos = [0, 0, 0, -1, -2, -5, -10, -20, -40];

            if ($this->info['typeBattle'] == 99) {
                if ($btlstatus[0] == 0) {
                    //Кровавые бои обычные
                    $rtngwin = [2, 4, 6, 10, 20, 40, 80, 160, 320];
                    if ($this->info['razdel'] == 5) {
                        //не хаот
                        $rtnglos = [0, 0, 0, -2, -4, -10, -20, -40, -80];
                    } else {
                        //хаот
                        $rtnglos = [0, 0, 0, 0, 0, 0, 0, 0, 0];
                    }
                } elseif ($btlstatus[0] == 25) {
                    //Кровавая битва
                    $rtngwin = [3, 6, 9, 15, 30, 60, 120, 240, 480];
                    $rtnglos = [0, 0, 0, -2, -4, -10, -20, -40, -80];
                } elseif ($btlstatus[0] == 50) {
                    //Кровавая резня
                    $rtngwin = [4, 8, 16, 32, 64, 128, 256, 512, 1024];
                    $rtnglos = [0, 0, 0, -2, -4, -10, -20, -40, -80];
                } elseif ($btlstatus[0] == 75) {
                    //Кровавая сеча
                    $rtngwin = [5, 10, 20, 40, 80, 160, 320, 640, 1280];
                    $rtnglos = [0, 0, 0, -2, -4, -10, -20, -40, -80];
                } elseif ($btlstatus[0] == 100) {
                    //Кровавое побоище
                    $rtngwin = [6, 12, 24, 48, 98, 196, 392, 784, 1568];
                    $rtnglos = [0, 0, 0, -2, -4, -10, -20, -40, -80];
                } elseif ($btlstatus[0] == 150) {
                    //Судный день
                    $rtngwin = [7, 14, 28, 56, 112, 224, 448, 896, 1792];
                    $rtnglos = [0, 0, 0, -2, -4, -10, -20, -40, -80];
                }
            } else {
                if ($btlstatus[0] == 0) {
                    //Обычный поединок
                    $rtngwin = [1, 2, 3, 5, 10, 20, 40, 80, 160];
                    if ($this->info['razdel'] == 5) {
                        //не хаот
                        $rtnglos = [0, 0, 0, -1, -2, -5, -10, -20, -40];
                    } else {
                        //хаот
                        $rtnglos = [0, 0, 0, 0, 0, 0, 0, 0, 0];
                    }
                } elseif ($btlstatus[0] == 25) {
                    //великая битва
                    $rtngwin = [2, 4, 6, 10, 20, 40, 80, 160, 320];
                    $rtnglos = [0, 0, 0, -2, -4, -10, -20, -40, -80];
                } elseif ($btlstatus[0] == 50) {
                    //величайшая битва
                    $rtngwin = [3, 6, 9, 15, 30, 60, 120, 240, 480];
                    $rtnglos = [0, 0, 0, -2, -4, -10, -20, -40, -80];
                } elseif ($btlstatus[0] == 75) {
                    //историческая битва сеча
                    $rtngwin = [4, 8, 16, 32, 64, 128, 256, 512, 1024];
                    $rtnglos = [0, 0, 0, -2, -4, -10, -20, -40, -80];
                } elseif ($btlstatus[0] == 100) {
                    //эпохальная битва
                    $rtngwin = [5, 10, 20, 40, 80, 160, 320, 640, 1280];
                    $rtnglos = [0, 0, 0, -2, -4, -10, -20, -40, -80];
                } elseif ($btlstatus[0] == 150) {
                    //судный день
                    $rtngwin = [7, 14, 28, 56, 112, 224, 448, 896, 1792];
                    $rtnglos = [0, 0, 0, -2, -4, -10, -20, -40, -80];
                }
            }

            if ($this->info['dn_id'] > 0 || $this->info['izlom'] != 0 || $this->info['turnir'] != 0) {
                //Пещерные бои не считаются и Изломы тоже, ну и Турниры
                $rtngwin = [0, 0, 0, 0, 0, 0, 0, 0, 0];
                $rtnglos = [0, 0, 0, 0, 0, 0, 0, 0, 0];
            } elseif ($this->info['clan1'] > 0 && $this->info['clan2'] > 0) {
                //Клановая война
                $rtngwin = [3, 6, 9, 15, 30, 60, 120, 240, 480];
                $rtnglos = [-1, -2, -4, -8, -16, -32, -64, -128, -256];
            }


            if ($dies[1] == 1) {
                if ($this->info['dn_id'] <= 0 && $this->users[$this->uids[$u1]]['level'] >= 4) {
                    $rtng1 += $rtnglos[$this->users[$this->uids[$u1]]['level'] - 4];
                    $rtng2 += $rtngwin[$this->users[$this->uids[$u1]]['level'] - 4];
                }
                //Персонаж 1 погиб от рук персонаж 2
                $this->spaCheck($this->users[$this->uids[$u1]]['id']);
            }
            if ($dies[2] == 1) {
                if ($this->info['dn_id'] <= 0 && $this->users[$this->uids[$u1]]['level'] >= 4) {
                    $rtng1 += $rtnglos[$this->users[$this->uids[$u1]]['level'] - 4];
                    $rtng2 += $rtngwin[$this->users[$this->uids[$u1]]['level'] - 4];
                }
                //Персонаж 2 погиб от рук персонаж 1
                $this->spaCheck($this->stats[$this->uids[$u2]]['id']);
            }
            //Записываем рейтинг
            //
            if ($this->info['type'] != 564 && $this->stats[$this->uids[$u1]]['inTurnir'] == 0 && $this->stats[$this->uids[$u2]]['inTurnir'] == 0 && $this->info['dn_id'] == 0 && $this->info['izlom'] == 0) {
                //
                if ($this->users[$this->uids[$u2]]['bot'] == 0) {
                    mysql_query(
                        'INSERT INTO `users_reting` (`uid`,`time`,`val`,`align`,`clan`) VALUES (
						"' . $u1 . '","' . time() . '","' . $rtng1 . '","' . $this->users[$this->uids[$u1]]['align'] . '","' . $this->users[$this->uids[$u1]]['clan'] . '")'
                    );
                }
                unset($rtng);
                if ($this->users[$this->uids[$u1]]['bot'] == 0) {
                    mysql_query(
                        'INSERT INTO `users_reting` (`uid`,`time`,`val`,`align`,`clan`) VALUES (
						"' . $u2 . '","' . time() . '","' . $rtng2 . '","' . $this->users[$this->uids[$u2]]['align'] . '","' . $this->users[$this->uids[$u2]]['clan'] . '")'
                    );
                }
            }
            unset($rtng1, $rtng2);
        }
        return true;
    }

    public function asr($u1, $u2, $type)
    {
        mysql_query(
            'INSERT INTO battle_static (
				`uid1`,`uid2`,`hod`,`type`,`time`,`bid`
			) VALUES (
				"' . $u1 . '","' . $u2 . '","' . $this->hodID . '","' . $type . '","' . time() . '","' . $this->info['id'] . '"
			)'
        );
    }

    //Смена противника

    public function addlt($a, $id, $s, $rnd = null): string
    {
        global $log_text;
        if ($rnd === null) {
            $rnd = rand(0, (count($log_text[$s][$id]) - 1));
        }
        return '{' . $a . 'x' . $id . 'x' . $rnd . '}';
    }

    //авто-смена противника //ТУТ баг выбора

    public function addNewStat($stat)
    {
        if (isset($stat[1])) {
            mysql_query(
                'INSERT INTO `battle_stat`
				( `battle`,`uid1`,`uid2`,`time`,`type`,`a`,`b`,`ma`,`mb`,`type_a`,`type_b`,`yrn`,`yrn_krit`,`tm1`,`tm2` ) VALUES (
					"' . $this->info['id'] . '",
					"' . $stat[1]['uid1'] . '",
					"' . $stat[1]['uid2'] . '",
					"' . $stat[1]['time'] . '",
					"' . $stat[1]['type'] . '",
					"' . $stat[1]['a'] . '",
					"' . $stat[1]['b'] . '",
					"' . $stat[1]['ma'] . '",
					"' . $stat[1]['mb'] . '",
					"' . $stat[1]['type_a'] . '",
					"' . $stat[1]['type_b'] . '",
					"' . $stat[1]['yrn'] . '",
					"' . $stat[1]['yrn_krit'] . '",
					"' . $stat[1]['tm1'] . '",
					"' . $stat[1]['tm2'] . '"
				)'
            );
        }
        if (isset($stat[2])) {
            mysql_query(
                'INSERT INTO `battle_stat`
				( `battle`,`uid1`,`uid2`,`time`,`type`,`a`,`b`,`ma`,`mb`,`type_a`,`type_b`,`yrn`,`yrn_krit`,`tm1`,`tm2` ) VALUES (
					"' . $this->info['id'] . '",
					"' . $stat[2]['uid1'] . '",
					"' . $stat[2]['uid2'] . '",
					"' . $stat[2]['time'] . '",
					"' . $stat[2]['type'] . '",
					"' . $stat[2]['a'] . '",
					"' . $stat[2]['b'] . '",
					"' . $stat[1]['ma'] . '",
					"' . $stat[2]['mb'] . '",
					"' . $stat[2]['type_a'] . '",
					"' . $stat[2]['type_b'] . '",
					"' . $stat[2]['yrn'] . '",
					"' . $stat[2]['yrn_krit'] . '",
					"' . $stat[2]['tm1'] . '",
					"' . $stat[2]['tm2'] . '"
				)'
            );
        }
    }

    //Действия бота (атака)

    public function spaCheck($u1)
    {
        if ($this->stats[$this->uids[$u1]]['hpNow'] < 1) {
            mysql_query('DELETE FROM `battle_act` WHERE `uid1` = "' . $u1 . '" OR `uid2` = "' . $u1 . '"');
            if ($this->stats[$this->uids[$u1]]['spasenie'] > 0 && $this->users[$this->uids[$u1]]['tactic7'] >= 25) {
                //Свиток спасения
                if ($this->stats[$this->uids[$u1]]['s7'] > 49 && $this->stats[$this->uids[$u1]]['s7'] < 75) {
                    //Даем призрачку
                    mysql_query(
                        "INSERT INTO `eff_users` 
							(`id_eff`, `uid`, `name`, `data`, `overType`, `timeUse`, `timeAce`, `user_use`, `delete`, `v1`, `v2`, `img2`, `x`, `hod`, `bj`, `sleeptime`, `no_Ace`, `file_finish`, `tr_life_user`, `deactiveTime`, `deactiveLast`, `mark`, `bs`) VALUES
							(22, '" . $u1 . "', 'Призрачная защита', 'add_zmproc=75|add_zaproc=75', 0, 77, 0, '" . $u1 . "', 0, 'priem', 141, 'spirit_block25.gif', 1, 1, '0', 0, 0, '', 0, 0, 0, 0, 0);"
                    );
                    $this->stats[$this->uids[$u1]]['hpNow'] = floor($this->stats[$this->uids[$u1]]['hpAll'] * 0.5);
                    $this->stats[$this->uids[$u1]]['mpNow'] = floor($this->stats[$this->uids[$u1]]['mpAll'] * 0.5);
                } elseif ($this->stats[$this->uids[$u1]]['s7'] > 74 && $this->stats[$this->uids[$u1]]['s7'] < 100) {
                    //Абсолютная защита
                    mysql_query(
                        "INSERT INTO `eff_users` 
							(`id_eff`, `uid`, `name`, `data`, `overType`, `timeUse`, `timeAce`, `user_use`, `delete`, `v1`, `v2`, `img2`, `x`, `hod`, `bj`, `sleeptime`, `no_Ace`, `file_finish`, `tr_life_user`, `deactiveTime`, `deactiveLast`, `mark`, `bs`) VALUES
							(22, '" . $u1 . "', 'Абсолютная защита', 'add_zmproc=100|add_zaproc=100', 0, 77, 0, '" . $u1 . "', 0, 'priem', 358, 'block_absolute.gif', 1, 1, '0', 0, 0, '', 0, 0, 0, 0, 0);"
                    );
                    $this->stats[$this->uids[$u1]]['hpNow'] = floor($this->stats[$this->uids[$u1]]['hpAll'] * 0.75);
                    $this->stats[$this->uids[$u1]]['mpNow'] = floor($this->stats[$this->uids[$u1]]['mpAll'] * 0.75);
                } elseif ($this->stats[$this->uids[$u1]]['s7'] > 99) {
                    //Абсолютная защита x2
                    mysql_query(
                        "INSERT INTO `eff_users` 
							(`id_eff`, `uid`, `name`, `data`, `overType`, `timeUse`, `timeAce`, `user_use`, `delete`, `v1`, `v2`, `img2`, `x`, `hod`, `bj`, `sleeptime`, `no_Ace`, `file_finish`, `tr_life_user`, `deactiveTime`, `deactiveLast`, `mark`, `bs`) VALUES
							(22, '" . $u1 . "', 'Защита Мироздателя', 'add_zmproc=100|add_zaproc=100', 0, 77, 0, '" . $u1 . "', 0, 'priem', 358, 'wis_white_shield.gif', 1, 2, '0', 0, 0, '', 0, 0, 0, 0, 0);"
                    );
                    $this->stats[$this->uids[$u1]]['hpNow'] = floor($this->stats[$this->uids[$u1]]['hpAll']);
                    $this->stats[$this->uids[$u1]]['mpNow'] = floor($this->stats[$this->uids[$u1]]['mpAll']);
                }

                if ($this->stats[$this->uids[$u1]]['hpNow'] < 1) {
                    $this->stats[$this->uids[$u1]]['hpNow'] = 1;
                }
                if ($this->stats[$this->uids[$u1]]['mpNow'] < 1) {
                    $this->stats[$this->uids[$u1]]['mpNow'] = 1;
                }
                if ($this->stats[$this->uids[$u1]]['hpNow'] > $this->stats[$this->uids[$u1]]['hpAll']) {
                    $this->stats[$this->uids[$u1]]['hpNow'] = floor($this->stats[$this->uids[$u1]]['hpAll']);
                }
                if ($this->stats[$this->uids[$u1]]['mpNow'] > $this->stats[$this->uids[$u1]]['mpAll']) {
                    $this->stats[$this->uids[$u1]]['mpNow'] = floor($this->stats[$this->uids[$u1]]['mpAll']);
                }

                mysql_query(
                    'DELETE FROM `eff_users` WHERE `uid` = "' . $u1 . '" AND `id_eff` = 22 AND `v1` = "priem" AND `v2` = 324'
                );
                mysql_query(
                    'UPDATE `stats` SET `hpNow` = "' . $this->stats[$this->uids[$u1]]['hpNow'] . '",`mpNow` = "' . $this->stats[$this->uids[$u1]]['mpNow'] . '", `tactic7` = `tactic7` - 25 WHERE `id` = "' . $u1 . '" LIMIT 1'
                );
                $mas['text'] = '{tm1} <strong>' . $this->stats[$this->uids[$u1]]['login'] . '</strong> убит...<strong>' . $this->stats[$this->uids[$u1]]['login'] . '</strong> был спасен. ';
                $this->priemAddLog(
                    $id, 1, 2, $u->info['id'], $u1,
                    ' ',
                    $mas['text'],
                    ($this->hodID + 0)
                );
            } else {
                if (isset($this->stats[$this->uids[$u1]]['login'])) {
                    mysql_query('UPDATE `stats` SET `hpNow` = "0",`mpNow` = "0" WHERE `id` = "' . $u1 . '" LIMIT 1');
                    $this->stats[$this->uids[$u1]]['hpNow'] = 0;
                    $this->users[$this->uids[$u1]]['hpNow'] = 0;
                    $mas['text'] = '{tm1} <strong>' . $this->stats[$this->uids[$u1]]['login'] . '</strong> погиб.';
                    $this->priemAddLog(
                        $id, 1, 2, $u->info['id'], $u1,
                        ' ',
                        $mas['text'],
                        ($this->hodID + 1)
                    //Удаляем размен из базы //ТУТ возможен лаг удаления
                    );
                    mysql_query(
                        'DELETE FROM `battle_act` WHERE  `uid1` = "' . $this->stats[$this->uids[$u1]]['id'] . '" OR `uid2` = "' . $this->stats[$this->uids[$u1]]['id'] . '" OR `uid2` = "-' . $this->stats[$this->uids[$u1]]['id'] . '"'
                    );
                    mysql_query(
                        'DELETE FROM `eff_users` WHERE  `uid` = "' . $this->stats[$this->uids[$u1]]['id'] . '" AND `v1` = "priem" AND `delete` =0'
                    );
                }
            }
        }
    }

    //Проверяем удары, приемы, свитки, зверей

    public function priemAddLog($id, $a, $b, $u1, $u2, $prm, $text, $hodID, $tm1 = 0, $tm2 = 0)
    {
        $time = time();
        if ($tm1 == 0) {
            $tm1 = isset($this->atacks[$id]) ? $this->atacks[$id]['time'] : $time;
        }
        if ($tm2 == 0) {
            $tm2 = isset($this->atacks[$id]) ? $this->atacks[$id]['time2'] : $time;
        }
        $prm = str_replace('=', '^^^^', $prm);
        $vLog =
            'prm=' . $prm .
            '||at1=00000||at2=00000||zb1=' . $this->stats[$this->uids[$u1]]['zonb'] .
            '||zb2=' . $this->stats[$this->uids[$u2]]['zonb'] .
            '||bl1=' . $this->atacks[$id]['b' . $a] .
            '||bl2=' . $this->atacks[$id]['b' . $b] .
            '||time1=' . $tm1 .
            '||time2=' . $tm2 .
            '||s' . $a . '=' . $this->users[$this->uids[$u1]]['sex'] .
            '||s' . $b . '=' . $this->users[$this->uids[$u2]]['sex'] .
            '||t2=' . $this->users[$this->uids[$u2]]['team'] .
            '||t1=' . $this->users[$this->uids[$u1]]['team'] .
            '||login1=' . $this->users[$this->uids[$u1]]['login2'] .
            '||login2=' . $this->users[$this->uids[$u2]]['login2'];

        $mas = [
            'text' => $text,
            'time' => $time,
            'battle' => $this->info['id'],
            'id_hod' => $hodID,
            'vars' => $vLog,
            'type' => 1,
        ];
        $this->add_log($mas);
    }

    //Действия бота

    public function restZonb($uid1, $uid2)
    {
        if ($this->stnZbVs[$uid1] > 0) {
            $this->stats[$this->uids[$uid1]]['zonb'] = $this->stnZbVs[$uid1];
        }
        if ($this->stnZbVs[$uid2] > 0) {
            $this->stats[$this->uids[$uid1]]['zonb'] = $this->stnZbVs[$uid2];
        }
    }

    //получаем данные о поединке

    public function save_stats($uid)
    {
        mysql_query(
            'UPDATE `stats` SET
				
					`hpNow` = "' . $this->stats[$this->uids[$uid]]['hpNow'] . '",
					`mpNow` = "' . $this->stats[$this->uids[$uid]]['mpNow'] . '",
					`tactic1` = "' . $this->users[$this->uids[$uid]]['tactic1'] . '",
					`tactic2` = "' . $this->users[$this->uids[$uid]]['tactic2'] . '",
					`tactic3` = "' . $this->users[$this->uids[$uid]]['tactic3'] . '",
					`tactic4` = "' . $this->users[$this->uids[$uid]]['tactic4'] . '",
					`tactic5` = "' . $this->users[$this->uids[$uid]]['tactic5'] . '",
					`tactic6` = "' . $this->users[$this->uids[$uid]]['tactic6'] . '",
					`tactic7` = "' . $this->users[$this->uids[$uid]]['tactic7'] . '",
					
					`enemy` 	  = "' . $this->users[$this->uids[$uid]]['enemy'] . '",
					`battle_yron` = "' . $this->users[$this->uids[$uid]]['battle_yron'] . '",
					`last_hp` 	  = "' . $this->users[$this->uids[$uid]]['last_hp'] . '",
					`battle_exp`  = "' . $this->users[$this->uids[$uid]]['battle_exp'] . '",
					`priems_z`  = "' . $this->users[$this->uids[$uid]]['priems_z'] . '"
					
				WHERE `id` = "' . $uid . '" LIMIT 1'
        );
    }

    //наносим удар противнику

    public function priemsRazmenMomentEnd($id, $at)
    {
        $uid1 = $this->atacks[$id]['uid1'];
        $uid2 = $this->atacks[$id]['uid2'];

        $i = 1;
        while ($i <= 2) {
            if ($i == 1) {
                $a = 1;
                $b = 2;
                $u1 = ${'uid1'};
                $u2 = ${'uid2'};
            } else {
                $a = 2;
                $b = 1;
                $u1 = ${'uid2'};
                $u2 = ${'uid1'};
            }
            if (!isset($at['p']['p_cast'])) {
                $at['p'] = $at;
                $at['p']['p_cast'] = true;
            }
            //Приемы ухода от удара
            if (!isset($this->stats[$this->uids[$u2]]['nopryh']) || $this->stats[$this->uids[$u2]]['nopryh'] == 0) {
                $j = 0;
                while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
                    if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][6] == 1) {
                        if (file_exists(
                            '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                        )) {
                            $pr_used_this = $u1;
                            $pr_moment = true;
                            require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                            $at = $fx_priem($id, $at, $u1, $j);
                            unset(${'fx_priem'});
                            $this->stats[$this->uids[$u2]]['nopryh']--;
                        }
                    }
                    $j++;
                }
            }
            //Приемы крита
            $j = 0;
            while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
                if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][6] == 2) {
                    if (file_exists(
                        '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                    )) {
                        $pr_used_this = $u1;
                        $pr_moment = true;
                        require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                        $at = $fx_priem($id, $at, $u1, $j);
                        unset(${'fx_priem'});
                    }
                }
                $j++;
            }
            //Приемы атаки
            $j = 0;
            while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
                if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][6] == 3) {
                    if (file_exists(
                        '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                    )) {
                        $pr_used_this = $u1;
                        $pr_moment = true;
                        require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                        if (isset($fx_priem)) {
                            $at = $fx_priem($id, $at, $u1, $j);
                            unset(${'fx_priem'});
                        }
                    }
                }
                $j++;
            }
            //Приемы защиты
            $j = 0;
            while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
                if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][6] == 4) {
                    if ($this->testPriemVarTrueZash(
                            $i, 2, $this->stats[$this->uids[$u1]]['u_priem'][$j][1], $a, $b,
                            $u1, $u2
                        ) && file_exists(
                            '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                        )) {
                        $pr_used_this = $u1;
                        $pr_moment = true;
                        require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                        $at = $fx_priem($id, $at, $u1, $j);
                        unset(${'fx_priem'});
                    }
                }
                $j++;
            }
            //Прочие приемы
            $j = 0;
            while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
                if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][6] == 5) {
                    if (file_exists(
                        '../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
                    )) {
                        $pr_used_this = $u1;
                        $pr_moment = true;
                        require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
                        $at = $fx_priem($id, $at, $u1, $j);
                        unset(${'fx_priem'});
                    }
                }
                $j++;
            }
            $i++;
        }
        return $at;
    }

    //выделяем пользователей

    public function addNewAtack()
    {
        global $u;
        if (!isset($this->ga[$u->info['id']][$u->info['enemy']])) {
            if ($this->stats[$this->uids[$u->info['id']]]['hpNow'] > 0) {

                $us = $this->stats[$this->uids[$u->info['id']]];
                $i = 1;
                $no = 0;

                while ($i <= $us['zona']) {
                    if ($this->uAtc['a'][$i] == 0) {
                        $no = 1;
                    }
                    $i++;
                }

                if ($this->uAtc['b'] == 0) {
                    $no = 1;
                }

                if ($no == 0) {
                    //наносим удар
                    if ($u->info['enemy'] > 0) {
                        if (!isset($this->ga[$u->info['enemy']][$u->info['id']])) {
                            if ($this->stats[$this->uids[$u->info['id']]]['hpNow'] >= 1 && $this->stats[$this->uids[$u->info['enemy']]]['hpNow'] >= 1) {
                                //наносим новый удар
                                $a = $this->uAtc['a'][1] . $this->uAtc['a'][2] . $this->uAtc['a'][3] . $this->uAtc['a'][4] . $this->uAtc['a'][5];
                                $b = $this->uAtc['b'];
                                mysql_query(
                                    'DELETE FROM `battle_act` WHERE `battle` = "' . $this->info['id'] . '" AND ((`uid2` = "' . $u->info['id'] . '" AND `uid1` = "' . $u->info['enemy'] . '") OR (`uid1` = "' . $u->info['id'] . '" AND `uid2` = "' . $u->info['enemy'] . '")) LIMIT 2'
                                );
                                $d = mysql_query(
                                    'INSERT INTO `battle_act` (`battle`,`time`,`uid1`,`uid2`,`a1`,`b1`) VALUES ("' . $this->info['id'] . '","' . time() . '","' . $u->info['id'] . '","' . $u->info['enemy'] . '","' . $a . '","' . $b . '")'
                                );
                                if (!$d) {
                                    $this->e = 'Не удалось нанести удар по противнику...';
                                } else {
                                    $this->ga[$u->info['id']][$u->info['enemy']] = mysql_insert_id();
                                }
                            }
                        } else {
                            //отвечаем на удар противника
                            if ($this->stats[$this->uids[$u->info['id']]]['hpNow'] >= 1 && $this->stats[$this->uids[$u->info['enemy']]]['hpNow'] >= 1 && isset($this->atacks[$this->ga[$u->info['enemy']][$u->info['id']]]['id'])) {
                                $this->atacks[$this->ga[$u->info['enemy']][$u->info['id']]]['a2'] = $this->uAtc['a'][1] . '' . $this->uAtc['a'][2] . '' . $this->uAtc['a'][3] . '' . $this->uAtc['a'][4] . '' . $this->uAtc['a'][5];
                                $this->atacks[$this->ga[$u->info['enemy']][$u->info['id']]]['b2'] = $this->uAtc['b'];
                                $this->startAtack($this->atacks[$this->ga[$u->info['enemy']][$u->info['id']]]['id']);
                            }
                        }
                    }
                } else {
                    $this->e = 'Выберите зоны удара и блока';
                }
            } else {
                $this->e = 'Для вас поединок закончен, ожидайте пока завершат другие...';
            }
        }
    }

    //Возращаем зоны блока по умолчанию

    public function botAct($uid): bool
    {
        $r = false;
        if ($this->users[$this->uids[$uid]]['bot'] > 0) {
            if ($this->users[$this->uids[$uid]]['online'] < time() - 3) {
                $r = true;
                $this->users[$this->uids[$uid]]['online'] = time();
                User::setOnline((int)$uid);
            } elseif (rand(0, 2) == 1) {
                $r = true;
            }
        }
        return $r;
    }

    //проверка блока (Визуальная)

    public function battleInfo($id)
    {
        $b = mysql_fetch_array(
            mysql_query('SELECT * FROM `battle` WHERE `id` = "' . mysql_real_escape_string($id) . '" LIMIT 1')
        );
        if (isset($b['id'])) {
            $this->hodID = mysql_fetch_array(
                mysql_query(
                    'SELECT `id_hod` FROM `battle_logs` WHERE `battle` = "' . $b['id'] . '" ORDER BY `id` DESC LIMIT 1'
                )
            );
            $this->hodID = $this->hodID['id_hod'] ?? 0;
            return $b;
        } else {
            return false;
        }
    }

    //проверка блока

    public function addAtack()
    {
        global $js;
        if (isset($_POST['atack'], $_POST['block'])) {
            $na = ['a' => [1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0]];
            $a = explode('_', $_POST['atack']);
            $i = 1;
            $na['id'] = time();
            while ($i <= 5) {
                if (isset($a[$i - 1])) {
                    $a[$i - 1] = intval(round($a[$i - 1]));
                    if ($a[$i - 1] >= 1 && $a[$i - 1] <= 5) {
                        $na['a'][$i] = $a[$i - 1];
                    } else {
                        $na['a'][$i] = 0;
                    }
                }
                $i++;
            }

            $na['b'] = intval(round($_POST['block']));
            if ($na['b'] < 1 || $na['b'] > 5) {
                $na['b'] = 0;
            }

            $this->uAtc = $na;
            $js .= 'testClearZone();';
        } else {
            $this->e = 'Выберите зоны удара и блока';
        }
    }

    //генерируем команды

    public function teamsTake()
    {
        global $u;
        $rs = '';
        $ts = [];
        $tsi = 0;
        if ($this->info['id'] > 0) {
            //данные о игроках в бою
            $nxtlg = [];
            $t = mysql_query(
                'SELECT `u`.`room`,`u`.`no_ip`,`u`.`twink`,`u`.`stopexp`,`u`.`id`,`u`.`notrhod`,`u`.`login`,`u`.`login2`,`u`.`sex`,`u`.`online`,`u`.`admin`,`u`.`align`,`u`.`align_lvl`,`u`.`align_exp`,`u`.`clan`,`u`.`level`,`u`.`battle`,`u`.`obraz`,`u`.`win`,`u`.`lose`,`u`.`nich`,`u`.`animal`,`st`.`stats`,`st`.`hpNow`,`st`.`mpNow`,`st`.`exp`,`st`.`dnow`,`st`.`team`,`st`.`battle_yron`,`st`.`battle_exp`,`st`.`enemy`,`st`.`battle_text`,`st`.`upLevel`,`st`.`timeGo`,`st`.`timeGoL`,`st`.`bot`,`st`.`lider`,`st`.`btl_cof`,`st`.`tactic1`,`st`.`tactic2`,`st`.`tactic3`,`st`.`tactic4`,`st`.`tactic5`,`st`.`tactic6`,`st`.`tactic7`,`st`.`x`,`st`.`y`,`st`.`battleEnd`,`st`.`priemslot`,`st`.`priems`,`st`.`priems_z`,`st`.`bet`,`st`.`clone`,`st`.`atack`,`st`.`bbexp`,`st`.`res_x`,`st`.`res_y`,`st`.`res_s`,`st`.`id`,`st`.`last_hp`,`st`.`last_pr`,`u`.`sex`,`u`.`money`,`u`.`bot_id`,`u`.`money3`,`u`.`money2` FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON (`u`.`id` = `st`.`id`) WHERE `u`.`battle` = "' . $this->info['id'] . '"'
            );
            $i = 0;
            $bi = 0;
            $up = '';
            if ($this->info['start2'] == 0) {
                $tststrt = mysql_fetch_array(
                    mysql_query(
                        'SELECT `id` FROM `battle` WHERE `id` = "' . $this->info['id'] . '" AND `start2` = "0" LIMIT 1'
                    )
                );
                if (isset($tststrt['id'])) {
                    $upd = mysql_query(
                        'UPDATE `battle` SET `start2` = "' . time() . '" WHERE `id` = "' . $this->info['id'] . '" LIMIT 1'
                    );
                } else {
                    $this->info['start2'] = time();
                }
            }
            while ($pl = mysql_fetch_array($t)) {
                //записываем данные
                if ($pl['login2'] == '') {
                    $pl['login2'] = $pl['login'];
                }
                $this->users[$i] = $pl;
                $this->uids[$pl['id']] = $i;

                if ($this->info['start2'] == 0) {
                    mysql_query(
                        'UPDATE `users` SET `notrhod` = "-1" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                    );
                    $this->users[$i]['notrhod'] = -1;
                }

                if ($pl['bot'] > 0) {
                    $this->bots[$bi] = $pl['id'];
                    $this->iBots[$pl['id']] = $bi;
                    $bi++;
                }
                //записываем статы
                $this->stats[$i] = $u->getStats($pl, 0, 0, false, $this->cached, true);
                //Заносим старт
                if ($this->info['start2'] == 0) {
                    if (!isset($ts[$this->users[$i]['team']])) {
                        $tsi++;
                        $ts[$this->users[$i]['team']] = $tsi;
                    }

                    if ($this->users[$i]['level'] <= 7) {
                        $this->users[$i]['tactic7'] = floor(10 / $this->stats[$i]['hpAll'] * $this->stats[$i]['hpNow']);
                    } elseif ($this->users[$i]['level'] == 8) {
                        $this->users[$i]['tactic7'] = floor(20 / $this->stats[$i]['hpAll'] * $this->stats[$i]['hpNow']);
                    } elseif ($this->users[$i]['level'] == 9) {
                        $this->users[$i]['tactic7'] = floor(30 / $this->stats[$i]['hpAll'] * $this->stats[$i]['hpNow']);
                    } elseif ($this->users[$i]['level'] >= 10) {
                        $this->users[$i]['tactic7'] = floor(
                            (40 + $this->stats[$i]['s7']) / $this->stats[$i]['hpAll'] * $this->stats[$i]['hpNow']
                        );
                    }

                    if ($this->stats[$i]['s7'] > 49) {
                        mysql_query(
                            'UPDATE `eff_users` SET `delete`="' . time() . '" WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `overType` = 101 AND `delete` = 0'
                        );
                        mysql_query(
                            "
								INSERT INTO `eff_users` ( `id_eff`, `uid`, `name`, `data`, `overType`, `timeUse`, `timeAce`, `user_use`, `delete`, `v1`, `v2`, `img2`, `x`, `hod`, `bj`, `sleeptime`, `no_Ace`, `file_finish`, `tr_life_user`, `deactiveTime`, `deactiveLast`, `mark`, `bs`) VALUES
								( 22, '" . $this->stats[$i]['id'] . "', 'Спасение', 'add_spasenie=1', 101, 77, 0, '" . $this->stats[$i]['id'] . "', 0, 'priem', 324, 'preservation.gif', 1, -1, 'спасение', 0, 0, '', 0, 0, 0, 1, 0);
							"
                        );
                    }

                    // Бафф Зверя animal_bonus
                    if ($this->users[$i]['animal'] > 0) {
                        $a = mysql_fetch_array(
                            mysql_query(
                                'SELECT * FROM `users_animal` WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `id` = "' . $this->users[$i]['animal'] . '" AND `pet_in_cage` = "0" AND `delete` = "0" LIMIT 1'
                            )
                        );
                        if (isset($a['id'])) {
                            if ($a['eda'] >= 1) {
                                $anl = mysql_fetch_array(
                                    mysql_query(
                                        'SELECT `bonus` FROM `levels_animal` WHERE `type` = "' . $a['type'] . '" AND `level` = "' . $a['level'] . '" LIMIT 1'
                                    )
                                );
                                $anl = $anl['bonus'];

                                $tpa = [
                                    1 => 'cat',
                                    2 => 'owl',
                                    3 => 'wisp',
                                    4 => 'demon',
                                    5 => 'dog',
                                    6 => 'pig',
                                    7 => 'dragon',
                                ];
                                $tpa2 = [
                                    1 => 'Кота',
                                    2 => 'Совы',
                                    3 => 'Светляка',
                                    4 => 'Чертяки',
                                    5 => 'Пса',
                                    6 => 'Свина',
                                    7 => 'Дракона',
                                ];
                                $tpa3 = [
                                    1 => 'Кошачья Ловкость',
                                    2 => 'Интуиция Совы',
                                    3 => 'Сила Стихий',
                                    4 => 'Демоническая Сила',
                                    5 => 'Друг',
                                    6 => 'Полная Броня',
                                    7 => 'Инферно',
                                ];

                                mysql_query(
                                    'UPDATE `eff_users` SET `delete`="' . time() . '" WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `overType` = 100 AND `delete` = 0'
                                );
                                mysql_query(
                                    'INSERT INTO `eff_users` (`hod`,`v2`,`img2`,`id_eff`,`uid`,`name`,`data`,`overType`,`timeUse`,`v1`,`user_use`) VALUES ("-1","201","summon_pet_' . $tpa[$a['type']] . '.gif",22,"' . $this->users[$i]['id'] . '","' . $tpa3[$a['type']] . ' [' . $a['level'] . ']","' . $anl . '","100","77","priem","' . $this->users[$i]['id'] . '")'
                                );

                                //добавление духа от дракона
                                if ($a['type'] == 7) {
                                    if ($a['level'] == 10) {
                                        $this->users[$i]['tactic7'] = floor(
                                            (50 + $this->stats[$i]['s7']) / $this->stats[$i]['hpAll'] * $this->stats[$i]['hpNow']
                                        );
                                    } elseif ($a['level'] == 11) {
                                        $this->users[$i]['tactic7'] = floor(
                                            (65 + $this->stats[$i]['s7']) / $this->stats[$i]['hpAll'] * $this->stats[$i]['hpNow']
                                        );
                                    } elseif ($a['level'] == 12) {
                                        $this->users[$i]['tactic7'] = floor(
                                            (90 + $this->stats[$i]['s7']) / $this->stats[$i]['hpAll'] * $this->stats[$i]['hpNow']
                                        );
                                    }
                                }
                                //
                                $anl = ConversionHelper::dataStringToArray($anl);

                                $vLog = 'time1=' . time() . '||s1=' . $this->users[$i]['sex'] . '||t1=' . $this->users[$i]['team'] . '||login1=' . $this->users[$i]['login'] . '';
                                $vLog .= '||s2=1||t2=' . $this->users[$i]['team'] . '||login2=' . $a['name'] . ' (Зверь ' . $this->users[$i]['login'] . ')';

                                $mas1 = [
                                    'time' => time(),
                                    'battle' => $this->info['id'],
                                    'id_hod' => 1,
                                    'text' => '',
                                    'vars' => $vLog,
                                    'zona1' => '',
                                    'zonb1' => '',
                                    'zona2' => '',
                                    'zonb2' => '',
                                    'type' => '1',
                                ];

                                $ba = '';
                                $i6 = 0;
                                while ($i6 < count($u->items['add'])) {
                                    if (isset($anl['add_' . $u->items['add'][$i6]])) {
                                        if ($anl['add_' . $u->items['add'][$i6]] > 0) {
                                            if ($u->items['add'][$i6] == 'mib1') {
                                                $ba .= 'Броня головы: +' . $anl['add_' . $u->items['add'][$i6]] . ', ';
                                            } elseif ($u->items['add'][$i6] == 'mib2') {
                                                $ba .= 'Броня корпуса: +' . $anl['add_' . $u->items['add'][$i6]] . ', ';
                                            } elseif ($u->items['add'][$i6] == 'mib3') {
                                                $ba .= 'Броня пояса: +' . $anl['add_' . $u->items['add'][$i6]] . ', ';
                                            } elseif ($u->items['add'][$i6] == 'mib4') {
                                                $ba .= 'Броня ног: +' . $anl['add_' . $u->items['add'][$i6]] . ', ';
                                            } elseif ($u->items['add'][$i6] == 'mab1' || $u->items['add'][$i6] == 'mab2' || $u->items['add'][$i6] == 'mab3' || $u->items['add'][$i6] == 'mab4') {
                                            } else {
                                                $ba .= $u->is[$u->items['add'][$i6]] . ': +' . $anl['add_' . $u->items['add'][$i6]] . ', ';
                                            }
                                        }
                                    }
                                    $i6++;
                                }
                                $ba = trim($ba, ', ');
                                if ($ba == '') {
                                    $ba = 'Эффект отсутсвует';
                                }

                                $mas1['text'] = '{tm1} {u2} очнулся от медитации, и призвал заклятье &quot;<strong>' . $tpa3[$a['type']] . ' [' . $a['level'] . ']</strong>&quot; на {u1}. (' . $ba . ')';
                                $nxtlg[count($nxtlg)] = $mas1;
                                mysql_query(
                                    'UPDATE `users_animal` SET `eda` = `eda` - 1 WHERE `id` = "' . $a['id'] . '" LIMIT 1'
                                );
                                $this->get_comment();
                            }
                        }
                    }

                    mysql_query(
                        'UPDATE `stats` SET `last_hp` = "0",`tactic1`="0",`tactic2`="0",`tactic3`="0",`tactic4`="0",`tactic5`="0",`tactic6`="0",`tactic7` = "' . ($this->users[$i]['tactic7']) . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
                    );
                    $rs[$this->users[$i]['team']] = $rs[$this->users[$i]['team']] . $u->microLogin(
                            $this->users[$i], 2
                        ) . ', ';
                }
                $up .= '`uid` = "' . $pl['id'] . '" OR';
                //battle-user (статистика, начальная)
                $mybu = mysql_fetch_array(
                    mysql_query(
                        'SELECT `id` FROM `battle_users` WHERE `battle` = "' . $this->info['id'] . '" AND `uid` = "' . mysql_real_escape_string(
                            $pl['id']
                        ) . '" LIMIT 1'
                    )
                );
                if (!isset($mybu['id'])) {
                    //Пустое значение статистики для данного персонажа за текущий бой
                    $this->addstatuser($pl['id']);
                }
                $i++;
            }

            $up = rtrim($up, ' OR');

            //Заносим в лог начало поединка

            if ($this->info['start1'] == 0) {
                $tststrt = mysql_fetch_array(
                    mysql_query(
                        'SELECT `id` FROM `battle` WHERE `id` = "' . $this->info['id'] . '" AND `start1` = "0" LIMIT 1'
                    )
                );
                if (isset($tststrt['id'])) {
                    $upd = mysql_query(
                        'UPDATE `battle` SET `start1` = "' . time() . '" WHERE `id` = "' . $this->info['id'] . '" LIMIT 1'
                    );
                    if ($upd) {
                        $i = 0;
                        $r = '';
                        while ($i <= $tsi) {
                            if (isset($rs[$i]) && $rs[$i] != '') {
                                $r .= rtrim($rs[$i], ', ') . ' и ';
                            }
                            $i++;
                        }
                        $r = rtrim($r, ' и ');
                        $r = str_replace('"', '\\\\\"', $r);
                        $this->hodID++;
                        $vLog = 'time1=' . time() . '||';
                        $mass = [
                            'time' => time(),
                            'battle' => $this->info['id'],
                            'id_hod' => $this->hodID,
                            'text' => 'test',
                            'vars' => $vLog,
                            'zona1' => '',
                            'zonb1' => '',
                            'zona2' => '',
                            'zonb2' => '',
                            'type' => '1',
                        ];
                        $r = 'Часы показывали <span class=\\\\\"date\\\\\">' . date(
                                'd.m.Y H:i',
                                $this->info['time_start']
                            ) . '</span>, когда ' . $r . ' бросили вызов друг другу.';
                        $ins = mysql_query(
                            'INSERT INTO `battle_logs` (`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zonb1`,`zona2`,`zonb2`,`type`) VALUES ("' . $mass['time'] . '","' . $mass['battle'] . '","' . $mass['id_hod'] . '","' . $r . '","' . $mass['vars'] . '","' . $mass['zona1'] . '","' . $mass['zonb1'] . '","' . $mass['zona2'] . '","' . $mass['zonb2'] . '","' . $mass['type'] . '")'
                        );
                        $this->info['start1'] = time();
                    }
                }

                //

                if (count($nxtlg) > 0) {
                    $i = 0;
                    while ($i < count($nxtlg)) {
                        $this->add_log($nxtlg[$i]);
                        $i++;
                    }
                }
                //
            }
        }
    }

    public function addstatuser($id)
    {
        if ($id > 0) {
            $uid = $id;
            $id = $this->uids[$uid];
            mysql_query(
                'INSERT INTO `battle_users`
					( `battle`,`uid`,`time_enter`,`login`,`level`,`align`,`clan`,`hpAll`,`hp`,`hpStart`,`team` )
				VALUES
				(
					"' . $this->info['id'] . '",
					"' . $uid . '",
					"' . time() . '","' . $this->users[$id]['login'] . '",
					"' . $this->users[$id]['level'] . '",
					"' . $this->users[$id]['align'] . '",
					"' . $this->users[$id]['clan'] . '",
					"' . $this->stats[$id]['hpAll'] . '",
					"' . $this->stats[$id]['hp'] . '",
					"' . $this->stats[$id]['hpNow'] . '",
					"' . $this->users[$id]['team'] . '"
				)'
            );
        }
    }

    public function testZonbVis()
    {
        global $u;
        if ($this->stnZbVs == 0) {
            $zb = $this->stats[$this->uids[$u->info['id']]]['zonb'];
            $this->stnZbVs = $zb;
        } else {
            $zb = $this->stnZb;
        }
        $eu = $this->users[$this->uids[$u->info['id']]]['enemy'];
        if ($zb > 3) {
            $zb = 3;
        }
        if (
            $eu != 0 &&
            (
                $this->stats[$this->uids[$eu]]['weapon1'] == 1 ||
                $this->stats[$this->uids[$eu]]['weapon2'] == 1
            ) &&
            $this->stats[$this->uids[$u->info['id']]]['weapon1'] != 1 &&
            $this->stats[$this->uids[$u->info['id']]]['weapon2'] != 1
        ) {
            $zb -= 1;
        }
        if ($zb < 1) {
            $zb = 1;
        }
        return $zb;
    }

    ///----Спасение функция

    public function genTeams($you): string
    {
        global $u;
        $ret = '';
        $teams = [];
        //выделяем пользователей
        $i = 0;
        $j = 1;
        $tms = [];
        $teams[$this->users[$this->uids[$you]]['team']] = '';
        $tms[0] = $this->users[$this->uids[$you]]['team'];
        while ($i < count($this->uids)) {
            if ($this->stats[$i]['hpNow'] > 0) {
                if (!isset($teams[$this->users[$i]['team']])) {
                    $tms[$j] = $this->users[$i]['team'];
                    $j++;
                }
                if ($this->stats[$i]['hpNow'] < 0) {
                    $this->stats[$i]['hpNow'] = 0;
                }
                if ($this->stats[$i]['hpAll'] < $this->stats[$i]['hpNow']) {
                    $this->stats[$i]['hpNow'] = $this->stats[$i]['hpAll'];
                }
                $a1ms = '';
                if (isset($this->ga[$this->users[$i]['id']][$you]) && $this->ga[$this->users[$i]['id']][$you]) {
                    $a1mc = '';
                    $ac = mysql_fetch_array(
                        mysql_query(
                            'SELECT * FROM `battle_act` WHERE `id` = "' . $this->ga[$this->users[$i]['id']][$you] . '" LIMIT 1'
                        )
                    );
                    if (isset($ac) && $ac['time'] + $this->info['timeout'] - 15 < time()) {
                        $a1mc = 'color:red;';
                    }
                    $a1ms = 'style=\"text-decoration: underline; ' . $a1mc . '\"';
                } elseif (isset($this->ag[$this->users[$i]['id']][$you]) && $this->ag[$this->users[$i]['id']][$you]) {
                    $a1mc = '';
                    $ac = mysql_fetch_array(
                        mysql_query(
                            'SELECT * FROM `battle_act` WHERE `id` = "' . $this->ag[$this->users[$i]['id']][$you] . '" LIMIT 1'
                        )
                    );
                    if (isset($ac) && $ac['time'] + $this->info['timeout'] - 15 < time()) {
                        $a1mc = 'color:green;';
                    }
                    $a1ms = 'style=\"text-decoration: overline; ' . $a1mc . '\"';
                }
                if ($this->users[$i]['login2'] == '') {
                    $this->users[$i]['login2'] = $this->users[$i]['login'];
                }
                if ($this->users[$i]['align'] == 9) {
                    $this->stats[$i]['hpNow'] = $this->stats[$i]['hpNow'] / ($this->stats[$i]['hpAll'] / 100);
                    $this->stats[$i]['hpAll'] = '100%';
                }
                $ldr = '';
                if ($this->users[$i]['lider'] == $this->info['id']) {
                    $ldr = '<img width=24 height=15 title=Лидер&nbsp;группы src=//img.new-combats.tech/i/lead' . $this->users[$i]['team'] . '.gif \>';
                }
                $teams[$this->users[$i]['team']] .= ', ' . $ldr . '<span ' . $a1ms . ' class=\"CSSteam' . $this->users[$i]['team'] . '\" onClick=\"top.chat.addto(\'' . $this->users[$i]['login2'] . '\',\'to\'); return false;\" oncontextmenu=\"top.infoMenu(\'' . $this->users[$i]['login2'] . '\',event,\'main\'); return false;\">' . $this->users[$i]['login2'] . '</span><small> [' . floor(
                        $this->stats[$i]['hpNow']
                    ) . '/' . $this->stats[$i]['hpAll'] . ']</small>';
            }
            $i++;
        }

        //генерируем команды
        $i = 0;
        while ($i < count($tms)) {
            $teams[$tms[$i]] = ltrim($teams[$tms[$i]], ', ');
            if ($teams[$tms[$i]] != '') {
                $teams[$tms[$i]] = '<img src=\"//img.new-combats.tech/i/lock3.gif\" style=\"cursor:pointer\" width=\"20\" height=\"15\" onClick=\"top.chat.addto(\'team' . $tms[$i] . '\',\'private\'); return false;\"> ' . $teams[$tms[$i]];
                $ret .= $teams[$tms[$i]];
                if (count($tms) > $i + 1) {
                    $ret .= ' <span class=\"CSSvs\">&nbsp; против &nbsp;</span> ';
                }
            }
            $i++;
        }
        return 'genteam("' . $ret . '");';
    }
}