1
This commit is contained in:
parent
68e2f9d769
commit
1fa87e437b
@ -31,6 +31,18 @@ class AddReward {
|
|||||||
return $it;
|
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)
|
protected function getExplode($string)
|
||||||
{
|
{
|
||||||
$delim = "|";
|
$delim = "|";
|
||||||
@ -170,16 +182,17 @@ class AddReward {
|
|||||||
}
|
}
|
||||||
$status = 2;
|
$status = 2;
|
||||||
$active_time = $time * 3600 + time();
|
$active_time = $time * 3600 + time();
|
||||||
if ($time == 0) {
|
|
||||||
$active_time = 0;
|
|
||||||
$status = 1;
|
|
||||||
}
|
|
||||||
$row = $conn->execQueryOne('SELECT * FROM bag WHERE accountid=:accountid AND id=:id;',
|
$row = $conn->execQueryOne('SELECT * FROM bag WHERE accountid=:accountid AND id=:id;',
|
||||||
array(
|
array(
|
||||||
':accountid' => $accountid,
|
':accountid' => $accountid,
|
||||||
'id' => $item_id
|
'id' => $item_id
|
||||||
));
|
));
|
||||||
if (!$row && $item_id != 0) {
|
if (!$row && $item_id != 0) {
|
||||||
|
if ($time == 0) {
|
||||||
|
$status = 1;
|
||||||
|
$active_time = 0;
|
||||||
|
}
|
||||||
|
$status = $this->getStatus($item_id, $status, $accountid);
|
||||||
$ret = $conn->execScript('INSERT INTO bag(accountid, id, color_id, status, active_time, create_time, modify_time) ' .
|
$ret = $conn->execScript('INSERT INTO bag(accountid, id, color_id, status, active_time, create_time, modify_time) ' .
|
||||||
' VALUES(:account_id, :id, 0, :status, :active_time, :create_time, :modify_time) ' .
|
' VALUES(:account_id, :id, 0, :status, :active_time, :create_time, :modify_time) ' .
|
||||||
' ON DUPLICATE KEY UPDATE accountid=:account_id, id=:id, color_id=0, status=:status, active_time=:active_time, modify_time=:modify_time;',
|
' ON DUPLICATE KEY UPDATE accountid=:account_id, id=:id, color_id=0, status=:status, active_time=:active_time, modify_time=:modify_time;',
|
||||||
@ -203,14 +216,18 @@ class AddReward {
|
|||||||
$this->addDiamond($item_id, $item_num, $accountid);
|
$this->addDiamond($item_id, $item_num, $accountid);
|
||||||
} else {
|
} else {
|
||||||
$nowTime = $row['active_time'];
|
$nowTime = $row['active_time'];
|
||||||
|
$status = $row['status'];
|
||||||
if ($time == 0) {
|
if ($time == 0) {
|
||||||
$nowTime = 0;
|
$nowTime = 0;
|
||||||
$status = 1;
|
if ($row['status'] == 2) {
|
||||||
|
$status = 1;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if ($row['active_time'] < time() + $time * 3600) {
|
if ($row['active_time'] < time() + $time * 3600) {
|
||||||
$nowTime = time() + $time * 3600;
|
$nowTime = time() + $time * 3600;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$status = $this->getStatus($item_id, $status,$accountid);
|
||||||
$ret = $conn->execScript('UPDATE bag SET active_time=:active_time, status=:status, modify_time=:modify_time ' .
|
$ret = $conn->execScript('UPDATE bag SET active_time=:active_time, status=:status, modify_time=:modify_time ' .
|
||||||
' WHERE accountid=:account_id AND id=:id;',
|
' WHERE accountid=:account_id AND id=:id;',
|
||||||
array(
|
array(
|
||||||
@ -232,5 +249,46 @@ class AddReward {
|
|||||||
));
|
));
|
||||||
return $item_list;
|
return $item_list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getStatus($item_id, $status, $accountid)
|
||||||
|
{
|
||||||
|
$s = $status;
|
||||||
|
$b = $this->getBag($item_id);
|
||||||
|
$bag_meta_table = require('../res/bag@bag.php');
|
||||||
|
//正在装备的道具
|
||||||
|
$flag = 0;
|
||||||
|
$conn = $this->getMysql($accountid);
|
||||||
|
if (!$conn) {
|
||||||
|
phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家');
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
if ($b['fuction'] != 5) {
|
||||||
|
foreach ($bag_meta_table as $bag_info) {
|
||||||
|
$id = $bag_info['id'];
|
||||||
|
$bag = $this->getBag($id);
|
||||||
|
if ($bag['fuction'] != $b['fuction']) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$row = $conn->execQueryOne('SELECT status FROM bag WHERE accountid=:accountid AND id=:id;',
|
||||||
|
array(
|
||||||
|
':accountid' => $accountid,
|
||||||
|
':id' => $id,
|
||||||
|
));
|
||||||
|
if ($row['status'] != 0 || !$row) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$flag = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ($flag == 1) {
|
||||||
|
$s = $status;
|
||||||
|
} else {
|
||||||
|
$s = 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$s = 0;
|
||||||
|
}
|
||||||
|
return $s;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user