fix bloody

wangyuan 2019-09-19 15:46:26 +08:00
parent 02d5e966bb
commit 3086a1f5bc
4 changed files with 11 additions and 49 deletions

View File

@ -93,8 +93,6 @@ public class BloodyProtocolsManager implements ProtocolsAbstract {
MessageUtil.sendErrorCode(session,0,"您的账号token不正确请退出游戏重新登陆!"); MessageUtil.sendErrorCode(session,0,"您的账号token不正确请退出游戏重新登陆!");
return; return;
} }
//处理多设备重登
dealRepeatLogin(session.getUid());
//刷新token //刷新token
refreshToken(session); refreshToken(session);
//踢下线 //踢下线
@ -110,11 +108,6 @@ public class BloodyProtocolsManager implements ProtocolsAbstract {
dealHeartBeat(session); dealHeartBeat(session);
return; return;
} }
//检查token
// if (checkToken(session,packetNetData) != 0 ){
// MessageUtil.sendErrorCode(session,0,"您的账号token不正确请退出游戏重新登陆!");
// return;
// }
if( packetNetData.getMsgId()== MessageTypeProto.MessageType.RECONNECT_REQUEST_VALUE){ if( packetNetData.getMsgId()== MessageTypeProto.MessageType.RECONNECT_REQUEST_VALUE){
processReconnect(session); processReconnect(session);
@ -122,9 +115,7 @@ public class BloodyProtocolsManager implements ProtocolsAbstract {
return; return;
} }
if (checkIndex(session,packetNetData) != 0){
return;
}
LOGGER.info("request commond : " + packetNetData.getMsgId()); LOGGER.info("request commond : " + packetNetData.getMsgId());
BaseHandler baseHandler = handlers.get(packetNetData.getMsgId()); BaseHandler baseHandler = handlers.get(packetNetData.getMsgId());
if (baseHandler == null) { if (baseHandler == null) {
@ -212,36 +203,6 @@ public class BloodyProtocolsManager implements ProtocolsAbstract {
} }
private int dealRepeatLogin(int uid) {
if (OnlineUserManager.checkUidOnline(uid)){
ISession iSession = OnlineUserManager.getSessionByUid(uid);
MessageUtil.sendErrorCode(iSession, ErrorCode.reloginCode,"您的账号已经在其他设备上登陆,请确认账号安全!");
iSession.setOfflineType(ErrorCode.reloginCode);
return 1;
}
return 0;
}
private int checkIndex(ISession iSession, PacketNetData packetNetData) {
int index = packetNetData.getIndex();
if (iSession.getIndex() >= index){
byte[] message = iSession.getCacheMessage(index);
if (message==null &&( packetNetData.getMsgId() != MessageTypeProto.MessageType.LOGIN_REQUEST_VALUE || packetNetData.getMsgId() != MessageTypeProto.MessageType.RECONNECT_REQUEST_VALUE)){
//TODO error
LOGGER.info("the uid={},the msg={} is processing",iSession.getUid(), MessageTypeProto.MessageType.valueOf(packetNetData.getMsgId()));
return 1;
}else {
LOGGER.info("the uid={},the msg={} reback",iSession.getUid(), MessageTypeProto.MessageType.valueOf(packetNetData.getMsgId()));
iSession.writeAndFlush(message);
return 1;
}
}else {
iSession.setIndex(index);
iSession.setLoginTime(System.currentTimeMillis());
}
return 0;
}
private void ackIndication(ISession iSession, int ackId) { private void ackIndication(ISession iSession, int ackId) {
LOGGER.info("the uid={},the ackId={}",iSession.getUid(),ackId); LOGGER.info("the uid={},the ackId={}",iSession.getUid(),ackId);
iSession.clearIndication(ackId); iSession.clearIndication(ackId);

View File

@ -46,7 +46,9 @@ public class SGlobalSystemConfig implements BaseConfig {
@Override @Override
public void init() throws Exception { public void init() throws Exception {
Map<Integer,SGlobalSystemConfig> sGlobalSystemConfigMapTmp = new HashMap<>(); if( GameApplication.serverConfig == null){
return;
}
Map<Integer, SGlobalSystemConfig> config = STableManager.getConfig(SGlobalSystemConfig.class); Map<Integer, SGlobalSystemConfig> config = STableManager.getConfig(SGlobalSystemConfig.class);
Iterator<Map.Entry<Integer, SGlobalSystemConfig>> iterator = config.entrySet().iterator(); Iterator<Map.Entry<Integer, SGlobalSystemConfig>> iterator = config.entrySet().iterator();
while (iterator.hasNext()){ while (iterator.hasNext()){

View File

@ -193,7 +193,6 @@ public class BloodLogic {
int uid = session.getUid(); int uid = session.getUid();
User user = UserManager.getUser(uid); User user = UserManager.getUser(uid);
BloodyInfo bloodyInfo = user.getBloodyInfo(); BloodyInfo bloodyInfo = user.getBloodyInfo();
bloodyInfo.setScore(99999);
Map<Integer, SBloodyBattleTreasure> sBloodyBattleTreasureMap = SBloodyBattleTreasure.sBloodyBattleTreasureMap; Map<Integer, SBloodyBattleTreasure> sBloodyBattleTreasureMap = SBloodyBattleTreasure.sBloodyBattleTreasureMap;
RoomProto.GetBloodyScoreInfoResponse.Builder builder = RoomProto.GetBloodyScoreInfoResponse.newBuilder().setScore(bloodyInfo.getScore()).setHadBuy(bloodyInfo.getHadBuy()); RoomProto.GetBloodyScoreInfoResponse.Builder builder = RoomProto.GetBloodyScoreInfoResponse.newBuilder().setScore(bloodyInfo.getScore()).setHadBuy(bloodyInfo.getHadBuy());
if(bloodyInfo.getStateInfo().isEmpty()){ if(bloodyInfo.getStateInfo().isEmpty()){
@ -302,12 +301,11 @@ public class BloodLogic {
} }
public void calBloodyMissionInfo(User user,SortDataBean sortDataBean) throws Exception { public void calBloodyMissionInfo(User user,SortDataBean sortDataBean) throws Exception {
int killNums = sortDataBean.getKillNums();
BloodyInfo bloodyInfo = user.getBloodyInfo(); BloodyInfo bloodyInfo = user.getBloodyInfo();
bloodyInfo.setKillNums(bloodyInfo.getKillNums() + 9999); bloodyInfo.setKillNums(bloodyInfo.getKillNums());
int changeScore = calScore(sortDataBean); int changeScore = calScore(sortDataBean);
if(changeScore>0){ if(changeScore>0){
bloodyInfo.setScore(bloodyInfo.getScore() + calScore(sortDataBean)); bloodyInfo.setScore(bloodyInfo.getScore() + changeScore);
} }
MissionEventDistributor.requestStart(); MissionEventDistributor.requestStart();
user.getUserMissionManager().onGameEvent(user, GameEvent.BLOODY_END); user.getUserMissionManager().onGameEvent(user, GameEvent.BLOODY_END);

View File

@ -298,7 +298,8 @@ public class ProtocolsManager implements ProtocolsAbstract {
MessageUtil.sendErrorCode(iSession, ErrorCode.reloginCode,"您的账号已经在其他设备上登陆,请确认账号安全!"); MessageUtil.sendErrorCode(iSession, ErrorCode.reloginCode,"您的账号已经在其他设备上登陆,请确认账号安全!");
iSession.setOfflineType(ErrorCode.reloginCode); iSession.setOfflineType(ErrorCode.reloginCode);
backUpMsgToRedis(iSession); backUpMsgToRedis(iSession);
offLine(iSession); OnlineUserManager.userOffline(uid);
LOGGER.info("the channel={}",iSession.getCtx().channel());
return 1; return 1;
} }
return 0; return 0;
@ -351,6 +352,9 @@ public class ProtocolsManager implements ProtocolsAbstract {
LOGGER.info("player offLine ..."); LOGGER.info("player offLine ...");
ISession session = (ISession) gameSession; ISession session = (ISession) gameSession;
synchronized (session) { synchronized (session) {
if(session.getOfflineType() == ErrorCode.reloginCode){
return;
}
User user = UserManager.getUserInMem(session.getUid()); User user = UserManager.getUserInMem(session.getUid());
if(user == null){ if(user == null){
return; return;
@ -358,9 +362,6 @@ public class ProtocolsManager implements ProtocolsAbstract {
KtEventUtils.onKtEvent(user, ParamEventBean.UserLoginOutEvent,1); KtEventUtils.onKtEvent(user, ParamEventBean.UserLoginOutEvent,1);
KtEventUtils.onKtEvent(user, ParamEventBean.UserLogin,1); KtEventUtils.onKtEvent(user, ParamEventBean.UserLogin,1);
LOGGER.info("player={} offLine ...",user.getId()); LOGGER.info("player={} offLine ...",user.getId());
if(session.getOfflineType() == ErrorCode.reloginCode){
return;
}
OnlineUserManager.userOffline(session.getUid()); OnlineUserManager.userOffline(session.getUid());
if (session.getCtx() != null) { if (session.getCtx() != null) {
GameMessageHandler.allChannels.remove(session.getCtx().channel()); GameMessageHandler.allChannels.remove(session.getCtx().channel());