Browse Source

fixed: 无尽塔特殊奖励领取记录,从int改为list<int>.

gwang 4 years ago
parent
commit
a7f0f6a06f

+ 2 - 2
Gameserver/Amfphp/model/User/Info_PrivateState.php

@@ -114,9 +114,9 @@ class Info_PrivateState extends Object_ext {
     public $endlessTower = 1;
 
     /**
-     * @var int 无尽塔的特殊奖励领取记录, 只增不减
+     * @var int[] 无尽塔的特殊奖励领取记录, 只增不减
      */
-    public $endlessTower_rewarded = 0;
+    public $endlessTower_rewarded = array();
 
 // <editor-fold defaultstate="collapsed" desc="    初始化    ">
 

+ 2 - 2
Gameserver/Amfphp/process/FightProc.php

@@ -156,7 +156,7 @@ class FightProc {
         list($index) = req()->paras;
 //        my_Assert($index % 5 == 0, ErrCode::paras_err);                         # 领取指定关卡的特殊奖励(逢5/0才有)
         my_Assert(ctx()->privateData()->endlessTower >= $index, "请先完成挑战再来领奖!"); # 防御未通关直接领奖(刷接口)
-        my_Assert($index > ctx()->privateData()->endlessTower_rewarded, "已经领取!"); # 防御已经领取
+        my_Assert(in_array($index, ctx()->privateData()->endlessTower_rewarded), "已经领取!"); # 防御已经领取
         $mo = GameConfig::endless_tower_getItem($index);
         my_Assert(isset($mo), ErrCode::err_const_no);
         my_Assert(strlen($mo->rewardOne) > 0, "该关卡无特殊奖励!");
@@ -164,7 +164,7 @@ class FightProc {
         $rewardStr = str_replace('_', ',', $rs);
         $err = StoreProc::AddMultiItemInStore($rewardStr);                      # 发放奖励
         my_Assert(ErrCode::ok == $err, $err);                                   # 防御
-        ctx()->privateData()->endlessTower_rewarded = $index;                   # 更新记录
+        ctx()->privateData()->endlessTower_rewarded[] = $index;                 # 更新记录
         UserProc::updateUserInfo();
         return Resp::ok(array(#                                                 # 返回
                     'baseInfo' => ctx()->base(),