From c6bf86be27de1721581f3708d272a74ea939b78b Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 12 Aug 2024 16:01:36 +0800 Subject: [PATCH] 1 --- .../controller/OutAppNftController.class.php | 55 ++++++++++--------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/webapp/controller/OutAppNftController.class.php b/webapp/controller/OutAppNftController.class.php index 368d88a1..06d886a7 100644 --- a/webapp/controller/OutAppNftController.class.php +++ b/webapp/controller/OutAppNftController.class.php @@ -490,36 +490,39 @@ class OutAppNftController extends BaseController { $info['detail']['chip_slots'] = 0; $info['detail']['combat_ability_1'] = ''; $info['detail']['combat_ability_2'] = ''; - $chipPageDb = ChipPage::find($heroDb['idx']); - if ($heroDb['quality'] > 1 && $chipPageDb){ - $data = emptyReplace(json_decode($chipPageDb['data'], true), array()); - $info['detail']['chip_slots'] = count($data); - foreach ($data as $value) { - $chipDb = Chip::findEx($value['chip_id']); - if (!empty($chipDb)) { - self::mergeAttr($attr, emptyReplace(json_decode($chipDb['rand_attr'], true), array())); - } - } - } - } - - public static function mergeAttr(&$tarAttrs, $srcAttrs) - { - foreach ($srcAttrs as $srcAttr) { - if (!isset($srcAttr['new_attr']) || - !$srcAttr['new_attr']) { + $randAttr = emptyReplace(json_decode($heroDb['rand_attr'], true), array()); + $i = 1; + foreach ($randAttr as $attr) { + if (!isset($attr['new_attr']) || + !$attr['new_attr']) { continue; } - $found = false; - foreach ($tarAttrs as &$tarAttr) { - if ($tarAttr['attr_id'] == $srcAttr['attr_id']) { - $tarAttr['val'] += $srcAttr['val']; - $found = true; + $attrMeta = myself()->_callMtStatic('AttributeList', 'get', $attr['attr_id']); + if ($attrMeta) { + $langMeta = myself()->_callMtStatic('Language', 'get', $attrMeta['language']); + if ($langMeta) { + switch ($attrMeta['dispType']) { + case 1: + { + $info['detail']['combat_ability_' . $i] = $langMeta['en'] . sprintf('%d', $attr['val']); + } break; + case 2: + { + $info['detail']['combat_ability_' . $i] = $langMeta['en'] . sprintf('%.2f', $attr['val']); + } + break; + case 3: + { + $info['detail']['combat_ability_' . $i] = $langMeta['en'] . sprintf('%.4f', $attr['val']); + } + break; + } + ++$i; + if ($i >= 2) { + break; + } } - }//end for tarAttrs - if (!$found) { - array_push($tarAttrs, $srcAttr); } } }