玉虚论道bug修改

back_recharge
xuexinpeng 2021-09-12 23:53:51 +08:00
parent 65045c93d9
commit 3b5fbb92dd
6 changed files with 43 additions and 15 deletions

View File

@ -240,6 +240,7 @@ public class CrossYuxulundaoChallengeHandler extends BaseHandler<ArenaInfoProto.
} else if (changeTimes == 5 && dailyReward.get(2) == 0) {
dailyReward.set(2, 1);
}
user.getArenaManager().setCrossYuxulundaoDailyRewad(dailyReward);
//改变挑战领取宝箱状态
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.CrossYuXuLunDaoChallengeResponse.getNumber(), res.build(), true);

View File

@ -1,6 +1,7 @@
package com.ljsd.jieling.handler.crossServer;
import com.ljsd.jieling.core.FunctionIdEnum;
import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.globals.BIReason;
@ -9,12 +10,10 @@ import com.ljsd.jieling.logic.GlobalDataManaager;
import com.ljsd.jieling.logic.GlobleSystemLogic;
import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic;
import com.ljsd.jieling.logic.arena.CrossYuxulundaoLogic;
import com.ljsd.jieling.logic.dao.ArenaEnemy;
import com.ljsd.jieling.logic.dao.ArenaManager;
import com.ljsd.jieling.logic.dao.TimeControllerOfFunction;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.gm.ArenaOfUser;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.hero.HeroLogic;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.util.ItemUtil;
import com.ljsd.jieling.util.MessageUtil;
@ -26,6 +25,7 @@ import rpc.protocols.CommonProto;
import rpc.protocols.MessageTypeProto;
import java.util.List;
import java.util.Map;
/**
*
@ -48,6 +48,7 @@ public class CrossYuxulundaoGetInfoHandler extends BaseHandler<ArenaInfoProto.Cr
if (crossGroup == -1) {
return;
}
boolean isNeedUpdate =false;
ArenaManager arenaManager = user.getArenaManager();
ArenaInfoProto.CrossYuXuLunDaoGetInfoResponse.Builder builder = ArenaInfoProto.CrossYuXuLunDaoGetInfoResponse.newBuilder();
ArenaOfUser myQuery = CrossServiceLogic.getInstance().query(user.getId());
@ -70,6 +71,12 @@ public class CrossYuxulundaoGetInfoHandler extends BaseHandler<ArenaInfoProto.Cr
//CrossYuxulundaoLogic.getInstance().matchRivals(user);
} else {
//赛季内第一次登陆请求
//主线编队复制到第一队伍
TeamPosManager teamPosManager = user.getTeamPosManager();
Map<Integer, List<TeamPosHeroInfo>> teamPosForHero = teamPosManager.getTeamPosForHero();
if(teamPosForHero.containsKey(GlobalsDef.FORMATION_NORMAL)){
teamPosManager.updateTeamPosByTeamId(GlobalsDef.CROSS_YU_XU_LUN_DAO_ONE, teamPosManager.getTeamPosForHero().get(GlobalsDef.FORMATION_NORMAL));
}
builder.setIsFirst(true);
arenaManager.setCrossYuxulundaoFirst(System.currentTimeMillis());
//重置段位发奖
@ -82,6 +89,8 @@ public class CrossYuxulundaoGetInfoHandler extends BaseHandler<ArenaInfoProto.Cr
builder.addDrop(drop);
}
myQuery.getPlayerManager().setCrossYuxulundaoNewScore(SMServerRankConfig.serverRankConfig.get(resetId).getScoreLow());
isNeedUpdate= true;
}
arenaManager.setCrossMatchTimes(0);
CrossYuxulundaoLogic.getInstance().matchRivals(user);
@ -106,13 +115,18 @@ public class CrossYuxulundaoGetInfoHandler extends BaseHandler<ArenaInfoProto.Cr
}
}
myQuery.getPlayerManager().setCrossYxldMaxLevel(id);
isNeedUpdate = true;
}
builder.setOldMyscore(oldScore);
builder.setNewMyscore(newScore);
if (oldScore != newScore) {
myQuery.getPlayerManager().setCrossYuxulundaoOldScore(newScore);
isNeedUpdate = true;
}
}
if(isNeedUpdate){
CrossServiceLogic.getInstance().update(myQuery);
}
//builder.setFreeTimes(5);
builder.addAllDailyRewardState(arenaManager.getCrossYuxulundaoDailyRewad());
SMServerArenaSetting setting = STableManager.getConfig(SMServerArenaSetting.class).get(2);

View File

@ -81,7 +81,11 @@ public class CrossServiceLogic {
private void countForce(ArenaOfUser arenaOfUser) throws Exception {
User user = UserManager.getUser(arenaOfUser.getId());
int totalForce = HeroLogic.getInstance().calTeamTotalForce(user, GlobalsDef.WORLD_TEAM_ARENA_DEFENSE, false);
int yxldForce = HeroLogic.getInstance().calTeamTotalForce(user, GlobalsDef.CROSS_YU_XU_LUN_DAO_ONE, false)+
HeroLogic.getInstance().calTeamTotalForce(user, GlobalsDef.CROSS_YU_XU_LUN_DAO_TWO, false)+
HeroLogic.getInstance().calTeamTotalForce(user, GlobalsDef.CROSS_YU_XU_LUN_DAO_THREE, false);
arenaOfUser.getHeroManager().setTotalForce(totalForce);
arenaOfUser.getHeroManager().setYxldForce(yxldForce);
}
/**

View File

@ -22,10 +22,7 @@ import com.ljsd.jieling.logic.player.PlayerLogic;
import com.ljsd.jieling.logic.rank.RankContext;
import com.ljsd.jieling.logic.rank.RankEnum;
import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank;
import config.SArenaRobotConfig;
import config.SMServerArenaSetting;
import config.SMServerRankConfig;
import config.SMServerRankReward;
import config.*;
import manager.STableManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -101,7 +98,7 @@ public class CrossYuxulundaoLogic {
int server = random.nextInt(groupList.size());
rank.addRank(robotIndex, String.valueOf(crossGroup), 100 - robotIndex);
SArenaRobotConfig config = SArenaRobotConfig.getsArenaRobotConfigById(robotIds.get(robotIndex));
robotInfo.put(String.valueOf(robotIndex), new CrossArenaEnemy(robotIds.get(robotIndex), robotIndex, groupList.get(server), 0, 0, random.nextBoolean(), PlayerLogic.getInstance().getRandomName2WithOutVerify(), config.getTotalForce(), config.getRoleLv()));
robotInfo.put(String.valueOf(robotIndex), new CrossArenaEnemy(robotIds.get(robotIndex), robotIndex, groupList.get(server), 0, config.getMsScroe(), random.nextBoolean(), PlayerLogic.getInstance().getRandomName2WithOutVerify(), config.getTotalForce(), config.getRoleLv()));
}
LOGGER.info("跨服玉虚论道初始化结束");
RedisUtil.getInstence().putMapEntrys(RedisKey.CROSS_YUXULUNDAO_ROBOT_INFO, String.valueOf(crossGroup), robotInfo);
@ -113,13 +110,15 @@ public class CrossYuxulundaoLogic {
if (crossGroup == -1) {
return;
}
String title = SErrorCodeEerverConfig.getI18NMessage("MsRankTitle");
String rkey = RedisUtil.getInstence().getKey(RedisKey.CROSS_YUXULUNDAO_RANK, Integer.toString(crossGroup));
Set<String> arenaRank = RedisUtil.getInstence().getReverseZset(rkey, 0, -1);
List<Integer> arenaRankfilt = arenaRank.stream().mapToInt(n -> Integer.parseInt(n)).filter(n -> n > 1000).boxed().collect(Collectors.toList());
for (int i = 0; i < arenaRankfilt.size(); i++) {
SMServerRankReward config = SMServerRankReward.getIdByScore(i + 1);
try {
MailLogic.getInstance().sendMail(arenaRankfilt.get(0), "玉虚论道排名奖励", "恭喜您在本次玉虚论道荣获" + (i + 1) + "名,请及时领取附件中的排名奖励!",
String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("MsRankContent",new Object[]{(i + 1)},new int[0],"#");
MailLogic.getInstance().sendMail(arenaRankfilt.get(i), title, content,
StringUtil.parseArrayToString(config.getSeasonReward()), TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME);
//TODO 跑马灯
//ChatLogic.getInstance().sendSysChatMessage(message,Global.LUCKY_LUCK,String.valueOf(equipId),0,0,0,0,0);
@ -238,8 +237,8 @@ public class CrossYuxulundaoLogic {
}
} else {
//比他低的三个 比他高的两个
Set<String> arenaRank1 = RedisUtil.getInstence().getReverseZset(rkey, myRank - 3, myRank - 1);
Set<String> arenaRank2 = RedisUtil.getInstence().getReverseZset(rkey, myRank, myRank + 3);
Set<String> arenaRank1 = RedisUtil.getInstence().getReverseZset(rkey, myRank - 3, myRank - 2);
Set<String> arenaRank2 = RedisUtil.getInstence().getReverseZset(rkey, myRank, myRank + 2);
arenaRank.addAll(arenaRank1);
arenaRank.addAll(arenaRank2);
}
@ -296,7 +295,7 @@ public class CrossYuxulundaoLogic {
.setLevel(arenaOfUser.getPlayerManager().getLevel())
.setName(arenaOfUser.getPlayerManager().getName())
.setServername(serverName)
.setTotalForce(arenaOfUser.getHeroManager().getTotalForce())
.setTotalForce(arenaOfUser.getHeroManager().getYxldForce())
.setUserTitle(arenaOfUser.getPlayerManager().getUserTitle())
.setUserMount(arenaOfUser.getPlayerManager().getUserMount())
.setGender(arenaOfUser.getPlayerManager().getGender())
@ -355,7 +354,7 @@ public class CrossYuxulundaoLogic {
.addAllResult(result)
.setMyScoreChange(arenaRecord.getYxldScoreChange())
.setLevel(arenaRecord.getLevel())
.setHead(arenaRecord.getHead())
.setHead(arenaRecord.getHead()).setServerName(arenaRecord.getServerName())
.setUserName(arenaRecord.getUserName())
.setHeadFrame(arenaRecord.getHeadFrame()).setFightData1(fightDataProto1).setFightData2(fightDataProto2).setFightData3(fightDataProto3)
.setPower(arenaRecord.getAttackForce()).setType(arenaRecord.getYxldBattleType()).build();

View File

@ -25,6 +25,8 @@ public class ArenaOfHeroManager {
private int totalForce;
private int yxldForce;
public ArenaOfHeroManager(Map<Integer, List<TeamPosHeroInfo>> teams, Map<String, ArenaOfHero> heros, Map<String, PropertyItem> jewels, Map<Integer,Integer> totalForceByTeam, int totalForce) {
this.teams = teams;
@ -76,4 +78,12 @@ public class ArenaOfHeroManager {
public void setTotalForceByTeam(Map<Integer, Integer> totalForceByTeam) {
this.totalForceByTeam = totalForceByTeam;
}
public int getYxldForce() {
return yxldForce;
}
public void setYxldForce(int yxldForce) {
this.yxldForce = yxldForce;
}
}

View File

@ -72,7 +72,7 @@ public class CrossYuXuLunDaoRank extends AbstractRank{
.setUserSkin(80012)
.setRankInfo(everyRankInfo)
.setServerName(serverName)
.setSex(0);
.setSex(0).setCrossScore(mapEntry.getEnemyStatus());
builder.addRanks(everyRank);
}else{
ArenaOfUser query = CrossServiceLogic.getInstance().query(Integer.valueOf(data.getValue()));