五点任务刷新 & 血战修改

back_recharge
wangyuan 2019-06-17 10:22:21 +08:00
parent 5eb0b7d467
commit 5a7a3f32c7
6 changed files with 86 additions and 3 deletions

View File

@ -0,0 +1,21 @@
package com.ljsd.jieling.handler.room;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.room.RoomManager;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.MessageTypeProto;
import org.springframework.stereotype.Component;
@Component
public class RoomGetInfoHandler extends BaseHandler {
@Override
public MessageTypeProto.MessageType getMessageCode() {
return MessageTypeProto.MessageType.ROOM_GET_FULL_INFO_REQEUST;
}
@Override
public void process(ISession iSession, PacketNetData netData) throws Exception {
RoomManager.getRommInfo(iSession);
}
}

View File

@ -2,6 +2,7 @@ package com.ljsd.jieling.logic;
import com.google.protobuf.MessageLite;
import com.ljsd.GameApplication;
import com.ljsd.jieling.config.SDailyTasksConfig;
import com.ljsd.jieling.config.SGlobalSystemConfig;
import com.ljsd.jieling.core.FunctionIdEnum;
import com.ljsd.jieling.core.GlobalsDef;
@ -10,11 +11,14 @@ import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.logic.activity.ActivityLogic;
import com.ljsd.jieling.logic.arena.ArenaLogic;
import com.ljsd.jieling.logic.dao.TimeControllerOfFunction;
import com.ljsd.jieling.logic.dao.UserMissionManager;
import com.ljsd.jieling.logic.dao.root.GlobalSystemControl;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.mission.GameMisionType;
import com.ljsd.jieling.logic.mission.data.DataManagerDistributor;
import com.ljsd.jieling.logic.mission.event.MissionEventDistributor;
import com.ljsd.jieling.logic.mission.main.DailyMissionIdsType;
import com.ljsd.jieling.logic.player.PlayerLogic;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.netty.cocdex.Tea;
@ -229,6 +233,11 @@ public class GlobalDataManaager {
if(fBuilder!=null){
user.getPlayerInfoManager().setLoginTime(TimeUtils.now());
Map<Integer, SDailyTasksConfig> config = SDailyTasksConfig.config;
int dailymissionType = GameMisionType.DAILYMISSION.getType();
for(SDailyTasksConfig sDailyTasksConfig:config.values()){
fBuilder.addUserMissionInfo(CommonProto.UserMissionInfo.newBuilder().setMissionId(sDailyTasksConfig.getId()).setState(0).setType(dailymissionType).setProgress(0));
}
if(session.getFiveReady() == 1){ //客户端准备好接受五点刷新请求
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.FIVE_PLAYER_REFLUSH_INDICATION_VALUE,null,true);
}else{

View File

@ -6,6 +6,7 @@ import com.ljsd.jieling.config.SVipLevelConfig;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.mission.GameMisionType;
import com.ljsd.jieling.logic.mission.MissionState;
import com.ljsd.jieling.logic.mission.MissionType;
import com.ljsd.jieling.logic.mission.event.MissionEventDistributor;
import com.ljsd.jieling.logic.mission.main.DailyMissionIdsType;
@ -50,9 +51,7 @@ public class UserMissionManager extends MongoBase {
updateString("dailyCumulationData",dailyCumulationData);
}
dailyMissionIdsType.getDoingMissionIds().addAll(missionIds);
updateString("dailyMissionIdsType",dailyMissionIdsType);
break;
}

View File

@ -118,7 +118,7 @@ public class RoomManager {
.setCurHp(1000)
.setMaxHp(1000)
.setCamp(i)
.setCurXY(CellUtil.xy2Pos(10+i,20+i+2));
.setCurXY(CellUtil.xy2Pos(4+i,4+i));
agentInfoList.add(agentInfoBuilder.build());
}
@ -126,6 +126,36 @@ public class RoomManager {
return room;
}
public static void getRommInfo(ISession iSession) throws Exception {
int uid = iSession.getUid();
User user = UserManager.getUser(uid);
int roomId = user.getRoomInfo().getRoomId();
int responseMsgId = MessageTypeProto.MessageType.ROOM_GET_FULL_INFO_RESPONSE_VALUE;
if(roomId == -1){
MessageUtil.sendErrorResponse(iSession, 0, responseMsgId, "已经在房间中了");
return;
}
Room room = getRoomById(roomId);
if(room == null){
MessageUtil.sendErrorResponse(iSession, 0, responseMsgId, "房间已销毁");
return;
}
List<CommonProto.Cell> cells = new ArrayList<>();
RoomPlayerInfo[] playerArray = room.getPlayerArray();
int i=0;
List<RoomProto.AgentInfo> agentInfoList = new ArrayList<>();
for(RoomPlayerInfo roomPlayerInfo:playerArray) {
RoomProto.AgentInfo.Builder agentInfoBuilder = RoomProto.AgentInfo.newBuilder();
agentInfoBuilder.setPlayerUid(roomPlayerInfo.getUid())
.setCurHp(1000)
.setMaxHp(1000)
.setCamp(i++)
.setCurXY(CellUtil.xy2Pos(4+i,4+i));
agentInfoList.add(agentInfoBuilder.build());
}
MessageUtil.sendRoomInfoToPerson(iSession, room.getType(), roomId, 1, cells, agentInfoList);
}
public static synchronized Room getRoomById(int roomId) {
return roomMap.get(roomId);
}

View File

@ -15,6 +15,7 @@ public class RoomPlayerInfo {
public static final int OFFLINE_STATE = 3; //掉线了
private int state = UNREADY_STATE; //见上面的定义
private int curPos;
private int camp;
private long preMoveTimestamp; //上次移动时间
private int speed; //移动速度
private List<Integer> path; //根据目标点计算出来的移动路径
@ -85,6 +86,14 @@ public class RoomPlayerInfo {
this.curPos = curPos;
}
public int getCamp() {
return camp;
}
public void setCamp(int camp) {
this.camp = camp;
}
//todo ……
}

View File

@ -226,6 +226,21 @@ public class MessageUtil {
}
}
public static void sendRoomInfoToPerson(ISession session,int type, int roomId, int mapId,
List<CommonProto.Cell> cellList, List<RoomProto.AgentInfo> agentInfoList){
RoomProto.RoomMatchSuccessIndication.Builder builder = RoomProto.RoomMatchSuccessIndication.newBuilder();
builder.setRoomId(roomId);
builder.setType(type);
builder.setMapId(mapId);
builder.addAllMapList(cellList);
builder.addAllAgentInfos(agentInfoList);
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
builder.setTemporaryItems(dropBuilder.build());
RoomProto.RoomGetFullInfoResponse build = RoomProto.RoomGetFullInfoResponse.newBuilder().setRoomMatchSuccessIndication(builder.build()).build();
sendMessage(session,1, MessageTypeProto.MessageType.ROOM_GET_FULL_INFO_RESPONSE_VALUE, build, true);
}
public static void sendRoomCancelMatchResponse(ISession session, int responseMsgId, int type, boolean result) {
RoomProto.RoomMatchResponse.Builder builder = RoomProto.RoomMatchResponse.newBuilder();
builder.setResult(result);