|
@@ -188,6 +188,7 @@ class HeroProc {
|
|
|
$resp = Resp::ok($upHero);
|
|
|
SystemProc::insertHero_StageUp($req->zoneid, $req->uid, $user->name, # # 插入系统广播
|
|
|
GameConfig::hero_getItem($upHero->typeId)->name, $upHero->grade);
|
|
|
+ self::CalcUserFightPower($req->zoneid, $req->uid, $req->userInfo->game); # 跟新战力统计
|
|
|
return $resp;
|
|
|
}
|
|
|
|
|
@@ -225,7 +226,7 @@ class HeroProc {
|
|
|
}
|
|
|
$req->userInfo->game->store->items = $myPacketItems; # 更新背包数据
|
|
|
UserProc::updateUserInfo(); # 回写玩家数据
|
|
|
- self::CalcTeamFightPower($req->zoneid, $req->uid, $req->userInfo->game); # 跟新战力统计
|
|
|
+ self::CalcUserFightPower($req->zoneid, $req->uid, $req->userInfo->game); # 跟新战力统计
|
|
|
return Resp::ok($targetHero);
|
|
|
}
|
|
|
|
|
@@ -1163,12 +1164,37 @@ class HeroProc {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- gMem()->zadd(MemKey_GameRun::Game_FightPowerRank_zset($zoneid), array($uid => $fp));
|
|
|
- $key_log = MemKey_GameRun::Game_Rank_FPowerBreakLog_hash($zoneid); # 突破记录
|
|
|
- foreach (GameConfig::rankreward_fpower() as $condition => $reward) {
|
|
|
- if ($fp >= $condition && !gMem()->hexists($key_log, $condition)) {# 达成突破奖励标准
|
|
|
- gMem()->hset($key_log, $condition, $uid); # 添加突破记录
|
|
|
- }
|
|
|
+ //todo: 这里的战斗力榜被总战力榜征用了key, 重启PVP机制时再
|
|
|
+// gMem()->zadd(MemKey_GameRun::Game_FightPowerRank_zset($zoneid), array($uid => $fp));
|
|
|
+// $key_log = MemKey_GameRun::Game_Rank_FPowerBreakLog_hash($zoneid); # 突破记录
|
|
|
+// foreach (GameConfig::rankreward_fpower() as $condition => $reward) {
|
|
|
+// if ($fp >= $condition && !gMem()->hexists($key_log, $condition)) {# 达成突破奖励标准
|
|
|
+// gMem()->hset($key_log, $condition, $uid); # 添加突破记录
|
|
|
+// }
|
|
|
+// }
|
|
|
+ }
|
|
|
+ return $fp;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 计算玩家总战斗力, 添加到战斗力榜单中
|
|
|
+ * @version 1.0.0 改造自原来的队伍战斗力统计方法 --gwang 2020.4.23
|
|
|
+ * @param type $zoneid
|
|
|
+ * @param type $uid
|
|
|
+ * @param UserGameModel $user
|
|
|
+ * @return type
|
|
|
+ */
|
|
|
+ static function CalcUserFightPower($zoneid, $uid, $user) {
|
|
|
+ $fp = 0; # 总战力:返回值
|
|
|
+ foreach ($user->heros->collectHeros as $hid => $hero) {
|
|
|
+ $fp += self::calcHeroFightPower($hero);
|
|
|
+ }
|
|
|
+ $key_fp = MemKey_GameRun::Game_FightPowerRank_zset($zoneid); # 战力榜
|
|
|
+ $key_log = MemKey_GameRun::Game_Rank_FPowerBreakLog_hash($zoneid); # 突破记录
|
|
|
+ gMem()->zadd($key_fp, array($uid => $fp)); # 更新战力记录
|
|
|
+ foreach (GameConfig::rankreward_fpower() as $condition => $reward) { # 遍历突破奖励数据
|
|
|
+ if ($fp >= $condition && !gMem()->hexists($key_log, $condition)) { # 判断是否达成突破奖励标准
|
|
|
+ gMem()->hset($key_log, $condition, $uid); # 添加突破记录
|
|
|
}
|
|
|
}
|
|
|
return $fp;
|