Замена прямых запросов в БД на метод Effects::addHod.
This commit is contained in:
parent
66d825bc6e
commit
9843a3a991
@ -466,11 +466,11 @@ class Priems
|
||||
/**
|
||||
* Новая функция магического заклинания с приёма.
|
||||
* Работает с числовыми приёмами в папке [priem].
|
||||
* @param int $attackerId кто использует приём
|
||||
* @param int $defenderId на кого использует приём
|
||||
* @param float $damage базовый урон приёма
|
||||
* @param string $damageType тип урона (стихия?) приходит строкой, и конвертируется функцией.
|
||||
* @param bool $hasCritical флаг, что приём МОЖЕТ критовать
|
||||
* @param int $attackerId кто использует приём
|
||||
* @param int $defenderId на кого использует приём
|
||||
* @param float $damage базовый урон приёма
|
||||
* @param string $damageType тип урона (стихия?) приходит строкой, и конвертируется функцией.
|
||||
* @param bool $hasCritical флаг, что приём МОЖЕТ критовать
|
||||
* @return array [0|damage] int урон, [1|crit] bool был ли крит, [2|miss] bool был ли промах, [3|miss_type] int тип промаха (всегда = 2).
|
||||
* @author Insallah
|
||||
*/
|
||||
@ -786,8 +786,7 @@ class Priems
|
||||
$krituet = true,
|
||||
$heal = 0,
|
||||
$namenew = null
|
||||
)
|
||||
{
|
||||
) {
|
||||
$trawm_off = false;
|
||||
global $btl;
|
||||
if ($namenew != null) {
|
||||
@ -966,7 +965,8 @@ class Priems
|
||||
);
|
||||
|
||||
//заносим в лог боя
|
||||
$vLog = 'time1=' . time() . '||s1=' . $btl->users[$btl->uids[$usu]]['sex'] . '||t1=' . $btl->users[$btl->uids[$usu]]['team'] . '||login1=' . $btl->users[$btl->uids[$usu]]['login'] . '||s2=' . $btl->users[$btl->uids[$uen]]['sex'] . '||t2=' . $btl->users[$btl->uids[$uen]]['team'] . '||login2=' . $btl->users[$btl->uids[$uen]]['login'] . '';
|
||||
$vLog = 'time1=' . time(
|
||||
) . '||s1=' . $btl->users[$btl->uids[$usu]]['sex'] . '||t1=' . $btl->users[$btl->uids[$usu]]['team'] . '||login1=' . $btl->users[$btl->uids[$usu]]['login'] . '||s2=' . $btl->users[$btl->uids[$uen]]['sex'] . '||t2=' . $btl->users[$btl->uids[$uen]]['team'] . '||login2=' . $btl->users[$btl->uids[$uen]]['login'] . '';
|
||||
$mas1 = [
|
||||
'time' => time(),
|
||||
'battle' => $btl->i->id,
|
||||
@ -1579,13 +1579,13 @@ class Priems
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $uid на кого кастуем
|
||||
* @param int $pr id приема
|
||||
* @param int $uid на кого кастуем
|
||||
* @param int $pr id приема
|
||||
* @param int|string $data дата, если -1, то добавляем дату3
|
||||
* @param int $d2
|
||||
* @param int $d2
|
||||
* @param $tm
|
||||
* @param int $h ход
|
||||
* @param int $uu id юзера который использовал
|
||||
* @param int $h ход
|
||||
* @param int $uu id юзера который использовал
|
||||
* @param $max
|
||||
* @param $bj
|
||||
* @param $tp
|
||||
@ -1614,8 +1614,7 @@ class Priems
|
||||
$noupdatebtl = 0,
|
||||
$noplus = 0,
|
||||
$pname = null
|
||||
)
|
||||
{
|
||||
) {
|
||||
global $btl;
|
||||
//$pl = mysql_fetch_assoc(mysql_query('SELECT * FROM `priems` WHERE `id` = ' . (int)$pr));
|
||||
$pl = Db::getRow('select * from priems where id = ?', [$pr]);
|
||||
@ -1654,10 +1653,8 @@ class Priems
|
||||
|
||||
if (isset($num['id']) && ($num['user_use'] != $this->u->info['id'] && $pl['zmu'] != 2)) {
|
||||
// удаляем эффект
|
||||
Db::sql(
|
||||
'update eff_users set `delete` = unix_timestamp() where id = ?',
|
||||
[$num['id']]
|
||||
);
|
||||
Effects::removeById(0, $num['id']);
|
||||
|
||||
$i = 0;
|
||||
while ($i < count($btl->stats[$btl->uids[$uid]]['effects'])) {
|
||||
if ($btl->stats[$btl->uids[$uid]]['effects'][$i]['id'] == $num['id']) {
|
||||
@ -1669,17 +1666,28 @@ class Priems
|
||||
unset($num);
|
||||
}
|
||||
if (!isset($num['id'])) {
|
||||
$q = 'insert into eff_users (tr_life_user, bj, user_use, hod, v2, img2, id_eff, uid, name, data, overtype, timeuse, v1) values (?,?,?,?,?,?,?,?,?,?,?,?,?)';
|
||||
$image = !empty($pl['img']) ? $pl['img'] : $pl['id'];
|
||||
$name = !empty($pname) ? $pname : $pl['name'];
|
||||
$image .= '.gif';
|
||||
Db::sql(
|
||||
$q, [floor($tr_life_user), $bj, $uu, $h, $pl['id'], $image, 22, $uid, $name, $data, 0, $tm, 'priem']
|
||||
|
||||
Effects::addCustom(
|
||||
[
|
||||
'id_eff' => 22,
|
||||
'uid' => $uid,
|
||||
'name' => $name,
|
||||
'data' => $data,
|
||||
'timeUse' => $tm,
|
||||
'user_use' => $uu,
|
||||
'v1' => 'priem',
|
||||
'v2' => $pl['id'],
|
||||
'img2' => $image,
|
||||
'hod' => $h,
|
||||
'bj' => $bj,
|
||||
'tr_life_user' => floor($tr_life_user),
|
||||
]
|
||||
);
|
||||
$lid = Db::lastInsertId();
|
||||
if ($lid) {
|
||||
$r = true;
|
||||
}
|
||||
|
||||
$r = true;
|
||||
|
||||
/* добавляем данные к $btl->eff */
|
||||
if ($noupdatebtl == 0) {
|
||||
@ -1691,15 +1699,9 @@ class Priems
|
||||
$num['hod'] = $h;
|
||||
if ($data != -1 && $data != '' && $d2 == 2) {
|
||||
$num['data'] .= '|' . $data;
|
||||
Db::sql(
|
||||
'update eff_users set x = x + 1, hod = ?, data = ? where id = ?',
|
||||
[$h, $num['data'], $num['id']]
|
||||
);
|
||||
Effects::setHod($num['id'], $h, 'x + 1', $num['data']);
|
||||
} else {
|
||||
Db::sql(
|
||||
'update eff_users set x = x + 1, hod = ? where id = ?',
|
||||
[$h, $num['id']]
|
||||
);
|
||||
Effects::setHod($num['id'], $h, 'x + 1');
|
||||
}
|
||||
$r = true;
|
||||
} else {
|
||||
@ -1707,12 +1709,9 @@ class Priems
|
||||
$num['hod'] = $h;
|
||||
if ($data != -1 && $data != '' && $d2 == 2) {
|
||||
$num['data'] .= '|' . $data;
|
||||
Db::sql("update eff_users set hod = ?, data = ? where id = ?", [$h, $num['data'], $num['id']]);
|
||||
Effects::setHod($num['id'], $h, data: $num['data']);
|
||||
} else {
|
||||
Db::sql(
|
||||
'update eff_users set hod = ? where id = ?',
|
||||
[$h, $num['id']]
|
||||
);
|
||||
Effects::setHod($num['id'], $h);
|
||||
}
|
||||
$r = true;
|
||||
}
|
||||
@ -1733,8 +1732,8 @@ class Priems
|
||||
|
||||
/** Получает строку data c шаблонной записью типа add_m11=2*{lvl1} и конвертирует в реальную строку.
|
||||
* <br>Шаблон: <br>lvl1 = $uid[level] <br>ts5 = $uid[s5] <br>mpAll = $uid[mpAll]
|
||||
* @param string $pl строка в формате data
|
||||
* @param int $uid пользователь, параметры которого используются для подставки в шаблон.
|
||||
* @param string $pl строка в формате data
|
||||
* @param int $uid пользователь, параметры которого используются для подставки в шаблон.
|
||||
* @return string строка в формате data с развёрнутыми шаблонами.
|
||||
*/
|
||||
public function redate($pl, $uid)
|
||||
@ -1982,7 +1981,8 @@ class Priems
|
||||
} else {
|
||||
//бьем противника с пропуском хода
|
||||
mysql_query(
|
||||
'INSERT INTO `battle_act` (`battle`,`uid1`,`uid2`,`time`,`out1`,`type`,`tpo1`) VALUES ("' . $btl->i->id . '","' . $this->u->info['id'] . '","' . $this->u->info['enemy'] . '","' . time() . '","1","1","2")'
|
||||
'INSERT INTO `battle_act` (`battle`,`uid1`,`uid2`,`time`,`out1`,`type`,`tpo1`) VALUES ("' . $btl->i->id . '","' . $this->u->info['id'] . '","' . $this->u->info['enemy'] . '","' . time(
|
||||
) . '","1","1","2")'
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -2086,11 +2086,11 @@ class Priems
|
||||
);
|
||||
if ($upd) {
|
||||
TrainingManager::getInstance()
|
||||
->addPoint(
|
||||
'my_user_fourth_quest', function (TrainingManager $manager) {
|
||||
$manager->store();
|
||||
}
|
||||
);
|
||||
->addPoint(
|
||||
'my_user_fourth_quest', function (TrainingManager $manager) {
|
||||
$manager->store();
|
||||
}
|
||||
);
|
||||
$this->u->info['priems'] = $p;
|
||||
}
|
||||
} else {
|
||||
@ -2107,17 +2107,17 @@ class Priems
|
||||
|
||||
if (isset($id)) {
|
||||
return Db::getRow('select * from priems where level <= ? and activ > 0 and id = ? order by img,level', [$this->u->info['level'], $id]);
|
||||
// return Db::getRow(
|
||||
// 'select * from techniques_categories left join priems on techniques_categories.technique_id = priems.id
|
||||
// where priems.level <= ? and priems.activ > 0 and priems.id = ? order by priems.img,priems.level', [User::start()->info['level'], $id]
|
||||
// );
|
||||
// return Db::getRow(
|
||||
// 'select * from techniques_categories left join priems on techniques_categories.technique_id = priems.id
|
||||
// where priems.level <= ? and priems.activ > 0 and priems.id = ? order by priems.img,priems.level', [User::start()->info['level'], $id]
|
||||
// );
|
||||
}
|
||||
|
||||
return Db::getRows('select * from priems where level <= ? and activ > 0 order by img,level', [$this->u->info['level']]);
|
||||
// return Db::getRows(
|
||||
// 'select * from techniques_categories left join priems on techniques_categories.technique_id = priems.id
|
||||
// where priems.level <= ? and priems.activ > 0 order by priems.img,priems.level', [User::start()->info['level']]
|
||||
// );
|
||||
// return Db::getRows(
|
||||
// 'select * from techniques_categories left join priems on techniques_categories.technique_id = priems.id
|
||||
// where priems.level <= ? and priems.activ > 0 order by priems.img,priems.level', [User::start()->info['level']]
|
||||
// );
|
||||
}
|
||||
|
||||
|
||||
@ -2172,7 +2172,7 @@ class Priems
|
||||
/**
|
||||
* Летит в js, двойные кавычки не использовать.
|
||||
* @param array $pl
|
||||
* @param int $id
|
||||
* @param int $id
|
||||
* @return array
|
||||
*/
|
||||
private function priemInfo(array $pl, int $id = -1): array
|
||||
@ -2355,9 +2355,11 @@ class Priems
|
||||
echo
|
||||
<<< HTML
|
||||
<a href="javascript:void(0)" onclick="location.href='main.php?skills=1&rz=4&use_priem=$priem[id]';">
|
||||
<img class="pwq$priem[category_id] pwqall" onMouseOver="top.popup(this, '(#$priem[id]) <b>$priem[name]</b><Br>{$this->priemInfo($priem)[0]}');" onMouseOut="top.hic();" onMouseDown="top.hic();" style="display:none;margin-top:2px; $cl margin-left:1px;" src="//img.new-combats.tech/i/eff/$priem[img].gif" width="40" height="25" />
|
||||
<img class="pwq$priem[category_id] pwqall" onMouseOver="top.popup(this, '(#$priem[id]) <b>$priem[name]</b><Br>{$this->priemInfo(
|
||||
$priem
|
||||
)[0]}');" onMouseOut="top.hic();" onMouseDown="top.hic();" style="display:none;margin-top:2px; $cl margin-left:1px;" src="//img.new-combats.tech/i/eff/$priem[img].gif" width="40" height="25" />
|
||||
</a>
|
||||
HTML;
|
||||
HTML;
|
||||
}
|
||||
|
||||
}
|
||||
@ -2785,7 +2787,7 @@ class Priems
|
||||
* Конечный damage после множителей делится на 5 и пишется в БД (atgm=).
|
||||
* Файлы: 33, 56, 57, 58, 59, 60.
|
||||
* @param $id
|
||||
* @param array $pl массив значений из БД priems.
|
||||
* @param array $pl массив значений из БД priems.
|
||||
* @param Battle $btl
|
||||
* @return void
|
||||
*/
|
||||
@ -2817,7 +2819,7 @@ class Priems
|
||||
* Если есть одинаковые статы из них выбирается случайный.
|
||||
* Файл:267, приём 268. Понимай как хочешь.
|
||||
* @param $id
|
||||
* @param array $pl
|
||||
* @param array $pl
|
||||
* @param Battle $btl
|
||||
* @return void
|
||||
*/
|
||||
|
@ -208,6 +208,13 @@ insert into eff_users
|
||||
Db::sql("insert into eff_users (no_Ace, id_eff, overType, uid, name, data, timeUse) values (1,479,112,?,'Защита от нападения','zashitatk=1',unix_timestamp())", [$userId]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $id
|
||||
* @param int $hod
|
||||
* @param int|string $x для запроса x = x + 1, вводить 'x + 1'
|
||||
* @param string $data
|
||||
* @return void
|
||||
*/
|
||||
public static function setHod(int $id, int $hod, int|string $x = 0, string $data = ''): void
|
||||
{
|
||||
$args = ['id' => $id, 'hod' => $hod];
|
||||
|
@ -227,7 +227,7 @@ class Stats
|
||||
} elseif (Config::get('effz') > 0 && $e['hod'] == -1) {
|
||||
$efzz = round(($e['timeUse'] + $e['actionTime'] + $e['timeAce']) - time());
|
||||
if ($efzz > 0) {
|
||||
Db::sql('update eff_users set hod = ? where id = ?', [$efzz / Config::get('effz'), $e['id']]);
|
||||
Effects::setHod($e['id'], $efzz / Config::get('effz'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user