game/_incl_data/crons/quests.php
2023-01-10 18:30:35 +02:00

81 lines
2.0 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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'],
]
);
}