Ejemplo n.º 1
0
 /**
  * 默认设置
  * @param unknown $player_id
  * @return Ambigous <multitype:, unknown>
  */
 public function default_set($player_id, $player_info = null)
 {
     if (is_null($player_info) || !isset($player_info['career_type'])) {
         $career_type = $this->get_data('Player')->get_player_info($player_id, 'career_type');
     } else {
         $career_type = $player_info['career_type'];
     }
     $arr_init_role = Cache_RoleAttrInit::getInstance()->get_role_attr_init($career_type);
     $arr_init_skill = array();
     $updata = array();
     for ($i = 1; $i <= 5; $i++) {
         $key = 'skill_' . $i;
         if (!empty($arr_init_role[$key])) {
             $updata[$arr_init_role[$key]]['level'] = 1;
             $keyboard = Cache_Skill::getInstance()->get_skill_info($arr_init_role[$key]);
             $updata[$arr_init_role[$key]]['keyboard'] = $keyboard['keyboard'];
             # 自动启用
         }
     }
     $this->get_data('PlayerDetail')->update_player_detail($player_id, array('skill_info' => $updata, 'skill_rune_info' => array()));
     return $updata;
 }
Ejemplo n.º 2
0
 /**
  * 如果玩家没有出序章 在遇到C++服务器重启的时候 重置这写玩家的任务
  */
 public function reset_task()
 {
     Com_Log::write('x_reset', "=============================[start]=========================");
     $keys = Com_AdCache::factory('player')->keys("data|player:*");
     if (!empty($keys)) {
         $syndata['city_id'] = 2100;
         $syndata['city_x'] = 3382;
         $syndata['city_y'] = 3538;
         $role_init_data = array();
         foreach ($keys as $key) {
             $player_info = Com_AdCache::factory('player')->hash_get($key, array('player_id', 'level', 'vip', 'map_id', 'career_type'));
             //                if($player_info['player_id'] != 980564) continue;
             if ($player_info['level'] >= 10) {
                 continue;
             }
             Com_Log::write('x_reset', "player_id:{$player_info['player_id']}");
             if (!isset($role_init_data[$player_info['career_type']]) && empty($role_init_data[$player_info['career_type']])) {
                 $role_init_data[$player_info['career_type']] = Cache_RoleAttrInit::getInstance()->get_role_attr_init($player_info['career_type']);
             }
             if ($player_info['map_id'] == 2100 && $player_info['level'] < 10) {
                 $this->init_set_task($player_info['player_id'], explode(":", $role_init_data[$player_info['career_type']]['default_task_id']));
                 //                    $this->get_data('PlayerTaskLog')->del_player_task_log($player_info['player_id']);
                 $syndata['level'] = 1;
                 $level_exp = Cache_RoleExp::getInstance()->get_role_exp(1);
                 $syndata['level_exp'] = intval($level_exp['need_exp']);
                 $syndata['exp'] = 0;
                 $this->get_data('Player')->update_player_info($player_info['player_id'], $syndata);
                 $update_fields = $this->get_game('PlayerSkill')->extend_set($player_info['player_id'], $player_info['career_type'], 1, false);
                 $update_fields['guide'] = '';
                 try {
                     $update_fields['wing_info'] = $this->get_game('PlayerWing')->create_player_wing($player_info['player_id'], false);
                     $update_fields['equip_wing'] = 0;
                 } catch (Exception $e) {
                     Com_Log::write('reset_del', "del wing error ##" . var_export($e, true));
                 }
                 $this->get_data('PlayerDetail')->update_player_detail($player_info['player_id'], $update_fields);
                 try {
                     $this->get_game('Fairy')->set_fairy_state_interface($player_info['player_id']);
                 } catch (Exception $e) {
                     Com_Log::write('reset_del', "del fairy error ##" . var_export($e, true));
                 }
                 $props = $this->get_data('PlayerProp')->get_player_all_prop($player_info['player_id']);
                 if ($props) {
                     foreach ($props as $ppid => $val) {
                         Com_Log::write('reset_del', "del prop player_id:{$player_info['player_id']} ##" . var_export($val, true));
                         $result = $this->get_data('PlayerProp')->delete_player_prop($player_info['player_id'], $val, true, array('cmd_id' => 107, 'level' => $player_info['level'], 'vip' => $player_info['vip']));
                         if (!$result) {
                             Com_Log::write('reset_del', "del prop error ##" . var_export($val, true));
                         }
                     }
                 }
             }
         }
     }
     Com_Log::write('x_reset', "=============================[end]=========================");
 }
Ejemplo n.º 3
0
 protected function init_player_game_data($data)
 {
     $role_init_data = Cache_RoleAttrInit::getInstance()->get_role_attr_init($data['career_type']);
     //        $this->init_bag_item($data['player_id'],$role_init_data);
     //        $this->init_player_equip($data['player_id'],$role_init_data['equip_id']);
     //        $this->init_hero($data['player_id']);
     //        $this->init_fairy($data['player_id'],$role_init_data);
     $this->get_game('TaskMain')->init_player_task($data['player_id'], explode(":", $role_init_data['default_task_id']));
     //        $this->get_game('KFArena')->init_player_kf_arean($data['player_id'],$data['name'],$data['career_type']);
     //        $this->get_game('PlayerWing')->create_player_wing($data['player_id']);
     //        $this->get_game('PlayerSkill')->extend_set($data['player_id'],$data['career_type']);
     //        $this->get_game('MicroTerminalBag')->init_micro_terminal_bag_data($data['player_id']);
     //        $this->get_game('PlayerGradeFunc')->init_player_grade_func_data($data['player_id']);
     $this->get_game('PlayerFB')->init_fb_data($data['player_id']);
     $this->get_data('PlayerFriend')->init_friend_info($data['player_id']);
     //签到激活数据从active.php挪到内部调用
     $this->get_game('DailySign')->init_daily_sign_info($data['player_id']);
 }