|
@@ -75,10 +75,178 @@ class StoreProc {
|
|
|
return StoreProc::GemRemoveYanLing();
|
|
|
case CmdCode::cmd_store_unlockStore:
|
|
|
return StoreProc::unlockStore();
|
|
|
+ case CmdCode::map_buyWeapon: #6429
|
|
|
+ return self::buyWeapon();
|
|
|
+ case CmdCode::map_getShopWeapon: # 6430
|
|
|
+ return self::getShopWeapon();
|
|
|
default:
|
|
|
Err(ErrCode::cmd_err);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ */
|
|
|
+ public static function getShopWeapon() {
|
|
|
+ $npcid = req()->paras[0]; # 提取参数
|
|
|
+
|
|
|
+ self::DailyRefreshWeapon($npcid);
|
|
|
+
|
|
|
+ UserProc::updateUserInfo();
|
|
|
+
|
|
|
+ return Resp::ok(array(
|
|
|
+ "ret" => 'ok',));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @return type
|
|
|
+ */
|
|
|
+ public static function buyWeapon() {
|
|
|
+ $npcid = req()->paras[0]; # 提取参数
|
|
|
+ $weaponId = req()->paras[1]; # 提取参数
|
|
|
+
|
|
|
+ $store = ctx()->store(true);
|
|
|
+ $type = 0;
|
|
|
+
|
|
|
+ $tag = true;
|
|
|
+ if(StlUtil::dictHasProperty($store->weaponReward, $npcid)){
|
|
|
+ $dic = $store->weaponReward->$npcid;
|
|
|
+ foreach ($dic as $k => $list) {
|
|
|
+ if(in_array($weaponId, $list)){
|
|
|
+ $tag = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $tag = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ my_Assert($tag == false, ErrCode::store_weaponCantBuy);
|
|
|
+
|
|
|
+ $list = GameConfig::shop_weapon_getItemArray($npcid);
|
|
|
+ $cost = 0;
|
|
|
+ foreach ($list as $item) {
|
|
|
+ $weaponList = explode(';',$item->weaponlist);
|
|
|
+ foreach ($weaponList as $value) {
|
|
|
+ $pList = explode(',',$value);
|
|
|
+ if(in_array($weaponId, $pList)){
|
|
|
+ $type = $item->id;
|
|
|
+ $cost = $item->cost;
|
|
|
+ break 2;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ ctx()->base(true)->Consume_Gold($cost);
|
|
|
+
|
|
|
+ $store->weaponReward->$npcid->$type[] = $weaponId;
|
|
|
+
|
|
|
+// ctx()->store = $store;
|
|
|
+
|
|
|
+ UserProc::updateUserInfo();
|
|
|
+ return Resp::ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ * 每日刷新武器
|
|
|
+ */
|
|
|
+ public static function DailyRefreshWeapon($npcid = null) {
|
|
|
+ //没有数据初始化,有数据不在管
|
|
|
+ if($npcid != null && !StlUtil::dictHasProperty(ctx()->store()->weaponPool, $npcid)){
|
|
|
+ $ret = new \stdClass();
|
|
|
+ $list = GameConfig::shop_weapon_getItemArray($npcid);
|
|
|
+
|
|
|
+ foreach ($list as $value) {
|
|
|
+ $arr = explode(';',$value->weaponlist);
|
|
|
+ foreach ($arr as $item) {
|
|
|
+ $itemList = explode(',',$item);
|
|
|
+ $id = $itemList[0];
|
|
|
+ $per = $itemList[1];
|
|
|
+ $ret->$id = $per;
|
|
|
+ }
|
|
|
+ $retArr = array();
|
|
|
+ $type = $value->id;
|
|
|
+ $pArr = self::randweapon($ret, $value->num);
|
|
|
+ //数组合并
|
|
|
+ $retArr = array_merge($retArr, $pArr);
|
|
|
+ ctx()->store()->weaponPool->$npcid->$type = $retArr;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ //每日登录刷新,刷新的时候把已经购买过的武器去掉;
|
|
|
+ $dic = ctx()->store()->weaponPool;
|
|
|
+ foreach ($dic as $npcid => $val) {
|
|
|
+ $list = GameConfig::shop_weapon_getItemArray($npcid);
|
|
|
+ foreach ($list as $value) {
|
|
|
+ $ret = new \stdClass();
|
|
|
+ $arr = explode(';',$value->weaponlist);
|
|
|
+ foreach ($arr as $item) {
|
|
|
+ $itemList = explode(',',$item);
|
|
|
+ $id = $itemList[0];
|
|
|
+ $per = $itemList[1];
|
|
|
+ $ret->$id = $per;
|
|
|
+ }
|
|
|
+
|
|
|
+ $ret2 = $ret;
|
|
|
+ $type = $value->id;
|
|
|
+ if(StlUtil::dictHasProperty(ctx()->store()->weaponReward, $npcid)){
|
|
|
+ $weaponList = ctx()->store()->weaponReward->$npcid->$type;
|
|
|
+ foreach ($weaponList as $wid) {
|
|
|
+ if(StlUtil::dictHasProperty($ret, $wid)){
|
|
|
+ StlUtil::dictRemove($ret, $wid);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $temp = $ret;
|
|
|
+ if(count((array)$ret)< $value->num){//一旦所有的武器或是不够刷新数量了,重置当前档位
|
|
|
+ $temp = $ret2;
|
|
|
+ ctx()->store()->weaponReward->$npcid->$type = array();
|
|
|
+ }
|
|
|
+ $retArr= array();
|
|
|
+
|
|
|
+ $pArr = self::randweapon($temp, $value->num);
|
|
|
+
|
|
|
+ $retArr = array_merge($retArr, $pArr);
|
|
|
+ ctx()->store()->weaponPool->$npcid->$type = $retArr;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ static function randweapon($temp,$limit) {
|
|
|
+ $resultArr = array();
|
|
|
+ $num = 0;
|
|
|
+ while (true) {
|
|
|
+ $total = 0;
|
|
|
+ foreach ($temp as $k => $v) {
|
|
|
+ $total += $v;
|
|
|
+ }
|
|
|
+
|
|
|
+ $n = rand(1,$total);
|
|
|
+ $start = 0;
|
|
|
+ foreach ($temp as $id => $per) {
|
|
|
+ $start += $per;
|
|
|
+ if($n<=$start){
|
|
|
+ if(in_array($id, $resultArr)){
|
|
|
+ StlUtil::dictRemove($temp, $id);
|
|
|
+ break;
|
|
|
+ } else {
|
|
|
+ $resultArr[] = $id;
|
|
|
+ $num += 1;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if($num >= $limit){
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return $resultArr;
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 扩容
|
|
@@ -86,7 +254,7 @@ class StoreProc {
|
|
|
*/
|
|
|
static function unlockStore() {
|
|
|
//list() = req()->paras;
|
|
|
- $user = req()->userInfo->game;
|
|
|
+ $user = ctx();
|
|
|
|
|
|
$mo = GameConfig::expandStoreNum_getItem($user->privateState->expandNum + 1);
|
|
|
my_Assert($mo != null, ErrCode::err_const_no);
|
|
@@ -94,7 +262,7 @@ class StoreProc {
|
|
|
|
|
|
$user->base(true)->Consume_Gold($mo->cost);
|
|
|
$user->privateState->expandNum += 1;
|
|
|
- req()->userInfo->game = $user;
|
|
|
+ ctx($user);
|
|
|
|
|
|
UserProc::updateUserInfo(); # 回写玩家数据
|
|
|
return Resp::ok(array(
|
|
@@ -108,7 +276,7 @@ class StoreProc {
|
|
|
*/
|
|
|
static function GemSetYanLing() {
|
|
|
list($gemId, $yanlingUid) = req()->paras;
|
|
|
- $user = req()->userInfo->game;
|
|
|
+ $user = ctx();
|
|
|
|
|
|
$yanling = $user->store->yanling;
|
|
|
my_Assert(CommUtil::isPropertyExists($yanling, $yanlingUid), ErrCode::hero_yanling_errorYanling);
|
|
@@ -124,7 +292,7 @@ class StoreProc {
|
|
|
$yanling->$yanlingUid->gemId = $gemId;
|
|
|
|
|
|
$user->store->yanling = $yanling;
|
|
|
- req()->userInfo->game = $user;
|
|
|
+ ctx($user);
|
|
|
|
|
|
UserProc::updateUserInfo(); # 回写玩家数据
|
|
|
return Resp::ok(array(
|
|
@@ -137,7 +305,7 @@ class StoreProc {
|
|
|
*/
|
|
|
static function GemRemoveYanLing() {
|
|
|
list($yanlingUid) = req()->paras;
|
|
|
- $user = req()->userInfo->game;
|
|
|
+ $user = ctx();
|
|
|
my_Assert(CommUtil::isPropertyExists($user->store->yanling, $yanlingUid), ErrCode::hero_yanling_errorYanling);
|
|
|
$gemId = $user->store->yanling->$yanlingUid->gemId;
|
|
|
|
|
@@ -147,7 +315,7 @@ class StoreProc {
|
|
|
StoreProc::AddMultiItemInStore($goodsStr);
|
|
|
$user->store->yanling->$yanlingUid->gemId = 0;
|
|
|
|
|
|
- req()->userInfo->game = $user;
|
|
|
+ ctx($user);
|
|
|
|
|
|
UserProc::updateUserInfo(); # 回写玩家数据
|
|
|
return Resp::ok(array(
|
|
@@ -160,7 +328,7 @@ class StoreProc {
|
|
|
*/
|
|
|
static function GemComposeItem() {
|
|
|
list($gemId, $num) = req()->paras; # 参数 言灵uid(指定进阶的言灵实例id)
|
|
|
- $user = req()->userInfo->game;
|
|
|
+ $user = ctx();
|
|
|
//my_Assert(CommUtil::isPropertyExists($myPacketItems, $costItemId), ErrCode::store_itemnotenough); #
|
|
|
|
|
|
$mo = GameConfig::gem_formula_getItem($gemId);
|
|
@@ -191,7 +359,7 @@ class StoreProc {
|
|
|
StoreProc::removeItemFromStore($user->store, $gList[0], $gList[1]);
|
|
|
$goodsStr = $gemId . ',1';
|
|
|
StoreProc::AddMultiItemInStore($goodsStr);
|
|
|
- req()->userInfo->game = $user;
|
|
|
+ ctx($user);
|
|
|
|
|
|
UserProc::updateUserInfo(); # 回写玩家数据
|
|
|
return Resp::ok(array(
|
|
@@ -205,7 +373,7 @@ class StoreProc {
|
|
|
*/
|
|
|
static function GemResearchLvUp() {
|
|
|
//list() = req()->paras; # 参数 言灵uid(指定进阶的言灵实例id)
|
|
|
- $user = req()->userInfo->game;
|
|
|
+ $user = ctx();
|
|
|
$researchLevel = $user->Gem->level; //研究等级
|
|
|
|
|
|
$mo = GameConfig::gem_researchlevel_getItem($researchLevel + 1);
|
|
@@ -218,7 +386,7 @@ class StoreProc {
|
|
|
|
|
|
$user->base(true)->Consume_Gold($mo->unlockLevelGoldCost);
|
|
|
$user->Gem->level += 1;
|
|
|
- req()->userInfo->game = $user;
|
|
|
+ ctx($user);
|
|
|
|
|
|
UserProc::updateUserInfo(); # 回写玩家数据
|
|
|
return Resp::ok(array(
|
|
@@ -232,7 +400,7 @@ class StoreProc {
|
|
|
*/
|
|
|
static function weaponUpgrade() {
|
|
|
list($uid, $wuqiList, $items) = req()->paras; # 参数 言灵uid(指定进阶的言灵实例id)
|
|
|
- $user = req()->userInfo->game;
|
|
|
+ $user = ctx();
|
|
|
$equipment = $user->store->equipment;
|
|
|
|
|
|
my_Assert(CommUtil::isPropertyExists($equipment, $uid), ErrCode::store_weapon_err); # 玩家拥有此英雄
|
|
@@ -283,8 +451,8 @@ class StoreProc {
|
|
|
|
|
|
UserProc::CollectUserBaseParam(req()->cmd, 2, $user->baseInfo->gold, $totalGold, $user->baseInfo->gold - $totalGold, "");
|
|
|
$user->baseInfo->gold -= $totalGold;
|
|
|
- req()->userInfo->game = $user;
|
|
|
- req()->userInfo->game->store->items = $myPacketItems; # 更新背包数据
|
|
|
+ ctx($user);
|
|
|
+ ctx()->store->items = $myPacketItems; # 更新背包数据
|
|
|
if ($equipVo->level != $initLevel) {
|
|
|
NormalEventProc::OnWeaponLvlUp($uid, $equipVo->level); # 广播英雄升级事件
|
|
|
StatisticsProc::TargetStatistics(Enum_TargetStatistics::WeaponIdLevel_UserNum, $equipVo->typeId, "$equipVo->level", $initLevel);
|
|
@@ -333,7 +501,7 @@ class StoreProc {
|
|
|
*/
|
|
|
static function weaponTupo() {
|
|
|
list($uid) = req()->paras; # 参数 言灵uid(指定进阶的言灵实例id)
|
|
|
- $user = req()->userInfo->game;
|
|
|
+ $user = ctx();
|
|
|
$equipment = $user->store->equipment;
|
|
|
my_Assert(CommUtil::isPropertyExists($equipment, $uid), ErrCode::store_weapon_err); # 玩家拥有此英雄
|
|
|
|
|
@@ -365,7 +533,7 @@ class StoreProc {
|
|
|
TaskProc::OnWeaponStarUp($equipment->$uid->starLevel);
|
|
|
|
|
|
$user->store->equipment = $equipment;
|
|
|
- req()->userInfo->game = $user;
|
|
|
+ ctx($user);
|
|
|
|
|
|
UserProc::updateUserInfo(); # 回写玩家数据
|
|
|
return Resp::ok(array(
|
|
@@ -380,7 +548,7 @@ class StoreProc {
|
|
|
*/
|
|
|
static function weaponReplace() {
|
|
|
list($uid, $replaceId) = req()->paras; # 参数 言灵uid(指定进阶的言灵实例id)
|
|
|
- $user = req()->userInfo->game;
|
|
|
+ $user = ctx();
|
|
|
$equipment = $user->store->equipment;
|
|
|
my_Assert(property_exists($equipment, $uid), "找不到这个言灵");
|
|
|
my_Assert(property_exists($equipment, $replaceId), "找不到这个言灵");
|
|
@@ -390,7 +558,7 @@ class StoreProc {
|
|
|
$equipment->$replaceId->herouid = $herouid;
|
|
|
$equipment->$uid->herouid = $herouid_replace;
|
|
|
$user->store->equipment = $equipment;
|
|
|
- req()->userInfo->game = $user;
|
|
|
+ ctx($user);
|
|
|
|
|
|
UserProc::updateUserInfo(); # 回写玩家数据
|
|
|
return Resp::ok(array(
|
|
@@ -403,7 +571,7 @@ class StoreProc {
|
|
|
*/
|
|
|
static function YanlingUpgrade() {
|
|
|
list($yanlingUid) = req()->paras; # 参数 言灵uid(指定进阶的言灵实例id)
|
|
|
- $user = req()->userInfo->game;
|
|
|
+ $user = ctx();
|
|
|
my_Assert(property_exists($user->store->yanling, $yanlingUid), "找不到这个言灵");
|
|
|
$yanlingObj = $user->store->yanling->$yanlingUid;
|
|
|
$yanlingMoId = $yanlingObj->typeId;
|
|
@@ -432,7 +600,7 @@ class StoreProc {
|
|
|
*/
|
|
|
static function MergeYanlingBook() {
|
|
|
list($bookId) = req()->paras; # 参数 言灵召唤书id
|
|
|
- $user = req()->userInfo->game;
|
|
|
+ $user = ctx();
|
|
|
$bookIdCfg = GameConfig::item_yanlingbook_getItem($bookId);
|
|
|
my_Assert(null != $bookIdCfg, ErrCode::err_const_no); # 找不到言灵书常量
|
|
|
list($segId, $num) = explode(',', $bookIdCfg->seg_num); # 解析所需碎片信息
|
|
@@ -450,7 +618,7 @@ class StoreProc {
|
|
|
*/
|
|
|
static function CallYanlingByBook() {
|
|
|
list($bookId) = req()->paras; # 参数 利用的言灵召唤书id
|
|
|
- $user = req()->userInfo->game;
|
|
|
+ $user = ctx();
|
|
|
$bookIdCfg = GameConfig::item_yanlingbook_getItem($bookId);
|
|
|
my_Assert(null != $bookIdCfg, ErrCode::err_const_no); # 找不到言灵书常量
|
|
|
$err = self::removeItemFromStore($user->store, $bookId); # 扣除 召唤书
|
|
@@ -487,19 +655,19 @@ class StoreProc {
|
|
|
switch ($mo->subType) {
|
|
|
case 601: # 任务卡
|
|
|
my_Assert($num == 1, "任务卡一次只能使用一张!");
|
|
|
- $store = req()->userInfo->game->store();
|
|
|
+ $store = ctx()->store();
|
|
|
$err = $store->RemoveItemFromStore($itemType, $num); # 扣除任务卡
|
|
|
my_Assert(ErrCode::ok == $err, $err);
|
|
|
StoreProc::PutTaskCardInStore($itemType);
|
|
|
- req()->userInfo->game->store = $store;
|
|
|
+ ctx()->store = $store;
|
|
|
break;
|
|
|
default :
|
|
|
break;
|
|
|
}
|
|
|
UserProc::updateUserInfo();
|
|
|
return Resp::ok(array(
|
|
|
- 'priv' => req()->userInfo->game->privateState,
|
|
|
- 'store' => req()->userInfo->game->store));
|
|
|
+ 'priv' => ctx()->privateState,
|
|
|
+ 'store' => ctx()->store));
|
|
|
|
|
|
// Err(ErrCode::msg_method_obsoleted, "代码需更新");
|
|
|
}
|
|
@@ -509,7 +677,7 @@ class StoreProc {
|
|
|
*/
|
|
|
static function refreshStore() {
|
|
|
StoreProc::CheckItemNum();
|
|
|
- return Resp::ok(array('store' => req()->userInfo->game->store));
|
|
|
+ return Resp::ok(array('store' => ctx()->store));
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -517,10 +685,10 @@ class StoreProc {
|
|
|
*/
|
|
|
static function delItemFromStore() {
|
|
|
list($itemId, $num) = req()->paras;
|
|
|
- $err = self::removeItemFromStore(req()->userInfo->game->store, $itemId, $num);
|
|
|
+ $err = self::removeItemFromStore(ctx()->store, $itemId, $num);
|
|
|
my_Assert(ErrCode::ok == $err, $err);
|
|
|
UserProc::updateUserInfo();
|
|
|
- return Resp::ok(array('store' => req()->userInfo->game->store));
|
|
|
+ return Resp::ok(array('store' => ctx()->store));
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -568,9 +736,9 @@ class StoreProc {
|
|
|
*/
|
|
|
static function removeEquipFromStore($uid, $typeId) {
|
|
|
$ok = false;
|
|
|
- if (CommUtil::isPropertyExists(req()->userInfo->game->store->equipment, $uid)) {
|
|
|
- my_Assert($typeId == req()->userInfo->game->store->equipment->$uid->typeId, "typeid检验错误"); // typeid相同;
|
|
|
- unset(req()->userInfo->game->store->equipment->$uid);
|
|
|
+ if (CommUtil::isPropertyExists(ctx()->store->equipment, $uid)) {
|
|
|
+ my_Assert($typeId == ctx()->store->equipment->$uid->typeId, "typeid检验错误"); // typeid相同;
|
|
|
+ unset(ctx()->store->equipment->$uid);
|
|
|
$ok = true;
|
|
|
}
|
|
|
return $ok;
|
|
@@ -635,7 +803,7 @@ class StoreProc {
|
|
|
* @return type
|
|
|
*/
|
|
|
public static function AddMultiItemInStore($goodsStr, $src = 1, $mask = 0) {
|
|
|
- $user = req()->userInfo->game;
|
|
|
+ $user = ctx();
|
|
|
$ary = explode(";", $goodsStr);
|
|
|
//$unlockNum = $user->privateState->expandNum * 5;
|
|
|
//$n = self::countStoreNum();
|
|
@@ -766,7 +934,7 @@ class StoreProc {
|
|
|
}
|
|
|
|
|
|
public static function countStoreNum() {
|
|
|
- $user = req()->userInfo->game;
|
|
|
+ $user = ctx();
|
|
|
//$num = 0;
|
|
|
$itemDic = $user->store->items;
|
|
|
//$num += count((array)$user->store->items);
|
|
@@ -799,7 +967,7 @@ class StoreProc {
|
|
|
*/
|
|
|
public static function AddItemInStore() {
|
|
|
list($rwdStr, $mask) = req()->paras; //mask = 1:表示战斗中掉落
|
|
|
- $user = req()->userInfo->game;
|
|
|
+ $user = ctx();
|
|
|
|
|
|
if ($mask == 1) {
|
|
|
$err = self::AddMultiItemInStore($rwdStr, 1, 1);
|
|
@@ -822,7 +990,7 @@ class StoreProc {
|
|
|
* @param type $itemId
|
|
|
*/
|
|
|
static function PutEquipInStore($itemId) {
|
|
|
- $privateState = req()->userInfo->game->privateState;
|
|
|
+ $privateState = ctx()->privateState;
|
|
|
$unlockNum = $privateState->expandNum * 5;
|
|
|
//var_dump("wuqi==============");
|
|
|
$n = self::countStoreNum();
|
|
@@ -830,13 +998,13 @@ class StoreProc {
|
|
|
my_Assert($n < $unlockNum + $initNum, "背包容量不够请扩容");
|
|
|
|
|
|
if (!CommUtil::isPropertyExists($privateState, "currentId")) { // 如果仓库中已经有这种元素,则其数目+1
|
|
|
- req()->userInfo->game->privateState->currentId = 1;
|
|
|
+ ctx()->privateState->currentId = 1;
|
|
|
}
|
|
|
- $cid = req()->userInfo->game->privateState->currentId++;
|
|
|
+ $cid = ctx()->privateState->currentId++;
|
|
|
//$equip = ObjectInit();
|
|
|
$equip = new Ins_Weapon();
|
|
|
$equip->typeId = $itemId;
|
|
|
- req()->userInfo->game->store->equipment->$cid = $equip;
|
|
|
+ ctx()->store->equipment->$cid = $equip;
|
|
|
|
|
|
StatisticsProc::TargetStatistics(Enum_TargetStatistics::WeaponId_UserNum, $itemId);
|
|
|
StatisticsProc::TargetStatistics(Enum_TargetStatistics::WeaponIdLevel_UserNum, $itemId, "1");
|
|
@@ -849,8 +1017,8 @@ class StoreProc {
|
|
|
* @param type $itemId
|
|
|
*/
|
|
|
static function PutYanLingInStore($itemId) {
|
|
|
- //my_Assert(count((array) req()->userInfo->game->store->yanling) < 100, ErrCode::store_yanling_bagfull);
|
|
|
- $privateState = req()->userInfo->game->privateState;
|
|
|
+ //my_Assert(count((array) ctx()->store->yanling) < 100, ErrCode::store_yanling_bagfull);
|
|
|
+ $privateState = ctx()->privateState;
|
|
|
$unlockNum = $privateState->expandNum * 5;
|
|
|
//var_dump("yanling==============");
|
|
|
$n = self::countStoreNum();
|
|
@@ -858,13 +1026,13 @@ class StoreProc {
|
|
|
my_Assert($n < $unlockNum + $initNum, "背包容量不够请扩容");
|
|
|
|
|
|
if (!CommUtil::isPropertyExists($privateState, "currentId")) { # 如果仓库中已经有这种元素,则其数目+1
|
|
|
- req()->userInfo->game->privateState->currentId = 1;
|
|
|
+ ctx()->privateState->currentId = 1;
|
|
|
}
|
|
|
- $cid = req()->userInfo->game->privateState->currentId++;
|
|
|
+ $cid = ctx()->privateState->currentId++;
|
|
|
//$equip = ObjectInit();
|
|
|
$equip = new Ins_YanLin();
|
|
|
$equip->typeId = $itemId;
|
|
|
- req()->userInfo->game->store->yanling->$cid = $equip;
|
|
|
+ ctx()->store->yanling->$cid = $equip;
|
|
|
|
|
|
StatisticsProc::TargetStatistics(Enum_TargetStatistics::YanLingId_UserNum, $itemId);
|
|
|
StatisticsProc::TargetStatistics(Enum_TargetStatistics::YanLingIdLevel_UserNum, $itemId, "1");
|
|
@@ -876,16 +1044,16 @@ class StoreProc {
|
|
|
* @param type $itemId
|
|
|
*/
|
|
|
static function PutTaskCardInStore($itemId) {
|
|
|
- $privateState = req()->userInfo->game->privateState;
|
|
|
+ $privateState = ctx()->privateState;
|
|
|
$unlockNum = $privateState->expandNum * 5;
|
|
|
//var_dump("task==============");
|
|
|
//$n = self::countStoreNum();
|
|
|
//my_Assert($n<$unlockNum+50, "背包容量不够请扩容");
|
|
|
|
|
|
if (!CommUtil::isPropertyExists($privateState, "currentId")) { # 如果仓库中已经有这种元素,则其数目+1
|
|
|
- req()->userInfo->game->privateState->currentId = 1;
|
|
|
+ ctx()->privateState->currentId = 1;
|
|
|
}
|
|
|
- $cid = req()->userInfo->game->privateState->currentId++;
|
|
|
+ $cid = ctx()->privateState->currentId++;
|
|
|
$mo = GameConfig::item_taskcard_getItem($itemId); # 任务卡常量
|
|
|
// var_dump($mo);
|
|
|
my_Assert(null != $mo, ErrCode::err_const_no);
|
|
@@ -912,7 +1080,7 @@ class StoreProc {
|
|
|
} else {
|
|
|
$taskCard = new Ins_TaskCard($itemId);
|
|
|
$taskCard->uid = $cid;
|
|
|
- req()->userInfo->game->store->taskcards->$cid = $taskCard;
|
|
|
+ ctx()->store->taskcards->$cid = $taskCard;
|
|
|
}
|
|
|
NormalEventProc::OnTaskBag_new_Card($cid, 1); # 播放获得任务卡事件
|
|
|
if (null != $taskCard) {
|
|
@@ -929,12 +1097,12 @@ class StoreProc {
|
|
|
*/
|
|
|
static function PutOverlyingItemInStore($itemId, $num = 1) {
|
|
|
//var_dump("item==============".$itemId);
|
|
|
- $unlockNum = req()->userInfo->game->privateState->expandNum * 5;
|
|
|
+ $unlockNum = ctx()->privateState->expandNum * 5;
|
|
|
$n = self::countStoreNum();
|
|
|
$initNum = GameConfig::globalsettings()->Item_Packet_InitNum_New;
|
|
|
my_Assert($n < $unlockNum + $initNum, "背包容量不够请扩容");
|
|
|
|
|
|
- $items = req()->userInfo->game->store->items; # dic: itemid=>number
|
|
|
+ $items = ctx()->store->items; # dic: itemid=>number
|
|
|
if (CommUtil::isPropertyExists($items, $itemId)) { # 如果仓库中已经有这种元素,则其数目+=num
|
|
|
$items->$itemId += $num;
|
|
|
} else { # 如果仓库中没有这种元素,则其数目置为num
|
|
@@ -955,7 +1123,7 @@ class StoreProc {
|
|
|
* [6416] 给英雄装上言灵
|
|
|
*/
|
|
|
static function WearYanlingToHero() {
|
|
|
- $user = req()->userInfo->game; # user引用
|
|
|
+ $user = ctx(); # user引用
|
|
|
list($itemtype, $yanling_uid, $herouid) = req()->paras; # 提取参数: 装备类型, 装备的UID, 英雄的UID
|
|
|
my_Assert(CommUtil::isPropertyExists($user->store->yanling, $yanling_uid), ErrCode::store_itemno_err); # 检测是否存在该言灵
|
|
|
$yanlingVo = new Ins_YanLin($user->store->yanling->$yanling_uid); # 取言灵对象
|
|
@@ -989,7 +1157,7 @@ class StoreProc {
|
|
|
* @deprecated since version 无法卸下,只能更换
|
|
|
*/
|
|
|
static function UnWieldYanling() {
|
|
|
- $user = req()->userInfo->game; # user引用
|
|
|
+ $user = ctx(); # user引用
|
|
|
list($itemtype, $yanling_uid, $herouid) = req()->paras; # 提取参数: 装备类型, 装备的UID, 拥有该装备的英雄的UID
|
|
|
|
|
|
$collectHeros = $user->heros->collectHeros;
|
|
@@ -1018,7 +1186,7 @@ class StoreProc {
|
|
|
*/
|
|
|
static function WearEquipToHero() {
|
|
|
list($itemtype, $equipuid, $herouid) = req()->paras; # 提取参数: 装备类型, 装备的UID, 英雄的UID
|
|
|
- $user = req()->userInfo->game; # user引用
|
|
|
+ $user = ctx(); # user引用
|
|
|
my_Assert(CommUtil::isPropertyExists($user->store->equipment, $equipuid), ErrCode::store_itemno_err); # 检测是否存在该装备
|
|
|
$equipVo = new Ins_Weapon($user->store->equipment->$equipuid); # 取装备对象
|
|
|
if ($equipVo->herouid > 0) { # 检测该装备是否装备到其他英雄身上
|
|
@@ -1066,7 +1234,7 @@ class StoreProc {
|
|
|
*/
|
|
|
static function UnWieldEquip() {
|
|
|
list($itemtype, $equipuid, $herouid) = req()->paras; # 提取参数: 装备类型, 装备的UID, 拥有该装备的英雄的UID
|
|
|
- $user = req()->userInfo->game; # user引用
|
|
|
+ $user = ctx(); # user引用
|
|
|
|
|
|
$collectHeros = $user->heros->collectHeros;
|
|
|
my_default_Obj($collectHeros);
|
|
@@ -1111,10 +1279,10 @@ class StoreProc {
|
|
|
* @return int
|
|
|
*/
|
|
|
public static function CheckItemNum() {
|
|
|
- $ItemObj = req()->userInfo->game->store->items;
|
|
|
- $EquipObj = req()->userInfo->game->store->equipment;
|
|
|
- $SegementObj = req()->userInfo->game->store->segement;
|
|
|
- $HeroObj = req()->userInfo->game->heros->collectHeros;
|
|
|
+ $ItemObj = ctx()->store->items;
|
|
|
+ $EquipObj = ctx()->store->equipment;
|
|
|
+ $SegementObj = ctx()->store->segement;
|
|
|
+ $HeroObj = ctx()->heros->collectHeros;
|
|
|
$ItemNum = 0;
|
|
|
if ($ItemObj) {
|
|
|
foreach ($ItemObj as $value) { ////检查宝石类可叠加物品的格子占用
|
|
@@ -1147,7 +1315,7 @@ class StoreProc {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- req()->userInfo->game->privateState->ItemNum = $ItemNum;
|
|
|
+ ctx()->privateState->ItemNum = $ItemNum;
|
|
|
return $ItemNum;
|
|
|
}
|
|
|
|
|
@@ -1156,7 +1324,7 @@ class StoreProc {
|
|
|
* @return int 上限数值
|
|
|
*/
|
|
|
// public static function GetItemMaxNum() {
|
|
|
-// $user = req()->userInfo->game;
|
|
|
+// $user = ctx();
|
|
|
// if (!CommUtil::isPropertyExists($user->privateState, "maxItemNum")) {
|
|
|
// $user->privateState->maxItemNum = glc()->Item_Packet_MaxNum;
|
|
|
// }
|
|
@@ -1167,7 +1335,7 @@ class StoreProc {
|
|
|
* 6412 背包扩容
|
|
|
*/
|
|
|
public static function AddPacketNum() {
|
|
|
- $user = req()->userInfo->game; # user引用
|
|
|
+ $user = ctx(); # user引用
|
|
|
if (!CommUtil::isPropertyExists($user->privateState, "maxItemNum")) {
|
|
|
$user->privateState->maxItemNum = glc()->Item_Packet_MaxNum;
|
|
|
}
|