|
@@ -68,7 +68,7 @@ class HeroProc {
|
|
|
* @param Req $req
|
|
|
*/
|
|
|
static function HeroStageUp($req) {
|
|
|
- $g = glc();
|
|
|
+ $g = glc(); # 全局配置
|
|
|
$user = $req->userInfo->game; # user引用
|
|
|
$huid = $req->paras[0]; # 英雄的UID
|
|
|
$nextGrade = $req->paras[1]; # 下一阶
|
|
@@ -113,8 +113,7 @@ class HeroProc {
|
|
|
$user = $req->userInfo->game; # user引用
|
|
|
$heroUID = $req->paras[0]; # 玩家英雄实例编号
|
|
|
$costItemId = $req->paras[1]; # 消耗的道具ID
|
|
|
- $costNumber = $req->paras[2]; # 消耗的道具数量
|
|
|
-
|
|
|
+ $costNumber = $req->paras[2]; # 消耗的道具数量
|
|
|
$collectHeros = $user->heros->collectHeros; # 1. 检查是否存在要升级的英雄
|
|
|
if (!$collectHeros) {
|
|
|
$collectHeros = ObjectInit();
|
|
@@ -1073,62 +1072,45 @@ class HeroProc {
|
|
|
* @param type $req
|
|
|
*/
|
|
|
static function BuyHeroByCostPieces($req) {
|
|
|
- $user = $req->userInfo->game; # user引用
|
|
|
+ $user = $req->userInfo->game; # user引用
|
|
|
$heroModelId = $req->paras[0];
|
|
|
$costType = $req->paras[1];
|
|
|
$costMoneyNum = $req->paras[2];
|
|
|
$piecesId = $req->paras[3];
|
|
|
$piecesNum = $req->paras[4];
|
|
|
- #1 检查玩家是否已经拥有此类英雄
|
|
|
+
|
|
|
$collectHeros = $user->heros->collectHeros;
|
|
|
if (!$collectHeros) {
|
|
|
$collectHeros = ObjectInit();
|
|
|
}
|
|
|
foreach ($collectHeros as $key => $value) {
|
|
|
isEditor() and $value = new UserHeroModel();
|
|
|
- if ($value->typeId == $heroModelId) {
|
|
|
+ if ($value->typeId == $heroModelId) { # 检查玩家是否已经拥有此类英雄
|
|
|
return Resp::err(ErrCode::hero_existSameHero_err);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-#2 检查账户余额是否充足
|
|
|
- $heroCfg = GameConfig::hero_getItem($heroModelId);
|
|
|
+ $heroCfg = GameConfig::hero_getItem($heroModelId); # 检查账户余额是否充足
|
|
|
if (!$heroCfg) {
|
|
|
return Resp::err(ErrCode::hero_const_no_err);
|
|
|
}
|
|
|
if ($heroCfg->isCanBuy == 0) {
|
|
|
return Resp::err(ErrCode::paras_err);
|
|
|
}
|
|
|
-#3检查碎片是否对不对
|
|
|
-
|
|
|
$piecesCfg = GameConfig::segment_getItem($piecesId); # 检查需要消耗的碎片的常量配置是否存在
|
|
|
if (!$piecesCfg) {
|
|
|
return Resp::err(ErrCode::err_store_itemnoconst);
|
|
|
}
|
|
|
- # 5.检查道具的数量是否充足
|
|
|
$myPacketItems = $user->store->segement;
|
|
|
$requirePiecesNum = $piecesCfg->mergePrototypeNeedNum;
|
|
|
- # 检查道具数量是否充足
|
|
|
- $enoughPieces = false;
|
|
|
if ($heroModelId == $piecesCfg->prototypeData && $requirePiecesNum == $piecesNum) {
|
|
|
-
|
|
|
- if (!CommUtil::isPropertyExists($myPacketItems, $piecesId)) { # 检查碎片
|
|
|
- $enoughPieces = false;
|
|
|
- } else {
|
|
|
- if ($myPacketItems->$piecesId < $requirePiecesNum) {
|
|
|
- $enoughPieces = false;
|
|
|
- } else {
|
|
|
- $enoughPieces = true;
|
|
|
- }
|
|
|
+ if (!CommUtil::isPropertyExists($myPacketItems, $piecesId)#
|
|
|
+ || $myPacketItems->$piecesId < $requirePiecesNum) { # 检查碎片道具数量是否充足
|
|
|
+ return Resp::err(ErrCode::hero_godblood_notengoughitem);
|
|
|
}
|
|
|
} else {
|
|
|
- return Resp::err(ErrCode ::paras_err, "error pieces para" . "req" . $piecesId . "_" . $requirePiecesNum . "/" . $piecesId . "_" . $piecesNum);
|
|
|
- }
|
|
|
- if ($enoughPieces == true) {
|
|
|
-
|
|
|
- } else {
|
|
|
- return Resp::err(ErrCode::hero_godblood_notengoughitem);
|
|
|
+ return Resp::err(ErrCode ::paras_err, #
|
|
|
+ "error pieces para" . "req" . $piecesId . "_" .
|
|
|
+ $requirePiecesNum . "/" . $piecesId . "_" . $piecesNum);
|
|
|
}
|
|
|
$bDeal = false; # 成交
|
|
|
if ($costType == "cash") {
|
|
@@ -1429,8 +1411,7 @@ class HeroProc {
|
|
|
isEditor() and $targetHero = new UserHeroModel;
|
|
|
$targetHero = $collectHeros->$heroUID;
|
|
|
|
|
|
- //$strengthconst = GameConfig::heroextra_dengjie_getItem($targetHero->strengthLevel);
|
|
|
- $maxLevel = $g->Hero_Upgrade_BasicMaxLevel; //$strengthconst->maxLevel;
|
|
|
+ $maxLevel = $g->Hero_Upgrade_BasicMaxLevel; # 等级上限
|
|
|
if ($targetHero->level >= $maxLevel) {
|
|
|
return; # 已达顶级
|
|
|
}
|
|
@@ -1441,14 +1422,14 @@ class HeroProc {
|
|
|
|
|
|
while ($targetHero->xp >= $targetHero->maxXp) {
|
|
|
if ($targetHero->level < $maxLevel) { # 如果未到达最大等级
|
|
|
- $nowlv = $targetHero->level + 1;
|
|
|
- $nextlv = $nowlv + 1;
|
|
|
- $targetHero->level = $nowlv;
|
|
|
- $lvs = GameConfig::hero_levelexp_getItem($nextlv);
|
|
|
- if ($nowlv >= $maxLevel) {
|
|
|
- $targetHero->xp = $targetHero->maxXp;
|
|
|
+ $targetHero->level += 1;
|
|
|
+ $lvs = GameConfig::hero_levelexp_getItem($targetHero->level);
|
|
|
+ if ($targetHero->level >= $maxLevel) {
|
|
|
+ $targetHero->xp = $lvs->needExp;
|
|
|
+ } else {
|
|
|
+ $targetHero->xp -= $lvs->needExp;
|
|
|
}
|
|
|
- $targetHero->maxXp = $lvs->requiredExp;
|
|
|
+ $targetHero->maxXp = $lvs->needExp;
|
|
|
} else { # 如果已到达最大等级则仅补齐缺失的经验即可
|
|
|
$targetHero->xp = $targetHero->maxXp; # 经验不能超过最大值
|
|
|
break;
|