0 ? $tmpStrs[0] : ''; $this->nftInfo(explode('/', $requestUri)); } } } /* https://game2006api.cebggame.com/api/nft/$netId/$nftType/$tokenId $netId: 链id(网络id) $nftType: 目前就hero $tokenId:tokenid */ private function nftInfo($path) { if (count($path) < 5) { return; } $netId = $path[3]; $nftType = $path[4]; $tokenId = $path[5]; $heroDb = Hero::findByTokenId2($tokenId); if (!$heroDb){ echo json_encode(array( "name" => "", "description" => "", "image" => "", "attributes" => array(), )); die; } $heroMeta = \mt\Hero::get($heroDb['hero_id']); $NftMeta = \mt\NftDesc::getByItemId($heroDb['hero_id']); //https://www.cebg.games/res/nfts/30100.png $info = array( "name" => $heroMeta['name'], "description" => $NftMeta['desc'], "image" => "https://www.cebg.games/res/nfts/".$heroDb['hero_id'].".png", "attributes" => array(), ); array_push($info['attributes'],array( "trait_type" => "level", "value" => intval($heroDb['hero_lv']), "max_value" => 15, )); $randAttr = emptyReplace(json_decode($heroDb['rand_attr'], true), array()); foreach ($randAttr as $attr){ switch ($attr['quality']){ case 1 : $quality = "D";break; case 2 : $quality = "C";break; case 3 : $quality = "B";break; case 4 : $quality = "A";break; case 5 : $quality = "S";break; default : $quality = ""; } switch ($attr['attr_id']){ case kHAT_Hp : { array_push($info['attributes'],array( "trait_type" => "Hp", // "value" => intval($attr['val']), "value" => $quality, )); } break; case kHAT_Atk : { array_push($info['attributes'],array( "trait_type" => "Atk", // "value" => intval($attr['val']), "value" => $quality, )); } break; case kHAT_Def : { array_push($info['attributes'],array( "trait_type" => "Def", // "value" => intval($attr['val']), "value" => $quality, )); } } } echo json_encode($info); } }