This commit is contained in:
aozhiwei 2020-03-27 10:09:57 +08:00
parent 1fa87e437b
commit 82bdfb1c88
9 changed files with 142 additions and 29 deletions

View File

@ -77,6 +77,8 @@ define('RAND_DIAMONDSHOP_TIME', 60); //钻石商店刷新次数
define('DIAMONDBOX', 61); //钻石宝箱花费钻石数 define('DIAMONDBOX', 61); //钻石宝箱花费钻石数
define('DIAMONDBOX10', 62); //钻石视频宝箱花费钻石数 define('DIAMONDBOX10', 62); //钻石视频宝箱花费钻石数
define('REDLIMIT', 68); //红包上限 define('REDLIMIT', 68); //红包上限
define('RECOMMEND_FOREVER_WEIGHT',85); //精选道具概率
define('RECOMMEND_TIME', 84); //道具精选时间
require 'config_loader.php'; require 'config_loader.php';

View File

@ -56,7 +56,7 @@ class AddReward {
return $arr; return $arr;
} }
public function addReward($item_id, $item_num, $account_id, $time) public function addReward($item_id, $item_num, $account_id, $time, $t)
{ {
$conn = $this->getMysql($account_id); $conn = $this->getMysql($account_id);
if (!$conn) { if (!$conn) {
@ -75,7 +75,6 @@ class AddReward {
'time' => $time 'time' => $time
)); ));
foreach ($item_list as $item) { foreach ($item_list as $item) {
$i = $this->getItem($item['item_id']); $i = $this->getItem($item['item_id']);
if ($i['type'] == 1){ if ($i['type'] == 1){
@ -87,7 +86,11 @@ class AddReward {
if ($time != 0) { if ($time != 0) {
$price = $i['diamond_hour'] * $time; $price = $i['diamond_hour'] * $time;
} }
$item_list = $this->addItem($item['item_id'], $item['time'], $account_id, $price); if ($t) {
$item_list = $this->addItem($item['item_id'], $item['time'], $account_id, $price, $t);
} else {
$item_list = $this->addItem($item['item_id'], $item['time'], $account_id, $price, 0);
}
} }
} }
return $item_list; return $item_list;
@ -169,7 +172,7 @@ class AddReward {
} }
//添加道具 //添加道具
protected function addItem($item_id, $time, $accountid, $price) protected function addItem($item_id, $time, $accountid, $price, $t)
{ {
$item_list = array(); $item_list = array();
$item_num = 1; $item_num = 1;
@ -192,7 +195,13 @@ class AddReward {
$status = 1; $status = 1;
$active_time = 0; $active_time = 0;
} }
$status = $this->getStatus($item_id, $status, $accountid); if ($t == 0) {
$status = $this->getStatus($item_id, $status,$accountid);
} else if ($t == 1){
$status = 0;
error_log(11111111111111);
$this->updateStatus($item_id, $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;',
@ -213,6 +222,7 @@ class AddReward {
$item_id = 10003; $item_id = 10003;
$item_num = $price; $item_num = $price;
$time = 0; $time = 0;
error_log(3333333333);
$this->addDiamond($item_id, $item_num, $accountid); $this->addDiamond($item_id, $item_num, $accountid);
} else { } else {
$nowTime = $row['active_time']; $nowTime = $row['active_time'];
@ -227,7 +237,13 @@ class AddReward {
$nowTime = time() + $time * 3600; $nowTime = time() + $time * 3600;
} }
} }
if ($t == 0) {
$status = $this->getStatus($item_id, $status,$accountid); $status = $this->getStatus($item_id, $status,$accountid);
} else if ($t == 1){
$status = 0;
error_log(2222222222);
$this->updateStatus($item_id, $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(
@ -290,5 +306,50 @@ class AddReward {
} }
return $s; return $s;
} }
public function updateStatus($item_id, $accountid)
{
$conn = $this->getMysql($accountid);
if(!$conn){
phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家');
return;
}
$b = $this->getBag($item_id);
$bag_meta_table = require('../res/bag@bag.php');
//正在装备的道具
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, active_time FROM bag WHERE accountid=:accountid AND id=:id;',
array(
':accountid' => $accountid,
':id' => $id,
));
if ($row['status'] != 0 || !$row) {
continue;
}
$status = 2;
if ($row['active_time'] == 0) {
$status = 1;
}
$using_ret = $conn->execScript('UPDATE bag SET status=:status, color_id=0, modify_time=:modify_time ' .
' WHERE accountid = :account_id AND id = :id;',
array(
':account_id' => $accountid,
':id' => $id,
':status' => $status,
':modify_time' => time()
));
if(!$using_ret){
die();
return;
}
}
}
}
} }
?> ?>

