|
@@ -91,15 +91,15 @@ class HeroProc {
|
|
|
return Resp::err(ErrCode::hero_no);
|
|
|
}
|
|
|
# # 2.判断英雄的该技能能否升级....
|
|
|
- isEditor() and $targetHero = new UserHeroModel();
|
|
|
- $targetHero = $collectHeros->$huid;
|
|
|
+// isEditor() and $targetHero = new UserHeroModel();
|
|
|
+ $targetHero = new UserHeroModel($collectHeros->$huid);
|
|
|
# # 取出这个英雄的技能数据
|
|
|
$targteHeroSkills = $targetHero->subSkills;
|
|
|
if (!CommUtil::isPropertyExists($targteHeroSkills, $mainSkillId)) { # 主技能Id.
|
|
|
- return \Resp::err(ErrCode::err_unknownn, "玩家数据结构问题");
|
|
|
+ return Resp::err(ErrCode::err_unknownn, "玩家数据结构问题");
|
|
|
}
|
|
|
- if (CommUtil::isPropertyExists($targteHeroSkills->$mainSkillId, $subSkillId)) { # 子技能已经解锁
|
|
|
- return \Resp::err(ErrCode::err_unknownn, "子技能已解锁");
|
|
|
+ if (CommUtil::isInArray($targteHeroSkills->$mainSkillId, $subSkillId)) { # 子技能已经解锁
|
|
|
+ return Resp::err(ErrCode::err_unknownn, "子技能已解锁");
|
|
|
}
|
|
|
// if (!$targetHero->IsSkillUnlockAble($mainSkillId, $subSkillId)) { # 3.判断技能是否处于待解锁状态
|
|
|
// return Resp::err(ErrCode::hero_upgradeSkill_maxLevel);
|
|
@@ -107,12 +107,12 @@ class HeroProc {
|
|
|
|
|
|
$sm = GameConfig::subSkill_getItem($subSkillId); # 4.取出该技能升级消耗的常量数据
|
|
|
if (null == $sm) {
|
|
|
- return \Resp::err(ErrCode::err_const_no, '找不到子技能配置数据');
|
|
|
+ return Resp::err(ErrCode::err_const_no, '找不到子技能配置数据');
|
|
|
}
|
|
|
if (!UserGameModel::Consume_Gold($user, $sm->unlockCost)) { # 5. 扣除金币消耗
|
|
|
return Resp::err(ErrCode::notenough_gold_msg);
|
|
|
}
|
|
|
- $targteHeroSkills->$mainSkillId[] = $subSkillId; # 添加技能
|
|
|
+ array_push($targteHeroSkills->$mainSkillId, $subSkillId); # 添加技能
|
|
|
$targetHero->subSkills = $targteHeroSkills;
|
|
|
UserProc::updateUserInfo($req); # 回写数据
|
|
|
return Resp::ok($targetHero);
|
|
@@ -138,15 +138,15 @@ class HeroProc {
|
|
|
return Resp::err(ErrCode::hero_no);
|
|
|
}
|
|
|
# # 2.判断英雄的该技能能否升级....
|
|
|
- isEditor() and $targetHero = new UserHeroModel();
|
|
|
- $targetHero = $collectHeros->$huid;
|
|
|
+// isEditor() and $targetHero = new UserHeroModel();
|
|
|
+ $targetHero = new UserHeroModel($collectHeros->$huid);
|
|
|
# # 取出这个英雄的技能数据
|
|
|
$targteHeroSkills = $targetHero->subSkills;
|
|
|
if (!CommUtil::isPropertyExists($targteHeroSkills, $mainSkillId)) { # 主技能Id.
|
|
|
- return \Resp::err(ErrCode::err_unknownn, "玩家数据结构问题");
|
|
|
+ return Resp::err(ErrCode::err_unknownn, "玩家数据结构问题");
|
|
|
}
|
|
|
- if (!CommUtil::isPropertyExists($targteHeroSkills->$mainSkillId, $subSkillId)) {
|
|
|
- return \Resp::err(ErrCode::err_unknownn, "子技能id错误");
|
|
|
+ if (!CommUtil::isInArray($targteHeroSkills->$mainSkillId, $subSkillId)) {
|
|
|
+ return Resp::err(ErrCode::err_unknownn, "子技能id错误");
|
|
|
}
|
|
|
|
|
|
// if (!$targetHero->IsSkillUpdateAble($mainSkillId, $subSkillId)) { # 3.判断技能等级能否在继续升级了
|
|
@@ -160,7 +160,7 @@ class HeroProc {
|
|
|
return Resp::err(ErrCode::notenough_gold_msg);
|
|
|
}
|
|
|
unset($targteHeroSkills->$mainSkillId, $subSkillId); # 替换技能
|
|
|
- $targteHeroSkills->$mainSkillId[] = $targetSubSkillId;
|
|
|
+ array_push($targteHeroSkills->$mainSkillId, $targetSubSkillId);
|
|
|
$targetHero->subSkills = $targteHeroSkills;
|
|
|
UserProc::updateUserInfo($req); # 回写数据
|
|
|
return Resp::ok($targetHero);
|
|
@@ -185,15 +185,14 @@ class HeroProc {
|
|
|
return Resp::err(ErrCode::hero_no);
|
|
|
}
|
|
|
# # 2.判断英雄的该技能能否升级....
|
|
|
- isEditor() and $targetHero = new UserHeroModel();
|
|
|
- $targetHero = $collectHeros->$huid;
|
|
|
+ $targetHero = new UserHeroModel($collectHeros->$huid);
|
|
|
# # 取出这个英雄的技能数据
|
|
|
$targteHeroSkills = $targetHero->subSkills;
|
|
|
if (!CommUtil::isPropertyExists($targteHeroSkills, $mainSkillId)) { # 主技能Id.
|
|
|
- return \Resp::err(ErrCode::err_unknownn, "玩家数据结构问题");
|
|
|
+ return Resp::err(ErrCode::err_unknownn, "玩家数据结构问题");
|
|
|
}
|
|
|
- if (!CommUtil::isPropertyExists($targteHeroSkills->$mainSkillId, $subSkillId)) {
|
|
|
- return \Resp::err(ErrCode::err_unknownn, "子技能id错误");
|
|
|
+ if (!CommUtil::isInArray($targteHeroSkills->$mainSkillId, $subSkillId)) {
|
|
|
+ return Resp::err(ErrCode::err_unknownn, "子技能id错误");
|
|
|
}
|
|
|
if (!$targetHero->IsSkillUpdateAble($mainSkillId, $subSkillId)) { # 3.判断技能等级能否在继续升级了
|
|
|
return Resp::err(ErrCode::hero_upgradeSkill_maxLevel);
|
|
@@ -201,105 +200,18 @@ class HeroProc {
|
|
|
|
|
|
$sm = GameConfig::subSkill_getItem($subSkillId); # 4.取出该技能升级消耗的常量数据
|
|
|
if (null == $sm) {
|
|
|
- return \Resp::err(ErrCode::err_const_no, '找不到子技能配置数据');
|
|
|
+ return Resp::err(ErrCode::err_const_no, '找不到子技能配置数据');
|
|
|
}
|
|
|
if (!UserGameModel::Consume_Gold($user, $sm->upgradeCost)) { # 5. 扣除金币消耗
|
|
|
return Resp::err(ErrCode::notenough_gold_msg);
|
|
|
}
|
|
|
unset($targteHeroSkills->$mainSkillId, $subSkillId); # 替换技能
|
|
|
- $targteHeroSkills->$mainSkillId[] = $sm->nextLevel_Id;
|
|
|
+ array_push($targteHeroSkills->$mainSkillId, $sm->nextLevel_Id);
|
|
|
$targetHero->subSkills = $targteHeroSkills;
|
|
|
UserProc::updateUserInfo($req); # 回写数据
|
|
|
return Resp::ok($targetHero);
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * [6314]英雄技能升级
|
|
|
- * @param req $req
|
|
|
- */
|
|
|
- static function _UpgradeSkillLevel($req) {
|
|
|
-# $resp = ResponseVo::ErrResponse($req, ErrCode::msg_methodnotimplement);
|
|
|
- $user = $req->userInfo->game; # user引用
|
|
|
- $huid = $req->paras[0]; # 英雄的UID
|
|
|
- $skillId = $req->paras[1]; # 要升级的技能
|
|
|
- $skillType = $req->paras[2]; # 要升级的技能
|
|
|
- $costGold = $req->paras[3]; # 要升级的消耗金币
|
|
|
-# # 1.检查是否存在要升级的英雄
|
|
|
- $collectHeros = $user->heros->collectHeros;
|
|
|
- if (!$collectHeros) {
|
|
|
- $collectHeros = ObjectInit();
|
|
|
- }
|
|
|
- if (!CommUtil::isPropertyExists($collectHeros, $huid)) {
|
|
|
- return Resp::err(ErrCode::hero_no);
|
|
|
- }
|
|
|
-# # 2.判断英雄的该技能能否升级....
|
|
|
- isEditor() and $strengthHero = new UserHeroModel();
|
|
|
- $strengthHero = $collectHeros->$huid;
|
|
|
-# # 取出这个英雄的技能数据
|
|
|
- $targteHeroSkills = ObjectInit();
|
|
|
- if (CommUtil::isPropertyExists($strengthHero, "skills")) {
|
|
|
- $targteHeroSkills = $strengthHero->skills;
|
|
|
- }
|
|
|
-
|
|
|
- if (!CommUtil::isPropertyExists($targteHeroSkills, $skillType)) { # 如果不存在这个类型的技能,则 初始化一个.
|
|
|
- $targteHeroSkills->$skillType = JsonUtil::decode('{"level":1}');
|
|
|
- }
|
|
|
- $curSkillInfo = $targteHeroSkills->$skillType;
|
|
|
- $curSkillLevel = $curSkillInfo->level;
|
|
|
-# 3.判断技能等级能否在继续升级了
|
|
|
- if ($curSkillLevel >= $strengthHero->level) {
|
|
|
- return Resp::err(ErrCode::hero_upgradeSkill_maxLevel);
|
|
|
- }
|
|
|
-# 4.取出该技能升级消耗的常量数据
|
|
|
-# 检查是否存在当前技能的消耗常量数据
|
|
|
-// $lvs = GameConfig::skill_shengji_getItem($skillId);
|
|
|
- $lvs = GameConfig::skill_upgrade_cost_getItem($skillId);
|
|
|
- if (!$lvs) {
|
|
|
- return Resp::err(ErrCode::hero_upgradeSkill_cost_const_no);
|
|
|
- }
|
|
|
- $realGold = $lvs->basic + ($curSkillLevel - 1) * $lvs->xishu;
|
|
|
- $arr_extracost = explode(";", $lvs->extra);
|
|
|
- foreach ($arr_extracost as $value) {
|
|
|
- $arr = explode(",", $value);
|
|
|
- if (count($arr) == 2) {
|
|
|
- $extraLevel = $arr[0];
|
|
|
- $extraGold = $arr[1];
|
|
|
- if ($extraLevel == $curSkillLevel + 1) {
|
|
|
- $realGold += $extraGold;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-# 判断金币是否充足
|
|
|
- $bDeal = false; # 成交
|
|
|
- if ($realGold != $costGold) {
|
|
|
- return Resp::err(ErrCode::paras_err, "costGold error! server need:" . $realGold);
|
|
|
- } else {
|
|
|
- if ($costGold > 0) {
|
|
|
- if ($user->gold < $costGold) {
|
|
|
- return Resp::err(ErrCode::notenough_gold_msg);
|
|
|
- } else {
|
|
|
- $bDeal = UserGameModel::Consume_Gold($user, $costGold);
|
|
|
- }
|
|
|
- } else if ($costGold == 0) {
|
|
|
- $bDeal = true;
|
|
|
- } else {
|
|
|
- return Resp::err(ErrCode::paras_err);
|
|
|
- }
|
|
|
- }
|
|
|
-# 4.消耗金币和英雄
|
|
|
- if ($bDeal) {
|
|
|
- $targteHeroSkills->$skillType->level += 1;
|
|
|
- $strengthHero->skills = $targteHeroSkills;
|
|
|
- ActiveProc::ChangeTaskCount($req);
|
|
|
-# 回写数据
|
|
|
- UserProc::updateUserInfo($req);
|
|
|
- $resp = Resp::ok($strengthHero);
|
|
|
- }
|
|
|
- return $resp;
|
|
|
- }
|
|
|
-
|
|
|
// </editor-fold>
|
|
|
//
|
|
|
// <editor-fold defaultstate="collapsed" desc="英雄 强化">
|
|
@@ -420,6 +332,93 @@ class HeroProc {
|
|
|
//
|
|
|
// <editor-fold defaultstate="collapsed" desc="已过时代码">
|
|
|
|
|
|
+ /**
|
|
|
+ * [6314]英雄技能升级
|
|
|
+ * @param req $req
|
|
|
+ */
|
|
|
+ static function _UpgradeSkillLevel($req) {
|
|
|
+# $resp = ResponseVo::ErrResponse($req, ErrCode::msg_methodnotimplement);
|
|
|
+ $user = $req->userInfo->game; # user引用
|
|
|
+ $huid = $req->paras[0]; # 英雄的UID
|
|
|
+ $skillId = $req->paras[1]; # 要升级的技能
|
|
|
+ $skillType = $req->paras[2]; # 要升级的技能
|
|
|
+ $costGold = $req->paras[3]; # 要升级的消耗金币
|
|
|
+# # 1.检查是否存在要升级的英雄
|
|
|
+ $collectHeros = $user->heros->collectHeros;
|
|
|
+ if (!$collectHeros) {
|
|
|
+ $collectHeros = ObjectInit();
|
|
|
+ }
|
|
|
+ if (!CommUtil::isPropertyExists($collectHeros, $huid)) {
|
|
|
+ return Resp::err(ErrCode::hero_no);
|
|
|
+ }
|
|
|
+# # 2.判断英雄的该技能能否升级....
|
|
|
+ isEditor() and $strengthHero = new UserHeroModel();
|
|
|
+ $strengthHero = $collectHeros->$huid;
|
|
|
+# # 取出这个英雄的技能数据
|
|
|
+ $targteHeroSkills = ObjectInit();
|
|
|
+ if (CommUtil::isPropertyExists($strengthHero, "skills")) {
|
|
|
+ $targteHeroSkills = $strengthHero->skills;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!CommUtil::isPropertyExists($targteHeroSkills, $skillType)) { # 如果不存在这个类型的技能,则 初始化一个.
|
|
|
+ $targteHeroSkills->$skillType = JsonUtil::decode('{"level":1}');
|
|
|
+ }
|
|
|
+ $curSkillInfo = $targteHeroSkills->$skillType;
|
|
|
+ $curSkillLevel = $curSkillInfo->level;
|
|
|
+# 3.判断技能等级能否在继续升级了
|
|
|
+ if ($curSkillLevel >= $strengthHero->level) {
|
|
|
+ return Resp::err(ErrCode::hero_upgradeSkill_maxLevel);
|
|
|
+ }
|
|
|
+# 4.取出该技能升级消耗的常量数据
|
|
|
+# 检查是否存在当前技能的消耗常量数据
|
|
|
+// $lvs = GameConfig::skill_shengji_getItem($skillId);
|
|
|
+ $lvs = GameConfig::skill_upgrade_cost_getItem($skillId);
|
|
|
+ if (!$lvs) {
|
|
|
+ return Resp::err(ErrCode::hero_upgradeSkill_cost_const_no);
|
|
|
+ }
|
|
|
+ $realGold = $lvs->basic + ($curSkillLevel - 1) * $lvs->xishu;
|
|
|
+ $arr_extracost = explode(";", $lvs->extra);
|
|
|
+ foreach ($arr_extracost as $value) {
|
|
|
+ $arr = explode(",", $value);
|
|
|
+ if (count($arr) == 2) {
|
|
|
+ $extraLevel = $arr[0];
|
|
|
+ $extraGold = $arr[1];
|
|
|
+ if ($extraLevel == $curSkillLevel + 1) {
|
|
|
+ $realGold += $extraGold;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+# 判断金币是否充足
|
|
|
+ $bDeal = false; # 成交
|
|
|
+ if ($realGold != $costGold) {
|
|
|
+ return Resp::err(ErrCode::paras_err, "costGold error! server need:" . $realGold);
|
|
|
+ } else {
|
|
|
+ if ($costGold > 0) {
|
|
|
+ if ($user->gold < $costGold) {
|
|
|
+ return Resp::err(ErrCode::notenough_gold_msg);
|
|
|
+ } else {
|
|
|
+ $bDeal = UserGameModel::Consume_Gold($user, $costGold);
|
|
|
+ }
|
|
|
+ } else if ($costGold == 0) {
|
|
|
+ $bDeal = true;
|
|
|
+ } else {
|
|
|
+ return Resp::err(ErrCode::paras_err);
|
|
|
+ }
|
|
|
+ }
|
|
|
+# 4.消耗金币和英雄
|
|
|
+ if ($bDeal) {
|
|
|
+ $targteHeroSkills->$skillType->level += 1;
|
|
|
+ $strengthHero->skills = $targteHeroSkills;
|
|
|
+ ActiveProc::ChangeTaskCount($req);
|
|
|
+# 回写数据
|
|
|
+ UserProc::updateUserInfo($req);
|
|
|
+ $resp = Resp::ok($strengthHero);
|
|
|
+ }
|
|
|
+ return $resp;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 6323 解锁英雄
|
|
|
* @param type $req
|