Browse Source

fixed: 片头引导结束时,替换上官雀为普通上官雀.

gwang 4 years ago
parent
commit
e1350eb348

+ 10 - 0
Gameserver/Amfphp/base/ErrCode.php

@@ -444,6 +444,16 @@ class ErrCode {
      * 玩家已经解锁
      */
     const hero_lockState = 3326;
+
+    /**
+     * 言灵已达到可装备的最大数量
+     */
+    const hero_yanling_full = 3327;
+
+    /**
+     * 英雄身上找不到这个言灵
+     */
+    const hero_yanling_notfound = 3328;
 //
 // </editor-fold>
     //

+ 10 - 0
Gameserver/Amfphp/process/StoreProc.php

@@ -514,6 +514,11 @@ class StoreProc {
             Err(ErrCode::hero_no);
         }
         $user->store->yanling->$yanling_uid->herouid = $herouid;                # 言灵上添加反向引用, 避免查询时的循环
+//        $arr = $collectHeros->$herouid->yanling;
+//        my_Assert(count($arr) < 3, ErrCode::hero_yanling_full);                 # 言灵数量最多3个
+//        $arr[] = $yanling_uid;
+//        $collectHeros->$herouid->yanling = $arr;
+
         $oldYLid = $collectHeros->$herouid->yanling->$itemtype->itemuid;        # 旧言灵id
         if ($oldYLid > 0) {                                                     # 代表替换操作
             $user->store->yanling->$oldYLid->herouid = 0;                       # 清理旧言灵的
@@ -544,6 +549,11 @@ class StoreProc {
         if ($user->store->yanling->$yanling_uid->herouid == $herouid) {         # 取装备对象
             $user->store->yanling->$yanling_uid->herouid = 0;                   # 清理反向引用
         }
+//        $arr = $collectHeros->$herouid->yanling;
+//        my_Assert(in_array($yanling_uid, $arr), ErrCode::hero_yanling_notfound); # 未装备此言灵
+//        StlUtil::arrayRemove($arr, $yanling_uid);
+//        $collectHeros->$herouid->yanling = $arr;
+
         my_Assert($collectHeros->$herouid->yanling->$itemtype->itemuid == $yanling_uid, ErrCode::store_noequip_err); # 防御
         $collectHeros->$herouid->yanling->$itemtype->itemuid = 0;               # 卸下
 

+ 3 - 7
Gameserver/Amfphp/process/UserProc.php

@@ -152,16 +152,12 @@ class UserProc {
         }
         my_Assert($guideIndex >= $NewbieGuide->guideStep, ErrCode::user_settutorialscompletedfail_err);
         if ($guideIndex == 1) {
-            $huid = 10001;
+            $huid = 10001;                                                      # 初始英雄
             $pos = 1;
-            $newYanlingUid = 1;
+            $newYanlingTypeId = 4020001;                                        # 普通上官雀
             $hero = $user->heros->collectHeros->$huid;
             $oldYanlingUId = $hero->yanling->$pos->itemuid;
-
-            $hero->yanling->$pos->itemuid = $newYanlingUid;
-            $oyl = $user->store->yanling->$oldYanlingUId;
-            $user->store->yanling->$newYanlingUid->herouid = $huid;
-            unset($oyl->herouid);
+            $user->store->yanling->$oldYanlingUId->typeId = $newYanlingTypeId;  # 直接修改类型变为普通言灵
         }
         $NewbieGuide->guideStep = $guideIndex;
         $user->NewbieGuide = $NewbieGuide;

+ 6 - 0
Gameserver/nbproject/private/private.xml

@@ -12,10 +12,16 @@
     </editor-bookmarks>
     <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
         <group>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/configs/GameConfig.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/model/User/UserHeroModel.php</file>
             <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/HeroProc.php</file>
             <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/util/CLog.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/base/ErrCode.php</file>
             <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/StoreProc.php</file>
             <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/base/CmdCode.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/model/User/UserGameModel.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/UserProc.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/model/User/UserGameHeroModel.php</file>
         </group>
     </open-files>
 </project-private>