|
@@ -113,19 +113,17 @@ class ShopProc {
|
|
|
my_Assert( $user->baseInfo->cash >= $cost, ErrCode::notenough_cash_msg);
|
|
|
$user->baseInfo->Consume_Cash($cost);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
if($mo->type == 1){
|
|
|
if($buyNum == 0){
|
|
|
$buyNum = 1;
|
|
|
my_Assert(now()-$user->privateState->lastFreeGetTs_ShopBoxCommon >= $mo->freeDownTs*24*60*60, ErrCode::user_shop_FreeNumLimit);
|
|
|
- }
|
|
|
- $user->privateState->buyNum_ShopBoxCommon += $buyNum;
|
|
|
+ }
|
|
|
} else if($mo->type == 2){
|
|
|
if($buyNum == 0){
|
|
|
$buyNum = 1;
|
|
|
my_Assert(now()-$user->privateState->lastFreeGetTs_ShopBoxBright >= $mo->freeDownTs*24*60*60, ErrCode::user_shop_FreeNumLimit);
|
|
|
}
|
|
|
- $user->privateState->buyNum_ShopBoxBright += $buyNum;
|
|
|
}
|
|
|
|
|
|
$arr = array();
|
|
@@ -143,21 +141,43 @@ class ShopProc {
|
|
|
}
|
|
|
|
|
|
$allNum *= 1000;
|
|
|
- for ($i = 0; $i < $buyNum; $i++) {
|
|
|
- $start = 0;
|
|
|
- $end = 0;
|
|
|
+ for ($i = 0; $i < $buyNum; $i++) {
|
|
|
+ $buyCount = 0;
|
|
|
+ if($mo->type == 1){
|
|
|
+ $user->privateState->buyNum_ShopBoxCommon += 1;
|
|
|
+ $buyCount = $user->privateState->buyNum_ShopBoxCommon;
|
|
|
+ } else {
|
|
|
+ $user->privateState->buyNum_ShopBoxBright += $buyNum;
|
|
|
+ $buyCount = $user->privateState->buyNum_ShopBoxBright;
|
|
|
+ }
|
|
|
+
|
|
|
+ $bichu1 = explode(',',$mo->bichu1);
|
|
|
$qual = 0;
|
|
|
- $randNum = rand (1,$allNum);
|
|
|
- foreach ($perList as $k => $val) {
|
|
|
- $str = explode(',', $value);
|
|
|
- $end += $str[1]*1000;
|
|
|
- if($randNum > $start && $randNum <= $end){
|
|
|
- $qual = $str[0];
|
|
|
- break;
|
|
|
+ if($buyCount % $bichu1[0] == 0){
|
|
|
+ $qual = $bichu1[1];
|
|
|
+ }
|
|
|
+ if($mo->bichu2 != null){
|
|
|
+ $bichu2 = explode(',',$mo->bichu2);
|
|
|
+ if($buyCount % $bichu2[0] == 0){
|
|
|
+ $qual = $bichu2[1];
|
|
|
}
|
|
|
- $start = $end;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ if($qual == 0){
|
|
|
+ $start = 0;
|
|
|
+ $end = 0;
|
|
|
+ $randNum = rand (1,$allNum);
|
|
|
+ foreach ($perList as $k => $val) {
|
|
|
+ $str = explode(',', $value);
|
|
|
+ $end += $str[1]*1000;
|
|
|
+ if($randNum > $start && $randNum <= $end){
|
|
|
+ $qual = $str[0];
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ $start = $end;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if($qual >0){
|
|
|
$gemDic = GameConfig::gem();
|
|
|
$gemList = array();
|