Вход Регистрация
Файл: html/php/battle.php
Строк: 2092
<?php

require '../system/dbc.php';
ini_set('error_reporting'E_ALL);
ini_set('display_errors'1);
ini_set('display_startup_errors'1);
$ButtonBattleColorCount 0;
$PAutotimerCount 10//*1
$MAutotimerCount 10//*1
$PtimerCount 10//*3
$MtimerCount 10//*3
$BattleResult 0;
$Buttonvisible 0;
$arr = [[], [], []];
$PeleksirEffect = [];
$PeleksirNCarr 0;

if (isset(
$user)) {
    
$PlayerArr $user;
    
//чтение элексиров одетых
    
$PresEleksirUserBag $mc->query("SELECT * FROM `userbag` WHERE `id_user` = '" $PlayerArr['id'] . "' AND `id_punct` = '9' AND `dress` = '1' ORDER BY `userbag`.`dress` DESC,`userbag`.`id` DESC");
    
$PeleksirUserBagArrAll $PresEleksirUserBag->fetch_all(MYSQLI_ASSOC);
    
//параметры элексиров в магазине
    
$PeleksirShopArrAll "";
    for (
$is 0is_array($PeleksirUserBagArrAll) && $is count($PeleksirUserBagArrAll); $is++) {
        
$PresEleksirShop $mc->query("SELECT * FROM `shop` WHERE `id` = '" $PeleksirUserBagArrAll[$is]['id_shop'] . "' LIMIT 1");
        if (
is_array($PeleksirShopArrAll)) {
            
$PeleksirShopArrAll array_merge($PeleksirShopArrAll, [$PresEleksirShop->fetch_array(MYSQLI_ASSOC)]);
        } else {
            
$PeleksirShopArrAll = [$PresEleksirShop->fetch_array(MYSQLI_ASSOC)];
        }
    }
    
//получаем параметры игрока в бою если герой активен
    
$Pres $mc->query("SELECT * FROM `battle` WHERE `Mid` = '" $PlayerArr['id'] . "' && `player_activ`='1' && `end_battle`='0' && `Plife`>'0' && `Ptype`='0' LIMIT 1");

    
//отключим моба который долго сражаеся с противником
    
$mc->query("UPDATE `battle` SET `lost_mob_id`='0' WHERE `Phodtime`<'" . (time() - 60) . "'");
    if (
$Pres->num_rows) {
        
$PA $Pres->fetch_array(MYSQLI_ASSOC);
        
//проверим что герой не один в бою
        
if ($mc->query("SELECT * FROM `battle` WHERE `battle_id`='" $PA['battle_id'] . "' && `command`!='" $PA['command'] . "' LIMIT 1")->num_rows 1) {
            
$mc->query("UPDATE `battle` SET `end_battle` = '1' WHERE `battle_id`='" $PA['battle_id'] . "'");
            
errorbattle(0);
            exit(
0);
        }
        
//проверяем что есть еще жывые противники
        
if ($mc->query("SELECT * FROM `battle` WHERE `battle_id`='" $PA['battle_id'] . "' && `command`!='" $PA['command'] . "' && `Plife`>'0' LIMIT 1")->num_rows == 0) {
            
$mc->query("UPDATE `battle` SET `end_battle` = '1' , `player_activ`='0' WHERE `battle_id`='" $PA['battle_id'] . "'");
            
errorbattle(44);
            exit(
0);
        }
        if (
$PA['lost_mob_id'] < '1') {
            
//если моб отстутствует то попытаться установить нового
            
$MPres $mc->query("SELECT * FROM `battle` WHERE "
                    
"`battle_id`='" $PA['battle_id'] . "' && "
                    
"`command`!='" $PA['command'] . "' &&"
                    
"`player_activ`='1' &&"
                    
"`end_battle`='0' &&"
                    
"`Plife`>'0' && "
                    
"`lost_mob_id`<'1'"
                    
" ORDER BY `counter` ASC LIMIT 1");
            
$mc->query("UPDATE `battle` SET `Phodtime` = '" . (time() + 3) . "' WHERE `id`='" $PA['id'] . "'");
            
$PA['Phodtime'] = (time() + 3);
            
chekCommand();
        } elseif (
$PA['lost_mob_id'] != '0' && $PA['lost_mob_id'] != '-1') {
            
//или прочитаем старого
            
$MPres $mc->query("SELECT * FROM `battle` WHERE `id`='" $PA['lost_mob_id'] . "' LIMIT 1");
        }
        
$Pname $PA['Pname'];
        
$Pnamevs $PA['Pnamevs'];
        
$Pvsname $PA['Pvsname'];
        
$Plevel = (int) $PA['level'];
        
$Pico = (int) $PA['Pico'];
        
$Pflife = (int) $PA['Pflife'];
        
$Plife = (int) $PA['Plife'];
        
$Ptochnost = (int) $PA['Ptochnost'];
        
$Pblock = (int) $PA['Pblock'];
        
$Puron = (int) $PA['Puron'];
        
$Pbronia = (int) $PA['Pbronia'];
        
$Poglushenie = (int) $PA['Poglushenie'];
        
$Puvorot = (int) $PA['Puvorot'];
        
$Pweaponico = (int) $PA['Pweaponico'];
        
$Pshieldnum = (int) $PA['Pshieldnum'];
        
$Pshieldonoff = (int) $PA['Pshieldonoff'];
        
$Ptype = (int) $PA['Ptype'];
        
$Pvisible = (int) $PA['Pvisible'];
        
$Panimation = (int) $PA['Panimation'];
        
$PManimation = (int) $PA['Manimation'];
        
$Phod = (int) $PA['Phod'];
        
$Phodtime = (int) $PA['Phodtime'];
        
$Pauto = (int) $PA['Pauto'];
        
$PAlwaysEffect json_decode($PA['PAlwaysEffect']);
        
$Phodeffect json_decode($PA['Phodeffect']);
        
$Pmhodeffect json_decode($PA['Pmhodeffect']);
        
$PeleksirVisible = (int) $PA['PeleksirVisible'];
        
$PeleksirUsed = [];
        if (
$PA['PeleksirUsed'] != "") {
            
$PeleksirUsed json_decode($PA['PeleksirUsed']);
        }
        
$PweaponEffect json_decode($PA['PweaponEffect']);
        
$PentityEffect json_decode($PA['PentityEffect']);
        
$PMentityEffect json_decode($PA['MentityEffect']);
        
$PentityArr 0;
        
$PMentityArr 0;
        
$PRuron 0;
        
$Pnumudar $PA['numudar'];
        
$Psuper $PA['super'];
        
//сброс значений энтити игрока
        
$mc->query("UPDATE `battle` SET `PentityEffect` = '[]',`MentityEffect` = '[]' WHERE `id`='" $PA['id'] . "' ");

        
//если противник оглушен был то 2
        
if ($PManimation == 8) {
            
$prazgon 2;
        } else {
            
$prazgon 1;
        }


        if (isset(
$MPres) && $MPres->num_rows) {
            
//получим параметры противника
            
$MPA $MPres->fetch_array(MYSQLI_ASSOC);
            
//параметры героя
            //параметры противника
            
$MPid $MPA['Mid'];
            
$MPname $MPA['Pname'];
            
$MPnamevs $MPA['Pnamevs'];
            
$MPvsname $MPA['Pvsname'];
            
$MPlevel = (int) $MPA['level'];
            
$MPico = (int) $MPA['Pico'];
            
$MPflife = (int) $MPA['Pflife'];
            
$MPlife = (int) $MPA['Plife'];
            
$MPtochnost = (int) $MPA['Ptochnost'];
            
$MPblock = (int) $MPA['Pblock'];
            
$MPuron = (int) $MPA['Puron'];
            
$MPbronia = (int) $MPA['Pbronia'];
            
$MPoglushenie = (int) $MPA['Poglushenie'];
            
$MPuvorot = (int) $MPA['Puvorot'];
            
$MPweaponico = (int) $MPA['Pweaponico'];
            
$MPshieldnum = (int) $MPA['Pshieldnum'];
            
$MPshieldonoff = (int) $MPA['Pshieldonoff'];
            
$MPtype = (int) $MPA['Ptype'];
            
$MPvisible = (int) $MPA['Pvisible'];
            
$MMvisible = (int) $MPA['Mvisible'];
            
$MPhod = (int) $MPA['Phod'];
            
$MPhodtime = (int) $MPA['Phodtime'];
            
$MPauto = (int) $MPA['Pauto'];
            
$MPAlwaysEffect json_decode($MPA['PAlwaysEffect']);
            
$MPhodeffect json_decode($MPA['Phodeffect']);
            
$MPmhodeffect json_decode($MPA['Pmhodeffect']);
            
$MPeleksirVisible = (int) $MPA['PeleksirVisible'];
            
$MPweaponEffect json_decode($MPA['PweaponEffect']);
            
$MPentityEffect json_decode($MPA['PentityEffect']);
            
$MMentityEffect json_decode($MPA['MentityEffect']);
            
$MPentityArr 0;
            
$MPMentityArr 0;
            
$MRuron 0;
            
$MPnumudar $MPA['numudar'];
            
$MPsuper $MPA['super'];
            
//если противник оглушен был то 1
            
if ($Panimation == 8) {
                
$mrazgon 2;
            } else {
                
$mrazgon 1;
            }
            
//запишем игроку номер айди моба в бою
            
$PA['lost_mob_id'] = $MPA['id'];
            
//обновим айди противника герою в бд и мобу
            
$mc->query("UPDATE `battle` SET `lost_mob_id` = '" $MPA['id'] . "' WHERE `id` = '" $PA['id'] . "'");
            
$mc->query("UPDATE `battle` SET `lost_mob_id` = '" $PA['id'] . "' WHERE `id` = '" $MPA['id'] . "'");
            
$Buttonvisible = (int) $PA['Phod'];
            
//включение хода героя если у обоих 0
            
if ($Phod === && $MPhod === || $Phod === && $MPhod === 1) {
                
$Phod 0;
                
$MPhod 1;
                
$mc->query("UPDATE `battle` SET `PeleksirVisible`='1',`Phodtime` = '" . (time() + 3) . "',`Phod` = '0' WHERE `id`='" $PA['id'] . "' ");
                
$mc->query("UPDATE `battle` SET `PeleksirVisible`='1',`Phodtime` = '" time() . "',`Phod` = '1' WHERE `id`='" $MPA['id'] . "' ");
            }
            
//проверка щита героя
            
if ($Pshieldonoff === && $Pshieldnum 1) {
                
$Pshieldonoff 0;
                
$mc->query("UPDATE `battle` SET `Pshieldonoff` = '0' WHERE `id`='" $PA['id'] . "' ");
            }
            
//проверка щита героя
            
if ($MPshieldonoff === && $MPshieldnum 1) {
                
$MPshieldonoff 0;
                
$mc->query("UPDATE `battle` SET `Pshieldonoff` = '0' WHERE `id`='" $MPA['id'] . "' ");
            }
            
$Phodc $PA['Phodc'];
            
$MPhodc $MPA['Phodc'];

            if (
$Phodc == && $Phod == 1) {
                
$Phodc 0;
                
$mc->query("UPDATE `battle` SET `Phodc`='0' WHERE `id`='" $PA['id'] . "' ");
            }
            if (
$MPhodc == && $MPhod == 1) {
                
$MPhodc 0;
                
$mc->query("UPDATE `battle` SET `Phodc`='0' WHERE `id`='" $MPA['id'] . "' ");
            }
            if (
$Phodc == $MPhodc) {
                
$Phodc 0;
                
$MPhodc 0;
            }

            
//автоматический ход
            //если ход игрока
            
if ($Phod == && $Phodc == && $Plife && $MPlife 0) {
                if (
time() >= $Phodtime $PtimerCount || $Pauto == && time() >= $Phodtime $PAutotimerCount) {
                    
$mc->query("UPDATE `battle` SET `Pauto`='1' WHERE `id`='" $PA['id'] . "' ");
                    
$Pauto 1;
                    
Pturn(3);
                    
oglush();
                    
$Buttonvisible 0;
                } else if (
time() > $Phodtime $PtimerCount 2) {
                    
$ButtonBattleColorCount 2;
                } else if (
time() > $Phodtime $PtimerCount) {
                    
$ButtonBattleColorCount 1;
                }
            } else {
                
$mc->query("UPDATE `battle` SET `Phodtime` = '" time() . "' WHERE `id`='" $PA['id'] . "' ");
            }

            
//если ход противника
            
if ($MPhod == && $MPhodc == && $MPlife && $Plife 0) {
                if (
time() >= $MPhodtime && $MPtype == || time() >= $MPhodtime $MtimerCount || $MPauto == && time() >= $MPhodtime $MAutotimerCount) {
                    
$mc->query("UPDATE `battle` SET `Pauto`='1' WHERE `id`='" $MPA['id'] . "' ");
                    if (
$MPid == -1) {
                        
$MPnumudar $MPnumudar '2';
                    }
                    
$MPauto 1;
                    
Mturn(3);
                    
oglush();
                    
$Buttonvisible 0;
                } else if (
time() > $MPhodtime $MtimerCount 2) {
                    
$ButtonBattleColorCount 2;
                } else if (
time() > $MPhodtime $MtimerCount) {
                    
$ButtonBattleColorCount 1;
                }
            } else {
                
$mc->query("UPDATE `battle` SET `Phodtime` = '" time() . "' WHERE `id`='" $MPA['id'] . "' ");
            }
            if (
$Pauto == 1) {
                
$ButtonBattleColorCount 2;
            }
            
//взять количество и номер иконки элексира[[ 5,0,0,[[ [[1,5,5]] ]] ]]
            
for ($i 0is_array($PeleksirUserBagArrAll) && $i count($PeleksirUserBagArrAll); $i++) {
                if (
is_array($PeleksirNCarr)) {
                    
$PeleksirNCarr array_merge($PeleksirNCarr, array([$PeleksirUserBagArrAll[$i]['koll'], $PeleksirShopArrAll[$i]['id_image']]));
                } else {
                    
$PeleksirNCarr = array([$PeleksirUserBagArrAll[$i]['koll'], $PeleksirShopArrAll[$i]['id_image']]);
                }
            }
//проверка нажатий
            
if (!empty($_POST["numClick"]) && $Phod === && $Buttonvisible == 1) {
                
$numClick $_POST["numClick"];
                
$Pauto 0;
                switch (
$numClick) {
                    case 
$numClick && $numClick 4:
                        
$Buttonvisible 0;
                        
$ButtonBattleColorCount 0;
                        
$mc->query("UPDATE `battle` SET `Pauto`='0' WHERE `id`='" $PA['id'] . "' ");
                        
$Pnumudar $Pnumudar '' $numClick;
                        
Pturn($numClick 1);
                        
oglush();
                        break;
                    case 
4:
                        if (
$Pshieldonoff && $Pshieldnum 0) {
                            
$Pshieldonoff 1;
                            
$mc->query("UPDATE `battle` SET `Pauto`='0' ,`Pshieldonoff` = '1', `Panimation` = '1' WHERE `id`='" $PA['id'] . "' ");
                        } else {
                            
$Pshieldonoff 0;
                            
$mc->query("UPDATE `battle` SET `Pauto`='0' ,`Pshieldonoff` = '0',`Panimation` = '0' WHERE `id`='" $PA['id'] . "' ");
                        }
                        break;
                    case 
$numClick 4:
                        
Pturn($numClick);
                        break;
                }
            }

            
//убит
            //удаление из бд битвы если хп 0
            
if ($MPlife <= 0) {
                
$Buttonvisible 0;
                
$MPlife 0;
                
$PManimation 7;
                
//если противник игрок то запишем ему хп игроку в бд и нам победу прибавим над игроками
                
if ($MPA['Ptype'] == 0) {
                    
$mc->query("UPDATE `users` SET `hp_rt`='" time() . "',`temp_health`='0' WHERE `id`='" $MPA['Mid'] . "'");
                    
$mc->query("UPDATE `users` SET `hp_rt`='" time() . "',`pobedigroki`=`pobedigroki`+'1' WHERE `id`='" $PA['Mid'] . "'");
                    
$mc->query("UPDATE `quests_users` SET `herowin_c` = `herowin_c`+'1' WHERE `id_user`='" $PA['Mid'] . "'");
                } else {
                    
//победа над монстром
                    
$mc->query("UPDATE `users` SET `pobedmonser`=`pobedmonser`+'1' WHERE `id`='" $PA['Mid'] . "'");
                    
//запишем время отсутствия моба если оно больше 0
                    
if ($Mobhuntpar $mc->query("SELECT * FROM `hunt` WHERE `id` = '" $MPA['Mid'] . "' AND `intervalTime`>'0'")->fetch_array(MYSQLI_ASSOC)) {
                        
$mc->query("INSERT INTO `userHuntNotActiveMob` ("
                                
"`id`,"
                                
" `id_user`,"
                                
" `id_mob`,"
                                
" `time_end`"
                                
") VALUES ("
                                
"NULL,"
                                
" '" $PA['Mid'] . "',"
                                
" '" $MPA['Mid'] . "',"
                                
" '" . ($Mobhuntpar['intervalTime'] + time()) . "'"
                                
")");
                    }
                }
                
// следующему СВОБОДНОМУ противнику зададим параметр хода 
                
$mc->query("UPDATE `battle` SET `PeleksirVisible`='1',`Phodtime` = '" time() . "',`Phod` = '1',`Phodc` = '0' WHERE "
                        
"`battle_id`='" $PA['battle_id'] . "' AND "
                        
"`command`!='" $PA['command'] . "' AND"
                        
"`player_activ`='1' AND"
                        
"`end_battle`='0' AND"
                        
"`Plife`>'0' AND "
                        
"`lost_mob_id`<'1'"
                        
"ORDER BY `counter` ASC LIMIT 1");
                
//герою значение противника и хода обнулим 
                
$mc->query("UPDATE `battle` SET `lost_mob_id` = '0',`PeleksirVisible`='1',`Phodtime` = '" . (time() + 3) . "',`Phod` = '0',`Phodc` = '1' WHERE `id`='" $PA['id'] . "' ");
                
//противнику зададим параметр мертв
                
$mc->query("UPDATE `battle` SET `lost_mob_id` = '0',`prev_mob_id`='" $PA['id'] . "',`player_activ` = '0' WHERE `id`='" $MPA['id'] . "' ");
                
$Phod 0;
                
$MPhod 1;
                
$Phodc 1;
                
$MPhodc 0;
            }
            if (
$Plife <= 0) {
                
$Buttonvisible 0;
                
$Plife 0;
                
$Panimation 7;
                
$BattleResult 1;
                
//если противник игрок то запишем ему победу над нами или поражение нам от мобов
                
if ($MPA['Ptype'] == 0) {
                    
$mc->query("UPDATE `users` SET `hp_rt`='" time() . "',`pobedigroki`=`pobedigroki`+'1' WHERE `id`='" $MPA['Mid'] . "'");
                    
$mc->query("UPDATE `quests_users` SET `herowin_c` = `herowin_c`+'1' WHERE `id_user`='" $MPA['Mid'] . "'");
                } else {
                    
$mc->query("UPDATE `users` SET `losemonser`=`losemonser`+'1' WHERE `id`='" $PA['Mid'] . "'");
                }
                
// след СВОБОДНОМУ герою ход из команды героя
                
$mc->query("UPDATE `battle` SET `PeleksirVisible`='1',`Phodtime` = '" time() . "',`Phod` = '1',`Phodc` = '0' WHERE "
                        
"`battle_id`='" $PA['battle_id'] . "' AND "
                        
"`command`!='" $MPA['command'] . "' AND"
                        
"`player_activ`='1' AND"
                        
"`end_battle`='0' AND"
                        
"`Plife`>'0' AND "
                        
"`lost_mob_id`<'1'"
                        
"ORDER BY `counter` ASC LIMIT 1");
                
//запишем хп игроку в бд
                
$mc->query("UPDATE `users` SET `hp_rt`='" time() . "',`temp_health`='0' WHERE `id`='" $PlayerArr['id'] . "'");
                
//противнику ход 0 и противника 0
                
$mc->query("UPDATE `battle` SET `lost_mob_id` = '0',`PeleksirVisible`='1',`Phodtime` = '" . (time() + 3) . "',`Phod` = '0',`Phodc` = '1' WHERE `id`='" $MPA['id'] . "' ");
                
//герою смерть
                
$mc->query("UPDATE `battle` SET `lost_mob_id` = '0',`player_activ` = '0' WHERE `id`='" $PA['id'] . "' ");
                
$Phod 1;
                
$MPhod 0;
                
$Phodc 0;
                
$MPhodc 1;
            }

            if (
$Phodc != && $MPhodc != && $Phodc != $MPhodc && $Plife && $MPlife 0) {
                
//определяем что оба походили по 1 разу
                
$selectedmobid $mc->query("SELECT * FROM `battle` WHERE `battle_id`='" $PA['battle_id'] . "' && `lost_mob_id` <'1' && `command`!='" $PA['command'] . "' && `player_activ`='1' ORDER BY `counter` ASC LIMIT 1")->fetch_array(MYSQLI_ASSOC);
                
$selectedmob2id $mc->query("SELECT * FROM `battle` WHERE `battle_id`='" $PA['battle_id'] . "' && `lost_mob_id`<'1' && `command`!='" $MPA['command'] . "' && `player_activ`='1' ORDER BY `counter` ASC LIMIT 1")->fetch_array(MYSQLI_ASSOC);
                
//получили количество участников с разных сторон 
                //если герой и противник не оглушен и есть другие участники
                
if ($Panimation != && $PManimation != && isset($selectedmobid)) {
                    
//если последним ходил герой
                    
if ($Phodc $MPhodc) {
                        
$Phod 0;
                        
$MPhod 1;
                        
$Phodc 0;
                        
$MPhodc 0;
                        
$Buttonvisible 0;
                        
//запишем герою айди нового противника
                        
$mc->query("UPDATE `battle` SET `counter`='" time() . "',`Phodtime` = '" time() . "',`Phod` = '0',`Phodc` = '0',`lost_mob_id` = '" $selectedmobid['id'] . "'  WHERE `id`='" $PA['id'] . "' ");
                        
//и противнику айди героя
                        
$mc->query("UPDATE `battle` SET `counter`='" time() . "',`Phodtime` = '" time() . "',`Phod` = '1',`Phodc` = '0',`lost_mob_id` = '" $PA['id'] . "' WHERE `id`='" $selectedmobid['id'] . "' ");
                        
//старому противнику обнулим 
                        
$mc->query("UPDATE `battle` SET `counter`='" time() . "',`Phodtime` = '" time() . "',`Phod` = '1',`Phodc` = '0',`lost_mob_id` = '0' WHERE `id`='" $MPA['id'] . "' ");
                    } elseif (
$Phodc $MPhodc) {
                        
$Phod 1;
                        
$MPhod 0;
                        
$Phodc 0;
                        
$MPhodc 0;
                        
//если последним ходил противник
                        //запишем герою новый айди противника
                        
$mc->query("UPDATE `battle` SET `counter`='" time() . "',`Phodtime` = '" time() . "',`Phod` = '1',`Phodc` = '0',`lost_mob_id` = '" $selectedmobid['id'] . "'  WHERE `id`='" $PA['id'] . "' ");
                        
//и противнику айди героя
                        
$mc->query("UPDATE `battle` SET `counter`='" time() . "',`Phodtime` = '" time() . "',`Phod` = '0',`Phodc` = '0',`lost_mob_id` = '" $PA['id'] . "' WHERE `id`='" $selectedmobid['id'] . "' ");
                        
//старому обнулим
                        
$mc->query("UPDATE `battle` SET `counter`='" time() . "',`Phodtime` = '" time() . "',`Phod` = '0',`Phodc` = '0',`lost_mob_id` = '0' WHERE `id`='" $MPA['id'] . "' ");
                    }
                } elseif (
$Panimation != && $PManimation != && isset($selectedmob2id)) {
                    
//или сменим противника противнику если есть другие игроки в команде героя
                    //если последним ходил герой
                    
if ($Phodc $MPhodc) {
                        
$Buttonvisible 0;
                        
$Phod 0;
                        
$MPhod 1;
                        
$Phodc 0;
                        
$MPhodc 0;
                        
//запишем противнику айди нового противника
                        
$mc->query("UPDATE `battle` SET `counter`='" time() . "',`Phodtime` = '" time() . "',`Phod` = '1',`Phodc` = '0',`lost_mob_id` = '0' WHERE `id`='" $MPA['id'] . "' ");
                        
//герою обнулим противника
                        
$mc->query("UPDATE `battle` SET `counter`='" time() . "',`Phodtime` = '" time() . "',`Phod` = '0',`Phodc` = '0',`lost_mob_id` = '0' WHERE `id`='" $PA['id'] . "' ");
                    } elseif (
$Phodc $MPhodc) {
                        
$Phod 1;
                        
$MPhod 0;
                        
$Phodc 0;
                        
$MPhodc 0;
                        
//если последним ходил противник
                        //запишем противнику айди нового противника
                        
$mc->query("UPDATE `battle` SET `counter`='" time() . "',`Phodtime` = '" time() . "',`Phod` = '0',`Phodc` = '0',`lost_mob_id` = '0' WHERE `id`='" $MPA['id'] . "' ");
                        
//герою обнулим противника
                        
$mc->query("UPDATE `battle` SET `counter`='" time() . "',`Phodtime` = '" time() . "',`Phod` = '1',`Phodc` = '0',`lost_mob_id` = '0' WHERE `id`='" $PA['id'] . "' ");
                    }
                } else {
                    
//обнулим ходы просто
                    //если последним ходил герой
                    
if ($Phodc $MPhodc) {
                        
$Phod 0;
                        
$MPhod 1;
                        
$Phodc 0;
                        
$MPhodc 0;
                        
$mc->query("UPDATE `battle` SET `counter`='" time() . "',`Phodtime` = '" time() . "',`Phod` = '0',`Phodc` = '0' WHERE `id`='" $PA['id'] . "' ");
                        
$mc->query("UPDATE `battle` SET `counter`='" time() . "',`Phodtime` = '" time() . "',`Phod` = '1',`Phodc` = '0' WHERE `id`='" $MPA['id'] . "' ");
                    } elseif (
$Phodc $MPhodc) {
                        
$Phod 1;
                        
$MPhod 0;
                        
$Phodc 0;
                        
$MPhodc 0;
                        
//если последним ходил противник
                        
$mc->query("UPDATE `battle` SET `counter`='" time() . "',`Phodtime` = '" time() . "',`Phod` = '1',`Phodc` = '0' WHERE `id`='" $PA['id'] . "' ");
                        
$mc->query("UPDATE `battle` SET `counter`='" time() . "',`Phodtime` = '" time() . "',`Phod` = '0',`Phodc` = '0' WHERE `id`='" $MPA['id'] . "' ");
                    }
                }
            }

            
chekCommand();



            
$PMentityArr json_decode($PMentityArr);
            if (
is_array($PMentityEffect)) {
                if (
is_array($PMentityArr)) {
                    
$PMentityArr array_merge($PMentityEffect$PMentityArr);
                } else {
                    
$PMentityArr $PMentityEffect;
                }
            }
            
$PMentityArr json_encode($PMentityArr);
            
$PentityArr json_decode($PentityArr);
            if (
is_array($PentityEffect)) {
                if (
is_array($PentityArr)) {
                    
$PentityArr array_merge($PentityEffect$PentityArr);
                } else {
                    
$PentityArr $PentityEffect;
                }
            }
            
$PentityArr json_encode($PentityArr);
            
//сброс анимаций игрока в бд
            
if ($Panimation || $Panimation 8) {
                
$mc->query("UPDATE `battle` SET `Panimation` = '" $Pshieldonoff "',`Plife`='" $Plife "' WHERE `id`='" $PA['id'] . "'");
            }
            if (
$PManimation || $PManimation 8) {
                
$mc->query("UPDATE `battle` SET `Manimation` = '" $MPshieldonoff "',`Plife`='" $Plife "' WHERE `id`='" $PA['id'] . "' ");
            }

//вывод данных
            
echo json_encode(array(
                
"error" => "101" $mc->error,
                
"Buttonvisible" => $Buttonvisible,
                
"ButtonBattleColorCount" => $ButtonBattleColorCount,
                
"BattleResult" => $BattleResult,
                
"Pname" => $Pname,
                
"Plife" => $Plife,
                
"Pweapon" => (int) $Pweaponico,
                
"Pico" => $Pico,
                
"Ptype" => $Ptype,
                
"Pvisible" => $Pvisible,
                
"PeleksirVisible" => $PeleksirVisible,
                
"Panimation" => $Panimation,
                
"Pshield" => $Pshieldonoff,
                
"PshieldNC" => $Pshieldnum,
                
"PeleksirNCarr" => $PeleksirNCarr,
                
"Pentityarr" => $PentityArr,
                
"lost_mob_id" => (int) $PA['lost_mob_id'],
                
"Mname" => $MPname,
                
"Mlife" => $MPlife,
                
"Mweapon" => $MPweaponico,
                
"Mico" => $MPico,
                
"Mtype" => $MPtype,
                
"Mvisible" => $MPvisible,
                
"Manimation" => $PManimation,
                
"Mshield" => $MPshieldonoff,
                
"Mentityarr" => $PMentityArr
            
));
        } else {
            if (
$PA['end_battle'] == && $PA['prev_mob_id'] == || $PA['player_activ'] == && $PA['prev_mob_id'] == 0) {
                
$BattleResult 1;
            } else {
                
$BattleResult 0;
            }
            if (
$Plife <= 0) {
                
$Panimation 7;
            }
            
$PMentityArr json_decode($PMentityArr);
            if (
is_array($PMentityEffect)) {
                if (
is_array($PMentityArr)) {
                    
$PMentityArr array_merge($PMentityEffect$PMentityArr);
                } else {
                    
$PMentityArr $PMentityEffect;
                }
            }
            
$PMentityArr json_encode($PMentityArr);
            
$PentityArr json_decode($PentityArr);
            if (
is_array($PentityEffect)) {
                if (
is_array($PentityArr)) {
                    
$PentityArr array_merge($PentityEffect$PentityArr);
                } else {
                    
$PentityArr $PentityEffect;
                }
            }
            
$PentityArr json_encode($PentityArr);
            
$mc->query("UPDATE `battle` SET `Panimation` = '" $Pshieldonoff "',`Manimation` = '0',`Plife`='" $Plife "',`lost_mob_id` = '-1',`prev_mob_id`='0' WHERE `id`='" $PA['id'] . "'");
            echo 
json_encode(array(
                
"error" => "102" $mc->error,
                
"Buttonvisible" => $Buttonvisible,
                
"ButtonBattleColorCount" => $ButtonBattleColorCount,
                
"BattleResult" => $BattleResult,
                
"Pname" => $Pname,
                
"Plife" => $Plife,
                
"Pweapon" => (int) $Pweaponico,
                
"Pico" => $Pico,
                
"Ptype" => $Ptype,
                
"Pvisible" => $Pvisible,
                
"PeleksirVisible" => $PeleksirVisible,
                
"Panimation" => $Panimation,
                
"Pshield" => $Pshieldonoff,
                
"PshieldNC" => $Pshieldnum,
                
"PeleksirNCarr" => $PeleksirNCarr,
                
"Pentityarr" => $PentityArr,
                
"lost_mob_id" => (int) $PA['lost_mob_id'],
                
"Mname" => "",
                
"Mlife" => "",
                
"Mweapon" => "",
                
"Mico" => "",
                
"Mrasa" => "",
                
"Mtype" => "",
                
"Mvisible" => "",
                
"Manimation" => $PManimation,
                
"Mshield" => "",
                
"Mentityarr" => $PMentityArr
            
));
        }
    } else {
        
errorbattle(1);
    }
}

