/** * 活动结算弹出面板清数据 * @param unknown $player_id * @param unknown $union_id * @param unknown $total_exp * @return multitype:unknown number */ public function total_bonfire_exp($player_id, $union_id, $rewards) { $err_code = 1; $union_id = intval($union_id); if (Com_Array::is_good_arr($rewards)) { /* $objPlayerData = $this->get_data('Player'); $player_union_id = $objPlayerData->get_player_info($player_id,"union_id"); if($player_union_id == $union_id){ */ $objUnionBonfireData = $this->get_data('UnionBonfire'); $unionBonfireInfo = $objUnionBonfireData->get_union_bonfire($union_id); $objUnionBonfireData->del_union_bonfire($union_id); foreach ($rewards as $val) { $role_id = $val[0]; $total_exp = $val[1]; $is_in_guild_territory = $val[2]; $objUnionBonfireData->clear_bonfire_cd($role_id, 1); $objUnionBonfireData->clear_bonfire_cd($role_id, 2); $objUnionBonfireData->clear_bonfire_cd($role_id, 3); if ($is_in_guild_territory) { $prop = array(1, intval($unionBonfireInfo['total_exp'])); Protocol::input($role_id, 8, 17, 1747, array($prop)); } } $err_code = 0; //} } return array($err_code, $union_id); }
/** * @Purpose: * 获取玩家精灵列表 * @Method Name: get_player_fairy_list() * @Parameter: $player_id 玩家ID * @Return: mixed 玩家精灵列表 */ public function get_player_fairy_list($player_id) { $data = array(); $arr_player_fairy_id = $this->get_player_fairy_id($player_id); if (Com_Array::is_good_arr($arr_player_fairy_id)) { foreach ($arr_player_fairy_id as $id => $val) { $data[$id] = $this->Redis->hash_get($this->getKeys($this->keyPrefix, array('fairy_id' => $id))); $data[$id]['attr_lib_list'] = json_decode($data[$id]['attr_lib_list'], true); $data[$id]['combination_list'] = json_decode($data[$id]['combination_list'], true); $data[$id]['train_attr'] = json_decode($data[$id]['train_attr'], true); } return $data; } else { /* $cache_data = $this->build_cache($player_id); foreach ($cache_data as $key => $value) { $value['attr_lib_list'] = $value['attr_lib_list'] ? json_decode($value['attr_lib_list'], true) : $value['attr_lib_list']; $value['combination_list'] = $value['combination_list'] ? json_decode($value['combination_list'], true) : $value['combination_list']; $data[$value['fairy_id']] = $value; } */ return $data; } }
public function get_gold_special($player_id, $field = null) { $data = $this->redis()->hash_get($this->get_adcache_key($player_id), $field); if (is_array($field) || empty($field)) { if (Com_Array::is_good_arr($data)) { foreach ($data as $key => $val) { if (in_array($key, $this->_field)) { if (is_array($this->_field[$key])) { if ($data[$key]) { $data[$key] = json_decode($data[$key], true); } else { $data[$key] = array(); } } } } } } else { if (!empty($field)) { if (in_array($field, $this->_field)) { $data = json_decode($data, true); } } } return $data; }
public function do_sys_msg($data) { if (empty($data)) { return; } $data = json_decode($data, true); $player_id = $data['player_id']; $content = $data['content']; $location = $data['location']; $location_type = $data['location_type']; $type = intval($data['type']); $value = intval($data['value']); $type2 = intval($data['type2']); $value2 = intval($data['value2']); $game_manager = $this->get_data('PlayerFriend')->get_game_manager(); if (Com_Array::is_good_arr($game_manager)) { if (isset($game_manager[$player_id])) { return false; } } if ($type == 1 && $location_type == 7) { if ($player_id == 0) { return; } $player_info = $this->get_data('Player')->get_player_info($player_id, array('gm', 'union_id')); $value = $player_info['union_id']; } Protocol::input($player_id, 7, 4, 441, array($player_id, $location_type, $type, $value, $type2, $value2, $content, $location)); if (!IS_FRONT) { Protocol::out(); } }
/** * 添加多个 * @param $player_id * @param $level * @param $vip_level * @param $data * @return bool */ public function add_multi_guide_log($player_id, $level, $vip_level, $data) { if (Com_Array::is_arr2($data)) { foreach ($data as $param) { $this->add_guide_log($player_id, $level, $vip_level, $param['type'], $param['task_id'], $param['step'], $param['status']); } } else { $this->add_guide_log($player_id, $level, $vip_level, $data['type'], $data['task_id'], $data['step'], $data['status']); } return true; }
/** * @Purpose: * 通知C++新一天的优先公会活动 */ public function refresh_new_union_activities_p2c() { #获取公会ID列表 $union_id_list = $this->get_data('UnionInfo')->get_all_union_id(); if (Com_Array::is_good_arr($union_id_list)) { foreach ($union_id_list as $union_id => $val) { #同步活动数据到C++ $this->get_game('Union')->Sync_Union_msg($union_id, 0); Protocol::out(); } } }
public function get_assistant_list() { $data = $this->get_data("Assistant")->get_assistant_list(); $out = array(); if (Com_Array::is_good_arr($data)) { foreach ($data as $val) { $item['id'] = $val['id']; $item['type'] = $val['type']; $item['content'] = $val['content']; $out[] = $item; } } return $out; }
/** * 公会勋章 * @param unknown $player_id * @return multitype:number */ public function get_union_medal($player_id) { $objPlayerData = $this->get_data('Player'); $playerInfo = $objPlayerData->get_player_info($player_id, array("union_id")); $union_id = intval($playerInfo['union_id']); if ($union_id == 0) { $this->throw_error('171001'); //该玩家未加入该公会 } //已激活的勋章 $objUnionInfoData = $this->get_data('UnionInfo'); $union_medal = $objUnionInfoData->get_union_info($union_id, "union_medal"); $union_medal = $union_medal ? $union_medal : array(1); //临时 $medal_list = Cache_UnionMedal::getInstance()->get_union_medal_info(); $data['medal_list'] = array(); if (Com_Array::is_good_arr($medal_list)) { foreach ($medal_list as $val) { $item['sid'] = $val['sid']; $item['name'] = $val['name']; $status = 0; $progress_num = 0; $achieve_list = Cache_UnionAchieve::getInstance()->get_union_achieve_info(array("medal_id" => $val['sid'])); if ($union_medal && in_array($val['sid'], $union_medal)) { $status = 1; $progress_num = count($achieve_list); } else { foreach ($achieve_list as $achieve_val) { $achieve_info = $this->get_data('UnionAchieve')->get_union_achieve_list($union_id, $achieve_val['sid']); if ($achieve_info) { if ($achieve_info['state'] == 1) { $progress_num++; } } } } $item['status'] = $status; $item['atk_min'] = $val['atk_min']; $item['hp'] = $val['max_hp']; $item['arm'] = $val['arm']; $item['progress_num'] = $progress_num; $item['total_num'] = count($achieve_list); $data['medal_list'][] = $item; } } $data['last_medal_id'] = array_pop($union_medal); //die(var_dump($data)); return $data; }
public function get_resource_fight_prop_loot($player_level = 0) { $common_drop = 0; $sql = "select * from {$this->table_name}"; $list = $this->select_all($sql, $this->get_cache_key(array('resource_fight_prop_loot' => 'resource_fight_prop_loot'))); if (Com_Array::is_good_arr($list)) { foreach ($list as $val) { if ($player_level < $val['level']) { break; } $common_drop = $val['common_drop']; } } return $common_drop; }
public function receive_blue_diamond_package($player_id, $sid) { $sid = intval($sid); $this->blue_info = $this->get_blue_info($player_id); if ($this->blue_info['blue_vip_level'] < 1) { $this->throw_error('2328003', 5010067); } $package_config = Cache_TencentBlueSpecial::getInstance()->get_blue_item_by_sid($sid); if (!Com_Array::is_good_arr($package_config)) { $this->throw_error('10222', 5010069); } $player_info = $this->get_data('Player')->get_player_info($player_id, array('gold', 'level', 'vip', 'privilege_level', 'qq_blue_points')); if ($package_config['type'] == 1) { #每日礼包 $receive_daily_reward = $this->get_data("PlayerDailyTime")->get_player_used_time($player_id, 'receive_blue_package_times'); if ($receive_daily_reward) { $this->throw_error('2328001', 5010074); } } else { #积分礼包 if (intval($player_info['qq_blue_points']) < $package_config['points']) { $this->throw_error('2328002', 5010079); } } $this->start_trans(); $reward = $this->get_format_reward($package_config['reward']); $result = $this->get_game('Reward')->send_reward($player_id, $reward, array('cmd_id' => '2328')); if ($result !== true) { $this->throw_error($result); } #领取过每日礼包 if ($package_config['type'] == 1) { $re = $this->get_data("PlayerDailyTime")->add_used_time($player_id, 'receive_blue_package_times', 1); $this->write_check($re, 5010104); } else { #扣蓝钻积分 $cost_currency_value = $package_config['points']; $cost_currency_key = "qq_blue_points"; $arr_consume = array(); $this->get_data('Player')->check_player_resource($player_id, $player_info, '-', $cost_currency_key, $cost_currency_value); $re = $this->get_data('Player')->update_player_resource($player_id, $player_info, '2328', array(), $arr_consume); $this->write_check($re, 5010108); } $this->commit(); $this->get_game('Reward')->add_reward_log(); $out = array($sid, 1, intval($player_info['qq_blue_points'])); return $out; }
/** * 获取城市据点信息 */ public function get_city_info($city_id, $field = null) { if (is_array($city_id)) { $cache = array(); $data = array(); foreach ($city_id as $key => $val) { if (isset($this->city_configs[$val])) { $cache[$val] = $this->city_configs[$val]; unset($city_id[$key]); } } if (!empty($city_id)) { $sql = "select * from city where city_id in (#city_id#)"; $data = $this->get_list($sql, 'city_id', $city_id); foreach ($data as $key => $val) { if (count($this->city_configs) > $this->size) { Com_Array::shift($this->city_configs); } $this->city_configs[$key] = $val; } } foreach ($cache as $key => $val) { $data[$key] = $val; } return $data; } $data = array(); $city_id = intval($city_id); if ($city_id < 1) { return array(); } if (!isset($this->city_configs[$city_id])) { $cache_key = $this->get_cache_key(array('city_id' => $city_id)); $sql = "select * from city where city_id='{$city_id}'"; $data = $this->select_one($sql, $cache_key); if (empty($data)) { return array(); } if (count($this->city_configs) > $this->size) { Com_Array::shift($this->city_configs); } $this->city_configs[$city_id] = $data; } else { $data = $this->city_configs[$city_id]; } return Com_Array::get_arr_field($data, $field); }
public function replace_buff_data($data) { if (Com_Array::is_arr2($data)) { $set_data = array(); foreach ($data as $val) { $set_data[$val['buff_sid']] = json_encode($val); } if (!empty($set_data)) { $cache_key = $this->get_cache_key($val['player_id']); $result = $this->redis()->hash_set($cache_key, $set_data); } } else { $cache_key = $this->get_cache_key($data['player_id']); $result = $this->redis()->hash_set($cache_key, $data['buff_sid'], json_encode($data)); } return $result; }
/** * @Purpose: * 获取玩家英雄列表 * @Method Name: get_player_hero_list() * @Parameter: $player_id 玩家ID * * @Parameter: $is_decode 是否进行字符串转数组操作 * @Return: mixed 玩家英雄列表 */ public function get_player_hero_list($player_id, $is_decode = false) { $data = $this->get_player_hero_id($player_id); if ($is_decode) { if (Com_Array::is_good_arr($data)) { foreach ($data as $id => $val) { if (!$val) { unset($data[$id]); continue; } //英雄数据格式转换 $data[$id] = json_decode($val, true); } } } return $data; }
public function get_item_compose_info($player_level) { if ($player_level <= 0) { return false; } #$sql = "select * from item_compose where req_lv <= $player_level order by sort_priority"; $sql = "select * from item_compose where req_lv <= {$player_level}"; $cache_lv = ceil($player_level / 10) * 10; $compose_list = $this->select_all($sql, $this->get_cache_key(array('req_lv' => $cache_lv))); $compose_info = array(); # 升序排序 Com_Array::multisort($compose_list, array('sort_priority' => 'asc')); # 列表结构转为哈希结构 foreach ($compose_list as $index => $comp_info) { $compose_info[$comp_info['comp_type']][$comp_info['comp_sub_type']][$comp_info['target_id']] = $comp_info; } return $compose_info; }
/** * @Purpose: * 获取公会引导信息 * @Param $player_id 玩家ID */ public function get_union_guide_info($player_id) { $player_id = intval($player_id); #获取玩家公会ID,验证公会信息 $union_id = $this->get_data('Player')->get_player_info($player_id, 'union_id'); if ($union_id > 0) { #获取引导配置表 $guide_table = $this->get_cache_table_data('guide_table', null); if (Com_Array::is_good_arr($guide_table)) { #获取玩家公会引导天数据 $ug_data = $this->get_data('UnionGuide')->get_union_guide_info($player_id, 'ug', 'day'); foreach ($guide_table as $guide) { $rtn_data[] = array(intval($guide['type']), intval($guide['sub_type']), $guide['explain'], intval($ug_data[$guide['type'] . $guide['sub_type']]), intval($guide['func_jump']), intval($guide['npc_id'])); } } } return $rtn_data ? $rtn_data : array(); }
/** * * Enter description here ... * @param string $id 语言id * @param int $flag 标志(1:返回数组,0:返回语言) */ public function get_language($id, $flag = 0) { if (is_array($id)) { $sql = "SELECT * FROM language_error WHERE phrase_id IN (#phrase_id#)"; $data = $this->get_list($sql, 'phrase_id', $id); if ($flag == 0) { $data = Com_Array::arr2_to_arr1($data, 'phrase_id,phrase_value'); } return $data; } else { $cacheKey = $this->get_cache_key(array('phrase_id' => $id)); $sql = "SELECT * FROM language_error WHERE phrase_id = '{$id}'"; $item = $this->select_one($sql, $cacheKey); if ($flag == 0) { $item = $item['phrase_value']; } return $item; } }
public function get_wing_equips_for_swallow($player_id, $player_prop_id) { $this->get_game('PlayerFunc')->get_func_is_open($player_id, $this->func_id); $this->param_check_numeric(array($player_id)); $player_prop_info = $this->get_data('PlayerProp')->get_player_prop_detail($player_id, $player_prop_id); if (empty($player_prop_info)) { $this->throw_error('80013'); //玩家没有该装备! } $player_props = $this->get_data('PlayerProp')->get_player_prop_by_item_position($player_id, 1); Com_Array::multisort($player_props, array('quality' => 'desc', 'level' => 'desc')); # 过滤不允许该装备吞噬的装备 $player_props = $this->filter_unvalid_props($player_prop_info, $player_props); $out_1514 = array(0 => $player_prop_id, 1 => array('item_position' => 1, 'grid_list' => array())); foreach ($player_props as $k => $v) { $out_1514[1]['grid_list'][] = $v['grid']; } return $out_1514; }
/** * 获取随机任务列表 */ public function get_task_random_list($player_id, $task_info = null, $player_info = null) { if (is_null($task_info)) { $task_info = $this->get_data('PlayerTask')->get_task_info($player_id, array('random_val', 'random_refresh_time')); } if (is_null($player_info) || !isset($player_info['level'])) { $player_info = $this->get_data('Player')->get_player_info($player_id, array('level')); } $out = array(); $out['list'] = array(); $now_time = time(); $refresh_time = $task_info['random_refresh_time'] - $now_time; // Com_Log::write("get_task_random_list.".$player_id,var_export($refresh_time,true)); if ($refresh_time <= 0) { $task_info = $this->get_random_tasks($player_id); $refresh_time = $task_info['random_refresh_time'] - $now_time; } if ($task_info['random_val']) { Com_Array::multisort($task_info['random_val'], 'order', 'asc'); foreach ($task_info['random_val'] as $val) { if (empty($val['task_id'])) { continue; } $val['due_time'] = $val['due_time'] - $now_time; $val['due_time'] = $val['due_time'] > 0 ? $val['due_time'] : 0; $task_award = $this->get_award($player_info['level'], $val['quality'], $val['task_id']); $val['task_award'] = ''; if ($task_award) { foreach ($task_award as $award) { if (!empty($val['task_award'])) { $val['task_award'] .= "|" . $award['id'] . ":" . $award['num']; } else { $val['task_award'] .= $award['id'] . ":" . $award['num']; } } } $out['list'][] = $this->format_task_random_struct($val); } } $out['refresh_time'] = $refresh_time > 0 ? $refresh_time : 0; return $out; }
/** * * @param $player_id * @param $item_unique_id 0缓慢回血药剂 或者 1直接回血药剂 */ public function prop_use_by_drug($player_id, $item_unique_id) { if ($item_unique_id == 'hot') { $props = $this->get_game('Prop')->get_prop_list_by_type($player_id, 2, 1); } elseif ($item_unique_id == 'dh') { $props = $this->get_game('Prop')->get_prop_list_by_type($player_id, 2, 6); } elseif ($item_unique_id == 'mp') { $props = $this->get_game('Prop')->get_prop_list_by_type($player_id, 2, 11); } $player_info = $this->get_data('Player')->get_player_info($player_id, array('name', 'career_type', 'level', 'exp', 'level_exp', 'silver', 'gold', 'ticket', 'chips', 'honor', 'kf_coin', 'vip', 'crystal', 'fame', 'fame_level', 'fame_level_exp', 'kf_score', 'privilege_level')); if (empty($props)) { $player_detail = $this->get_data('PlayerDetail')->get_player_detail($player_id, array('hook_settings', 'hook_status')); if ($player_detail['hook_settings']['onhook_drug_option'] & 1) { #开启自动选项 $ttl = $this->exist_drgu_lock($player_id); if ($ttl) { return array('error_code' => 4, 'cooldown_msec' => intval($ttl)); //还在冷却中 } if ($item_unique_id == 'hot') { $prop_configs = Cache_Prop::getInstance()->get_prop_by_type(2, 1); } elseif ($item_unique_id == 'dh') { $prop_configs = Cache_Prop::getInstance()->get_prop_by_type(2, 6); } elseif ($item_unique_id == 'mp') { $prop_configs = Cache_Prop::getInstance()->get_prop_by_type(2, 11); } if (!empty($prop_configs)) { if ($player_detail['hook_settings']['onhook_hp_order'] == 0) { $prop_configs = Com_Array::multisort($prop_configs, array('level' => 'desc')); #按等级排序 从小到大 } else { $prop_configs = Com_Array::multisort($prop_configs, array('level' => 'asc')); #按等级排序 从小到大 } $prop_info = array(); foreach ($prop_configs as $val) { if ($val['prop_id'] == '50074' || $val['prop_id'] == '50004') { continue; } #策划要把这两种药先去了 if ($player_info['level'] >= $val['level']) { $prop_info[] = $val; break; } } if (!empty($prop_info)) { $prop_info = reset($prop_info); } else { return array('error_code' => 2, 'cooldown_msec' => 0); //没有这个道具 } if ($prop_info['buy_type'] == 0) { $cur_key = 'silver'; } else { $cur_key = Cache_Currency::getInstance()->get_key($prop_info['buy_type']); if (is_array($cur_key)) { #如果没有类型默认金币 $cur_key = 'silver'; } } $arr_consume = array(); if ('gold' == $cur_key) { $arr_consume = array('price' => $prop_info['buy_price'], 'gold' => $prop_info['buy_price'], 'ticket' => 0, 'count' => 1); #数据中心推送 } elseif ('ticket' == $cur_key) { $arr_consume = array('price' => $prop_info['buy_price'], 'gold' => 0, 'ticket' => $prop_info['buy_price'], 'count' => 1); #数据中心推送 } $result = $this->get_data('Player')->check_player_resource($player_id, $player_info, '-', $cur_key, $prop_info['buy_price'], 0); if ($result === true) { #这地方相当于购买并使用功能 $result = $this->get_data('Player')->update_player_resource($player_id, $player_info, 409, array(), $arr_consume); $this->add_drug_lock($player_id); if ($result) { return array('error_code' => 0, 'cooldown_msec' => 0, 'item_sid' => intval($prop_info['prop_id'])); } } else { return array('error_code' => 6, 'cooldown_msec' => 0); //服务器内部错误 } } else { return array('error_code' => 2, 'cooldown_msec' => 0); //没有这个道具 } } else { #没有勾选自动购买选项 return array('error_code' => 2, 'cooldown_msec' => 0); //没有这个道具 } } $player_prop = reset($props); $result = $this->get_game('Prop')->deduct_prop_by_ppid($player_id, $player_prop['player_prop_id'], 1, array('cmd_id' => 409, 'level' => $player_info['level'], 'vip' => $player_info['vip']), $player_prop); if (!$result) { return array('error_code' => 6, 'cooldown_msec' => 0); //服务器内部错误 } return array('error_code' => 0, 'cooldown_msec' => 0, 'item_sid' => $player_prop['prop_id']); }
public function create_sql($table, $data) { $content = ''; if (Com_Array::is_arr2($data)) { $content = "insert into " . $table; $i = 0; foreach ($data as $key => $value) { $value = $this->get_pub_data($value); if ($i == 0) { $content .= "(`" . implode("`,`", array_keys($value)) . "`) values"; } $content .= "('" . implode("','", $value) . "'),"; $i++; } $content = rtrim($content, ',') . ";\n"; } else { if (is_array($data)) { $data = $this->get_pub_data($data); $content = 'insert into ' . $table . "(`" . implode("`,`", array_keys($data)) . "`) values('" . implode("','", $data) . "');\n"; Com_Log::write('game_log', $content); } } return $content; }
/** * @Purpose: * 获取缓存配置表数据(通用函数) * @param $cacheKeyPrefix 缓存关键字 * @param $db_name 配置表名 * @param $array 查询条件 * @param $many_times 是否获取符合条件的所有数据 */ protected function get_cache_config_table($cacheKeyPrefix, $db_name, $array = array(), $many_times = false) { $index = ''; if (!empty($cacheKeyPrefix) && !empty($db_name)) { if (empty($array)) { if (empty($this->temporary_data['all'])) { $sql = "select * from {$db_name}"; $data = $this->select_all($sql, $cacheKeyPrefix . '|' . $db_name . '_all'); if (Com_Array::is_good_arr($data)) { $this->temporary_data['all'] = $data; } } $index = 'all'; } else { if (is_array($array)) { $key = ''; $conditions = ''; //查询条件组合 foreach ($array as $keys => $val) { if (is_string($val)) { $conditions .= ($conditions ? "and" : "") . " {$keys} = '{$val}' "; } else { $conditions .= ($conditions ? "and" : "") . " {$keys} = {$val} "; } $keys .= ($keys ? "&" : "") . $val; $key .= $keys . $many_times; } $select_func = ''; if (empty($this->temporary_data[$key])) { if ($many_times) { $select_func = 'select_all'; } else { $select_func = 'select_one'; } $sql = "select * from {$db_name} where {$conditions}"; $data = $this->{$select_func}($sql, $this->get_cache_key(array($db_name => $key), $cacheKeyPrefix)); if (Com_Array::is_good_arr($data)) { $this->temporary_data[$key] = $data; } } $index = $key; } } } return empty($index) ? array() : $this->temporary_data[$index]; }
/** * * @param unknown $instant_ntf 0:提前通知 1:到点通知 * @param unknown $type_id 活动id * @param unknown $category 玩法类型 */ public function activity_send_notice($player_id, $instant_ntf, $sid) { $player_id = intval($player_id); $instant_ntf = intval($instant_ntf); $sid = intval($sid); #{活动名}活动10分钟后开启,请广大玩家做好准备,海量丰厚奖励等着你! #{活动名}活动开启了,立刻参与,活动奖励轻松获得! $activity_info = Cache_ActivityHall::getInstance()->get_activity_info($sid); if (!Com_Array::is_good_arr($activity_info)) { return false; } $code = $activity_info['func_id']; $arrPushConfig = Cache_PushUpgrade::getInstance()->get_upgrade_info($code, $instant_ntf + 1); if (!Com_Array::is_good_arr($arrPushConfig)) { return false; } $replace_info = array(); $replace_info[] = array('rep_type' => 7, 'txt' => $activity_info['name']); if ($arrPushConfig['go_name']) { $replace_info[] = array('rep_type' => 1, 'rep_val' => $code, 'txt' => strval($arrPushConfig['go_name'])); } else { $replace_info[] = array('rep_type' => 7, 'txt' => ''); } $msg = Language_Message::make_message($arrPushConfig['code'], $replace_info, 0, '', true); $this->get_game('SystemNotice')->send_system_msg($player_id, $msg, $arrPushConfig['need_broadcas'], 1, 2, $sid); }
public function doAction() { $userInfo_json = base64_decode($_POST['data']); $userInfo_array = json_decode($userInfo_json, true); $activity = $userInfo_array['activity']; //#处理倍率活动 if (isset($activity['ratio'])) { #防止活动ID 冲突 $status = true; // $event_master_info=array(); // $event_master_info["event_id"] = $activity['id']+100000; // # // $event_master_info["event_type"]=1; // $event_master_info["event_topic"]=0; // $event_master_info["event_tag"]=2;#倍率活动2 // $event_master_info["event_template"]=0; // $event_master_info["event_importance"]=0; // $event_master_info["event_recommend_flag"]=0; // $event_master_info["event_priority"]=0; // $event_master_info["event_reward_cycle"]=0; // $event_master_info["event_reward_stint"]=0; // $event_master_info["event_status"]=1;#1表示上线 // $event_master_info["week_frequency"]=0; // $event_master_info["announce_date_head"]=strtotime($activity['start_time_str']); // $event_master_info["open_date_head"]=0; // $event_master_info["open_date_tail"]=0; // $event_master_info["announce_date_tail"]=strtotime($activity['end_time_str']); // $event_master_info["reward_date_head"]=0; // $event_master_info["reward_date_tail"]=0; // $event_master_info["reg_date"]=time(); // $event_master_info["mod_date"]=time(); // $event_master_info["event_jump_btn_type"]=0; // $event_master_info["event_jump_btn_target"]=0; // $event_master_info["event_jump_btn_res"]=0; // $event_master_info["event_title"]=""; // $event_master_info["event_comment"]=""; // $event_master_info["event_desc"]=""; // $event_master_info["event_desc_res"]=""; // $event_master_info["event_title_res"]=""; // $event_master_info["event_title_bg_res"]=""; // $event_master_info["event_ad_res"]=""; // $event_master_info["event_reward_info"]=""; // $result = $this->get_data('Event')->replace_into_event_master($event_master_info); // if(!$result){ // $status = false; // } #插入倍率表 $event_ratio_info = array(); $event_ratio_info["event_id"] = $activity["activity_a_id"]; $event_ratio_info["ratio_type"] = 1; $event_ratio_info["relate_cmd2"] = $activity['activity_action_id']; $ratio_arr = explode("|", $activity['ratio']); foreach ($ratio_arr as $ra) { $ra_t = explode(":", $ra); $ra_r[] = $ra_t[1]; #资源 $ra_v = $ra_t[2]; #赔率 } $event_ratio_info["relate_item_id"] = implode(":", $ra_r); $vip_arr = range($activity['vip_start_level'], $activity['vip_end_level']); foreach (range(0, 10) as $k) { if (in_array($k, $vip_arr)) { $vip_t[] = $k . ":" . $ra_v * 10000; } else { $vip_t[] = $k . ":10000"; } } // foreach (range($activity['vip_start_level'],$activity['vip_end_level']) as $k){ // $vip_t[] = $k.":".($ra_v*10000); // } $event_ratio_info["relate_ratio"] = implode("|", $vip_t); # $result = $this->get_data('Event')->replace_into_event_ratio($event_ratio_info); if (!$result) { $status = false; } if ($status) { echo json_encode(array('status' => 1, 'data' => "success")); } else { echo json_encode(array('status' => 0, 'data' => 'fail')); } return true; } //奖励 $reward = Com_Array::is_good_arr($userInfo_array['activity']['reward']) ? $userInfo_array['activity']['reward'] : array(); $tmp_reward_id = array(); $status = true; foreach ($reward as $r_item) { $event_reward_master_info = array(); $event_reward_master_info["reward_id"] = $r_item['id']; $tmp_reward_id[] = $r_item['id']; #活动中用 $event_reward_master_info["activity_id"] = $activity['id']; $event_reward_master_info["reward_type"] = $r_item['button_type']; $event_reward_master_info["reward_priority"] = 0; # 奖励优先度级别,排序用 $event_reward_master_info["reward_billing_cycle"] = 0; #需要计算reward_type,type_value $event_reward_master_info["reward_gain_cycle"] = $r_item['type_value']; #重复计算的 $event_reward_master_info["reward_gain_stint"] = $r_item['type_times']; $event_reward_master_info["valid_date_head"] = !empty($r_item['start_time']) ? $r_item['start_time'] : 0; $event_reward_master_info["valid_date_tail"] = !empty($r_item['end_time']) ? $r_item['end_time'] : 0; $event_reward_master_info["valid_date_head"] = $this->changetime($event_reward_master_info["valid_date_head"]); $event_reward_master_info["valid_date_tail"] = $this->changetime($event_reward_master_info["valid_date_tail"]); if (!empty($activity['type_value'])) { $event_reward_master_info["valid_date_flag"] = 1; $r_item['reward_type'] = 0; $event_reward_master_info["valid_date_head"] = (int) (date('H', $event_reward_master_info["valid_date_head"]) * 3600) + (int) (date('i', $event_reward_master_info["valid_date_head"]) * 60) + (int) date('s', $event_reward_master_info["valid_date_head"]); $event_reward_master_info["valid_date_tail"] = (int) (date('H', $event_reward_master_info["valid_date_tail"]) * 3600) + (int) (date('i', $event_reward_master_info["valid_date_tail"]) * 60) + (int) date('s', $event_reward_master_info["valid_date_tail"]); } else { $event_reward_master_info["valid_date_flag"] = 0; } if ($r_item['reward_type'] == 0) { $event_reward_master_info["reward_gain_cycle"] = $event_reward_master_info["valid_date_tail"] - $event_reward_master_info["valid_date_head"]; } if ($r_item['reward_type'] == 1) { // $event_master_info["event_reward_stint"] =86400; $event_reward_master_info["reward_gain_cycle"] = 86400; } if ($r_item['reward_type'] == 2) { $event_reward_master_info["reward_gain_cycle"] = 7 * 86400; } $event_reward_master_info["cond_func_relation"] = $r_item['relation']; foreach ($event_reward_master_info as $k => $v) { if (empty($event_reward_master_info[$k])) { $event_reward_master_info[$k] = 0; } } //转换函数格式 $tmp_func_content = explode(",", $r_item['func_content']); $tmp_func_content_arr = array(); foreach ($tmp_func_content as $v) { $tmp_func_content_t = ""; $tmp_func_content_t = str_replace("#", ":", $v); $tmp_func_content_t = str_replace("|", ",", $tmp_func_content_t); $tmp_func_content_arr[] = $tmp_func_content_t; } $event_reward_master_info["cond_func"] = implode("|", $tmp_func_content_arr); $event_reward_master_info["cond_desc"] = $r_item['cond_desc']; #处理奖励中的魔晶 $tmp_reward_arr = explode("|", $r_item['reward']); $tmp_reward_arr = empty($tmp_reward_arr) ? array() : $tmp_reward_arr; for ($i = 0; $i < count($tmp_reward_arr); $i++) { $tmp_r_arr = explode(":", $tmp_reward_arr[$i]); if ($tmp_r_arr[0] == 15) { $tmp_r_arr[0] = 13; } if ($tmp_r_arr[0] == 16) { $tmp_r_arr[0] = 14; } $tmp_reward_arr[$i] = implode(":", $tmp_r_arr); } $r_item['reward'] = implode("|", $tmp_reward_arr); # #处理奖励中的魔晶 $tmp_cost_arr = explode("|", $r_item['cost']); $tmp_cost_arr = empty($tmp_cost_arr) ? array() : $tmp_cost_arr; for ($i = 0; $i < count($tmp_cost_arr); $i++) { $tmp_r_arr = explode(":", $tmp_cost_arr[$i]); if (isset($tmp_r_arr[2])) { unset($tmp_r_arr[2]); } if ($tmp_r_arr[0] == 15) { $tmp_r_arr[0] = 13; } if ($tmp_r_arr[0] == 16) { $tmp_r_arr[0] = 14; } $tmp_cost_arr[$i] = implode(":", $tmp_r_arr); } $r_item['cost'] = implode("|", $tmp_cost_arr); # $event_reward_master_info["reward_info"] = $r_item['reward']; $event_reward_master_info["consume_info"] = $r_item['cost']; $event_reward_master_info["announce_content"] = $r_item['send_msg']; foreach ($event_reward_master_info as $k => $v) { $event_reward_master_info[$k] = addslashes($v); } $result = $this->get_data('Event')->replace_into_event_reward_master($event_reward_master_info); if (!$result) { $status = false; } } $event_master_info = array(); $event_master_info["week_frequency"] = 0; #type_value if (!empty($activity['type_value'])) { $type_value_arr = explode(",", $activity['type_value']); $tmp_week = ""; for ($i = 1; $i < 7; $i++) { if (in_array($i, $type_value_arr)) { $tmp_week .= "1"; } else { $tmp_week .= "0"; } } if (in_array(7, $type_value_arr)) { $tmp_week = "1" . $tmp_week; } else { $tmp_week = "0" . $tmp_week; } $event_master_info["week_frequency"] = $tmp_week; } $event_master_info["event_id"] = $activity['id']; $o_event = $this->get_data("Event")->get_event_info($activity['id']); if (!empty($o_event)) { $event_master_info["reg_date"] = $o_event["reg_date"]; } else { $event_master_info["reg_date"] = time(); } $event_master_info["event_type"] = $activity['activity_type']; $event_master_info["event_topic"] = $activity['activity_group_id']; $event_master_info["event_tag"] = $activity['activity_tag']; #新建字段 $event_master_info["event_template"] = $activity['tpl_id']; $event_master_info["event_importance"] = !empty($activity['hot']) ? (int) $activity['hot'] - 1 : 0; $event_master_info["event_recommend_flag"] = (int) $activity['hot']; $event_master_info["event_priority"] = $activity['sort']; #和event_importance有争议 $event_master_info["event_reward_cycle"] = 0; #需要计算reward_type,type_value $event_master_info["event_billing_cycle"] = 0; #需要计算reward_type,type_value $event_master_info["event_status"] = $activity['status']; $event_master_info["announce_date_head"] = !empty($activity['panel_stime']) ? $activity['panel_stime'] : 0; $event_master_info["open_date_head"] = !empty($activity['start_time']) ? $activity['start_time'] : 0; $event_master_info["open_date_tail"] = !empty($activity['end_time']) ? $activity['end_time'] : 0; $event_master_info["announce_date_tail"] = !empty($activity['panel_etime']) ? $activity['panel_etime'] : 0; $event_master_info["reward_date_head"] = !empty($activity['start_get_time']) ? $activity['start_get_time'] : 0; $event_master_info["reward_date_tail"] = !empty($activity['end_get_time']) ? $activity['end_get_time'] : 0; $event_master_info["announce_date_head"] = $this->changetime($event_master_info["announce_date_head"]); $event_master_info["open_date_head"] = $this->changetime($event_master_info["open_date_head"]); $event_master_info["open_date_tail"] = $this->changetime($event_master_info["open_date_tail"]); $event_master_info["announce_date_tail"] = $this->changetime($event_master_info["announce_date_tail"]); $event_master_info["reward_date_head"] = $this->changetime($event_master_info["reward_date_head"]); $event_master_info["reward_date_tail"] = $this->changetime($event_master_info["reward_date_tail"]); if (!empty($activity['type_value'])) { #周期活动 $event_master_info["announce_date_head"] = (int) (date('H', $event_master_info["announce_date_head"]) * 3600) + (int) (date('i', $event_master_info["announce_date_head"]) * 60) + (int) date('s', $event_master_info["announce_date_head"]); $event_master_info["open_date_head"] = (int) (date('H', $event_master_info["open_date_head"]) * 3600) + (int) (date('i', $event_master_info["open_date_head"]) * 60) + (int) date('s', $event_master_info["open_date_head"]); $event_master_info["open_date_tail"] = (int) (date('H', $event_master_info["open_date_tail"]) * 3600) + (int) (date('i', $event_master_info["open_date_tail"]) * 60) + (int) date('s', $event_master_info["open_date_tail"]); $event_master_info["announce_date_tail"] = (int) (date('H', $event_master_info["announce_date_tail"]) * 3600) + (int) (date('i', $event_master_info["announce_date_tail"]) * 60) + (int) date('s', $event_master_info["announce_date_tail"]); $event_master_info["reward_date_head"] = (int) (date('H', $event_master_info["reward_date_head"]) * 3600) + (int) (date('i', $event_master_info["reward_date_head"]) * 60) + (int) date('s', $event_master_info["reward_date_head"]); $event_master_info["reward_date_tail"] = (int) (date('H', $event_master_info["reward_date_tail"]) * 3600) + (int) (date('i', $event_master_info["reward_date_tail"]) * 60) + (int) date('s', $event_master_info["reward_date_tail"]); $activity['reward_type'] = 0; } //领奖周期和次数 if ($activity['reward_type'] == 0) { $event_master_info["event_reward_cycle"] = $event_master_info["reward_date_tail"] - $event_master_info["reward_date_head"]; } if ($activity['reward_type'] == 1) { // $event_master_info["event_reward_stint"] =86400; $event_master_info["event_reward_cycle"] = 86400; } if ($activity['reward_type'] == 2) { $event_master_info["event_reward_cycle"] = 7 * 86400; } $event_master_info["event_reward_stint"] = (int) $activity['type_times']; //领奖周期 $event_master_info["mod_date"] = time(); $event_master_info["event_jump_btn_type"] = $activity['url_type']; foreach ($event_master_info as $k => $v) { if (empty($event_master_info[$k])) { $event_master_info[$k] = 0; } } $event_master_info["event_jump_btn_target"] = $activity['target_id']; $event_master_info["event_jump_btn_res"] = $activity['button_pic']; $event_master_info["event_title"] = $activity['name']; $event_master_info["event_desc"] = $activity['desc_info']; $event_master_info["event_desc_res"] = $activity['ad_large_pic1']; #活动内容图片 $event_master_info["event_title_res"] = $activity['title_pic']; $event_master_info["event_title_bg_res"] = $activity['title_bg_pic']; #标题背景图 if ($event_master_info["event_importance"] == 1) { $event_master_info["event_ad_res"] = $activity['ad_large_pic']; #广告大小图 } else { $event_master_info["event_ad_res"] = $activity['ad_small_pic']; #广告大小图 } $event_master_info["event_reward_info"] = implode(":", $tmp_reward_id); $event_master_info["event_comment"] = $activity['activity_comment']; foreach ($event_master_info as $k => $v) { $event_master_info[$k] = addslashes($v); } $result = $this->get_data('Event')->replace_into_event_master($event_master_info); if (!$result) { $status = false; } if ($status) { echo json_encode(array('status' => 1, 'data' => "success")); } else { echo json_encode(array('status' => 0, 'data' => 'fail')); } }
/** * @Purpose: * 格式化配置表字段,拆分指定格式数据 * @Param $field 数据字段 * @Return 返回数组 */ private function format_table_field($field) { $rtn_data = array(); $data = explode("|", $field); if (Com_Array::is_good_arr($data)) { foreach ($data as $second_layer) { list($type, $value) = explode(":", $second_layer); $rtn_data[$type] = $value; } } else { list($type, $value) = explode(":", $data); $rtn_data[$type] = $value; } return $rtn_data; }
public function get_fund_income_conf_list_level_2($fund_id, $player_level) { if (empty($fund_id) || empty($player_level)) { return false; } # 确定玩家等级段 $sql = "select distinct buy_level_upper from fund_income_level where fund_id = {$fund_id}"; $records = $this->select_all($sql, $this->get_cache_key(array('fund_id' => $fund_id, 'distinct' => 1), $this->prefix_fund_income_level)); # 按价格由高到低排序 Com_Array::multisort($records, array('buy_level_upper' => 'asc')); $buy_level_upper; foreach ($records as $record) { if ($player_level <= $record['buy_level_upper']) { $buy_level_upper = $record['buy_level_upper']; break; } } $sql = "select * from fund_income_level where fund_id = {$fund_id} and buy_level_upper = {$buy_level_upper}"; $records = $this->select_all($sql, $this->get_cache_key(array('fund_id' => $fund_id, 'buy_level_upper' => $buy_level_upper), $this->prefix_fund_income_level)); $income_conf_hash = array(); if (!empty($records)) { foreach ($records as $record) { $income_conf_hash[$record['income_offset']] = $record; } } return $income_conf_hash; }
public static function get_hero_potential_panel_struct($data) { if (Com_Array::is_good_arr($data['potential_info'])) { //格式化技能信息列表 foreach ($data['potential_info'] as $key => $val) { $data['potential_info'][$key] = self::get_hero_potential_info_struct($val); } } return array(0 => intval($data['potential_level']), 1 => intval($data['level_max']), 2 => intval($data['potential_per']), 3 => $data['potential_info'] ? $data['potential_info'] : array()); }
/** * 公会排行列表 * type类型 2、建筑等级 3、公会战力 */ public function get_union_rank($type) { switch ($type) { case 2: $data = $this->get_union_build_rank_list(); break; case 3: $data = $this->get_data('UnionInfo')->get_union_sum_fpower_rank_list(1, 100); break; } $union_list = array(); if (Com_Array::is_good_arr($data)) { Com_Array::multisort($data, array('val' => 'desc', 'player_num' => 'desc', 'union_level' => 'desc', 'union_exp' => 'desc')); foreach ($data as $key => $val) { $item = array(); $item['rank'] = $key + 1; $item['union_name'] = $val['union_name']; $item['union_id'] = $val['union_id']; $item['create_player_id'] = $val['create_player_id']; $item['create_player_name'] = $val['create_player_name']; $item['union_player_num'] = $val['player_num']; $item['val'] = $val['val']; $union_list[] = $item; if ($item['rank'] >= 100) { break; } } } return $union_list; }
/** * 多维排序 * @param $limit_num 数量 * @return int */ public function get_total_rank_list_by_multisort($limit_num = 99) { $data = array(); $rank_list = $this->redis()->zsets_all($this->_cacheKeyKfDuelTotalRank, false, 0, $limit_num); if ($rank_list) { foreach ($rank_list as $player_id) { $player_info = $this->get_player_info($player_id); $data[] = $player_info; } if (count($data) > 1) { Com_Array::multisort($data, array('score' => 'desc', 'sum_fpower' => 'desc')); } } return $data; }
/** * 获取引导任务格式化 * @param $task_guide_config * @return array */ public function get_guide_target_val($task_guide_config, $player_id) { $target = array(); switch ($task_guide_config['type']) { case 1: $param = explode(":", $task_guide_config['content']); $cur_num = 0; #取出技能符文数 $player_detail = $this->get_data('PlayerDetail')->get_player_detail($player_id, array('skill_info', 'skill_rune_info')); if (Com_Array::is_good_arr($player_detail['skill_info'])) { foreach ($player_detail['skill_info'] as $skill_id => $skill_info) { if ($skill_info['keyboard'] == $param[0]) { if (isset($player_detail['skill_rune_info'][$skill_id])) { $cur_num = count($player_detail['skill_rune_info'][$skill_id]); } } } } $target = array('guide_id' => $task_guide_config['guide_id'], 'type' => $task_guide_config['type'], 'target_type' => $param[0], 'cur_num' => $cur_num, 'max_num' => $param[1]); break; case 3: $data = $this->get_data('Fairy')->get_player_fairy_list($player_id); $param = explode(":", $task_guide_config['content']); if (!empty($data)) { foreach ($data as $fairy) { if ($fairy['type'] == $param[0]) { $cur_num = $fairy['level']; break; } } } else { $cur_num = 0; } $target = array('guide_id' => $task_guide_config['guide_id'], 'type' => $task_guide_config['type'], 'target_type' => $param[0], 'cur_num' => $cur_num, 'max_num' => $param[1]); break; case 8: $player_info = $this->get_data('Player')->get_player_info($player_id, array('union_id')); if (!empty($player_info['union_id'])) { $cur_num = 1; } else { $cur_num = 0; } $target = array('guide_id' => $task_guide_config['guide_id'], 'type' => $task_guide_config['type'], 'target_type' => 0, 'cur_num' => $cur_num, 'max_num' => $task_guide_config['content']); break; default: $target = array('guide_id' => $task_guide_config['guide_id'], 'type' => $task_guide_config['type'], 'target_type' => 0, 'cur_num' => 0, 'max_num' => $task_guide_config['content']); break; } return $target; }
public function init_magic_parliament_deatil($player_id, $plm_id) { $this->param_check_numeric(array($player_id, $plm_id)); $player_info = $this->get_data('Player')->get_player_info($player_id, array('level', 'vip', 'privilege_level')); # 获取议会配置信息 $plm_conf = Cache_MagicParliament::getInstance()->get_parliament_conf($plm_id); if (empty($plm_conf)) { $this->throw_error('100002'); # 获取魔法议会配置失败 } # 根据称号要求,获取本服前N名玩家列表,并转换成以排位为key的哈希 $player_rank_hash = $this->get_player_rank_hash_for_title(); $plm_info_hash = array(); # 获取玩家当日赴会次数|特权使用次数|免费奖励领取次数 $attend_meeting_num = $this->get_data('PlayerDailyTime')->get_player_used_time($player_id, $this->get_redis_key($this->daily_attend_meeting_num_prefix, $plm_conf['plm_id'])); $use_privilege_num = $this->get_data('PlayerDailyTime')->get_player_used_time($player_id, $this->get_redis_key($this->daily_use_privilege_num_prefix, $plm_conf['plm_id'])); $free_reward_num = $this->get_data('PlayerDailyTime')->get_player_used_time($player_id, $this->get_redis_key($this->daily_gain_free_reward_num_prefix, $plm_conf['plm_id'])); $attend_meeting_status = $plm_conf['attend_meeting_stint'] > $attend_meeting_num ? 1 : 0; # 否达成议会特权要求 $title_conf = Cache_MagicParliament::getInstance()->get_title_conf($plm_conf['use_privilege_req_title_id']); $hold_title = false; for ($i = $title_conf['req_fame_rank_min']; $i <= $title_conf['req_fame_rank_max']; $i++) { if (isset($player_rank_hash[$i]) && $player_rank_hash[$i]['player_id'] == $player_id && $player_rank_hash[$i]['fame'] >= $title_conf['req_fame']) { $hold_title = true; break; } } $privilege_status = 0; if ($hold_title && $use_privilege_num < $plm_conf['use_privilege_stint']) { $privilege_status = 1; } # 议会人气值 if ($plm_conf['plm_id'] == $this->sage_plm_id) { $popularity = $this->get_cross('PlayerDailyTime')->get_any_used_time($this->get_redis_key($this->daily_popularity_prefix, $plm_conf['plm_id'])); } else { $popularity = $this->get_data('PlayerDailyTime')->get_any_used_time($this->get_redis_key($this->daily_popularity_prefix, $plm_conf['plm_id'])); } # 议会免费奖励领取上限 $free_reward_gain_stint = $this->get_free_reward_gain_stint($plm_id, $plm_conf); $free_reward_num_remain = max($free_reward_gain_stint - $free_reward_num, 0); $free_reward_status = $free_reward_num_remain > 0 ? 1 : 0; # 获取人气值修正信息 && 等级修正信息 && 合并两个修正为一个 $revise_info_1 = Cache_MagicParliament::getInstance()->get_revise_1($plm_conf['plm_id'], $popularity); $revise_info_2 = Cache_MagicParliament::getInstance()->get_revise_2($plm_conf['plm_id'], $player_info['level']); if (empty($revise_info_1)) { $this->throw_error('100003'); # 获取人气值修正信息配置失败 } if (empty($revise_info_2)) { $this->throw_error('100004'); # 获取等级修正信息配置失败 } # 所有议会配置信息哈希 $plm_conf_hash = Cache_MagicParliament::getInstance()->get_all_parliament_conf_hash(); if (empty($plm_conf_hash)) { $this->throw_error('100002'); # 获取魔法议会配置失败 } # 历史行为日志 $action_log_list = $this->get_data('MagicParliament')->get_action_log($plm_id, $this->action_log_num); Com_Array::multisort($action_log_list, array('reg_time' => 'asc')); $action_log_history = array(); if (!empty($action_log_list)) { foreach ($action_log_list as $action_log) { $pinfo = $this->get_data('Player')->get_player_info($action_log['player_id'], array('name')); $reg_time = date('m-d H:i', $action_log['reg_time']); $reward_info = json_decode($action_log['reward_info'], true); $reward_list = array(); if (!empty($reward_info)) { foreach ($reward_info as $item_id => $item_num) { $reward_list[] = array('txt' => '', 'type' => 2, 'value' => $item_id, 'param' => $item_num); } } $code = 0; switch ($action_log['action_type']) { case 1: # 赴会 $code = 100011; # 赴会消息提示内容 $params = array(array(array('txt' => '', 'type' => 7, 'value' => $reg_time, 'param' => '')), array(array('txt' => $pinfo['name'], 'type' => 0, 'value' => $action_log['player_id'], 'param' => '')), array(array('txt' => '', 'type' => 7, 'value' => $plm_conf_hash[$plm_id]['plm_name'], 'param' => '')), $reward_list); break; case 2: # 特权 $code = 100012; # 行使特权消息提示内容 $params = array(array(array('txt' => '', 'type' => 7, 'value' => $reg_time, 'param' => '')), array(array('txt' => $pinfo['name'], 'type' => 0, 'value' => $action_log['player_id'], 'param' => '')), array(array('txt' => '', 'type' => 7, 'value' => $plm_conf_hash[$plm_id]['privilege_name'], 'param' => '')), array(array('txt' => '', 'type' => 7, 'value' => $plm_conf_hash[$plm_id]['plm_name'], 'param' => '')), $reward_list); break; case 3: # 领取免费奖励 $code = 100013; # 领取免费奖励消息提示内容 $params = array(array(array('txt' => '', 'type' => 7, 'value' => $reg_time, 'param' => '')), array(array('txt' => $pinfo['name'], 'type' => 0, 'value' => $action_log['player_id'], 'param' => '')), $reward_list); break; } $dynamic_text = array('code' => $code, 'content' => array(), 'params' => $params); $action_log_history[] = $dynamic_text; } } # 修正特权奖励与消耗 $use_privilege_cost_res = $this->get_game('Reward')->get_revised_value($plm_conf['use_privilege_cost_res'], array($revise_info_1['privilege_cost_revise'], $revise_info_2['privilege_cost_revise'])); $use_privilege_reward = $this->get_game('Reward')->get_revised_value($plm_conf['use_privilege_reward'], array($revise_info_1['privilege_reward_revise'], $revise_info_2['privilege_reward_revise'])); $plm_info_hash[$plm_conf['plm_id']] = array('plm_id' => $plm_conf['plm_id'], 'attend_meeting_info' => array('attend_meeting_cost' => $plm_conf['attend_meeting_res_cost'], 'attend_meeting_reward' => $plm_conf['attend_meeting_reward'], 'attend_meeting_status' => $attend_meeting_status), 'privilege_info' => array('privilege_cost' => $use_privilege_cost_res, 'privilege_reward' => $use_privilege_reward, 'privilege_status' => $privilege_status), 'free_reward_info' => array('free_reward' => $plm_conf['free_reward'], 'free_reward_status' => $free_reward_status, 'remain_num' => $free_reward_num_remain), 'popularity' => intval($popularity), 'history' => $action_log_history); $out_2503 = $plm_info_hash[$plm_id]; #var_export($out_2503); return $out_2503; }