Рефакторинг, отказ от $u->testAction('',2) для разрыва зависимости с User::class. Добавлен зачаточный генератор запросов.
This commit is contained in:
+76
-102
@@ -2,6 +2,7 @@
|
||||
|
||||
use Core\Db;
|
||||
use Helper\Conversion;
|
||||
use Model\ActionModel;
|
||||
use User\ItemsModel;
|
||||
use User\Stats;
|
||||
|
||||
@@ -413,7 +414,7 @@ class Dungeon
|
||||
if ($usr_real['clan'] > 0) {
|
||||
$usrreal .= '<img src=//img.new-combats.tech/i/clan/' . $usr_real['clan'] . '.gif width=24 height=15 >';
|
||||
}
|
||||
$usrreal .= '<b>' . $usr_real['login'] . '</b>[' . $usr_real['level'] . ']<a target=_blank href=/info/' . $usr_real['id'] . ' ><img width=12 hiehgt=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
|
||||
$usrreal .= '<b>' . $usr_real['login'] . '</b>[' . $usr_real['level'] . ']<a target=_blank href=/info/' . $usr_real['id'] . ' ><img width=12 heihgt=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
|
||||
} else {
|
||||
$mereal = '<i>Невидимка</i>[??]';
|
||||
}
|
||||
@@ -425,7 +426,7 @@ class Dungeon
|
||||
if ($me_real['clan'] > 0) {
|
||||
$mereal .= '<img src=//img.new-combats.tech/i/clan/' . $me_real['clan'] . '.gif width=24 height=15 >';
|
||||
}
|
||||
$mereal .= '<b>' . $me_real['login'] . '</b>[' . $me_real['level'] . ']<a target=_blank href=/info/' . $me_real['id'] . ' ><img width=12 hiehgt=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
|
||||
$mereal .= '<b>' . $me_real['login'] . '</b>[' . $me_real['level'] . ']<a target=_blank href=/info/' . $me_real['id'] . ' ><img width=12 heihgt=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
|
||||
} else {
|
||||
$mereal = '<i>Невидимка</i>[??]';
|
||||
}
|
||||
@@ -540,7 +541,7 @@ class Dungeon
|
||||
if ($usr_real['clan'] > 0) {
|
||||
$usrreal .= '<img src=//img.new-combats.tech/i/clan/' . $usr_real['clan'] . '.gif width=24 height=15 >';
|
||||
}
|
||||
$usrreal .= '<b>' . $usr_real['login'] . '</b>[' . $usr_real['level'] . ']<a target=_blank href=/info/' . $usr_real['id'] . ' ><img width=12 hiehgt=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
|
||||
$usrreal .= '<b>' . $usr_real['login'] . '</b>[' . $usr_real['level'] . ']<a target=_blank href=/info/' . $usr_real['id'] . ' ><img width=12 heihgt=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
|
||||
} else {
|
||||
$mereal = '<i>Невидимка</i>[??]';
|
||||
}
|
||||
@@ -552,7 +553,7 @@ class Dungeon
|
||||
if ($me_real['clan'] > 0) {
|
||||
$mereal .= '<img src=//img.new-combats.tech/i/clan/' . $me_real['clan'] . '.gif width=24 height=15 >';
|
||||
}
|
||||
$mereal .= '<b>' . $me_real['login'] . '</b>[' . $me_real['level'] . ']<a target=_blank href=/info/' . $me_real['id'] . ' ><img width=12 hiehgt=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
|
||||
$mereal .= '<b>' . $me_real['login'] . '</b>[' . $me_real['level'] . ']<a target=_blank href=/info/' . $me_real['id'] . ' ><img width=12 heihgt=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
|
||||
} else {
|
||||
$mereal = '<i>Невидимка</i>[??]';
|
||||
}
|
||||
@@ -876,7 +877,7 @@ class Dungeon
|
||||
$i = count($a);
|
||||
}
|
||||
} elseif ($s[0] == 'repl_ptp') {
|
||||
require_once('dnaction/_dungeon_replace.php');
|
||||
require_once 'dnaction/_dungeon_replace.php';
|
||||
die();
|
||||
} elseif ($s[0] == 'add_eff') {
|
||||
//Кастуем эффект
|
||||
@@ -884,16 +885,10 @@ class Dungeon
|
||||
$j = 0;
|
||||
while ($j < count($t)) {
|
||||
$itm = explode('=', $t[$j]);
|
||||
$ch = $u->testAction(
|
||||
'`vars` = "add_eff_' . $this->info['id'] . '_' . $obj['id'] . '" AND `uid` = "' . $this->userinfo['id'] . '" LIMIT ' . (1 + (int)$itm[2]) . '',
|
||||
2
|
||||
); //кол-во прошлых попыток
|
||||
$ch = $ch[0];
|
||||
$ch2 = $u->testAction(
|
||||
' `vars` = "add_eff_' . $this->info['id'] . '_' . $obj['id'] . '" LIMIT ' . (1 + (int)$itm[4]) . '',
|
||||
2
|
||||
); //кол-во прошлых попыток (все юзеры)
|
||||
$ch2 = $ch2[0];
|
||||
|
||||
$ch = ActionModel::testCount(["uid = {$this->userinfo['id']}", "vars = add_eff_{$this->info['id']}_{$obj['id']}"], 1 + (int)$itm[2]); //кол-во прошлых попыток
|
||||
$ch2 = ActionModel::testCount(["vars = add_eff_{$this->info['id']}_{$obj['id']}"], 1 + (int)$itm[4]); //кол-во прошлых попыток (все юзеры)
|
||||
|
||||
if (($ch2 < $itm[4] || $itm[4] == 0) && $ch < $itm[2]) {
|
||||
if ($itm[1] * 100 >= rand(0, 10000)) {
|
||||
//удачно
|
||||
@@ -936,11 +931,8 @@ class Dungeon
|
||||
$t = explode(',', $s[1]);
|
||||
while ($j < count($t)) {
|
||||
$itm = explode('=', $t[$j]);
|
||||
$ch = $u->testAction(
|
||||
'`vars` = "bafit_' . $this->info['id'] . '_' . $obj['id'] . '" LIMIT ' . (1 + (int)$itm[2]) . '',
|
||||
2
|
||||
); //кол-во прошлых попыток
|
||||
$ch = $ch[0];
|
||||
$ch = ActionModel::testCount(["vars = bafit_{$this->info['id']}_{$obj['id']}"], 1 + (int)$itm[2]); //кол-во прошлых попыток
|
||||
|
||||
if ($ch < $itm[3]) {
|
||||
if ($itm[2] * 1000 >= rand(1, 100000)) {
|
||||
if ($itm[0] == 'hpNow') {
|
||||
@@ -1026,11 +1018,8 @@ class Dungeon
|
||||
$t = explode(',', $s[1]);
|
||||
while ($j < count($t)) {
|
||||
$itm = explode('=', $t[$j]);
|
||||
$ch = $u->testAction(
|
||||
'`uid` = "' . $this->userinfo['id'] . '" AND `vars` = "takeit_' . $this->info['id'] . '_' . $obj['id'] . '" LIMIT ' . (1 + (int)$itm[2]) . '',
|
||||
2
|
||||
); //кол-во прошлых попыток
|
||||
$ch = $ch[0];
|
||||
$ch = ActionModel::testCount(["uid = {$this->userinfo['id']}", "vars = takeit_{$this->info['id']}_{$obj['id']}"], 1 + (int)$itm[2]); //кол-во прошлых попыток
|
||||
|
||||
if ($ch >= $itm[2]) {
|
||||
//закончились попытки
|
||||
$r = 'ничего не произошло...<br>';
|
||||
@@ -1050,9 +1039,8 @@ class Dungeon
|
||||
);
|
||||
if (isset($it['id'])) {
|
||||
$r .= 'Вы обнаружили предмет "<b>' . $it['name'] . '</b>".<br>';
|
||||
ItemsModel::addItem(
|
||||
['uid' => $this->userinfo['id'], 'iid' => $it['id'], 'x' => $this->userinfo['x'], 'y' => $this->userinfo['y'], 'del' => (int)$itm[4]]
|
||||
);
|
||||
ItemsModel::addItem($it['id'], $this->userinfo['id']);
|
||||
//ItemsModel::addItem(['uid' => $this->userinfo['id'], 'iid' => $it['id'], 'x' => $this->userinfo['x'], 'y' => $this->userinfo['y'], 'del' => (int)$itm[4]]);
|
||||
}
|
||||
} else {
|
||||
//неудачная попытка
|
||||
@@ -1067,98 +1055,84 @@ class Dungeon
|
||||
}
|
||||
} elseif ($s[0] == 'itm1') {
|
||||
//Добавляем предмет , только 1 предмет из всех и все юзеры могут тоже
|
||||
$nj = 0;
|
||||
$t = explode(',', $s[1]);
|
||||
$j = rand(0, count($t));
|
||||
if ($nj == 0) {
|
||||
$itm = explode('=', $t[$j]);
|
||||
$ch = $u->testAction(
|
||||
'`uid` = "' . $this->userinfo['id'] . '" AND `vars` = "takeit_' . $this->info['id'] . '_' . $obj['id'] . '" LIMIT ' . (1 + (int)$itm[2]) . '',
|
||||
2
|
||||
); //кол-во прошлых попыток
|
||||
$ch = $ch[0];
|
||||
if ($ch >= $itm[2]) {
|
||||
//закончились попытки
|
||||
$r .= 'Странно, но ничего не произошло... <br>';
|
||||
} else {
|
||||
if ($itm[1] * 1000 >= rand(1, 100000)) {
|
||||
$itm = explode('=', $t[$j]);
|
||||
$ch = ActionModel::testCount(["uid = {$this->userinfo['id']}", "vars = takeit_{$this->info['id']}_{$obj['id']}"], 1 + (int)$itm[2]); //кол-во прошлых попыток
|
||||
|
||||
//Случайный предмет (Башня смерти)
|
||||
if ($itm[0] == 'random1') {
|
||||
$itm[0] = $this->itbs[rand(0, count($this->itbs))];
|
||||
}
|
||||
if ($ch >= $itm[2]) {
|
||||
//закончились попытки
|
||||
$r .= 'Странно, но ничего не произошло... <br>';
|
||||
} else {
|
||||
if ($itm[1] * 1000 >= rand(1, 100000)) {
|
||||
|
||||
//удачная попытка
|
||||
$it = mysql_fetch_assoc(
|
||||
mysql_query(
|
||||
'SELECT * FROM `items_main` WHERE `id`="' . ((int)$itm[0]) . '" LIMIT 1'
|
||||
)
|
||||
);
|
||||
if (isset($it['id'])) {
|
||||
$r .= 'Вы обнаружили предмет "<b>' . $it['name'] . '</b>".<br>';
|
||||
$u->addAction(
|
||||
time(), 'takeit_' . $this->info['id'] . '_' . $obj['id'], $this->userinfo['city']
|
||||
);
|
||||
ItemsModel::addItem(
|
||||
['uid' => $this->userinfo['id'], 'iid' => $it['id'], 'x' => $this->userinfo['x'], 'y' => $this->userinfo['y'], 'del' => (int)$itm[4]]
|
||||
);
|
||||
$nj++;
|
||||
}
|
||||
} else {
|
||||
//неудачная попытка
|
||||
//Случайный предмет (Башня смерти)
|
||||
if ($itm[0] == 'random1') {
|
||||
$itm[0] = $this->itbs[rand(0, count($this->itbs))];
|
||||
}
|
||||
|
||||
//удачная попытка
|
||||
$it = mysql_fetch_assoc(
|
||||
mysql_query(
|
||||
'SELECT * FROM `items_main` WHERE `id`="' . ((int)$itm[0]) . '" LIMIT 1'
|
||||
)
|
||||
);
|
||||
if (isset($it['id'])) {
|
||||
$r .= 'Вы обнаружили предмет "<b>' . $it['name'] . '</b>".<br>';
|
||||
$u->addAction(
|
||||
time(), 'takeit_' . $this->info['id'] . '_' . $obj['id'], $this->userinfo['city']
|
||||
);
|
||||
$r .= 'Вы ничего не нашли ... <br>';
|
||||
ItemsModel::addItem($it['id'], $this->userinfo['id']);
|
||||
//ItemsModel::addItem(['uid' => $this->userinfo['id'], 'iid' => $it['id'], 'x' => $this->userinfo['x'], 'y' => $this->userinfo['y'], 'del' => (int)$itm[4]]);
|
||||
}
|
||||
} else {
|
||||
//неудачная попытка
|
||||
$u->addAction(
|
||||
time(), 'takeit_' . $this->info['id'] . '_' . $obj['id'], $this->userinfo['city']
|
||||
);
|
||||
$r .= 'Вы ничего не нашли ... <br>';
|
||||
}
|
||||
}
|
||||
|
||||
} elseif ($s[0] == 'itm2') {
|
||||
//Добавляем предмет , только 1 предмет из всех и только 1 юзер может поднять
|
||||
$nj = 0;
|
||||
|
||||
$t = explode(',', $s[1]);
|
||||
$j = rand(0, count($t) - 1);
|
||||
if ($nj == 0) {
|
||||
$itm = explode('=', $t[$j]);
|
||||
$ch = $u->testAction(
|
||||
'`vars` = "takeit_' . $this->info['id'] . '_' . $obj['id'] . '" LIMIT ' . (1 + (int)$itm[2]) . '',
|
||||
2
|
||||
); //кол-во прошлых попыток
|
||||
$ch = $ch[0];
|
||||
if ($ch >= $itm[2]) {
|
||||
//закончились попытки
|
||||
$r .= 'Ничего не произошло... <br>';
|
||||
} else {
|
||||
if ($itm[1] * 1000 >= rand(1, 100000)) {
|
||||
$itm = explode('=', $t[$j]);
|
||||
$ch = ActionModel::testCount(["vars = takeit_{$this->info['id']}_{$obj['id']}"], 1 + (int)$itm[2]); //кол-во прошлых попыток
|
||||
|
||||
//Случайный предмет (Башня смерти)
|
||||
if ($itm[0] == 'random1') {
|
||||
$itm[0] = $this->itbs[rand(0, count($this->itbs))];
|
||||
}
|
||||
if ($ch >= $itm[2]) {
|
||||
//закончились попытки
|
||||
$r .= 'Ничего не произошло... <br>';
|
||||
} else {
|
||||
if ($itm[1] * 1000 >= rand(1, 100000)) {
|
||||
|
||||
//удачная попытка
|
||||
$it = mysql_fetch_assoc(
|
||||
mysql_query(
|
||||
'SELECT * FROM `items_main` WHERE `id`="' . ((int)$itm[0]) . '" LIMIT 1'
|
||||
)
|
||||
);
|
||||
if (isset($it['id'])) {
|
||||
$r .= 'Вы обнаружили предмет "<b>' . $it['name'] . '</b>".<br>';
|
||||
$u->addAction(
|
||||
time(), 'takeit_' . $this->info['id'] . '_' . $obj['id'], $this->userinfo['city']
|
||||
);
|
||||
ItemsModel::addItem(
|
||||
['uid' => $this->userinfo['id'], 'iid' => $it['id'], 'x' => $this->userinfo['x'], 'y' => $this->userinfo['y'], 'del' => (int)$itm[4]]
|
||||
);
|
||||
$nj++;
|
||||
}
|
||||
} else {
|
||||
//неудачная попытка
|
||||
//Случайный предмет (Башня смерти)
|
||||
if ($itm[0] == 'random1') {
|
||||
$itm[0] = $this->itbs[rand(0, count($this->itbs))];
|
||||
}
|
||||
|
||||
//удачная попытка
|
||||
$it = mysql_fetch_assoc(
|
||||
mysql_query(
|
||||
'SELECT * FROM `items_main` WHERE `id`="' . ((int)$itm[0]) . '" LIMIT 1'
|
||||
)
|
||||
);
|
||||
if (isset($it['id'])) {
|
||||
$r .= 'Вы обнаружили предмет "<b>' . $it['name'] . '</b>".<br>';
|
||||
$u->addAction(
|
||||
time(), 'takeit_' . $this->info['id'] . '_' . $obj['id'], $this->userinfo['city']
|
||||
);
|
||||
$r .= 'Вы ничего не нашли ... <br>';
|
||||
ItemsModel::addItem($it['id'], $this->userinfo['id']);
|
||||
//ItemsModel::addItem(['uid' => $this->userinfo['id'], 'iid' => $it['id'], 'x' => $this->userinfo['x'], 'y' => $this->userinfo['y'], 'del' => (int)$itm[4]]);
|
||||
}
|
||||
} else {
|
||||
//неудачная попытка
|
||||
$u->addAction(
|
||||
time(), 'takeit_' . $this->info['id'] . '_' . $obj['id'], $this->userinfo['city']
|
||||
);
|
||||
$r .= 'Вы ничего не нашли ... <br>';
|
||||
}
|
||||
}
|
||||
} elseif ($s[0] == 'fileact') {
|
||||
@@ -1166,7 +1140,7 @@ class Dungeon
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
$r = rtrim($r, '\<br\>');
|
||||
$r = rtrim($r, '\<br>');
|
||||
if ($r == '') {
|
||||
$r = 'В этот раз не удалось найти что-либо еще';
|
||||
}
|
||||
@@ -1690,7 +1664,7 @@ class Dungeon
|
||||
}
|
||||
|
||||
|
||||
$sp = mysql_query('SELECT * FROM `dungeon_now` WHERE `time_finish` = "0" LIMIT 50');
|
||||
$sp = mysql_query('select * from dungeon_now where time_finish = 0 limit 50');
|
||||
while ($pl = mysql_fetch_assoc($sp)) {
|
||||
$cn = mysql_fetch_assoc(
|
||||
mysql_query('SELECT `id` FROM `stats` WHERE `dnow` = "' . $pl['id'] . '" LIMIT 1')
|
||||
|
||||
Reference in New Issue
Block a user