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

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) { } 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; int challengeGuild;
if (crossGroup > 0){ if (crossGroup > 0){
fightResult = FightUtil.getCrossFightForPVP(uid,challengeId,teamId,teamId, FightType.CarPersonFight,battleRound); fightResult = FightUtil.getCrossFightForPVP(uid,challengeId,teamId,teamId, FightType.CarPersonFight,battleRound);
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(challengeId,false); CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(challengeId);
if (csPlayer == null){ if (csPlayer == null){
throw new ErrorCodeException(ErrorCode.CROSS_USE_NOT_EXIT); 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()) { if (GuildLogic.checkGuildLevelMax(guildInfo)&&guildInfo.getExp() + addexp >= levelConfigMap.get(guildInfo.getLevel()).getExp()) {
guildInfo.updateExp(guildInfo.getExp() + addexp - levelConfigMap.get(guildInfo.getLevel()).getExp()); guildInfo.updateExp(guildInfo.getExp() + addexp - levelConfigMap.get(guildInfo.getLevel()).getExp());
GuildLogic.upLevel(guildInfo,guildInfo.getLevel() + 1); GuildLogic.upLevel(guildInfo,guildInfo.getLevel() + 1);
// 公会升级
CrossDeathPathLogic.setCrossGuild(guildInfo); CrossDeathPathLogic.setCrossGuild(guildInfo);
} else { } else {
guildInfo.updateExp(guildInfo.getExp() + addexp); guildInfo.updateExp(guildInfo.getExp() + addexp);

View File

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

View File

@ -1,11 +1,8 @@
package com.ljsd.jieling.kefu; 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.ErrorCode;
import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.logic.dao.GuilidManager; 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.dao.root.GuildInfo;
import com.ljsd.jieling.logic.family.CrossDeathPathLogic; import com.ljsd.jieling.logic.family.CrossDeathPathLogic;
import com.ljsd.jieling.logic.family.GuildLogic; 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()) { if (GuildLogic.checkGuildLevelMax(guildInfo)&&guildInfo.getExp() + addexp >= levelConfigMap.get(guildInfo.getLevel()).getExp()) {
GuildLogic.upLevel(guildInfo,guildInfo.getLevel() + 1); GuildLogic.upLevel(guildInfo,guildInfo.getLevel() + 1);
guildInfo.updateExp(guildInfo.getExp() + addexp - levelConfigMap.get(guildInfo.getLevel()).getExp()); guildInfo.updateExp(guildInfo.getExp() + addexp - levelConfigMap.get(guildInfo.getLevel()).getExp());
// gm公会升级
CrossDeathPathLogic.setCrossGuild(guildInfo); CrossDeathPathLogic.setCrossGuild(guildInfo);
} else { } else {
guildInfo.updateExp(guildInfo.getExp() + addexp); guildInfo.updateExp(guildInfo.getExp() + addexp);

View File

@ -1,9 +1,11 @@
package com.ljsd.jieling.kefu; 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.GuilidManager;
import com.ljsd.jieling.logic.dao.PlayerManager; import com.ljsd.jieling.logic.dao.PlayerManager;
import com.ljsd.jieling.logic.dao.root.GuildInfo; import com.ljsd.jieling.logic.dao.root.GuildInfo;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.family.CrossDeathPathLogic;
import config.SGuildSetting; import config.SGuildSetting;
import util.TimeUtils; import util.TimeUtils;
@ -59,6 +61,10 @@ public class Cmd_skyeye extends GmRoleAbstract {
default: default:
break; break;
} }
// 天眼修改公会
CrossDeathPathLogic.setCrossGuild(guildInfo);
//非用户线程更新玩家数据
MongoUtil.getLjsdMongoTemplate().lastUpdate();
return true; 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.exception.ErrorCodeException;
import com.ljsd.jieling.logic.dao.GuilidManager; import com.ljsd.jieling.logic.dao.GuilidManager;
import com.ljsd.jieling.logic.dao.root.GuildInfo; import com.ljsd.jieling.logic.dao.root.GuildInfo;
import com.ljsd.jieling.logic.family.CrossDeathPathLogic;
import com.ljsd.jieling.logic.family.GuildLogic; import com.ljsd.jieling.logic.family.GuildLogic;
import java.util.Optional; import java.util.Optional;
@ -41,7 +42,8 @@ public class Cmd_updateguild extends GmAbstract {
throw new ErrorCodeException("修改公会,类型错误,公会id:"+guildId+",类型:"+parm); throw new ErrorCodeException("修改公会,类型错误,公会id:"+guildId+",类型:"+parm);
} }
GuildLogic.sendFamilyBaseUpdateIndication(guildInfo); GuildLogic.sendFamilyBaseUpdateIndication(guildInfo);
// gm修改公会信息
CrossDeathPathLogic.setCrossGuild(guildInfo);
//非用户线程更新玩家数据 //非用户线程更新玩家数据
MongoUtil.getLjsdMongoTemplate().lastUpdate(); MongoUtil.getLjsdMongoTemplate().lastUpdate();
return true; 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.GuildInfo;
import com.ljsd.jieling.logic.dao.root.GuildLog; import com.ljsd.jieling.logic.dao.root.GuildLog;
import com.ljsd.jieling.logic.dao.root.User; 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.family.GuildLogic;
import com.ljsd.jieling.logic.rank.RankContext; import com.ljsd.jieling.logic.rank.RankContext;
import com.ljsd.jieling.logic.rank.RankEnum; import com.ljsd.jieling.logic.rank.RankEnum;
@ -123,11 +124,14 @@ public class GuilidManager {
GuildInfo guildInfo = guildInfoMap.get(Integer.parseInt(value)); GuildInfo guildInfo = guildInfoMap.get(Integer.parseInt(value));
if(guildInfo == null){ if(guildInfo == null){
// 公会不存在
CrossDeathPathLogic.removeCrossGuild(Integer.parseInt(value));
RedisUtil.getInstence().zsetRemoveOne(key,value); RedisUtil.getInstence().zsetRemoveOne(key,value);
continue; continue;
} }
GuildLogic.releaseGuild(guildInfo); GuildLogic.releaseGuild(guildInfo);
// 解散公会
CrossDeathPathLogic.removeCrossGuild(Integer.parseInt(value));
RedisUtil.getInstence().zsetRemoveOne(key,value); RedisUtil.getInstence().zsetRemoveOne(key,value);
} }
round++; round++;
@ -143,6 +147,8 @@ public class GuilidManager {
String key = RedisUtil.getInstence().getKey("guild-release", ""); String key = RedisUtil.getInstence().getKey("guild-release", "");
int levelTime = guildInfo.getLevelTime(); int levelTime = guildInfo.getLevelTime();
if(levelTime == 0){ if(levelTime == 0){
// 解散公会
CrossDeathPathLogic.removeCrossGuild(guildInfo.getId());
RedisUtil.getInstence().zsetRemoveOne(key,Integer.toString(guildInfo.getId())); RedisUtil.getInstence().zsetRemoveOne(key,Integer.toString(guildInfo.getId()));
return; return;
} }

View File

@ -118,13 +118,22 @@ public class CrossDeathPathLogic {
RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_INFO, "", String.valueOf(guildInfo.getId()), GuildCache.create(guildInfo)); 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(){ public void sendChangeIndicationByCross(){
Map<Object, Object> map = RedisUtil.getInstence().hmget(RedisKey.DEATH_PATH_CHALLENGE_FIRST_PUSH); Map<Object, Object> map = RedisUtil.getInstence().hmget(RedisKey.DEATH_PATH_CHALLENGE_FIRST_PUSH);
if (map != null && !map.isEmpty()){ if (map != null && !map.isEmpty()){
LOGGER.info("跨服十绝阵第一推送==========={}",map.toString()); LOGGER.info("跨服十绝阵第一推送==========={}", map);
for (Map.Entry<Object, Object> entry : map.entrySet()) { for (Map.Entry<Object, Object> entry : map.entrySet()) {
int pathId = Integer.parseInt((String) entry.getKey()); int pathId = Integer.parseInt((String) entry.getKey());
int guildId = Integer.parseInt((String) entry.getValue()); 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()) { if (GuildLogic.checkGuildLevelMax(guildInfo)&&guildInfo.getExp() + config.getLegionExp() >= levelConfigMap.get(guildInfo.getLevel()).getExp()) {
guildInfo.updateExp(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); GuildLogic.upLevel(guildInfo,guildInfo.getLevel() + 1);
// 公会升级
CrossDeathPathLogic.setCrossGuild(guildInfo); CrossDeathPathLogic.setCrossGuild(guildInfo);
} else { } else {
guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp()); 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()) { if (GuildLogic.checkGuildLevelMax(guildInfo)&&guildInfo.getExp() + config.getLegionExp() >= levelConfigMap.get(guildInfo.getLevel()).getExp()) {
guildInfo.updateExp(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); GuildLogic.upLevel(guildInfo,guildInfo.getLevel() + 1);
// 公会升级
CrossDeathPathLogic.setCrossGuild(guildInfo); CrossDeathPathLogic.setCrossGuild(guildInfo);
} else { } else {
guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp()); guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp());

View File

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

View File

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

View File

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

View File

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