$rnd) { $randMeta = $meta; break; } } } return $randMeta; } public static function getRandAttr($randMeta){ $attrArray = array(); $strs = explode('|', $randMeta['attributeRange']); foreach ($strs as $str){ $attrStr = explode(':', $str); if (count($attrStr) == 3){ $rnd = rand($attrStr[1]*100000 , $attrStr[2]*100000) / 100000; array_push($attrArray,array( "attr_id" => $attrStr[0], "val" => $rnd, )); } } return $attrArray; } public static function mergeAttr($attr1 , $attr2){ $mergedAttr = array_merge($attr1, $attr2); $newAttr = array(); foreach ($mergedAttr as $attr){ if (isset($newAttr[$attr['attr_id']])){ $newAttr[$attr['attr_id']]['val'] += $attr['val']; }else{ $newAttr[$attr['attr_id']] = $attr; } } return array_values($newAttr); } public static function getByInvoke($invoke,$quality){ $metaList = array(); foreach (self::getMetaList() as $meta){ $rateNeed = explode('|', $meta['rareNeed']); if ($meta['invoke'] == $invoke && in_array($quality,$rateNeed)){ array_push($metaList,$meta); } } return $metaList; } protected static function getMetaList() { if (!self::$metaList) { self::$metaList = getMetaTable('battleRandAttribute@battleRandAttribute.php'); } return self::$metaList; } protected static $metaList; }