From 8134287775ca381f1b1e5d07918c27d5f022bda1 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 15 Apr 2022 14:58:45 +0800 Subject: [PATCH] 1 --- sql/marketdb.sql | 1 + webapp/models/Nft.php | 31 +++++++++++++++++++++++++++++++ webapp/mt/Attr.php | 24 ++++++++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 webapp/mt/Attr.php diff --git a/sql/marketdb.sql b/sql/marketdb.sql index 2ee15dc3..eb7669b8 100644 --- a/sql/marketdb.sql +++ b/sql/marketdb.sql @@ -125,6 +125,7 @@ CREATE TABLE `t_nft` ( `token_state` int(11) NOT NULL DEFAULT '0' COMMENT '0:正常状态 1:出售中 2:出租中', `game_id` int(11) NOT NULL DEFAULT '0' COMMENT 'game id', `item_id` int(11) NOT NULL DEFAULT '0' COMMENT '道具id', + `rand_attr` mediumblob COMMENT '随机属性', `createtime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间', `modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间', PRIMARY KEY (`idx`), diff --git a/webapp/models/Nft.php b/webapp/models/Nft.php index d2d4f4b2..fd2b6885 100644 --- a/webapp/models/Nft.php +++ b/webapp/models/Nft.php @@ -2,7 +2,10 @@ namespace models; +require_once('mt/Attr.php'); require_once('mt/Item.php'); +require_once('mt/GunLevel.php'); +require_once('mt/GunQuality.php'); use mt; use phpcommon\SqlHelper; @@ -128,6 +131,34 @@ class Nft extends BaseModel { { $nft['info']['level'] = 1; $nft['info']['quality'] = 1; + $randAttr = array(); + if (is_null($nft['rand_attr'])) { + $initQualityMeta = mt\GunQuality::getByQuality(1); + if ($initQualityMeta) { + $randAttr = mt\GunQuality::getRandAttr($initQualityMeta); + } + SqlHelper::update( + myself()->_getMarketMysql(), + 't_nft', + array( + 'token_id' => $nft['token_id'] + ), + array( + 'rand_attr' => json_encode($randAttr) + ) + ); + } + { + foreach($randAttr as &$attr) { + $attrMeta = mt\Attr::get($attr['attr_id']); + if ($attrMeta) { + $attr['name'] = $attrMeta['attr_ename']; + } else { + $attr['name'] = ''; + } + } + } + $nft['info']['attr'] = $randAttr; } break; case Nft::CHIP_TYPE: diff --git a/webapp/mt/Attr.php b/webapp/mt/Attr.php new file mode 100644 index 00000000..4def6e08 --- /dev/null +++ b/webapp/mt/Attr.php @@ -0,0 +1,24 @@ +