<?php use Core\Db; require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'autoload.php'; /** * Что-то для квестов. * Вызов раз в час */ $data = Db::getRows('select id, battle, room from users where `real` = 1'); foreach ($data as $row) { $bot_kill = []; $delete = ''; $qp = Db::getColumn( 'select vars from actions where uid = ? and vars like ? and vals = ?', [ $row['id'], '%start_quest%', 'go', ] ); foreach ($qp as $item) { $qst_id = str_replace('start_quest', '', $item); $qst = Db::getValue('select act_date from quests where id = ?', [$qst_id]); if (!$qst) { continue; } $act = explode(':|:', $qst); foreach ($act as $item2) { $act2 = explode(':=:', $item2); $bots = explode(',', $act2[1]); foreach ($bots as $item3) { $bot = explode('=', $item3); $bot_kill[$bot[0]] = true; } } } $wp = Db::getRows( 'select id, vars from actions where uid = ? and (vars like ? or vars like ? or vars like ?)', [ $row['id'], 'win_bot_%', 'lose_bot_%', 'nich_bot_%', ] ); foreach ($wp as $item) { $wlb = str_replace(['win_bot_', 'lose_bot_', 'nich_bot_',], '', $item); if ($bot_kill[$wlb]) { continue; } $delete .= "or id = $item"; } $delete = ltrim($delete, 'or '); if (!empty($delete)) { $query = 'delete from actions where ' . $delete; Db::sql($query); } if ($row['battle'] !== 0) { continue; } Db::sql( 'delete from actions where uid = ? and (vars like ? or vars like ? or vars like ? and room != ?)', [ $row['id'], '%use_priem_%', '%animal_use%', '%takeit_%', $row['room'], ] ); }