Рефакторинг яваскриптов.

This commit is contained in:
2024-05-10 14:32:06 +03:00
parent 2026029bf5
commit 023d9856ea
9 changed files with 205 additions and 238 deletions
+56 -54
View File
@@ -247,7 +247,7 @@ class Battle
/**
* @param int|null $experience
* @param bool $hardcore поединок с гарантированной травмой
* @param bool $hardcore поединок с гарантированной травмой
* @return array|int[]
*/
public static function getType(?int $experience, bool $hardcore = false): array
@@ -365,10 +365,10 @@ class Battle
Db::sql(
'update stats set last_hp = ?, tactic7 = ? where id = ?', [
$this->users[$this->uids[$uid]]['last_hp'],
$this->users[$this->uids[$uid]]['tactic7'],
$uid,
]
$this->users[$this->uids[$uid]]['last_hp'],
$this->users[$this->uids[$uid]]['tactic7'],
$uid,
]
);
return (int)$hp;
@@ -1139,9 +1139,9 @@ JS;
/**
* @param array $botLogins
* @param int $counter
* @param int $obr
* @param int $unique для совместимости с непонятным вызовом User->addAction
* @param int $counter
* @param int $obr
* @param int $unique для совместимости с непонятным вызовом User->addAction
* при вызове уникального монстра.
* @return void
*/
@@ -1231,14 +1231,14 @@ JS;
/** Осторожно! Подключаются файлы!!!
* Трогать очень осторожно. Этот шайтан как-то проверяет приёмы на враге
* и рассчитывает урон учитывая и эти приёмы тоже.
* @param int $uid1
* @param int $uid2
* @param int $priem
* @param int $uid1
* @param int $uid2
* @param int $priem
* @param $yron
* @param int $profil
* @param int $profil
* @param bool $stabil
* @param bool $test
* @param int $inlog
* @param int $inlog
* @return float|int|mixed
*/
public function testYronPriem(
@@ -1250,7 +1250,8 @@ JS;
bool $stabil,
bool $test = false,
int $inlog = 0
): mixed {
): mixed
{
/**
* profil = {
@@ -1524,7 +1525,7 @@ JS;
$jstext = json_encode($log['text']);
$jsvars = json_encode($log['vars']);
$js = "add_log({$log['id']},0,$jstext,{$log['id_hod']},0,0,$jsvars)" . $js;
$js = "add_log({$log['id']},$jstext,{$log['id_hod']},$jsvars)" . $js;
}
Db::sql('update stats set alog = ? where id = ?', [$u->info['alog'], $u->info['id']]);
@@ -1588,7 +1589,7 @@ JS;
$jstext = json_encode($log['text']);
$jsvars = json_encode($log['vars']);
$js = "add_mlog({$log['id']},0,$jstext,{$log['id_hod']},0,0,$jsvars)" . $js;
$js = "add_mlog({$log['id']},$jstext,{$log['id_hod']},$jsvars)" . $js;
}
Db::sql('update stats set mlog = ? where id = ?', [$u->info['mlog'], $u->info['id']]);
@@ -1917,17 +1918,6 @@ JS;
}
}
/**
* Массово встречается в подключаемых файлах приёмов.
* @param array $arr
* @return void
* @deprecated
*/
public function add_log(array $arr): void
{
Log::add($arr);
}
private function botAtack($uid, $pl, $tp): void
{
$testAttack = Db::getValue('select count(id) from battle_act where battle = ? and uid1 in (?,?) and uid2 in(?,?) and uid1 != uid2', [$this->i->id, $pl, $uid, $pl, $uid]) === 0;
@@ -1960,8 +1950,6 @@ JS;
}
}
//Используем приемы
public function startAtack($id): void
{
global $u, $priem;
@@ -2410,12 +2398,14 @@ JS;
Db::sql('delete from battle_act where id = ?', [$id]);
}
//Используем приемы
/** Осторожно! Подключаются файлы!!!
* @param array $pl
* @param array $pl
* @param $u1
* @param int $t
* @param int $t
* @param int|array $u2
* @param string $rznm
* @param string $rznm
* @return void
*/
public function delPriem(
@@ -2424,7 +2414,8 @@ JS;
int $t = 1,
int|array $u2 = 0,
string $rznm = 'Очиститься Кровью'
): void {
): void
{
global $u, $priem;
if (!isset($pl['priem']['id']) || isset($this->del_val['eff'][$pl['priem']['id']])) {
return;
@@ -2481,8 +2472,6 @@ JS;
$this->stats[$this->uids[$pl['uid']]] = $u->getStats($pl['uid'], 0, 0, false, false, true);
}
//Повторная проверка приемов
/**
* Расчет количества блоков и противников?
* @param $uid
@@ -2561,7 +2550,7 @@ JS;
}
}
//Проверка действия приема
//Повторная проверка приемов
/**
* Магия предметов?
@@ -2594,7 +2583,7 @@ JS;
}
}
//Проверка урона приемов
//Проверка действия приема
private function newRazmen($id): array
{
@@ -2615,6 +2604,8 @@ JS;
return $at;
}
//Проверка урона приемов
private function usersTestAtack($id, $uid1, $uid2): array
{
$r = [];
@@ -2678,8 +2669,6 @@ JS;
return $r;
}
//Наносим удар между игроками
public function priemsRazmen(array|int $id, array|string $at): void
{
if ($at == 'fast') {
@@ -2731,6 +2720,8 @@ JS;
}
}
//Наносим удар между игроками
/** Осторожно! Подключаются файлы!!!
* @param $id
* @param $at
@@ -2952,10 +2943,6 @@ JS;
return $at;
}
//Расчет типа удара от оружия
//Расчет урона от оружия
public function testPogB($uid, $yr, $pliid, $test = 0)
{
$checktuman = Db::getValue('select count(id) from eff_users where uid = ? and v2 in (273,286,287,288)', [$uid]) == 0; //проверка на туманный образ
@@ -3056,6 +3043,8 @@ JS;
return $yr2;
}
//Расчет типа удара от оружия
//Расчет урона от оружия
/**
@@ -3223,8 +3212,7 @@ JS;
return $at;
}
//Расчет защиты
//Расчет урона от оружия
public function yhod_user($uid1, $uid2, $type)
{
@@ -3285,7 +3273,8 @@ JS;
return $r;
}
//Расчет защиты (магия)
//Расчет защиты
/**
* Добавляем опыт \ нанесенный урон.
@@ -3444,6 +3433,8 @@ JS;
}
}
//Расчет защиты (магия)
private function clearCache($uid): void
{
if ($uid <= 0 || isset($this->uclearc[$uid])) {
@@ -3868,7 +3859,6 @@ JS;
return '{' . $a . 'x' . $id . 'x' . $rnd . '}';
}
/**
* Свиток спасения.
*
@@ -3995,7 +3985,8 @@ JS;
$hodID,
$tm1 = 0,
$tm2 = 0
): void {
): void
{
$time = time();
if ($tm1 == 0) {
$tm1 = isset($this->atacks[$id]) ? $this->atacks[$id]['time'] : $time;
@@ -4029,8 +4020,6 @@ JS;
Log::add($mas);
}
//Расчет МФ
/**
* Возращаем зоны блока?
* @param $uid1
@@ -4047,6 +4036,8 @@ JS;
}
}
//Расчет МФ
private function saveStats($uid): void
{
Stats::saveBattleStats($this->stats[$this->uids[$uid]], $uid);
@@ -4117,8 +4108,6 @@ JS;
return $result ?: [];
}
//Действия бота (атака)
/**
* Смерть от пропуска ходов. Включается в конфиге.
* @param int $id
@@ -4151,7 +4140,7 @@ JS;
}
}
//Проверяем удары, приемы, свитки, зверей
//Действия бота (атака)
private function addNewAtack(User $u): void
{
@@ -4237,7 +4226,7 @@ JS;
}
//Действия бота
//Проверяем удары, приемы, свитки, зверей
private function botAct($uid): bool
{
@@ -4254,6 +4243,19 @@ JS;
return $r;
}
//Действия бота
/**
* Массово встречается в подключаемых файлах приёмов.
* @param array $arr
* @return void
* @deprecated
*/
public function add_log(array $arr): void
{
Log::add($arr);
}
/**
* Запись выбранных ударов и блоков в массив $this->uAtc.
* Технически это сеттер.
+30 -30
View File
@@ -108,7 +108,7 @@ class Priems
/** используем прием каждый ход
* @param Battle $btl
* @param array $eff
* @param array $eff
* @return bool
*/
public function hodUsePriem(Battle $btl, array $eff): bool
@@ -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,7 +786,8 @@ class Priems
$krituet = true,
$heal = 0,
$namenew = null
) {
)
{
$trawm_off = false;
global $btl;
if ($namenew != null) {
@@ -965,8 +966,7 @@ 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,7 +1614,8 @@ 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]);
@@ -1732,8 +1733,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)
@@ -1981,8 +1982,7 @@ 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 {
@@ -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
@@ -2281,11 +2281,11 @@ class Priems
$cl = 'href="javascript:void(0);" onClick="top.priemOnUser(' . $i . ',1,\'' . $pl['name'] . '\',\'' . $oninuser . '\',\'' . $pl['img'] . '\');"';
unset($oninuser);
} else {
$cl = 'href="javascript:void(0);" onClick="usepriem(' . $i . ',1,\'' . $pl['img'] . '\');"';
$cl = 'href="javascript:void(0);" onClick="usepriem(' . $i . ');"';
}
} elseif ($pl['type'] == 2) {
//длительное
$cl = 'href="javascript:void(0);" onClick="usepriem(' . $i . ',1,\'' . $pl['img'] . '\');"';
$cl = 'href="javascript:void(0);" onClick="usepriem(' . $i . ');"';
} elseif ($pl['type'] == 3) {
$cl = 'href="javascript:void(0);" onClick="alert(\'Возможно используем?\');"';
}
@@ -2328,7 +2328,7 @@ class Priems
1
);
if (!isset($use_lst['id'])) {
$pr .= '<a onMouseOver="top.hi(this,\'<b>Выпустить зверя</b><Br>Ваш зверь вмешивается в поединок. Можно применять один раз за бой.\',event,3,0,1,1,\'width:240px\');" onMouseOut="top.hic();" onMouseDown="top.hic();" href="javascript:void(0);" onClick="usepriem(100500,1,\'\');"><img style="margin-top:1px; margin-left:3px;" src="//img.new-combats.tech/i/eff/pet_unleash.gif" width="40" height="25" /></a>';
$pr .= '<a onMouseOver="top.hi(this,\'<b>Выпустить зверя</b><Br>Ваш зверь вмешивается в поединок. Можно применять один раз за бой.\',event,3,0,1,1,\'width:240px\');" onMouseOut="top.hic();" onMouseDown="top.hic();" href="javascript:void(0);" onClick="usepriem(100500);"><img style="margin-top:1px; margin-left:3px;" src="//img.new-combats.tech/i/eff/pet_unleash.gif" width="40" height="25" /></a>';
} else {
$pr .= '<img onMouseOver="top.hi(this,\'<b>Выпустить зверя</b><Br>Ваш зверь вмешивается в поединок. Можно применять один раз за бой.\',event,3,0,1,1,\'width:240px\');" onMouseOut="top.hic();" onMouseDown="top.hic();" style="margin-top:1px; margin-left:2px;" class="nopriemuse" src="//img.new-combats.tech/i/eff/pet_unleash.gif" width="40" height="25" />';
}
@@ -2787,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
*/
@@ -2819,7 +2819,7 @@ class Priems
* Если есть одинаковые статы из них выбирается случайный.
* Файл:267, приём 268. Понимай как хочешь.
* @param $id
* @param array $pl
* @param array $pl
* @param Battle $btl
* @return void
*/