diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SGameSetting.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SGameSetting.java index 0dc080e38..fc56cb899 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/SGameSetting.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SGameSetting.java @@ -61,6 +61,12 @@ public class SGameSetting implements BaseConfig { private int equipCompoundLimit; + private int[] dailyGift; + + private int recoveryTime; + + private int heroTimes; + private static SGameSetting gameSetting; @@ -164,4 +170,17 @@ public class SGameSetting implements BaseConfig { public int getAdventureOffline() { return adventureOffline; } + + public int[] getDailyGift() { + return dailyGift; + } + + + public int getRecoveryTime() { + return recoveryTime; + } + + public int getHeroTimes() { + return heroTimes; + } } \ No newline at end of file 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 b5db9b388..ac6c7f437 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -42,5 +42,7 @@ public interface BIReason { int GM_REWARD = 28; //gm加成 + int VIP_DAY_REWARD = 29; //VIP 每日赠送 + } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/Global.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/Global.java index c4735026e..4461596dd 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/Global.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/Global.java @@ -2,6 +2,8 @@ package com.ljsd.jieling.globals; public interface Global { int STAMINA = 2; // 体力id + int HEROSTORY_TICKET = 28; //精英入场券 + int GENERALSTORY_TICKET = 27; //普通入场券 int GEM = 16; // 妖精id int SEND_CARD_COUNT = 20; // 每页发送卡牌个数 int SEND_ITEM_COUNT = 200; // 每页发送道具个数 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 4148f4760..2c4cd799e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -7,6 +7,7 @@ import com.ljsd.jieling.logic.arena.ArenaLogic; import com.ljsd.jieling.logic.dao.PlayerManager; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.player.PlayerLogic; import com.ljsd.jieling.logic.store.StoreLogic; import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; @@ -58,7 +59,7 @@ public class GetPlayerInfoHandler extends BaseHandler{ StoreLogic.resetStoreRefreshNum(userId); //竞技场免费次数刷新 ArenaLogic.getInstance().flushFreeUseTimes(user); - playerInfoManager.vipFlush(); + PlayerLogic.getInstance().vipflushEveryDay(user); } playerInfoManager.setLoginTime(TimeUtils.now()); 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 1e39d987a..0b876a688 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 @@ -176,6 +176,29 @@ public class MapManager extends MongoBase { } + public static void getHeroTicket(User user) throws Exception { + Item item = user.getItemManager().getItemMap().get(Global.HEROSTORY_TICKET); + if(item == null){ + return; + } + int itemNum = item.getItemNum(); + int updateTime = (int) (System.currentTimeMillis() / 1000); + int lastUpdateEnergyTime = item.getEndingTime(); + int recoveryTime = SGameSetting.getGameSetting().getRecoveryTime(); + int heroTimes = SGameSetting.getGameSetting().getHeroTimes(); + int recoveryTimes = (updateTime - lastUpdateEnergyTime)/recoveryTime; + if(itemNum0){ + int addValue = MathUtils.setBetweenWithMax(itemNum+recoveryTimes,0,heroTimes); + if(addValue!=0){ + item.setItemNum(addValue); + setLastUpdateEnergyTime(item, updateTime, lastUpdateEnergyTime); + } + }else{ + setLastUpdateEnergyTime(item, updateTime, lastUpdateEnergyTime); + } + } + + public static void getEnergy(User user) throws Exception { PlayerManager playerInfoManager = user.getPlayerInfoManager(); 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 db87a2be9..bbe58cff3 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 @@ -1,11 +1,13 @@ package com.ljsd.jieling.logic.player; +import com.ljsd.jieling.config.SGameSetting; import com.ljsd.jieling.config.SRandomName; import com.ljsd.jieling.config.SVipLevelConfig; import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.db.redis.RedisKey; import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.logic.dao.Item; import com.ljsd.jieling.logic.dao.PlayerManager; import com.ljsd.jieling.logic.dao.TeamPosManager; import com.ljsd.jieling.logic.dao.UserManager; @@ -207,4 +209,28 @@ public class PlayerLogic { } MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.USER_FORCE_CHANGE_RESPONSE_VALUE,null,true); } + + public void vipflushEveryDay(User user) throws Exception { + PlayerManager playerInfoManager = user.getPlayerInfoManager(); + playerInfoManager.vipFlush(); + int vipLevel = user.getPlayerInfoManager().getVipLevel(); + SVipLevelConfig sVipLevelConfig = SVipLevelConfig.getsVipLevelConfigMap().get(vipLevel); + Map privilegeMap = sVipLevelConfig.getPrivilegeMap(); + int[] dailyGift = SGameSetting.getGameSetting().getDailyGift(); + + if(privilegeMap!=null&&privilegeMap.containsKey(dailyGift[1])){ + Item item = user.getItemManager().getItem(dailyGift[0]); + Integer num = privilegeMap.get(dailyGift[1]); + int hadNum=0; + if(item!=null){ + hadNum=item.getItemNum(); + } + if(hadNum itemMap = new HashMap<>(1); + itemMap.put(dailyGift[0],num-hadNum); + ItemUtil.addItem(user,itemMap,null,BIReason.VIP_DAY_REWARD); + } + } + + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index b0e722df4..58f68d9ed 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -911,9 +911,9 @@ public class ItemUtil { } private static int parseTheValueByPrivilegeMap( Map privilegeMap,int sourceNum,int privigeId){ - Integer privigeValue = privilegeMap.get(1); + Integer privigeValue = privilegeMap.get(privigeId); if(privigeValue!=null){ - SPrivilegeTypeConfig sPrivilegeTypeConfig = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(1); + SPrivilegeTypeConfig sPrivilegeTypeConfig = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(privigeId); int dataType = sPrivilegeTypeConfig.getIfFloat(); if(dataType == GlobalsDef.PERCENT_TYPE){ sourceNum=(10000 + privigeValue) * sourceNum / 10000;