2023-12-05 01:01:04 +00:00
< ? php
namespace User ;
use Core\Db ;
/**
2024-01-08 01:33:20 +00:00
* Непонятный кусок функции , который лежал внутри системы подсчёта бонусов к параметрам ,
* при этом никак на это не влияя и ни с чем не взаимодействуя . Надо понять что е г о
* вызывает и выгнать е г о из User\Stats .
2023-12-05 01:01:04 +00:00
*/
class WearedScrolls
{
public static function ScrollsChange ( array & $u ) : void
{
2024-01-08 01:33:20 +00:00
//Замена свитков
2023-12-05 01:01:04 +00:00
if ( $u [ 'autospell' ] == 0 || $u [ 'battle' ] != 0 ) {
return ;
}
2024-01-08 01:33:20 +00:00
//проверяем свитки
2023-12-05 01:01:04 +00:00
$sparr = [];
foreach ( Db :: getRows ( 'select item_id, inOdet from items_users where inOdet between 40 and 50 and uid = ? order by item_id desc' , [ $u [ 'id' ]]) as $scroll ) {
$sparr [] = " { $scroll [ 'item_id' ] } - { $scroll [ 'inOdet' ] } " ;
}
$splink = implode ( ',' , $sparr );
2024-01-08 01:33:20 +00:00
//Запоминаем новый комплект свитков
2023-12-05 01:01:04 +00:00
if ( $u [ 'autospell' ] == 1 ) {
$u [ 'autospell' ] = $splink ;
Db :: sql ( 'update users set autospell = ? where id = ?' , [ $splink , $u [ 'id' ]]);
}
2024-01-08 01:33:20 +00:00
//Выдаем нужный свиток, если он есть в инвентаре
2023-12-05 01:01:04 +00:00
if ( $u [ 'autospell' ] != $splink ) {
$spe1 = explode ( ',' , $splink );
$spe2 = explode ( ',' , $u [ 'autospell' ]);
$spe1g = [];
$spe2g = [];
for ( $i = 0 ; $i <= 20 ; $i ++ ) {
$spe1a = explode ( '-' , $spe1 [ $i ]);
$spe2a = explode ( '-' , $spe2 [ $i ]);
if ( isset ( $spe1a [ 0 ])) {
$spe1g [ $spe1a [ 1 ]] = $spe1a [ 0 ];
}
if ( isset ( $spe2a [ 0 ])) {
$spe2g [ $spe2a [ 1 ]] = $spe2a [ 0 ];
}
}
for ( $i = 40 ; $i <= 50 ; $i ++ ) {
if ( $spe1g [ $i ] == $spe2g [ $i ] || $spe1g [ $i ] != 0 ) {
continue ;
}
Db :: sql ( 'update items_users set inOdet = ? where inOdet = 0 and `delete` = 0 and inTransfer = 0 and inShop = 0 and inGroup = 0 and item_id = ? and uid = ?' ,
[ $i , $spe2g [ $i ], $u [ 'id' ]]);
}
}
}
}