|
@@ -25,44 +25,44 @@ class ShopProc {
|
|
|
case CmdCode::cmd_shop_BuyGift: # 6501 商城购买东西
|
|
|
return ShopProc::ShopBuyGift();
|
|
|
case CmdCode::cmd_shop_BuyTili: # 6502 买体力
|
|
|
- return ShopProc::BuyTili();
|
|
|
+ return ShopProc::BuyTili();
|
|
|
default:
|
|
|
Err(ErrCode::cmd_err);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
public static function BuyTili() {
|
|
|
list($type) = req()->paras;
|
|
|
-
|
|
|
+
|
|
|
$addTili = 0;
|
|
|
- if($type == 1){//广告
|
|
|
- $maxNum = glc()->GuanggaoGetTili_DailyMaxNum;
|
|
|
- my_Assert(ctx()->privateState->guanggaoGetTiliNum < $maxNum, ErrCode::user_shop_GuanggaoGetTiliNumLimit);
|
|
|
-
|
|
|
+ if ($type == 1) {//广告
|
|
|
+ $maxNum = glc()->GuanggaoGetTili_DailyMaxNum;
|
|
|
+ my_Assert(ctx()->privateState->guanggaoGetTiliNum < $maxNum, ErrCode::user_shop_GuanggaoGetTiliNumLimit);
|
|
|
+
|
|
|
$addTili = glc()->GuanggaoGetTili;
|
|
|
ctx()->baseInfo->Add_tili(glc()->GuanggaoGetTili);
|
|
|
ctx()->privateState->guanggaoGetTiliNum += 1;
|
|
|
} else {
|
|
|
- $maxNum = glc()->BuyTili_DailyMaxNum;
|
|
|
- my_Assert(ctx()->privateState->buyTiliNum < $maxNum, ErrCode::user_shop_buyTiliNumLimit);
|
|
|
-
|
|
|
- $arr = explode(',', glc()->BuyTiliCost);
|
|
|
- my_Assert(ctx()->baseInfo->cash >= $arr[0], ErrCode::user_shop_NotRepeatBuy);
|
|
|
+ $maxNum = glc()->BuyTili_DailyMaxNum;
|
|
|
+ my_Assert(ctx()->privateState->buyTiliNum < $maxNum, ErrCode::user_shop_buyTiliNumLimit);
|
|
|
+
|
|
|
+ $arr = explode(',', glc()->BuyTiliCost);
|
|
|
+ my_Assert(ctx()->baseInfo->cash >= $arr[0], ErrCode::user_shop_NotRepeatBuy);
|
|
|
ctx()->baseInfo->Consume_Cash($arr[0]);
|
|
|
$addTili = $arr[1];
|
|
|
ctx()->baseInfo->Add_tili($arr[1]);
|
|
|
-
|
|
|
+
|
|
|
ctx()->privateState->buyTiliNum += 1;
|
|
|
}
|
|
|
-
|
|
|
- TaskProc::OnBuyTiliOrLookGuanggao();
|
|
|
+
|
|
|
+ TaskProc::OnBuyTiliOrLookGuanggao();
|
|
|
UserProc::updateUserInfo();
|
|
|
return Resp::ok(array(
|
|
|
- "privateState"=>ctx()->privateState,
|
|
|
- "baseInfo"=>ctx()->baseInfo,
|
|
|
- "tili"=>$addTili,
|
|
|
- "task"=> ctx()->task,
|
|
|
- ));
|
|
|
+ "privateState" => ctx()->privateState,
|
|
|
+ "baseInfo" => ctx()->baseInfo,
|
|
|
+ "tili" => $addTili,
|
|
|
+ "task" => ctx()->task,
|
|
|
+ ));
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -148,7 +148,7 @@ class ShopProc {
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
TaskProc::OnBuyNumDailyShop();
|
|
|
}
|
|
|
|
|
@@ -159,7 +159,7 @@ class ShopProc {
|
|
|
|
|
|
StoreProc::AddMultiItemInStore($mo->reward);
|
|
|
ctx()->privateState->dailyShopReceived[] = $typeId;
|
|
|
-
|
|
|
+
|
|
|
break;
|
|
|
|
|
|
case EnumShopGift::GemBox_Shop ://宝石宝箱
|
|
@@ -188,7 +188,7 @@ class ShopProc {
|
|
|
$user->privateState->lastFreeGetTs_ShopBoxBright = now();
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$arr = array();
|
|
|
$arr[] = 1;
|
|
|
$arr[] = 10;
|
|
@@ -197,7 +197,7 @@ class ShopProc {
|
|
|
}
|
|
|
TaskProc::OnOpenNumBrightBox($typeId, $buyNum);
|
|
|
TaskProc::OnOpenNumAnyBox($buyNum);
|
|
|
-
|
|
|
+
|
|
|
$perList = explode(';', $mo->percent);
|
|
|
$allNum = 0;
|
|
|
foreach ($perList as $key => $value) {
|
|
@@ -378,58 +378,62 @@ class ShopProc {
|
|
|
}
|
|
|
|
|
|
if ($tempNum >= $mo->freeNum) {
|
|
|
+ $ts = 0;
|
|
|
+ switch ($typeId) {
|
|
|
+ case 1:
|
|
|
+ $ts = $user->privateState->goldShop_CoolDownTs_1;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ $ts = $user->privateState->goldShop_CoolDownTs_2;
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ $ts = $user->privateState->goldShop_CoolDownTs_3;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ //收费买
|
|
|
if ($typeId == 1 && $user->privateState->goldShop_GuangGaoNum < $mo->guanggaoNum) {
|
|
|
- //广告
|
|
|
- //$user->privateState->goldShopReceived[] = $typeId;
|
|
|
$user->privateState->goldShop_GuangGaoNum += 1;
|
|
|
} else {
|
|
|
- $ts = 0;
|
|
|
+ my_Assert($user->baseInfo->cash >= $mo->price, ErrCode::notenough_cash_msg);
|
|
|
+ ctx()->baseInfo->Consume_Cash($mo->price);
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($ts == 0) {
|
|
|
switch ($typeId) {
|
|
|
case 1:
|
|
|
- $ts = $user->privateState->goldShop_CoolDownTs_1;
|
|
|
+ $user->privateState->goldShop_CoolDownTs_1 = now();
|
|
|
break;
|
|
|
case 2:
|
|
|
- $ts = $user->privateState->goldShop_CoolDownTs_2;
|
|
|
+ $user->privateState->goldShop_CoolDownTs_2 = now();
|
|
|
break;
|
|
|
case 3:
|
|
|
- $ts = $user->privateState->goldShop_CoolDownTs_3;
|
|
|
+ $user->privateState->goldShop_CoolDownTs_3 = now();
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- if ($ts == 0) {
|
|
|
- //收费买
|
|
|
- my_Assert($user->baseInfo->cash >= $mo->price, ErrCode::notenough_cash_msg);
|
|
|
- ctx()->baseInfo->Consume_Cash($mo->price);
|
|
|
- switch ($typeId) {
|
|
|
- case 1:
|
|
|
- $user->privateState->goldShop_CoolDownTs_1 = now();
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- $user->privateState->goldShop_CoolDownTs_2 = now();
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- $user->privateState->goldShop_CoolDownTs_3 = now();
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- //$user->privateState->goldShopReceived[] = $typeId;
|
|
|
- } else {
|
|
|
- my_Assert(now() - $ts >= $mo->downTs, ErrCode::user_shop_FreeNumLimit);
|
|
|
- switch ($typeId) {
|
|
|
- case 1:
|
|
|
- $user->privateState->goldShop_CoolDownTs_1 = now();
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- $user->privateState->goldShop_CoolDownTs_2 = now();
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- $user->privateState->goldShop_CoolDownTs_3 = now();
|
|
|
- break;
|
|
|
- }
|
|
|
+ //$user->privateState->goldShopReceived[] = $typeId;
|
|
|
+ } else {
|
|
|
+ my_Assert(now() - $ts >= $mo->downTs, ErrCode::user_shop_FreeNumLimit);
|
|
|
+ switch ($typeId) {
|
|
|
+ case 1:
|
|
|
+ $user->privateState->goldShop_CoolDownTs_1 = now();
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ $user->privateState->goldShop_CoolDownTs_2 = now();
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ $user->privateState->goldShop_CoolDownTs_3 = now();
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ if ($typeId == 1 && $user->privateState->goldShop_GuangGaoNum >= $mo->guanggaoNum) {
|
|
|
+ $user->privateState->goldShop_CoolDownTs_1 = 0;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+
|
|
|
$user->privateState->goldShopReceived[] = $typeId;
|
|
|
StoreProc::AddMultiItemInStore($mo->reward);
|
|
|
|
|
@@ -468,9 +472,9 @@ class ShopProc {
|
|
|
'gold' => $user->baseInfo->gold,
|
|
|
'privateState' => $user->privateState,
|
|
|
'store' => $user->store,
|
|
|
- 'task'=> ctx()->task,
|
|
|
- 'reward'=> StoreProc::$reward,
|
|
|
- ));
|
|
|
+ 'task' => ctx()->task,
|
|
|
+ 'reward' => StoreProc::$reward,
|
|
|
+ ));
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -479,26 +483,26 @@ class ShopProc {
|
|
|
public static function ShopDailyClear() {
|
|
|
ctx()->privateState->dailyShopReceived = array();
|
|
|
ctx()->privateState->goldShopReceived = array();
|
|
|
- $num = count(ctx()->privateState->goldShopReceived);
|
|
|
-
|
|
|
+ $num = count(ctx()->privateState->goldShopReceived);
|
|
|
+
|
|
|
$arr = ctx()->privateState->goldShopReceived;
|
|
|
for ($i = 0; $i < $num; $i++) {
|
|
|
- if($arr[$i] == 1){
|
|
|
+ if ($arr[$i] == 1) {
|
|
|
StlUtil::arrayRemoveAt($arr, $i);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
ctx()->privateState->goldShop_CoolDownTs_1 = 0;
|
|
|
ctx()->privateState->goldShop_GuangGaoNum = 0;
|
|
|
-
|
|
|
+
|
|
|
ctx()->privateState->junbeiShopNumRecord = new \stdClass();
|
|
|
|
|
|
ctx()->privateState->dailyShop_GuangGaoNum = 0;
|
|
|
ctx()->privateState->dailyShop_GuangGaoTs = 0;
|
|
|
-
|
|
|
+
|
|
|
ctx()->privateState->guanggaoGetTiliNum = 0;
|
|
|
ctx()->privateState->buyTiliNum = 0;
|
|
|
-
|
|
|
+
|
|
|
self::ShopMonthClear();
|
|
|
}
|
|
|
|
|
@@ -512,7 +516,7 @@ class ShopProc {
|
|
|
if (now() - ctx()->privateState->monthCardShop_ts >= $monthTs) {
|
|
|
ctx()->privateState->monthCardShop_ts = 0;
|
|
|
} else {
|
|
|
- $mo = GameConfig::shop_monthcard_getItem(1);
|
|
|
+ $mo = GameConfig::shop_monthcard_getItem(1);
|
|
|
EmailProc::SendMonthCardRewardMail(req()->zoneid, req()->uid, $mo->daily_reward);
|
|
|
}
|
|
|
}
|