/** * считает кол-во очков у ивента * @param $event DotaEvent */ public static function calculateScores($event) { $params = DotaParams::loadParams(); $hero_ids = []; foreach ($event->dotaEventHeroStat as $hero) { $hero_ids[] = $hero->hero_id; } $hero_roles = DotaHero::getHeroesRolesList($hero_ids); //echo'<pre>';print_r($hero_roles);echo'</pre>';//die; //echo'<pre>';print_r($event->dotaEventHeroStat);echo'</pre>';die; foreach ($event->dotaEventHeroStat as $hero) { $level = $hero->level + $hero->level_corr; $kills = $hero->kills + $hero->kills_corr; $deaths = $hero->deaths + $hero->deaths_corr; $assists = $hero->assists + $hero->assists_corr; $gold_per_min = $hero->gold_per_min + $hero->gold_per_min_corr; $xp_per_min = $hero->xp_per_min + $hero->xp_per_min_corr; $bans = $hero->bans + $hero->bans_corr; $picks = $hero->picks + $hero->picks_corr; $scores = $level * $hero_roles[$hero->hero_id] + $kills * $params['ratio_kills'] + $deaths * $params['ratio_deaths'] + $assists * $params['ratio_assists'] + $gold_per_min * $params['ratio_gold_per_min'] + $xp_per_min * $params['ratio_xp_per_min'] + $bans * $params['scores_per_ban'] + $picks * $params['scores_per_pick']; //$scores = ($kills * $params['ratio_kills']) + ($deaths * $params['ratio_deaths']) + ($assists * $params['ratio_assists']) + ($gold_per_min * $params['ratio_gold_per_min']) + ($xp_per_min * $params['ratio_xp_per_min']); $hero->scores = $scores; $hero->save(); } }