WIP: разгрузка User:class от сторонних методов.
This commit is contained in:
193
_incl_data/class/Clan/ItemStorage.php
Normal file
193
_incl_data/class/Clan/ItemStorage.php
Normal file
@@ -0,0 +1,193 @@
|
||||
<?php
|
||||
|
||||
namespace Clan;
|
||||
|
||||
use Core\ConversionHelper;
|
||||
use Core\Db;
|
||||
use User;
|
||||
use User\ItemsModel;
|
||||
|
||||
class ItemStorage
|
||||
{
|
||||
private string $error = '';
|
||||
|
||||
private function isGoodForStorage(array $item, $userClanId): bool
|
||||
{
|
||||
if (empty($item['inslot']) || !empty($item['gift'])) {
|
||||
$this->error = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.';
|
||||
}
|
||||
$idata = ConversionHelper::dataStringToArray($item['data']);
|
||||
if (
|
||||
!empty($idata['frompisher']) ||
|
||||
!empty($idata['sudba']) ||
|
||||
!empty($idata['icos']) ||
|
||||
!empty($idata['fromlaba'])
|
||||
) {
|
||||
$this->error = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.';
|
||||
}
|
||||
if (!empty($idata['toclan']) && explode('#', $idata['toclan'])[0] == $userClanId) {
|
||||
$this->error = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.';
|
||||
}
|
||||
return empty($this->error);
|
||||
}
|
||||
|
||||
public function put(int $itemId, int $clanId): string
|
||||
{
|
||||
$user = User::start()->info;
|
||||
$item = ItemsModel::getOwnedItemById($itemId, $user['id']);
|
||||
$clanName = Db::getValue('select name from clan where id = ?', [$clanId]) ?? '';
|
||||
if (empty($clanName)) {
|
||||
return '<27><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.';
|
||||
}
|
||||
if (!$this->isGoodForStorage($item, $user['clan'])) {
|
||||
return $this->error;
|
||||
}
|
||||
$col = User::start()->itemsX(($itemId));
|
||||
$idata = ConversionHelper::dataStringToArray($item['data']);
|
||||
if (!isset($idata['toclan'])) {
|
||||
$idata['toclan'] = $user['clan'] . '#' . $user['id'];
|
||||
$item['data'] = ConversionHelper::arrayToDataString($idata);
|
||||
User::start()->addDelo(
|
||||
2,
|
||||
$user['id'],
|
||||
'"System.transfer.MONEY": <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "' . $item['name'] . '" (#id : "' . $itemId . '") (x' . $col . ') <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> "' . $clanName . '" (' . $clanId . ').',
|
||||
time(),
|
||||
$user['city'],
|
||||
'System.transfer.clan',
|
||||
0,
|
||||
0
|
||||
);
|
||||
$sendType = 4;
|
||||
} else {
|
||||
$sendType = 3;
|
||||
}
|
||||
Db::sql(
|
||||
'insert into clan_operations (clan, time, type, text, val, uid) values (?,unix_timestamp(),?,?,?,?)',
|
||||
[$clanId, $sendType, $user['login'], $item['name'] . ("x$col <20><>: [$itemId]"), $user['id']]
|
||||
);
|
||||
Db::sql(
|
||||
'update items_users set lastUPD = unix_timestamp(), uid = ?, data = ? where id = ?',
|
||||
['-21' . $user['clan'], $item['data'], $itemId]
|
||||
);
|
||||
|
||||
return '<27><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "' . $item['name'] . '" <20><><EFBFBD><EFBFBD><EFBFBD>.';
|
||||
}
|
||||
|
||||
|
||||
public function ungive_itm_cl($id, $user, $cl): string
|
||||
{
|
||||
$itm_ = mysql_fetch_array(
|
||||
mysql_query(
|
||||
'SELECT `iu`.*, `im`.* FROM `items_users` AS `iu` LEFT JOIN `items_main` AS `im` ON `iu`.`item_id` = `im`.`id` WHERE `iu`.`uid` >= 0 AND `iu`.`delete` = 0 AND `iu`.`id` = "' . $id . '" LIMIT 1'
|
||||
)
|
||||
);
|
||||
$res = mysql_fetch_array(mysql_query('SELECT * FROM `clan` WHERE `id` = "' . $cl . '" LIMIT 1'));
|
||||
$user_itm = mysql_fetch_array(
|
||||
mysql_query('SELECT `id`,`bot`,`clone` FROM `stats` WHERE `id` = "' . $itm_['uid'] . '" LIMIT 1')
|
||||
);
|
||||
if ($user_itm['bot'] > 0 || $user_itm['clone'] > 0 || !isset($user_itm['id'])) {
|
||||
$r = '<font color="#FF0000"><strong><3E><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD></strong></font><br />';
|
||||
} elseif (isset($itm_['id'])) {
|
||||
|
||||
if ($itm_['inOdet'] != 0) {
|
||||
$o = ', `inOdet` = 0';
|
||||
} else {
|
||||
$o = '';
|
||||
}
|
||||
$r = '<font color="#FF0000"><strong><3E><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "' . $itm_['name'] . '"</strong></font><br />';
|
||||
$col = $this->itemsX(((int)$id));
|
||||
mysql_query(
|
||||
'INSERT INTO `clan_operations` (`clan`, `time`, `type`, `text`, `val`, `uid`) VALUES ("' . $res['id'] . '", "' . time(
|
||||
) . '", "6", "' . $user['login'] . '", "' . $itm_['name'] . ' (x' . $col . ') <20><> : [' . $id . '] | <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : [' . $itm_['uid'] . ']", "' . $user['id'] . '")'
|
||||
);
|
||||
mysql_query(
|
||||
'UPDATE `items_users` SET `lastUPD` = "' . time(
|
||||
) . '", `uid` = "-21' . $res['id'] . '" ' . $o . ' WHERE `id` = "' . $id . '" LIMIT 1'
|
||||
);
|
||||
|
||||
} else {
|
||||
$r = '<font color="#FF0000"><strong><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.</strong></font><br />';
|
||||
}
|
||||
return $r;
|
||||
}
|
||||
|
||||
public function take_itm_cl($id, $user, $cl): string
|
||||
{
|
||||
$itm_ = mysql_fetch_array(
|
||||
mysql_query(
|
||||
'SELECT `iu`.*, `im`.* FROM `items_users` AS `iu` LEFT JOIN `items_main` AS `im` ON `iu`.`item_id` = `im`.`id` WHERE `iu`.`uid` = "-21' . $user['clan'] . '" AND `iu`.`delete` = 0 AND `iu`.`id` = "' . $id . '" LIMIT 1'
|
||||
)
|
||||
);
|
||||
$res = mysql_fetch_array(mysql_query('SELECT * FROM `clan` WHERE `id` = "' . $cl . '" LIMIT 1'));
|
||||
if (isset($itm_['id'])) {
|
||||
$po = ConversionHelper::dataStringToArray($itm_['data']);
|
||||
if (isset($po['toclan'])) {
|
||||
$cls = explode('#', $po['toclan']);
|
||||
$cls = $cls[1];
|
||||
}
|
||||
|
||||
$col = $this->itemsX(((int)$id));
|
||||
mysql_query(
|
||||
'INSERT INTO `clan_operations` (`clan`, `time`, `type`, `text`, `val`, `uid`) VALUES ("' . $res['id'] . '", "' . time(
|
||||
) . '", "5", "' . $user['login'] . '", "' . $itm_['name'] . ' (x' . $col . ') <20><> : [' . $id . '] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : [' . $cls . ']", "' . $user['id'] . '")'
|
||||
);
|
||||
mysql_query(
|
||||
'UPDATE `items_users` SET `lastUPD` = "' . time(
|
||||
) . '", `uid` = "' . $user['id'] . '" WHERE `id` = "' . $id . '" LIMIT 1'
|
||||
);
|
||||
$r = '<font color="#FF0000"><strong><3E><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "' . $itm_['name'] . '" <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></strong></font><br />';
|
||||
|
||||
} else {
|
||||
$r = '<font color="#FF0000"><strong><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.</strong></font><br />' . $id;
|
||||
}
|
||||
return $r;
|
||||
}
|
||||
|
||||
public function rem_itm_cl($user, $cl, $type)
|
||||
{
|
||||
$itms = mysql_query(
|
||||
'SELECT * FROM `items_users` WHERE (`uid` = "-21' . $user['clan'] . '" OR `data` LIKE "%toclan=' . $user['clan'] . '#%")'
|
||||
);
|
||||
while ($pl = mysql_fetch_array($itms)) {
|
||||
$po = ConversionHelper::dataStringToArray($pl['data']);
|
||||
if (isset($po['toclan'])) {
|
||||
$cls = explode('#', $po['toclan']);
|
||||
$cls = $cls[1];
|
||||
}
|
||||
if ($cls == $user['id']) {
|
||||
if ($pl['uid'] != $user['id']) {
|
||||
if ($pl['inOdet'] != 0) {
|
||||
mysql_query('UPDATE `items_users` SET `inOdet` = 0 WHERE `id` = "' . $pl['id'] . '"');
|
||||
}
|
||||
}
|
||||
unset($po['toclan']);
|
||||
$pl['data'] = ConversionHelper::arrayToDataString($po);
|
||||
$col = $this->itemsX(((int)$pl['id']));
|
||||
$it_n = mysql_fetch_array(
|
||||
mysql_query('SELECT `name` FROM `items_main` WHERE `id` = "' . $pl['item_id'] . '"')
|
||||
);
|
||||
mysql_query(
|
||||
'UPDATE `items_users` SET `lastUPD` = "' . time(
|
||||
) . '", `uid` = "' . $user['id'] . '", `data` = "' . $pl['data'] . '" WHERE `id` = "' . $pl['id'] . '"'
|
||||
);
|
||||
mysql_query(
|
||||
'INSERT INTO `clan_operations` (`clan`, `time`, `type`, `text`, `val`, `uid`) VALUES ("' . $res['id'] . '", "' . time(
|
||||
) . '", "' . $type . '", "' . $user['login'] . '", "' . $it_n['name'] . ' (x' . $col . ') <20><> : [' . $pl['id'] . ']", "' . $user['id'] . '")'
|
||||
);
|
||||
} elseif ($pl['uid'] == $user['id']) {
|
||||
$col = $this->itemsX(((int)$pl['id']));
|
||||
$it_n = mysql_fetch_array(
|
||||
mysql_query('SELECT `name` FROM `items_main` WHERE `id` = "' . $pl['item_id'] . '"')
|
||||
);
|
||||
mysql_query(
|
||||
'UPDATE `items_users` SET `lastUPD` = "' . time(
|
||||
) . '", `uid` = "-21' . $user['clan'] . '" WHERE `id` = "' . $pl['id'] . '"'
|
||||
);
|
||||
mysql_query(
|
||||
'INSERT INTO `clan_operations` (`clan`, `time`, `type`, `text`, `val`, `uid`) VALUES ("' . $res['id'] . '", "' . time(
|
||||
) . '", "9", "' . $user['login'] . '", "' . $it_n['name'] . ' (x' . $col . ') <20><> : [' . $pl['id'] . ']", "' . $user['id'] . '")'
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
38
_incl_data/class/DTO/KnowledgeTempleItem.php
Normal file
38
_incl_data/class/DTO/KnowledgeTempleItem.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace DTO;
|
||||
|
||||
use Core\ConversionHelper;
|
||||
use ItemModel;
|
||||
|
||||
class KnowledgeTempleItem
|
||||
{
|
||||
public int $id;
|
||||
public int $type;
|
||||
public string $name;
|
||||
public int $level;
|
||||
|
||||
private int $rowId;
|
||||
/**
|
||||
* @param array $item
|
||||
*/
|
||||
public function __construct(array $item)
|
||||
{
|
||||
$this->rowId = $item['id'];
|
||||
$this->id = intval($item['item_id']);
|
||||
$this->type = intval($item['type']);
|
||||
$this->name = $item['name'];
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
$itemData = array_merge(
|
||||
ConversionHelper::dataStringToArray(ItemModel::getItemData($this->id)),
|
||||
ConversionHelper::dataStringToArray($item['data']),
|
||||
);
|
||||
$this->level = intval($itemData['tr_lvl']);
|
||||
}
|
||||
|
||||
public function exists(): bool
|
||||
{
|
||||
return !empty($this->rowId);
|
||||
}
|
||||
}
|
||||
14
_incl_data/class/ItemModel.php
Normal file
14
_incl_data/class/ItemModel.php
Normal file
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
use Core\Db;
|
||||
|
||||
/** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>! */
|
||||
class ItemModel
|
||||
{
|
||||
public static function getItemData(int $id): string
|
||||
{
|
||||
return Db::getValue('select data from items_main_data where items_id = ?', [$id]);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
58
_incl_data/class/Location/KnowledgeTemple.php
Normal file
58
_incl_data/class/Location/KnowledgeTemple.php
Normal file
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
namespace Location;
|
||||
|
||||
use Core\Db;
|
||||
use DTO\KnowledgeTempleItem;
|
||||
use User;
|
||||
|
||||
class KnowledgeTemple
|
||||
{
|
||||
private string $error = '';
|
||||
|
||||
/** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param int $id id <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @return string <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
public function smeltItem(int $id): string
|
||||
{
|
||||
$item = new KnowledgeTempleItem(User\ItemsModel::getOwnedItemById(User::start()->info['id'], $id));
|
||||
if (!$this->isSmeltable($item)) {
|
||||
return $this->error;
|
||||
}
|
||||
User\ItemsModel::delete($id);
|
||||
return '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "' . $item->name . '"!' . self::addReputation(1);
|
||||
}
|
||||
|
||||
private function isSmeltable(KnowledgeTempleItem $item): bool
|
||||
{
|
||||
$reputation = User::start()->rep['rep1'];
|
||||
if (!$item->exists()) {
|
||||
$this->error = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.';
|
||||
} elseif ($item->level < 4 && $item->id != 1035) {
|
||||
$this->error = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 4-<2D><> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
||||
} elseif (
|
||||
!in_array($item->type, [1, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 18, 19, 20, 21, 22]) &&
|
||||
$item->id != 1035
|
||||
) {
|
||||
$this->error = '<27><><EFBFBD><EFBFBD> <20><><EFBFBD>, <20> <20><> <20><><EFBFBD><EFBFBD>! <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!';
|
||||
} elseif ($item->level >= 7 && $reputation < 0) {
|
||||
$this->error = '<27><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 7-<2D><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>';
|
||||
} elseif ($item->level >= 9 && $reputation < 1000) {
|
||||
$this->error = '<27><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 9-<2D><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>';
|
||||
} elseif ($item->level >= 10 && $reputation < 10000) {
|
||||
$this->error = '<27><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 10-<2D><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>';
|
||||
}
|
||||
return empty($this->error);
|
||||
}
|
||||
|
||||
public static function addReputation(int $value): string
|
||||
{
|
||||
if ($value < 1) {
|
||||
trigger_error(self::class . '::addReputation - $value can not be below zero.');
|
||||
}
|
||||
Db::sql('update rep set rep1 = rep1 + ? where id = ?', [$value, User::start()->info['id']]);
|
||||
User::start()->rep['rep1'] += $value;
|
||||
return "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: +$value <20><>.";
|
||||
}
|
||||
}
|
||||
26
_incl_data/class/Status.php
Normal file
26
_incl_data/class/Status.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
class Status
|
||||
{
|
||||
private static array $messages = [];
|
||||
|
||||
public static function set(string $message)
|
||||
{
|
||||
self::$messages[] = $message;
|
||||
}
|
||||
|
||||
public static function get(): string
|
||||
{
|
||||
return implode('<br>', self::$messages);
|
||||
}
|
||||
|
||||
public static function print()
|
||||
{
|
||||
echo self::get();
|
||||
}
|
||||
|
||||
public static function exists(): bool
|
||||
{
|
||||
return !empty(self::$messages);
|
||||
}
|
||||
}
|
||||
@@ -935,62 +935,6 @@ class User
|
||||
return $r;
|
||||
}
|
||||
|
||||
//Переплавка вещей \ рун
|
||||
public function plavka($id, $type): string
|
||||
{
|
||||
$e = '';
|
||||
$rn = 1;
|
||||
$pl = mysql_fetch_array(
|
||||
mysql_query(
|
||||
'SELECT
|
||||
`im`.`id`,`im`.`name`,`im`.`img`,`im`.`type`,`im`.`inslot`,`im`.`2h`,`im`.`2too`,`im`.`iznosMAXi`,`im`.`inRazdel`,`im`.`price1`,`im`.`price2`,`im`.`pricerep`,`im`.`magic_chance`,`im`.`info`,`im`.`massa`,`im`.`level`,`im`.`magic_inci`,`im`.`overTypei`,`im`.`group`,`im`.`group_max`,`im`.`geni`,`im`.`ts`,`im`.`srok`,`im`.`class`,`im`.`class_point`,`im`.`anti_class`,`im`.`anti_class_point`,`im`.`max_text`,`im`.`useInBattle`,`im`.`lbtl`,`im`.`lvl_itm`,`im`.`lvl_exp`,`im`.`lvl_aexp`,
|
||||
`iu`.`id`,`iu`.`item_id`,`iu`.`1price`,`iu`.`2price`,`iu`.`uid`,`iu`.`use_text`,`iu`.`data`,`iu`.`inOdet`,`iu`.`inShop`,`iu`.`delete`,`iu`.`iznosNOW`,`iu`.`iznosMAX`,`iu`.`gift`,`iu`.`gtxt1`,`iu`.`gtxt2`,`iu`.`kolvo`,`iu`.`geniration`,`iu`.`magic_inc`,`iu`.`maidin`,`iu`.`lastUPD`,`iu`.`timeOver`,`iu`.`overType`,`iu`.`secret_id`,`iu`.`time_create`,`iu`.`time_sleep`,`iu`.`inGroup`,`iu`.`dn_delete`,`iu`.`inTransfer`,`iu`.`post_delivery`,`iu`.`lbtl_`,`iu`.`bexp`,`iu`.`so`,`iu`.`blvl`
|
||||
FROM `items_users` AS `iu` LEFT JOIN `items_main` AS `im` ON (`im`.`id` = `iu`.`item_id`) WHERE `iu`.`uid`="' . $this->info['id'] . '" AND `iu`.`delete`="0" AND `iu`.`inOdet`="0" AND `iu`.`inShop`="0" AND `iu`.`id` = "' . ((int)$id) . '" LIMIT 1;'
|
||||
)
|
||||
);
|
||||
$d = mysql_fetch_array(
|
||||
mysql_query(
|
||||
'SELECT `id`,`items_id`,`data` FROM `items_main_data` WHERE `items_id` = "' . $pl['item_id'] . '" LIMIT 1'
|
||||
)
|
||||
);
|
||||
$po = ConversionHelper::dataStringToArray($d['data']);
|
||||
if ($pl['level'] == 0) {
|
||||
$pl['level'] = 0 + $po['tr_lvl'];
|
||||
}
|
||||
|
||||
|
||||
if ($po['tr_lvl'] < 4 && $pl['item_id'] != 1035) {
|
||||
$e = 'Предмет должен быть 4-го и выше уровня';
|
||||
} elseif ($pl['type'] != 1 && $pl['type'] != 3 && $pl['type'] != 5 && $pl['type'] != 6 && $pl['type'] != 8 && $pl['type'] != 9 && $pl['type'] != 10 && $pl['type'] != 11 && $pl['type'] != 12 && $pl['type'] != 14 && $pl['type'] != 15 && $pl['type'] != 18 && $pl['type'] != 19 && $pl['type'] != 20 && $pl['type'] != 21 && $pl['type'] != 22 && $pl['type'] != 13 && $pl['item_id'] != 1035) {
|
||||
$e = 'Хрен вам, а не руны! Куда кидаешь предмет? Не подходит он! Приходи как будет что-то стоющее!';
|
||||
} elseif ($po['tr_lvl'] >= 7 && $this->rep['rep1'] < 0)//100
|
||||
{
|
||||
$e = 'Для растворения предметов 7-го и старше уровня требуется знак Храма Знаний первого круга';
|
||||
} elseif ($po['tr_lvl'] >= 9 && $this->rep['rep1'] < 1000) {
|
||||
$e = 'Для растворения предметов 9-го и старше уровня требуется знак Храма Знаний второго круга';
|
||||
} elseif ($po['tr_lvl'] >= 10 && $this->rep['rep1'] < 10000) {
|
||||
$e = 'Для растворения предметов 10-го и старше уровня требуется знак Храма Знаний третьего круга';
|
||||
} elseif ($rn > 0) {
|
||||
if (isset($pl['id'], $d['id'])) {
|
||||
$pl['rep'] = 1;
|
||||
//вероятность выпадения руны
|
||||
$e = 'Удачно растворен предмет "' . $pl['name'] . '"! Получено репутации: +' . $pl['rep'] . ' ед.';
|
||||
mysql_query(
|
||||
'UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $pl['id'] . '" LIMIT 1'
|
||||
);
|
||||
$this->rep['rep1'] += $pl['rep'];
|
||||
mysql_query(
|
||||
'UPDATE `rep` SET `rep1` = "' . $this->rep['rep1'] . '" WHERE `id` = "' . $this->info['id'] . '" LIMIT 1'
|
||||
);
|
||||
} else {
|
||||
$e = 'Предмет не найден, либо не подходит ' . $pl['item_id'] . '...';
|
||||
}
|
||||
} else {
|
||||
$e = 'Не удалось переплавить, рецепты рун были потеряны ...';
|
||||
}
|
||||
return $e;
|
||||
}
|
||||
|
||||
//Выводим вещи котоыре нужно отремонтировать
|
||||
public function info_remont(): string
|
||||
{
|
||||
@@ -1018,7 +962,7 @@ FROM `items_users` AS `iu` LEFT JOIN `items_main` AS `im` ON (`im`.`id` = `iu`.`
|
||||
}
|
||||
|
||||
//Расчет урона от оружия
|
||||
public function weaponAtc($item, $st, $x)
|
||||
private function weaponAtc($item, $st, $x)
|
||||
{
|
||||
$tp = 0;
|
||||
if (isset($item['id'])) {
|
||||
@@ -7397,6 +7341,7 @@ FROM `items_users` AS `iu` LEFT JOIN `items_main` AS `im` ON (`im`.`id` = `iu`.`
|
||||
|
||||
public function itemsX($id, $uid = null, $item_id = null)
|
||||
{
|
||||
|
||||
$item = mysql_fetch_array(
|
||||
mysql_query(
|
||||
'SELECT `iu`.`id`,`iu`.`item_id`,`iu`.`uid`,`iu`.`inGroup`,`iu`.`inShop` FROM `items_users` AS `iu` WHERE `iu`.`delete` = "0" AND `iu`.`id` = "' . ((int)$id) . '" LIMIT 1 '
|
||||
@@ -11433,72 +11378,6 @@ LIMIT 1'
|
||||
return [$sh, $sm, 'hpNow' => $st['hpNow'], 'mpNow' => $st['mpNow']];
|
||||
}
|
||||
|
||||
public function set_cl_item($id, $user, $cl): string
|
||||
{
|
||||
$item_ = mysql_fetch_array(
|
||||
mysql_query(
|
||||
'SELECT `iu`.*, `im`.* FROM `items_users` AS `iu` LEFT JOIN `items_main` AS `im` ON `iu`.`item_id` = `im`.`id` WHERE `iu`.`uid` = "' . $user['id'] . '" AND `iu`.`delete` = 0 AND `iu`.`inOdet` = 0 AND `iu`.`inShop` = 0 AND `im`.`inslot` > 0 AND `iu`.`gift` = "" AND `iu`.`data` NOT LIKE "%frompisher=%" AND `iu`.`id` = "' . $id . '" LIMIT 1'
|
||||
)
|
||||
);
|
||||
$res = mysql_fetch_array(mysql_query('SELECT * FROM `clan` WHERE `id` = "' . $cl . '" LIMIT 1'));
|
||||
if (isset($item_['id'])) {
|
||||
$po = ConversionHelper::dataStringToArray($item_['data']);
|
||||
if (isset($po['toclan'])) {
|
||||
$po['toclan1'] = explode('#', $po['toclan']);
|
||||
$po['toclan1'] = $po['toclan1'][0];
|
||||
}
|
||||
if (isset($po['sudba']) && $po['sudba'] != '0') {
|
||||
$r = '<font color="#FF0000"><strong>Предмет связан с вами судьбой</strong></font><br>';
|
||||
} elseif (isset($po['toclan']) && $po['toclan1'] != $user['clan']) {
|
||||
$r = '<font color="#FF0000"><strong>Предмет и так пренадлежит клану...</strong></font><br>';
|
||||
} elseif ($user['inTurnir'] > 0 || $user['inTurnirnew'] > 0) {
|
||||
$r = '<font color="#FF0000"><strong>Во время участия в турнире запрещено использовать клановое хранилище.</strong></font><br>';
|
||||
} else {
|
||||
if ((isset($po['sudba']) && $po['sudba'] != '0') || isset($po['icos']) || isset($po['frompisher']) || isset($po['fromlaba']) || ($item_['gift'] != '' && $item_['gift'] != 0)) {
|
||||
$r = 'Не удалось';
|
||||
} elseif (!isset($po['toclan'])) {
|
||||
$po['toclan'] = $user['clan'] . '#' . $user['id'];
|
||||
$item_['data'] = ConversionHelper::arrayToDataString($po);
|
||||
if (mysql_query(
|
||||
'UPDATE `items_users` SET `lastUPD` = "' . time(
|
||||
) . '", `uid` = "-21' . $user['clan'] . '", `data` = "' . $item_['data'] . '" WHERE `id` = "' . $id . '" LIMIT 1'
|
||||
)) {
|
||||
$r = '<font color="#FF0000"><strong>Вы успешно пожертвовали предмет "' . $item_['name'] . '" клану</strong></font><br />';
|
||||
$col = $this->itemsX(((int)$id));
|
||||
$this->addDelo(
|
||||
2, $user['id'],
|
||||
'"<font color="green">System.transfer.MONEY</font>": Предмет "' . $item_['name'] . '" (#id : "' . $id . '") (x' . $col . ') был пожертвован клану "' . $res['name'] . '" (' . $res['id'] . ').',
|
||||
time(), $user['city'], 'System.transfer.clan', 0, 0
|
||||
);
|
||||
mysql_query(
|
||||
'INSERT INTO `clan_operations` (`clan`, `time`, `type`, `text`, `val`, `uid`) VALUES ("' . $res['id'] . '", "' . time(
|
||||
) . '", "4", "' . $user['login'] . '", "' . $item_['name'] . ' (x' . $col . ') Ид : [' . $id . ']", "' . $user['id'] . '")'
|
||||
);
|
||||
} else {
|
||||
$r = '<font color="#FF0000"><strong>Не удалось...</strong></font><br>';
|
||||
}
|
||||
} else {
|
||||
if (mysql_query(
|
||||
'UPDATE `items_users` SET `lastUPD` = "' . time(
|
||||
) . '", `uid` = "-21' . $user['clan'] . '" WHERE `id` = "' . $id . '" LIMIT 1'
|
||||
)) {
|
||||
$col = $this->itemsX(((int)$id));
|
||||
mysql_query(
|
||||
'INSERT INTO `clan_operations` (`clan`, `time`, `type`, `text`, `val`, `uid`) VALUES ("' . $res['id'] . '", "' . time(
|
||||
) . '", "3", "' . $user['login'] . '", "' . $item_['name'] . '" (x' . $col . ') Ид : [' . $id . '], "' . $user['id'] . '")'
|
||||
);
|
||||
$r = '<font color="#FF0000"><strong>Вы успешно вернули предмет "' . $item_['name'] . '" в хранилище клана</strong></font><br />';
|
||||
} else {
|
||||
$r = '<font color="#FF0000"><strong>Не удалось...</strong></font><br>';
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$r = '<font color="#FF0000"><strong>Предмет не найден.</strong></font><br>';
|
||||
}
|
||||
return $r;
|
||||
}
|
||||
|
||||
|
||||
public function ungive_itm_cl($id, $user, $cl): string
|
||||
{
|
||||
|
||||
@@ -146,4 +146,20 @@ class ItemsModel
|
||||
}
|
||||
return $rt;
|
||||
}
|
||||
|
||||
/** Выбор предмета в инвентаре.
|
||||
* @param int $itemId
|
||||
* @param int $ownerId
|
||||
* @return array
|
||||
*/
|
||||
public static function getOwnedItemById(int $itemId, int $ownerId): array
|
||||
{
|
||||
return Db::getRow('select * from items_users left join items_main on item_id = items_main.id where uid = ? and items_users.id = ? and `delete` = 0 and inOdet = 0 and inShop = 0', [$ownerId, $itemId]);
|
||||
}
|
||||
|
||||
public static function delete(int $id)
|
||||
{
|
||||
Db::sql('update items_users set `delete` = unix_timestamp() where id = ?', [$id]);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -4,9 +4,8 @@ if(!defined('GAME'))
|
||||
die();
|
||||
}
|
||||
|
||||
if( $itm['id'] > 0 ) {
|
||||
$u->deleteItem($itm['id']);
|
||||
mysql_query('update `rep` set `rep1` = `rep1` + 100 WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
|
||||
$u->error = 'Вы повысили репутацию Храма Знаний на +100 ед.';
|
||||
}
|
||||
?>
|
||||
if($itm['id'] <= 0) {
|
||||
return;
|
||||
}
|
||||
$u->deleteItem($itm['id']);
|
||||
$u->error = \Location\KnowledgeTemple::addReputation(100);
|
||||
|
||||
Reference in New Issue
Block a user