View File

@ -367,7 +367,7 @@ class ActivityController{
} }
//增加奖励 //增加奖励
$addreward = new classes\AddReward(); $addreward = new classes\AddReward();
$all_item_list = $addreward->addReward($item_id, $item_num, $account_id, $time); $all_item_list = $addreward->addReward($item_id, $item_num, $account_id, $time,0);
$coin_num = $addreward->getCoinNum($account_id); $coin_num = $addreward->getCoinNum($account_id);
$diamond_num = $addreward->getDiamondNum($account_id); $diamond_num = $addreward->getDiamondNum($account_id);
$item_list = array(); $item_list = array();
@ -497,7 +497,7 @@ class ActivityController{
} }
//增加奖励 //增加奖励
$addreward = new classes\AddReward(); $addreward = new classes\AddReward();
$all_item_list = $addreward->addReward($item_id, $item_num, $account_id, $time); $all_item_list = $addreward->addReward($item_id, $item_num, $account_id, $time, 0);
$coin_num = $addreward->getCoinNum($account_id); $coin_num = $addreward->getCoinNum($account_id);
$diamond_num = $addreward->getDiamondNum($account_id); $diamond_num = $addreward->getDiamondNum($account_id);
$item_list = array(); $item_list = array();
@ -545,7 +545,7 @@ class ActivityController{
$p = $this->getParameter(REWARD_TIMES); $p = $this->getParameter(REWARD_TIMES);
$times = $p['value'] - 1; $times = $p['value'] - 1;
$addreward = new classes\AddReward(); $addreward = new classes\AddReward();
$addreward->addReward($row['item_id'], $row['item_num'] * $times, $account_id); $addreward->addReward($row['item_id'], $row['item_num'] * $times, $account_id,0,0);
$coin_num = $addreward->getCoinNum($account_id); $coin_num = $addreward->getCoinNum($account_id);
echo json_encode(array( echo json_encode(array(
'errcode' => 0, 'errcode' => 0,

View File

@ -319,14 +319,14 @@ class BagController{
return; return;
} }
$item_id = $_REQUEST['item_id']; $item_id = $_REQUEST['item_id'];
error_log($item_id);
$conn = $this->getMysql($account_id); $conn = $this->getMysql($account_id);
if(!$conn){ if(!$conn){
phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家'); phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家');
return; return;
} }
$addreward = new classes\AddReward(); $addreward = new classes\AddReward();
$addreward->addReward($item_id, 1, $account_id, 1); $ptime = $this->getParameter(RECOMMEND_TIME);
$addreward->addReward($item_id, 1, $account_id, $ptime['param_value'], 0);
echo json_encode(array( echo json_encode(array(
'errcode' => 0, 'errcode' => 0,
'errmsg' => '', 'errmsg' => '',
@ -334,5 +334,55 @@ class BagController{
'color_id' => 0 'color_id' => 0
)); ));
} }
public function freeGetItem()
{
$account_id = $_REQUEST['account_id'];
//登录校验
$login = loginVerify($account_id, $_REQUEST['session_id']);
if (!$login) {
phpcommon\sendError(ERR_USER_BASE + 1, 'session无效');
return;
}
$arr = $_REQUEST['arr'];
$delim = ',';
$item_multiply = explode($delim, $arr);
$all_item_list = array();
$item_list = array();
$addreward = new classes\AddReward();
$random = Rand(0, 10000);
$time = 1;
$p = $this->getParameter(RECOMMEND_FOREVER_WEIGHT);
$ptime = $this->getParameter(RECOMMEND_TIME);
if ($random < $p['param_value']) {
$time = 0;
} else {
$time = $ptime['param_value'];
}
error_log(json_encode($item_multiply));
foreach ($item_multiply as $i) {
array_push($item_list, array(
'item_id' => $i,
'item_num' => 1,
'time' => 1,
));
$items = $addreward->addReward($i, 1, $account_id, $time, 1);
foreach($items as $it) {
array_push($all_item_list, array(
'item_id' => $it['item_id'],
'item_num' => $it['item_num'],
'time' => $it['time'],
));
}
}
$num = $addreward->getDiamondNum($account_id);
echo json_encode(array(
'errcode' => 0,
'errmsg' => '',
'item_list' => $item_list,
'diamond_nums' => $num,
'all_item_list' => $all_item_list
));
}
} }
?> ?>

