cmd) { case CmdCode::cmd_store_put: # 6401 放入仓库 return StoreProc::AddItemInStore(); case CmdCode::cmd_store_equip: # 6402 return StoreProc::equip(); case CmdCode::cmd_store_RemoveEquip: #6403卸下装备 return StoreProc::RemoveEquip(); case CmdCode::cmd_store_equipUpgrade: # 6403 return StoreProc::equipUpgrade(); case CmdCode::cmd_store_equipUpgrade_MaxLv: # 6404 return StoreProc::equipUpgrade_MaxLv(); default: Err(ErrCode::cmd_err); } } /** * 装备 * @return type */ public static function equip() { list($uid) = req()->paras; $user = ctx(); // my_Assert(StlUtil::dictHasProperty($user->store->equip, $uid), ErrCode::user_store_NoEquip); // // $mo = GameConfig::equip_getItem($user->store->equip->$uid->typeId); // my_Assert($mo != null, ErrCode::err_const_no); // $posId = $mo->position; // // $heroId = $user->heros->CurrentHeroId; // // $user->store->equip->$uid->posId = $posId; // if($user->heros->Dic->$heroId->equipPosition->$posId > 0){ // $oldUid = $user->heros->Dic->$heroId->equipPosition->$posId; // $user->store->equip->$oldUid->posId = 0; // } // // $user->heros->Dic->$heroId->equipPosition->$posId = $uid; UserProc::updateUserInfo(); return Resp::ok(array( 'heros' => $user->heros, 'store' => $user->store,)); } /** * 卸下装备 * @return type */ public static function RemoveEquip() { list($posId) = req()->paras; $user = ctx(); // $heroId = $user->heros->CurrentHeroId; // if($user->heros->Dic->$heroId->equipPosition->$posId > 0){ // $oldUid = $user->heros->Dic->$heroId->equipPosition->$posId; // $user->store->equip->$oldUid->posId = 0; // $user->heros->Dic->$heroId->equipPosition->$posId = 0; // } UserProc::updateUserInfo(); return Resp::ok(array( 'heros' => $user->heros, 'store' => $user->store,)); } /** * 升级装备 * @return type */ public static function equipUpgrade() { list($uid) = req()->paras; //mask = 1:表示战斗中掉落 $user = ctx(); // $lv = $user->store->equip->$uid->level; // $Mo = GameConfig::equip_levelupgrade_getItem($lv+1); // my_Assert($user->baseInfo->gold >= $Mo->needGold, ErrCode::notenough_gold_msg); // // $typeId = GameConfig::equip_getItem($user->store->equip->$uid->typeId)->needTuzhiId;//图纸 // $num = $Mo->needItemNum; // if (StlUtil::dictHasProperty($user->store->items,$typeId) && $user->store->items->$typeId >= $num) // { // $user->store->removeItem($typeId, $num); // } // // $user->store->equip->$uid->level += 1; UserProc::updateUserInfo(); return Resp::ok(array( 'gold' => $user->baseInfo->gold, 'store' => $user->store)); } /** * 装备一键升级 * @return type */ public static function equipUpgrade_MaxLv() { list($uid) = req()->paras; //mask = 1:表示战斗中掉落 $user = ctx(); // $equip = $user->store->equip->$uid; // // $lv = $equip->level; // $maxLv = GameConfig::equip_getItem($equip->typeId)->maxLv; // // $need_gold = 0; // $need_item = 0; // // $itemNum = 0; // $tuzhiId = GameConfig::equip_getItem($equip->typeId)->needTuzhiId; // $needItem2 = 0; // if (StlUtil::dictHasProperty($user->store->items,$tuzhiId)) // { // $itemNum = $user->store->items->$tuzhiId; // } // // $nGold = 0; // $ll = 0; // for ($i = $lv+1; $i <= $maxLv; $i++) // { // $nGold += GameConfig::equip_levelupgrade_getItem($i)->needGold; // $needItem2 += GameConfig::equip_levelupgrade_getItem($i)->needItemNum; // if ($user->baseInfo->gold >= $nGold && $itemNum >= $needItem2) // { // $need_gold = $nGold; // $need_item = $needItem2; // $ll = $i; // continue; // } // // break; // // } // // $user->baseInfo->gold -= $need_gold; // $user->store->items->$tuzhiId -= $need_item; // $user->store->equip->$uid->level += $ll; UserProc::updateUserInfo(); return Resp::ok(array( //'gold' => $user->baseInfo->gold, //'tili' => $user->baseInfo->tili, //'store' => $user->store, )); } public static function AddItemInStore() { list($rwdStr) = req()->paras; //mask = 1:表示战斗中掉落 $user = ctx(); $err = self::AddMultiItemInStore($rwdStr); my_Assert(ErrCode::ok == $err, $err); UserProc::updateUserInfo(); return Resp::ok(array( //'gold' => $user->baseInfo->gold, //'tili' => $user->baseInfo->tili, //'cash' => $user->baseInfo->cash, 'store' => $user->store)); } /** * 具体奖励存入背包 * @param type $goodsStr * @param type $src */ public static function AddMultiItemInStore($goodsStr, $src = 1) { $ary = explode(";", $goodsStr); foreach ($ary as $value) { $val = explode(",", $value); my_Assert(count($val) > 1, "解析奖励字符串出错"); list($itemId, $num) = $val; # ID, 数量 $itemMo = GameConfig::item_getItem($itemId); switch ($itemMo->itemType) { case 1: self::PutItemsInStore($itemId, $num); break; case 2: self::PutEquipInStore($itemId, $num); break; default: break; } } } public static function PutItemsInStore($itemId,$num) { $items = ctx()->store->items; if(StlUtil::dictHasProperty($items, $itemId)){ $items->$itemId += $num; } else { $items->$itemId = $num; } ctx()->store->items = $items; } public static function PutEquipInStore($equipId,$num) { $n = count((array)ctx()->store->equip); for ($index = 0; $index < $num; $index++) { $Equip = new Ins_Equip(); ctx()->store->equip->$n = $Equip; } } }