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 4f80ad2c6..edaaba1a1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -359,5 +359,6 @@ public interface BIReason { int SEVEN_WORLD_TREASURE = 1214;//七界秘宝 + int LEVEL_UP_REWARD = 1220;// 玩家升级赠与的道具 } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java index dcf2c5e04..9971c2c06 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java @@ -492,7 +492,17 @@ public class StoreLogic implements IEventHandler { for(int i=0;i= 1000) { + i = 0; + Thread.sleep(100); + } } } catch (InterruptedException e) { e.printStackTrace(); 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 6a0e79a72..3aa1c5d3a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -861,7 +861,7 @@ public class ItemUtil { if (sPlayerLevelConfig == null) { throw new ErrorCodeException("服务器表配置错误"); } - + List levelUpRewards = new ArrayList<>(); int levelUpExp = sPlayerLevelConfig.getExp(); // 循环,直到经验不足继续升级或者等级最高 while (exp >= levelUpExp && playerInfoManager.getLevel() < maxLevel.getPlayerLv()) { @@ -892,8 +892,16 @@ public class ItemUtil { levelUpExp = sPlayerLevelConfig.getExp(); // 玩家升级报送 Repot37EventUtil.onKtEvent(user, Repot37EventUtil.Report37EventType.ROLE_LEVEUP_EVENT); + // 升级赠送道具 + int[][] levelUpReward = sPlayerLevelConfig.getLevelUpReward(); + if (levelUpReward != null && levelUpReward.length > 0) { + levelUpRewards.add(levelUpReward); + } + } + CommonProto.Drop.Builder drop = null; + if (!levelUpRewards.isEmpty()) { + drop = ItemUtil.drop(user, levelUpRewards, BIReason.LEVEL_UP_REWARD); } - // 更新经验 playerInfoManager.setExp((int) exp); @@ -905,9 +913,14 @@ public class ItemUtil { // 在线玩家消息推送 ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); - if(sessionByUid!=null){ - PlayerInfoProto.UpdateUserExpIndicaiton build = PlayerInfoProto.UpdateUserExpIndicaiton.newBuilder().setExp((int)playerInfoManager.getExp()).setLevel(playerInfoManager.getLevel()).build(); - MessageUtil.sendIndicationMessage(sessionByUid,1, MessageTypeProto.MessageType.UPDATE_USER_EXP_INDICATION_VALUE,build,true); + if (sessionByUid != null) { + PlayerInfoProto.UpdateUserExpIndicaiton.Builder build = PlayerInfoProto.UpdateUserExpIndicaiton.newBuilder(); + build.setExp((int) playerInfoManager.getExp()); + build.setLevel(playerInfoManager.getLevel()); + if (drop != null) { + build.setDrop(drop); + } + MessageUtil.sendIndicationMessage(sessionByUid, 1, MessageTypeProto.MessageType.UPDATE_USER_EXP_INDICATION_VALUE, build.build(), true); } } diff --git a/tablemanager/src/main/java/config/SPlayerLevelConfig.java b/tablemanager/src/main/java/config/SPlayerLevelConfig.java index aef5b4325..361bee3fd 100644 --- a/tablemanager/src/main/java/config/SPlayerLevelConfig.java +++ b/tablemanager/src/main/java/config/SPlayerLevelConfig.java @@ -21,6 +21,14 @@ public class SPlayerLevelConfig implements BaseConfig { private int mazeTreasureMax; + private int goldExtraNum1; + + private int goldExtraNum2; + + private int goldExtraNum3; + + private int[][] levelUpReward; + @Override public void init() throws Exception { @@ -52,6 +60,22 @@ public class SPlayerLevelConfig implements BaseConfig { return mazeTreasureMax; } + public int getGoldExtraNum1() { + return goldExtraNum1; + } + + public int getGoldExtraNum2() { + return goldExtraNum2; + } + + public int getGoldExtraNum3() { + return goldExtraNum3; + } + + public int[][] getLevelUpReward() { + return levelUpReward; + } + public static Map getsPlayerLevelConfigMap() { return sPlayerLevelConfigMap; }