function 
oglush() {
    global 
$Panimation;
    global 
$PManimation;
    global 
$Plife;
    global 
$MPlife;
    global 
$mc;
    global 
$PA;
    global 
$MPA;
    global 
$Phod;
    global 
$MPhod;
    global 
$Phodc;
    global 
$MPhodc;
    if (
$Panimation == && $Plife && $MPlife 0) {
        
$Phod 0;
        
$MPhod 1;
        
$Phodc 0;
        
$MPhodc 0;
        
$mc->query("UPDATE `battle` SET `counter`='" time() . "',`Phodtime` = '" time() . "',`Phod` = '0',`Phodc` = '0' WHERE `id`='" $PA['id'] . "' ");
        
$mc->query("UPDATE `battle` SET `counter`='" time() . "',`Phodtime` = '" time() . "',`Phod` = '1',`Phodc` = '0' WHERE `id`='" $MPA['id'] . "' ");
    } elseif (
$PManimation == && $Plife && $MPlife 0) {
        
$Phod 1;
        
$MPhod 0;
        
$Phodc 0;
        
$MPhodc 0;
        
$mc->query("UPDATE `battle` SET `counter`='" time() . "',`Phodtime` = '" time() . "',`Phod` = '1',`Phodc` = '0' WHERE `id`='" $PA['id'] . "' ");
        
$mc->query("UPDATE `battle` SET `counter`='" time() . "',`Phodtime` = '" time() . "',`Phod` = '0',`Phodc` = '0' WHERE `id`='" $MPA['id'] . "' ");
    }
}

