Browse Source

言灵召唤接口

cyzhao 3 years ago
parent
commit
82e3288190

+ 5 - 0
Gameserver/Amfphp/base/CmdCode.php

@@ -533,6 +533,11 @@ class CmdCode {
      * 言灵替换
      * 言灵替换
      */
      */
     const cmd_hero_YanLingReplace = 6329;
     const cmd_hero_YanLingReplace = 6329;
+    
+    /**
+     * 召唤言灵
+     */
+    const cmd_hero_zhaohuanYanLing = 6330;
 // </editor-fold>
 // </editor-fold>
     //
     //
     // <editor-fold defaultstate="collapsed" desc="仓库操作码 - 64xx">
     // <editor-fold defaultstate="collapsed" desc="仓库操作码 - 64xx">

+ 8 - 8
Gameserver/Amfphp/configs/GameConfig.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
  // author: gwang 
- // 日期: 2022-04-24 15:45:06
+ // 日期: 2022-05-23 16:11:44
 ////////////////////
 ////////////////////
 
 
 namespace loyalsoft;
 namespace loyalsoft;
@@ -1658,20 +1658,20 @@ class GameConfig {
         return self::get_hash_item('shop_limitTs_Type', $key);
         return self::get_hash_item('shop_limitTs_Type', $key);
     }
     }
     /**
     /**
-    * 场景地图
-    * @return \map_scene
+    * 召唤卡
+    * @return \zhaohuanCard
     */
     */
-    public static function map_scene()
+    public static function zhaohuanCard()
     { 
     { 
         static $a = null; 
         static $a = null; 
-        return self::initValue($a, 'map_scene');
+        return self::initValue($a, 'zhaohuanCard');
     }
     }
     /**
     /**
-    * @return \sm_map_scene map_scene item数据 
+    * @return \sm_zhaohuanCard zhaohuanCard item数据 
     */
     */
-    public static function map_scene_getItem($itemid)
+    public static function zhaohuanCard_getItem($itemid)
     { 
     { 
-        return self::get_hash_item('map_scene', $itemid);
+        return self::get_hash_item('zhaohuanCard', $itemid);
     }
     }
     /**
     /**
     * 场景出口对应关系
     * 场景出口对应关系

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

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
  // author: gwang 
- // 日期: 2022-05-18 11:00:06
+ // 日期: 2022-05-23 16:11:44
 ////////////////////
 ////////////////////
 
 
 /**
 /**
@@ -1656,6 +1656,22 @@ class GameConfig {
         return self::get_hash_item('shop_limitTs_Type', $key);
         return self::get_hash_item('shop_limitTs_Type', $key);
     }
     }
     /**
     /**
+    * 召唤卡
+    * @return \zhaohuanCard
+    */
+    public static function zhaohuanCard()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'zhaohuanCard');
+    }
+    /**
+    * @return \sm_zhaohuanCard zhaohuanCard item数据 
+    */
+    public static function zhaohuanCard_getItem($itemid)
+    { 
+        return self::get_hash_item('zhaohuanCard', $itemid);
+    }
+    /**
     * 场景出口对应关系
     * 场景出口对应关系
     * @return \map_scene_relation
     * @return \map_scene_relation
     */
     */

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

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
  // author: gwang 
- // 日期: 2022-05-18 10:58:34
+ // 日期: 2022-05-19 10:59:58
 ////////////////////
 ////////////////////
 
 
 
 

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

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
  // author: gwang 
- // 日期: 2022-05-16 17:27:12
+ // 日期: 2022-05-18 14:41:06
 ////////////////////
 ////////////////////
 
 
 
 

+ 62 - 0
Gameserver/Amfphp/model/Const/sm_zhaohuanCard.php