View File

@ -251,7 +251,7 @@ class PassController{
'time' => $drop_multiply[2], 'time' => $drop_multiply[2],
)); ));
$addreward = new classes\AddReward(); $addreward = new classes\AddReward();
$all_item_list = $addreward->addReward($drop_multiply[0], $drop_multiply[1], $account_id, $drop_multiply[2]); $all_item_list = $addreward->addReward($drop_multiply[0], $drop_multiply[1], $account_id, $drop_multiply[2],0);
$coin_num = $addreward->getCoinNum($account_id); $coin_num = $addreward->getCoinNum($account_id);
$diamond_num = $addreward->getDiamondNum($account_id); $diamond_num = $addreward->getDiamondNum($account_id);
@ -340,7 +340,7 @@ class PassController{
$addreward = new classes\AddReward(); $addreward = new classes\AddReward();
$all_item_list = array(); $all_item_list = array();
foreach ($reward as $r) { foreach ($reward as $r) {
$items = $addreward->addReward($r['item_id'], $r['item_num'], $account_id, $r['time']); $items = $addreward->addReward($r['item_id'], $r['item_num'], $account_id, $r['time'], 0);
foreach($items as $i) { foreach($items as $i) {
array_push($all_item_list, array( array_push($all_item_list, array(
'item_id' => $i['item_id'], 'item_id' => $i['item_id'],
@ -420,7 +420,7 @@ class PassController{
} }
$addreward = new classes\AddReward(); $addreward = new classes\AddReward();
foreach ($reward as $r) { foreach ($reward as $r) {
$addreward->addReward($r['item_id'], $r['item_num'], $account_id, $r['time']); $addreward->addReward($r['item_id'], $r['item_num'], $account_id, $r['time'], 0);
} }
$ret = $conn->execScript('UPDATE user SET pass_status=1, modify_time=:modify_time ' . $ret = $conn->execScript('UPDATE user SET pass_status=1, modify_time=:modify_time ' .
' WHERE accountid=:accountid;', ' WHERE accountid=:accountid;',

View File

@ -167,7 +167,7 @@ class QuestController{
$item_id = $item_id_array[$key][0]; $item_id = $item_id_array[$key][0];
$item_num = $num_array[$key][0] * $times; $item_num = $num_array[$key][0] * $times;
$addreward = new classes\AddReward(); $addreward = new classes\AddReward();
$addreward->addReward($item_id, $item_num, $account_id, 0); $addreward->addReward($item_id, $item_num, $account_id, 0, 0);
} else { } else {
$q = $this->getQuest($quest_id); $q = $this->getQuest($quest_id);
if (!$q) { if (!$q) {
@ -178,7 +178,7 @@ class QuestController{
$reward_id = $array[0][0]; $reward_id = $array[0][0];
$reward_num = $array[0][1] * $times; $reward_num = $array[0][1] * $times;
$addreward = new classes\AddReward(); $addreward = new classes\AddReward();
$addreward->addReward($reward_id, $reward_num, $account_id, 0); $addreward->addReward($reward_id, $reward_num, $account_id, 0, 0);
} }
$addreward = new classes\AddReward(); $addreward = new classes\AddReward();
$coin_num = $addreward->getCoinNum($account_id); $coin_num = $addreward->getCoinNum($account_id);
@ -243,7 +243,7 @@ class QuestController{
$array = $this->getExplode($q['reward']); $array = $this->getExplode($q['reward']);
$reward_id = $array[0][0]; $reward_id = $array[0][0];
$reward_num = $array[0][1]; $reward_num = $array[0][1];
$addreward->addReward($reward_id, $reward_num, $account_id, 0); $addreward->addReward($reward_id, $reward_num, $account_id, 0, 0);
array_push($item_list, array( array_push($item_list, array(
'item_id' => $reward_id, 'item_id' => $reward_id,
'item_num' => $reward_num, 'item_num' => $reward_num,

View File

@ -128,7 +128,6 @@ class ShareController{
$b = $this->getbox($drop_id); $b = $this->getbox($drop_id);
$item_id_array = $this->getExplode($b['item_id']); $item_id_array = $this->getExplode($b['item_id']);
$times = count($item_id_array); $times = count($item_id_array);
error_log($times);
} }
for ($j = 0; $j < $times; $j++) { for ($j = 0; $j < $times; $j++) {
$b = $this->getbox($drop_id); $b = $this->getbox($drop_id);
@ -249,7 +248,7 @@ class ShareController{
$quest->triggerQuest(71004, 1, 1, $account_id); $quest->triggerQuest(71004, 1, 1, $account_id);
foreach ($item_list as $item) { foreach ($item_list as $item) {
$addreward = new classes\AddReward(); $addreward = new classes\AddReward();
$items = $addreward->addReward($item['item_id'], $item['item_num'], $account_id, $item['time']); $items = $addreward->addReward($item['item_id'], $item['item_num'], $account_id, $item['time'], 0);
foreach($items as $i) { foreach($items as $i) {
array_push($all_item_list, array( array_push($all_item_list, array(
'item_id' => $i['item_id'], 'item_id' => $i['item_id'],
@ -449,14 +448,14 @@ class ShareController{
'item_num' => $array[0][1], 'item_num' => $array[0][1],
'time' => $array[0][2], 'time' => $array[0][2],
)); ));
$all_item_list = $addreward->addReward($array[0][0], $array[0][1], $account_id, $array[0][2]); $all_item_list = $addreward->addReward($array[0][0], $array[0][1], $account_id, $array[0][2], 0);
} else if ($ach_id == 6) { } else if ($ach_id == 6) {
array_push($item_list, array( array_push($item_list, array(
'item_id' => 10003, 'item_id' => 10003,
'item_num' => 50, 'item_num' => 50,
'time' => 0, 'time' => 0,
)); ));
$addreward->addReward(10003, 50, $account_id); $addreward->addReward(10003, 50, $account_id, 0, 0);
} }
//更新状态 //更新状态
$ret = $conn->execScript('UPDATE share_achievement SET status=1, modify_time=:modify_time ' . $ret = $conn->execScript('UPDATE share_achievement SET status=1, modify_time=:modify_time ' .
@ -529,9 +528,9 @@ class ShareController{
$addreward = new classes\AddReward(); $addreward = new classes\AddReward();
if ($ach_id != 6) { if ($ach_id != 6) {
$array = $this->getExplode($sh['rewards']); $array = $this->getExplode($sh['rewards']);
$addreward->addReward($array[0][0], $array[0][1] * $times, $account_id, $array[0][2]); $addreward->addReward($array[0][0], $array[0][1] * $times, $account_id, $array[0][2], 0);
} else if ($ach_id == 6) { } else if ($ach_id == 6) {
$addreward->addReward(10003, 50 * $times, $account_id, 0); $addreward->addReward(10003, 50 * $times, $account_id, 0, 0);
} }
$coin_num = $addreward->getCoinNum($account_id); $coin_num = $addreward->getCoinNum($account_id);
$diamond_num = $addreward->getDiamondNum($account_id); $diamond_num = $addreward->getDiamondNum($account_id);
@ -600,7 +599,7 @@ class ShareController{
$item_num = $kefu['itemnum']; $item_num = $kefu['itemnum'];
} }
$addreward = new classes\AddReward(); $addreward = new classes\AddReward();
$addreward->addReward($item_id, $item_num, $account_id,0); $addreward->addReward($item_id, $item_num, $account_id,0,0);
array_push($item_list, array( array_push($item_list, array(
'item_id' => $item_id, 'item_id' => $item_id,
'item_num' => $item_num, 'item_num' => $item_num,
@ -688,7 +687,7 @@ class ShareController{
foreach ($user_db['kefureward_list'] as $kefureward) { foreach ($user_db['kefureward_list'] as $kefureward) {
//增加奖励 //增加奖励
$addreward = new classes\AddReward(); $addreward = new classes\AddReward();
$addreward->addReward($kefureward['item_id'], $kefureward['item_num'] * $times, $account_id, 0); $addreward->addReward($kefureward['item_id'], $kefureward['item_num'] * $times, $account_id, 0,0);
} }
$r->del($kefureward_uuid, json_encode($user_db)); $r->del($kefureward_uuid, json_encode($user_db));
$addreward = new classes\AddReward(); $addreward = new classes\AddReward();

View File

@ -226,7 +226,7 @@ class ShopController{
$r -> pexpire($shop_uuid, 1000 * 3600 * 24); $r -> pexpire($shop_uuid, 1000 * 3600 * 24);
//增加奖励 //增加奖励
$addreward = new classes\AddReward(); $addreward = new classes\AddReward();
$all_item_list = $addreward->addReward($item_id, $item_num, $account_id, $time); $all_item_list = $addreward->addReward($item_id, $item_num, $account_id, $time, 0);
$coin_num = $addreward->getCoinNum($account_id); $coin_num = $addreward->getCoinNum($account_id);
$diamond_num = $addreward->getDiamondNum($account_id); $diamond_num = $addreward->getDiamondNum($account_id);
$item_list = array(); $item_list = array();
@ -282,6 +282,7 @@ class ShopController{
$item_num = $shop['item_num']; $item_num = $shop['item_num'];
$price = $shop['price']; $price = $shop['price'];
$status = $shop['status']; $status = $shop['status'];
$time = $shop['time'];
$flag = 1; $flag = 1;
break; break;
} }
@ -294,7 +295,7 @@ class ShopController{
$p = $this->getParameter(REWARD_TIMES); $p = $this->getParameter(REWARD_TIMES);
$times = $p['param_value'] - 1; $times = $p['param_value'] - 1;
$addreward = new classes\AddReward(); $addreward = new classes\AddReward();
$addreward->addReward($item_id, $item_num * $times, $account_id); $addreward->addReward($item_id, $item_num * $times, $account_id, $time, 0);
$coin_num = $addreward->getCoinNum($account_id); $coin_num = $addreward->getCoinNum($account_id);
echo json_encode(array( echo json_encode(array(
'errcode' => 0, 'errcode' => 0,

View File

@ -284,7 +284,7 @@ class SignController{
'item_num' => $num, 'item_num' => $num,
'time' => $time, 'time' => $time,
)); ));
$items = $addreward->addReward($item_id, $num, $account_id, $time); $items = $addreward->addReward($item_id, $num, $account_id, $time,0);
foreach($items as $j) { foreach($items as $j) {
array_push($all_item_list, array( array_push($all_item_list, array(
@ -340,7 +340,7 @@ class SignController{
$item_id = $item_id_array[$i][0]; $item_id = $item_id_array[$i][0];
$num = $num_array[$i][0]; $num = $num_array[$i][0];
$time = $time_array[$i][0]; $time = $time_array[$i][0];
$addreward->addReward($item_id, $num, $account_id, $time); $addreward->addReward($item_id, $num, $account_id, $time,0);
} }
$coin_num = $addreward->getCoinNum($account_id); $coin_num = $addreward->getCoinNum($account_id);
$diamond_num = $addreward->getDiamondNum($account_id); $diamond_num = $addreward->getDiamondNum($account_id);