function 
errorbattle($e) {
    global 
$PA;
    global 
$mc;
    echo 
json_encode(array(
        
"error" => $e,
        
"Buttonvisible" => "",
        
"ButtonBattleColorCount" => "",
        
"BattleResult" => $e,
        
"Pname" => "",
        
"Plife" => "",
        
"Pweapon" => "",
        
"Pico" => "",
        
"Pvisible" => 1,
        
"PeleksirVisible" => "",
        
"Panimation" => "",
        
"Pshield" => "",
        
"PshieldNC" => "",
        
"PeleksirNCarr" => "",
        
"Pentityarr" => "",
        
"lost_mob_id" => -1,
        
"Mname" => " ",
        
"Mlife" => "",
        
"Mweapon" => "",
        
"Mico" => "",
        
"Mvisible" => "",
        
"Manimation" => "",
        
"Mshield" => "",
        
"Mentityarr" => ""
    
));
}

function 
udarpopalbool() {
    
$a 8;
    if (
$a 1) {
        
$a 1;
    }
    
$a 100000 $a;
    
$a round($a);
    
$b rand(1100000);
    
$c $a $b;
    if (
$c 100000) {
        return 
1;
    } else {
        return 
0;
    }
}

function 
Pturn($num) {
    global 
$Pauto;
    global 
$prazgon;
    global 
$mc;
    global 
$PA;
    global 
$MPA;
    global 
$Buttonvisible;
    global 
$ButtonBattleColorCount;
    global 
$Pname;
    global 
$Plife;
    global 
$Pweaponico;
    global 
$Pico;
    global 
$Ptype;
    global 
$Pvisible;
    global 
$PeleksirNCarr;
    global 
$MPname;
    global 
$MPweaponico;
    global 
$MPico;
    global 
$MPtype;
    global 
$MPvisible;
    global 
$Plevel;
    global 
$Panimation;
    global 
$PAlwaysEffect;
    global 
$Phodeffect;
    global 
$Pmhodeffect;
    global 
$PeleksirVisible;
    global 
$PeleksirUsed;
    global 
$PweaponEffect;
    global 
$PentityArr;
    global 
$PMentityArr;



    global 
$MPlevel;
    global 
$PManimation;
    global 
$MPAlwaysEffect;
    global 
$MPhodeffect;
    global 
$MPmhodeffect;
    global 
$MPweaponEffect;
    global 
$MPentityEffect;
    global 
$MMentityEffect;

//обработка параметров героев при ударе
    
global $Pflife;
    global 
$Plife;
    global 
$Ptochnost;
    global 
$Pblock;
    global 
$Puron;
    global 
$Pbronia;
    global 
$Poglushenie;
    global 
$Puvorot;
    global 
$Pshieldnum;
    global 
$Pshieldonoff;

    global 
$PRuron;
    global 
$Pnumudar;
    global 
$Psuper;

    global 
$MPflife;
    global 
$MPlife;
    global 
$MPtochnost;
    global 
$MPblock;
    global 
$MPuron;
    global 
$MRuron;
    global 
$MPbronia;
    global 
$MPoglushenie;
    global 
$MPuvorot;
    global 
$MPshieldnum;
    global 
$MPshieldonoff;
    global 
$PeleksirUserBagArrAll;
    global 
$PeleksirShopArrAll;

    global 
$Phodc;
    global 
$MPhodc;

    if (
$num && $num 5) {
        
$Phodc $MPhodc 1;
        
$mc->query("UPDATE `battle` SET `counter`='" time() . "',`Phodtime` = '" time() . "',`Phod` = '0',`Phodc` = '$Phodc' WHERE `id`='" $PA['id'] . "' ");
        
$mc->query("UPDATE `battle` SET `counter`='" time() . "',`Phodtime` = '" time() . "',`Phod` = '1',`PeleksirVisible`='1' WHERE `id`='" $MPA['id'] . "' ");

        
$Panimation $num;
        
//супер удары игрока
        
$suhero 0;
        if (
$Psuper != "" && $Pauto == 0) {
            
$arrsuhero explode(","$Psuper);
            for (
$i 0is_array($arrsuhero) && $i count($arrsuhero); $i++) {
                if (
strstr($Pnumudar$arrsuhero[$i])) {
                    unset(
$arrsuhero[$i]);
                    
$arrsuhero indexaTArr($arrsuhero);
                    
$Panimation 5;
                    
$Psuper implode(","$arrsuhero);
                    
$suhero 1;
                    
$Pnumudar "";
                    break;
                }
            }
        }
        
//генерация попаданий
        //точность героя
        
$t0 rand($Ptochnost$Ptochnost $Plevel);
        
//уворот противника
        
$u0 rand($MPuvorot$MPuvorot $MPlevel);
        
//флаг попадания
        
$popal 0;
        
$popal2 0;
        
$glush rand($Poglushenie$Poglushenie $Plevel) > rand(0$MPbronia + ($MPlevel 12)) && !udarpopalbool();
        
//если точность больше уворота то попал
        
if ($t0 $u0) {
            
$popal 1;
        } else {
            
//или проверим по второй формуле
            
if (rand($t0$u0 1.1) > $u0) {
                
$popal 1;
            } else if (
udarpopalbool()) {
                
$popal 1;
            }
        }
        
//если точность больше блока то попал
        
if ($t0 $MPblock) {
            
$popal2 1;
        }
        if (
$MPshieldonoff == 0) {
            if (
$popal) {
                
//глушение
                
if ($glush) {
                    
//оглушен
                    
$PManimation 8;
                } else {
                    
//попал
                    
$PManimation 9;
                }
            } else if (
$PManimation == 8) {
                
$PManimation 9;
            } else {
                
$PManimation 6;
            }
        }
        
//точка больше блока противника в щите
        
if ($MPshieldonoff == 1) {
            if (
$popal) {
                if (
$popal2 || $glush) {
                    
//глушение
                    
if ($glush) {
                        
//оглушен
                        
$PManimation 8;
                    } else {
                        
//попал
                        
$PManimation 9;
                    }
                } else if (
$PManimation == 8) {
                    
$PManimation 9;
                } else {
                    
$MPshieldnum--;
                    if (
$MPshieldnum 1) {
                        
$MPshieldonoff 0;
                    }
                    
$PManimation $MPshieldonoff;
                }
            } else {
                
$PManimation 6;
            }
        }

        
//сброс анимаций игрока в бд
        
if ($Panimation || $Panimation 8) {
            
$mc->query("UPDATE `battle` SET `Panimation` = '" $Pshieldonoff "',`Plife`='" $Plife "' WHERE `id`='" $PA['id'] . "' ");
        } else {
            
$mc->query("UPDATE `battle` SET `Panimation` = '" $Panimation "',`Plife`='" $Plife "' WHERE `id`='" $PA['id'] . "' ");
        }
        if (
$PManimation || $PManimation 8) {
            
$mc->query("UPDATE `battle` SET `Manimation` = '" $MPshieldonoff "',`Plife`='" $Plife "' WHERE `id`='" $PA['id'] . "' ");
        } else {
            
$mc->query("UPDATE `battle` SET `Manimation` = '" $PManimation "',`Plife`='" $Plife "' WHERE `id`='" $PA['id'] . "' ");
        }
//запись анимаций противника в бд
        
$mc->query("UPDATE `battle` SET `Panimation` = '" $PManimation "',`Manimation` = '" $Panimation "',`Plife`='" $MPlife "' WHERE `id`='" $MPA['id'] . "' ");
    }

//arr:[0:[0:[0:2,1:5,2:1]]]
    
if ($num && $num 5) {
        
//удаление отработанных эффектов игрока на каждый ход
        
for ($i0 0is_array($PAlwaysEffect) && $i0 count($PAlwaysEffect); $i0++) {
            if (!
count($PAlwaysEffect[$i0])) {
                unset(
$PAlwaysEffect[$i0]);
                
$PAlwaysEffect indexaTArr($PAlwaysEffect);
                
$i0 = -1;
            } else if (
count($PAlwaysEffect[$i0]) && $PAlwaysEffect[$i0][0][1] <= 0) {
                unset(
$PAlwaysEffect[$i0][0]);
                
$PAlwaysEffect indexaTArr($PAlwaysEffect);
                
$i0 = -1;
            }
        }
        
//применение эффектов игрока игрока на каждый ход
        
for ($i 0is_array($PAlwaysEffect) && $i count($PAlwaysEffect); $i++) {
            if (
count($PAlwaysEffect[$i][0]) && $PAlwaysEffect[$i][0][1] > 0) {
                
$PAlwaysEffect[$i][0][1] -= 1;
                
//отправка на отрисоку энтити
                
if (is_array($PentityArr)) {
                    
$PentityArr array_merge(array([$PAlwaysEffect[$i][0][0], $PAlwaysEffect[$i][0][2]]), $PentityArr);
                } else {
                    
$PentityArr = array([$PAlwaysEffect[$i][0][0], $PAlwaysEffect[$i][0][2]]);
                }
            }
        }
        
//удаление отработанных эффектов игрока на каждый ход героя
        
for ($i0 0is_array($Phodeffect) && $i0 count($Phodeffect); $i0++) {
            if (!
count($Phodeffect[$i0])) {
                unset(
$Phodeffect[$i0]);
                
$Phodeffect indexaTArr($Phodeffect);
                
$i0 = -1;
            } else if (
count($Phodeffect[$i0]) && $Phodeffect[$i0][0][1] <= 0) {
                unset(
$Phodeffect[$i0][0]);
                
$Phodeffect indexaTArr($Phodeffect);
                
$i0 = -1;
            }
        }
        
//применение эффектов игрока игрока на каждый ход героя
        
for ($i 0is_array($Phodeffect) && $i count($Phodeffect); $i++) {
            if (
count($Phodeffect[$i][0]) && $Phodeffect[$i][0][1] > 0) {
                
$Phodeffect[$i][0][1] -= 1;
                
//отправка на отрисоку энтити
                
if (is_array($PentityArr)) {
                    
$PentityArr array_merge(array([$Phodeffect[$i][0][0], $Phodeffect[$i][0][2]]), $PentityArr);
                } else {
                    
$PentityArr = array([$Phodeffect[$i][0][0], $Phodeffect[$i][0][2]]);
                }
            }
        }

        
//удаление отработанных противника на каждый ход
        
for ($i0 0is_array($MPAlwaysEffect) && $i0 count($MPAlwaysEffect); $i0++) {
            if (!
count($MPAlwaysEffect[$i0])) {
                unset(
$MPAlwaysEffect[$i0]);
                
$MPAlwaysEffect indexaTArr($MPAlwaysEffect);
                
$i0 = -1;
            } else if (
count($MPAlwaysEffect[$i0]) && $MPAlwaysEffect[$i0][0][1] <= 0) {
                unset(
$MPAlwaysEffect[$i0][0]);
                
$MPAlwaysEffect indexaTArr($MPAlwaysEffect);
                
$i0 = -1;
            }
        }
        
//применение эффектов противника на каждый ход
        
for ($i 0is_array($MPAlwaysEffect) && $i count($MPAlwaysEffect); $i++) {
            if (
count($MPAlwaysEffect[$i][0]) && $MPAlwaysEffect[$i][0][1] > 0) {
                
$MPAlwaysEffect[$i][0][1] -= 1;
                
//отправка на отрисоку энтити
                
if (is_array($PMentityArr)) {
                    
$PMentityArr array_merge(array([$MPAlwaysEffect[$i][0][0], $MPAlwaysEffect[$i][0][2]]), $PMentityArr);
                } else {
                    
$PMentityArr = array([$MPAlwaysEffect[$i][0][0], $MPAlwaysEffect[$i][0][2]]);
                }
            }
        }

        
//удаление отработанных противника на каждый ход игрока
        
for ($i0 0is_array($MPmhodeffect) && $i0 count($MPmhodeffect); $i0++) {
            if (!
count($MPmhodeffect[$i0])) {
                unset(
$MPmhodeffect[$i0]);
                
$MPmhodeffect indexaTArr($MPmhodeffect);
                
$i0 = -1;
            } else if (
count($MPmhodeffect[$i0]) && $MPmhodeffect[$i0][0][1] <= 0) {
                unset(
$MPmhodeffect[$i0][0]);
                
$MPmhodeffect indexaTArr($MPmhodeffect);
                
$i0 = -1;
            }
        }
        
//применение эффектов противника на каждый ход игрока
        
for ($i 0is_array($MPmhodeffect) && $i count($MPmhodeffect); $i++) {
            if (
count($MPmhodeffect[$i][0]) && $MPmhodeffect[$i][0][1] > 0) {
                
$MPmhodeffect[$i][0][1] -= 1;
                
//отправка на отрисоку энтити
                
if (is_array($PMentityArr)) {
                    
$PMentityArr array_merge(array([$MPmhodeffect[$i][0][0], $MPmhodeffect[$i][0][2]]), $PMentityArr);
                } else {
                    
$PMentityArr = array([$MPmhodeffect[$i][0][0], $MPmhodeffect[$i][0][2]]);
                }
            }
        }
    }



    
//обработка эффектов элексиров 
    //уменьшение на 1 количества использований
    
if ($num && $PeleksirVisible == && isset($PeleksirUserBagArrAll[$num 5]) && isset($PeleksirUserBagArrAll[$num 5]['koll']) && $PeleksirUserBagArrAll[$num 5]['koll'] < 99) {
//попытка определить был ли применен элексир ранее
        //проверяем в автоэффектах
        
$used 0;
        if (
is_array($PAlwaysEffect)) {
            for (
$i 0$i count($PAlwaysEffect); $i++) {
                if (
array_key_exists(3$PAlwaysEffect[$i][0]) && $PAlwaysEffect[$i][0][3] == $PeleksirShopArrAll[$num 5]['id']) {
                    
$used 1;
                    break;
                }
            }
        }
        if (
$used == && is_array($Phodeffect)) {
            for (
$i 0$i count($Phodeffect); $i++) {
                if (
array_key_exists(3$Phodeffect[$i][0]) && $Phodeffect[$i][0][3] == $PeleksirShopArrAll[$num 5]['id']) {
                    
$used 1;
                    break;
                }
            }
        }
        if (
$used == && is_array($Pmhodeffect)) {
            for (
$i 0$i count($Pmhodeffect); $i++) {
                if (
array_key_exists(3$Pmhodeffect[$i][0]) && $Pmhodeffect[$i][0][3] == $PeleksirShopArrAll[$num 5]['id']) {
                    
$used 1;
                    break;
                }
            }
        }

        if (
$PA['Mid'] == && $used == 1) {
            
//вывод данных
            
echo json_encode(array(
                
"error" => 5,
                
"Buttonvisible" => $Buttonvisible,
                
"ButtonBattleColorCount" => $ButtonBattleColorCount,
                
"BattleResult" => 5,
                
"Pname" => $Pname,
                
"Plife" => $Plife,
                
"Pweapon" => (int) $Pweaponico,
                
"Pico" => $Pico,
                
"Ptype" => $Ptype,
                
"Pvisible" => $Pvisible,
                
"PeleksirVisible" => $PeleksirVisible,
                
"Panimation" => $Panimation,
                
"Pshield" => $Pshieldonoff,
                
"PshieldNC" => $Pshieldnum,
                
"PeleksirNCarr" => $PeleksirNCarr,
                
"Pentityarr" => $PentityArr,
                
"lost_mob_id" => (int) $PA['lost_mob_id'],
                
"Mname" => $MPname,
                
"Mlife" => $MPlife,
                
"Mweapon" => $MPweaponico,
                
"Mico" => $MPico,
                
"Mtype" => $MPtype,
                
"Mvisible" => $MPvisible,
                
"Manimation" => $PManimation,
                
"Mshield" => $MPshieldonoff,
                
"Mentityarr" => $PMentityArr
            
));
            exit(
0);
        }
        
$PeleksirVisible 0;
        
//уменьшение количества элексира на 1
        
$PeleksirUserBagArrAll[$num 5]['koll'] -= 1;
        
$arrEel json_decode_nice($PeleksirShopArrAll[$num 5]['effects']);
        
//допишем айдишник элексира в эффекты
        
for ($i 0is_array($arrEel) && $i count($arrEel); $i++) {
            if (!
array_key_exists(4$arrEel[$i])) {
                
$arrEel[$i][4] = '0';
            }

            if (
$arrEel[$i][0] == 0) {
                for (
$i1 0$i1 count($arrEel[$i][3]); $i1++) {
                    for (
$i2 0$i2 count($arrEel[$i][3][$i1]); $i2++) {
                        
$arrEel[$i][3][$i1][$i2][3] = $PeleksirShopArrAll[$num 5]['id'];
                    }
                }
            }
        }
        if (
$PeleksirShopArrAll[$num 5]['elexvar'] == 0) {
            
$PeleksirUsed[] = $PeleksirShopArrAll[$num 5]['id'];
        }
        
//прячем элексиры
        
$mc->query("UPDATE `battle` SET `PeleksirVisible`='0' WHERE `id`='" $PA['id'] . "' ");

        
//уменьшим количество элексиров
        
$mc->query("UPDATE `userbag` SET `koll` = '" $PeleksirUserBagArrAll[$num 5]['koll'] . "' WHERE `id` = '" $PeleksirUserBagArrAll[$num 5]['id'] . "'");

        for (
$i 0is_array($arrEel) && $i count($arrEel); $i++) {
            if (!isset(
$arrEel[$i][5]) || $arrEel[$i][5] == 0) {
                
$arrEel[$i][1] -= 1;
            }
            
//применится к герою
            
if ($arrEel[$i][0] == 0) {
                
$arrEel[$i][0] = 0;
                
//если массив эффектов оружия hero есть массив то прибавим к нему эффект элексира игрока
                
if (is_array($PweaponEffect)) {
                    
$PweaponEffect array_merge([$arrEel[$i]], $PweaponEffect);
                } else {
                    
//или прибавим к нему эффект элексира mob
                    
$PweaponEffect = [$arrEel[$i]];
                }
                for (
$i0 0is_array($arrEel[$i][3]) && $i0 count($arrEel[$i][3]) && (!isset($arrEel[$i][5]) || $arrEel[$i][5] == 0); $i0++) {
                    
//если массив энтити игрока есть массив то прибавим к нему действие ОРУЖИЯ
                    
if (is_array($PentityArr)) {
                        
$PentityArr array_merge(array([$arrEel[$i][3][$i0][0][0], $arrEel[$i][3][$i0][0][2]]), $PentityArr);
                    } else {
                        
//или сделаем ему действие элексира
                        
$PentityArr = array([$arrEel[$i][3][$i0][0][0], $arrEel[$i][3][$i0][0][2]]);
                    }
                }
                if (
is_array($arrEel[$i][3]) && (!isset($arrEel[$i][5]) || == $arrEel[$i][5])) {
                    
$temp $arrEel[$i][3];
                    for (
$i1 0$i1 count($temp) && (!isset($arrEel[$i][5]) || == $arrEel[$i][5]); $i1++) {
                        
$temp[$i1][0][1] -= 1;
                    }
                    if (!isset(
$arrEel[$i][4]) || == $arrEel[$i][4]) {
                        
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
                        
if (is_array($PAlwaysEffect)) {
                            
$PAlwaysEffect array_merge($temp$PAlwaysEffect);
                        } else {
                            
$PAlwaysEffect $temp;
                        }
                        
//или при ходе героя
                    
} else if (== $arrEel[$i][4]) {
                        
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
                        
if (is_array($Phodeffect)) {
                            
$Phodeffect array_merge($temp$Phodeffect);
                        } else {
                            
$Phodeffect $temp;
                        }
                        
//или при ходе противника
                    
} else if (== $arrEel[$i][4]) {
                        
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
                        
if (is_array($Pmhodeffect)) {
                            
$Pmhodeffect array_merge($temp$Pmhodeffect);
                        } else {
                            
$Pmhodeffect $temp;
                        }
                    }
                }
            }
            
//применится к противнику
            
if ($arrEel[$i][0] == 1) {
                
$arrEel[$i][0] = 0;
                if (
is_array($MPweaponEffect)) {
                    
$MPweaponEffect array_merge([$arrEel[$i]], $MPweaponEffect);
                } else {
                    
//или прибавим к нему эффект элексира игрока
                    
$MPweaponEffect = [$arrEel[$i]];
                }
                for (
$i0 0is_array($arrEel[$i][3]) && $i0 count($arrEel[$i][3]) && (!isset($arrEel[$i][5]) || $arrEel[$i][5] == 0); $i0++) {
                    
//если массив энтити игрока есть массив то прибавим к нему действие ОРУЖИЯ
                    
if (is_array($PMentityArr)) {
                        
$PMentityArr array_merge(array([$arrEel[$i][3][$i0][0][0], $arrEel[$i][3][$i0][0][2]]), $PMentityArr);
                    } else {
                        
//или сделаем ему действие элексира
                        
$PMentityArr = array([$arrEel[$i][3][$i0][0][0], $arrEel[$i][3][$i0][0][2]]);
                    }
                }
                
$temp $arrEel[$i][3];
                for (
$i1 0$i1 count($temp) && (!isset($arrEel[$i][5]) || == $arrEel[$i][5]); $i1++) {
                    
$temp[$i1][0][1] -= 1;
                }
                if (
is_array($arrEel[$i][3]) && (!isset($arrEel[$i][5]) || == $arrEel[$i][5])) {
                    if (!isset(
$arrEel[$i][4]) || == $arrEel[$i][4]) {
                        
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
                        
if (is_array($MPAlwaysEffect)) {
                            
$MPAlwaysEffect array_merge($temp$MPAlwaysEffect);
                        } else {
                            
$MPAlwaysEffect $temp;
                        }
                        
//или при ходе героя
                    
} else if (== $arrEel[$i][4]) {
                        
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
                        
if (is_array($MPhodeffect)) {
                            
$MPhodeffect array_merge($temp$MPhodeffect);
                        } else {
                            
$MPhodeffect $temp;
                        }
                        
//или при ходе противника
                    
} else if (== $arrEel[$i][4]) {
                        
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
                        
if (is_array($MPmhodeffect)) {
                            
$MPmhodeffect array_merge($temp$MPmhodeffect);
                        } else {
                            
$MPmhodeffect $temp;
                        }
                    }
                }
            }
        }
        
$mc->query("DELETE FROM `userbag` WHERE `id_user`='" $PA['Mid'] . "' && `id_punct` = '9' && (`koll` = '0' || `koll` < '-1') ");
    }
    
/*
      PweaponEffect [
      [0:кому, 1:кол штук, 2:когда ,
      [
      [[9, 1, -100]]
      ] ],]
      0:0-герою
      0:1-противнику
      2:0-при попадании
      2:1-всегда
      2:2-по завершении количества-при попадании
      2:3-по завершении количества-всегда
      2:4-каждый * удар при попадании
      2:5-каждый * удар при попадании-всегда
     */
    //обработка эффектов на оружие при попадании 
    //если нажаты кнопки
    
if ($num 5) {
        
        for (
$i 0is_array($PweaponEffect) && $i count($PweaponEffect); $i++) {
            if (
is_array($PweaponEffect[$i][3]) && 
                    isset(
$PweaponEffect[$i][3]) && 
                    
count($PweaponEffect[$i][3]) && 
                    
$PweaponEffect[$i][1] > 0) {

                if (!isset(
$PweaponEffect[$i][6])) {
                    
$PweaponEffect[$i][6] = 1;
                }
                if (!isset(
$PweaponEffect[$i][7])) {
                    
$PweaponEffect[$i][7] = 1;
                } else if (
$PweaponEffect[$i][2] === && ($PManimation === || $PManimation === 9)) {
                    
$PweaponEffect[$i][7] ++;
                } else if (
$PweaponEffect[$i][2] === 5) {
                    
$PweaponEffect[$i][7] ++;
                }


//обработается лишь при попадании
                
if ($PManimation == && $PweaponEffect[$i][2] == || $PManimation == && $PweaponEffect[$i][2] == 0) {
                    
$PweaponEffect[$i][1] -= 1;
                    
//применится к герою
                    
if ($PweaponEffect[$i][0] === 0) {
                        for (
$i0 0is_array($PweaponEffect[$i][3]) && $i0 count($PweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие ОРУЖИЯ
                            
if (is_array($PentityArr)) {
                                
$PentityArr array_merge(array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]), $PentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$PentityArr = array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
playerSetEffect($i);
                    }
                    
//применится к противнику
                    
if ($PweaponEffect[$i][0] === 1) {
                        for (
$i0 0is_array($PweaponEffect[$i][3]) && $i0 count($PweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие ОРУЖИЯ
                            
if (is_array($PMentityArr)) {
                                
$PMentityArr array_merge(array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]), $PMentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$PMentityArr = array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
playermSetEffect($i);
                    }
                }
//обработается всегда
                
if ($PweaponEffect[$i][2] === 1) {
                    
$PweaponEffect[$i][1] -= 1;
                    
//применится к герою
                    
if ($PweaponEffect[$i][0] === 0) {
                        for (
$i0 0is_array($PweaponEffect[$i][3]) && $i0 count($PweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие ОРУЖИЯ
                            
if (is_array($PentityArr)) {
                                
$PentityArr array_merge(array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]), $PentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$PentityArr = array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
playerSetEffect($i);
                    }
                    
//применится к противнику
                    
if ($PweaponEffect[$i][0] === 1) {
                        for (
$i0 0is_array($PweaponEffect[$i][3]) && $i0 count($PweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие ОРУЖИЯ
                            
if (is_array($PMentityArr)) {
                                
$PMentityArr array_merge(array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]), $PMentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$PMentityArr = array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
playermSetEffect($i);
                    }
                }
//обработается при колличестве 1
                
if ($PManimation == && $PweaponEffect[$i][2] == && $PweaponEffect[$i][1] == || $PManimation == && $PweaponEffect[$i][2] == && $PweaponEffect[$i][1] == 1) {
                    
$PweaponEffect[$i][1] -= 1;
                    
//применится к герою
                    
if ($PweaponEffect[$i][0] === 0) {
                        for (
$i0 0is_array($PweaponEffect[$i][3]) && $i0 count($PweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие ОРУЖИЯ
                            
if (is_array($PentityArr)) {
                                
$PentityArr array_merge(array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]), $PentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$PentityArr = array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
playerSetEffect($i);
                    }
                    
//применится к противнику
                    
if ($PweaponEffect[$i][0] === 1) {
                        for (
$i0 0is_array($PweaponEffect[$i][3]) && $i0 count($PweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие ОРУЖИЯ
                            
if (is_array($PMentityArr)) {
                                
$PMentityArr array_merge(array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]), $PMentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$PMentityArr = array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
playermSetEffect($i);
                    }
                } else if (
$PManimation == && $PweaponEffect[$i][2] == && $PweaponEffect[$i][1] > || $PManimation == && $PweaponEffect[$i][2] === && $PweaponEffect[$i][1] > 1) {
                    
$PweaponEffect[$i][1] -= 1;
                }
//обработается при колличестве 1 в любом случае
                
if ($PweaponEffect[$i][2] === && $PweaponEffect[$i][1] === 1) {
                    
$PweaponEffect[$i][1] -= 1;
                    
//применится к герою
                    
if ($PweaponEffect[$i][0] === 0) {
                        for (
$i0 0is_array($PweaponEffect[$i][3]) && $i0 count($PweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие ОРУЖИЯ
                            
if (is_array($PentityArr)) {
                                
$PentityArr array_merge(array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]), $PentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$PentityArr = array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
playerSetEffect($i);
                    }
                    
//применится к противнику
                    
if ($PweaponEffect[$i][0] === 1) {
                        for (
$i0 0is_array($PweaponEffect[$i][3]) && $i0 count($PweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие ОРУЖИЯ
                            
if (is_array($PMentityArr)) {
                                
$PMentityArr array_merge(array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]), $PMentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$PMentityArr = array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
playermSetEffect($i);
                    }
                } else if (
$PweaponEffect[$i][2] === && $PweaponEffect[$i][1] > 1) {
                    
$PweaponEffect[$i][1] -= 1;
                }


                
//обработается лишь при попадании каждый * ход
                
if ($PManimation == && $PweaponEffect[$i][2] == && $PweaponEffect[$i][7] % $PweaponEffect[$i][6] == ||
                        
$PManimation == && $PweaponEffect[$i][2] == && $PweaponEffect[$i][7] % $PweaponEffect[$i][6] == 0) {
                    
$PweaponEffect[$i][1] -= 1;
                    
//применится к герою
                    
if ($PweaponEffect[$i][0] === 0) {
                        for (
$i0 0is_array($PweaponEffect[$i][3]) && $i0 count($PweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие ОРУЖИЯ
                            
if (is_array($PentityArr)) {
                                
$PentityArr array_merge(array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]), $PentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$PentityArr = array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
playerSetEffect($i);
                    }
                    
//применится к противнику
                    
if ($PweaponEffect[$i][0] === 1) {
                        for (
$i0 0is_array($PweaponEffect[$i][3]) && $i0 count($PweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие ОРУЖИЯ
                            
if (is_array($PMentityArr)) {
                                
$PMentityArr array_merge(array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]), $PMentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$PMentityArr = array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
playermSetEffect($i);
                    }
                }



                
//обработается каждый * удар всегда
                
if ($PweaponEffect[$i][2] === && $PweaponEffect[$i][7] % $PweaponEffect[$i][6] == 0) {
                    
$PweaponEffect[$i][1] -= 1;
                    
//применится к герою
                    
if ($PweaponEffect[$i][0] === 0) {
                        for (
$i0 0is_array($PweaponEffect[$i][3]) && $i0 count($PweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие ОРУЖИЯ
                            
if (is_array($PentityArr)) {
                                
$PentityArr array_merge(array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]), $PentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$PentityArr = array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
playerSetEffect($i);
                    }
                    
//применится к противнику
                    
if ($PweaponEffect[$i][0] === 1) {
                        for (
$i0 0is_array($PweaponEffect[$i][3]) && $i0 count($PweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие ОРУЖИЯ
                            
if (is_array($PMentityArr)) {
                                
$PMentityArr array_merge(array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]), $PMentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$PMentityArr = array([$PweaponEffect[$i][3][$i0][0][0], $PweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
playermSetEffect($i);
                    }
                }
            }
        }
        
//удаление отработанных
        
for ($i00 0is_array($PweaponEffect) && $i00 count($PweaponEffect); $i00++) {
            if (
count($PweaponEffect) && $PweaponEffect[$i00][1] <= 0) {
                unset(
$PweaponEffect[$i00]);
                
$PweaponEffect indexaTArr($PweaponEffect);
                
$i00 = -1;
            }
        }
    }
    
//применение всего к статам героя
    
for ($ii 0is_array($PentityArr) && $ii count($PentityArr); $ii++) {
        switch (
$PentityArr[$ii][0]) {
            case 
2:
                
$Ptochnost += $PentityArr[$ii][1];
                break;
            case 
3:
                
$Pblock += $PentityArr[$ii][1];
                break;
            case 
4:
                
$Puron += $PentityArr[$ii][1];
                break;
            case 
5:
                
$Pbronia += $PentityArr[$ii][1];
                break;
            case 
6:
                
$Poglushenie += $PentityArr[$ii][1];
                break;
            case 
7:
                
$Puvorot += $PentityArr[$ii][1];
                break;
        }
    }

    
//применение всего к статам противника
    
for ($ii 0is_array($PMentityArr) && $ii count($PMentityArr); $ii++) {
        switch (
$PMentityArr[$ii][0]) {
            case 
2:
                
$MPtochnost += $PMentityArr[$ii][1];
                break;
            case 
3:
                
$MPblock += $PMentityArr[$ii][1];
                break;
            case 
4:
                
$MPuron += $PMentityArr[$ii][1];
                break;
            case 
5:
                
$MPbronia += $PMentityArr[$ii][1];
                break;
            case 
6:
                
$MPoglushenie += $PMentityArr[$ii][1];
                break;
            case 
7:
                
$MPuvorot += $PMentityArr[$ii][1];
                break;
        }
    }
//обработка попаданий если попал
    
if ($PManimation == && $num && $num || $PManimation == && $num && $num 5) {
        
//если противник уже был под щитом м оглушен или по нему попали
        
if ($MPA['Pshieldonoff'] == && $MPA['Panimation'] == && $PManimation == ||
                
$MPA['Pshieldonoff'] == && $PManimation == ||
                
$PManimation == 9) {
            
$temp 0;
            
//не супер удар
            
if ($suhero != 1) {
                
//урон игрока
                
$a rand($Puron$Puron $Plevel);
                
//если стиль уворот и уже был оглушен
                
if ($prazgon && $PA['stil'] == 2) {
                    
//делим броню на количество оглушений подряд
                    
$b ceil($MPbronia $prazgon);
                } else {
                    
//или просто броня противника
                    
$b $MPbronia;
                }
                
//супер удар . 
            
} else {
                
//формула сушки
                
$a = (($Puron 2) + $Plevel ) + (rand(0$Plevel 2) * 2);
                
//игнорируем броню
                
$b 0;
            }
            
//если урон больше брони
            
if ($a $b) {
                
//вычислим наносимый урон
                
$temp $a $b;
                
//если герой под щитом и не супер удар
                
if ($Pshieldonoff == && $suhero != 1) {
                    
//поделим наносим урон на 2 и округлим в большую сторону
                    
$temp ceil($temp 2);
                }
                
//если наносимый урон больше хп врага 
                
if ($temp $MPlife) {
                    
//сравняем наносимый урон с хп врага
                    
$temp $MPlife;
                }
                
//или запишем наносимый урон 1
            
} else {
                
$temp 1;
            }
            if (
is_array($PMentityArr)) {
                
$PMentityArr array_merge(array([10, -($temp)]), $PMentityArr);
            } else {
                
$PMentityArr = array([10, -($temp)]);
            }
        }
    }
    
//применение всего к статам героя
    
for ($ii 0is_array($PentityArr) && $ii count($PentityArr); $ii++) {
        if (
$PentityArr[$ii][1] < 0) {
            switch (
$PentityArr[$ii][0]) {
                case 
10:
                    
$Plife += $PentityArr[$ii][1];
                    if (
$PentityArr[$ii][1] < 0) {
                        
$MRuron += abs($PentityArr[$ii][1]);
                    }
                    if (
$Plife $Pflife) {
                        
$Plife $Pflife;
                    }
                    break;
                case 
0:
                    
$Plife += $PentityArr[$ii][1];
                    if (
$Plife $Pflife) {
                        
$Plife $Pflife;
                    }
                    break;
                case 
1:
                    
$Pflife += $PentityArr[$ii][1];
                    
$Plife += $PentityArr[$ii][1];
                    if (
$Plife $Pflife) {
                        
$Plife $Pflife;
                    }
                    break;
                case 
8:
                    
$Pflife += $PentityArr[$ii][1];
                    
$Plife += $PentityArr[$ii][1];
                    if (
$PentityArr[$ii][1] < 0) {
                        
$MRuron += abs($PentityArr[$ii][1]);
                    }
                    if (
$Plife $Pflife) {
                        
$Plife $Pflife;
                    }
                    break;
                case 
9:
                    
$Plife += $PentityArr[$ii][1];
                    if (
$PentityArr[$ii][1] < 0) {
                        
$MRuron += abs($PentityArr[$ii][1]);
                    }
                    if (
$Plife $Pflife) {
                        
$Plife $Pflife;
                    }
                    break;
            }
        }
    }
    if (
$Plife 0) {
        for (
$ii 0is_array($PentityArr) && $ii count($PentityArr); $ii++) {
            if (
$PentityArr[$ii][1] > 0) {
                switch (
$PentityArr[$ii][0]) {
                    case 
10:
                        
$Plife += $PentityArr[$ii][1];
                        if (
$Plife $Pflife) {
                            
$Plife $Pflife;
                        }
                        break;
                    case 
0:
                        
$Plife += $PentityArr[$ii][1];
                        if (
$Plife $Pflife) {
                            
$Plife $Pflife;
                        }
                        break;
                    case 
1:
                        
$Pflife += $PentityArr[$ii][1];
                        
$Plife += $PentityArr[$ii][1];
                        if (
$Plife $Pflife) {
                            
$Plife $Pflife;
                        }
                        break;
                    case 
8:
                        
$Pflife += $PentityArr[$ii][1];
                        
$Plife += $PentityArr[$ii][1];
                        if (
$Plife $Pflife) {
                            
$Plife $Pflife;
                        }
                        break;
                    case 
9:
                        
$Plife += $PentityArr[$ii][1];
                        if (
$Plife $Pflife) {
                            
$Plife $Pflife;
                        }
                        break;
                }
            }
        }
    }
    
//применение всего к статам противника
    
for ($ii 0is_array($PMentityArr) && $ii count($PMentityArr); $ii++) {
        if (
$PMentityArr[$ii][1] < 0) {
            switch (
$PMentityArr[$ii][0]) {
                case 
10:
                    
$MPlife += $PMentityArr[$ii][1];
                    if (
$PMentityArr[$ii][1] < 0) {
                        
$PRuron += abs($PMentityArr[$ii][1]);
                    }
                    if (
$MPlife $MPflife) {
                        
$MPlife $MPflife;
                    }
                    break;
                case 
0:
                    
$MPlife += $PMentityArr[$ii][1];
                    if (
$MPlife $MPflife) {
                        
$MPlife $MPflife;
                    }
                    break;
                case 
1:
                    
$MPflife += $PMentityArr[$ii][1];
                    
$MPlife += $PMentityArr[$ii][1];
                    if (
$MPlife $MPflife) {
                        
$MPlife $MPflife;
                    }
                    break;
                case 
8:
                    
$MPflife += $PMentityArr[$ii][1];
                    
$MPlife += $PMentityArr[$ii][1];
                    if (
$PMentityArr[$ii][1] < 0) {
                        
$PRuron += abs($PMentityArr[$ii][1]);
                    }
                    if (
$MPlife $MPflife) {
                        
$MPlife $MPflife;
                    }
                    break;
                case 
9:
                    
$MPlife += $PMentityArr[$ii][1];
                    if (
$PMentityArr[$ii][1] < 0) {
                        
$PRuron += abs($PMentityArr[$ii][1]);
                    }
                    if (
$MPlife $MPflife) {
                        
$MPlife $MPflife;
                    }
                    break;
            }
        }
    }
    if (
$MPlife 0) {
        for (
$ii 0is_array($PMentityArr) && $ii count($PMentityArr); $ii++) {
            if (
$PMentityArr[$ii][1] > 0) {
                switch (
$PMentityArr[$ii][0]) {
                    case 
10:
                        
$MPlife += $PMentityArr[$ii][1];
                        if (
$MPlife $MPflife) {
                            
$MPlife $MPflife;
                        }
                        break;
                    case 
0:
                        
$MPlife += $PMentityArr[$ii][1];
                        if (
$MPlife $MPflife) {
                            
$MPlife $MPflife;
                        }
                        break;
                    case 
1:
                        
$MPflife += $PMentityArr[$ii][1];
                        
$MPlife += $PMentityArr[$ii][1];
                        if (
$MPlife $MPflife) {
                            
$MPlife $MPflife;
                        }
                        break;
                    case 
8:
                        
$MPflife += $PMentityArr[$ii][1];
                        
$MPlife += $PMentityArr[$ii][1];
                        if (
$MPlife $MPflife) {
                            
$MPlife $MPflife;
                        }
                        break;
                    case 
9:
                        
$MPlife += $PMentityArr[$ii][1];
                        if (
$MPlife $MPflife) {
                            
$MPlife $MPflife;
                        }
                        break;
                }
            }
        }
    }
    
//сложение параметров энтити игрока
    
for ($i 0is_array($PentityArr) && $i count($PentityArr); $i++) {
        for (
$i0 1is_array($PentityArr) && $i0 count($PentityArr); $i0++) {
            if (
$i0 $i count($PentityArr)) {
                if (
$PentityArr[$i][0] === $PentityArr[$i0 $i][0]) {
                    
$PentityArr[$i][1] += $PentityArr[$i0 $i][1];
                    unset(
$PentityArr[$i0 $i]);
                    
$PentityArr indexaTArr($PentityArr);
                    
$i0 -= 1;
                }
            }
        }
    }
    
//очистка от 0
    
for ($i 0is_array($PentityArr) && $i count($PentityArr); $i++) {
        if (
$i count($PentityArr)) {
            if (
$PentityArr[$i][1] === 0) {
                unset(
$PentityArr[$i]);
                
$PentityArr indexaTArr($PentityArr);
                
$i = -1;
            }
        }
    }
    
//сложение параметров энтити противника
    
for ($i 0is_array($PMentityArr) && $i count($PMentityArr); $i++) {
        for (
$i0 1is_array($PMentityArr) && $i0 count($PMentityArr); $i0++) {
            if (
$i0 $i count($PMentityArr)) {
                if (
$PMentityArr[$i][0] === $PMentityArr[$i0 $i][0]) {
                    
$PMentityArr[$i][1] += $PMentityArr[$i0 $i][1];
                    unset(
$PMentityArr[$i0 $i]);
                    
$PMentityArr indexaTArr($PMentityArr);
                    
$i0 -= 1;
                }
            }
        }
    }
    
//очистка от 0
    
for ($i 0is_array($PMentityArr) && $i count($PMentityArr); $i++) {
        if (
$i count($PMentityArr)) {
            if (
$PMentityArr[$i][1] === 0) {
                unset(
$PMentityArr[$i]);
                
$PMentityArr indexaTArr($PMentityArr);
                
$i = -1;
            }
        }
    }

    if (
is_array($PMentityArr)) {
        if (
is_array($MPentityEffect)) {
            
$MPentityEffect array_merge($MPentityEffect$PMentityArr);
        } else {
            
$MPentityEffect $PMentityArr;
        }

        
$PMentityArr json_encode($PMentityArr);
    }

    if (
is_array($PentityArr)) {
        if (
is_array($MMentityEffect)) {
            
$MMentityEffect array_merge($MMentityEffect$PentityArr);
        } else {
            
$MMentityEffect $PentityArr;
        }

        
$PentityArr json_encode($PentityArr);
    }
    if (!
is_array($PAlwaysEffect)) {
        
$PAlwaysEffect = [];
    }
    if (!
is_array($Phodeffect)) {
        
$Phodeffect = [];
    }
    if (!
is_array($Pmhodeffect)) {
        
$Pmhodeffect = [];
    }
    if (!
is_array($PweaponEffect)) {
        
$PweaponEffect = [];
    }
    
$mc->query("UPDATE `battle` SET "
            
"`Pflife` = '" $Pflife "',"
            
"`Plife` = '" $Plife "',"
            
"`Ptochnost` = '" $Ptochnost "',"
            
"`Pblock` = '" $Pblock "',"
            
"`Puron` = '" $Puron "',"
            
"`Pbronia` = '" $Pbronia "',"
            
"`Poglushenie` = '" $Poglushenie "',"
            
"`Puvorot` = '" $Puvorot "',"
            
"`Pshieldnum` = '" $Pshieldnum "',"
            
"`PAlwaysEffect` = '" json_encode($PAlwaysEffect) . "',"
            
"`Phodeffect` = '" json_encode($Phodeffect) . "',"
            
"`Pmhodeffect` = '" json_encode($Pmhodeffect) . "',"
            
"`PeleksirVisible` = '" $PeleksirVisible "',"
            
"`PeleksirUsed` = '" json_encode($PeleksirUsed) . "',"
            
"`PweaponEffect` = '" json_encode($PweaponEffect) . "',"
            
"`Ruron` = `Ruron`+'" $PRuron "',"
            
"`numudar` = '$Pnumudar',"
            
"`super` = '$Psuper'"
            
" WHERE `id`='" $PA['id'] . "' ");
    if (!
is_array($MPAlwaysEffect)) {
        
$MPAlwaysEffect = [];
    }
    if (!
is_array($MPhodeffect)) {
        
$MPhodeffect = [];
    }
    if (!
is_array($MPmhodeffect)) {
        
$MPmhodeffect = [];
    }
    if (!
is_array($MPweaponEffect)) {
        
$MPweaponEffect = [];
    }
    if (!
is_array($MPentityEffect)) {
        
$MPentityEffect = [];
    }
    if (!
is_array($MMentityEffect)) {
        
$MMentityEffect = [];
    }
    
$mc->query("UPDATE `battle` SET "
            
"`Pflife` = '" $MPflife "',"
            
"`Plife` = '" $MPlife "',"
            
"`Ptochnost` = '" $MPtochnost "',"
            
"`Pblock` = '" $MPblock "',"
            
"`Puron` = '" $MPuron "',"
            
"`Pbronia` = '" $MPbronia "',"
            
"`Poglushenie` = '" $MPoglushenie "',"
            
"`Puvorot` = '" $MPuvorot "',"
            
"`Pshieldnum` = '" $MPshieldnum "',"
            
"`PAlwaysEffect` = '" json_encode($MPAlwaysEffect) . "',"
            
"`Phodeffect` = '" json_encode($MPhodeffect) . "',"
            
"`Pmhodeffect` = '" json_encode($MPmhodeffect) . "',"
            
"`PweaponEffect` = '" json_encode($MPweaponEffect) . "',"
            
"`PentityEffect` = '" json_encode($MPentityEffect) . "',"
            
"`MentityEffect` = '" json_encode($MMentityEffect) . "',"
            
"`Ruron` = `Ruron`+'" $MRuron "'"
            
" WHERE `id`='" $MPA['id'] . "' ");
}

function 
Mturn($num) {
    global 
$MPauto;
    global 
$MPid;
    global 
$mrazgon;
    global 
$mc;
    global 
$PA;
    global 
$MPA;


    global 
$MPlevel;
    global 
$PManimation;
    global 
$MPAlwaysEffect;
    global 
$MPhodeffect;
    global 
$MPmhodeffect;
    global 
$MPeleksirVisible;
    global 
$MPweaponEffect;
    global 
$MPentityArr;
    global 
$MPMentityArr;



    global 
$Plevel;
    global 
$Panimation;
    global 
$PAlwaysEffect;
    global 
$Phodeffect;
    global 
$Pmhodeffect;
    global 
$PweaponEffect;
    global 
$PentityEffect;
    global 
$PMentityEffect;

//обработка параметров героев при ударе
    
global $MPflife;
    global 
$MPlife;
    global 
$MPtochnost;
    global 
$MPblock;
    global 
$MPuron;
    global 
$MPbronia;
    global 
$MPoglushenie;
    global 
$MPuvorot;
    global 
$MPshieldnum;
    global 
$MPshieldonoff;
    global 
$MRuron;
    global 
$MPnumudar;
    global 
$MPsuper;

    global 
$Pflife;
    global 
$Plife;
    global 
$Ptochnost;
    global 
$Pblock;
    global 
$Puron;
    global 
$PRuron;
    global 
$Pbronia;
    global 
$Poglushenie;
    global 
$Puvorot;
    global 
$Pshieldnum;
    global 
$Pshieldonoff;

    global 
$Phodc;
    global 
$MPhodc;

    if (
$num && $num 5) {
        
$MPhodc $Phodc 1;
        
$mc->query("UPDATE `battle` SET `counter`='" time() . "',`Phodtime` = '" time() . "',`Phod` = '0',`Phodc` = '$MPhodc'  WHERE `id`='" $MPA['id'] . "' ");
        
$mc->query("UPDATE `battle` SET `counter`='" time() . "',`Phodtime` = '" time() . "',`Phod` = '1',`PeleksirVisible`='1' WHERE `id`='" $PA['id'] . "' ");

        
$PManimation $num;
        
//супер удары противника
        
$suhero 0;
        if (
$MPsuper != "" && $MPauto == || $MPsuper != "" && $MPid == -1) {
            
$arrsuhero explode(","$MPsuper);
            for (
$i 0is_array($arrsuhero) && $i count($arrsuhero); $i++) {
                if (
strstr($MPnumudar$arrsuhero[$i])) {
                    unset(
$arrsuhero[$i]);
                    
$arrsuhero indexaTArr($arrsuhero);
                    
$PManimation 5;
                    
$MPsuper implode(","$arrsuhero);
                    
$suhero 1;
                    
$MPnumudar "";
                    break;
                }
            }
        }
        
//генерация попаданий
        //точность героя
        
$t0 rand($MPtochnost$MPtochnost $MPlevel);
        
//уворот противника
        
$u0 rand($Puvorot$Puvorot $Plevel);
        
//флаг попадания
        
$popal 0;
        
$popal2 0;
        
$glush rand($MPoglushenie$MPoglushenie $MPlevel) > rand($Pbronia$Pbronia + ($Plevel 12)) && !udarpopalbool();
        
//если точность больше уворота то попал
        
if ($t0 $u0) {
            
$popal 1;
        } else {
            
//или проверим по второй формуле
            
if (rand($t0$u0 1.1) > $u0) {
                
$popal 1;
            } else if (
udarpopalbool()) {
                
$popal 1;
            }
        }
        
//если точность больше уворота то попал
        
if ($t0 $Pblock) {
            
$popal2 1;
        }
        if (
$Pshieldonoff === 0) {
            if (
$popal) {
                
//глушение
                
if ($glush) {
                    
$Panimation 8;
                } else {
                    
$Panimation 9;
                }
            } else if (
$Panimation === 8) {
                
$Panimation 9;
            } else {
                
$Panimation 6;
            }
        }
        
//точка больше блока противника в щите
        
if ($Pshieldonoff === 1) {
            if (
$popal) {
                if (
$popal2 || $glush) {
                    
//глушение
                    
if ($glush) {
                        
$Panimation 8;
                    } else {
                        
$Panimation 9;
                    }
                } else if (
$Panimation == 8) {
                    
$Panimation 9;
                } else {
                    
$Pshieldnum--;
                    if (
$Pshieldnum 1) {
                        
$Pshieldonoff 0;
                    }
                    
$Panimation $Pshieldonoff;
                }
            } else {
                
$Panimation 6;
            }
        }

        
//сброс анимаций игрока в бд
        
if ($Panimation || $Panimation 8) {
            
$mc->query("UPDATE `battle` SET `Panimation` = '" $Pshieldonoff "',`Plife`='" $Plife "' WHERE `id`='" $PA['id'] . "' ");
        } else {
            
$mc->query("UPDATE `battle` SET `Panimation` = '" $Panimation "',`Plife`='" $Plife "' WHERE `id`='" $PA['id'] . "' ");
        }
        if (
$PManimation || $PManimation 8) {
            
$mc->query("UPDATE `battle` SET `Manimation` = '" $MPshieldonoff "',`Plife`='" $Plife "' WHERE `id`='" $PA['id'] . "' ");
        } else {
            
$mc->query("UPDATE `battle` SET `Manimation` = '" $PManimation "',`Plife`='" $Plife "' WHERE `id`='" $PA['id'] . "' ");
        }
        
$mc->query("UPDATE `battle` SET `Panimation` = '" $PManimation "',`Manimation` = '" $Panimation "',`Plife`='" $MPlife "' WHERE `id`='" $MPA['id'] . "' ");
    }

//arr:[0:[0:[0:2,1:5,2:1]]]
    
if ($num && $num 5) {
        
//удаление отработанных моба при ходе обоих
        
for ($i0 0is_array($MPAlwaysEffect) && $i0 count($MPAlwaysEffect); $i0++) {
            if (!
count($MPAlwaysEffect[$i0])) {
                unset(
$MPAlwaysEffect[$i0]);
                
$MPAlwaysEffect indexaTArr($MPAlwaysEffect);
                
$i0 = -1;
            } else if (
count($MPAlwaysEffect[$i0]) && $MPAlwaysEffect[$i0][0][1] <= 0) {
                unset(
$MPAlwaysEffect[$i0][0]);
                
$MPAlwaysEffect indexaTArr($MPAlwaysEffect);
                
$i0 = -1;
            }
        }
        
//применение эффектов моба
        
for ($i 0is_array($MPAlwaysEffect) && $i count($MPAlwaysEffect); $i++) {
            if (
count($MPAlwaysEffect[$i][0]) && $MPAlwaysEffect[$i][0][1] > 0) {
                
$MPAlwaysEffect[$i][0][1] -= 1;
                
//отправка на отрисоку энтити
                
if (is_array($MPentityArr)) {
                    
$MPentityArr array_merge(array([$MPAlwaysEffect[$i][0][0], $MPAlwaysEffect[$i][0][2]]), $MPentityArr);
                } else {
                    
$MPentityArr = array([$MPAlwaysEffect[$i][0][0], $MPAlwaysEffect[$i][0][2]]);
                }
            }
        }
        
//удаление отработанных моба при ходе моба
        
for ($i0 0is_array($MPhodeffect) && $i0 count($MPhodeffect); $i0++) {
            if (!
count($MPhodeffect[$i0])) {
                unset(
$MPhodeffect[$i0]);
                
$MPhodeffect indexaTArr($MPhodeffect);
                
$i0 = -1;
            } else if (
count($MPhodeffect[$i0]) && $MPhodeffect[$i0][0][1] <= 0) {
                unset(
$MPhodeffect[$i0][0]);
                
$MPhodeffect indexaTArr($MPhodeffect);
                
$i0 = -1;
            }
        }
        
//применение эффектов игрока
        
for ($i 0is_array($MPhodeffect) && $i count($MPhodeffect); $i++) {
            if (
count($MPhodeffect[$i][0]) && $MPhodeffect[$i][0][1] > 0) {
                
$MPhodeffect[$i][0][1] -= 1;
                
//отправка на отрисоку энтити
                
if (is_array($MPentityArr)) {
                    
$MPentityArr array_merge(array([$MPhodeffect[$i][0][0], $MPhodeffect[$i][0][2]]), $MPentityArr);
                } else {
                    
$MPentityArr = array([$MPhodeffect[$i][0][0], $MPhodeffect[$i][0][2]]);
                }
            }
        }





        
//удаление отработанных эффектов героя при ходе обоих
        
for ($i0 0is_array($PAlwaysEffect) && $i0 count($PAlwaysEffect); $i0++) {
            if (!
count($PAlwaysEffect[$i0])) {
                unset(
$PAlwaysEffect[$i0]);
                
$PAlwaysEffect indexaTArr($PAlwaysEffect);
                
$i0 = -1;
            } else if (
count($PAlwaysEffect[$i0]) && $PAlwaysEffect[$i0][0][1] <= 0) {
                unset(
$PAlwaysEffect[$i0][0]);
                
$PAlwaysEffect indexaTArr($PAlwaysEffect);
                
$i0 = -1;
            }
        }
        
//применение эффектов героя при ходе обоих
        
for ($i 0is_array($PAlwaysEffect) && $i count($PAlwaysEffect); $i++) {
            if (
count($PAlwaysEffect[$i][0]) && $PAlwaysEffect[$i][0][1] > 0) {
                
$PAlwaysEffect[$i][0][1] -= 1;
                
//отправка на отрисоку энтити
                
if (is_array($MPMentityArr)) {
                    
$MPMentityArr array_merge(array([$PAlwaysEffect[$i][0][0], $PAlwaysEffect[$i][0][2]]), $MPMentityArr);
                } else {
                    
$MPMentityArr = array([$PAlwaysEffect[$i][0][0], $PAlwaysEffect[$i][0][2]]);
                }
            }
        }
        
//удаление отработанных эффектов героя при ходе моба
        
for ($i0 0is_array($Pmhodeffect) && $i0 count($Pmhodeffect); $i0++) {
            if (!
count($Pmhodeffect[$i0])) {
                unset(
$Pmhodeffect[$i0]);
                
$Pmhodeffect indexaTArr($Pmhodeffect);
                
$i0 = -1;
            } else if (
count($Pmhodeffect[$i0]) && $Pmhodeffect[$i0][0][1] <= 0) {
                unset(
$Pmhodeffect[$i0][0]);
                
$Pmhodeffect indexaTArr($Pmhodeffect);
                
$i0 = -1;
            }
        }
        
//применение эффектов эффектов героя при ходе моба
        
for ($i 0is_array($Pmhodeffect) && $i count($Pmhodeffect); $i++) {
            if (
count($Pmhodeffect[$i][0]) && $Pmhodeffect[$i][0][1] > 0) {
                
$Pmhodeffect[$i][0][1] -= 1;
                
//отправка на отрисоку энтити
                
if (is_array($MPMentityArr)) {
                    
$MPMentityArr array_merge(array([$Pmhodeffect[$i][0][0], $Pmhodeffect[$i][0][2]]), $MPMentityArr);
                } else {
                    
$MPMentityArr = array([$Pmhodeffect[$i][0][0], $Pmhodeffect[$i][0][2]]);
                }
            }
        }
    }


    
/*
      PweaponEffect [
      [0:кому, 1:кол штук, 2:когда ,
      [
      [[9, 1, -100]]
      ] ],]
      0-герою 1-противнику
      2:0-при попадании 2:1-всегда 2:2-по завершении количества-при попадании 3:-по завершении количества-всегда */
    //обработка эффектов на оружие при попадании 
    //если нажаты кнопки
    
if ($num 5) {
        for (
$i 0is_array($MPweaponEffect) && $i count($MPweaponEffect); $i++) {
            if (
is_array($MPweaponEffect[$i][3]) && count($MPweaponEffect[$i][3]) && $MPweaponEffect[$i][1] > 0) {

                if (!isset(
$MPweaponEffect[$i][6])) {
                    
$MPweaponEffect[$i][6] = 1;
                }
                if (!isset(
$MPweaponEffect[$i][7])) {
                    
$MPweaponEffect[$i][7] = 1;
                } else if (
$MPweaponEffect[$i][2] === && ($Panimation === || $Panimation === 9)) {
                    
$MPweaponEffect[$i][7] ++;
                } else if (
$MPweaponEffect[$i][2] === 5) {
                    
$MPweaponEffect[$i][7] ++;
                }



//обработается лишь при попадании
                
if ($Panimation === && $MPweaponEffect[$i][2] === || $Panimation === && $MPweaponEffect[$i][2] === 0) {
                    
$MPweaponEffect[$i][1] -= 1;
                    
//применится к герою
                    
if ($MPweaponEffect[$i][0] === 0) {
                        for (
$i0 0is_array($MPweaponEffect[$i][3]) && $i0 count($MPweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие элексира
                            
if (is_array($MPentityArr)) {
                                
$MPentityArr array_merge(array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]), $MPentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$MPentityArr = array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
mplayerSetEffect($i);
                    }
                    
//применится к противнику
                    
if ($MPweaponEffect[$i][0] === 1) {
                        for (
$i0 0is_array($MPweaponEffect[$i][3]) && $i0 count($MPweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие элексира
                            
if (is_array($MPMentityArr)) {
                                
$MPMentityArr array_merge(array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]), $MPMentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$MPMentityArr = array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
mplayermSetEffect($i);
                    }
                }
                
//обработается всегда
                
if ($MPweaponEffect[$i][2] === 1) {
                    
$MPweaponEffect[$i][1] -= 1;
                    
//применится к герою
                    
if ($MPweaponEffect[$i][0] === 0) {
                        for (
$i0 0is_array($MPweaponEffect[$i][3]) && $i0 count($MPweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие элексира
                            
if (is_array($MPentityArr)) {
                                
$MPentityArr array_merge(array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]), $MPentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$MPentityArr = array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
mplayerSetEffect($i);
                    }
                    
//применится к противнику
                    
if ($MPweaponEffect[$i][0] === 1) {
                        for (
$i0 0is_array($MPweaponEffect[$i][3]) && $i0 count($MPweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие элексира
                            
if (is_array($MPMentityArr)) {
                                
$MPMentityArr array_merge(array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]), $MPMentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$MPMentityArr = array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
mplayermSetEffect($i);
                    }
                }
                
//обработается при колличестве 1
                
if ($Panimation === && $MPweaponEffect[$i][2] === && $MPweaponEffect[$i][1] === || $Panimation === && $MPweaponEffect[$i][2] === && $MPweaponEffect[$i][1] === 1) {
                    
$MPweaponEffect[$i][1] -= 1;
                    
//применится к герою
                    
if ($MPweaponEffect[$i][0] === 0) {
                        for (
$i0 0is_array($MPweaponEffect[$i][3]) && $i0 count($MPweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие элексира
                            
if (is_array($MPentityArr)) {
                                
$MPentityArr array_merge(array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]), $MPentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$MPentityArr = array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
mplayerSetEffect($i);
                    }
                    
//применится к противнику
                    
if ($MPweaponEffect[$i][0] === 1) {
                        for (
$i0 0is_array($MPweaponEffect[$i][3]) && $i0 count($MPweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие элексира
                            
if (is_array($MPMentityArr)) {
                                
$MPMentityArr array_merge(array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]), $MPMentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$MPMentityArr = array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
mplayermSetEffect($i);
                    }
                } else if (
$Panimation === && $MPweaponEffect[$i][2] === && $MPweaponEffect[$i][1] > || $Panimation === && $MPweaponEffect[$i][2] === && $MPweaponEffect[$i][1] > 1) {
                    
$MPweaponEffect[$i][1] -= 1;
                }
                
//обработается при колличестве 1 в любом случае
                
if ($MPweaponEffect[$i][2] === && $MPweaponEffect[$i][1] === 1) {
                    
$MPweaponEffect[$i][1] -= 1;
                    
//применится к герою
                    
if ($MPweaponEffect[$i][0] === 0) {
                        for (
$i0 0is_array($MPweaponEffect[$i][3]) && $i0 count($MPweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие элексира
                            
if (is_array($MPentityArr)) {
                                
$MPentityArr array_merge(array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]), $MPentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$MPentityArr = array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
mplayerSetEffect($i);
                    }
                    
//применится к противнику
                    
if ($MPweaponEffect[$i][0] === 1) {
                        for (
$i0 0is_array($MPweaponEffect[$i][3]) && $i0 count($MPweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие элексира
                            
if (is_array($MPMentityArr)) {
                                
$MPMentityArr array_merge(array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]), $MPMentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$MPMentityArr = array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
mplayermSetEffect($i);
                    }
                } else if (
$MPweaponEffect[$i][2] === && $MPweaponEffect[$i][1] > 1) {
                    
$MPweaponEffect[$i][1] -= 1;
                }


                
//обработается каждый * удар при попаданиях
                
if ($Panimation === && $MPweaponEffect[$i][2] === && $MPweaponEffect[$i][7] % $MPweaponEffect[$i][6] == ||
                        
$Panimation === && $MPweaponEffect[$i][2] === && $MPweaponEffect[$i][7] % $MPweaponEffect[$i][6] == 0) {
                    
$MPweaponEffect[$i][1] -= 1;
                    
//применится к герою
                    
if ($MPweaponEffect[$i][0] === 0) {
                        for (
$i0 0is_array($MPweaponEffect[$i][3]) && $i0 count($MPweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие элексира
                            
if (is_array($MPentityArr)) {
                                
$MPentityArr array_merge(array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]), $MPentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$MPentityArr = array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
mplayerSetEffect($i);
                    }
                    
//применится к противнику
                    
if ($MPweaponEffect[$i][0] === 1) {
                        for (
$i0 0is_array($MPweaponEffect[$i][3]) && $i0 count($MPweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие элексира
                            
if (is_array($MPMentityArr)) {
                                
$MPMentityArr array_merge(array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]), $MPMentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$MPMentityArr = array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
mplayermSetEffect($i);
                    }
                }
                
//обработается каждый * удар всегда
                
if ($MPweaponEffect[$i][2] === && $MPweaponEffect[$i][7] % $MPweaponEffect[$i][6] == 0) {
                    
$MPweaponEffect[$i][1] -= 1;
                    
//применится к герою
                    
if ($MPweaponEffect[$i][0] === 0) {
                        for (
$i0 0is_array($MPweaponEffect[$i][3]) && $i0 count($MPweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие элексира
                            
if (is_array($MPentityArr)) {
                                
$MPentityArr array_merge(array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]), $MPentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$MPentityArr = array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
mplayerSetEffect($i);
                    }
                    
//применится к противнику
                    
if ($MPweaponEffect[$i][0] === 1) {
                        for (
$i0 0is_array($MPweaponEffect[$i][3]) && $i0 count($MPweaponEffect[$i][3]); $i0++) {
                            
//если массив энтити игрока есть массив то прибавим к нему действие элексира
                            
if (is_array($MPMentityArr)) {
                                
$MPMentityArr array_merge(array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]), $MPMentityArr);
                            } else {
                                
//или сделаем ему действие элексира
                                
$MPMentityArr = array([$MPweaponEffect[$i][3][$i0][0][0], $MPweaponEffect[$i][3][$i0][0][2]]);
                            }
                        }
                        
mplayermSetEffect($i);
                    }
                }
            }
        }
        
//удаление отработанных
        
for ($i00 0is_array($MPweaponEffect) && $i00 count($MPweaponEffect); $i00++) {
            if (
count($MPweaponEffect) && $MPweaponEffect[$i00][1] <= 0) {
                unset(
$MPweaponEffect[$i00]);
                
$MPweaponEffect indexaTArr($MPweaponEffect);
                
$i00 = -1;
            }
        }
    }
    
//применение всего к статам героя
    
for ($ii 0is_array($MPentityArr) && $ii count($MPentityArr); $ii++) {
        switch (
$MPentityArr[$ii][0]) {
            case 
2:
                
$MPtochnost += $MPentityArr[$ii][1];
                break;
            case 
3:
                
$MPblock += $MPentityArr[$ii][1];
                break;
            case 
4:
                
$MPuron += $MPentityArr[$ii][1];
                break;
            case 
5:
                
$MPbronia += $MPentityArr[$ii][1];
                break;
            case 
6:
                
$MPoglushenie += $MPentityArr[$ii][1];
                break;
            case 
7:
                
$MPuvorot += $MPentityArr[$ii][1];
                break;
        }
    }
    
//применение всего к статам противника
    
for ($ii 0is_array($MPMentityArr) && $ii count($MPMentityArr); $ii++) {
        switch (
$MPMentityArr[$ii][0]) {
            case 
2:
                
$Ptochnost += $MPMentityArr[$ii][1];
                break;
            case 
3:
                
$Pblock += $MPMentityArr[$ii][1];
                break;
            case 
4:
                
$Puron += $MPMentityArr[$ii][1];
                break;
            case 
5:
                
$Pbronia += $MPMentityArr[$ii][1];
                break;
            case 
6:
                
$Poglushenie += $MPMentityArr[$ii][1];
                break;
            case 
7:
                
$Puvorot += $MPMentityArr[$ii][1];
                break;
        }
    }
//обработка попаданий если попал&& $MPshieldonoff === 0
    
if ($Panimation == && $num && $num || $Panimation == && $num && $num 5) {
        
//если противник уже был под щитом м оглушен или по нему попали
        
if ($PA['Pshieldonoff'] == && $PA['Panimation'] == && $Panimation == ||
                
$PA['Pshieldonoff'] == && $Panimation == ||
                
$Panimation == 9) {
            
$temp 0;
            if (
$suhero != 1) {
                
$a rand($MPuron$MPuron $MPlevel);
                if (
$mrazgon && $MPA['stil'] == 2) {
                    
$b ceil($Pbronia $mrazgon);
                } else {
                    
$b $Pbronia;
                }
            } else {
                
$a = (($MPuron 2) + $MPlevel ) + (rand(0$MPlevel 2) * 2);
                
$b 0;
            }
            if (
$a $b) {
                
$temp $a $b;
                if (
$MPshieldonoff == && $suhero != 1) {
                    
$temp ceil($temp 2);
                }
                if (
$temp $Plife) {
                    
$temp $Plife;
                }
            } else {
                
$temp 1;
            }
            if (
is_array($MPMentityArr)) {
                
$MPMentityArr array_merge(array([10, -($temp)]), $MPMentityArr);
            } else {
                
$MPMentityArr = array([10, -($temp)]);
            }
        }
    }
    
//применение всего к статам героя
    
for ($ii 0is_array($MPentityArr) && $ii count($MPentityArr); $ii++) {
        if (
$MPentityArr[$ii][1] < 0) {
            switch (
$MPentityArr[$ii][0]) {
                case 
10:
                    
$MPlife += $MPentityArr[$ii][1];
                    if (
$MPentityArr[$ii][1] < 0) {
                        
$PRuron += abs($MPentityArr[$ii][1]);
                    }
                    if (
$MPlife $MPflife) {
                        
$MPlife $MPflife;
                    }
                    break;
                case 
0:
                    
$MPlife += $MPentityArr[$ii][1];
                    if (
$MPlife $MPflife) {
                        
$MPlife $MPflife;
                    }
                    break;
                case 
1:
                    
$MPflife += $MPentityArr[$ii][1];
                    
$MPlife += $MPentityArr[$ii][1];
                    if (
$MPlife $MPflife) {
                        
$MPlife $MPflife;
                    }
                    break;
                case 
8:
                    
$MPflife += $MPentityArr[$ii][1];
                    
$MPlife += $MPentityArr[$ii][1];
                    if (
$MPentityArr[$ii][1] < 0) {
                        
$PRuron += abs($MPentityArr[$ii][1]);
                    }
                    if (
$MPlife $MPflife) {
                        
$MPlife $MPflife;
                    }
                    break;
                case 
9:
                    
$MPlife += $MPentityArr[$ii][1];
                    if (
$MPentityArr[$ii][1] < 0) {
                        
$PRuron += abs($MPentityArr[$ii][1]);
                    }
                    if (
$MPlife $MPflife) {
                        
$MPlife $MPflife;
                    }
                    break;
            }
        }
    }
    if (
$MPlife 0) {
        for (
$ii 0is_array($MPentityArr) && $ii count($MPentityArr); $ii++) {
            if (
$MPentityArr[$ii][1] > 0) {
                switch (
$MPentityArr[$ii][0]) {
                    case 
10:
                        
$MPlife += $MPentityArr[$ii][1];
                        if (
$MPlife $MPflife) {
                            
$MPlife $MPflife;
                        }
                        break;
                    case 
0:
                        
$MPlife += $MPentityArr[$ii][1];
                        break;
                    case 
1:
                        
$MPflife += $MPentityArr[$ii][1];
                        
$MPlife += $MPentityArr[$ii][1];
                        if (
$MPlife $MPflife) {
                            
$MPlife $MPflife;
                        }
                        break;
                    case 
8:
                        
$MPflife += $MPentityArr[$ii][1];
                        
$MPlife += $MPentityArr[$ii][1];
                        if (
$MPlife $MPflife) {
                            
$MPlife $MPflife;
                        }
                        break;
                    case 
9:
                        
$MPlife += $MPentityArr[$ii][1];
                        if (
$MPlife $MPflife) {
                            
$MPlife $MPflife;
                        }
                        break;
                }
            }
        }
    }
    
//применение всего к статам противника
    
for ($ii 0is_array($MPMentityArr) && $ii count($MPMentityArr); $ii++) {
        if (
$MPMentityArr[$ii][1] < 0) {
            switch (
$MPMentityArr[$ii][0]) {
                case 
10:
                    
$Plife += $MPMentityArr[$ii][1];
                    if (
$MPMentityArr[$ii][1] < 0) {
                        
$MRuron += abs($MPMentityArr[$ii][1]);
                    }
                    if (
$Plife $Pflife) {
                        
$Plife $Pflife;
                    }
                    break;
                case 
0:
                    
$Plife += $MPMentityArr[$ii][1];
                    if (
$Plife $Pflife) {
                        
$Plife $Pflife;
                    }
                    break;
                case 
1:
                    
$Pflife += $MPMentityArr[$ii][1];
                    
$Plife += $MPMentityArr[$ii][1];
                    if (
$Plife $Pflife) {
                        
$Plife $Pflife;
                    }
                    break;
                case 
8:
                    
$Pflife += $MPMentityArr[$ii][1];
                    
$Plife += $MPMentityArr[$ii][1];
                    if (
$MPMentityArr[$ii][1] < 0) {
                        
$MRuron += abs($MPMentityArr[$ii][1]);
                    }
                    if (
$Plife $Pflife) {
                        
$Plife $Pflife;
                    }
                    break;
                case 
9:
                    
$Plife += $MPMentityArr[$ii][1];
                    if (
$MPMentityArr[$ii][1] < 0) {
                        
$MRuron += abs($MPMentityArr[$ii][1]);
                    }
                    if (
$Plife $Pflife) {
                        
$Plife $Pflife;
                    }
                    break;
            }
        }
    }
    if (
$Plife 0) {
        for (
$ii 0is_array($MPMentityArr) && $ii count($MPMentityArr); $ii++) {
            if (
$MPMentityArr[$ii][1] > 0) {
                switch (
$MPMentityArr[$ii][0]) {
                    case 
10:
                        
$Plife += $MPMentityArr[$ii][1];
                        if (
$Plife $Pflife) {
                            
$Plife $Pflife;
                        }
                        break;
                    case 
0:
                        
$Plife += $MPMentityArr[$ii][1];
                        if (
$Plife $Pflife) {
                            
$Plife $Pflife;
                        }
                        break;
                    case 
1:
                        
$Pflife += $MPMentityArr[$ii][1];
                        
$Plife += $MPMentityArr[$ii][1];
                        if (
$Plife $Pflife) {
                            
$Plife $Pflife;
                        }
                        break;
                    case 
8:
                        
$Pflife += $MPMentityArr[$ii][1];
                        
$Plife += $MPMentityArr[$ii][1];
                        if (
$Plife $Pflife) {
                            
$Plife $Pflife;
                        }
                        break;
                    case 
9:
                        
$Plife += $MPMentityArr[$ii][1];
                        if (
$Plife $Pflife) {
                            
$Plife $Pflife;
                        }
                        break;
                }
            }
        }
    }
    
//сложение параметров энтити игрока
    
for ($i 0is_array($MPentityArr) && $i count($MPentityArr); $i++) {
        for (
$i0 1is_array($MPentityArr) && $i0 count($MPentityArr); $i0++) {
            if (
$i0 $i count($MPentityArr)) {
                if (
$MPentityArr[$i][0] === $MPentityArr[$i0 $i][0]) {
                    
$MPentityArr[$i][1] += $MPentityArr[$i0 $i][1];
                    unset(
$MPentityArr[$i0 $i]);
                    
$MPentityArr indexaTArr($MPentityArr);
                    
$i0 -= 1;
                }
            }
        }
    }
    
//очистка от 0
    
for ($i 0is_array($MPentityArr) && $i count($MPentityArr); $i++) {
        if (
$i count($MPentityArr)) {
            if (
$MPentityArr[$i][1] === 0) {
                unset(
$MPentityArr[$i]);
                
$MPentityArr indexaTArr($MPentityArr);
                
$i = -1;
            }
        }
    }
    
//сложение параметров энтити противника
    
for ($i 0is_array($MPMentityArr) && $i count($MPMentityArr); $i++) {
        for (
$i0 1is_array($MPMentityArr) && $i0 count($MPMentityArr); $i0++) {
            if (
$i0 $i count($MPMentityArr)) {
                if (
$MPMentityArr[$i][0] === $MPMentityArr[$i0 $i][0]) {
                    
$MPMentityArr[$i][1] += $MPMentityArr[$i0 $i][1];
                    unset(
$MPMentityArr[$i0 $i]);
                    
$MPMentityArr indexaTArr($MPMentityArr);
                    
$i0 -= 1;
                }
            }
        }
    }
    
//очистка от 0
    
for ($i 0is_array($MPMentityArr) && $i count($MPMentityArr); $i++) {
        if (
$i count($MPMentityArr)) {
            if (
$MPMentityArr[$i][1] === 0) {
                unset(
$MPMentityArr[$i]);
                
$MPMentityArr indexaTArr($MPMentityArr);
                
$i = -1;
            }
        }
    }

    if (
is_array($MPMentityArr)) {
        if (
is_array($PentityEffect)) {
            
$PentityEffect array_merge($PentityEffect$MPMentityArr);
        } else {
            
$PentityEffect $MPMentityArr;
        }
        
$MPMentityArr json_encode($MPMentityArr);
    }
    if (
is_array($MPentityArr)) {
        if (
is_array($PMentityEffect)) {
            
$PMentityEffect array_merge($PMentityEffect$MPentityArr);
        } else {
            
$PMentityEffect $MPentityArr;
        }
        
$MPentityArr json_encode($MPentityArr);
    }
    if (!
is_array($MPAlwaysEffect)) {
        
$MPAlwaysEffect = [];
    }
    if (!
is_array($MPhodeffect)) {
        
$MPhodeffect = [];
    }
    if (!
is_array($MPmhodeffect)) {
        
$MPmhodeffect = [];
    }
    if (!
is_array($MPweaponEffect)) {
        
$MPweaponEffect = [];
    }
    
$mc->query("UPDATE `battle` SET "
            
"`Pflife` = '" $MPflife "',"
            
"`Plife` = '" $MPlife "',"
            
"`Ptochnost` = '" $MPtochnost "',"
            
"`Pblock` = '" $MPblock "',"
            
"`Puron` = '" $MPuron "',"
            
"`Pbronia` = '" $MPbronia "',"
            
"`Poglushenie` = '" $MPoglushenie "',"
            
"`Puvorot` = '" $MPuvorot "',"
            
"`Pshieldnum` = '" $MPshieldnum "',"
            
"`PAlwaysEffect` = '" json_encode($MPAlwaysEffect) . "',"
            
"`Phodeffect` = '" json_encode($MPhodeffect) . "',"
            
"`Pmhodeffect` = '" json_encode($MPmhodeffect) . "',"
            
"`PeleksirVisible` = '" $MPeleksirVisible "',"
            
"`PweaponEffect` = '" json_encode($MPweaponEffect) . "',"
            
"`Ruron` = `Ruron`+'" $MRuron "',"
            
"`numudar` = '" $MPnumudar "',"
            
"`super` = '" $MPsuper "'"
            
" WHERE `id`='" $MPA['id'] . "' ");
    if (!
is_array($PAlwaysEffect)) {
        
$PAlwaysEffect = [];
    }
    if (!
is_array($Phodeffect)) {
        
$Phodeffect = [];
    }
    if (!
is_array($Pmhodeffect)) {
        
$Pmhodeffect = [];
    }
    if (!
is_array($PweaponEffect)) {
        
$PweaponEffect = [];
    }
    
$mc->query("UPDATE `battle` SET "
            
"`Pflife` = '" $Pflife "',"
            
"`Plife` = '" $Plife "',"
            
"`Ptochnost` = '" $Ptochnost "',"
            
"`Pblock` = '" $Pblock "',"
            
"`Puron` = '" $Puron "',"
            
"`Pbronia` = '" $Pbronia "',"
            
"`Poglushenie` = '" $Poglushenie "',"
            
"`Puvorot` = '" $Puvorot "',"
            
"`Pshieldnum` = '" $Pshieldnum "',"
            
"`PAlwaysEffect` = '" json_encode($PAlwaysEffect) . "',"
            
"`Phodeffect` = '" json_encode($Phodeffect) . "',"
            
"`Pmhodeffect` = '" json_encode($Pmhodeffect) . "',"
            
"`PweaponEffect` = '" json_encode($PweaponEffect) . "',"
            
"`Ruron` = `Ruron`+'" $PRuron "'"
            
" WHERE `id`='" $PA['id'] . "' ");
}

function 
chekCommand() {
    global 
$mc;
    global 
$PA;
    global 
$PlayerArr;
    
//получения инфы о окончании боя
    
$resAllCommand $mc->query("SELECT * FROM `battle` WHERE `battle_id`='" $PA['battle_id'] . "'")->num_rows;
    
$resAllCommandend $mc->query("SELECT * FROM `battle` WHERE `battle_id`='" $PA['battle_id'] . "' AND `end_battle`='1'")->num_rows;

    
//получения инфы о командах
    
$resUserAllCommand $mc->query("SELECT * FROM `battle` WHERE `battle_id`='" $PA['battle_id'] . "' AND `command`='" $PA['command'] . "' ORDER BY `Ruron` DESC");
    
$arrUserAllCommand $resUserAllCommand->fetch_all(MYSQLI_ASSOC);
    
$countUserAllCommand count($arrUserAllCommand);
    
$countUserDeadCommand count($mc->query("SELECT * FROM `battle` WHERE `battle_id`='" $PA['battle_id'] . "' AND `command`='" $PA['command'] . "' AND `player_activ`='0'")->fetch_all(MYSQLI_ASSOC));
    
//проверка поражения команды противника
    
$resMobAllCommand $mc->query("SELECT * FROM `battle` WHERE `battle_id`='" $PA['battle_id'] . "' AND `command`!='" $PA['command'] . "' ORDER BY `Ruron` DESC");
    
$arrMobAllCommand $resMobAllCommand->fetch_all(MYSQLI_ASSOC);
    
$countMobAllCommand count($arrMobAllCommand);
    
$countMobDeadCommand count($mc->query("SELECT * FROM `battle` WHERE `battle_id`='" $PA['battle_id'] . "' AND `command`!='" $PA['command'] . "' AND `player_activ`='0'")->fetch_all(MYSQLI_ASSOC));

    
//проверка что все живые мертвы а боты и мобы победили
    
$vjvalluserall $mc->query("SELECT * FROM `battle` WHERE `battle_id`='" $PA['battle_id'] . "' AND `Ptype`='0' AND `Mid`>'-1'")->num_rows;
    
$vjvalluserdead $mc->query("SELECT * FROM `battle` WHERE `battle_id`='" $PA['battle_id'] . "' AND `Ptype`='0' AND `Mid`>'-1' AND `player_activ`='0'")->num_rows;


//ПОБЕЖДЕННЫЕ ГЕРОИ
    
if ($countUserAllCommand == $countUserDeadCommand && $resAllCommand != $resAllCommandend &&
            
$PA['type_battle'] != && $PA['type_battle'] != ||
            
$vjvalluserall == $vjvalluserdead && $PA['type_battle'] >= && $PA['type_battle'] <= 4) {
        
//составляем список побежденных и победителей
        
$looser = [];
        for (
$il 0$il $countUserAllCommand$il++) {
            
$looser array_merge($looser, array([urlencode($arrUserAllCommand[$il]['Pname']), $arrUserAllCommand[$il]['Ruron'], round((int) $arrUserAllCommand[$il]['Pflife'] / 10), $arrUserAllCommand[$il]['Mid'], $arrUserAllCommand[$il]['Ptype']]));
        }
        
$winner = [];
        for (
$iw 0$iw $countMobAllCommand$iw++) {
            
$winner array_merge($winner, array([urlencode($arrMobAllCommand[$iw]['Pname']), $arrMobAllCommand[$iw]['Ruron'], round((int) $arrMobAllCommand[$iw]['Pflife'] / 10), $arrMobAllCommand[$iw]['Mid'], $arrMobAllCommand[$iw]['Ptype']]));
        }
        
//заносим в таблицу результаты проигравшим
        
for ($il 0$il $countUserAllCommand$il++) {
            if (
$arrUserAllCommand[$il]['Ptype'] != && $arrUserAllCommand[$il]['Mid'] > 0) {
                
$mc->query("INSERT INTO `resultbattle` ("
                        
" `id`,"
                        
" `id_user`,"
                        
" `winner`,"
                        
" `looser`,"
                        
" `loose`,"
                        
" `type`"
                        
") VALUES ("
                        
"NULL,"
                        
" '" $arrUserAllCommand[$il]['Mid'] . "',"
                        
" '" json_encode($winner) . "',"
                        
" '" json_encode($looser) . "',"
                        
" '1',"
                        
"'" $PA['type_battle'] . "'"
                        
");");
            }
        }
        
//победителям
        
for ($iw 0$iw $countMobAllCommand$iw++) {
            if (
$arrMobAllCommand[$iw]['Ptype'] != && $arrMobAllCommand[$iw]['Mid'] > 0) {
                
$mc->query("INSERT INTO `resultbattle` ("
                        
" `id`,"
                        
" `id_user`,"
                        
" `winner`,"
                        
" `looser`,"
                        
" `loose`,"
                        
" `type`"
                        
") VALUES ("
                        
"NULL,"
                        
" '" $arrMobAllCommand[$iw]['Mid'] . "',"
                        
" '" json_encode($winner) . "',"
                        
" '" json_encode($looser) . "',"
                        
" '0',"
                        
"'" $PA['type_battle'] . "'"
                        
");");
            }
        }
        
$mc->query("UPDATE `battle` SET `end_battle`='1' WHERE `battle_id`='" $PA['battle_id'] . "'");
        
//запись hp в бд
        
$mc->query("UPDATE `users` SET "
                
"`temp_health`='" $PA['Plife'] . "'"
                
" WHERE `id`='" $PlayerArr['id'] . "'");
        
$mc->query("DELETE FROM `battle` WHERE `end_battle` = '1' && `battle_start_time` < '" . (time() - 60) . "'");
        
//ПОБЕЖДЕННЫЕ ПРОТИВНИКИ
    
} else if ($countMobAllCommand == $countMobDeadCommand && $resAllCommand != $resAllCommandend) {
        
//составляем список побежденных и победителей
        
$looser = [];
        for (
$il 0$il $countMobAllCommand$il++) {
            
$looser array_merge($looser, array([urlencode($arrMobAllCommand[$il]['Pname']), $arrMobAllCommand[$il]['Ruron'], round((int) $arrMobAllCommand[$il]['Pflife'] / 10), $arrMobAllCommand[$il]['Mid'], $arrMobAllCommand[$il]['Ptype']]));
        }
        
$winner = [];
        for (
$iw 0$iw $countUserAllCommand$iw++) {
            
$winner array_merge($winner, array([urlencode($arrUserAllCommand[$iw]['Pname']), $arrUserAllCommand[$iw]['Ruron'], round((int) $arrUserAllCommand[$iw]['Pflife'] / 10), $arrUserAllCommand[$iw]['Mid'], $arrUserAllCommand[$iw]['Ptype']]));
        }
        
//заносим в таблицу результаты проигравшим
        
for ($il 0$il $countUserAllCommand$il++) {
            if (
$arrUserAllCommand[$il]['Ptype'] != && $arrUserAllCommand[$il]['Mid'] > 0) {
                
$mc->query("INSERT INTO `resultbattle` ("
                        
" `id`,"
                        
" `id_user`,"
                        
" `winner`,"
                        
" `looser`,"
                        
" `loose`,"
                        
" `type`"
                        
") VALUES ("
                        
"NULL,"
                        
" '" $arrUserAllCommand[$il]['Mid'] . "',"
                        
" '" json_encode($winner) . "',"
                        
" '" json_encode($looser) . "',"
                        
" '0',"
                        
"'" $PA['type_battle'] . "'"
                        
");");
            }
        }
        
//победителям
        
for ($iw 0$iw $countMobAllCommand$iw++) {
            if (
$arrMobAllCommand[$iw]['Ptype'] != && $arrMobAllCommand[$iw]['Mid'] > 0) {
                
$mc->query("INSERT INTO `resultbattle` ("
                        
" `id`,"
                        
" `id_user`,"
                        
" `winner`,"
                        
" `looser`,"
                        
" `loose`,"
                        
" `type`"
                        
") VALUES ("
                        
"NULL,"
                        
" '" $arrMobAllCommand[$iw]['Mid'] . "',"
                        
" '" json_encode($winner) . "',"
                        
" '" json_encode($looser) . "',"
                        
" '1',"
                        
"'" $PA['type_battle'] . "'"
                        
");");
            }
        }
        
$mc->query("UPDATE `battle` SET `end_battle`='1' WHERE `battle_id`='" $PA['battle_id'] . "'");
        
//запись hp в бд
        
$mc->query("UPDATE `users` SET "
                
"`temp_health`='" $PA['Plife'] . "'"
                
" WHERE `id`='" $PlayerArr['id'] . "'");
        
$mc->query("DELETE FROM `battle` WHERE `end_battle` = '1' && `battle_start_time` < '" . (time() - 60) . "'");
    }
}

function 
playerSetEffect($i) {
    global 
$PweaponEffect;
    global 
$PAlwaysEffect;
    global 
$Phodeffect;
    global 
$Pmhodeffect;
    
//если при ходе обоих
    
if (is_array($PweaponEffect[$i][3])) {
        
$temp $PweaponEffect[$i][3];
        for (
$i1 0$i1 count($temp); $i1++) {
            
$temp[$i1][0][1] -= 1;
        }
        if (!isset(
$PweaponEffect[$i][4]) || == $PweaponEffect[$i][4]) {
            
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
            
if (is_array($PAlwaysEffect)) {
                
$PAlwaysEffect array_merge($temp$PAlwaysEffect);
            } else {
                
$PAlwaysEffect $temp;
            }
            
//или при ходе героя
        
} else if (== $PweaponEffect[$i][4]) {
            
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
            
if (is_array($Phodeffect)) {
                
$Phodeffect array_merge($temp$Phodeffect);
            } else {
                
$Phodeffect $temp;
            }
            
//или при ходе противника
        
} else if (== $PweaponEffect[$i][4]) {
            
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
            
if (is_array($Pmhodeffect)) {
                
$Pmhodeffect array_merge($temp$Pmhodeffect);
            } else {
                
$Pmhodeffect $temp;
            }
        }
    }
}

function 
playermSetEffect($i) {
    global 
$PweaponEffect;
    global 
$MPAlwaysEffect;
    global 
$MPhodeffect;
    global 
$MPmhodeffect;
    
//если при ходе обоих
    
if (is_array($PweaponEffect[$i][3])) {
        
$temp $PweaponEffect[$i][3];
        for (
$i1 0$i1 count($temp); $i1++) {
            
$temp[$i1][0][1] -= 1;
        }
        if (!isset(
$PweaponEffect[$i][4]) || == $PweaponEffect[$i][4]) {
            
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
            
if (is_array($MPAlwaysEffect)) {
                
$MPAlwaysEffect array_merge($temp$MPAlwaysEffect);
            } else {
                
$MPAlwaysEffect $temp;
            }
            
//или при ходе героя
        
} else if (== $PweaponEffect[$i][4]) {
            
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
            
if (is_array($MPhodeffect)) {
                
$MPhodeffect array_merge($temp$MPhodeffect);
            } else {
                
$MPhodeffect $temp;
            }
            
//или при ходе противника
        
} else if (== $PweaponEffect[$i][4]) {
            
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
            
if (is_array($MPmhodeffect)) {
                
$MPmhodeffect array_merge($temp$MPmhodeffect);
            } else {
                
$MPmhodeffect $temp;
            }
        }
    }
}

function 
mplayerSetEffect($i) {
    global 
$MPweaponEffect;
    global 
$MPAlwaysEffect;
    global 
$MPhodeffect;
    global 
$MPmhodeffect;
    
//если при ходе обоих
    
if (is_array($MPweaponEffect[$i][3])) {
        
$temp $MPweaponEffect[$i][3];
        for (
$i1 0$i1 count($temp); $i1++) {
            
$temp[$i1][0][1] -= 1;
        }
        if (!isset(
$MPweaponEffect[$i][4]) || == $MPweaponEffect[$i][4]) {
            
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
            
if (is_array($MPAlwaysEffect)) {
                
$MPAlwaysEffect array_merge($temp$MPAlwaysEffect);
            } else {
                
$MPAlwaysEffect $temp;
            }
            
//или при ходе героя
        
} else if (== $MPweaponEffect[$i][4]) {
            
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
            
if (is_array($MPhodeffect)) {
                
$MPhodeffect array_merge($temp$MPhodeffect);
            } else {
                
$MPhodeffect $temp;
            }
            
//или при ходе противника
        
} else if (== $MPweaponEffect[$i][4]) {
            
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
            
if (is_array($MPmhodeffect)) {
                
$MPmhodeffect array_merge($temp$MPmhodeffect);
            } else {
                
$MPmhodeffect $temp;
            }
        }
    }
}

function 
mplayermSetEffect($i) {
    global 
$MPweaponEffect;
    global 
$PAlwaysEffect;
    global 
$Phodeffect;
    global 
$Pmhodeffect;
    
//если при ходе обоих
    
if (is_array($MPweaponEffect[$i][3])) {
        
$temp $MPweaponEffect[$i][3];
        for (
$i1 0$i1 count($temp); $i1++) {
            
$temp[$i1][0][1] -= 1;
        }
        if (!isset(
$MPweaponEffect[$i][4]) || == $MPweaponEffect[$i][4]) {
            
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
            
if (is_array($PAlwaysEffect)) {
                
$PAlwaysEffect array_merge($temp$PAlwaysEffect);
            } else {
                
$PAlwaysEffect $temp;
            }
            
//или при ходе героя
        
} else if (== $MPweaponEffect[$i][4]) {
            
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
            
if (is_array($Phodeffect)) {
                
$Phodeffect array_merge($temp$Phodeffect);
            } else {
                
$Phodeffect $temp;
            }
            
//или при ходе противника
        
} else if (== $MPweaponEffect[$i][4]) {
            
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
            
if (is_array($Pmhodeffect)) {
                
$Pmhodeffect array_merge($temp$Pmhodeffect);
            } else {
                
$Pmhodeffect $temp;
            }
        }
    }
}

function 
indexaTArr($arr) {
    
$arr2 = [];
    foreach (
$arr as $key => $value) {
        if (
is_array($value)) {
            
$arr2[] = indexaTArr($value);
        } else {
            
$arr2[] = $value;
        }
    }
    return 
$arr2;
}

function 
json_decode_nice($json) {
    
$json str_replace("n""\n"$json);
    
$json str_replace("r"""$json);
    
$json preg_replace('/([{,]+)(s*)([^"]+?)s*:/''$1"$3":'$json);
    
$json preg_replace('/(,)s*}$/''}'$json);
    return 
json_decode($json);
}
Онлайн: 0
Реклама