kHAT_Volume, 'val' => self::_getCoefficient($meta,$gun_id,'clip_volume_rate') ], [ 'attr_id'=>kHAT_ReloadTime, 'val' => self::_getCoefficient($meta,$gun_id,'reload_time_rate') ], [ 'attr_id'=>kHAT_FireRate, 'val' => self::_getCoefficient($meta,$gun_id,'fire_rate_rate') ], [ 'attr_id'=>kHAT_Atk, 'val' => self::_getCoefficient($meta,$gun_id,'atk_rate') ], [ 'attr_id'=>kHAT_BulletSpeed, 'val' => self::_getCoefficient($meta,$gun_id,'bullet_speed_rate') ], [ 'attr_id'=>kHAT_ShotRange, 'val' => self::_getCoefficient($meta,$gun_id,'range') ], [ 'attr_id'=>kHAT_Critical, 'val' => self::_getCoefficient($meta,$gun_id,'crit_atk_rate') ], [ 'attr_id'=>kHAT_CriDamage, 'val' => self::_getCoefficient($meta,$gun_id,'damage_rate') ], ]; } private static function _getCoefficient($meta,$hero_id,$title){ if ($meta[$title.'2']){ $item = explode('|',$meta[$title.'2']); foreach ($item as $val){ $item_1 = explode(':',$val); if ($item_1[0] == $hero_id){ return $item_1[1]; } } return $meta[$title]; } return $meta[$title]; } public static function getRandAttr($qualityMeta) { $nums = explode(':', $qualityMeta['rand_attrs_num']); $attrs = StrHelper::parseList($qualityMeta['rand_attrs'], array('|', ':')); $num = rand($nums[0], $nums[1]); shuffle($attrs); $result = array(); $i = 0; foreach ($attrs as $item) { if ($i < $num) { array_push($result, array( 'attr_id' => $item[0], 'type' => $item[1], 'val' => rand($item[2], $item[3]) )); } ++$i; } return $result; } protected static function getMetaList() { if (!self::$metaList) { self::$metaList = getMetaTable('gunQuality@gunQuality.php'); foreach (self::$metaList as $key=>$value){ if ($value['id'] == 1){ self::$metaList[$key]['promote_val'] = (1+$value['promote']/100); }else{ self::$metaList[$key]['promote_val'] = (1+$value['promote']/100)*self::$metaList[$key-1]['promote_val']; } } } return self::$metaList; } protected static function mustBeQualityHash() { if (!self::$qualityHash) { self::$qualityHash = array(); foreach (self::getMetaList() as $meta) { self::$qualityHash[$meta['quality']] = $meta; } } } protected static $metaList; protected static $qualityHash; }