浏览代码

map_secen表不用改为gate表

cyzhao 3 年之前
父节点
当前提交
9daaf368cf

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

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2022-03-31 18:03:48
+ // 日期: 2022-04-28 11:35:46
 ////////////////////
 
 
@@ -208,5 +208,25 @@ class sm_gate
     */
     public $monsters;
 
+    /**
+    * @var Int32 城镇0/据点1/非据点2/Boss点3/;其他4 default(4) 
+    */
+    public $mapType;
+
+    /**
+    * @var String 怪物等级信息  
+    */
+    public $monsterLevel;
+
+    /**
+    * @var String 怪物特性信息  
+    */
+    public $monsterAttr;
+
+    /**
+    * @var String 探索完成奖励数据(itemid,num;itemid,num;...)  
+    */
+    public $exploreReward;
+
 }
 

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

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2021-12-21 14:42:26
+ // 日期: 2022-04-28 11:45:07
 ////////////////////
 
 

+ 6 - 6
Gameserver/Amfphp/model/User/Info_NewMap.php

@@ -38,22 +38,22 @@ class Info_NewMap extends Object_ext {
     function __construct($arg = null) {
         if (null === $arg) {
             // 直接初始化8个大陆的基本数据
-            $initMapid = 1001;                                                  # 新手村的id
+            $initMapid = 503099;                                                # 新手村的id
             $this->curMapId = $initMapid;                                       # 当前位置为新手村
             $this->unlockedFootholds = ObjectInit();
-            $mo = GameConfig::map_scene_getItem($initMapid);
+            $mo = GameConfig::gate_getItem($initMapid);
             $footHold = new Ins_FootHold();
-            $footHold->mapId = $mo->mapId;
+            $footHold->mapId = $mo->gateId;
             $footHold->curMapType = $mo->mapType;
             $this->unlockedFootholds->$initMapid = $footHold;                   # 初始化解锁新手村据点数据
             #
             // 把2号据点也解锁
-            $initMapid = 1002;                                                  # 新手村的id
+            $initMapid = 503100;                                                  # 新手村的id
             // $this->curMapId = $initMapid;                                       # 当前位置为新手村
             // $this->unlockedFootholds = ObjectInit();
-            $mo = GameConfig::map_scene_getItem($initMapid);
+            $mo = GameConfig::gate_getItem($initMapid);
             $footHold = new Ins_FootHold();
-            $footHold->mapId = $mo->mapId;
+            $footHold->mapId = $mo->gateId;
             $footHold->curMapType = $mo->mapType;
             $this->unlockedFootholds->$initMapid = $footHold;                   # 初始化解锁新手村据点数据
             

+ 4 - 0
Gameserver/Amfphp/model/User/Ins_ChuansongzhenMapData.php

@@ -14,6 +14,10 @@ namespace loyalsoft;
  * @author c'y'zhao
  */
 class Ins_ChuansongzhenMapData extends Object_ext{
+    
+    public $mapId;
+
+
     /**
      * @var int 使用传送门的场景的地图id
      */

+ 29 - 11
Gameserver/Amfphp/process/MapProc.php

@@ -62,13 +62,20 @@ class MapProc {
         
         StoreProc::removeItemFromStore(ctx()->store, $itemId);
        
-        $zoneId = GameConfig::map_scene_getItem($curMapId)->zoneId;
-        $item = GameConfig::map_scene_zoneid_getItemArray($zoneId)[0];        
-        $mid = $item->mapId;
+        $gateZone = GameConfig::gate_zone();
+        my_Assert($gateZone != null, ErrCode::err_const_no);
+        foreach ($gateZone as $zoneid => $val) {
+            $list = explode(',', $val->contains);
+            if(in_array($curMapId, $list)){
+                $mid = $list[0];
+                break;
+            }
+        }      
         
         $newMap->curMapId = $mid; 
         
         $data = new Ins_ChuansongzhenMapData();
+        $data->mapId = $mid;
         $data->lastMapId = $mapId;
         $data->position_x = $x;
         $data->position_y = $y;
@@ -92,11 +99,20 @@ class MapProc {
         //$mapid = req()->paras[0];                                               # 提取参数		                                       
         $newMap = ctx()->newMap();
         $curMapId = $newMap->curMapId;
-        $zoneId = GameConfig::map_scene_getItem($curMapId)->zoneId;
-
-        $item = GameConfig::map_scene_zoneid_getItemArray($zoneId)[0];         
-        $lastMapid = $item->mapId;
-                
+        
+//        $zoneId = GameConfig::map_scene_getItem($curMapId)->zoneId;
+//        $item = GameConfig::map_scene_zoneid_getItemArray($zoneId)[0];         
+        $lastMapid = $curMapId;
+        $gateZone = GameConfig::gate_zone();
+        my_Assert($gateZone != null, ErrCode::err_const_no);
+        foreach ($gateZone as $zoneid => $val) {
+            $list = explode(',', $val->contains);
+            if(in_array($curMapId, $list)){
+                $lastMapid = $list[0];
+                break;
+            }
+        } 
+        
         if(StlUtil::dictHasProperty($newMap->huichengquanRecord, $lastMapid)){           
             StlUtil::dictRemove($newMap->huichengquanRecord, $lastMapid);
         }
@@ -120,7 +136,7 @@ class MapProc {
 
         $newMap->unlockedFootholds->$mapid->exploreRewardGeted = true;
 
-        $cost = GameConfig::map_scene_getItem($mapid)->exploreReward;
+        $cost = GameConfig::gate_getItem($mapid)->exploreReward;
         StoreProc::AddMultiItemInStore($cost);
         ctx()->newMap = $newMap;
 
@@ -162,6 +178,8 @@ class MapProc {
 
             my_Assert(StlUtil::dictHasProperty($newMap->unlockedFootholds, $mapid), ErrCode::map_Unlocked);
 
+            $newMap->curMapId = $mapid;
+            
             $arr = self::countFootHoldExplorerNum($mapid, $type, $typeid, $newMap);
             $explorerNum = $arr[0];
             $num = $arr[1];
@@ -234,9 +252,9 @@ class MapProc {
         $newMap = ctx()->newMap();
         # 检查目标地图是否已经解锁
         my_Assert(!isset($newMap->unlockedFootholds->$targetMapId), ErrCode::map_Unlocked);
-        $mo = GameConfig::map_scene_getItem($targetMapId);
+        $mo = GameConfig::gate_getItem($targetMapId);
         $footHold = new Ins_FootHold();
-        $footHold->mapId = $mo->mapId;
+        $footHold->mapId = $mo->gateId;
         $footHold->curMapType = $mo->mapType;
         $this->unlockedFootholds->$targetMapId = $footHold;                     #  添加解锁据点数据
         ctx()->newMap = $newMap;

+ 8 - 6
Gameserver/Amfphp/process/StoreProc.php

@@ -127,12 +127,14 @@ class StoreProc {
         my_Assert($store->battleItem->$index->num >= 1, ErrCode::store_bettleitemNumNotEnough);
         $id = $store->battleItem->$index->id;
         $store->battleItem->$index->num -= 1;
-        if(StlUtil::dictHasProperty($store->items,$id)){
-            $store->items->$id -= 1;
-            if($store->items->$id <= 0){
-                unset($store->items->$id);
-            }
-        } 
+        
+        StoreProc::removeItemFromStore($store, $id);
+//        if(StlUtil::dictHasProperty($store->items,$id)){                     
+//            $store->items->$id -= 1;
+//            if($store->items->$id <= 0){
+//                unset($store->items->$id);
+//            }
+//        } 
         if($store->battleItem->$index->num <= 0){          
             unset($store->battleItem->$index);                      
         }