血战邮件

back_recharge
lvxinran 2019-09-05 14:15:20 +08:00
parent 8129e8cb2c
commit 6030413d3f
4 changed files with 42 additions and 2 deletions

View File

@ -18,7 +18,7 @@ public class SBloodyRankConfig implements BaseConfig {
private int[][] reward; private int[][] reward;
private static Map<Integer, SBloodyRankConfig> sBloodyRankConfigMap; public static Map<Integer, SBloodyRankConfig> sBloodyRankConfigMap;
@Override @Override

View File

@ -36,7 +36,7 @@ public enum FunctionIdEnum {
Store(20), Store(20),
Endless(46), Endless(46),
Blood(47),
ToBeStronger(48), ToBeStronger(48),
WorkShopTech(101), WorkShopTech(101),
WorkShopCreateEquip(102), WorkShopCreateEquip(102),

View File

@ -17,6 +17,7 @@ import com.ljsd.jieling.handler.map.MapLogic;
import com.ljsd.jieling.handler.map.MapManager; import com.ljsd.jieling.handler.map.MapManager;
import com.ljsd.jieling.logic.activity.ActivityLogic; import com.ljsd.jieling.logic.activity.ActivityLogic;
import com.ljsd.jieling.logic.arena.ArenaLogic; import com.ljsd.jieling.logic.arena.ArenaLogic;
import com.ljsd.jieling.logic.blood.BloodLogic;
import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.root.GlobalSystemControl; import com.ljsd.jieling.logic.dao.root.GlobalSystemControl;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
@ -170,6 +171,7 @@ public class GlobalDataManaager {
MapLogic.getInstance().updateEndlessSeason(timeControllerOfFunction.getTimes()); MapLogic.getInstance().updateEndlessSeason(timeControllerOfFunction.getTimes());
serverConfigTmp.setWorldLevel(calWorldLevel()); serverConfigTmp.setWorldLevel(calWorldLevel());
MapLogic.getInstance().setEndlessMapId(getEndleeMapIdByLevel()); MapLogic.getInstance().setEndlessMapId(getEndleeMapIdByLevel());
break;
default: default:
break; break;
} }
@ -188,6 +190,10 @@ public class GlobalDataManaager {
break; break;
case Endless: case Endless:
MapLogic.getInstance().resetEndlessInfo(); MapLogic.getInstance().resetEndlessInfo();
BloodLogic.getInstance().bloodSeasonReward();
break;
case Blood:
default: default:
break; break;
} }

View File

@ -1,5 +1,7 @@
package com.ljsd.jieling.logic.blood; package com.ljsd.jieling.logic.blood;
import com.ljsd.GameApplication;
import com.ljsd.jieling.config.SBloodyRankConfig;
import com.ljsd.jieling.db.redis.RedisKey; import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.*;
@ -9,11 +11,14 @@ import com.ljsd.jieling.logic.fight.CombatLogic;
import com.ljsd.jieling.logic.hero.HeroAttributeEnum; import com.ljsd.jieling.logic.hero.HeroAttributeEnum;
import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.logic.hero.HeroLogic;
import com.ljsd.jieling.logic.item.ItemLogic; import com.ljsd.jieling.logic.item.ItemLogic;
import com.ljsd.jieling.logic.mail.MailLogic;
import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.MessageTypeProto; import com.ljsd.jieling.protocols.MessageTypeProto;
import com.ljsd.jieling.protocols.RoomProto; import com.ljsd.jieling.protocols.RoomProto;
import com.ljsd.jieling.util.MessageUtil; import com.ljsd.jieling.util.MessageUtil;
import com.ljsd.jieling.util.StringUtil;
import com.ljsd.jieling.util.TimeUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.data.redis.core.ZSetOperations; import org.springframework.data.redis.core.ZSetOperations;
@ -130,5 +135,34 @@ public class BloodLogic {
} }
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true); MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
} }
public void bloodSeasonReward() throws Exception {
Set<ZSetOperations.TypedTuple<String>> zsetreverseRangeWithScores = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.BLOODY_RANK, "1", 0, RedisUtil.getInstence().getZsetSize(RedisKey.getKey(RedisKey.BLOODY_RANK, "1", true)));
Map<Integer, PlayerInfoCache> players = RedisUtil.getInstence().getMapValues(RedisKey.PLAYER_INFO_CACHE, "", Integer.class, PlayerInfoCache.class);
Map<Integer, SBloodyRankConfig> sBloodyRankConfigMap = SBloodyRankConfig.sBloodyRankConfigMap;
int floor = 0 ;
for(ZSetOperations.TypedTuple<String> rank:zsetreverseRangeWithScores){
//是否为本服玩家
if(players.get(Integer.parseInt(rank.getValue())).getServerId()!= GameApplication.serverId){
continue;
}
int[][] reward;
for(Map.Entry<Integer, SBloodyRankConfig> entry:sBloodyRankConfigMap.entrySet()){
SBloodyRankConfig value = entry.getValue();
if(rank.getScore()>value.getScore()){
floor = entry.getKey();
}else{
break;
}
}
if(floor==0){
continue;
}else{
reward = sBloodyRankConfigMap.get(floor).getReward();
MailLogic.getInstance().sendMail(Integer.parseInt(rank.getValue()),"血战排行奖励","恭喜",StringUtil.parseArrayToString(reward), (int)(TimeUtils.now()/1000),10);
}
}
}
} }