0) { array_push( $newAttrs, array( 'attr_id' => $meta['attr_id'], 'type' => $meta['type'], 'val' => $val, )); } } } } AttrHelper::mergeAttr($dbAttrs, $newAttrs); return true; } protected static function getAttrValue($meta) { $strs = explode('|', $meta['attr_weight']); $totalSpace = 0; foreach ($strs as $tmpStr) { $strs2 = explode(':', $tmpStr); if (count($strs2) == 2) { $totalSpace += $strs2[1]; } } if ($totalSpace > 0) { $randSpace = rand(0, $totalSpace); $currSpace = 0; foreach ($strs as $tmpStr) { $strs2 = explode(':', $tmpStr); if (count($strs2) == 2) { $currSpace += $strs2[1]; } if ($randSpace <= $currSpace) { return $strs2[0]; } } } return 0; } protected static function getMetaList() { if (!self::$metaList) { self::$metaList = getMetaTable('heroLevelAttr@heroLevelAttr.php'); } return self::$metaList; } protected static $metaList; }