Merge remote-tracking branch 'origin/dev-php74' into dev-php74

# Conflicts:
#	_incl_data/class/Battle.php
#	_incl_data/class/FightRequest.php
#	_incl_data/class/Filter.php
#	_incl_data/class/Magic.php
#	_incl_data/class/Priems.php
#	_incl_data/class/Quests.php
#	_incl_data/class/Season.php
#	_incl_data/class/User.php
#	_incl_data/class/__db_connect.php
#	_incl_data/class/priem/244.php
#	_incl_data/class/priem/263.php
#	_incl_data/class/priem/265.php
#	_incl_data/class/priem/267.php
#	buttons.php
#	cron_bs.php
#	cron_dungeon_getOut.php
#	cron_zv.php
#	dn_editor.php
#	dn_editor_bots.php
#	dn_editor_botsAll.php
#	dn_editor_bots_itms.php
#	enter.php
#	hmonitor.php
#	logs.php
#	main.php
#	main_bot.php
#	map.php
#	modules_data/_inv.php
#	modules_data/_umenie.php
#	modules_data/btl_.php
#	modules_data/location/btl_.php
#	modules_data/titul.php
#	myexp.php
#	obraz.php
#	online.php
#	register.php
#	ruin_characteristics.php
#	spam.php
This commit is contained in:
2022-12-19 21:40:33 +02:00
141 changed files with 5910 additions and 48703 deletions
+3 -1
View File
@@ -2,6 +2,7 @@
namespace Insallah;
use Core\Database;
use Exception;
use http\Message;
use PDO;
@@ -50,8 +51,9 @@ class Db
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES " . self::CHARSET,
]
);
// self::$db = Database::pdoinit();
} catch (PDOException $e) {
throw new Exception ($e->getMessage());
throw new Exception($e->getMessage());
}
}
return self::$instance;
+30 -31
View File
@@ -4,8 +4,7 @@ namespace Insallah;
class Runes
{
/** Создаём руну в зависимости от уровня.
*
/** Ñîçäà¸ì ðóíó â çàâèñèìîñòè îò óðîâíÿ.
* @param $level
*
* @return array
@@ -15,7 +14,7 @@ class Runes
if (!in_array($level, [8, 9, 10])) {
return [];
}
$power = [8 => 3, 9 => 5, 10 => 7];
$power = [8 => 3, 9 => 3, 10 => 5];
$stats = [8 => 1, 9 => 3, 10 => 3];
$rand9 = array_rand(array_flip(['hpAll', 'm2', 'm5']));
$runes = [
@@ -27,24 +26,24 @@ class Runes
['s5', 'm11', 'mpAll', 'pzm']
];
$vars = [
's1' => ['Сила', mt_rand(1, $stats[$level])],
's2' => ['Ловкость', mt_rand(1, $stats[$level])],
's3' => ['Интуиция', mt_rand(1, $stats[$level])],
's5' => ['Интеллект', mt_rand(1, $stats[$level])],
'pa1' => ['Мощности Колющего урона', mt_rand(1, $power[$level])],
'pa2' => ['Мощности Рубящего урона', mt_rand(1, $power[$level])],
'pa3' => ['Мощности Дробящего урона', mt_rand(1, $power[$level])],
'pa4' => ['Мощности Режущего урона', mt_rand(1, $power[$level])],
'm2' => ['мф. Против Критического Удара', mt_rand(5, 15)],
'm3' => ['МК', mt_rand(1, 3)],
'antm3' => ['ПМК', mt_rand(1, 3)],
'm5' => ['мф. Против Увертывания', mt_rand(5, 10)],
'm11' => ['Мощности Магии стихии', mt_rand(1, $power[$level])],
's1' => ['Ñèëà', mt_rand(1, $stats[$level])],
's2' => ['Ëîâêîñòü', mt_rand(1, $stats[$level])],
's3' => ['Èíòóèöèÿ', mt_rand(1, $stats[$level])],
's5' => ['Èíòåëëåêò', mt_rand(1, $stats[$level])],
'pa1' => ['Ìîùíîñòè Êîëþùåãî óðîíà', mt_rand(1, $power[$level])],
'pa2' => ['Ìîùíîñòè Ðóáÿùåãî óðîíà', mt_rand(1, $power[$level])],
'pa3' => ['Ìîùíîñòè Äðîáÿùåãî óðîíà', mt_rand(1, $power[$level])],
'pa4' => ['Ìîùíîñòè Ðåæóùåãî óðîíà', mt_rand(1, $power[$level])],
'm2' => ['ìô. Ïðîòèâ Êðèòè÷åñêîãî Óäàðà', mt_rand(5, 15)],
'm3' => ['ÌÊ', mt_rand(1, 3)],
'antm3' => ['ÏÌÊ', mt_rand(1, 3)],
'm5' => ['ìô. Ïðîòèâ Óâåðòûâàíèÿ', mt_rand(5, 10)],
'm11' => ['Ìîùíîñòè Ìàãèè ñòèõèè', mt_rand(1, $power[$level])],
'hpAll' => ['HP', mt_rand(5, 15)],
'mpAll' => ['MP', mt_rand(10, 20)],
'pzm' => ['Подавление защиты от магии', 1],
'za' => ['Защита от Урона', mt_rand(5, 10)],
'zma' => ['Защита от Магии', mt_rand(5, 10)]
'pzm' => ['Ïîäàâëåíèå çàùèòû îò ìàãèè', 1],
'za' => ['Çàùèòà îò Óðîíà', mt_rand(5, 10)],
'zma' => ['Çàùèòà îò Ìàãèè', mt_rand(5, 10)]
];
$rune = $runes[array_rand($runes)]; // arr (s, pa\m, rand9\mpAll, other)
@@ -52,40 +51,40 @@ class Runes
$runeVals = [$vars[$rune[0]][1], $vars[$rune[1]][1], $vars[$rune[2]][1], $vars[$rune[3]][1]];
$resultRune = array_combine($rune, $runeVals);
$resultText = array_combine($runeTxt, $runeVals);
if ($level < 10) { // Отрезаем параметр 4.
if ($level < 10) { // Îòðåçàåì ïàðàìåòð 4.
array_pop($resultRune);
array_pop($resultText);
}
if ($level < 9) { // Отрезаем параметр 3.
if ($level < 9) { // Îòðåçàåì ïàðàìåòð 3.
array_pop($resultRune);
array_pop($resultText);
}
//Строчка data в базу
//Ñòðî÷êà data â áàçó
$returnData = '|' . http_build_query($resultRune, '', '|');
$returnData = str_replace('|', '|add_', $returnData);
//Строчка человекопонятных параметров в статус.
$returnText = urldecode(http_build_query($resultText, '', ', '));
$returnText = 'Характеристики Руны: ' . str_replace('=', ': +', $returnText) . '.';
//Ñòðî÷êà ÷åëîâåêîïîíÿòíûõ ïàðàìåòðîâ â ñòàòóñ.
$returnText = urldecode(http_build_query($resultText, '', ', '));
$returnText = 'Õàðàêòåðèñòèêè Ðóíû: ' . str_replace('=', ': +', $returnText) . '.';
return [$returnData, $returnText];
}
/** Выкусывает руну из предмета.
/** Âûêóñûâàåò ðóíó èç ïðåäìåòà.
*
* @param array $itemDataArray
* data предмета
* data ïðåäìåòà
*
* @return array массив, item - предмет, rune - руна из предмета, rune_id - id руны.
* Оба в подготовленном строчном формате для data
* @return array ìàññèâ, item - ïðåäìåò, rune - ðóíà èç ïðåäìåòà, rune_id - id ðóíû.
* Îáà â ïîäãîòîâëåííîì ñòðî÷íîì ôîðìàòå äëÿ data
*/
public static function removeRuneData($itemDataArray)
{
# Ищем есть ли в предмете руна определённого типа.
# Èùåì åñòü ëè â ïðåäìåòå ðóíà îïðåäåë¸ííîãî òèïà.
$runeid = array_search('rune_id', array_flip($itemDataArray));
if (!in_array($runeid, [6001, 6002, 6003])) {
return [];
}
$bonusArgs = 0;
# В зависимости от типа руны считаем количество элементов-бонусов.
#  çàâèñèìîñòè îò òèïà ðóíû ñ÷èòàåì êîëè÷åñòâî ýëåìåíòîâ-áîíóñîâ.
if ($runeid === 6001) {
$bonusArgs = 2;
}