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 053deab93..f98d4ad48 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -92,6 +92,7 @@ public interface BIReason { int SYSTERM_OPEN_REWARD = 56; //系统开放奖励 int HERO_BACK_REWARD = 57; // 英雄回溯返回东西 + int EXTRA_DROP_REWARD = 58; // 额外赠送 //道具消耗原因 1000开头 int ADVENTURE_UPLEVEL_CONSUME = 1000; //秘境升级 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java index cc3529b6a..7ddaf4fd3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java @@ -23,6 +23,7 @@ public interface GlobalItemType { int CHANGE_NAME_CARD = 12;//改名道具卡 int SOUL_MARK =13;// 魂印 int ESPECIAL_EQUIP = 14;//法宝 + int HEAD = 15;//法宝 //物品使用类型 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 b24439129..57a28ad21 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 @@ -58,7 +58,7 @@ public class DefaultEmptyActivity extends AbstractActivity{ }else if(sGlobalActivity.getType() == ActivityType.EXCHANGEANDDROP){ int shopId = sGlobalActivity.getShopId(); SStoreConfig sStoreConfig = SStoreConfig.getSstoreConfigBuyStore().get(shopId).get(0); - int removeItemId = sStoreConfig.getCost()[0][1]; + int removeItemId = sStoreConfig.getCost()[0][0]; Item item = user.getItemManager().getItem(removeItemId); if(item!=null){ int[][] cost= new int[1][]; 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 429941e51..d91c212fe 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -444,6 +444,7 @@ public class ItemUtil { case GlobalItemType.HEAD_FRAME: case GlobalItemType.SecretBox: case GlobalItemType.CHANGE_NAME_CARD: + case GlobalItemType.HEAD: itemType = GlobalItemType.ITEM; break; case GlobalItemType.RANDOM_ITME: @@ -518,6 +519,7 @@ public class ItemUtil { if(sItem.getId() == Global.TREASURE_SCORE){ treasureLevelUp(user); } + extraDropAop(user,dropBuilder,sItem); sendToFront.add(CBean2Proto.getItem(item,-1)); } if (dropBuilder != null) { @@ -1063,6 +1065,8 @@ public class ItemUtil { continue; } addCard(user, entry.getKey(),heroList,reason); + SItem sItem = SItem.getsItemMap().get(entry.getKey()); + extraDropAop(user,dropBuilder,sItem); } } if (reward.length() > 0) { @@ -1073,6 +1077,23 @@ public class ItemUtil { dropBuilder.addAllHero(heroList); } + private static void extraDropAop(User user,CommonProto.Drop.Builder dropBuilder,SItem sItem) throws Exception { + if(sItem.getExtraReward()!=null && sItem.getExtraReward().length>1){ + int[] drops = sItem.getExtraReward()[1]; + if(user.getItemManager().getItem(drops[0]) == null){ + int[][] extraDrops = new int[1][2]; + extraDrops[0] = new int[2]; + extraDrops[0][0] = drops[0]; + extraDrops[0][1] =1; + if(sItem.getExtraReward()[0][0] == 0){ + drop(user,extraDrops,BIReason.EXTRA_DROP_REWARD); + }else{ + drop(user,extraDrops,dropBuilder,BIReason.EXTRA_DROP_REWARD); + } + } + } + } + public static void addCard(User user,int cardId,List heroList,int reason) throws Exception { HeroManager heroManager = user.getHeroManager(); PlayerManager playerInfoManager = user.getPlayerInfoManager();