|
@@ -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="技能升级与解锁">
|
|
|
|
|