$mysql_conf['host'], 'port' => $mysql_conf['port'], 'user' => $mysql_conf['user'], 'passwd' => $mysql_conf['passwd'], 'dbname' => DBNAME_PREFIX . $mysql_conf['instance_id'] )); return $conn; } protected function getItem($item_id) { $g_conf_item_cluster = require('../res/item@item.php'); $item_conf = getItemConfig($g_conf_item_cluster, $item_id); $it = array( 'id' => $item_conf['id'], 'diamond' => $item_conf['diamond'], 'type' => $item_conf['fuction'], 'diamond_hour' => $item_conf['diamond_hour'] ); return $it; } protected function getBag($bag_id) { $g_conf_bag_cluster = require('../res/bag@bag.php'); $bag_conf = getBagConfig($g_conf_bag_cluster, $bag_id); $b = array( 'id' => $bag_conf['id'], 'name' => $bag_conf['name'], 'fuction' => $bag_conf['fuction'], ); return $b; } protected function getExplode($string) { $delim = "|"; $drop_multiply = explode($delim, $string); $delim1 = ":"; $arr = array(); for ($i = 0; $i < count($drop_multiply); $i++) { $mul = explode($delim1, $drop_multiply[$i]); array_push($arr, $mul); } return $arr; } 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'], 'name' => $parameter_meta['param_name'], 'param_value' => $parameter_meta['param_value'], ); return $p; } public function additem() { $item_id = $_REQUEST['item_id']; $item_num = $_REQUEST['item_num']; $accountid = $_REQUEST['account_id']; $time = $_REQUEST['time']; if (phpcommon\getIPv4() != '116.228.166.182') { return; } $conn = $this->getMysql($accountid); if (!$conn) { phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家'); die(); return; } $it = $this->getItem($item_id); if (!$it) { phpcommon\sendError(ERR_USER_BASE + 1, '没有这个道具'); die(); return; } $row = $conn->execQueryOne('SELECT * FROM bag WHERE accountid=:accountid AND id=:id;', array( ':accountid' => $accountid, 'id' => $item_id )); $status = 1; $active_time = 0; if ($item_id != 0){ if ($it['type'] == 12) { $this->addEquip($item_id, $item_num, $time, $accountid); } else { if ($it['type'] == 10 || $it['type'] == 11) { $item_num = $row['num'] + $item_num; } else { $item_num = 1; } $ret = $conn->execScript('INSERT INTO bag(accountid, id, color_id, status, active_time, create_time, modify_time, num) ' . ' VALUES(:account_id, :id, 0, :status, :active_time, :create_time, :modify_time, :num) ' . ' ON DUPLICATE KEY UPDATE accountid=:account_id, id=:id, color_id=0, status=:status, active_time=:active_time, modify_time=:modify_time, num=:num;', array( ':account_id' => $accountid, ':id' => $item_id, ':active_time' => $active_time, ':status' => $status, ':create_time' => time(), ':modify_time' => time(), ':num' => $item_num )); if(!$ret){ die(); return; } } } } //添加钻石 public function addDiamond() { $item_id = $_REQUEST['item_id']; $item_num = $_REQUEST['item_num']; $accountid = $_REQUEST['account_id']; $time = $_REQUEST['time']; if (phpcommon\getIPv4() != '116.228.166.182') { return; } $conn = $this->getMysql($accountid); if (!$conn) { phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家'); die(); return; } $row = $conn->execQueryOne('SELECT diamond_num FROM user WHERE accountid=:accountid;', array( ':accountid' => $accountid )); $ret = $conn->execScript('UPDATE user SET diamond_num=:diamond_num, modify_time=:modify_time ' . ' WHERE accountid=:accountid;', array( ':accountid' => $accountid, ':diamond_num' => $item_num + $row['diamond_num'], ':modify_time' => time() )); if (!$ret) { die(); return; } } //添加金币 public function addCoin() { $item_id = $_REQUEST['item_id']; $item_num = $_REQUEST['item_num']; $accountid = $_REQUEST['account_id']; $time = $_REQUEST['time']; if (phpcommon\getIPv4() != '116.228.166.182') { return; } $conn = $this->getMysql($accountid); if (!$conn) { phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家'); die(); } $row = $conn->execQueryOne('SELECT coin_num FROM user WHERE accountid=:accountid;', array( ':accountid' => $accountid )); $ret = $conn->execScript('UPDATE user SET coin_num=:coin_num, modify_time=:modify_time ' . ' WHERE accountid=:accountid;', array( ':accountid' => $accountid, ':coin_num' => $item_num + $row['coin_num'], ':modify_time' => time() )); if (!$ret) { die(); } } //兑换金币 public function getCoin() { $accountid = $_REQUEST['account_id']; //登录校验 $login = loginVerify($accountid, $_REQUEST['session_id']); if (!$login) { phpcommon\sendError(ERR_USER_BASE + 1, 'session无效'); return; } $num = $_REQUEST['num']; $conn = $this->getMysql($accountid); if (!$conn) { phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家'); return; } $row = $conn->execQueryOne('SELECT diamond_num, coin_num FROM user WHERE accountid=:accountid;', array( ':accountid' => $accountid )); if (!$row) { phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家'); return; } if ($row['diamond_num'] < $num) { phpcommon\sendError(ERR_USER_BASE + 2, '钻石不足'); return; } $p = $this->getParameter(DIAMONDTOCOIN_NUM); $estr = explode('|', $p['param_value']); $addnum = floor($estr[1] / $estr[0] * $num); $ret = $conn->execScript('UPDATE user SET coin_num=:coin_num, diamond_num=:diamond_num, modify_time=:modify_time ' . ' WHERE accountid=:accountid;', array( ':accountid' => $accountid, ':coin_num' => $addnum + $row['coin_num'], ':diamond_num' => $row['diamond_num'] - $num, ':modify_time' => time() )); if (!$ret) { die(); return; } echo json_encode(array( 'errcode' => 0, 'errmsg' => '', 'coin_nums' => $addnum + $row['coin_num'], 'diamond_nums' => $row['diamond_num'] - $num )); } protected function addEquip($id, $num, $time, $accountid) { $item_id = $id; $conn = $this->getMysql($accountid); if(!$conn){ phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家'); die(); return; } $row = $conn->execQueryOne('SELECT id FROM equip WHERE accountid=:accountid AND id=:id;', array( ':accountid' => $accountid, ':id' => $item_id, )); //没有装备解锁装备 $item_list = array(); if (!$row) { $rows = $conn->execQuery('SELECT using_id FROM equip WHERE accountid=:accountid;', array( ':accountid' => $accountid, )); $using_id = $item_id; if ($rows) { foreach ($rows as $r) { $using_id = $r['using_id']; } } $ret = $conn->execScript('INSERT INTO equip(accountid, id, lv, active_time, sub_time, create_time, modify_time, using_id, exp) ' . ' VALUES(:account_id, :id, 0, :active_time, :sub_time, :create_time, :modify_time, :using_id, :exp) ' . ' ON DUPLICATE KEY UPDATE accountid=:account_id, id=:id, lv=0, active_time=:active_time, sub_time=:sub_time, modify_time=:modify_time, using_id=:using_id, exp=:exp;', array( ':account_id' => $accountid, ':id' => $item_id, ':active_time' => 0, ':create_time' => time(), ':modify_time' => time(), ':sub_time' => 0, ':using_id' => $using_id, ':exp' => 0, )); if(!$ret){ die(); return; } } } } ?>