From 517f156037e0acb94062ef32a51432c323886bf0 Mon Sep 17 00:00:00 2001 From: lilei Date: Fri, 14 Aug 2020 09:39:38 +0800 Subject: [PATCH 01/13] =?UTF-8?q?=E6=AF=8F=E6=97=A5=E7=AD=BE=E5=88=B0?= =?UTF-8?q?=E5=AE=9D=E7=AE=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/SignInHandler.java | 9 ++++ .../jieling/logic/activity/ActivityType.java | 1 + .../logic/activity/ActivityTypeEnum.java | 5 ++- .../logic/activity/SignInSumActivity.java | 44 +++++++++++++++++-- .../logic/activity/event/SignInEvent.java | 22 ++++++++++ .../HeroFiveStarGetEventHandler.java | 1 + 6 files changed, 76 insertions(+), 6 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/SignInEvent.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/SignInHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/SignInHandler.java index 202b1278b..d1d1136a5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/SignInHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/SignInHandler.java @@ -4,6 +4,8 @@ import com.ljsd.jieling.core.VipPrivilegeType; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.logic.activity.event.Poster; +import com.ljsd.jieling.logic.activity.event.SignInEvent; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.player.PlayerLogic; @@ -55,8 +57,15 @@ public class SignInHandler extends BaseHandler { throw new ErrorCodeException("次数不足"); } PlayerLogic.getInstance().checkAndUpdate(user, VipPrivilegeType.SIGN_AGAIN, 1); + + boolean todayFirstSign = user.getPlayerInfoManager().getSignTotay() == 0; user.getPlayerInfoManager().setSignTotay(1); + if (todayFirstSign) { + //累计签到事件 + Poster.getPoster().dispatchEvent(new SignInEvent(user.getId())); + } + int[] reward = sign.getreward(); int[][] cost = new int[1][]; cost[0] = reward; 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 a2e744b49..fe91170a1 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 @@ -66,5 +66,6 @@ public interface ActivityType { int COPY_PASS = 55; // 开服福利 副本限时通过奖励 int NEW_EIGHT_LOGIN = 56;//新的八日登录 + int SIGN_BOX= 57;//累计签到宝箱 } 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 b26a3065b..5a6207aa2 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 @@ -31,7 +31,7 @@ public enum ActivityTypeEnum { COPY_EXPERT(ActivityType.COPY_EXPERT, CopyExpectRankActivity::new), LEVEL_EXPERT(ActivityType.LEVEL_EXPERT, LevelExpectActivity::new), STAMINA_EXPERT(ActivityType.STAMINA_EXPERT, StaminaExpectRankActivity::new), - SIGN_IN(ActivityType.SIGN_IN, SignInSumActivity::new), + //SIGN_IN(ActivityType.SIGN_IN, SignInSumActivity::new),//因为签到没有走活动,所以SignInSunActivity类用作了累计签到奖励活动,此类暂时先不删 RECHARGE_NUM(ActivityType.RECHARGE_NUM, RechargeSumActivity::new), ESPECIALEQUIP_EXPERT(ActivityType.ESPECIALEQUIP_EXPERT, EspecialEquipExpectActivity::new), SOULEQUIP_EXPERT(ActivityType.SOULEQUIP_EXPERT, SoulEquipExpectActivity::new), @@ -49,7 +49,8 @@ public enum ActivityTypeEnum { ECPEDITION_ACTIVITY(ActivityType.ECPEDITION_ACTIVITY,DefaultEmptyActivity::new), COPY_PASS(ActivityType.COPY_PASS,ChapterRewardActivity::new), NEW_EIGHT_LOGIN(ActivityType.NEW_EIGHT_LOGIN,NewEightActivity::new), - BEAUTY_BAG(ActivityType.BEAUTY_BAG,LimitRandomCardActivity::new) + BEAUTY_BAG(ActivityType.BEAUTY_BAG,LimitRandomCardActivity::new), + SIGN_BOX(ActivityType.SIGN_BOX,SignInSumActivity::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 551c24690..96f08ab73 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 @@ -1,15 +1,32 @@ package com.ljsd.jieling.logic.activity; import com.ljsd.jieling.jbean.ActivityMission; +import com.ljsd.jieling.jbean.ActivityProgressInfo; +import com.ljsd.jieling.logic.activity.event.IEvent; +import com.ljsd.jieling.logic.activity.event.Poster; +import com.ljsd.jieling.logic.activity.event.SignInEvent; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.network.session.ISession; +import config.SActivityRewardConfig; + +import java.util.List; +import java.util.Map; + -/** - * 签到不走活动 没有逻辑处理 - */ -@Deprecated class SignInSumActivity extends AbstractActivity { + //签到宝箱领完第七天之后,重置进度 + public static int RESET_DAYS_AFTER_RECEIVED = 7; + public SignInSumActivity(int id) { super(id); + Poster.getPoster().listenEvent(this, SignInEvent.class); + } + + @Override + public void onEvent(IEvent event) throws Exception { + if(!(event instanceof SignInEvent)) return; + update(UserManager.getUser(((SignInEvent) event).getUid()),1); } @Override @@ -17,4 +34,23 @@ class SignInSumActivity extends AbstractActivity { activityMission.setV(count + activityMission.getV()); } + @Override + boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { + return checkValue(session, sActivityRewardConfig, activityProgressInfo); + } + + @Override + public boolean takeReward(ISession session, int missionId) throws Exception { + boolean result = super.takeReward(session, missionId); + if (result) { + //取得活动奖励配置,判断下如果是7天的宝箱,则重置进度,takeReward成功之后,sActivityRewardConfig一定在 + SActivityRewardConfig config = SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId); + if (config.getValues()[0][0]== RESET_DAYS_AFTER_RECEIVED) { + reSetValue(UserManager.getUser(session.getUid())); + } + ActivityMission activityMission = UserManager.getUser(session.getUid()).getActivityManager().getActivityMissionMap().get(this.id); + sendActivityProgress(session, activityMission, null); + } + return result; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/SignInEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/SignInEvent.java new file mode 100644 index 000000000..24fffe04f --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/SignInEvent.java @@ -0,0 +1,22 @@ +package com.ljsd.jieling.logic.activity.event; + + +/** + * 每日签到事件 + * 用作处理累计签到宝箱 + */ +public class SignInEvent implements IEvent{ + private int uid; + + public SignInEvent(int uid) { + this.uid = uid; + } + + public int getUid() { + return uid; + } + + public void setUid(int uid) { + this.uid = uid; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/HeroFiveStarGetEventHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/HeroFiveStarGetEventHandler.java index f232fcd39..341dea0a5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/HeroFiveStarGetEventHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/HeroFiveStarGetEventHandler.java @@ -48,6 +48,7 @@ public class HeroFiveStarGetEventHandler implements IEventHandler { long lasttime = rechargeInfo.getTypeBagMap().get(((HeroFiveStarGetEvent) event).getStar()); int diffHourTemp = (int) ((now - lasttime) / 3600 / 1000); + //做一个验证,如果前一次的成长礼没有超出购买时间,才增加次数,否则重置为1次 if (diffHourTemp < 2) { rechargeInfo.addDyGoodsCanBuyTimes(goodsId); }else { From dbfb8f4110e5342f6e51ad18b20caf589bf7a16b Mon Sep 17 00:00:00 2001 From: lvxinran Date: Fri, 21 Aug 2020 11:30:47 +0800 Subject: [PATCH 02/13] =?UTF-8?q?=E9=99=90=E6=97=B6=E5=85=91=E6=8D=A2?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E7=89=A9=E5=93=81=E6=8E=89=E8=90=BD=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../clazzStaticCfg/RewardStaticConfig.java | 1 - .../logic/activity/DefaultEmptyActivity.java | 11 +++---- .../ljsd/jieling/logic/fight/CombatLogic.java | 32 +++++++++++++++++++ .../ljsd/jieling/logic/hero/HeroLogic.java | 9 +++--- 4 files changed, 42 insertions(+), 11 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/RewardStaticConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/RewardStaticConfig.java index c2117d4ef..71cb5736e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/RewardStaticConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/RewardStaticConfig.java @@ -1,6 +1,5 @@ package com.ljsd.jieling.config.clazzStaticCfg; -import config.SExpeditionFloorConfig; import config.SRaceTowerRewardConfig; import manager.AbstractClassStaticConfig; import manager.STableManager; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DefaultEmptyActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DefaultEmptyActivity.java index a9df0cef6..04062dac7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DefaultEmptyActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DefaultEmptyActivity.java @@ -1,18 +1,17 @@ package com.ljsd.jieling.logic.activity; import com.ljsd.jieling.config.clazzStaticCfg.TaskStaticConfig; +import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.jbean.ActivityMission; +import com.ljsd.jieling.logic.dao.Item; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mail.MailLogic; import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.mission.main.ServenMissionIdsType; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.ToolsUtil; -import config.SErrorCodeEerverConfig; -import config.SGlobalActivity; -import config.SSevenDaysScore; -import config.STreasureTaskConfig; +import config.*; import manager.STableManager; import java.util.ArrayList; @@ -57,7 +56,7 @@ public class DefaultEmptyActivity extends AbstractActivity{ }*/ } }else if(sGlobalActivity.getType() == ActivityType.EXCHANGEANDDROP){ - /* int shopId = sGlobalActivity.getShopId(); + int shopId = sGlobalActivity.getShopId()[0]; SStoreConfig sStoreConfig = SStoreConfig.getSstoreConfigBuyStore().get(shopId).get(0); int removeItemId = sStoreConfig.getCost()[0][0]; Item item = user.getItemManager().getItem(removeItemId); @@ -65,7 +64,7 @@ public class DefaultEmptyActivity extends AbstractActivity{ int[][] cost= new int[1][]; cost[0] = new int[]{item.getItemId(),item.getItemNum()}; ItemUtil.itemCost(user,cost, BIReason.EXCHANGE_ACTIVITY_CLOSE,sGlobalActivity.getId()); - }*/ + } } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java index d84a2615c..551997d64 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java @@ -14,6 +14,7 @@ import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.handler.map.MapManager; import com.ljsd.jieling.handler.map.behavior.BehaviorUtil; +import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.ktbeans.KTGameType; import com.ljsd.jieling.ktbeans.KtEventUtils; import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean; @@ -279,6 +280,8 @@ public class CombatLogic { ItemUtil.combineReward(user,true,targetMainLevelConfig.getRandomReward(), 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap,BIReason.ADVENTURE_RANDOM_REWARDD); } randomEquipMap = equipAutoCombine(randomEquipMap); + //清除无用活动道具 + removeNoUseItem(user,randomItemMap); ItemUtil.drop(user,baseBuilder,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap,BIReason.ADVENTURE_BASE_REWARD); ItemUtil.drop(user,randomBuilder,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap,BIReason.ADVENTURE_RANDOM_REWARDD); Map result = new HashMap<>(2); @@ -972,6 +975,7 @@ public class CombatLogic { rewardStr = ItemUtil.getReward(baseItemMap, baseCardMap, baseEquipMap, baseRandomMap); return this; } + removeNoUseItem(user,randomItemMap); if(sendMail){ if(!baseItemMap.isEmpty()){ int vipLevel = user.getPlayerInfoManager().getVipLevel(); @@ -997,6 +1001,34 @@ public class CombatLogic { } + private static void removeNoUseItem(User user,Map itemMap){ + Map config = STableManager.getConfig(SExchangeActivityConfig.class); + if(config.size()<1){ + return; + } + Set removeItem = new HashSet<>(); + Set remainItem = new HashSet<>(3); + for(Map.Entry entry:config.entrySet()){ + Map activityMissionMap = user.getActivityManager().getActivityMissionMap(); + int activityId = entry.getValue().getActivityId(); + if(!activityMissionMap.containsKey(activityId)){ + removeItem.add(entry.getValue().getActivityItem()); + continue; + } + if(activityMissionMap.get(activityId).getOpenType()!=1){ + removeItem.add(entry.getValue().getActivityItem()); + continue; + } + remainItem.add(entry.getValue().getActivityItem()); + } + for(int item :removeItem){ + if(remainItem.contains(item)){ + continue; + } + itemMap.remove(item); + } + } + /** * 将挂机和急速探索的装备合成起来 * @param equipMap diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index 13aa5e49b..f614c5422 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -1802,10 +1802,11 @@ public class HeroLogic{ for(int[] item : otherAttriMap){ int propertyId = item[0]; int propertyValue = item[1]; - if(heroAttributeMap.containsKey(propertyId)){ - propertyValue += heroAttributeMap.get(propertyId); - } - heroAttributeMap.put(propertyId,propertyValue); +// if(heroAttributeMap.containsKey(propertyId)){ +// propertyValue += heroAttributeMap.get(propertyId); +// } +// heroAttributeMap.put(propertyId,propertyValue); + heroAttributeMap.put(propertyId,heroAttributeMap.getOrDefault(propertyId,0)+propertyValue); } } From 7c9a3661496a242cbdf14e7fc9af2c6b34ddc538 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Fri, 21 Aug 2020 11:42:31 +0800 Subject: [PATCH 03/13] =?UTF-8?q?=E9=99=90=E6=97=B6=E5=85=91=E6=8D=A2?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/config/SExchangeActivityConfig.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 tablemanager/src/main/java/config/SExchangeActivityConfig.java diff --git a/tablemanager/src/main/java/config/SExchangeActivityConfig.java b/tablemanager/src/main/java/config/SExchangeActivityConfig.java new file mode 100644 index 000000000..b2bf72368 --- /dev/null +++ b/tablemanager/src/main/java/config/SExchangeActivityConfig.java @@ -0,0 +1,37 @@ +package config; + +import manager.STableManager; +import manager.Table; + +import java.util.Map; + +@Table(name ="ExchangeActivityConfig") +public class SExchangeActivityConfig implements BaseConfig { + + private int id; + + private int activityId; + + private int activityItem; + + + @Override + public void init() throws Exception { + + } + + + public int getId() { + return id; + } + + public int getActivityId() { + return activityId; + } + + public int getActivityItem() { + return activityItem; + } + + +} \ No newline at end of file From a8087e7b845a13cec77b2a6c13ddfb78d40b39a9 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sat, 22 Aug 2020 05:02:27 +0800 Subject: [PATCH 04/13] =?UTF-8?q?=E6=A3=AE=E7=BD=97=E5=B9=BB=E5=A2=83?= =?UTF-8?q?=E9=87=8D=E7=BD=AE=E5=95=86=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/handler/map/MapLogic.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 102f52150..d167866bd 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 @@ -2819,7 +2819,7 @@ public class MapLogic { */ public void checkTrialReset(User user) throws Exception { MapManager mapManager = user.getMapManager(); - + StoreManager storeManager = user.getStoreManager(); //判断试炼本是否跨了周期 TrialInfo trialInfo = mapManager.getTrialInfo(); TimeControllerOfFunction openTimeOfFuntionCacheByType = GlobalDataManaager.getInstance().getOpenTimeOfFuntionCacheByType(FunctionIdEnum.Trial); @@ -2845,6 +2845,7 @@ public class MapLogic { resetMapInfo(user,false); } } + storeManager.removeStoreInfo(8); mapManager.setTrialInfo(trialInfo); } From 20a0adb7fed90cf29df4017a408c5a2c45471a76 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sun, 23 Aug 2020 07:02:07 +0800 Subject: [PATCH 05/13] =?UTF-8?q?=E6=A3=AE=E7=BD=97=E7=8E=AF=E5=A2=83=20?= =?UTF-8?q?=E5=B0=8F=E6=80=AA=E8=AE=A1=E8=A1=80=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/map/MapManager.java | 9 ++++++-- .../ljsd/jieling/handler/map/TrialInfo.java | 13 +++++++++++ .../jieling/handler/map/mapType/TowerMap.java | 22 ++++++++++++++++--- .../ljsd/jieling/logic/fight/FightEvent.java | 10 +++++++++ .../ljsd/jieling/logic/fight/FightUtil.java | 13 ++++++++--- 5 files changed, 59 insertions(+), 8 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java index 170dbae75..07741c8d9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java @@ -817,9 +817,14 @@ public class MapManager extends MongoBase { trialInfo.setMapGameInfo(info); updateString("trialInfo.mapGameInfo",info); } - public void updateBombUseCount(int bombUseCount){ + + public void updateBombUseCount(int bombUseCount) { trialInfo.setBombUseTimes(bombUseCount); - updateString("trialInfo.bombUseTimes",bombUseCount); + updateString("trialInfo.bombUseTimes", bombUseCount); + } + public void updateMapMonsterHp(Map> monsterHp){ + trialInfo.setMonsterHp(monsterHp); + updateString("trialInfo.monsterHp",monsterHp); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/TrialInfo.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/TrialInfo.java index c84f043ba..e4fb7c9a9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/TrialInfo.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/TrialInfo.java @@ -35,8 +35,12 @@ public class TrialInfo { private MapGameInfo mapGameInfo = new MapGameInfo(); + private int bombUseTimes; + private Map> monsterHp = new HashMap<>(); + + public Set getTowerReceivedReward() { return towerReceivedReward; } @@ -141,11 +145,20 @@ public class TrialInfo { this.mapGameInfo = mapGameInfo; } + public int getBombUseTimes() { return bombUseTimes; } public void setBombUseTimes(int bombUseTimes) { this.bombUseTimes = bombUseTimes; + + } + public Map> getMonsterHp() { + return monsterHp; + } + + public void setMonsterHp(Map> monsterHp) { + this.monsterHp = monsterHp; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapType/TowerMap.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapType/TowerMap.java index aad56372d..e02815cfe 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapType/TowerMap.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapType/TowerMap.java @@ -366,7 +366,15 @@ public class TowerMap extends AbstractMap { int groupId = option[0]; int destoryXY = mapManager.getTriggerXY(); + //更新血量 + TrialInfo trialInfo = mapManager.getTrialInfo(); + Map> monsterHp = trialInfo.getMonsterHp(); + PVEFightEvent pveFightEvent = new PVEFightEvent(uid, mapManager.getTeamId(), 10, "", GameFightType.MapFastFight, groupId, 3); + //怪物剩余血量 + if(monsterHp!=null&&!monsterHp.isEmpty()&&monsterHp.containsKey(cell.getCellId())){ + pveFightEvent.setMonsterRemainHp(monsterHp.get(cell.getCellId())); + } FightResult fightResult = FightDispatcher.dispatcher(pveFightEvent); int[] checkResult = fightResult.getCheckResult(); @@ -374,11 +382,10 @@ public class TowerMap extends AbstractMap { //校验结果码 1:胜利 int resultCode = checkResult[0]; if (resultCode == -1) { -// throw new ErrorCodeException(ErrorCode.FIGHT_EXCEPTION); + throw new ErrorCodeException(ErrorCode.FIGHT_EXCEPTION); } mapManager.setLastFightResult(resultCode); - //更新血量 - TrialInfo trialInfo = mapManager.getTrialInfo(); + List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(mapManager.getTeamId()); if(teamPosHeroInfos==null||teamPosHeroInfos.size()!=1){ // throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); @@ -391,6 +398,15 @@ public class TowerMap extends AbstractMap { Map property = trailHero.getProperty(); Cell createCell = null; if (resultCode == 0) { + //记录怪剩余血量 + List hpList= new ArrayList<>(); + for(int i = 2;i attackBloodMap; + private List monsterRemainHp; public FightEvent(int attackUid, int teamId,int mostTime,String frams, GameFightType fightType) { this.attackUid = attackUid; @@ -50,4 +52,12 @@ public class FightEvent { public String getId() { return id; } + + public List getMonsterRemainHp() { + return monsterRemainHp; + } + + public void setMonsterRemainHp(List monsterRemainHp) { + this.monsterRemainHp = monsterRemainHp; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java index c7f26821b..ff13a11f5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java @@ -58,6 +58,9 @@ public class FightUtil { public static Map> makeMonsterGroup(int bossGroupId,Map> hps){ + if(hps==null||hps.get(0)==null){ + return makeMonsterGroup(bossGroupId); + } return MonsterUtil.getMonsterByGroup(bossGroupId,hps); } @@ -70,8 +73,8 @@ public class FightUtil { } //防守方是怪物 - public static List makeMonsterFightData(int bossGroupId,int nums){ - Map> monsterByGroup = makeMonsterGroup(bossGroupId); + public static List makeMonsterFightData(int bossGroupId,int nums,Map> monsterHp){ + Map> monsterByGroup = makeMonsterGroup(bossGroupId,monsterHp); List monsterTeamList = new ArrayList<>(nums); for(int i=0;i monsterGroupList = BehaviorUtil.getFightTeamInfos(bossGroupId, monsterByGroup, i); @@ -90,7 +93,11 @@ public class FightUtil { User userInMem = UserManager.getUserInMem(pveFightEvent.getAttackUid()); CommonProto.FightTeamInfo fightTeamInfo = makePersonFightData(userInMem, pveFightEvent.getTeamId(),pveFightEvent.getAttackBloodMap()); int fightSeed =getFightSeed(); - List monsterfightTeamInfos = makeMonsterFightData(pveFightEvent.getMonsterGroupId(), pveFightEvent.getNums()); + //怪物剩余血量 + List monsterRemainHp = pveFightEvent.getMonsterRemainHp(); + Map> remainHp = new HashMap<>(); + remainHp.put(0,monsterRemainHp); + List monsterfightTeamInfos = makeMonsterFightData(pveFightEvent.getMonsterGroupId(), pveFightEvent.getNums(),remainHp); LuaValue getFightData = FightDataUtil.getFinalFightData(fightTeamInfo, monsterfightTeamInfos); LuaValue getOptionData = FightDataUtil.getOptionData(pveFightEvent.getAttackUid()+""); int[] fightResult = CheckFight.getInstance().checkFight(fightSeed, fightEvent.getMostTime(), getFightData, getOptionData, fightEvent.getFightType().getFightType()); From c0126ead43e8ce68cd8f523d9121d318fda5784f Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sun, 23 Aug 2020 07:02:27 +0800 Subject: [PATCH 06/13] =?UTF-8?q?=E7=BA=BF=E7=A8=8B=E5=8A=A0=E5=85=A5try?= =?UTF-8?q?=20catch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/SituationLogic.java | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/SituationLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/SituationLogic.java index e94af7301..c947a4327 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/SituationLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/SituationLogic.java @@ -72,16 +72,20 @@ public class SituationLogic { runnable.run(); } private void checkStatus(){ - if(status==null||overTime==null||openConfig==null){ - status = new int[4]; - openConfig = SSpecialConfig.getTwiceArrayValue(SSpecialConfig.XUANYUAN_OPEN_TIME); - overTime = new int[4]; - doCheck(); - }else{ - if(TimeUtils.getHourOfDay()!=5){ - return; + try{ + if(status==null||overTime==null||openConfig==null){ + status = new int[4]; + openConfig = SSpecialConfig.getTwiceArrayValue(SSpecialConfig.XUANYUAN_OPEN_TIME); + overTime = new int[4]; + doCheck(); + }else{ + if(TimeUtils.getHourOfDay()!=5){ + return; + } + doCheck(); } - doCheck(); + }catch (Exception e){ + e.printStackTrace(); } } private void doCheck(){ @@ -285,7 +289,7 @@ public class SituationLogic { User userInMem = UserManager.getUserInMem(pveFightEvent.getAttackUid()); CommonProto.FightTeamInfo fightTeamInfo = FightUtil.getFightTeamInfoWithSomeBuff(userInMem, pveFightEvent.getTeamId(),pveFightEvent.getAttackBloodMap(),buffInfo); int fightSeed = FightUtil.getFightSeed(); - List monsterfightTeamInfos = FightUtil.makeMonsterFightData(pveFightEvent.getMonsterGroupId(), pveFightEvent.getNums()); + List monsterfightTeamInfos = FightUtil.makeMonsterFightData(pveFightEvent.getMonsterGroupId(), pveFightEvent.getNums(),null); LuaValue getFightData = FightDataUtil.getFinalFightData(fightTeamInfo, monsterfightTeamInfos); LuaValue getOptionData = FightDataUtil.getOptionData(pveFightEvent.getAttackUid()+""); int[] fightResult = CheckFight.getInstance().checkFight(fightSeed, fightEvent.getMostTime(), getFightData, getOptionData, fightEvent.getFightType().getFightType()); From 9a25d556a260fd46126728c59299d3a62ed90ece Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sun, 23 Aug 2020 07:03:47 +0800 Subject: [PATCH 07/13] =?UTF-8?q?=E6=8D=A2=E5=B1=82=E6=B8=85=E9=99=A4?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/map/behavior/FourtyTwoBehavior.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyTwoBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyTwoBehavior.java index 99aa9b70e..39cf80e3b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyTwoBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyTwoBehavior.java @@ -62,6 +62,8 @@ public class FourtyTwoBehavior extends BaseBehavior { mapManager.setTrialFloor(floor + 1); mapManager.setTrialEnergy(0); mapManager.setMapIntoFlag(2); + //换层清除数据 + mapManager.updateMapMonsterHp(new HashMap<>()); return true; } } From e81eeb4cf6331c4224e028c466fc87a03ae5ed26 Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Fri, 14 Aug 2020 14:10:56 +0800 Subject: [PATCH 08/13] =?UTF-8?q?=E8=8B=B1=E9=9B=84=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/hero/DoHeroChangeRequestHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/DoHeroChangeRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/DoHeroChangeRequestHandler.java index 300cc949f..4297984c9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/DoHeroChangeRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/DoHeroChangeRequestHandler.java @@ -66,7 +66,7 @@ public class DoHeroChangeRequestHandler extends BaseHandler Date: Mon, 24 Aug 2020 05:02:20 +0800 Subject: [PATCH 09/13] =?UTF-8?q?=E8=BD=A9=E8=BE=95=E5=AE=9D=E9=95=9C?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/SituationLogic.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/SituationLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/SituationLogic.java index c947a4327..81f5f25d8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/SituationLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/SituationLogic.java @@ -93,7 +93,7 @@ public class SituationLogic { int hourOfDay = TimeUtils.getHourOfDay(); int week = TimeUtils.getDayOfWeek(); if(hourOfDay<5){ - week = week==0?7:week-1; + week = week==1?7:week-1; } boolean isIndication = false; for(int[] config:openConfig){ From 433ef982655572a01509997a67458017b2718890 Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Fri, 14 Aug 2020 23:08:45 +0800 Subject: [PATCH 10/13] =?UTF-8?q?=E5=85=85=E5=80=BC=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E6=9B=B4=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamecommon/src/main/java/util/MathUtils.java | 7 +++ .../jieling/handler/GetPlayerInfoHandler.java | 2 +- .../logic/activity/DailyRechargeActivity.java | 6 +- .../logic/activity/LuckyCatActivity.java | 2 +- .../logic/activity/RechargeSumActivity.java | 6 +- .../activity/RechargeSumDayActivity.java | 2 +- .../logic/activity/RechargeTotalActivity.java | 2 +- .../eventhandler/LeveGiftEventHander.java | 4 +- .../ljsd/jieling/logic/dao/PlayerManager.java | 11 ++-- .../ljsd/jieling/logic/dao/RechargeInfo.java | 36 +++++------ .../jieling/logic/player/PlayerLogic.java | 4 +- .../jieling/logic/store/BuyGoodsLogic.java | 61 ++++++++++--------- .../logic/store/RechargeEventProp.java | 6 +- .../com/ljsd/jieling/util/CBean2Proto.java | 2 +- .../java/config/SRechargeCommodityConfig.java | 4 +- 15 files changed, 88 insertions(+), 67 deletions(-) diff --git a/gamecommon/src/main/java/util/MathUtils.java b/gamecommon/src/main/java/util/MathUtils.java index ad5f9a1f9..4e4120161 100644 --- a/gamecommon/src/main/java/util/MathUtils.java +++ b/gamecommon/src/main/java/util/MathUtils.java @@ -3,6 +3,7 @@ package util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.math.BigDecimal; import java.util.*; import java.util.concurrent.ThreadLocalRandom; @@ -367,4 +368,10 @@ public class MathUtils { return result; } + public static double doubleAdd(double d1 ,double d2){ + BigDecimal b1 = new BigDecimal(Double.toString(d1)); + BigDecimal b2 = new BigDecimal(Double.toString(d2)); + return b1.add(b2).doubleValue(); + } + } 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 4316b8140..bd9249d88 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -172,7 +172,7 @@ public class GetPlayerInfoHandler extends BaseHandler{ .setQuestionState(questState) .setSoulEquipPool(equipPool) .addAllPlayedMapTypes(mapManager.getPlayedMapType()) - .setAmount(rechargeInfo.getSaveAmt()) + .setAmount((int) rechargeInfo.getSaveAmt()) .setVipDaily(playerInfoManager.getHadTakeDailyBoxVip()) .setMissingRefreshCount(vipPrivilageValue) .addAllMonthinfos(PlayerLogic.getInstance().getMonthCardInfo(user)) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DailyRechargeActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DailyRechargeActivity.java index 01201d169..4c28f03b5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DailyRechargeActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DailyRechargeActivity.java @@ -3,6 +3,7 @@ package com.ljsd.jieling.logic.activity; import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.jbean.ActivityProgressInfo; import com.ljsd.jieling.logic.OnlineUserManager; +import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; import config.SActivityRewardConfig; @@ -43,7 +44,10 @@ class DailyRechargeActivity extends AbstractActivity { @Override boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { - return checkValue(session, sActivityRewardConfig, activityProgressInfo); + int[][] values = sActivityRewardConfig.getValues(); + User user = UserManager.getUser(session.getUid()); + int value = user.getActivityManager().getActivityMissionMap().get(sActivityRewardConfig.getActivityId()).getV(); + return value/1000 >= values[0][0]; } @Override diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LuckyCatActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LuckyCatActivity.java index ec1c96bd1..2d7cc6b51 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LuckyCatActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LuckyCatActivity.java @@ -77,7 +77,7 @@ public class LuckyCatActivity extends AbstractActivity { throw new ErrorCodeException(ErrorCode.CFG_NULL); } - if (activityMission.getV() < sLuckyRewardConfig.getRmbValue()) { + if (activityMission.getV()/1000 < sLuckyRewardConfig.getRmbValue()) { throw new ErrorCodeException(ErrorCode.newDefineCode("value illegality")); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumActivity.java index 668b9a65e..1c79097eb 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumActivity.java @@ -3,6 +3,7 @@ package com.ljsd.jieling.logic.activity; import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.jbean.ActivityProgressInfo; import com.ljsd.jieling.logic.OnlineUserManager; +import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; import config.SActivityRewardConfig; @@ -31,7 +32,10 @@ class RechargeSumActivity extends AbstractActivity { @Override boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { - return checkValue(session, sActivityRewardConfig, activityProgressInfo); + int[][] values = sActivityRewardConfig.getValues(); + User user = UserManager.getUser(session.getUid()); + int value = user.getActivityManager().getActivityMissionMap().get(sActivityRewardConfig.getActivityId()).getV(); + return value/1000 >= values[0][0]; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumDayActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumDayActivity.java index 577ac9efd..dbe2dd14b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumDayActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumDayActivity.java @@ -38,7 +38,7 @@ class RechargeSumDayActivity extends AbstractActivity { if (activityProgressInfo == null || activityProgressInfo.getProgrss() == 1) { return; } - if (count >= SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId).getValues()[0][0]) { + if (count/1000 >= SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId).getValues()[0][0]) { activityProgressInfo.setProgrss(1); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeTotalActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeTotalActivity.java index 93f6b4728..006ad5b28 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeTotalActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeTotalActivity.java @@ -22,7 +22,7 @@ class RechargeTotalActivity extends AbstractActivity { User user = UserManager.getUser(session.getUid()); RechargeInfo rechargeInfo = user.getPlayerInfoManager().getRechargeInfo(); int days = TimeUtils.differentDaysByHour(rechargeInfo.getCreateTime(), now,5) + 1; - if (missionProgress < values[0][0] || days < values[0][1]) { + if (missionProgress/1000 < values[0][0] || days < values[0][1]) { return false; } return true; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/LeveGiftEventHander.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/LeveGiftEventHander.java index dad1d0568..a3e09350e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/LeveGiftEventHander.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/LeveGiftEventHander.java @@ -46,8 +46,8 @@ public class LeveGiftEventHander implements IEventHandler { return; } RechargeInfo rechargeInfo = user.getPlayerInfoManager().getRechargeInfo(); - int saveAmt = rechargeInfo.getSaveAmt(); - Map.Entry entry = SRechargeCommodityConfig.rechargePlayerLevelMap.floorEntry(saveAmt); + double saveAmt = rechargeInfo.getSaveAmt(); + Map.Entry entry = SRechargeCommodityConfig.rechargePlayerLevelMap.floorEntry((int)saveAmt); SRechargeCommodityConfig orDefault = STableManager.getConfig(SRechargeCommodityConfig.class).getOrDefault(entry.getValue(), null); if(orDefault==null){ return; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java index 74674defb..6035c8bfc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java @@ -8,6 +8,7 @@ import com.ljsd.jieling.logic.dao.root.User; import config.SMonthcardConfig; import config.SPrivilegeTypeConfig; import manager.STableManager; +import util.MathUtils; import util.TimeUtils; import java.util.*; @@ -85,7 +86,7 @@ public class PlayerManager extends MongoBase { private int signTotay;//今天是否签到 - private int rechargedaily; + private double rechargedaily; private long onlineTime; @@ -487,17 +488,17 @@ public class PlayerManager extends MongoBase { return signTotay; } - public int getRechargedaily() { + public double getRechargedaily() { return rechargedaily; } - public void setRechargedaily(int rechargedaily) { + public void setRechargedaily(double rechargedaily) { updateString("rechargedaily", rechargedaily); this.rechargedaily = rechargedaily; } - public void addRechargedaily(int rechargedaily) { - this.rechargedaily += rechargedaily; + public void addRechargedaily(double rechargedaily) { + this.rechargedaily = MathUtils.doubleAdd(rechargedaily,this.rechargedaily); updateString("rechargedaily", this.rechargedaily); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/RechargeInfo.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/RechargeInfo.java index 2d838b62c..5f68540c2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/RechargeInfo.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/RechargeInfo.java @@ -9,10 +9,12 @@ import java.util.*; public class RechargeInfo extends MongoBase{ - private int saveAmt;//累计充值 + private double saveAmt;//累计充值 private int soulCrystalAmt;//累计充值购买魂晶 - private int monthSaveAmt ; //月卡累计总额 - private int smonthSaveAmt ; //豪华月卡累计总额 + + private double monthSaveAmt ; //月卡累计总额 + private double smonthSaveAmt ; //豪华月卡累计总额 + private int isFirst; private long createTime; private int isDayFirst; @@ -95,7 +97,7 @@ public class RechargeInfo extends MongoBase{ return false; } - public void setSaveAmt(int saveAmt){ + public void setSaveAmt(double saveAmt){ if(this.saveAmt == 0){ createTime = System.currentTimeMillis(); updateString("createTime",createTime); @@ -143,7 +145,7 @@ public class RechargeInfo extends MongoBase{ } - public int getSaveAmt() { + public double getSaveAmt() { return saveAmt; } @@ -180,14 +182,14 @@ public class RechargeInfo extends MongoBase{ this.goodseSendDailyMap.put(goodsType,sendTime); } - public int getSoulCrystalAmt() { - return soulCrystalAmt; - } - - public void addSoulCrystalAmt(int soulCrystalAmt) { - this.soulCrystalAmt += soulCrystalAmt; - updateString("soulCrystalAmt",soulCrystalAmt); - } +// public int getSoulCrystalAmt() { +// return soulCrystalAmt; +// } +// +// public void addSoulCrystalAmt(int soulCrystalAmt) { +// this.soulCrystalAmt += soulCrystalAmt; +// updateString("soulCrystalAmt",soulCrystalAmt); +// } public Map getTypeBagMap() { return typeBagMap; @@ -243,20 +245,20 @@ public class RechargeInfo extends MongoBase{ updateString("refreshBagMap", refreshBagMap); } - public int getMonthSaveAmt() { + public double getMonthSaveAmt() { return monthSaveAmt; } - public void setMonthSaveAmt(int monthSaveAmt) { + public void setMonthSaveAmt(double monthSaveAmt) { this.monthSaveAmt = monthSaveAmt; updateString("monthSaveAmt",monthSaveAmt); } - public int getSmonthSaveAmt() { + public double getSmonthSaveAmt() { return smonthSaveAmt; } - public void setSmonthSaveAmt(int smonthSaveAmt) { + public void setSmonthSaveAmt(double smonthSaveAmt) { this.smonthSaveAmt = smonthSaveAmt; updateString("smonthSaveAmt",smonthSaveAmt); } 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 5794ba83d..d3a81b767 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 @@ -938,8 +938,8 @@ public class PlayerLogic { STableManager.getConfig(SMonthcardConfig.class).forEach((integer, sMonthcardConfig) -> { int time = playerInfoManager.getMonthCard().getOrDefault(integer,0); int state = playerInfoManager.getMonthCardDailyTake().contains(integer)?1:0; - int saveAmt = integer==1?rechargeInfo.getMonthSaveAmt():rechargeInfo.getSmonthSaveAmt(); - cardInfos.add(CommonProto.MonthCardInfo.newBuilder().setId(integer).setEndingTime(time).setState(state).setTotleAmt(saveAmt).build()); + double saveAmt = integer==1?rechargeInfo.getMonthSaveAmt():rechargeInfo.getSmonthSaveAmt(); + cardInfos.add(CommonProto.MonthCardInfo.newBuilder().setId(integer).setEndingTime(time).setState(state).setTotleAmt((int)saveAmt).build()); }); return cardInfos; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java index a465f9a2a..f7868dbd2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java @@ -39,9 +39,11 @@ import config.*; import manager.STableManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import util.MathUtils; import util.StringUtil; import util.TimeUtils; +import java.math.BigDecimal; import java.util.*; /** @@ -73,12 +75,12 @@ public class BuyGoodsLogic { } MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.TEST_BUY_GIGT_GOODS_RESPONSE_VALUE,null,true); Result result = sendGoods(uid, goodsId, "gm-test", "111111", System.currentTimeMillis(), -999); - User user = UserManager.getUser(uid); - int price =sRechargeCommodityConfig.getPrice(); - int isDiscount = sRechargeCommodityConfig.getIsDiscount(); - if(isDiscount!=0){ - price=(int)(sRechargeCommodityConfig.getPrice() * (10 + isDiscount)/10f); - } +// User user = UserManager.getUser(uid); +// int price =sRechargeCommodityConfig.getPrice(); +// int isDiscount = sRechargeCommodityConfig.getIsDiscount(); +// if(isDiscount!=0){ +// price=(int)(sRechargeCommodityConfig.getPrice() * (10 + isDiscount)/10f); +// } List itemList = new ArrayList<>(); for(int[] item:sRechargeCommodityConfig.getBaseReward()){ itemList.add(item[0]); @@ -108,7 +110,7 @@ public class BuyGoodsLogic { if(buyCount ==null){ buyCount = 0; } - int price =sRechargeCommodityConfig.getPrice(); + double price =sRechargeCommodityConfig.getPrice(); buyCount=buyCount+1; //time check @@ -171,11 +173,11 @@ public class BuyGoodsLogic { int monthline = STableManager.getConfig(SMonthcardConfig.class).get(Global.MONTHCARDID).getPrice(); int lmonthline = STableManager.getConfig(SMonthcardConfig.class).get(Global.LMONTHCARDID).getPrice(); boolean sendneed =false; - if(rechargeInfo.getMonthSaveAmt()=monthline){ + if(rechargeInfo.getMonthSaveAmt()=monthline){ sendneed=true; user.getPlayerInfoManager().getMonthCard().put(Global.MONTHCARDID, (int) (System.currentTimeMillis() / 1000)); } - if(rechargeInfo.getSmonthSaveAmt()=lmonthline){ + if(rechargeInfo.getSmonthSaveAmt()=lmonthline){ sendneed=true; user.getPlayerInfoManager().getMonthCard().put(Global.LMONTHCARDID, (int) (System.currentTimeMillis() / 1000)); Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.RECHARGE_BUY.getType(),Global.LMONTHCARDID)); @@ -247,30 +249,31 @@ public class BuyGoodsLogic { rewardStr = ItemUtil.getMailReward(baseReward); } if(sRechargeCommodityConfig.getAccumulativeRecharge() == 1){ - int saveAmt = rechargeInfo.getSaveAmt(); - if(!StringUtil.isEmpty(rewardStr)){ - int[][] costItemArr = StringUtil.parseFiledInt2(rewardStr); - for (int i = 0; i Date: Fri, 14 Aug 2020 23:18:18 +0800 Subject: [PATCH 11/13] =?UTF-8?q?=E5=85=85=E5=80=BC=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E6=9B=B4=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/store/BuyGoodsLogic.java | 4 +- .../src/main/java/config/SExchangeRate.java | 67 +++++++++++++++++++ 2 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 tablemanager/src/main/java/config/SExchangeRate.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java index f7868dbd2..89320f87f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java @@ -110,7 +110,9 @@ public class BuyGoodsLogic { if(buyCount ==null){ buyCount = 0; } - double price =sRechargeCommodityConfig.getPrice(); + double priceTemp =sRechargeCommodityConfig.getPrice(); + SExchangeRate sExchangeRate = STableManager.getConfig(SExchangeRate.class).get(priceTemp); + double price = sExchangeRate.getPrice_2(); buyCount=buyCount+1; //time check diff --git a/tablemanager/src/main/java/config/SExchangeRate.java b/tablemanager/src/main/java/config/SExchangeRate.java new file mode 100644 index 000000000..7fa7c8ad3 --- /dev/null +++ b/tablemanager/src/main/java/config/SExchangeRate.java @@ -0,0 +1,67 @@ +package config; + +import manager.STableManager; +import manager.Table; + +import java.util.Map; + +@Table(name ="ExchangeRate") +public class SExchangeRate implements BaseConfig { + + private int id; + + private int price_1; + + private float price_2; + + private float price_3; + + private float price_4; + + private float price_5; + + private float price_6; + + private float price_7; + + + @Override + public void init() throws Exception { + + } + + + public int getId() { + return id; + } + + public int getPrice_1() { + return price_1; + } + + public float getPrice_2() { + return price_2; + } + + public float getPrice_3() { + return price_3; + } + + public float getPrice_4() { + return price_4; + } + + public float getPrice_5() { + return price_5; + } + + public float getPrice_6() { + return price_6; + } + + public float getPrice_7() { + return price_7; + } + + +} \ No newline at end of file From 47bfc8c339139221c9010db521d0aaae150b1afd Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Fri, 14 Aug 2020 23:19:12 +0800 Subject: [PATCH 12/13] =?UTF-8?q?=E5=85=85=E5=80=BC=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E6=9B=B4=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/kefu/Cmd_changename.java | 111 ------------------ 1 file changed, 111 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_changename.java b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_changename.java index 02d60de2b..ed1d423c3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_changename.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_changename.java @@ -85,118 +85,7 @@ public class Cmd_changename extends GmRoleAbstract { } } if("recharge".equals(args[2])){ - Gson gson = new Gson(); - Map rechargeInfoMap = new HashMap<>(); - - Map realBuyGoodsTimes = new HashMap<>(); - Map hotGoods = new HashMap<>(); - rechargeInfoMap= gson.fromJson(args[3],rechargeInfoMap.getClass()); - String rechargeInfoFileStr = rechargeInfoMap.get(String.valueOf(user.getId())); - if(rechargeInfoFileStr == null){ - return false; - } - RechargeInfo rechargeInfoFile = gson.fromJson(rechargeInfoFileStr,RechargeInfo.class); - realBuyGoodsTimes = rechargeInfoFile.getBuyGoodsTimes(); - hotGoods=new HashMap<>(realBuyGoodsTimes); - Map oldBuyGoodsTimes = user.getPlayerInfoManager().getRechargeInfo().getBuyGoodsTimes(); - - for (Map.Entry entry:oldBuyGoodsTimes.entrySet() ) { - if(realBuyGoodsTimes.containsKey(entry.getKey())){ - int finalvalue = realBuyGoodsTimes.get(entry.getKey())-entry.getValue(); - - if(finalvalue==0){ - realBuyGoodsTimes.remove(entry.getKey()); - }else if(finalvalue>0){ - realBuyGoodsTimes.put(entry.getKey(),finalvalue); - }else { - //日志记录不对 - LOGGER.info("cmd_________recharge:err"); - return false; - } - - } - } - - int hotRechargeMoney = 0; - for (Map.Entry entry:realBuyGoodsTimes.entrySet()) { - if(entry.getKey()==1||entry.getKey()==2||entry.getKey()==3||entry.getKey()==4||entry.getKey()==5||entry.getKey()==13||entry.getKey()==14||entry.getKey()==15||entry.getKey()==16){ - SRechargeCommodityConfig sRechargeCommodityConfig = SRechargeCommodityConfig.rechargeCommodityConfigMap.get(entry.getKey()); - int price =sRechargeCommodityConfig.getPrice(); - hotRechargeMoney+=entry.getValue()*price; - } - } - - //月卡 - boolean mulvip =false; - if(realBuyGoodsTimes.containsKey(9)||realBuyGoodsTimes.containsKey(10)||realBuyGoodsTimes.containsKey(11)){ - mulvip =true; - } - - - RechargeInfo rechargeInfo = user.getPlayerInfoManager().getRechargeInfo(); - int saveAmt = rechargeInfo.getSaveAmt(); - - - //成长礼金 - if(realBuyGoodsTimes.containsKey(7)||realBuyGoodsTimes.containsKey(8)){ - // if(!user.getActivityManager().getActivityMissionMap().containsKey(6)){ - ActivityLogic.getInstance().openActivityReallyOpen(user, ActivityType.GrowthFund); - //} - } -// int[][] costItemArr = StringUtil.parseFiledInt2(rewardStr); -// for (int i = 0; i goodsDurationMap = user.getPlayerInfoManager().getRechargeInfo().getGoodsDurationMap(); - Integer nowTime =(int)(System.currentTimeMillis()/1000); - for(Integer goodsId : hotGoods.keySet()){ - if(goodsDurationMap.containsKey(goodsId)){ - LOGGER.info("the uid={} already send the goods={}",user.getId(),goodsId); - continue; - } - SRechargeCommodityConfig sRechargeCommodityConfig = SRechargeCommodityConfig.rechargeCommodityConfigMap.get(goodsId); - int goodsType = sRechargeCommodityConfig.getType(); - if(goodsType == GiftGoodsType.MONTHCARD || goodsType == GiftGoodsType.LUXURYMONTHCARD || goodsType == GiftGoodsType.WEEKCARD){ - Integer endTime = null; - boolean needSendMail = false; - for(Map.Entry goodsDurationItem : goodsDurationMap.entrySet()){ - if(SRechargeCommodityConfig.rechargeCommodityConfigMap.get(goodsDurationItem.getKey()).getType() == goodsType){ - endTime = goodsDurationItem.getValue(); - } - } - if(endTime == null || nowTime>endTime){ - endTime = nowTime; - needSendMail = true; - } - - endTime +=sRechargeCommodityConfig.getContiueDays() * 24 * 3600; - rechargeInfo.updateGoodsTypeDuration(sRechargeCommodityConfig.getId(),endTime); - if(needSendMail){ - int[] openPrivilege = sRechargeCommodityConfig.getOpenPrivilege(); - if(openPrivilege!=null && openPrivilege.length>0){ - for(int privilege:openPrivilege){ - user.getPlayerInfoManager().addVipInfo(privilege); - } - } - } - } - } - - - - user.getPlayerInfoManager().getRechargeInfo().setBuyGoodsTimes(hotGoods); - - LOGGER.info("cmd_________recharge:hotRechargeMoney"+hotRechargeMoney+"重复月卡:"+mulvip); } } From 0a162ccce7ab3fee90bda706389353cc4912483f Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Fri, 14 Aug 2020 23:41:23 +0800 Subject: [PATCH 13/13] =?UTF-8?q?=E5=85=85=E5=80=BC=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E6=9B=B4=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java | 2 +- .../main/java/com/ljsd/jieling/logic/player/PlayerLogic.java | 2 +- .../src/main/java/com/ljsd/jieling/util/CBean2Proto.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) 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 bd9249d88..4316b8140 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -172,7 +172,7 @@ public class GetPlayerInfoHandler extends BaseHandler{ .setQuestionState(questState) .setSoulEquipPool(equipPool) .addAllPlayedMapTypes(mapManager.getPlayedMapType()) - .setAmount((int) rechargeInfo.getSaveAmt()) + .setAmount(rechargeInfo.getSaveAmt()) .setVipDaily(playerInfoManager.getHadTakeDailyBoxVip()) .setMissingRefreshCount(vipPrivilageValue) .addAllMonthinfos(PlayerLogic.getInstance().getMonthCardInfo(user)) 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 d3a81b767..88ac6a620 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 @@ -939,7 +939,7 @@ public class PlayerLogic { int time = playerInfoManager.getMonthCard().getOrDefault(integer,0); int state = playerInfoManager.getMonthCardDailyTake().contains(integer)?1:0; double saveAmt = integer==1?rechargeInfo.getMonthSaveAmt():rechargeInfo.getSmonthSaveAmt(); - cardInfos.add(CommonProto.MonthCardInfo.newBuilder().setId(integer).setEndingTime(time).setState(state).setTotleAmt((int)saveAmt).build()); + cardInfos.add(CommonProto.MonthCardInfo.newBuilder().setId(integer).setEndingTime(time).setState(state).setTotleAmt(saveAmt).build()); }); return cardInfos; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java index 69af6dcf3..808e4d1b3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -43,7 +43,7 @@ public class CBean2Proto { .setServerTime((int) (System.currentTimeMillis() / 1000)) .setMaxForce(playerManager.getMaxForce()) .setRechargeTime((int) (rechargeInfo.getCreateTime() / 1000)) - .setSaveAmt((int)(rechargeInfo.getSaveAmt())) + .setSaveAmt((rechargeInfo.getSaveAmt())) .setIsFirstRecharge(rechargeInfo.getIsFirst()) .setHeadFrame(playerManager.getHeadFrame()) .setDesignation(playerManager.getDesignation())