血战时间限制

back_recharge
lvxinran 2019-09-07 19:26:27 +08:00
parent 3defe3d54c
commit cb95002a8f
3 changed files with 38 additions and 13 deletions

View File

@ -81,6 +81,8 @@ public class SBloodyBattleSetting implements BaseConfig {
private Map<Integer,int[]> debuffMap;
private Map<Integer,int[]> monsterIndexMap;
private int[][] openPeriod;
@Override
public void init() throws Exception {
@ -280,4 +282,8 @@ public class SBloodyBattleSetting implements BaseConfig {
public void setMonsterIndexMap(Map<Integer, int[]> monsterIndexMap) {
this.monsterIndexMap = monsterIndexMap;
}
public int[][] getOpenPeriod() {
return openPeriod;
}
}

View File

@ -2,6 +2,7 @@ package com.ljsd.jieling.handler.room;
import com.google.gson.Gson;
import com.ljsd.jieling.bloody.UserBloodySnpInfo;
import com.ljsd.jieling.config.SBloodyBattleSetting;
import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
@ -23,10 +24,12 @@ import com.ljsd.jieling.protocols.RoomProto;
import com.ljsd.jieling.thrift.pool.ServiceKey;
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.LoggerFactory;
import org.springframework.stereotype.Component;
import java.util.Calendar;
import java.util.List;
import java.util.Map;
@ -41,6 +44,7 @@ public class RoomMatchRequestHandler extends BaseHandler{
@Override
public void process(ISession iSession, PacketNetData netData) throws Exception {
byte[] message = netData.parseClientProtoNetData();
RoomProto.RoomMatchRequest request = RoomProto.RoomMatchRequest.parseFrom(message);
int type = request.getType();
@ -48,7 +52,12 @@ public class RoomMatchRequestHandler extends BaseHandler{
}
public void match(ISession iSession,int type) throws Exception {
int responseMsgId = MessageTypeProto.MessageType.ROOM_MATCH_RESPONSE_VALUE;
if(!isEnter()){
MessageUtil.sendErrorResponse(iSession,0,responseMsgId,"不在开启时间范围内");
return;
}
int uid = iSession.getUid();
String status = RedisUtil.getInstence().getObject(RedisKey.MATCH_UID_KEY + ":" + uid,String.class);
if(!StringUtil.isEmpty(status)){
@ -113,4 +122,23 @@ public class RoomMatchRequestHandler extends BaseHandler{
String key = RedisUtil.getInstence().getKey(RedisKey.BLOODY_TEAM, Integer.toString(mine.getId()));
RedisUtil.getInstence().set(key,gson.toJson(userBloodySnpInfo));
}
private boolean isEnter(){
SBloodyBattleSetting setting = SBloodyBattleSetting.sBloodyBattleSetting;
int[][] openPeriod = setting.getOpenPeriod();
Calendar calendar = Calendar.getInstance();
int minute = calendar.get(Calendar.MINUTE);
boolean enter = true;
for(int i = 0;i<openPeriod.length;i++){
if(TimeUtils.getHourOfDay()<openPeriod[i][0]/10000&&minute<openPeriod[i][0]%10000/1000){
enter =false;
continue;
}
if(TimeUtils.getHourOfDay()>=openPeriod[i][0]/10000&&minute>=openPeriod[i][0]%10000/1000){
enter = false;
continue;
}
}
return enter;
}
}

View File

@ -19,19 +19,10 @@ public class MathUtils {
private static final Random random = new Random();
// public static void main(String[] args){
// int[][] result = new int[10][];
// for (int i = 0; i < result.length; i++) {
// int[] j = new int[2];
// j[0] = 10+i;
// j[1] = 100;
// result[i] = j;
// }
// int[] re = randomFromWeightWithTaking(result,10);
// for(int i = 0 ; i <re.length;i++){
// System.out.println(re[i]);
// }
// }
public static void main(String[] args){
String i = "0|00|111";
String[] split = i.split("|", 1);
}
public static int randomForStrArray(String [] rateArray) {
return randomStrArray(rateArray, -1);
}