|
@@ -44,11 +44,63 @@ class StoreProc {
|
|
|
return StoreProc::removeNewGemTip();
|
|
|
case CmdCode::store_allEquipUpgrade: # 6412 所有装备的一键升级
|
|
|
return StoreProc::allEquipUpgrade();
|
|
|
+ case CmdCode::store_gemXiLian: # 6413 洗练
|
|
|
+ return StoreProc::gemXiLian();
|
|
|
default:
|
|
|
Err(ErrCode::cmd_err);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 洗练
|
|
|
+ * @return Resp
|
|
|
+ */
|
|
|
+ public static function gemXiLian() {
|
|
|
+ list($uid) = req()->paras;
|
|
|
+
|
|
|
+ //把 qual pos u一样的宝石开锁关锁
|
|
|
+ $gemStore = ctx()->store->gemStore;
|
|
|
+ my_Assert(StlUtil::dictHasProperty($gemStore, $uid), ErrCode::user_store_NotExistGem);
|
|
|
+
|
|
|
+ $gem = new Ins_Gem($gemStore->$uid);
|
|
|
+ my_Assert($gem->mo()->qual >= 5, ErrCode::user_store_GemNotXilian);
|
|
|
+
|
|
|
+ $arr = explode(';', glc()->GemQualNeedXILianStone);
|
|
|
+ $needStone = 0;
|
|
|
+ foreach ($arr as $val) {
|
|
|
+ $str = explode(':', $val);
|
|
|
+ if($str[0] == $gem->mo()->qual){
|
|
|
+ $needStone = $str[1];
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ my_Assert(ctx()->baseInfo->xilianStone >= $needStone, ErrCode::user_store_GemNotXilian);
|
|
|
+
|
|
|
+ $dic = GameConfig::predicate();
|
|
|
+ $pList = array();
|
|
|
+ foreach ($dic as $id => $pMo) {
|
|
|
+ if($pMo->positions != null){
|
|
|
+ $list = explode(',',$pMo->positions);
|
|
|
+ if($pMo->id != $gem->predicateId && $pMo->qual == $gem->mo()->qual && in_array($gem->mo()->position, $list)){
|
|
|
+ $pList[] = $pMo->id;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $rand = random_int(0, count($list)-1);
|
|
|
+ $pId = $list[$rand];
|
|
|
+ ctx()->store->gemStore->$uid->predicateId = $pId;
|
|
|
+
|
|
|
+ ctx()->baseInfo->xilianStone -= $needStone;
|
|
|
+
|
|
|
+ UserProc::updateUserInfo();
|
|
|
+ return Resp::ok(array(
|
|
|
+ 'xilianStone' => ctx()->baseInfo->xilianStone,
|
|
|
+ 'predicateId' => $pId,
|
|
|
+ ));
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 宝石开锁解锁
|
|
|
* @return Resp
|