This commit is contained in:
aozhiwei 2024-08-12 16:01:36 +08:00
parent 25137de75f
commit c6bf86be27

View File

@ -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);
}
}
}