gwang 4 år sedan
förälder
incheckning
92e3e4d853

+ 1 - 1
Gameserver/Amfphp/model/Const/GameConfig.php

@@ -4,7 +4,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2020-12-16 20:54:23
+ // 日期: 2020-12-17 21:42:52
 ////////////////////
 
 /**

+ 1 - 1
Gameserver/Amfphp/model/Const/primordial_data.php

@@ -4,7 +4,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2020-10-23 09:04:33
+ // 日期: 2020-12-17 21:32:50
 ////////////////////
 
 

+ 1 - 1
Gameserver/Amfphp/model/Const/sm_drop.php

@@ -4,7 +4,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2020-12-16 20:53:33
+ // 日期: 2020-12-17 12:40:20
 ////////////////////
 
 

+ 1 - 1
Gameserver/Amfphp/model/Const/sm_eventAction.php

@@ -4,7 +4,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2020-12-16 16:48:14
+ // 日期: 2020-12-17 21:37:36
 ////////////////////
 
 

+ 1 - 1
Gameserver/Amfphp/model/Const/sm_gate.php

@@ -4,7 +4,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2020-12-16 15:17:01
+ // 日期: 2020-12-17 19:32:51
 ////////////////////
 
 

+ 1 - 1
Gameserver/Amfphp/model/Const/sm_gatelevel.php

@@ -4,7 +4,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2020-12-16 20:52:07
+ // 日期: 2020-12-17 21:08:57
 ////////////////////
 
 

+ 1 - 1
Gameserver/Amfphp/model/Const/sm_item_base.php

@@ -4,7 +4,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2020-12-16 15:38:07
+ // 日期: 2020-12-17 16:08:38
 ////////////////////
 
 

+ 1 - 1
Gameserver/Amfphp/model/Const/sm_item_taskcard.php

@@ -4,7 +4,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2020-12-16 11:15:43
+ // 日期: 2020-12-17 12:38:57
 ////////////////////
 
 

+ 1 - 1
Gameserver/Amfphp/model/Const/sm_taskcard_shop.php

@@ -4,7 +4,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2020-12-14 11:06:31
+ // 日期: 2020-12-17 15:41:09
 ////////////////////
 
 

+ 1 - 1
Gameserver/Amfphp/process/FightProc/PVPProc.php

@@ -206,7 +206,7 @@ class PVPProc {
         // 扣除刷新消耗
         $pvp = new Info_UserPVP($req->userInfo->game->pvp);
         $costCash = glc()->PVP_shop_refresh_cash;
-        my_Assert(Data_UserGame::Consume_Cash($req->userInfo->game, $costCash), ErrCode::notenough_cash_msg);
+        my_Assert(Data_UserGame::Consume_Cash($req->userInfo->game->baseInfo, $costCash), ErrCode::notenough_cash_msg);
 //        $pvp->shopRefreshTs = now() + glc()->PVP_shop_refresh_interval;         # 更新刷新时间
         $pvp->curShopItems = GameConfig::pvp_shop();                            # 重刷道具
         $req->userInfo->game->pvp = $pvp;                                       # 回写

+ 1 - 1
Gameserver/Amfphp/process/HeroProc.php

@@ -773,7 +773,7 @@ class HeroProc {
         $realCost = $arr[$index];
         my_Assert($realCost == $costCash, ErrCode::paras_err);                  # 参数错误
         my_Assert($costCash >= 0, ErrCode::paras_err);
-        my_Assert(Data_UserGame::Consume_Cash($user, $costCash), ErrCode::err_msg_goldnotenough); # 扣除宝石
+        my_Assert(Data_UserGame::Consume_Cash($user->baseInfo, $costCash), ErrCode::err_msg_goldnotenough); # 扣除宝石
         $user->heros->maxCollectCount += $buyNum;                               # 修改上限
         UserProc::updateUserInfo();
         return Resp::ok(array(

+ 1 - 1
Gameserver/Amfphp/process/PayProc.php

@@ -287,7 +287,7 @@ class PayProc {
                 }                                                               # 可以继续刷新,
                 $cishu = $userSecretshop->refreshedTimes + 1;                   # 下次
                 $amt = GameConfig::secretshop_refresh_getItem($cishu)->price;
-                if (!Data_UserGame::Consume_Cash($user, $amt)) {                # 扣除本次所需费用, 余额不足, 返回错误信息
+                if (!Data_UserGame::Consume_Cash($user->baseInfo, $amt)) {                # 扣除本次所需费用, 余额不足, 返回错误信息
                     return Resp::err(ErrCode::notenough_cash_msg);
                 }
                 $userSecretshop->refreshedTimes++;                              # 增加当天付费刷新计数

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

@@ -723,7 +723,7 @@ class StoreProc {
     /**
      * 背包扩容
      * @param type $req
-     * @return type
+     * @return req
      */
     public static function AddPacketNum($req) {
         $user = $req->userInfo->game;                                           # user引用
@@ -732,7 +732,7 @@ class StoreProc {
         }
         $costCash = glc()->Item_Packet_NumCostCash;                             # 钻石花费
         my_Assert($costCash > 0, ErrCode::paras_err);
-        my_Assert(Data_UserGame::Consume_Cash($user, $costCash), ErrCode::notenough_cash_msg); # 6.进行消耗
+        my_Assert(Data_UserGame::Consume_Cash($user->baseInfo, $costCash), ErrCode::notenough_cash_msg); # 6.进行消耗
 
         $user->privateState->maxItemNum += 10;                                  # 扩容
         UserProc::updateUserInfo();                                             # 保存玩家数据

+ 1 - 2
Gameserver/Amfphp/process/SystemProc.php

@@ -205,7 +205,7 @@ class SystemProc {
             case 1:                                                             # 钻石
                 $cost = glc()->SystemMessage_UserSendToMyZone_Cost;
                 my_Assert($cost, ErrCode::err_msg_usersnedmsg_errorcost);
-                my_Assert(Data_UserGame::Consume_Cash($user, $cost), ErrCode::notenough_cash_msg);
+                my_Assert(Data_UserGame::Consume_Cash($user->baseInfo, $cost), ErrCode::notenough_cash_msg);
                 break;
             default :
                 Err(ErrCode::paras_err);                                        // 其他类型:参数非法
@@ -217,7 +217,6 @@ class SystemProc {
     }
 
     // -----------------辅助方法---------------------
-
     //
 
     /**

+ 48 - 27
Gameserver/Amfphp/process/TaskProc.php

@@ -69,19 +69,17 @@ class TaskProc {
         if (null == $userInfo->taskCardShop) {                                  # 防御
             $userInfo->taskCardShop = new Info_TaskCard_Shop();
         }
-        $nextTs = $userInfo->taskCardShop->lastRefreshTs + GameConfig::globalsettings()->TaskCardShop_Refresh_TS;
-        if ($nextTs <= now()) {                                                 # 已经到达刷新时间, 刷新任务卡
+        if (null == $userInfo->taskCardShop->curCards || count($userInfo->taskCardShop->curCards) < 1) {
             $arr = (array) GameConfig::taskcard_shop();                         # 奖池配置
             $arr = self::FilterPrizepool($req, $arr);                           # 利用玩家等级进行过滤
-            $rewardStr = "";
-            $err = self::Dice($arr, self::TaskCardShop_Refresh_ItemNum, $rewardStr);  # 获得随机结果
+            $reward = ArrayInit();
+            $err = self::Dice($arr, self::TaskCardShop_Refresh_ItemNum, $reward);  # 获得随机结果
             my_Assert(ErrCode::ok == $err, $err);
-
-            $userInfo->taskCardShop->curCards = $rewardStr;                     # 更新任务卡列表
+            $userInfo->taskCardShop->curCards = $reward;                        # 更新任务卡列表
             $req->userInfo->game = $userInfo;
             UserProc::updateUserInfo();                                         # 回写玩家数据 
         }
-        return \Resp::ok(array('taskCardShop' => $userInfo->taskCardShop));     # 返回最新任务卡列表
+        return Resp::ok(array('taskCardShop' => $userInfo->taskCardShop));      # 返回最新任务卡列表
     }
 
     /**
@@ -93,12 +91,30 @@ class TaskProc {
         $shopItemMo = GameConfig::taskcard_shop_getItem($typeId);
         my_Assert(null != $shopItemMo, ErrCode::err_const_no);                  # 常量异常
         my_Assert($num == 1, ErrCode::paras_err);                               # 数量异常
-        my_Assert($shopItemMo->pricetype == 1, ErrCode::pay_m_type_err);        # 定价类型异常
         $userInfo = $req->userInfo->game;
-        my_Assert($userInfo->Consume_Cash($userInfo, $shopItemMo->price), ErrCode::notenough_cash_msg); # 扣除费用
+        switch ($shopItemMo->pricetype) {
+            case 0:                     # 人民币
+                Err(ErrCode::err_method_notimplement);
+//                my_Assert(Data_UserGame::Consume_Cash($userInfo->baseInfo, $shopItemMo->price), ErrCode::notenough_cash_msg); # 扣除费用
+                break;
+            case 1:                     # 钻石
+                my_Assert(Data_UserGame::Consume_Cash($userInfo->baseInfo, $shopItemMo->price), ErrCode::notenough_cash_msg); # 扣除费用
+                break;
+            case 2:                     # 金币
+                my_Assert(Data_UserGame::Consume_Gold($userInfo->baseInfo, $shopItemMo->price), ErrCode::notenough_gold_msg); # 扣除费用
+                break;
+            default:
+                Err(ErrCode::pay_m_type_err);                               # 定价类型异常
+                break;
+        }
+
         $cid = StoreProc::PutTaskCardInStore($typeId, $req);                    # 添加任务卡到背包
+        UserProc::updateUserInfo();
         NormalEventProc::OnTaskBag_new_Card($cid, $num);                        # 播放获得任务卡事件
-        return Resp::ok(array('store' => $req->userInfo->game->store));         # 返回成功
+        return Resp::ok(array(
+                    'gold' => $req->userInfo->game->baseInfo->gold,
+                    'cash' => $req->userInfo->game->baseInfo->cash,
+                    'store' => $req->userInfo->game->store));         # 返回成功
     }
 
     /**
@@ -108,20 +124,24 @@ class TaskProc {
     public static function OnTaskCardShopRefresh($req) {
         $cost = GameConfig::globalsettings()->TaskCardShop_Refresh_Cash;        # 消耗
         $userInfo = $req->userInfo->game;
-        my_Assert($userInfo->Consume_Cash($userInfo, $cost), ErrCode::notenough_cash_msg); # 扣除费用
+//        var_dump(Data_UserGame::Consume_Cash($userInfo->baseInfo, $cost));
+        my_Assert(Data_UserGame::Consume_Cash($userInfo->baseInfo, $cost), ErrCode::notenough_cash_msg); # 扣除费用
         // 刷新任务卡
         $arr = (array) GameConfig::taskcard_shop();                             # 奖池配置
         $arr = self::FilterPrizepool($req, $arr);                               # 利用玩家等级进行过滤
-        $rewardStr = "";
-        $err = self::Dice($arr, self::TaskCardShop_Refresh_ItemNum, $rewardStr); # 获得随机结果
+        $reward = ArrayInit();
+        $err = self::Dice($arr, self::TaskCardShop_Refresh_ItemNum, $reward); # 获得随机结果
         my_Assert(ErrCode::ok == $err, $err);
         if (null == $userInfo->taskCardShop) {                                  # 防御
             $userInfo->taskCardShop = new Info_TaskCard_Shop();
         }
-        $userInfo->taskCardShop->curCards = $rewardStr;                         # 更新任务卡列表
+        $userInfo->taskCardShop->curCards = $reward;                         # 更新任务卡列表
         $req->userInfo->game = $userInfo;
         UserProc::updateUserInfo();                                             # 回写玩家数据 
-        return \Resp::ok(array('taskCardShop' => $userInfo->taskCardShop));     # 返回最新任务卡列表
+        return Resp::ok(array(
+                    'gold' => $req->userInfo->game->baseInfo->gold,
+                    'cash' => $req->userInfo->game->baseInfo->cash,
+                    'taskCardShop' => $userInfo->taskCardShop));     # 返回最新任务卡列表
     }
 
     /**
@@ -141,9 +161,9 @@ class TaskProc {
      * 投骰子
      * @param assoc_array $arr 抽奖物品概率
      * @param int $number 连抽次数
-     * @return string itemid,num;itemid,num;...
+     * @return array[] itemids
      */
-    static function Dice($arr, $number, &$rewardstr) {
+    static function Dice($arr, $number, &$reward) {
         $max = 0;                                                               # 计算物品权重总和
         array_walk($arr, function ($value) use(&$max) {
             $max += $value->probability;
@@ -168,7 +188,7 @@ class TaskProc {
             }
             $reward[] = $rew->typeId;
         } # for end
-        $rewardstr = implode(',', $reward);
+//        $rewardstr = implode(',', $reward);
         return ErrCode::ok;
     }
 
@@ -296,7 +316,10 @@ class TaskProc {
         NormalEventProc::OnTaskCard_Reward($taskCard->mo()->reward, null);      # 带入事件
         StlUtil::dictRemove($req->userInfo->game->store->taskcards, $taskCardUID); # 移除任务卡
         UserProc::updateUserInfo();                                             # 回存玩家数据
-        return Resp::ok(array('store' => $req->userInfo->game->store));         # 返回值更新背包
+        return Resp::ok(array(
+                    'gold' => $req->userInfo->game->baseInfo->gold,
+                    'cash' => $req->userInfo->game->baseInfo->cash,
+                    'store' => $req->userInfo->game->store));                   # 返回值更新背包
     }
 
     /**
@@ -477,7 +500,7 @@ class TaskProc {
             }
         }
         if ($bUpdate) {
-            NormalEventProc::OnTaskCardStep_Complete(null, null);               # 任务有更新
+            Resp::addTag("isTaskUpdated", true);                                # 附加tag信息, 任务有更新
             CornerSignEventProc::OnTask_Plot_new(req());
         }
     }
@@ -705,20 +728,19 @@ class TaskProc {
             }
             foreach ($task->curSteps as &$tsp) {                                 # 初期里面只有一个任务
                 $tsp = new Ins_TaskStep($tsp);
-                $bUpdate = $tsp->check_new($taskParam);
-
-                if ($bUpdate) {
-                    NormalEventProc::OnTaskCardStep_Complete($task->uid, $tsp->typeId); # 广播任务步骤完成事件
+                if ($tsp->check_new($taskParam)) {
+                    $bUpdate = true;
                     $tsp->propel($taskParam);
-
+                    NormalEventProc::OnTaskCardStep_Process($task->uid, $tsp->typeId); # 任务进度更新
                     if ($tsp->isFinish()) {
                         $task->state = Enum_TaskCardStateType::finish;
+                        NormalEventProc::OnTaskCardStep_Complete($task->uid, $tsp->typeId); # 广播任务步骤完成事件
                         NormalEventProc::OnTaskCard_Finish($task->uid, null);   # 广播卡完成事件
                     }
+                    break;
                 }
             }
         }
-
         if ($bUpdate) {                                                         # 带回数据到客户端
             req()->userInfo->game->store->taskcards = $tasks;
             UserProc::updateUserInfo();                                         # 更新玩家数据
@@ -729,7 +751,6 @@ class TaskProc {
 
     static function OnKillMonster($monsterID, $num) {
         $taskParam = new Ins_TaskEventArgs(Enum_TaskCmdType::KillMonster, Enum_PropelType::add, $num, array($monsterID));
-        var_dump($taskParam);
         return self::CheckTaskCardConditions($taskParam);
     }