$mysql_conf['host'], 'port' => $mysql_conf['port'], 'user' => $mysql_conf['user'], 'passwd' => $mysql_conf['passwd'], 'dbname' => 'gamedb2002_' . $mysql_conf['instance_id'] )); return $conn; } protected function getParameter($para_id) { $parameter_meta_cluster = require('../res/parameter@parameter.php'); $parameter_meta = getParameterConfig($parameter_meta_cluster, $para_id); $p = array( 'id' => $parameter_meta['id'], 'param_name' => $parameter_meta['param_name'], 'param_value' => $parameter_meta['param_value'], ); return $p; } public function getHangReward() { $account_id = $_REQUEST['account_id']; //登录校验 $login = loginVerify($account_id, $_REQUEST['session_id']); if (!$login) { phpcommon\sendError(ERR_USER_BASE + 1, 'session无效'); return; } $conn = $this->getMysql($account_id); $item_id = 0; $num = 0; if (!$conn) { phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家'); return; } $row = $conn->execQueryOne('SELECT * FROM hang WHERE accountid=:accountid;', array( ':accountid' => $account_id )); if ($row) { $ret = $conn->execScript('UPDATE hang SET hang_time=:hang_time, modify_time=:modify_time ' . ' WHERE accountid=:accountid;', array( ':accountid' => $account_id, ':hang_time' => time(), ':modify_time' => time() )); if (!$ret) { die(); return; } $item_id = 10001; $p_num = $this->getParameter(GOLD); $p_time_limit = $this->getParameter(TIME_LIMIT); $num = floor((time() - $row['hang_time']) / 5 * $p_num['param_value']); if ((time() - $row['hang_time']) >= $p_time_limit['param_value']) { $num = floor($p_time_limit['param_value'] / 5 * $p_num['param_value']); } $num = $num; $addreward = new classes\AddReward(); $addreward->addReward($item_id, $num, $account_id); $addreward->updateReward($item_id, $num, $account_id); } echo json_encode(array( 'errcode' => 0, 'errmsg' => '', 'item_id' => $item_id, 'num' => $num, 'time' => time() )); } public function getTime() { $account_id = $_REQUEST['account_id']; //登录校验 $login = loginVerify($account_id, $_REQUEST['session_id']); if (!$login) { phpcommon\sendError(ERR_USER_BASE + 1, 'session无效'); return; } $num = 0; $conn = $this->getMysql($account_id); if (!$conn) { phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家'); return; } $row = $conn->execQueryOne('SELECT * FROM hang WHERE accountid=:accountid;', array( ':accountid' => $account_id )); if (!$row) { $ret = $conn->execScript('INSERT INTO hang(accountid, hang_time, create_time, modify_time) ' . ' VALUES(:accountid, :hang_time, :create_time, :modify_time) ' . ' ON DUPLICATE KEY UPDATE accountid=:accountid, hang_time=:hang_time, modify_time=:modify_time;', array( ':accountid' => $account_id, ':hang_time' => time(), ':create_time' => time(), ':modify_time' => time() )); if (!$ret) { die(); return; } } else { $p_num = $this->getParameter(GOLD); $p_time_limit = $this->getParameter(TIME_LIMIT); $num = floor((time() - $row['hang_time']) / 5 * $p_num['param_value']); if ((time() - $row['hang_time']) >= $p_time_limit['param_value']) { $num = floor($p_time_limit['param_value'] / 5 * $p_num['param_value']); } } echo json_encode(array( 'errcode' => 0, 'errmsg' => '', 'time' => time(), 'num' => $num )); } protected function getRewardTimes($coin_num) { $reward_meta_table = require('../res/rewardTimes@rewardTimes.php'); $times = 1; $reward_meta = array(); for ($i = 0; $i < 4; $i++) { $reward_id = $i + 91000; $reward_meta = getRewardTimesConfig($reward_meta_table, $reward_id); if ((int)$coin_num >= $reward_meta['minGold'] && (int)$coin_num <= $reward_meta['maxGold']) { $times = $reward_meta['times']; break; } } return $times; } } ?>