|
@@ -34,10 +34,123 @@ class StoreProc {
|
|
return StoreProc::equipUpgrade_MaxLv();
|
|
return StoreProc::equipUpgrade_MaxLv();
|
|
case CmdCode::cmd_store_equipCompose: # 6406 装备合成(升阶/进化)
|
|
case CmdCode::cmd_store_equipCompose: # 6406 装备合成(升阶/进化)
|
|
return StoreProc::equipCompose();
|
|
return StoreProc::equipCompose();
|
|
|
|
+ case CmdCode::store_equip_fallLevel: #6408 装备降级
|
|
|
|
+ return StoreProc::equipFallLevel();
|
|
|
|
+ case CmdCode::store_equip_fallQual: #6409 装备降品
|
|
|
|
+ return StoreProc::equipFallQual();
|
|
default:
|
|
default:
|
|
Err(ErrCode::cmd_err);
|
|
Err(ErrCode::cmd_err);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ /**
|
|
|
|
+ * 6409 装备降品
|
|
|
|
+ * @return type
|
|
|
|
+ */
|
|
|
|
+ public static function equipFallLevel() {
|
|
|
|
+ list($uid) = req()->paras;//武器uid
|
|
|
|
+
|
|
|
|
+ $price = self::GetEquipFallLevelInfo($uid);
|
|
|
|
+ StoreProc::AddMultiItemInStore($price);
|
|
|
|
+ ctx()->store->equip->$uid->level = 1;
|
|
|
|
+
|
|
|
|
+ UserProc::updateUserInfo();
|
|
|
|
+ return Resp::ok(array(
|
|
|
|
+ 'gold' => ctx()->baseInfo->gold,
|
|
|
|
+ 'store' => ctx()->store,));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static function GetEquipFallLevelInfo($uid) {
|
|
|
|
+ my_Assert(StlUtil::dictHasProperty(ctx()->store->equip, $uid), ErrCode::user_store_NoEquip);
|
|
|
|
+ $curLv = ctx()->store->equip->$uid->level;
|
|
|
|
+ my_Assert($curLv > 1, ErrCode::user_store_equipNoFallLevel);
|
|
|
|
+
|
|
|
|
+ $equipMo = GameConfig::equip_getItem(ctx()->store->equip->$uid->typeId);
|
|
|
|
+ my_Assert($equipMo != null, ErrCode::err_const_no);
|
|
|
|
+
|
|
|
|
+ $id = $equipMo->position;
|
|
|
|
+ $strList = explode(';', glc()->equipLeveUpTuzhi);
|
|
|
|
+ $tuzhiId = 0;
|
|
|
|
+ foreach ($strList as $str) {
|
|
|
|
+ $s = explode(',', $str);
|
|
|
|
+ if ($s[0] == $id)
|
|
|
|
+ {
|
|
|
|
+ $tuzhiId = $s[1];
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $dic = GameConfig::equip_levelupgrade();
|
|
|
|
+ $gold = 0;
|
|
|
|
+ $tuzhiNum = 0;
|
|
|
|
+ for ($i = 1; $i < $curLv; $i++)
|
|
|
|
+ {
|
|
|
|
+ $gold += $dic->$i->needGold;
|
|
|
|
+ $tuzhiNum += $dic->$i->needItemNum;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $price = "1,".$gold.";".$tuzhiId.",".$tuzhiNum;
|
|
|
|
+ return $price;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 6408 装备降级
|
|
|
|
+ * @return type
|
|
|
|
+ */
|
|
|
|
+ public static function equipFallQual() {
|
|
|
|
+ list($uid) = req()->paras;
|
|
|
|
+
|
|
|
|
+ my_Assert(StlUtil::dictHasProperty(ctx()->store->equip, $uid), ErrCode::user_store_NoEquip);
|
|
|
|
+ $qual = ctx()->store->equip->$uid->qual;
|
|
|
|
+ my_Assert($qual > 4, ErrCode::user_store_equipNoFallQual);
|
|
|
|
+
|
|
|
|
+ $sList = explode(';',glc()->equipQualUnlockSkillId);
|
|
|
|
+ $tag = true;
|
|
|
|
+ $fallQual = $qual;
|
|
|
|
+ foreach ($sList as $s) {
|
|
|
|
+ $str = explode(',', $s);
|
|
|
|
+ if ($qual == $str[0])
|
|
|
|
+ {
|
|
|
|
+ $tag = false;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ $num = 0;
|
|
|
|
+ $fallQual = $str[0];
|
|
|
|
+ foreach ($str as $str2)
|
|
|
|
+ {
|
|
|
|
+ $num += 1;
|
|
|
|
+ if ($str2 == $qual)
|
|
|
|
+ {
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ my_Assert($tag, ErrCode::user_store_equipNoFallQual);
|
|
|
|
+ $posId = 1;
|
|
|
|
+ $commonId = 0;
|
|
|
|
+ $commonList = explode(';', glc()->EquipFallQualCommonItem);
|
|
|
|
+ foreach ($commonList as $str)
|
|
|
|
+ {
|
|
|
|
+ $s = explode(',', $str);
|
|
|
|
+ if ($s[0] == $posId)
|
|
|
|
+ {
|
|
|
|
+ $commonId = $s[1];
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $price = self::GetEquipFallLevelInfo($uid);
|
|
|
|
+ StoreProc::AddMultiItemInStore($price);
|
|
|
|
+ if($num -1 > 0){
|
|
|
|
+ $num-=1;
|
|
|
|
+ StoreProc::AddMultiItemInStore($commonId.','.$num);
|
|
|
|
+ }
|
|
|
|
+ ctx()->store->equip->$uid->qual = $fallQual;
|
|
|
|
+
|
|
|
|
+ UserProc::updateUserInfo();
|
|
|
|
+ return Resp::ok(array(
|
|
|
|
+ 'gold' => ctx()->baseInfo->gold,
|
|
|
|
+ 'store' => ctx()->store,));
|
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
/**
|
|
* 6406 合成
|
|
* 6406 合成
|