diff --git a/_incl_data/class/Priems.php b/_incl_data/class/Priems.php index eb52c84a..700d7230 100644 --- a/_incl_data/class/Priems.php +++ b/_incl_data/class/Priems.php @@ -466,11 +466,11 @@ class Priems /** * Новая функция магического заклинания с приёма. * Работает с числовыми приёмами в папке [priem]. - * @param int $attackerId кто использует приём - * @param int $defenderId на кого использует приём - * @param float $damage базовый урон приёма - * @param string $damageType тип урона (стихия?) приходит строкой, и конвертируется функцией. - * @param bool $hasCritical флаг, что приём МОЖЕТ критовать + * @param int $attackerId кто использует приём + * @param int $defenderId на кого использует приём + * @param float $damage базовый урон приёма + * @param string $damageType тип урона (стихия?) приходит строкой, и конвертируется функцией. + * @param bool $hasCritical флаг, что приём МОЖЕТ критовать * @return array [0|damage] int урон, [1|crit] bool был ли крит, [2|miss] bool был ли промах, [3|miss_type] int тип промаха (всегда = 2). * @author Insallah */ @@ -786,8 +786,7 @@ class Priems $krituet = true, $heal = 0, $namenew = null - ) - { + ) { $trawm_off = false; global $btl; if ($namenew != null) { @@ -966,7 +965,8 @@ class Priems ); //заносим в лог боя - $vLog = 'time1=' . time() . '||s1=' . $btl->users[$btl->uids[$usu]]['sex'] . '||t1=' . $btl->users[$btl->uids[$usu]]['team'] . '||login1=' . $btl->users[$btl->uids[$usu]]['login'] . '||s2=' . $btl->users[$btl->uids[$uen]]['sex'] . '||t2=' . $btl->users[$btl->uids[$uen]]['team'] . '||login2=' . $btl->users[$btl->uids[$uen]]['login'] . ''; + $vLog = 'time1=' . time( + ) . '||s1=' . $btl->users[$btl->uids[$usu]]['sex'] . '||t1=' . $btl->users[$btl->uids[$usu]]['team'] . '||login1=' . $btl->users[$btl->uids[$usu]]['login'] . '||s2=' . $btl->users[$btl->uids[$uen]]['sex'] . '||t2=' . $btl->users[$btl->uids[$uen]]['team'] . '||login2=' . $btl->users[$btl->uids[$uen]]['login'] . ''; $mas1 = [ 'time' => time(), 'battle' => $btl->i->id, @@ -1579,13 +1579,13 @@ class Priems } /** - * @param int $uid на кого кастуем - * @param int $pr id приема + * @param int $uid на кого кастуем + * @param int $pr id приема * @param int|string $data дата, если -1, то добавляем дату3 - * @param int $d2 + * @param int $d2 * @param $tm - * @param int $h ход - * @param int $uu id юзера который использовал + * @param int $h ход + * @param int $uu id юзера который использовал * @param $max * @param $bj * @param $tp @@ -1614,8 +1614,7 @@ class Priems $noupdatebtl = 0, $noplus = 0, $pname = null - ) - { + ) { global $btl; //$pl = mysql_fetch_assoc(mysql_query('SELECT * FROM `priems` WHERE `id` = ' . (int)$pr)); $pl = Db::getRow('select * from priems where id = ?', [$pr]); @@ -1654,10 +1653,8 @@ class Priems if (isset($num['id']) && ($num['user_use'] != $this->u->info['id'] && $pl['zmu'] != 2)) { // удаляем эффект - Db::sql( - 'update eff_users set `delete` = unix_timestamp() where id = ?', - [$num['id']] - ); + Effects::removeById(0, $num['id']); + $i = 0; while ($i < count($btl->stats[$btl->uids[$uid]]['effects'])) { if ($btl->stats[$btl->uids[$uid]]['effects'][$i]['id'] == $num['id']) { @@ -1669,17 +1666,28 @@ class Priems unset($num); } if (!isset($num['id'])) { - $q = 'insert into eff_users (tr_life_user, bj, user_use, hod, v2, img2, id_eff, uid, name, data, overtype, timeuse, v1) values (?,?,?,?,?,?,?,?,?,?,?,?,?)'; $image = !empty($pl['img']) ? $pl['img'] : $pl['id']; $name = !empty($pname) ? $pname : $pl['name']; $image .= '.gif'; - Db::sql( - $q, [floor($tr_life_user), $bj, $uu, $h, $pl['id'], $image, 22, $uid, $name, $data, 0, $tm, 'priem'] + + Effects::addCustom( + [ + 'id_eff' => 22, + 'uid' => $uid, + 'name' => $name, + 'data' => $data, + 'timeUse' => $tm, + 'user_use' => $uu, + 'v1' => 'priem', + 'v2' => $pl['id'], + 'img2' => $image, + 'hod' => $h, + 'bj' => $bj, + 'tr_life_user' => floor($tr_life_user), + ] ); - $lid = Db::lastInsertId(); - if ($lid) { - $r = true; - } + + $r = true; /* добавляем данные к $btl->eff */ if ($noupdatebtl == 0) { @@ -1691,15 +1699,9 @@ class Priems $num['hod'] = $h; if ($data != -1 && $data != '' && $d2 == 2) { $num['data'] .= '|' . $data; - Db::sql( - 'update eff_users set x = x + 1, hod = ?, data = ? where id = ?', - [$h, $num['data'], $num['id']] - ); + Effects::setHod($num['id'], $h, 'x + 1', $num['data']); } else { - Db::sql( - 'update eff_users set x = x + 1, hod = ? where id = ?', - [$h, $num['id']] - ); + Effects::setHod($num['id'], $h, 'x + 1'); } $r = true; } else { @@ -1707,12 +1709,9 @@ class Priems $num['hod'] = $h; if ($data != -1 && $data != '' && $d2 == 2) { $num['data'] .= '|' . $data; - Db::sql("update eff_users set hod = ?, data = ? where id = ?", [$h, $num['data'], $num['id']]); + Effects::setHod($num['id'], $h, data: $num['data']); } else { - Db::sql( - 'update eff_users set hod = ? where id = ?', - [$h, $num['id']] - ); + Effects::setHod($num['id'], $h); } $r = true; } @@ -1733,8 +1732,8 @@ class Priems /** Получает строку data c шаблонной записью типа add_m11=2*{lvl1} и конвертирует в реальную строку. * <br>Шаблон: <br>lvl1 = $uid[level] <br>ts5 = $uid[s5] <br>mpAll = $uid[mpAll] - * @param string $pl строка в формате data - * @param int $uid пользователь, параметры которого используются для подставки в шаблон. + * @param string $pl строка в формате data + * @param int $uid пользователь, параметры которого используются для подставки в шаблон. * @return string строка в формате data с развёрнутыми шаблонами. */ public function redate($pl, $uid) @@ -1982,7 +1981,8 @@ class Priems } else { //бьем противника с пропуском хода mysql_query( - 'INSERT INTO `battle_act` (`battle`,`uid1`,`uid2`,`time`,`out1`,`type`,`tpo1`) VALUES ("' . $btl->i->id . '","' . $this->u->info['id'] . '","' . $this->u->info['enemy'] . '","' . time() . '","1","1","2")' + 'INSERT INTO `battle_act` (`battle`,`uid1`,`uid2`,`time`,`out1`,`type`,`tpo1`) VALUES ("' . $btl->i->id . '","' . $this->u->info['id'] . '","' . $this->u->info['enemy'] . '","' . time( + ) . '","1","1","2")' ); } } @@ -2086,11 +2086,11 @@ class Priems ); if ($upd) { TrainingManager::getInstance() - ->addPoint( - 'my_user_fourth_quest', function (TrainingManager $manager) { - $manager->store(); - } - ); + ->addPoint( + 'my_user_fourth_quest', function (TrainingManager $manager) { + $manager->store(); + } + ); $this->u->info['priems'] = $p; } } else { @@ -2107,17 +2107,17 @@ class Priems if (isset($id)) { return Db::getRow('select * from priems where level <= ? and activ > 0 and id = ? order by img,level', [$this->u->info['level'], $id]); -// return Db::getRow( -// 'select * from techniques_categories left join priems on techniques_categories.technique_id = priems.id -// where priems.level <= ? and priems.activ > 0 and priems.id = ? order by priems.img,priems.level', [User::start()->info['level'], $id] -// ); + // return Db::getRow( + // 'select * from techniques_categories left join priems on techniques_categories.technique_id = priems.id + // where priems.level <= ? and priems.activ > 0 and priems.id = ? order by priems.img,priems.level', [User::start()->info['level'], $id] + // ); } return Db::getRows('select * from priems where level <= ? and activ > 0 order by img,level', [$this->u->info['level']]); -// return Db::getRows( -// 'select * from techniques_categories left join priems on techniques_categories.technique_id = priems.id -// where priems.level <= ? and priems.activ > 0 order by priems.img,priems.level', [User::start()->info['level']] -// ); + // return Db::getRows( + // 'select * from techniques_categories left join priems on techniques_categories.technique_id = priems.id + // where priems.level <= ? and priems.activ > 0 order by priems.img,priems.level', [User::start()->info['level']] + // ); } @@ -2172,7 +2172,7 @@ class Priems /** * Летит в js, двойные кавычки не использовать. * @param array $pl - * @param int $id + * @param int $id * @return array */ private function priemInfo(array $pl, int $id = -1): array @@ -2355,9 +2355,11 @@ class Priems echo <<< HTML <a href="javascript:void(0)" onclick="location.href='main.php?skills=1&rz=4&use_priem=$priem[id]';"> - <img class="pwq$priem[category_id] pwqall" onMouseOver="top.popup(this, '(#$priem[id]) <b>$priem[name]</b><Br>{$this->priemInfo($priem)[0]}');" onMouseOut="top.hic();" onMouseDown="top.hic();" style="display:none;margin-top:2px; $cl margin-left:1px;" src="//img.new-combats.tech/i/eff/$priem[img].gif" width="40" height="25" /> + <img class="pwq$priem[category_id] pwqall" onMouseOver="top.popup(this, '(#$priem[id]) <b>$priem[name]</b><Br>{$this->priemInfo( + $priem + )[0]}');" onMouseOut="top.hic();" onMouseDown="top.hic();" style="display:none;margin-top:2px; $cl margin-left:1px;" src="//img.new-combats.tech/i/eff/$priem[img].gif" width="40" height="25" /> </a> - HTML; + HTML; } } @@ -2785,7 +2787,7 @@ class Priems * Конечный damage после множителей делится на 5 и пишется в БД (atgm=). * Файлы: 33, 56, 57, 58, 59, 60. * @param $id - * @param array $pl массив значений из БД priems. + * @param array $pl массив значений из БД priems. * @param Battle $btl * @return void */ @@ -2817,7 +2819,7 @@ class Priems * Если есть одинаковые статы из них выбирается случайный. * Файл:267, приём 268. Понимай как хочешь. * @param $id - * @param array $pl + * @param array $pl * @param Battle $btl * @return void */ diff --git a/_incl_data/class/User/Effects.php b/_incl_data/class/User/Effects.php index 4a78d0e6..e174807b 100644 --- a/_incl_data/class/User/Effects.php +++ b/_incl_data/class/User/Effects.php @@ -208,6 +208,13 @@ insert into eff_users Db::sql("insert into eff_users (no_Ace, id_eff, overType, uid, name, data, timeUse) values (1,479,112,?,'Защита от нападения','zashitatk=1',unix_timestamp())", [$userId]); } + /** + * @param int $id + * @param int $hod + * @param int|string $x для запроса x = x + 1, вводить 'x + 1' + * @param string $data + * @return void + */ public static function setHod(int $id, int $hod, int|string $x = 0, string $data = ''): void { $args = ['id' => $id, 'hod' => $hod]; diff --git a/_incl_data/class/User/Stats.php b/_incl_data/class/User/Stats.php index 79077adc..6570d85a 100644 --- a/_incl_data/class/User/Stats.php +++ b/_incl_data/class/User/Stats.php @@ -227,7 +227,7 @@ class Stats } elseif (Config::get('effz') > 0 && $e['hod'] == -1) { $efzz = round(($e['timeUse'] + $e['actionTime'] + $e['timeAce']) - time()); if ($efzz > 0) { - Db::sql('update eff_users set hod = ? where id = ?', [$efzz / Config::get('effz'), $e['id']]); + Effects::setHod($e['id'], $efzz / Config::get('effz')); } } }