コード例 #1
0
ファイル: ConsoleServer.php プロジェクト: sdgdsffdsfff/gpx
 public function action_buchang_worldboss()
 {
     $section = $this->get_param('sec');
     $today = $this->get_param('date');
     //指定日期,格式:1030,代表十月30号
     if (empty($section)) {
         $section_list = array_keys(getApp()->getSectionConfig());
     } else {
         $section_list = (array) $section;
     }
     if (empty($section_list)) {
         throw new Exception('section error');
         return;
     }
     $now = getApp()->now;
     $redis = DbConfig::getRedis('worldboss');
     $redis_set = DbConfig::getRedis('cache');
     if (empty($today)) {
         $today = date('md', $now);
     }
     if (P_PLATFORM == "kunlun" || P_PLATFORM == 'qqandroid') {
         echo "昆仑平台暂无补偿";
         return;
     }
     $world_boss_conf = PL_Config_Numeric::get('worldboss');
     $worldboss_zhidian_offset = PL_Config_Numeric::get('setting', 'worldboss_zhidian_level_offset');
     echo "================[ 补偿日期 : {$today} ]===============\n";
     foreach ($section_list as $section) {
         echo "===== 分区: {$section} =====\n";
         foreach ($world_boss_conf as $tag => $conf) {
             echo "===== boss: {$tag} =====\n";
             $activityConfig = getApp()->getactivityconfig("act_worldboss_{$tag}");
             if ($activityConfig) {
                 if ($now < $activityConfig['start_t'] || $now > $activityConfig['end_t']) {
                     echo "[{$tag}] 不在活动时间内\n";
                     continue;
                 }
             }
             $boss_key = "worldboss_boss_{$tag}_{$section}_{$today}";
             $boss_info = $redis->hgetall($boss_key);
             if ($boss_info['buchang_reward_time']) {
                 $msg = "补偿时间 : " . date('Y-m-d H:i:s', $boss_info['buchang_reward_time']) . "\n";
                 echo $msg . "\n";
                 continue;
             }
             $rank_key = "worldboss_rank_{$tag}_{$section}_{$today}";
             $boss_name = model_Translate::getTransConfig($conf['bossname']);
             $rank_list = $redis->zrevrange($rank_key, 0, -1);
             if (!$rank_list) {
                 continue;
             }
             $rank_uids = array_values($rank_list);
             $user_info = model_CacheUtil::getUserInfoByIdsWithFileds($rank_uids, $section, array('level'));
             foreach ($user_info as $r_uid => $r_udata) {
                 $rank_awards = array(array('tag' => '601001', 'num' => 4), array('tag' => '601002', 'num' => 4), array('tag' => '601019', 'num' => 200), array('tag' => 'money', 'num' => 500000), array('tag' => 'qiyu_zhidian', 'level' => max(1, $r_udata['level'] * 3 + $worldboss_zhidian_offset), 'num' => 1), array('tag' => 'qiyu_zhidian', 'level' => max(1, $r_udata['level'] * 3 + $worldboss_zhidian_offset), 'num' => 1), array('tag' => 'qiyu_zhidian', 'level' => max(1, $r_udata['level'] * 3 + $worldboss_zhidian_offset), 'num' => 1), array('tag' => 'qiyu_zhidian', 'level' => max(1, $r_udata['level'] * 3 + $worldboss_zhidian_offset), 'num' => 1), array('tag' => 'qiyu_zhidian', 'level' => max(1, $r_udata['level'] * 3 + $worldboss_zhidian_offset), 'num' => 1));
                 $desc_str = model_Cdkey::descriptItems($rank_awards);
                 $rank_msg = array('type' => 'system', 'key' => uniqid(), 'time' => getApp()->now, 'content' => "由于3月15日掌门参加群雄破阵时出现了游戏意外退出的情况。大掌门团队对此表示歉意并补偿给掌门:叫花鸡x4, 补元丹x4, 培养丹x200, 银两x500000, 指点x5");
                 $rank_msg['status'] = 'award';
                 //print_r($rank_awards);
                 $cdkey = model_Cdkey::gen($rank_awards, $desc_str);
                 $rank_msg['cdkey'] = $cdkey;
                 model_Chat::sendMsg($rank_msg, $r_uid, 'origin', $section);
                 echo "uid = [{$r_uid}], 获取补偿,cdkey = [{$cdkey}]\n";
             }
             $redis->hset($boss_key, 'buchang_reward_time', $now);
         }
     }
 }