@@ -0,0 +1,62 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2022-05-23 16:09:05
+////////////////////
+
+
+/**
+ * Static Model zhaohuanCard 召唤卡
+ */
+class sm_zhaohuanCard
+{
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $tid;
+
+    /**
+    * @var Int32 召唤卡id default(0) 
+    */
+    public $typeId;
+
+    /**
+    * @var Int32 1:指定卡;2:品质固定随机卡;3:品质元素固定随机卡 default(0) 
+    */
+    public $type;
+
+    /**
+    * @var String 召唤消耗材料信息  
+    */
+    public $material;
+
+    /**
+    * @var String 魂器  
+    */
+    public $hunqi;
+
+    /**
+    * @var Int32 召唤消耗金币 default(0) 
+    */
+    public $cost;
+
+    /**
+    * @var String 召唤的言灵池  
+    */
+    public $yanlingPool;
+
+    /**
+    * @var Int32 弱点类型(元素类型)//0 空的//1 金 //2 冰 //3 火 //4 风 //5 雷 //6 毒 //7 黑暗 //8 亡灵 // 9 物理 default(0) 
+    */
+    public $weekType;
+
+    /**
+    * @var String 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $etc;
+
+}
+

+ 73 - 0
Gameserver/Amfphp/process/HeroProc.php

@@ -69,11 +69,84 @@ class HeroProc {
                 return HeroProc::YanlinUpLevel();
                 return HeroProc::YanlinUpLevel();
             case CmdCode::cmd_hero_YanLingReplace:                              #  [6329] 言灵替换
             case CmdCode::cmd_hero_YanLingReplace:                              #  [6329] 言灵替换
                 return HeroProc::YanLingReplace();
                 return HeroProc::YanLingReplace();
+            case CmdCode::cmd_hero_zhaohuanYanLing:                             # [6330] 召唤言灵   
+                return HeroProc::zhaohuanYanLing();
 // </editor-fold>
 // </editor-fold>
             default:                                                            #  err: 未知的命令码
             default:                                                            #  err: 未知的命令码
                 return Resp::err(ErrCode::cmd_err);
                 return Resp::err(ErrCode::cmd_err);
         }
         }
     }
     }
+    
+    /**
+     * 6330 召唤言灵
+     */
+    public static function zhaohuanYanLing() {
+        $cardId  = req()->paras[0];
+        //$mosterId = req()->paras[1];      # 提取参数      
+        
+        my_Assert(StlUtil::dictHasProperty(ctx()->store, $cardId) , ErrCode::err_const_no);
+        
+        $mo = GameConfig::zhaohuanCard_getItem($cardId);
+        my_Assert($mo != null, ErrCode::err_const_no);
+        my_Assert(ctx()->baseInfo->gold >= $mo->cost, ErrCode::notenough_gold_msg);     
+        my_Assert(StlUtil::dictHasProperty(ctx()->store->items, $mo->hunqi), ErrCode::err_const_no);
+        $list = explode(';', $mo->material); 
+       
+        foreach ($list as $value) {
+            $slist = explode(',',$value);
+            $id = $slist[0];
+            $num = $slist[1];
+            my_Assert(StlUtil::dictHasProperty(ctx()->store->items, $id) && ctx()->store->items->$id >= $num , ErrCode::err_const_no);            
+        }
+        ctx()->store(true)->RemoveItemFromStore($cardId, 1);
+        ctx()->base(true)->Consume_Gold($mo->cost);
+        ctx()->store(true)->RemoveItemFromStore($mo->hunqi, 1);
+        foreach ($list as $value) {
+            $slist = explode(',',$value);
+            $id = $slist[0];
+            $num = $slist[1];
+            ctx()->store(true)->RemoveItemFromStore($id,$num);      
+        }
+        
+        //1:指定卡;2:品质固定随机卡;3:品质元素固定随机卡
+        switch ($mo->type) {
+            case 1:
+               $yanlingId = $mo->yanlingPool;               
+                break;
+            case 2:
+            case 3:
+                $rList = explode(';', $mo->yanlingPool); 
+                $rand = rand(0,100);
+                
+                $start = 0;
+                $end = 0;
+                foreach ($rList as $value) {
+                    $valueList = explode(',', $value);
+                    $end += $valueList[1];
+                    
+                    if($rand >= $start && $rand < $end){
+                        $yanlingId = $valueList[0];      
+                        break;
+                    }
+                    $start = $end;
+                }
+                
+                
+                break;           
+            default:
+                break;
+        }
+        
+        $yanling = new Ins_YanLin();
+        $yanling->typeId = $yanlingId;
+        $cid = ctx()->privateState->currentId++;
+        ctx()->store(true)->yanling->$cid = $yanling;
+        
+        UserProc::updateUserInfo();
+
+        return Resp::ok(array('store' => ctx()->store,'gold'=> ctx()->baseInfo->gold,));
+    }
+    
 
 
 // <editor-fold defaultstate="collapsed" desc="技能升级与解锁">
 // <editor-fold defaultstate="collapsed" desc="技能升级与解锁">