game/_incl_data/crons/quests.php

81 lines
2.0 KiB
PHP
Raw Normal View History

2022-12-30 19:03:37 +00:00
<?php
use Core\Db;
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'autoload.php';
/**
2023-01-10 16:29:32 +00:00
* Что-СРѕ для квестов.
* Вызов раз в час
2022-12-30 19:03:37 +00:00
*/
$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'],
]
);
}