Переезд impstats и additem..
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace User;
|
||||
|
||||
use Core\ConversionHelper;
|
||||
use Core\Db;
|
||||
use User;
|
||||
|
||||
@@ -60,4 +61,89 @@ class ItemsModel
|
||||
[$id, User::start()->info['id'], $coldel]
|
||||
);
|
||||
}
|
||||
|
||||
//вес предметов у юзера
|
||||
public static function inventoryWeightAndItemQuantity(): array
|
||||
{
|
||||
$uid = User::start()->info['id'];
|
||||
$stats = User::start()->stats;
|
||||
|
||||
return [
|
||||
'now' => Db::getValue('select sum(massa) from items_users left join items_main on item_id = items_main.id where uid = ? and (`delete` = 0 or (`delete` = 1000 and inGroup > 0)) and inShop = 0 and inOdet = 0', [$uid]),
|
||||
'max' => 40 + ($stats['os7'] * 10) + $stats['s4'] + $stats['maxves'] + $stats['s1'] * 4,
|
||||
'items' => Db::getValue('select count(*) from items_users where uid = ? and `delete` = 0 and inShop = 0 and inOdet = 0', [$uid]),
|
||||
];
|
||||
}
|
||||
|
||||
public static function addItem($id, $uid, $md = null, $dn = null, $mxiznos = null, $nosudba = null, $plavka = null)
|
||||
{
|
||||
$user = User::start();
|
||||
$rt = -1;
|
||||
$i = Db::getRow('select * from items_main where id = ?', [$id]);
|
||||
if (isset($i['id'])) {
|
||||
$d = Db::getRow('select id, items_id, data from items_main_data where items_id = ?', [$i['id']]);
|
||||
//новая дата
|
||||
$data = $d['data'];
|
||||
if ($i['ts'] > 0 && $nosudba == null) {
|
||||
$ui = Db::getValue('select login from users where id = ?', [$uid]);
|
||||
$data .= '|sudba=' . $ui;
|
||||
}
|
||||
if ($md != null) {
|
||||
$data .= $md;
|
||||
$data = ConversionHelper::dataStringToArray($data); // Если в функции имеются две одинаковых константы SROK?
|
||||
$data = ConversionHelper::arrayToDataString($data);
|
||||
}
|
||||
|
||||
//предмет с настройками из подземелья
|
||||
if ($dn != null && $dn['dn_delete'] > 0) {
|
||||
$i['dn_delete'] = 1;
|
||||
}
|
||||
if ($mxiznos > 0) {
|
||||
$i['iznosMAXi'] = $mxiznos;
|
||||
}
|
||||
if ($user->info['dnow'] > 0) {
|
||||
$room = $user->room['city'];
|
||||
} else {
|
||||
$room = $user->info['city'];
|
||||
}
|
||||
$args = [
|
||||
$i['overTypei'],
|
||||
$i['id'],
|
||||
$uid,
|
||||
$data,
|
||||
$i['iznosMAXi'],
|
||||
$i['geni'],
|
||||
$i['magic_inci'],
|
||||
$room,
|
||||
$i['dn_delete'] ?? 0,
|
||||
];
|
||||
Db::sql(
|
||||
'insert into items_users (overType, item_id, uid, data, iznosMAX, geniration, magic_inc, maidin, lastUPD, time_create, dn_delete) values (?,?,?,?,?,?,?,?,unix_timestamp(),unix_timestamp(),?)',
|
||||
$args
|
||||
);
|
||||
$rt = Db::lastInsertId() ?? 0;
|
||||
if ($rt !== 0) {
|
||||
Db::sql('update items_users set dn_delete = 1 where id = ? and data like ?', [$rt, '%dn_delete=%']);
|
||||
if ($uid == $user->info['id']) {
|
||||
$user->stack($rt);
|
||||
}
|
||||
$ads = '';
|
||||
if ($plavka != null) {
|
||||
$ads = 'Расплавлен предмет : [' . $plavka . ']';
|
||||
}
|
||||
//Записываем в личное дело что предмет получен
|
||||
$user->addDelo(
|
||||
1,
|
||||
$uid,
|
||||
'"AddItems.' . $user->info['city'] . '": Получен предмет "<strong>' . $i['name'] . '</strong>" (x1) [#' . $i['iid'] . ']. ' . $ads,
|
||||
time(),
|
||||
$user->info['city'],
|
||||
'AddItems.' . $user->info['city'],
|
||||
0,
|
||||
0
|
||||
);
|
||||
}
|
||||
}
|
||||
return $rt;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user