$mysql_conf['host'], 'port' => $mysql_conf['port'], 'user' => $mysql_conf['user'], 'passwd' => $mysql_conf['passwd'], 'dbname' => 'gamedb2001_' . $mysql_conf['instance_id'] )); return $conn; } protected function getEquip($equip_id) { $g_conf_equip_cluster = require('../res/equipUpgrade@equipUpgrade.php'); $equip_conf = getEquipConfig($g_conf_equip_cluster, $equip_id); $e = array( 'equip_id' => $equip_conf['id'], 'equip_name' => $equip_conf['name'], 'equip_type' => $equip_conf['equip_page'], 'cost_int' => $equip_conf['cost_int'], 'max_lv' => $equip_conf['max_lv'], 'equip_cost' => $equip_conf['cost'], 'equip_attr_type' => $equip_conf['attr_type'], ); return $e; } protected function getParameter($para_id) { $g_conf_para_cluster = require('../res/parameter@parameter.php'); $para_conf = getParameterConfig($g_conf_para_cluster, $para_id); $p = array( 'id' => $para_conf['id'], 'param_name' => $para_conf['param_name'], 'param_value' => $para_conf['param_value'], ); return $p; } protected function subCoin($account_id, $equip_id, $equip_level, $free) { $e = $this->getEquip($equip_id); if (!$e) { phpcommon\sendError(ERR_USER_BASE + 2, '没有这个装备'); die(); } if ($e['max_lv'] <= $equip_level) { phpcommon\sendError(ERR_USER_BASE + 4, '装备已到满级'); die(); } $conn = $this->getMysql($account_id); if (!$conn) { phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家'); die(); } $coin_num = $e['equip_cost'] * ceil($equip_level / 5) + $e['cost_int']; if ($free == 1) { $coin_num = 0; } $rowCoin = $conn->execQueryOne('SELECT * FROM user WHERE accountid=:accountid;', array( ':accountid' => $account_id )); if ($rowCoin['coin_num'] < $coin_num) { phpcommon\sendError(ERR_USER_BASE + 3, '金币不足'); die(); } $ret = $conn->execScript('UPDATE user SET coin_num=:coin_num, modify_time=:modify_time ' . ' WHERE accountid=:accountid;', array( ':accountid' => $account_id, ':coin_num' => $rowCoin['coin_num'] - $coin_num, ':modify_time' => time() )); if (!$ret) { die(); } return $e; } public function equipInfo() { $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); $equip_list = array(); if (!$conn) { phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家'); return; } $rowCount = $conn->execQueryRowCount('SELECT * FROM equip WHERE accountid=:account_id;', array( ':account_id' => $account_id )); if ($rowCount != 0) { $active_time = 0; $equip_level = 0; $rows = $conn->execQuery('SELECT * FROM equip WHERE accountid=:account_id;', array( ':account_id' => $account_id )); foreach ($rows as $row) { if (time() >= $row['active_time'] && $row['active_time'] != 0) { $ret = $conn->execScript('UPDATE equip SET active_time=0, equip_experience_level=0, modify_time=:modify_time ' . ' WHERE accountid=:account_id AND equip_id=:equip_id;', array( ':account_id' => $account_id, ':equip_id' => $row['equip_id'], ':modify_time' => time() )); if (!$ret) { die(); return; } $equip_level = $row['equip_level']; $active_time = 0; } else { if ($row['active_time'] != 0) { $active_time = $row['active_time']; $equip_level = $row['equip_experience_level']; } else { $active_time = 0; $equip_level = $row['equip_level']; } } array_push($equip_list, array( 'equip_id' => $row['equip_id'], 'equip_level' => $equip_level, 'active_time' => $active_time )); } } echo json_encode(array( 'errcode' => 0, 'errmsg' => '', 'equip_list' => $equip_list )); } public function updateEquip() { $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); $skin_list = array(); if (!$conn) { phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家'); return; } $equip_id = $_REQUEST['equip_id']; $free = $_REQUEST['free']; $equip_level = 0; $row = $conn->execQueryOne('SELECT * FROM equip WHERE accountid=:account_id AND equip_id=:equip_id;', array( ':account_id' => $account_id, ':equip_id' => $equip_id )); if (!$row) { $e = $this->subCoin($account_id, $equip_id, 1, $free); $ret = $conn->execScript('INSERT INTO equip(accountid, equip_id, equip_level, equip_experience_level, active_time, create_time, modify_time) ' . ' VALUES(:accountid, :equip_id, :equip_level, :equip_experience_level, :active_time, :create_time, :modify_time) ' . ' ON DUPLICATE KEY UPDATE accountid=:accountid, equip_id=:equip_id, equip_level=:equip_level, equip_experience_level=:equip_experience_level, active_time=:active_time, modify_time=:modify_time;', array( ':accountid' => $account_id, ':equip_id' => $equip_id, ':equip_level' => 2, ':equip_experience_level' => 0, ':active_time' => 0, ':create_time' => time(), ':modify_time' => time() )); if (!$ret) { die(); return; } $equip_level = 2; } else { $e = $this->subCoin($account_id, $equip_id, $row['equip_level'], $free); $ret = $conn->execScript('UPDATE equip SET equip_level=:equip_level, modify_time=:modify_time ' . ' WHERE accountid=:account_id AND equip_id=:equip_id;', array( ':account_id' => $account_id, ':equip_id' => $equip_id, ':equip_level' => $row['equip_level'] + 1, ':modify_time' => time() )); if (!$ret) { die(); return; } $equip_level = $row['equip_level'] + 1; } $quest = new classes\Quest(); $quest->triggerQuest(QUEST_DAY_UPDATEEQUIP, 1, 1, $account_id); if ($row['equip_level'] + 1 >= $e['max_lv']) { $quest->triggerQuest(QUEST_SUM_EQUIPMAX, 2, 1, $account_id); } echo json_encode(array( 'errcode' => 0, 'errmsg' => '', /*'equip_id' => $equip_id, 'equip_level' => $equip_level, 'equip_time' => 0, 'coin_num' => -($e['equip_cost'] * ceil($equip_level / 5) + $e['cost_int'])*/ )); } public function freeTryEquip() { $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); $equip_id = $_REQUEST['equip_id']; $equip_level = $_REQUEST['equip_level']; if (!$conn) { phpcommon\sendError(ERR_USER_BASE + 1, '没有这个角色'); return; } $e = $this->getEquip($equip_id); if (!$e) { phpcommon\sendError(ERR_USER_BASE + 2, '没有这个装备'); return; } $p = $this->getParameter(WEAPON_TRIAL); $time = $p['param_value']; $row = $conn->execQueryOne('SELECT * FROM equip WHERE accountid=:account_id AND equip_id=:equip_id;', array( ':account_id' => $account_id, ':equip_id' => $equip_id )); if (!$row) { $ret = $conn->execScript('INSERT INTO equip(accountid, equip_id, equip_level, equip_experience_level, active_time, create_time, modify_time) ' . ' VALUES(:accountid, :equip_id, 1, :equip_experience_level, :active_time, :create_time, :modify_time) ' . ' ON DUPLICATE KEY UPDATE accountid=:accountid, equip_id=:equip_id, equip_level=1, equip_experience_level=9, active_time=:active_time, modify_time=:modify_time;', array( ':accountid' => $account_id, ':equip_id' => $equip_id, ':active_time' => time() + $time, ':create_time' => time(), ':modify_time' => time(), ':equip_experience_level' => $e['max_lv'] )); if (!$ret) { die(); return; } } else { $ret = $conn->execScript('UPDATE equip SET active_time=:active_time, equip_experience_level=:equip_experience_level, modify_time=:modify_time ' . ' WHERE accountid=:account_id AND equip_id=:equip_id;', array( ':account_id' => $account_id, ':equip_id' => $equip_id, ':active_time' => time() + $time, ':modify_time' => time(), ':equip_experience_level' => $e['max_lv'] )); if (!$ret) { die(); return; } } echo json_encode(array( 'errcode' => 0, 'errmsg' => '', /*'equip_id' => $equip_id, 'equip_level' => $e['max_lv'], 'equip_time' => time() + $time,*/ )); } } ?>