|
@@ -42,7 +42,7 @@ class StoreProc {
|
|
|
return StoreProc::RemoveEquipUpgradeTip();
|
|
|
case CmdCode::store_equip_removeNewGemTip: # 6411 移除是新宝石绿点提示
|
|
|
return StoreProc::RemoveNewGemTip();
|
|
|
- case CmdCode::store_allEquipUpgrade: # 6412 所有装备的一键升级
|
|
|
+ case CmdCode::store_allEquipUpgrade: # 6412 所有装备的一键升级-------废弃
|
|
|
return StoreProc::AllEquipUpgrade();
|
|
|
case CmdCode::store_gemXiLian: # 6413 洗练
|
|
|
return StoreProc::GemXiLian();
|
|
@@ -50,11 +50,58 @@ class StoreProc {
|
|
|
return StoreProc::Equiped();
|
|
|
case CmdCode::store_remove_equip: # 6413 卸下装备
|
|
|
return StoreProc::RemoveEquip();
|
|
|
+ case CmdCode::store_equip_gemSlotBuy: # 6416 购买装备宝石槽
|
|
|
+ return StoreProc::Gem_BuySlot();
|
|
|
default:
|
|
|
Err(ErrCode::cmd_err);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 6416 购买装备宝石槽
|
|
|
+ * @return type
|
|
|
+ */
|
|
|
+ public static function Gem_BuySlot() {
|
|
|
+ list($uid) = req()->paras;
|
|
|
+
|
|
|
+ $equipDic = ctx()->store->equip;
|
|
|
+ my_Assert(StlUtil::dictHasProperty($equipDic, $uid), ErrCode::user_store_NotExistEquip);
|
|
|
+ $ins_equip = new Ins_Equip($equipDic->$uid);
|
|
|
+
|
|
|
+ $mo = GameConfig::gem_slotposition_getItem($ins_equip->mo()->qual);
|
|
|
+ my_Assert(null != $mo, ErrCode::err_const_no);
|
|
|
+ $initNum = $mo->initNum_slot;
|
|
|
+ $buyNum = $mo->buyNum_slot;
|
|
|
+
|
|
|
+ $unlockIndex = 0;
|
|
|
+ if($buyNum > 0){
|
|
|
+ for ($i = $initNum+1; $i <= $initNum+$buyNum; $i++) {
|
|
|
+ if(!StlUtil::dictHasProperty($ins_equip->gemSetSlot, $i)){
|
|
|
+ $ins_equip->gemSetSlot->$i = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ $unlockIndex += 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $costArr = explode(';',$mo->cost);
|
|
|
+ $cash = explode(',', $costArr[$unlockIndex]);
|
|
|
+ my_Assert(ctx()->base(true)->cash >= $cash[1], ErrCode::notenough_cash_msg);
|
|
|
+
|
|
|
+ ctx()->base(true)->Consume_Cash($unlockIndex);
|
|
|
+ ctx()->store(true)->equip->$uid = $ins_equip;
|
|
|
+
|
|
|
+ UserProc::updateUserInfo();
|
|
|
+
|
|
|
+ return Resp::ok(array(
|
|
|
+ 'cash'=> ctx()->baseInfo->cash,
|
|
|
+ 'store'=> ctx()->store,
|
|
|
+ ));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 6413 装备
|
|
|
+ * @return type
|
|
|
+ */
|
|
|
public static function Equiped() {
|
|
|
list($uid) = req()->paras;
|
|
|
|
|
@@ -67,7 +114,10 @@ class StoreProc {
|
|
|
UserProc::updateUserInfo();
|
|
|
return Resp::ok(array());
|
|
|
}
|
|
|
-
|
|
|
+ /**
|
|
|
+ * 6413 卸下装备
|
|
|
+ * @return type
|
|
|
+ */
|
|
|
public static function RemoveEquip() {
|
|
|
list($uid) = req()->paras;
|
|
|
|
|
@@ -529,9 +579,10 @@ class StoreProc {
|
|
|
* @return type
|
|
|
*/
|
|
|
public static function GemSet() {
|
|
|
- list($uid, $type, $replaceUId) = req()->paras; //宝石uid 手动的时候记得校验u
|
|
|
+ list($equipUid, $gemUid, $slotId) = req()->paras; //宝石uid
|
|
|
+
|
|
|
$user = ctx();
|
|
|
-
|
|
|
+
|
|
|
my_Assert(StlUtil::dictHasProperty($user->store->gemStore, $uid), ErrCode::user_store_NoItem);
|
|
|
$ins_gem = new Ins_Gem($user->store->gemStore->$uid);
|
|
|
|
|
@@ -661,37 +712,35 @@ class StoreProc {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 升级装备
|
|
|
+ * 6404 升级装备
|
|
|
* @return type
|
|
|
*/
|
|
|
public static function EquipUpgrade() {
|
|
|
- list($posId) = req()->paras; //装备的部位id
|
|
|
- $user = ctx();
|
|
|
-
|
|
|
- $equip_levelDic = GameConfig::equip_levelupgrade();
|
|
|
- $maxLv = count(StlUtil::dictToArray($equip_levelDic));
|
|
|
- $lv = $user->store->equipPosition->$posId->level;
|
|
|
- my_Assert($lv < $maxLv, ErrCode::user_store_equipLevelLimit);
|
|
|
- $mo = GameConfig::equip_levelupgrade_getItem($lv);
|
|
|
- my_Assert($user->baseInfo->gold >= $mo->needGold, ErrCode::notenough_gold_msg);
|
|
|
- $costTuzhiId = GameConfig::equip_position_getItem($posId)->costTuzhiId;
|
|
|
-
|
|
|
+ list($uid) = req()->paras; //装备uid
|
|
|
+
|
|
|
+ my_Assert(StlUtil::dictHasProperty(ctx()->store->equip, $uid), ErrCode::user_store_NoEquip);
|
|
|
+ $ins_equip = new Ins_Equip(ctx()->store->equip->$uid);
|
|
|
+ my_Assert($ins_equip->level < $ins_equip->Equip_MaxLevel(), ErrCode::user_store_equipLevelLimit);
|
|
|
+
|
|
|
+ $mo = GameConfig::equip_levelupgrade_getItem($ins_equip->mo()->rarity,$ins_equip->mo()->qual,$ins_equip->mo()->position,$ins_equip->level);
|
|
|
+ my_Assert(null != $mo, ErrCode::err_const_no);
|
|
|
+ my_Assert(ctx()->baseInfo->gold >= $mo->needGold, ErrCode::notenough_gold_msg);
|
|
|
+
|
|
|
+ $costTuzhiId = GameConfig::equip_position_getItem($ins_equip->mo()->position)->costTuzhiId;
|
|
|
$tuzhiNum = 0;
|
|
|
- if (StlUtil::dictHasProperty($user->store->items, $costTuzhiId)) {
|
|
|
- $tuzhiNum = $user->store->items->$costTuzhiId;
|
|
|
+ if (StlUtil::dictHasProperty(ctx()->store->items, $costTuzhiId)) {
|
|
|
+ $tuzhiNum = ctx()->store->items->$costTuzhiId;
|
|
|
}
|
|
|
my_Assert($tuzhiNum >= $mo->needItemNum, ErrCode::notenough_item);
|
|
|
- $user->store->removeItem($costTuzhiId, $mo->needItemNum);
|
|
|
- ctx()->baseInfo->Consume_Gold($mo->needGold);
|
|
|
-
|
|
|
- $user->store->equipPosition->$posId->level += 1;
|
|
|
-
|
|
|
+
|
|
|
+ ctx()->store(true)->removeItem($costTuzhiId, $mo->needItemNum);
|
|
|
+ ctx()->base(true)->Consume_Gold($mo->needGold);
|
|
|
+
|
|
|
TaskProc::OnAnyEquipUpLevel_X();
|
|
|
TaskProc::OnAllEquipUpLevel_X();
|
|
|
TaskProc::OnEquipLevelUpNum();
|
|
|
|
|
|
- FightProc::Ranking_FightPower();
|
|
|
- ctx($user);
|
|
|
+ FightProc::Ranking_FightPower();
|
|
|
UserProc::updateUserInfo();
|
|
|
return Resp::ok(array(
|
|
|
'gold' => $user->baseInfo->gold,
|
|
@@ -699,66 +748,62 @@ class StoreProc {
|
|
|
'task' => $user->task,
|
|
|
));
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
- * 单个装备部位一键升级
|
|
|
+ * 6405 单个装备部位一键升级
|
|
|
* @return type
|
|
|
*/
|
|
|
public static function EquipUpgrade_MaxLv() {
|
|
|
- list($posId) = req()->paras; //mask = 1:表示战斗中掉落
|
|
|
- $user = ctx();
|
|
|
-
|
|
|
- $equip = $user->store->equipPosition->$posId;
|
|
|
-
|
|
|
- $lv = $equip->level;
|
|
|
- $levelupgrade = GameConfig::equip_levelupgrade();
|
|
|
- $maxLv = count((array) $levelupgrade);
|
|
|
-
|
|
|
- $need_gold = 0;
|
|
|
- $need_item = 0;
|
|
|
- $tuzhiId = GameConfig::equip_position_getItem($posId)->costTuzhiId;
|
|
|
-
|
|
|
+ list($uid) = req()->paras;
|
|
|
+
|
|
|
+ my_Assert(StlUtil::dictHasProperty(ctx()->store->equip, $uid), ErrCode::user_store_NoEquip);
|
|
|
+ $ins_equip = new Ins_Equip(ctx()->store->equip->$uid);
|
|
|
+ $maxLevel = $ins_equip->Equip_MaxLevel();
|
|
|
+ my_Assert($ins_equip->level < $ins_equip->Equip_MaxLevel(), ErrCode::user_store_equipLevelLimit);
|
|
|
+
|
|
|
+
|
|
|
+ $tuzhiId = GameConfig::equip_position_getItem($ins_equip->mo()->position)->costTuzhiId;
|
|
|
$itemNum_store = 0;
|
|
|
- if (StlUtil::dictHasProperty($user->store->items, $tuzhiId)) {
|
|
|
- $itemNum_store = $user->store->items->$tuzhiId;
|
|
|
+ if (StlUtil::dictHasProperty(ctx()->store->items, $tuzhiId)) {
|
|
|
+ $itemNum_store = ctx()->store->items->$tuzhiId;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$up_Gold = 0;
|
|
|
$up_needItem = 0;
|
|
|
$up_lv = 0;
|
|
|
|
|
|
$noUp_gold = false;
|
|
|
$noUp_item = false;
|
|
|
- for ($i = $lv; $i <= $maxLv; $i++) {
|
|
|
- $up_Gold += GameConfig::equip_levelupgrade_getItem($i)->needGold;
|
|
|
- $up_needItem += GameConfig::equip_levelupgrade_getItem($i)->needItemNum;
|
|
|
+ for ($i = $ins_equip->level; $i <= $maxLevel; $i++) {
|
|
|
+ $up_Gold += GameConfig::equip_levelupgrade_getItem($ins_equip->mo()->rarity,$ins_equip->mo()->qual,$ins_equip->mo()->position,$i)->needGold;
|
|
|
+ $up_needItem += GameConfig::equip_levelupgrade_getItem($ins_equip->mo()->rarity,$ins_equip->mo()->qual,$ins_equip->mo()->position,$i)->needItemNum;
|
|
|
|
|
|
- if ($user->baseInfo->gold >= $up_Gold) {
|
|
|
+ if (ctx()->baseInfo->gold >= $up_Gold) {
|
|
|
$noUp_gold = true;
|
|
|
}
|
|
|
if ($itemNum_store >= $up_needItem) {
|
|
|
$noUp_item = true;
|
|
|
}
|
|
|
|
|
|
- if ($user->baseInfo->gold >= $up_Gold && $itemNum_store >= $up_needItem) {
|
|
|
- $need_gold = $up_Gold;
|
|
|
- $need_item = $up_needItem;
|
|
|
+ if (ctx()->baseInfo->gold >= $up_Gold && $itemNum_store >= $up_needItem) {
|
|
|
+ //$need_gold = $up_Gold;
|
|
|
+ //$need_item = $up_needItem;
|
|
|
$up_lv = $i;
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
if($up_lv == 0){
|
|
|
- my_Assert($noUp_gold, ErrCode::notenough_cash_msg);
|
|
|
+ my_Assert($noUp_gold, ErrCode::notenough_gold_msg);
|
|
|
my_Assert($noUp_item, ErrCode::notenough_item);
|
|
|
}
|
|
|
|
|
|
- $user->baseInfo->gold -= $need_gold;
|
|
|
- $user->store->removeItem($tuzhiId, $need_item);
|
|
|
+ ctx()->base(true)->Consume_Gold($up_Gold);
|
|
|
+ ctx()->store(true)->removeItem($tuzhiId, $up_needItem);
|
|
|
if($up_lv >0){
|
|
|
- $user->store->equipPosition->$posId->level = $up_lv;
|
|
|
+ ctx()->store->equip->$uid->level = $up_lv;
|
|
|
}
|
|
|
|
|
|
TaskProc::OnAnyEquipUpLevel_X();
|
|
@@ -766,12 +811,12 @@ class StoreProc {
|
|
|
TaskProc::OnEquipLevelUpNum();
|
|
|
|
|
|
FightProc::Ranking_FightPower();
|
|
|
- ctx($user);
|
|
|
+
|
|
|
UserProc::updateUserInfo();
|
|
|
return Resp::ok(array(
|
|
|
- 'gold' => $user->baseInfo->gold,
|
|
|
- 'store' => $user->store,
|
|
|
- 'task' => $user->task,
|
|
|
+ 'gold' => ctx()->baseInfo->gold,
|
|
|
+ 'store' => ctx()->store,
|
|
|
+ 'task' => ctx()->task,
|
|
|
));
|
|
|
}
|
|
|
|