修改灵脉

master_yuenan
DESKTOP-C3M45P4\dengdan 2025-07-09 17:46:36 +08:00
parent 957975cee1
commit 5692983874
2 changed files with 7 additions and 6 deletions

View File

@ -186,6 +186,7 @@ public enum ErrorCode implements IErrorCode {
BEFORE_CONDITION_NOT(158,"前置条件不足"),
GOOD_INFO_NOT(180,"礼包不存在"),
ACCOUNT_ERROR(-104,"帐号异常,被封号"),
LINGMAI_IS_FIGHTING(192,"该灵脉正在被挑战中,请稍后再试"),
;
// private static final Set<Integer> CodeSet = new HashSet<>();
//

View File

@ -79,10 +79,10 @@ public class CrossLingmaiSecretAreaBattleHandler extends BaseHandler<ArenaInfoPr
String groupKey = crossGroup + RedisKey.Delimiter_colon + group;
Map<String, LingMaiSecretArea> lingMaiMap = CrossLingmaiLogic.getInstance().getLingmaiMap(crossGroup,group);
int myLingmaiId = CrossLingmaiLogic.getInstance().getLingmaiIdOccupy(uid, lingMaiMap);
if (myLingmaiId != 0 && myLingmaiId < id) {
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.CrossLingmaiSecretAreaResponse.getNumber(), res.build(), true);
return;
}
// if (myLingmaiId != 0 && myLingmaiId < id) {
// MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.CrossLingmaiSecretAreaResponse.getNumber(), res.build(), true);
// return;
// }
//检测特权次数
boolean countBol = PlayerLogic.getInstance().check(user, request.getPrivilageTypeId(), 1);
if (request.getPrivilageTypeId() == 0 || !countBol) {
@ -96,12 +96,12 @@ public class CrossLingmaiSecretAreaBattleHandler extends BaseHandler<ArenaInfoPr
}
//跨服灵脉锁
RedisUtil redisUtil = RedisUtil.getInstence();
String lockKey = "SERVER_LINGMAI_LOCK" + RedisKey.Delimiter_colon + crossGroup + RedisKey.Delimiter_colon + group;
String lockKey = "SERVER_LINGMAI_LOCK" + RedisKey.Delimiter_colon + crossGroup + RedisKey.Delimiter_colon + group + RedisKey.Delimiter_colon + id;
boolean lock = redisUtil.lock(lockKey, TimeUtils.ONE_SECOND * 10);
if (!lock) {
//没有拿到锁直接返回
LOGGER.info("跨服灵脉,跨服分组 ={},灵脉分组 ={},未获取到锁", crossGroup, group);
return;
throw new ErrorCodeException(ErrorCode.LINGMAI_IS_FIGHTING, "该灵脉正在被挑战中,请稍后再试");
}
String serverName = CrossServiceLogic.simplifyServerName(GameApplication.serverId);
String key = RedisKey.CROSS_LINGMAISECRET_INFO;