跨服服务器

zhangshanxue 2021-01-18 01:40:33 +08:00
parent 040711b793
commit 71821d360b
1 changed files with 41 additions and 0 deletions

View File

@ -3,6 +3,7 @@ package com.ljsd.jieling.logic.arena;
import com.ljsd.fight.ArenaRecord;
import com.ljsd.jieling.core.FunctionIdEnum;
import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.core.VipPrivilegeType;
import com.ljsd.jieling.db.mongo.MongoUtil;
@ -13,6 +14,7 @@ import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.handler.map.behavior.BehaviorUtil;
import com.ljsd.jieling.logic.GlobalDataManaager;
import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.root.User;
@ -23,6 +25,8 @@ import com.ljsd.jieling.logic.mail.MailLogic;
import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.mission.event.MissionEventDistributor;
import com.ljsd.jieling.logic.player.PlayerLogic;
import com.ljsd.jieling.network.server.GlobalidHelper;
import com.ljsd.jieling.network.server.WorldHelper;
import com.ljsd.jieling.network.session.ISession;
import rpc.protocols.ArenaInfoProto;
import rpc.protocols.CommonProto;
@ -34,6 +38,7 @@ import manager.STableManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.redis.core.ZSetOperations;
import rpc.world.WorldProto;
import util.MathUtils;
import util.StringUtil;
import util.TimeUtils;
@ -629,4 +634,40 @@ public class ArenaLogic {
return drop;
}
public void worldSendReward(){
TimeControllerOfFunction timeControllerOfFunction = GlobalDataManaager.getInstance().getTimeControllerOfFunctionByFunctinoType(FunctionIdEnum.World_Arena);
if(null ==timeControllerOfFunction){
return;
}
long diff = (System.currentTimeMillis() - timeControllerOfFunction.getStartTime())/1000;
SMServerArenaSetting setting = STableManager.getConfig(SMServerArenaSetting.class).get(1);
TreeMap<Integer, SMServerArenaReward> rewardMapByRank = SMServerArenaReward.rewardMapByRank;
if(setting==null){
return;
}
if (diff >= setting.getBattleTime()[1] && diff < setting.getBattleTime()[1]+50) {
int myGroup = GlobalidHelper.getWorldInfo().getMyGroup();
if(myGroup==0){
return;
}
try {
WorldProto.GetArenaRankRewardResponse response = WorldHelper.sendMessageToWorldWithResult(0, WorldProto.GetArenaRankRewardRequest.newBuilder().setGroupId(myGroup).build(), WorldProto.GetArenaRankRewardResponse.class);
if(response==null||response.getRankInfoList().size()==0){
return;
}
for(WorldProto.ArenaRank rank:response.getRankInfoList()){
int myRank = rank.getRank();
Map.Entry<Integer, SMServerArenaReward> entry = rewardMapByRank.floorEntry(myRank);
MailLogic.getInstance().sendMail(rank.getUid(),"","",StringUtil.parseArrayToString(entry.getValue().getSeasonReward()),TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}