|
@@ -918,7 +918,10 @@ class StoreProc {
|
|
|
Err(ErrCode::hero_no);
|
|
|
}
|
|
|
$user->store->yanling->$yanling_uid->herouid = $herouid; # 言灵上添加反向引用, 避免查询时的循环
|
|
|
-
|
|
|
+ $oldYLid = $collectHeros->$herouid->yanling->$itemtype->itemuid; # 旧言灵id
|
|
|
+ if ($oldYLid > 0) { # 代表替换操作
|
|
|
+ $user->store->yanling->$oldYLid->herouid = 0; # 清理旧言灵的
|
|
|
+ }
|
|
|
$collectHeros->$herouid->yanling->$itemtype->itemuid = $yanling_uid; # 英雄身上添加言灵记录
|
|
|
|
|
|
UserProc::updateUserInfo($req); # 5.回写数据
|
|
@@ -991,21 +994,27 @@ class StoreProc {
|
|
|
}
|
|
|
|
|
|
$user->store->equipment->$equipuid->herouid = $herouid; # 装备上添加反向引用, 避免查询时的循环
|
|
|
-
|
|
|
+ $oldEquipId = 0;
|
|
|
switch ($itemtype) { # 添加或替换英雄该部位的装备
|
|
|
case 1: # 武器
|
|
|
+ $oldEquipId = $collectHeros->$herouid->equip->weapon->itemuid;
|
|
|
$collectHeros->$herouid->equip->weapon->itemuid = $equipuid;
|
|
|
break;
|
|
|
- case 2: # 防具
|
|
|
+ case 2: # 防具
|
|
|
+ $oldEquipId = $collectHeros->$herouid->equip->armor->itemuid;
|
|
|
$collectHeros->$herouid->equip->armor->itemuid = $equipuid;
|
|
|
break;
|
|
|
case 3: # 饰品
|
|
|
+ $oldEquipId = $collectHeros->$herouid->equip->ring->itemuid;
|
|
|
$collectHeros->$herouid->equip->ring->itemuid = $equipuid;
|
|
|
break;
|
|
|
default :
|
|
|
Err(ErrCode::store_equip_type);
|
|
|
break;
|
|
|
}
|
|
|
+ if ($oldEquipId > 0) {
|
|
|
+ $user->store->equipment->$oldEquipId->herouid = 0;
|
|
|
+ }
|
|
|
|
|
|
UserProc::updateUserInfo($req); // 5.回写数据
|
|
|
$ret = array('resp' => "succeed!");
|
|
@@ -1021,7 +1030,7 @@ class StoreProc {
|
|
|
*/
|
|
|
static function UnWieldEquip($req) {
|
|
|
$user = $req->userInfo->game; # user引用
|
|
|
- list($itemtype, $equipuid, $herouid) = $req->paras; # 提取参数: 装备类型, 装备的UID, 拥有该装备的英雄的UID
|
|
|
+ list($itemtype, $equipuid, $herouid) = $req->paras; # 提取参数: 装备类型, 装备的UID, 拥有该装备的英雄的UID
|
|
|
|
|
|
$collectHeros = $user->heros->collectHeros;
|
|
|
if (!$collectHeros) {
|