diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java index 2d352c966..eb3fe287e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java @@ -866,6 +866,19 @@ public class RedisUtil { return -1D; } + public void updateZsetScores(String type,String key, Set> tuples){ + String rkey = getKey(type, key); + for (int i = 0; i < MAX_TRY_TIMES; i++) { + try { + redisTemplate.opsForZSet().add(rkey,tuples); + return; + } catch (Exception e) { + TimeUtils.sleep(FAILED_SLEEP); + } + } + + } + public void incrementZsetScore(String type,String key, String value, int changeScore){ String rkey = getKey(type, key); for (int i = 0; i < MAX_TRY_TIMES; i++) { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java index a27cd7d21..776e0d141 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java @@ -82,6 +82,9 @@ public class GMRequestHandler extends BaseHandler{ CommonProto.GmResponse.Builder gmBuilder = CommonProto.GmResponse.newBuilder(); switch (gmCommandType){ case GlobalGm.ADD_ITEM: + if (prarm1 ==1){ + prarm2 = Integer.parseInt(commandArray[2]); + } gmBuilder.setDrop(ItemUtil.drop(cUser,new int[][]{{prarm1,prarm2}}, BIReason.GM_REWARD)); break; case GlobalGm.ADD_CARD: diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index ce02a3ba7..a9a263b3a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -171,10 +171,9 @@ public class GetPlayerInfoHandler extends BaseHandler{ playerInfoManager.setIsdayFirst(1); } RedisUtil.getInstence().set(RedisKey.USER_LOGIN_URL + userId, RPCServerTask.userCallBackUrl); - LOGGER.info("back to client!"); - if(user.getPlayerInfoManager().getGuidePoints().get(1)!=-1){ + /*if(user.getPlayerInfoManager().getGuidePoints().get(1)!=-1){ user.getPlayerInfoManager().updateGuidePoint(1,-1); - } + }*/ } catch (Exception e) { e.printStackTrace(); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java index 127bad531..da6d6dcc4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java @@ -510,28 +510,31 @@ public class MapLogic { return false; } - public boolean updateMapByOnlyConsumeActionPower(ISession session, int curXY, int triggerXY, List cells, MessageTypeProto.MessageType messageType) throws Exception { + public boolean updateMapByOnlyConsumeActionPower(ISession session, int triggerXY, List cells, MessageTypeProto.MessageType messageType) throws Exception { if (triggerXY == -1000) { int uid = session.getUid(); User user = UserManager.getUser(uid); - MapManager mapManager = user.getMapManager(); - mapManager.addWalkCells(new HashSet<>(cells)); - if(mapManager.getCurMapId()!=0){ - if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4){ - int[][] cost = new int[1][]; - int costId = SChallengeSetting.getChallengeSetting().getActionPowerId(); - int costNum = cells.size(); - mapManager.updateEndlessConsumeExecution(mapManager.getEndlessMapInfo().getConsumeExecution()+costNum); - cost[0]= new int[]{costId,costNum}; - boolean costResult = ItemUtil.itemCost(user,cost,BIReason.ENDLESS_CONSUME_EXECUTION,1); - if(!costResult){ - costNum = user.getItemManager().getItem(costId).getItemNum(); - cost[0][1]= costNum; - ItemUtil.itemCost(user,cost,BIReason.ENDLESS_CONSUME_EXECUTION,1); + if(!cells.isEmpty()){ + int curXY = cells.get(cells.size()-1); + MapManager mapManager = user.getMapManager(); + mapManager.addWalkCells(new HashSet<>(cells)); + if(mapManager.getCurMapId()!=0){ + if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4){ + int[][] cost = new int[1][]; + int costId = SChallengeSetting.getChallengeSetting().getActionPowerId(); + int costNum = cells.size(); + mapManager.updateEndlessConsumeExecution(mapManager.getEndlessMapInfo().getConsumeExecution()+costNum); + cost[0]= new int[]{costId,costNum}; + boolean costResult = ItemUtil.itemCost(user,cost,BIReason.ENDLESS_CONSUME_EXECUTION,1); + if(!costResult){ + costNum = user.getItemManager().getItem(costId).getItemNum(); + cost[0][1]= costNum; + ItemUtil.itemCost(user,cost,BIReason.ENDLESS_CONSUME_EXECUTION,1); + } } } + mapManager.setCurXY(curXY); } - mapManager.setCurXY(curXY); MapInfoProto.MapUpdateResponse mapUpdateResponse = MapInfoProto.MapUpdateResponse.newBuilder() .setLeftTime(getLeftTime(user, true)) .build(); @@ -544,7 +547,7 @@ public class MapLogic { public void updateMap(ISession session, int curXY, int triggerXY, List cells, MessageTypeProto.MessageType messageType) throws Exception { LOGGER.info("updateMap() curXY=>{},triggerXY=>{},cells={}", curXY, triggerXY,cells); - if (updateMapByOnlyConsumeActionPower(session, curXY, triggerXY, cells, messageType)) { + if (updateMapByOnlyConsumeActionPower(session, triggerXY, cells, messageType)) { return; } if (triggerXY != curXY) { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java index c54555e2a..cbc71c370 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java @@ -604,6 +604,7 @@ public class ArenaLogic { title = SErrorCodeEerverConfig.getI18NMessage("arena_season_reward_title"); } Set> arenaRankInfo = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.ARENA_RANK,Integer.toString(curSeason), 0, -1); + int nextSeason = curSeason + 1; if(type == GlobalsDef.ARENA_SEASON_REWARD){ curSeason=0; } @@ -617,7 +618,6 @@ public class ArenaLogic { continue; } if(type == GlobalsDef.ARENA_DAILY_REWARD){ - MissionEventDistributor.requestStart(); user.getUserMissionManager().onGameEvent(user,GameEvent.ARENA_UPDATE_RANK,rank); ISession sessionByUid = OnlineUserManager.getSessionByUid(uid); @@ -633,12 +633,16 @@ public class ArenaLogic { user.getPlayerInfoManager().removeRed(GlobalsDef.ARENA_CHALLENGE_TYPE); String key = RedisUtil.getInstence().getKey(RedisKey.ARENA_RRECORD, Integer.toString(uid)); RedisUtil.getInstence().del(key); + } String rewardByRank = getRewardByRank(rank++, type); if(!"".equals(rewardByRank)){ MailLogic.getInstance().sendMail(user.getId(),title,content,rewardByRank,nowTime, Global.MAIL_EFFECTIVE_TIME); } } + if(type == GlobalsDef.ARENA_SEASON_REWARD){ + RedisUtil.getInstence().updateZsetScores(RedisKey.ARENA_RANK,Integer.toString(nextSeason),arenaRankInfo); + } MongoUtil.getInstence().lastUpdate(); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/BuyGoodsManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/BuyGoodsManager.java index 4cc5539ed..d4734ad32 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/BuyGoodsManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/BuyGoodsManager.java @@ -11,10 +11,10 @@ public class BuyGoodsManager implements BaseDataManager { int itemId = (int)parm[0]; int itemNum = (int)parm[1]; int storeType = (int)parm[2]; - if(missionType == MissionType.BUY_GOLD_TIMES && itemId == Global.GOLD){ + if(storeType == StoreType.FUNCTION_STORE.getType() && missionType == MissionType.BUY_GOLD_TIMES && itemId == Global.GOLD){ data.buyGoldTimes = data.buyGoldTimes + itemNum; return new CumulationData.Result(missionType); - }else if(missionType == MissionType.BUY_STAMINA_TIMES && itemId == Global.STAMINA){ + }else if(storeType == StoreType.FUNCTION_STORE.getType() && missionType == MissionType.BUY_STAMINA_TIMES && itemId == Global.STAMINA){ data.buyStaminaTimes = data.buyStaminaTimes + itemNum; return new CumulationData.Result(missionType); }else if(missionType == MissionType.BUY_GROCERY_TIMES){