Файл: 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 = 0; is_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 === 0 && $MPhod === 0 || $Phod === 1 && $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 === 1 && $Pshieldnum < 1) {
$Pshieldonoff = 0;
$mc->query("UPDATE `battle` SET `Pshieldonoff` = '0' WHERE `id`='" . $PA['id'] . "' ");
}
//проверка щита героя
if ($MPshieldonoff === 1 && $MPshieldnum < 1) {
$MPshieldonoff = 0;
$mc->query("UPDATE `battle` SET `Pshieldonoff` = '0' WHERE `id`='" . $MPA['id'] . "' ");
}
$Phodc = $PA['Phodc'];
$MPhodc = $MPA['Phodc'];
if ($Phodc == 1 && $Phod == 1) {
$Phodc = 0;
$mc->query("UPDATE `battle` SET `Phodc`='0' WHERE `id`='" . $PA['id'] . "' ");
}
if ($MPhodc == 1 && $MPhod == 1) {
$MPhodc = 0;
$mc->query("UPDATE `battle` SET `Phodc`='0' WHERE `id`='" . $MPA['id'] . "' ");
}
if ($Phodc == $MPhodc) {
$Phodc = 0;
$MPhodc = 0;
}
//автоматический ход
//если ход игрока
if ($Phod == 1 && $Phodc == 0 && $Plife > 0 && $MPlife > 0) {
if (time() >= $Phodtime + $PtimerCount * 3 || $Pauto == 1 && 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 == 1 && $MPhodc == 0 && $MPlife > 0 && $Plife > 0) {
if (time() >= $MPhodtime + 3 && $MPtype == 1 || time() >= $MPhodtime + $MtimerCount * 3 || $MPauto == 1 && 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 = 0; is_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 === 1 && $Buttonvisible == 1) {
$numClick = $_POST["numClick"];
$Pauto = 0;
switch ($numClick) {
case $numClick > 0 && $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 < 1 && $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 != 0 && $MPhodc != 0 && $Phodc != $MPhodc && $Plife > 0 && $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 != 8 && $PManimation != 8 && 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 != 8 && $PManimation != 8 && 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 < 7 || $Panimation > 8) {
$mc->query("UPDATE `battle` SET `Panimation` = '" . $Pshieldonoff . "',`Plife`='" . $Plife . "' WHERE `id`='" . $PA['id'] . "'");
}
if ($PManimation < 7 || $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'] == 1 && $PA['prev_mob_id'] == 0 || $PA['player_activ'] == 0 && $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 == 8 && $Plife > 0 && $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 == 8 && $Plife > 0 && $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(1, 100000);
$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 > 1 && $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 = 0; is_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 < 7 || $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 < 7 || $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 > 1 && $num < 5) {
//удаление отработанных эффектов игрока на каждый ход
for ($i0 = 0; is_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 = 0; is_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 = 0; is_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 = 0; is_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 = 0; is_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 = 0; is_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 = 0; is_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 = 0; is_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 > 4 && $PeleksirVisible == 1 && 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 == 0 && 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 == 0 && 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'] == 1 && $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 = 0; is_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 = 0; is_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 = 0; is_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]) || 0 == $arrEel[$i][5])) {
$temp = $arrEel[$i][3];
for ($i1 = 0; $i1 < count($temp) && (!isset($arrEel[$i][5]) || 0 == $arrEel[$i][5]); $i1++) {
$temp[$i1][0][1] -= 1;
}
if (!isset($arrEel[$i][4]) || 0 == $arrEel[$i][4]) {
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
if (is_array($PAlwaysEffect)) {
$PAlwaysEffect = array_merge($temp, $PAlwaysEffect);
} else {
$PAlwaysEffect = $temp;
}
//или при ходе героя
} else if (1 == $arrEel[$i][4]) {
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
if (is_array($Phodeffect)) {
$Phodeffect = array_merge($temp, $Phodeffect);
} else {
$Phodeffect = $temp;
}
//или при ходе противника
} else if (2 == $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 = 0; is_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]) || 0 == $arrEel[$i][5]); $i1++) {
$temp[$i1][0][1] -= 1;
}
if (is_array($arrEel[$i][3]) && (!isset($arrEel[$i][5]) || 0 == $arrEel[$i][5])) {
if (!isset($arrEel[$i][4]) || 0 == $arrEel[$i][4]) {
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
if (is_array($MPAlwaysEffect)) {
$MPAlwaysEffect = array_merge($temp, $MPAlwaysEffect);
} else {
$MPAlwaysEffect = $temp;
}
//или при ходе героя
} else if (1 == $arrEel[$i][4]) {
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
if (is_array($MPhodeffect)) {
$MPhodeffect = array_merge($temp, $MPhodeffect);
} else {
$MPhodeffect = $temp;
}
//или при ходе противника
} else if (2 == $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 = 0; is_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] === 4 && ($PManimation === 8 || $PManimation === 9)) {
$PweaponEffect[$i][7] ++;
} else if ($PweaponEffect[$i][2] === 5) {
$PweaponEffect[$i][7] ++;
}
//обработается лишь при попадании
if ($PManimation == 8 && $PweaponEffect[$i][2] == 0 || $PManimation == 9 && $PweaponEffect[$i][2] == 0) {
$PweaponEffect[$i][1] -= 1;
//применится к герою
if ($PweaponEffect[$i][0] === 0) {
for ($i0 = 0; is_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 = 0; is_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 = 0; is_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 = 0; is_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 == 8 && $PweaponEffect[$i][2] == 2 && $PweaponEffect[$i][1] == 1 || $PManimation == 9 && $PweaponEffect[$i][2] == 2 && $PweaponEffect[$i][1] == 1) {
$PweaponEffect[$i][1] -= 1;
//применится к герою
if ($PweaponEffect[$i][0] === 0) {
for ($i0 = 0; is_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 = 0; is_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 == 8 && $PweaponEffect[$i][2] == 2 && $PweaponEffect[$i][1] > 1 || $PManimation == 9 && $PweaponEffect[$i][2] === 2 && $PweaponEffect[$i][1] > 1) {
$PweaponEffect[$i][1] -= 1;
}
//обработается при колличестве 1 в любом случае
if ($PweaponEffect[$i][2] === 3 && $PweaponEffect[$i][1] === 1) {
$PweaponEffect[$i][1] -= 1;
//применится к герою
if ($PweaponEffect[$i][0] === 0) {
for ($i0 = 0; is_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 = 0; is_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] === 3 && $PweaponEffect[$i][1] > 1) {
$PweaponEffect[$i][1] -= 1;
}
//обработается лишь при попадании каждый * ход
if ($PManimation == 8 && $PweaponEffect[$i][2] == 4 && $PweaponEffect[$i][7] % $PweaponEffect[$i][6] == 0 ||
$PManimation == 9 && $PweaponEffect[$i][2] == 4 && $PweaponEffect[$i][7] % $PweaponEffect[$i][6] == 0) {
$PweaponEffect[$i][1] -= 1;
//применится к герою
if ($PweaponEffect[$i][0] === 0) {
for ($i0 = 0; is_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 = 0; is_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] === 5 && $PweaponEffect[$i][7] % $PweaponEffect[$i][6] == 0) {
$PweaponEffect[$i][1] -= 1;
//применится к герою
if ($PweaponEffect[$i][0] === 0) {
for ($i0 = 0; is_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 = 0; is_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 = 0; is_array($PweaponEffect) && $i00 < count($PweaponEffect); $i00++) {
if (count($PweaponEffect) && $PweaponEffect[$i00][1] <= 0) {
unset($PweaponEffect[$i00]);
$PweaponEffect = indexaTArr($PweaponEffect);
$i00 = -1;
}
}
}
//применение всего к статам героя
for ($ii = 0; is_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 = 0; is_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 == 8 && $num > 1 && $num < 5 || $PManimation == 9 && $num > 1 && $num < 5) {
//если противник уже был под щитом м оглушен или по нему попали
if ($MPA['Pshieldonoff'] == 1 && $MPA['Panimation'] == 8 && $PManimation == 8 ||
$MPA['Pshieldonoff'] == 0 && $PManimation == 8 ||
$PManimation == 9) {
$temp = 0;
//не супер удар
if ($suhero != 1) {
//урон игрока
$a = rand($Puron, $Puron + $Plevel);
//если стиль уворот и уже был оглушен
if ($prazgon > 1 && $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 == 1 && $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 = 0; is_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 = 0; is_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 = 0; is_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 = 0; is_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 = 0; is_array($PentityArr) && $i < count($PentityArr); $i++) {
for ($i0 = 1; is_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 = 0; is_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 = 0; is_array($PMentityArr) && $i < count($PMentityArr); $i++) {
for ($i0 = 1; is_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 = 0; is_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 > 1 && $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 == 0 || $MPsuper != "" && $MPid == -1) {
$arrsuhero = explode(",", $MPsuper);
for ($i = 0; is_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 < 7 || $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 < 7 || $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 > 1 && $num < 5) {
//удаление отработанных моба при ходе обоих
for ($i0 = 0; is_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 = 0; is_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 = 0; is_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 = 0; is_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 = 0; is_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 = 0; is_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 = 0; is_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 = 0; is_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 = 0; is_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] === 4 && ($Panimation === 8 || $Panimation === 9)) {
$MPweaponEffect[$i][7] ++;
} else if ($MPweaponEffect[$i][2] === 5) {
$MPweaponEffect[$i][7] ++;
}
//обработается лишь при попадании
if ($Panimation === 8 && $MPweaponEffect[$i][2] === 0 || $Panimation === 9 && $MPweaponEffect[$i][2] === 0) {
$MPweaponEffect[$i][1] -= 1;
//применится к герою
if ($MPweaponEffect[$i][0] === 0) {
for ($i0 = 0; is_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 = 0; is_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 = 0; is_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 = 0; is_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 === 8 && $MPweaponEffect[$i][2] === 2 && $MPweaponEffect[$i][1] === 1 || $Panimation === 9 && $MPweaponEffect[$i][2] === 2 && $MPweaponEffect[$i][1] === 1) {
$MPweaponEffect[$i][1] -= 1;
//применится к герою
if ($MPweaponEffect[$i][0] === 0) {
for ($i0 = 0; is_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 = 0; is_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 === 8 && $MPweaponEffect[$i][2] === 2 && $MPweaponEffect[$i][1] > 1 || $Panimation === 9 && $MPweaponEffect[$i][2] === 2 && $MPweaponEffect[$i][1] > 1) {
$MPweaponEffect[$i][1] -= 1;
}
//обработается при колличестве 1 в любом случае
if ($MPweaponEffect[$i][2] === 3 && $MPweaponEffect[$i][1] === 1) {
$MPweaponEffect[$i][1] -= 1;
//применится к герою
if ($MPweaponEffect[$i][0] === 0) {
for ($i0 = 0; is_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 = 0; is_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] === 3 && $MPweaponEffect[$i][1] > 1) {
$MPweaponEffect[$i][1] -= 1;
}
//обработается каждый * удар при попаданиях
if ($Panimation === 8 && $MPweaponEffect[$i][2] === 4 && $MPweaponEffect[$i][7] % $MPweaponEffect[$i][6] == 0 ||
$Panimation === 9 && $MPweaponEffect[$i][2] === 4 && $MPweaponEffect[$i][7] % $MPweaponEffect[$i][6] == 0) {
$MPweaponEffect[$i][1] -= 1;
//применится к герою
if ($MPweaponEffect[$i][0] === 0) {
for ($i0 = 0; is_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 = 0; is_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] === 5 && $MPweaponEffect[$i][7] % $MPweaponEffect[$i][6] == 0) {
$MPweaponEffect[$i][1] -= 1;
//применится к герою
if ($MPweaponEffect[$i][0] === 0) {
for ($i0 = 0; is_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 = 0; is_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 = 0; is_array($MPweaponEffect) && $i00 < count($MPweaponEffect); $i00++) {
if (count($MPweaponEffect) && $MPweaponEffect[$i00][1] <= 0) {
unset($MPweaponEffect[$i00]);
$MPweaponEffect = indexaTArr($MPweaponEffect);
$i00 = -1;
}
}
}
//применение всего к статам героя
for ($ii = 0; is_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 = 0; is_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 == 8 && $num > 1 && $num < 5 || $Panimation == 9 && $num > 1 && $num < 5) {
//если противник уже был под щитом м оглушен или по нему попали
if ($PA['Pshieldonoff'] == 1 && $PA['Panimation'] == 8 && $Panimation == 8 ||
$PA['Pshieldonoff'] == 0 && $Panimation == 8 ||
$Panimation == 9) {
$temp = 0;
if ($suhero != 1) {
$a = rand($MPuron, $MPuron + $MPlevel);
if ($mrazgon > 1 && $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 == 1 && $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 = 0; is_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 = 0; is_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 = 0; is_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 = 0; is_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 = 0; is_array($MPentityArr) && $i < count($MPentityArr); $i++) {
for ($i0 = 1; is_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 = 0; is_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 = 0; is_array($MPMentityArr) && $i < count($MPMentityArr); $i++) {
for ($i0 = 1; is_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 = 0; is_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'] != 3 && $PA['type_battle'] != 4 ||
$vjvalluserall == $vjvalluserdead && $PA['type_battle'] >= 3 && $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'] != 1 && $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'] != 1 && $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'] != 1 && $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'] != 1 && $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]) || 0 == $PweaponEffect[$i][4]) {
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
if (is_array($PAlwaysEffect)) {
$PAlwaysEffect = array_merge($temp, $PAlwaysEffect);
} else {
$PAlwaysEffect = $temp;
}
//или при ходе героя
} else if (1 == $PweaponEffect[$i][4]) {
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
if (is_array($Phodeffect)) {
$Phodeffect = array_merge($temp, $Phodeffect);
} else {
$Phodeffect = $temp;
}
//или при ходе противника
} else if (2 == $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]) || 0 == $PweaponEffect[$i][4]) {
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
if (is_array($MPAlwaysEffect)) {
$MPAlwaysEffect = array_merge($temp, $MPAlwaysEffect);
} else {
$MPAlwaysEffect = $temp;
}
//или при ходе героя
} else if (1 == $PweaponEffect[$i][4]) {
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
if (is_array($MPhodeffect)) {
$MPhodeffect = array_merge($temp, $MPhodeffect);
} else {
$MPhodeffect = $temp;
}
//или при ходе противника
} else if (2 == $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]) || 0 == $MPweaponEffect[$i][4]) {
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
if (is_array($MPAlwaysEffect)) {
$MPAlwaysEffect = array_merge($temp, $MPAlwaysEffect);
} else {
$MPAlwaysEffect = $temp;
}
//или при ходе героя
} else if (1 == $MPweaponEffect[$i][4]) {
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
if (is_array($MPhodeffect)) {
$MPhodeffect = array_merge($temp, $MPhodeffect);
} else {
$MPhodeffect = $temp;
}
//или при ходе противника
} else if (2 == $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]) || 0 == $MPweaponEffect[$i][4]) {
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
if (is_array($PAlwaysEffect)) {
$PAlwaysEffect = array_merge($temp, $PAlwaysEffect);
} else {
$PAlwaysEffect = $temp;
}
//или при ходе героя
} else if (1 == $MPweaponEffect[$i][4]) {
//если массив автоэффектов игрока есть массив то прибавим к нему действие ОРУЖИЯ
if (is_array($Phodeffect)) {
$Phodeffect = array_merge($temp, $Phodeffect);
} else {
$Phodeffect = $temp;
}
//или при ходе противника
} else if (2 == $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);
}