Merge branch 'master_test_gn' of http://60.1.1.230/backend/jieling_server into master_test_gn

back_recharge
jiahuiwen 2021-12-14 17:58:42 +08:00
commit edf251cd1f
3 changed files with 62 additions and 2 deletions

View File

@ -2,10 +2,19 @@ package com.ljsd.jieling.handler;
import com.ljsd.jieling.exception.ErrorCode;
import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.hero.HeroLogic;
import com.ljsd.jieling.logic.hero.HongMengFunctionEnum;
import com.ljsd.jieling.logic.item.ItemLogic;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.util.ItemMap;
import com.ljsd.jieling.util.ItemUtil;
import com.sun.javafx.collections.MappingChange;
import config.SItem;
import config.SMainLevelConfig;
import config.SRewardGroup;
import rpc.protocols.CommonProto;
import rpc.protocols.MessageTypeProto;
import rpc.protocols.PlayerInfoProto;
@ -14,7 +23,9 @@ import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component
public class UseAndPriceItemHandler extends BaseHandler<PlayerInfoProto.UseAndPriceItemRequest> {
@ -55,8 +66,52 @@ public class UseAndPriceItemHandler extends BaseHandler<PlayerInfoProto.UseAndPr
ItemLogic.getInstance().decomposeJewel(iSession,equipIdsList);
}else if(type==6){
ItemLogic.getInstance().useItem(iSession,itemList,useAndPriceItemRequest.getItemId());
}else{
}else if (type==7){//资源包 可以获取指定挂机奖励
int itemId=useAndPriceItemRequest.getItemsList().get(0).getItemId();
long useNum=useAndPriceItemRequest.getItemsList().get(0).getItemNum();
int[][]rewardArr=SItem.getsItemMap().get(itemId).getUseGain();
int uid = iSession.getUid();
User user = UserManager.getUser(uid);
long[][]dropArr=useItemGetHookReward(user,rewardArr,useNum);
ItemUtil.drop(user,dropArr,BIReason.USER_ITEM);
}
else{
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}
}
/**
* 使
* @param user
* @param itemDropTime
* @return
* @throws ErrorCodeException
*/
public long[][] useItemGetHookReward(User user, int[][] itemDropTime,long useNum)throws ErrorCodeException{
long[][]dropArr=new long[itemDropTime.length][2];
int index=0;
for (int i = 0; i < itemDropTime.length; i++) {
int itemId=itemDropTime[i][0];
int dropRatio=itemDropTime[i][1];
ItemMap itemObj=new ItemMap();
int fightId = user.getMainLevelManager().getFightId();
SMainLevelConfig targetMainLevelConfig = SMainLevelConfig.config.get(fightId);
int[] randomRewardMin = targetMainLevelConfig.getRandomRewardMin();
for (int dropGroupId : randomRewardMin) {
SRewardGroup sRewardGroup = SRewardGroup.getsRewardItemMap().get(dropGroupId);
if (sRewardGroup == null) {
continue;
}
ItemUtil.selectDrop(user, sRewardGroup, itemObj, dropRatio);
}
ItemUtil.extraAddItem(user,itemObj.getItemMap(), BIReason.ADVENTURE_BASE_REWARD);
if (itemObj.getItemMap().containsKey(itemId)){
dropArr[index][0]=itemId;
dropArr[index][1]=itemObj.getItemMap().get(itemId)*useNum;
index++;
}
}
return dropArr;
}
}

View File

@ -395,7 +395,7 @@ public class ItemUtil {
getMap((int)items[0],items[1],itemObj,1);
}
}
private static void selectDrop(User user, SRewardGroup sRewardGroup,ItemMap itemObj, float dropRatio)throws ErrorCodeException {
public static void selectDrop(User user, SRewardGroup sRewardGroup,ItemMap itemObj, float dropRatio)throws ErrorCodeException {
String dropInfo = dropRewardMap.get(sRewardGroup.getId());
String rewardStr = dropInfo.split("\\|")[0];
String weight = dropInfo.split("\\|")[1];

View File

@ -31,6 +31,7 @@ public class SItem implements BaseConfig {
private int[][] extraReward;
private int recycle;
private int[][] useGain;
private String name;
@ -123,4 +124,8 @@ public class SItem implements BaseConfig {
public int getRecycle() {
return recycle;
}
public int[][] getUseGain() {
return useGain;
}
}