From 65747a5daf1eb35b1f4f6e08688c87f1e3ac03f9 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Wed, 29 May 2019 13:31:41 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AA=81=E7=A0=B4=E8=BF=94=E8=BF=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/config/SCHeroRankUpConfig.java | 2 ++ .../com/ljsd/jieling/config/SGameSetting.java | 4 +++ .../ljsd/jieling/logic/dao/PlayerManager.java | 6 +++++ .../jieling/logic/item/WorkShopLogic.java | 8 +++--- .../java/com/ljsd/jieling/util/ItemUtil.java | 27 +++++++++++++++++++ 5 files changed, 42 insertions(+), 5 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SCHeroRankUpConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SCHeroRankUpConfig.java index 567a48a57..e4a5bdd11 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/SCHeroRankUpConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SCHeroRankUpConfig.java @@ -33,6 +33,8 @@ public class SCHeroRankUpConfig implements BaseConfig{ private int show; + private int[][] sumConsume; + @Override public void init() throws Exception { Map>> result = new TreeMap<>(); 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 167bead26..0dc080e38 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/SGameSetting.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SGameSetting.java @@ -57,6 +57,10 @@ public class SGameSetting implements BaseConfig { private int adventureBaseRewardPrivilege; private int adventureFastBattlePrivilege; + private float smeltReturnDiscount; + + private int equipCompoundLimit; + private static SGameSetting gameSetting; 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 ffc3280ed..1da8b5350 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 @@ -239,6 +239,12 @@ public class PlayerManager extends MongoBase { return false; } Integer limitNum = sVipLevelConfig.getPrivilegeMap().get(privilageId); + if(limitNum == null){ + return false; + } + if(!vipInfo.containsKey(privilageId)){ + vipInfo.put(privilageId,0); + } if(vipInfo.get(privilageId) + updateNum > limitNum){ return false; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/WorkShopLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/WorkShopLogic.java index 5c6765f91..14b6a688c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/WorkShopLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/WorkShopLogic.java @@ -276,20 +276,18 @@ public class WorkShopLogic { int[][] costs = new int[costLength][]; if(costMineral!=null && costMineral.length>0){ costs[--costLength] =costMineral; - costs[costLength][1] = costs[costLength][1]*nums; } if(runneIdsList.size() ==0){ runneIdsList =new ArrayList<>(specialRunes.length); } for(Integer runneId : runneIdsList){ - costs[--costLength] = new int[]{runneId, nums}; + costs[--costLength] = new int[]{runneId, 1}; } for(int specialRunneId[] : specialRunes){ - costs[--costLength] = new int[]{specialRunneId[0],specialRunneId[1]*nums}; - runneIdsList.add(specialRunneId[0]); + costs[--costLength] = new int[]{specialRunneId[0],specialRunneId[1]}; } - boolean enoughCost = ItemUtil.itemCost(user,costs); + boolean enoughCost = ItemUtil.itemCost(user,costs,nums); if(!enoughCost){ MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.WORKSHOP_EQUIP_CREATE_RESPONSE_VALUE,"道具不足"); return; 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 4a6e39419..0de1e4170 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -686,6 +686,17 @@ public class ItemUtil { return true; } + public static boolean itemCost(User user,int[][] costItems,int times) throws Exception { + Map itemMap = new HashMap<>(); + selectCost(costItems,itemMap,times); + boolean result = checkCost(user, itemMap); + if (!result) { + return false; + } + useItem(user, itemMap); + return true; + } + public static boolean checkCost(User user, Map itemMap) throws Exception { if (itemMap == null) { return true; @@ -732,6 +743,22 @@ public class ItemUtil { } } + private static void selectCost(int[][] costItems, Map itemMap,int times) { + for (int[] costItem : costItems){ + int itemId = costItem[0]; + int itemNum = costItem[1]*times; + SItem sItem = SItem.getsItemMap().get(itemId); + int itemType = getItemType(sItem); + switch (itemType) { + case GlobalItemType.ITEM: + putcountMap(itemId,itemNum,itemMap); + break; + default: + break; + } + } + } + /** * 使用随机物品 * @param user