Merge branch 'master' of 60.1.1.230:backend/jieling_server
commit
ee902be8ea
|
@ -20,8 +20,8 @@ public class SCMapEventsItemConfig implements BaseConfig{
|
|||
private int eventsId;
|
||||
/**
|
||||
* 排序
|
||||
* */
|
||||
private int sort;
|
||||
*/
|
||||
private int order;
|
||||
/**
|
||||
* 事件内容
|
||||
*/
|
||||
|
@ -31,6 +31,16 @@ public class SCMapEventsItemConfig implements BaseConfig{
|
|||
*/
|
||||
private String reward;
|
||||
|
||||
/**
|
||||
* 结果跳转
|
||||
*/
|
||||
private String jump;
|
||||
|
||||
/**
|
||||
* 开启条件
|
||||
*/
|
||||
private String openRules;
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
scMapEventsItemConfigMap = STableManager.getConfig(SCMapEventsItemConfig.class);
|
||||
|
@ -39,7 +49,7 @@ public class SCMapEventsItemConfig implements BaseConfig{
|
|||
if (!scMapEventsItemConfigs.containsKey(eventsItemConfigEntry.getEventId())) {
|
||||
scMapEventsItemConfigs.put(eventsItemConfigEntry.getEventId(), new HashMap<>());
|
||||
}
|
||||
scMapEventsItemConfigs.get(eventsItemConfigEntry.getEventId()).put(eventsItemConfigEntry.getSort(), eventsItemConfigEntry);
|
||||
scMapEventsItemConfigs.get(eventsItemConfigEntry.getEventId()).put(eventsItemConfigEntry.getOrder(), eventsItemConfigEntry);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -51,10 +61,6 @@ public class SCMapEventsItemConfig implements BaseConfig{
|
|||
return eventsId;
|
||||
}
|
||||
|
||||
public int getSort() {
|
||||
return sort;
|
||||
}
|
||||
|
||||
public String getContents() {
|
||||
return contents;
|
||||
}
|
||||
|
@ -62,4 +68,20 @@ public class SCMapEventsItemConfig implements BaseConfig{
|
|||
public String getReward() {
|
||||
return reward;
|
||||
}
|
||||
|
||||
public int getEventsId() {
|
||||
return eventsId;
|
||||
}
|
||||
|
||||
public int getOrder() {
|
||||
return order;
|
||||
}
|
||||
|
||||
public String getJump() {
|
||||
return jump;
|
||||
}
|
||||
|
||||
public String getOpenRules() {
|
||||
return openRules;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,12 +8,21 @@ public class RedisKey {
|
|||
|
||||
public static final String TOKEN = "JL_TOKEN";
|
||||
|
||||
public static final String UNDERLINE_LINE = "_";
|
||||
|
||||
/**
|
||||
* 最近登录服务器列表
|
||||
*/
|
||||
public static final String USER_SERVER_INFO = "JL_USER_SERVER_INFO";
|
||||
|
||||
|
||||
/**
|
||||
* 战斗缓存
|
||||
*/
|
||||
public static final String FIGHT = "FIGHT";
|
||||
/**
|
||||
* 过期事件
|
||||
*/
|
||||
public static final int EXPIRE_TIME = 3600 * 24;
|
||||
|
||||
|
||||
public static String getKey(String type, String key, boolean withServerId) {
|
||||
|
|
|
@ -113,6 +113,12 @@ public class RedisUtil {
|
|||
return key == null ? null : redisTemplate.opsForValue().get(key);
|
||||
}
|
||||
|
||||
public String getAndDelete(String key) {
|
||||
String value = redisTemplate.opsForValue().get(key);
|
||||
del(key);
|
||||
return value;
|
||||
}
|
||||
|
||||
/**
|
||||
* 普通缓存放入
|
||||
*
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
package com.ljsd.jieling.handler.map;
|
||||
|
||||
import com.ljsd.jieling.handler.BaseHandler;
|
||||
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
|
||||
public class MapFightEndRequestHandler extends BaseHandler {
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return MessageTypeProto.MessageType.FIGHT_END_REQUEST;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(ISession iSession, PacketNetData netData) throws Exception {
|
||||
|
||||
}
|
||||
}
|
|
@ -3,6 +3,8 @@ package com.ljsd.jieling.handler.map;
|
|||
import com.ljsd.jieling.config.SCMap;
|
||||
import com.ljsd.jieling.config.SCMapEventsConfig;
|
||||
import com.ljsd.jieling.config.SCMapEventsItemConfig;
|
||||
import com.ljsd.jieling.db.redis.RedisKey;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.logic.dao.MapManager;
|
||||
import com.ljsd.jieling.logic.dao.User;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
|
@ -11,8 +13,8 @@ import com.ljsd.jieling.protocols.CommonProto;
|
|||
import com.ljsd.jieling.protocols.MapInfoProto;
|
||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
import com.ljsd.jieling.util.CellUtil;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import com.ljsd.jieling.util.ToolsUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -123,28 +125,33 @@ public class MapLogic {
|
|||
/**
|
||||
* 战斗开始
|
||||
*/
|
||||
public void fightStart(ISession session, int bigEventId){
|
||||
|
||||
public void fightStart(int uid, int bigEventId){
|
||||
String key = RedisKey.getKey(RedisKey.FIGHT, Integer.toString(uid) + RedisKey.UNDERLINE_LINE + Integer.toString(bigEventId), false);
|
||||
RedisUtil.getInstence().set(key, Integer.toString(uid), RedisKey.EXPIRE_TIME);
|
||||
}
|
||||
|
||||
/**
|
||||
* 战斗结束
|
||||
*/
|
||||
public void fightEnd(ISession session, int bigEventId){
|
||||
|
||||
public void fightEnd(int uid) {
|
||||
String key = RedisKey.getKey(RedisKey.FIGHT, Integer.toString(uid), false);
|
||||
String fightInfo = RedisUtil.getInstence().getAndDelete(key);
|
||||
if (fightInfo == null || fightInfo.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 使用物品(包括侦察和吃buff)
|
||||
*/
|
||||
public void useItem(ISession session, int bigEventId){
|
||||
public void useItem(int uid){
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 离开
|
||||
*/
|
||||
public void leave(ISession session, int bigEventId){
|
||||
public void leave(int uid){
|
||||
|
||||
}
|
||||
|
||||
|
@ -157,7 +164,7 @@ public class MapLogic {
|
|||
* @param session
|
||||
* @param xy
|
||||
*/
|
||||
public void updateEvent(ISession session, int xy, int bigEventId, int choice, List<Integer> cells) throws Exception {
|
||||
public void updateEvent(ISession session, int xy, int bigEventId, int choice, List<Integer> cells, MessageTypeProto.MessageType messageType) throws Exception {
|
||||
Set<Integer> cellSet = new HashSet<>(cells);
|
||||
if (cells.size() != cellSet.size()) {
|
||||
LOGGER.info("cells has repeated");
|
||||
|
@ -200,16 +207,19 @@ public class MapLogic {
|
|||
String[] eventArr = contents[choice].split("#");
|
||||
switch (Integer.parseInt(eventArr[0])) {
|
||||
case EventType.fight: {
|
||||
fightStart(session, bigEventId);
|
||||
fightStart(uid, bigEventId);
|
||||
break;
|
||||
}
|
||||
case EventType.attribute: {
|
||||
|
||||
break;
|
||||
}
|
||||
case EventType.eatBuff:
|
||||
case EventType.useItem:
|
||||
case EventType.scout: {
|
||||
|
||||
Map<Integer, Integer> useItems = new HashMap<>();
|
||||
useItems.put(Integer.parseInt(eventArr[1]), Integer.parseInt(eventArr[2]));
|
||||
ItemUtil.useItem(user, useItems);
|
||||
break;
|
||||
}
|
||||
case EventType.leave: {
|
||||
|
@ -224,20 +234,27 @@ public class MapLogic {
|
|||
|
||||
break;
|
||||
}
|
||||
case EventType.eatBuff: {
|
||||
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (schedule + 1 >= contents.length - 1) {
|
||||
cell.getEventIds().put(bigEventId, -1);
|
||||
} else {
|
||||
if (scMapEventsItemConfig.getJump() == null || scMapEventsItemConfig.getJump().isEmpty()) {
|
||||
cell.getEventIds().put(bigEventId, schedule + 1);
|
||||
} else {
|
||||
String[] jumps = scMapEventsItemConfig.getJump().split("\\|");
|
||||
for (int i = 0; i < jumps.length; i++) {
|
||||
String[] jump = jumps[i].split("#");
|
||||
if (Integer.parseInt(jump[0]) == choice - 1) {
|
||||
cell.getEventIds().put(bigEventId, Integer.parseInt(jump[1]));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
String reward = scMapEventsItemConfig.getReward();
|
||||
if (reward != null && !reward.isEmpty()) {
|
||||
Map<Integer, Integer> itemMap = new HashMap<>();
|
||||
// ItemUtil.addItem(user, itemMap);
|
||||
}
|
||||
|
||||
// 如果是传送门开启跳转到下个关卡
|
||||
// if (scMapEvent.getStyle() == EventType.exit) {
|
||||
// Map<Integer, List<Integer>> crossMapInfos = cMap.getCrossMapInfos();
|
||||
|
|
|
@ -3,18 +3,21 @@ package com.ljsd.jieling.handler.map;
|
|||
import com.ljsd.jieling.handler.BaseHandler;
|
||||
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.protocols.MapInfoProto;
|
||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
//@Component
|
||||
@Component
|
||||
public class MapUpdateEventRequestHandler extends BaseHandler {
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return null;
|
||||
return MessageTypeProto.MessageType.MAP_UDPATE_EVENT_REQUEST;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(ISession iSession, PacketNetData netData) throws Exception {
|
||||
|
||||
byte[] message = netData.parseClientProtoNetData();
|
||||
MapInfoProto.MapUpdateEventRequest mapEnterRequest = MapInfoProto.MapUpdateEventRequest.parseFrom(message);
|
||||
MapLogic.getInstance().updateEvent(iSession, mapEnterRequest.getCurXY(), mapEnterRequest.getBigEventId(), mapEnterRequest.getChoice(), mapEnterRequest.getCellsList(), MessageTypeProto.MessageType.MAP_UDPATE_EVENT_RESPONSE);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,9 +16,11 @@ public class MapManager extends MongoBase {
|
|||
|
||||
private int curXY;
|
||||
|
||||
private Map<Integer, Cell> mapInfo = new ConcurrentHashMap<>();
|
||||
private Map<String, Integer> heroHps;
|
||||
|
||||
private Map<Integer, Cell> typeEight = new ConcurrentHashMap<>();
|
||||
private Map<Integer, Cell> mapInfo;
|
||||
|
||||
private Map<Integer, Cell> typeEight;
|
||||
|
||||
private Map<Integer, List<Integer>> crossMapInfos = new ConcurrentHashMap<>();
|
||||
|
||||
|
|
Loading…
Reference in New Issue