车迟斗法积分显示和排行榜转圈优化

back_recharge
duhui 2022-03-10 11:00:53 +08:00
parent aa24961454
commit 71b403e608
14 changed files with 42 additions and 13 deletions

View File

@ -374,7 +374,7 @@ public class AreaManager {
}
} catch (Exception e) {
LOGGER.info("合并命名异常" + e.toString());
LOGGER.info("合并命名异常" + e);
}
}

View File

@ -123,7 +123,7 @@ public class FastChallengeHandler extends BaseHandler<FightInfoProto.FastFightCh
int challengeGuild;
if (crossGroup > 0){
fightResult = FightUtil.getCrossFightForPVP(uid,challengeId,teamId,teamId, FightType.CarPersonFight,battleRound);
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(challengeId,false);
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(challengeId);
if (csPlayer == null){
throw new ErrorCodeException(ErrorCode.CROSS_USE_NOT_EXIT);
}

View File

@ -96,6 +96,7 @@ public class FamilyFeteRequestHandler extends BaseHandler<Family.FamilyFeteReque
if (GuildLogic.checkGuildLevelMax(guildInfo)&&guildInfo.getExp() + addexp >= levelConfigMap.get(guildInfo.getLevel()).getExp()) {
guildInfo.updateExp(guildInfo.getExp() + addexp - levelConfigMap.get(guildInfo.getLevel()).getExp());
GuildLogic.upLevel(guildInfo,guildInfo.getLevel() + 1);
// 公会升级
CrossDeathPathLogic.setCrossGuild(guildInfo);
} else {
guildInfo.updateExp(guildInfo.getExp() + addexp);

View File

@ -201,7 +201,7 @@ public class GetCarChallengeListHandler extends BaseHandler {
}
builder1.setUid(challenegUid)
.setUserName(csPlayer.getName())
.setScore(item.getScore().intValue())
.setScore(item.getScore().longValue())
.setForce(fore)
.setRank(rank)
.setPracticeLevel(csPlayer.getPracticeLevel())
@ -223,7 +223,7 @@ public class GetCarChallengeListHandler extends BaseHandler {
Family.CarChallengeItem.Builder builder1 = Family.CarChallengeItem.newBuilder()
.setUid(challenegUid)
.setUserName(challenegeUser.getPlayerInfoManager().getNickName())
.setScore(item.getScore().intValue())
.setScore(item.getScore().longValue())
.setForce(HeroLogic.getInstance().calTeamTotalForce(challenegeUser, TeamEnum.CAR_DELAY_TEAM.getTeamId(),false))
.setRank(rank)
.setPracticeLevel(challenegeUser.getHeroManager().getPracticeLevel());

View File

@ -1,11 +1,8 @@
package com.ljsd.jieling.kefu;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.exception.ErrorCode;
import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.logic.dao.GuilidManager;
import com.ljsd.jieling.logic.dao.root.GuildCache;
import com.ljsd.jieling.logic.dao.root.GuildInfo;
import com.ljsd.jieling.logic.family.CrossDeathPathLogic;
import com.ljsd.jieling.logic.family.GuildLogic;
@ -36,6 +33,7 @@ public class Cmd_addfete extends GmRoleAbstract {
if (GuildLogic.checkGuildLevelMax(guildInfo)&&guildInfo.getExp() + addexp >= levelConfigMap.get(guildInfo.getLevel()).getExp()) {
GuildLogic.upLevel(guildInfo,guildInfo.getLevel() + 1);
guildInfo.updateExp(guildInfo.getExp() + addexp - levelConfigMap.get(guildInfo.getLevel()).getExp());
// gm公会升级
CrossDeathPathLogic.setCrossGuild(guildInfo);
} else {
guildInfo.updateExp(guildInfo.getExp() + addexp);

View File

@ -1,9 +1,11 @@
package com.ljsd.jieling.kefu;
import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.logic.dao.GuilidManager;
import com.ljsd.jieling.logic.dao.PlayerManager;
import com.ljsd.jieling.logic.dao.root.GuildInfo;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.family.CrossDeathPathLogic;
import config.SGuildSetting;
import util.TimeUtils;
@ -59,6 +61,10 @@ public class Cmd_skyeye extends GmRoleAbstract {
default:
break;
}
// 天眼修改公会
CrossDeathPathLogic.setCrossGuild(guildInfo);
//非用户线程更新玩家数据
MongoUtil.getLjsdMongoTemplate().lastUpdate();
return true;
}
}

View File

@ -4,6 +4,7 @@ import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.logic.dao.GuilidManager;
import com.ljsd.jieling.logic.dao.root.GuildInfo;
import com.ljsd.jieling.logic.family.CrossDeathPathLogic;
import com.ljsd.jieling.logic.family.GuildLogic;
import java.util.Optional;
@ -41,7 +42,8 @@ public class Cmd_updateguild extends GmAbstract {
throw new ErrorCodeException("修改公会,类型错误,公会id:"+guildId+",类型:"+parm);
}
GuildLogic.sendFamilyBaseUpdateIndication(guildInfo);
// gm修改公会信息
CrossDeathPathLogic.setCrossGuild(guildInfo);
//非用户线程更新玩家数据
MongoUtil.getLjsdMongoTemplate().lastUpdate();
return true;

View File

@ -7,6 +7,7 @@ import com.ljsd.jieling.logic.dao.root.GuildApply;
import com.ljsd.jieling.logic.dao.root.GuildInfo;
import com.ljsd.jieling.logic.dao.root.GuildLog;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.family.CrossDeathPathLogic;
import com.ljsd.jieling.logic.family.GuildLogic;
import com.ljsd.jieling.logic.rank.RankContext;
import com.ljsd.jieling.logic.rank.RankEnum;
@ -123,11 +124,14 @@ public class GuilidManager {
GuildInfo guildInfo = guildInfoMap.get(Integer.parseInt(value));
if(guildInfo == null){
// 公会不存在
CrossDeathPathLogic.removeCrossGuild(Integer.parseInt(value));
RedisUtil.getInstence().zsetRemoveOne(key,value);
continue;
}
GuildLogic.releaseGuild(guildInfo);
// 解散公会
CrossDeathPathLogic.removeCrossGuild(Integer.parseInt(value));
RedisUtil.getInstence().zsetRemoveOne(key,value);
}
round++;
@ -143,6 +147,8 @@ public class GuilidManager {
String key = RedisUtil.getInstence().getKey("guild-release", "");
int levelTime = guildInfo.getLevelTime();
if(levelTime == 0){
// 解散公会
CrossDeathPathLogic.removeCrossGuild(guildInfo.getId());
RedisUtil.getInstence().zsetRemoveOne(key,Integer.toString(guildInfo.getId()));
return;
}

View File

@ -118,13 +118,22 @@ public class CrossDeathPathLogic {
RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_INFO, "", String.valueOf(guildInfo.getId()), GuildCache.create(guildInfo));
}
/**
*
* @param guildId
* @return
*/
public static void removeCrossGuild(int guildId){
RedisUtil.getInstence().removeMapEntrys(RedisKey.FAMILY_INFO, "", String.valueOf(guildId));
}
/**
*
*/
public void sendChangeIndicationByCross(){
Map<Object, Object> map = RedisUtil.getInstence().hmget(RedisKey.DEATH_PATH_CHALLENGE_FIRST_PUSH);
if (map != null && !map.isEmpty()){
LOGGER.info("跨服十绝阵第一推送==========={}",map.toString());
LOGGER.info("跨服十绝阵第一推送==========={}", map);
for (Map.Entry<Object, Object> entry : map.entrySet()) {
int pathId = Integer.parseInt((String) entry.getKey());
int guildId = Integer.parseInt((String) entry.getValue());

View File

@ -222,6 +222,7 @@ public class GuildChallengeLogic {
if (GuildLogic.checkGuildLevelMax(guildInfo)&&guildInfo.getExp() + config.getLegionExp() >= levelConfigMap.get(guildInfo.getLevel()).getExp()) {
guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp() - levelConfigMap.get(guildInfo.getLevel()).getExp());
GuildLogic.upLevel(guildInfo,guildInfo.getLevel() + 1);
// 公会升级
CrossDeathPathLogic.setCrossGuild(guildInfo);
} else {
guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp());
@ -253,6 +254,7 @@ public class GuildChallengeLogic {
if (GuildLogic.checkGuildLevelMax(guildInfo)&&guildInfo.getExp() + config.getLegionExp() >= levelConfigMap.get(guildInfo.getLevel()).getExp()) {
guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp() - levelConfigMap.get(guildInfo.getLevel()).getExp());
GuildLogic.upLevel(guildInfo,guildInfo.getLevel() + 1);
// 公会升级
CrossDeathPathLogic.setCrossGuild(guildInfo);
} else {
guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp());

View File

@ -807,6 +807,7 @@ public class GuildFightLogic {
if(guildInfo.getExp()+getExp>=levelConfigMap.get(guildInfo.getLevel()).getExp()){
guildInfo.updateExp(guildInfo.getExp()+getExp-levelConfigMap.get(guildInfo.getLevel()).getExp());
GuildLogic.upLevel(guildInfo,guildInfo.getLevel() + 1);
// 公会升级
CrossDeathPathLogic.setCrossGuild(guildInfo);
}else{
guildInfo.updateExp(guildInfo.getExp()+getExp);

View File

@ -196,6 +196,7 @@ public class GuildLogic {
GuilidManager.addGuildInfo(guildInfo);
user.getPlayerInfoManager().setGuildId(guildInfo.getId());
addGuildLog(guildInfo.getId(),GuildDef.Log.CREATE,user.getPlayerInfoManager().getNickName());
// 创建公会
CrossDeathPathLogic.setCrossGuild(guildInfo);
PlayerInfoCache cache = RedisUtil.getInstence().getMapEntry(RedisKey.PLAYER_INFO_CACHE, "", String.valueOf(uid), PlayerInfoCache.class);
@ -755,6 +756,8 @@ public class GuildLogic {
PlayerLogic.getInstance().playerInfoUpdate(user);
guildInfo.addMembers(GlobalsDef.MEMBER,uid);
sendPositionChange(uid,GlobalsDef.CHAIRMAN_TO_MENBER);
// 转移会长
CrossDeathPathLogic.setCrossGuild(guildInfo);
addGuildLog(guildInfo.getId(),GuildDef.Log.TRANSFER,targetUser.getPlayerInfoManager().getNickName());
}else{
addGuildLog(guildInfo.getId(),GuildDef.Log.APPOINTMENT,targetUser.getPlayerInfoManager().getNickName());
@ -848,7 +851,7 @@ public class GuildLogic {
guildInfo.setName(content);
// 天眼查询
MessageUtil.sendSkyEyeMsgByGuild(content,user,MessageUtil.skyeye_guildName,guildInfo.getId());
// 缓存同步
// 修改公会名
CrossDeathPathLogic.setCrossGuild(guildInfo);
}
MessageUtil.sendMessage(session,resultCode,msgId,response,true);
@ -1011,7 +1014,6 @@ public class GuildLogic {
CommonProto.FamilyBaseInfo familyBaseInfo = CBean2Proto.getFamilyBaseInfo(guildInfo);
Family.FamilyChangeIndication build = Family.FamilyChangeIndication.newBuilder().setFamilyBaseInfo(familyBaseInfo).build();
sendIndicationToMember(guildInfo,MessageTypeProto.MessageType.FAMILY_CHANGE_BASE_INDICATION,build);
}
@ -1165,6 +1167,7 @@ public class GuildLogic {
}
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(playerInfoManager.getGuildId());
guildInfo.updateIcon(iconId);
// 修改公会图标
CrossDeathPathLogic.setCrossGuild(guildInfo);
MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true);
}

View File

@ -99,6 +99,7 @@ public class CrossRankManager {
public void guildCacheHandle(){
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.guildInfoMap;
for (Map.Entry<Integer, GuildInfo> entry : guildInfoMap.entrySet()) {
// 启动游戏,重新赋值公会信息
CrossDeathPathLogic.setCrossGuild(entry.getValue());
}
LOGGER.info("==================工会缓存处理=============");

View File

@ -33,7 +33,7 @@ public class CrossGuildForceRank extends GuildForceRank {
if (mapEntry == null){
return;
}
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(mapEntry.getLeaderUId(),false);
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(mapEntry.getLeaderUId());
if (csPlayer == null){
return;
}