开服冲榜补充
parent
dc8e3b3c3c
commit
ffc965a6fe
|
|
@ -33,9 +33,10 @@ public class DbClear {
|
|||
public static StringRedisTemplate getRedisTemplate(){
|
||||
JedisConnectionFactory connectionFactory = new JedisConnectionFactory();
|
||||
//设置host
|
||||
connectionFactory.setHostName("60.1.1.21");
|
||||
connectionFactory.setHostName("60.1.1.32");
|
||||
//设置端口
|
||||
connectionFactory.setPort(6379);
|
||||
connectionFactory.setPassword("ysj666");
|
||||
//初始化connectionFactory
|
||||
connectionFactory.afterPropertiesSet();
|
||||
//实例化
|
||||
|
|
|
|||
|
|
@ -410,6 +410,10 @@ public class RedisKey {
|
|||
* 战力排行榜
|
||||
*/
|
||||
public static final String EQUIP_SCORE_RANK = "EQUIP_SCORE_RANK";
|
||||
/**
|
||||
* 魂印排行榜
|
||||
*/
|
||||
public static final String SOUL_SEAL_RANK = "SOUL_SEAL_RANK";
|
||||
|
||||
/**
|
||||
* 四灵挑战数据转移到mongo记录
|
||||
|
|
|
|||
|
|
@ -19,6 +19,5 @@ public class SoulEquipWearHandler extends BaseHandler<HeroInfoProto.SoulEquipWea
|
|||
HeroInfoProto.OptHeroSoul wearInfo = equipWearRequest.getWearInfo();
|
||||
HeroInfoProto.OptHeroSoul unloadInfo = equipWearRequest.getUnloadInfo();
|
||||
HeroLogic.getInstance().wearSoulEquip(iSession,wearInfo,unloadInfo);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import com.ljsd.jieling.core.function.FunctionContext;
|
|||
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||
import com.ljsd.jieling.handler.map.MapLogic;
|
||||
import com.ljsd.jieling.logic.activity.*;
|
||||
import com.ljsd.jieling.logic.activity.activityLogic.GmActivityLogic;
|
||||
import com.ljsd.jieling.logic.activity.activityLogic.WeekCardLogic;
|
||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
import com.ljsd.jieling.logic.activity.event.SuperBoxEvent;
|
||||
|
|
@ -460,6 +461,8 @@ public class GlobalDataManaager implements IManager {
|
|||
SevenWorldLogic.getInstance().sevenWorldInfoIndication(session);
|
||||
// 御剑行
|
||||
RidingSwardLogic.getInstance().zeroClearRidingSwardByUser(user);
|
||||
// 自动返利
|
||||
GmActivityLogic.getInstance().zeroUpdateGmActivity(user);
|
||||
//周卡邮件发放未领取奖励
|
||||
// WeekCardLogic.getInstance().sendWeekCardRewardMail(session);
|
||||
WeekCardLogic.getInstance().weekCardInfoIndication(user,0,0);
|
||||
|
|
|
|||
|
|
@ -5,12 +5,24 @@ import com.ljsd.jieling.logic.activity.event.IEvent;
|
|||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
import com.ljsd.jieling.logic.activity.event.SaveHeroForceEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.UserMainTeamForceEvent;
|
||||
import com.ljsd.jieling.logic.dao.Hero;
|
||||
import com.ljsd.jieling.logic.dao.TeamEnum;
|
||||
import com.ljsd.jieling.logic.dao.TeamPosHeroInfo;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||
import com.ljsd.jieling.logic.rank.RankContext;
|
||||
import com.ljsd.jieling.logic.rank.RankEnum;
|
||||
import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank;
|
||||
import config.SCHero;
|
||||
import config.SChongRankInformation;
|
||||
import config.SEquipConfig;
|
||||
import manager.STableManager;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 说明:英雄战力存储
|
||||
|
|
@ -19,7 +31,7 @@ import java.util.List;
|
|||
* 2022/4/26 10:29:18
|
||||
*/
|
||||
public class SaveHeroForceEventHandler implements IEventHandler {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(SaveHeroForceEventHandler.class);
|
||||
public SaveHeroForceEventHandler() {
|
||||
Poster.getPoster().listenEvent(this, SaveHeroForceEvent.class);
|
||||
}
|
||||
|
|
@ -38,6 +50,8 @@ public class SaveHeroForceEventHandler implements IEventHandler {
|
|||
}
|
||||
// user
|
||||
User user = UserManager.getUser(uid);
|
||||
// 英雄星级排行榜处理
|
||||
heroStarHandle(user);
|
||||
// 需要存储战力的编队
|
||||
List<Integer> saveForceTeamList = TeamEnum.getSaveForceTeamList();
|
||||
for (Integer teamId : saveForceTeamList) {
|
||||
|
|
@ -48,10 +62,126 @@ public class SaveHeroForceEventHandler implements IEventHandler {
|
|||
// 主线编队需要更新排行榜信息
|
||||
if (teamId == TeamEnum.FORMATION_NORMAL.getTeamId()){
|
||||
Poster.getPoster().dispatchEvent(new UserMainTeamForceEvent(uid));
|
||||
// 装备和魂印排行榜处理
|
||||
equipRankHandle(user);
|
||||
soulSealRankHandle(user);
|
||||
}
|
||||
// 重新计算战力,并更新
|
||||
int force = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.FORMATION_NORMAL.getTeamId(), false);
|
||||
user.getTeamPosManager().putTeamForceMap(teamId,force);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 装备排行榜处理
|
||||
* @param user
|
||||
*/
|
||||
private void equipRankHandle(User user){
|
||||
AbstractRank rank = RankContext.getRankEnum(RankEnum.EQUIP_SCORE_RANK.getType());
|
||||
int scoreCompute = equipScoreCompute(user);
|
||||
rank.addRank(user.getId(),"", scoreCompute);
|
||||
}
|
||||
|
||||
/**
|
||||
* 魂印排行榜处理
|
||||
* @param user
|
||||
*/
|
||||
private void soulSealRankHandle(User user){
|
||||
AbstractRank rank = RankContext.getRankEnum(RankEnum.SOUL_SEAL_RANK.getType());
|
||||
int scoreCompute = soulSealScoreCompute(user);
|
||||
rank.addRank(user.getId(),"", scoreCompute);
|
||||
}
|
||||
|
||||
/**
|
||||
* 英雄星级处理
|
||||
* @param user
|
||||
*/
|
||||
private void heroStarHandle(User user){
|
||||
AbstractRank rank = RankContext.getRankEnum(RankEnum.HERO_STAR_RANK.getType());
|
||||
int scoreCompute = heroStarCompute(user);
|
||||
rank.addRank(user.getId(),"", scoreCompute);
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算英雄星级评分
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
private int heroStarCompute(User user){
|
||||
int num = 0;
|
||||
Map<Integer, Map<Integer, SChongRankInformation>> naturalMap = SChongRankInformation.getNaturalMap();
|
||||
Map<Integer, SCHero> scHeroMap = SCHero.getsCHero();
|
||||
for (Hero hero : user.getHeroManager().getHeroMap().values()) {
|
||||
try {
|
||||
SCHero scHero = scHeroMap.get(hero.getTemplateId());
|
||||
SChongRankInformation information = naturalMap.get(scHero.getNatural()).get(hero.getStar());
|
||||
if (information == null){
|
||||
continue;
|
||||
}
|
||||
num += information.getScore();
|
||||
}catch (NullPointerException e){
|
||||
LOGGER.error("计算英雄星级评分报错,uid:{},英雄id:{},英雄模板id:{}",user.getId(),hero.getId(),hero.getTemplateId());
|
||||
}
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算主线编队装备评分
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
private int equipScoreCompute(User user){
|
||||
List<TeamPosHeroInfo> infos = user.getTeamPosManager().getTeamPosForHero().get(TeamEnum.FORMATION_NORMAL.getTeamId());
|
||||
if (infos == null){
|
||||
return 0;
|
||||
}
|
||||
int num = 0;
|
||||
Map<String, Hero> heroMap = user.getHeroManager().getHeroMap();
|
||||
Map<Integer, SEquipConfig> equipConfigMap = STableManager.getConfig(SEquipConfig.class);
|
||||
for (TeamPosHeroInfo info : infos) {
|
||||
Hero hero = heroMap.get(info.getHeroId());
|
||||
if (hero == null){
|
||||
continue;
|
||||
}
|
||||
for (Integer id : hero.getEquipByPositionMap().values()) {
|
||||
SEquipConfig config = equipConfigMap.get(id);
|
||||
if (config == null){
|
||||
continue;
|
||||
}
|
||||
num += config.getScore();
|
||||
}
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算主线编队魂印评分
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
private int soulSealScoreCompute(User user){
|
||||
List<TeamPosHeroInfo> infos = user.getTeamPosManager().getTeamPosForHero().get(TeamEnum.FORMATION_NORMAL.getTeamId());
|
||||
if (infos == null){
|
||||
return 0;
|
||||
}
|
||||
int num = 0;
|
||||
Map<String, Hero> heroMap = user.getHeroManager().getHeroMap();
|
||||
Map<Integer, SEquipConfig> equipConfigMap = STableManager.getConfig(SEquipConfig.class);
|
||||
for (TeamPosHeroInfo info : infos) {
|
||||
Hero hero = heroMap.get(info.getHeroId());
|
||||
if (hero == null){
|
||||
continue;
|
||||
}
|
||||
for (Integer id : hero.getSoulEquipByPositionMap().values()) {
|
||||
SEquipConfig config = equipConfigMap.get(id);
|
||||
if (config == null){
|
||||
continue;
|
||||
}
|
||||
num += config.getScore();
|
||||
}
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,9 +33,9 @@ public class Hero extends MongoBase implements Comparable<Hero>,Cloneable {
|
|||
private Map<Integer,HeroEquipStrong> equipStrongMap = new HashMap<>(4);
|
||||
// 英雄装备突破等级
|
||||
private int equipAdvanceLv;
|
||||
|
||||
//魂印
|
||||
private Map<Integer,Integer> soulEquipByPositionMap = new HashMap<>();
|
||||
|
||||
// 神印
|
||||
private Map<Integer, Integer> godSealByPositionMap = new HashMap<>();
|
||||
|
||||
private int breakId;
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ import com.ljsd.jieling.ktbeans.ReportEventEnum;
|
|||
import com.ljsd.jieling.ktbeans.ReportUtil;
|
||||
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.activity.ActivityType;
|
||||
import com.ljsd.jieling.logic.activity.ActivityTypeEnum;
|
||||
import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic;
|
||||
import com.ljsd.jieling.logic.activity.event.*;
|
||||
import com.ljsd.jieling.logic.activity.eventhandler.HeroFiveStarGetEventHandler;
|
||||
|
|
@ -40,9 +39,6 @@ import com.ljsd.jieling.logic.mail.MailLogic;
|
|||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
import com.ljsd.jieling.logic.mission.MissionType;
|
||||
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 com.ljsd.jieling.logic.redpacket.WelfareRedPackEvent;
|
||||
import com.ljsd.jieling.logic.redpacket.WelfareRedPacketType;
|
||||
import com.ljsd.jieling.logic.store.BuyGoodsNewLogic;
|
||||
|
|
@ -5366,90 +5362,6 @@ public class HeroLogic {
|
|||
*/
|
||||
public void addOrUpdateHongmeng(ISession session) throws Exception {
|
||||
addOrUpdateHongmeng(session, false);
|
||||
|
||||
// 排行榜信息
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
equipRankHandle(user);
|
||||
heroStarHandle(user);
|
||||
}
|
||||
|
||||
/**
|
||||
* 装备排行榜处理
|
||||
* @param user
|
||||
*/
|
||||
private void equipRankHandle(User user){
|
||||
AbstractRank rank = RankContext.getRankEnum(RankEnum.EQUIP_SCORE_RANK.getType());
|
||||
double score = rank.getScoreById(user.getId(), "");
|
||||
|
||||
int scoreCompute = equipScoreCompute(user);
|
||||
double count = scoreCompute - score;
|
||||
rank.addRank(user.getId(),"", count);
|
||||
}
|
||||
|
||||
/**
|
||||
* 英雄星级处理
|
||||
* @param user
|
||||
*/
|
||||
private void heroStarHandle(User user){
|
||||
AbstractRank rank = RankContext.getRankEnum(RankEnum.HERO_STAR_RANK.getType());
|
||||
double score = rank.getScoreById(user.getId(), "");
|
||||
|
||||
int scoreCompute = heroStarCompute(user);
|
||||
double count = scoreCompute - score;
|
||||
rank.addRank(user.getId(),"", count);
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算英雄星级评分
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
private int heroStarCompute(User user){
|
||||
int num = 0;
|
||||
Map<Integer, Map<Integer, SChongRankInformation>> naturalMap = SChongRankInformation.getNaturalMap();
|
||||
Map<Integer, SCHero> scHeroMap = SCHero.getsCHero();
|
||||
for (Hero hero : user.getHeroManager().getHeroMap().values()) {
|
||||
try {
|
||||
SCHero scHero = scHeroMap.get(hero.getTemplateId());
|
||||
SChongRankInformation information = naturalMap.get(scHero.getNatural()).get(hero.getStar());
|
||||
if (information == null){
|
||||
continue;
|
||||
}
|
||||
num += information.getScore();
|
||||
}catch (NullPointerException e){
|
||||
LOGGER.error("计算英雄星级评分报错,uid:{},英雄id:{},英雄模板id:{}",user.getId(),hero.getId(),hero.getTemplateId());
|
||||
}
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算主线编队装备评分
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
private int equipScoreCompute(User user){
|
||||
List<TeamPosHeroInfo> infos = user.getTeamPosManager().getTeamPosForHero().get(TeamEnum.FORMATION_NORMAL.getTeamId());
|
||||
if (infos == null){
|
||||
return 0;
|
||||
}
|
||||
int num = 0;
|
||||
Map<String, Hero> heroMap = user.getHeroManager().getHeroMap();
|
||||
Map<Integer, SEquipConfig> equipConfigMap = STableManager.getConfig(SEquipConfig.class);
|
||||
for (TeamPosHeroInfo info : infos) {
|
||||
Hero hero = heroMap.get(info.getHeroId());
|
||||
if (hero == null){
|
||||
continue;
|
||||
}
|
||||
for (Integer id : hero.getEquipByPositionMap().values()) {
|
||||
SEquipConfig config = equipConfigMap.get(id);
|
||||
if (config == null){
|
||||
continue;
|
||||
}
|
||||
num += config.getScore();
|
||||
}
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -35,8 +35,9 @@ public enum RankEnum {
|
|||
FOUR_CHALLENGE_TIER_RANK(38,RedisKey.FOUR_CHALLENGE_TIER_RANK,SituationRank::new,false),//四灵试炼排行榜,param1:层数 param2:无 param3:无
|
||||
POWER_RICE_RANK(42,RedisKey.POWER_RICE_RANK,PowerRiceRank::new,false),//战力冲刺排行榜
|
||||
EXPLORE_RANK(43,RedisKey.EXPLORE_RANK,ExploreRank::new,false),//探索排行榜
|
||||
HERO_STAR_RANK(101,RedisKey.HERO_STAR_RANK,ForceRank::new,false),//升星排行榜
|
||||
HERO_STAR_RANK(101,RedisKey.HERO_STAR_RANK,ForceRank::new,false),//英雄星级排行榜
|
||||
EQUIP_SCORE_RANK(102, RedisKey.EQUIP_SCORE_RANK,ForceRank::new,false),//装备排行榜
|
||||
SOUL_SEAL_RANK(103, RedisKey.SOUL_SEAL_RANK,ForceRank::new,false),//魂印排行榜
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,7 @@
|
|||
package com.ljsd.jieling.logic.rank.rankImpl;
|
||||
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
import org.springframework.data.redis.core.ZSetOperations;
|
||||
import util.TimeUtils;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @author lvxinran
|
||||
* @date 2019/11/29
|
||||
|
|
|
|||
Loading…
Reference in New Issue