/** * 默认设置 * @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; }
/** * 如果玩家没有出序章 在遇到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]========================="); }
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']); }