diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java index c6d332636..ad37c5297 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -331,8 +331,8 @@ public interface BIReason { int ACTIVE_USERSKIN = 1089;// 激活玩家皮肤 int ACTIVE_TITLE = 1090;// 激活玩家称号 int ACTIVE_MOUNT = 1091;// 激活玩家坐骑 - int EQUIP_UPLEVEL_COST = 1092;//装备升星消耗 - int EQUIP_UPLEVEL_REWARD = 1093;//装备升星获得 + int EQUIP_UPLEVEL_COST = 1092;//装备升星消耗(云游商人) + int EQUIP_UPLEVEL_REWARD = 1093;//装备升星获得(云游商人) int TA_SUI_LING_XIAO = 1094;//踏碎凌霄 int MORALE_LEVEL_UP_CONSUME = 1095;//士气等级提升消耗 int HARD_STAGE_GET = 1096;//山河社稷图获得 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/crossServer/CrossYuxulundaoChallengeHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/crossServer/CrossYuxulundaoChallengeHandler.java index 91fb76e62..ac25a256c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/crossServer/CrossYuxulundaoChallengeHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/crossServer/CrossYuxulundaoChallengeHandler.java @@ -168,6 +168,10 @@ public class CrossYuxulundaoChallengeHandler extends BaseHandler()); // 道具刷新 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 82fe860a9..5819c9631 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -155,8 +155,11 @@ public class ActivityLogic implements IEventHandler{ public final static ActivityLogic instance = new ActivityLogic(); } + /** + * 检查活动状态 + * @throws Exception + */ public void checkActiviyStatus() throws Exception { - long now = System.currentTimeMillis(); Map sGlobalActivityMap = SGlobalActivity.getsGlobalActivityMap(); @@ -345,6 +348,13 @@ public class ActivityLogic implements IEventHandler{ } } + /** + * 检查用户身上的活动 + * @param user + * @param builder + * @return + * @throws Exception + */ public Set checkActivityOfUser(User user, PlayerInfoProto.ActivityUpateIndication.Builder builder) throws Exception { long now = TimeUtils.now(); if(user==null){ @@ -377,8 +387,8 @@ public class ActivityLogic implements IEventHandler{ } } } - for (SActivityRewardConfig Config:sActivityRewardConfigs) { - if(!activityMission.getActivityMissionMap().containsKey(Config.getId())){ + for (SActivityRewardConfig config:sActivityRewardConfigs) { + if(!activityMission.getActivityMissionMap().containsKey(config.getId())){ if(activityMission.getActivityState()==2){ activityMission.setActivityState(1); } @@ -386,7 +396,7 @@ public class ActivityLogic implements IEventHandler{ activityProgressInfo.setProgrss(ActivityLogic.getInstance().getInitActivityMissionProgress(openActivityId)); activityProgressInfo.setState(0); activityProgressInfo.setProgrss(chargeMoneyCount); - activityMission.getActivityMissionMap().put(Config.getId(), activityProgressInfo); + activityMission.getActivityMissionMap().put(config.getId(), activityProgressInfo); } } } @@ -525,6 +535,12 @@ public class ActivityLogic implements IEventHandler{ MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.LUCKWHEEL_POOL_INDICATION_VALUE, builder.build(), true); } + /** + * 获取活动信息 + * @param activityMissionMap + * @param createTime + * @return + */ public List getActivityInfos(Map activityMissionMap, long createTime) { Map sGlobalActivityMap = SGlobalActivity.getsGlobalActivityMap(); List activityInfoList = new ArrayList<>(activityMissionMap.size()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java index a1fc8cbfa..deaca3389 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java @@ -113,4 +113,6 @@ public interface ActivityType { int SEVEN_WORLD_TREASURE = 83;//七界秘宝 int RIDING_SWARD = 84;//御剑飞行 + + int ITEMS_STORE_NEW = 6001;//新百宝商会 } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java index a4f812e9a..d52099a9f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java @@ -86,6 +86,7 @@ public enum ActivityTypeEnum { SEVEN_WORLD_TREASURE(ActivityType.SEVEN_WORLD_TREASURE,SevenWorldActivity::new), LING_LONG_PAVILION(ActivityType.LING_LONG_PAVILION,DefaultEmptyActivity::new), RIDING_SWARD(ActivityType.RIDING_SWARD,RidingSwardActivity::new), + ITEMS_STORE_NEW(ActivityType.ITEMS_STORE_NEW,SuperBoxActivity::new), ; private int type; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SignInSumActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SignInSumActivity.java index fc6f6d48b..9e04e8cca 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SignInSumActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SignInSumActivity.java @@ -10,9 +10,6 @@ import com.ljsd.jieling.network.session.ISession; import config.SActivityRewardConfig; import util.TimeUtils; -import java.util.List; -import java.util.Map; - class SignInSumActivity extends AbstractActivity { @@ -26,7 +23,9 @@ class SignInSumActivity extends AbstractActivity { @Override public void onEvent(IEvent event) throws Exception { - if(!(event instanceof SignInEvent)) return; + if(!(event instanceof SignInEvent)){ + return; + } update(UserManager.getUser(((SignInEvent) event).getUid()),1); } @@ -47,7 +46,6 @@ class SignInSumActivity extends AbstractActivity { if (day > 1){ // 初始化 ActivityLogic.getInstance().initMissionInfo(activityMission,id); - activityMission.setV(count); }else { activityMission.setV(count + activityMission.getV()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java index 91b0d35af..774b0c393 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java @@ -25,12 +25,14 @@ import java.util.stream.Collectors; * 惊喜礼盒活动 * * 礼盒状态: - * 已解锁可购买 1 - * 已解锁不可购买 2 - * 未解锁可见可预览 3 - * 未解锁可见不可预览 4 - * 未解锁不可见 5 - * 已购买 6 + * 1:已解锁,可购买 + * 2:已解锁,不可买,未到购买天数 + * 3:已解锁,不可买,未购买前置礼包 + * 4:已解锁,不可买,未激活特权 + * 5:未解锁,不可见 + * 6:未解锁,可见,可预览 + * 7:未解锁,可见,不可预览 + * 8:已购买 */ @SuppressWarnings("ALL") public class SuperBoxActivity extends AbstractActivity { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java index c7d9ae217..8375c6502 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java @@ -711,29 +711,51 @@ public class MissionLoigc { * 一键领取任务奖励 * @param session * @param type - * @param missionId * @throws Exception */ - public static void takeMissionRewardOnekey(ISession session,int type,int missionId) throws Exception{ + public static void takeMissionRewardOnekey(ISession session,int type) throws Exception{ int uid = session.getUid(); User user = UserManager.getUser(uid); UserMissionManager userMissionManager = user.getUserMissionManager(); - List missionStateChangeInfos = null; + List missionStateChangeInfos = new ArrayList(); //日常 任务 + //ListrewardList = new ArrayList(); + Map rewardMap =new HashMap(); if(type == GameMisionType.DAILYMISSION.getType()){ - Map> gameMisionTypeListMap = - userMissionManager.onGameEvent(user, GameEvent.DAILY_MISSION_REWARD, missionId); - missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.DAILYMISSION); - SDailyTasksConfig sDailyTasksConfig = SDailyTasksConfig.getSDailyTasksConfigById(missionId); - if(sDailyTasksConfig.getType() == MissionType.FINSIH_DAYILY_TIMES.getMissionTypeValue() && missionStateChangeInfos !=null && !missionStateChangeInfos.isEmpty()){ - user.getUserMissionManager().onGameEvent(user,GameEvent.TAKE_DAILY_BOX_REWARD); + for(int missionId:SDailyTasksConfig.config.keySet()){ + Map> gameMisionTypeListMap = + userMissionManager.onGameEvent(user, GameEvent.DAILY_MISSION_REWARD, missionId); + missionStateChangeInfos.addAll(gameMisionTypeListMap.get(GameMisionType.DAILYMISSION)); + //missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.DAILYMISSION); + SDailyTasksConfig sDailyTasksConfig = SDailyTasksConfig.getSDailyTasksConfigById(missionId); + if(sDailyTasksConfig.getType() == MissionType.FINSIH_DAYILY_TIMES.getMissionTypeValue() && missionStateChangeInfos !=null && !missionStateChangeInfos.isEmpty()){ + user.getUserMissionManager().onGameEvent(user,GameEvent.TAKE_DAILY_BOX_REWARD); + } + } } - if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){ - CommonProto.Drop.Builder drop = ItemUtil.drop(user, missionStateChangeInfos.get(0).getRewwardGroups(), BIReason.TAKE_MISSION_REWARD); - ReportUtil.onReportEvent(user, ReportEventEnum.MISSION_COMPLETE.getType(),String.valueOf(missionId),type); - PlayerInfoProto.TakeMissionRewardResponse build = PlayerInfoProto.TakeMissionRewardResponse.newBuilder().setDrop(drop).build(); - MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,build,true); + if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){ + //奖励汇总 + PlayerInfoProto.TakeMissionRewardResponse.Builder res= PlayerInfoProto.TakeMissionRewardResponse.newBuilder(); + for(MissionStateChangeInfo info:missionStateChangeInfos){ + if(info.getRewwardGroups()!=null){ + for(int[] reward:info.getRewwardGroups()){ + if(rewardMap.containsKey(reward[0])){ + rewardMap.put(reward[0],rewardMap.get(reward[0])+reward[1]); + }else{ + rewardMap.put(reward[0],reward[1]); + } + res.addRewardId(info.getMissionId()); + } + } + ReportUtil.onReportEvent(user, ReportEventEnum.MISSION_COMPLETE.getType(),String.valueOf(info.getMissionId()),type); + } + int[][] itemArr = rewardMap.entrySet().stream().map(n->new int[] {n.getKey(),n.getValue()}).toArray(int[][]::new); + CommonProto.Drop.Builder drop = ItemUtil.drop(user, itemArr, BIReason.TAKE_MISSION_REWARD); + res.setDrop(drop); + //ReportUtil.onReportEvent(user, ReportEventEnum.MISSION_COMPLETE.getType(),String.valueOf(missionId),type); + //PlayerInfoProto.TakeMissionRewardResponse build = PlayerInfoProto.TakeMissionRewardResponse.newBuilder().setDrop(drop).build(); + MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,res.build(),true); }else{ throw new ErrorCodeException(ErrorCode.newDefineCode("mission can not get reward")); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index c5d179e6b..83730f64e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -711,14 +711,14 @@ public class PlayerLogic { return CommonProto.TeamOneInfo.newBuilder(); } //TODO - Map groupValues = RedisUtil.getInstence().getMapValues(RedisKey.SERVER_SPLIT_INFO, "", Integer.class, Integer.class); + /*Map groupValues = RedisUtil.getInstence().getMapValues(RedisKey.SERVER_SPLIT_INFO, "", Integer.class, Integer.class); List groupList = groupValues.entrySet().stream().filter(n -> n.getValue() == crossGroup).map(keyVal -> keyVal.getKey()).collect(Collectors.toList()); - int server = new Random().nextInt(groupList.size()); + int server = new Random().nextInt(groupList.size());*/ CommonProto.TeamOneInfo.Builder oneInfo = CommonProto.TeamOneInfo.newBuilder() .setLevel(sArenaRobotConfig.getRobotLevel()) .setName(sArenaRobotConfig.getRobotName()) - .setUid(sArenaRobotConfig.getId()).setCrossTeamScore(sArenaRobotConfig.getMsScroe()).setServerName(String.valueOf(groupList.get(server))); + .setUid(sArenaRobotConfig.getId()).setCrossTeamScore(sArenaRobotConfig.getMsScroe()).setServerName(""); //CommonProto.TeamOneTeamInfo.Builder teamInfo = CommonProto.TeamOneTeamInfo.newBuilder(); if(sArenaRobotConfig.getDifferDemonsId()!=null){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/ridingSward/RidingSwardLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/ridingSward/RidingSwardLogic.java index a4936ac7e..9e35c9f10 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/ridingSward/RidingSwardLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/ridingSward/RidingSwardLogic.java @@ -10,7 +10,7 @@ import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.logic.activity.ActivityType; import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic; import com.ljsd.jieling.logic.dao.UserManager; -import com.ljsd.jieling.logic.dao.gm.ArenaOfUser; +import com.ljsd.jieling.logic.dao.cross.CSPlayer; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.rank.RankContext; import com.ljsd.jieling.logic.rank.RankEnum; @@ -249,11 +249,11 @@ public class RidingSwardLogic{ Set> tupleSet = rank.getCrossRankByKey("", 1, 4); for (ZSetOperations.TypedTuple tuple : tupleSet) { // 跨服排行榜玩家数据 - ArenaOfUser query = CrossServiceLogic.getInstance().query(Integer.parseInt(tuple.getValue())); + CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(Integer.parseInt(tuple.getValue())); CommonProto.ModelUserInfo.Builder builder = CommonProto.ModelUserInfo.newBuilder() - .setUserName(query.getPlayerManager().getName()) - .setSex(query.getPlayerManager().getGender()) - .setPracticeLevel(query.getPlayerManager().getPracticeLevel()); + .setUserName(csPlayer.getName()) + .setSex(csPlayer.getSex()) + .setPracticeLevel(csPlayer.getPracticeLevel()); infos.add(builder.build()); } build.addAllModelInfo(infos); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/AbstractWelfareBag.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/AbstractWelfareBag.java index 0b41f5702..6d133f606 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/AbstractWelfareBag.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/AbstractWelfareBag.java @@ -96,6 +96,10 @@ public class AbstractWelfareBag extends MongoBase{ } public int[][] getDropByBag() throws Exception{ SRechargeCommodityNewConfig config = SRechargeCommodityNewConfig.getConfigById(modId); + if (config == null) { + LOGGER.info("getDropByBag modId={} ", modId); + return new int[0][0]; + } int[][] baseReward = config.getBaseReward(); int[][] firstMultiple = config.getFirstMultiple(); int length = baseReward.length; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/TimeLimitWelfareBag.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/TimeLimitWelfareBag.java index 760615926..b7fff7509 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/TimeLimitWelfareBag.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/TimeLimitWelfareBag.java @@ -32,11 +32,14 @@ public class TimeLimitWelfareBag extends AbstractWelfareBag { } + @Override public boolean buy() { SRechargeCommodityNewConfig commodityNewConfig = SRechargeCommodityNewConfig.getConfigById(getModId()); if(super.buy()){ setRefreshTime(TimeUtils.getTodayZero() + commodityNewConfig.getDailyUpdate() * TimeUtils.DAY); + return true; + }else { + return false; } - return true; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/FightDataUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/FightDataUtil.java index 4fdabae7b..a2ead2c56 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/FightDataUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/FightDataUtil.java @@ -266,39 +266,45 @@ public class FightDataUtil { if(skillId.equals("0")||skillId==""){ continue; } + ///100代表是修行技能 if (unitInfo.getPosition()==100){ - SPlayerSkill playerSkillConfig=STableManager.getConfig(SPlayerSkill.class).get(Integer.valueOf(skillId)); LuaValue monster = new LuaTable(); monster.set("id",0); monster.set("star",0); monster.set("teamDamage",unitInfo.getForceScore()); monster.set("camp",camp); monster.set("position",unitInfo.getPosition()); - LuaValue skill= new LuaTable(); - int[] skillIDList = playerSkillConfig.getSkillIDList(); - for(int j = 0 ; j 0&&releaseLimit[0].length>0){ - for(int l = 0 ; l0&&releaseLimit[0].length>0){ + for(int l = 0 ; l0&&releaseLimit[0].length>0){ - for(int l = 0 ; l 0 && releaseLimit[0].length > 0) { + for (int l = 0; l < releaseLimit[j].length; l++) { + triggerCondition.rawset(l + 1, LuaValue.valueOf(releaseLimit[j][l])); + } + } else { + triggerCondition.rawset(1, LuaValue.valueOf(0)); } - }else{ - triggerCondition.rawset(1,LuaValue.valueOf(0)); + oneSkill.set("effect", getSkill(String.valueOf(skillIDList[j]), 0)); + oneSkill.set("triggerCondition", triggerCondition); + + oneSkill.set("maxCount", sSpiritAnimalSkill.getWarEffectCount()[j]); + + oneSkill.set("maxRoundCount", sSpiritAnimalSkill.getTurnEffectCount()[j]); + + skill.rawset(j + 1, oneSkill); } - oneSkill.set("effect",getSkill(String.valueOf(skillIDList[j]),0)); - oneSkill.set("triggerCondition",triggerCondition); - - oneSkill.set("maxCount",sSpiritAnimalSkill.getWarEffectCount()[j]); - - oneSkill.set("maxRoundCount",sSpiritAnimalSkill.getTurnEffectCount()[j]); - - skill.rawset(j+1,oneSkill); + skillList.rawset(k+1,skill); } - monster.set("property",getProperty(pokemonUnitList.get(i).getProperty())); - monster.set("skill",skill); + monster.set("skill",skillList); // String[] skillAndPosItem = skillAndPos.split("#"); // if (Integer.parseInt(skillAndPosItem[1])>0){ // teamSkill.rawset(i + 1, getSkill(skillAndPosItem[1],skillAndPosItem[0])); diff --git a/serverlogic/src/main/thrift/idl/core.thrift b/serverlogic/src/main/thrift/idl/core.thrift index f3813176a..b699e1c5b 100644 --- a/serverlogic/src/main/thrift/idl/core.thrift +++ b/serverlogic/src/main/thrift/idl/core.thrift @@ -90,7 +90,7 @@ struct CrossArenaManager{ 12:optional list skill;//坐骑的技能id 13:optional i32 fourSpirit; 14:optional map practiceSkillMap;//修行技能数据 - + 15:optional i64 maxHistoryForce;//用户历史最高战力 } service RPCRequestIFace{