Полный отказ от $u->testAction() целиком.

This commit is contained in:
2024-05-15 16:42:28 +03:00
parent bc136cc030
commit 5e0dda8ed0
50 changed files with 1909 additions and 1831 deletions
+27 -26
View File
@@ -1,38 +1,39 @@
<?php
use Core\Db;
use Helper\Conversion;
use Model\ActionModel;
use User\ItemsModel;
if (!defined('GAME')) {
die();
}
if ($itm['magic_inci'] == 'podvig') {
$test = mysql_fetch_array(mysql_query('SELECT `id`,`time` FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "podvig" AND `time` > "' . (time()) . '" LIMIT 1'));
if ($u->info['align'] != 2) {
if (isset($test['id'])) {
$u->error = 'Задержка не прошла, еще ' . Conversion::secondsToTimeout($test['time'] - time());
} else {
//
$dngcity = [
5035 => ['angelscity', 'Бездна'],
5036 => ['capitalcity', 'Пещера Тысячи Проклятий'],
5037 => ['demonscity', 'Катакомбы'],
5038 => ['abandonedplain', 'Гора Легиона'], //mooncity
5039 => ['suncity', 'Грибница'],
5040 => ['sandcity', 'Пещера Мглы'],
];
$dngcity = $dngcity[$itm['item_id']];
$hgo1 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > "' . (time() - 86400) . '" AND `vars` = "psh_qt_' . $dngcity[0] . '" LIMIT 1', 1);
if (!isset($hgo1['id'])) {
$u->error = 'Нет задержки для подземелья ' . $dngcity[1] . '.';
} else {
$u->addAction(time(), 'podvig', '');
$u->error = 'Успешно использован свиток Право на Подвиг (' . $dngcity[1] . ')';
mysql_query('UPDATE `actions` SET `time` = "' . (time() - 86401) . '" WHERE `id` = "' . ($hgo1['id']) . '" LIMIT 1');
mysql_query('UPDATE `items_users` SET `iznosNOW` = `iznosNOW` + 1 WHERE `id` = "' . $itm['id'] . '" LIMIT 1');
}
}
$test = Db::getRow("select id, time from actions where uid = ? and vars = 'podvig' and time > unix_timestamp() limit 1", [$u->info['id']]);
if (isset($test['id'])) {
$u->error = 'Задержка не прошла, еще ' . Conversion::secondsToTimeout($test['time'] - time());
} else {
$u->error = 'Хаосники не могут пользоваться этим свитком!';
//
$dngcity = [
5035 => ['angelscity', 'Бездна'],
5036 => ['capitalcity', 'Пещера Тысячи Проклятий'],
5037 => ['demonscity', 'Катакомбы'],
5038 => ['abandonedplain', 'Гора Легиона'], //mooncity
5039 => ['suncity', 'Грибница'],
5040 => ['sandcity', 'Пещера Мглы'],
];
$dngcity = $dngcity[$itm['item_id']];
$hgo1 = ActionModel::getOne(["uid = {$u->info['id']}", "time > unix_timestamp() - 86400", "vars = psh_qt_$dngcity[0]"], 'id');
if (!isset($hgo1)) {
$u->error = 'Нет задержки для подземелья ' . $dngcity[1] . '.';
} else {
$u->addAction(time(), 'podvig', '');
$u->error = "Успешно использован свиток Право на Подвиг ($dngcity[1])";
Db::sql('update actions set time = unix_timestamp() - 86401 where id = ?', [$hgo1]);
ItemsModel::addIznos($itm['id']);
}
}
}
+10 -5
View File
@@ -1,4 +1,8 @@
<?php
use Model\ActionModel;
use User\ItemsModel;
if (!defined('GAME')) {
die();
}
@@ -15,15 +19,16 @@ if (isset($po['finish_file']) && $po['finish_file'] == 'tznanie') {
//Уже что-то изучаем
$u->error = 'Так не пойдет, вы уже что-то изучаете';
} else {
$tst = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "read" AND `vals` = "' . $itm['item_id'] . '" LIMIT 1', 1);
if (isset($tst['id'])) {
$tst = (bool)ActionModel::testCount(["uid = $u->info['id']", 'vars = read', "vals = {$itm['item_id']}"]);
if ($tst) {
$u->error = 'Вы уже изучили данное знание';
} else {
$fn = '';
$tom_iz = 0;
if (($itm['item_id'] >= 1045 && $itm['item_id'] <= 1047) || ($itm['item_id'] >= 4812 && $itm['item_id'] <= 4813)) {
$tst2 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "read" AND `vals` = "' . ($itm['item_id'] - 1) . '" LIMIT 1', 1);
if (!isset($tst2['id'])) {
$tst2 = (bool)ActionModel::testCount(["uid = $u->info['id']", 'vars = read', "vals = {$itm['item_id']} - 1"]);
if (!$tst2) {
$tom_iz = 1;
}
unset($tst2);
@@ -41,7 +46,7 @@ if (isset($po['finish_file']) && $po['finish_file'] == 'tznanie') {
$u->error = 'Вы изучили &quot;' . $itm['name'] . '&quot;.';
$u->addAction(time() + $st['timeRead'], 'read', $itm['item_id']);
mysql_query('UPDATE `items_users` SET `iznosNOW` = `iznosNOW` + 1 WHERE `id` = ' . $itm['id'] . ' LIMIT 1');
ItemsModel::addIznos($itm['id']);
} else {
$u->error = 'Требует изучения предыдущего тома';