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 424077846..aef0070af 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java @@ -32,7 +32,8 @@ public interface GlobalItemType { int SELECTSecretBox=20; // 自选宝箱(前端要区分) int SpecialMonster=21; // 灵兽 int SpecialMonsterItem=22; // 灵兽碎片 - int HeroUpItem = 25;//进阶狗粮 + // 万能狗粮 + int AllPowerful_DogFood = 25; //物品使用类型 int NO_USE = 0 ; //不使用 int RANDOM_USE = 1; // 随机使用 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/UpHeroStarHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/UpHeroStarHandler.java index d8a7b767a..93b1000ac 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/UpHeroStarHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/UpHeroStarHandler.java @@ -10,6 +10,7 @@ import rpc.protocols.HeroInfoProto; import rpc.protocols.MessageTypeProto; import org.springframework.stereotype.Component; +import java.util.ArrayList; import java.util.List; @Component @@ -36,10 +37,14 @@ public class UpHeroStarHandler extends BaseHandler heroIdsList = consumeMaterialsList.get(i).getHeroIdsList(); - String[] heroIds = new String[heroIdsList.size()]; - heroIdsList.toArray(heroIds); + for (HeroInfoProto.ConsumeMaterial material : consumeMaterialsList) { + List heroIdsList = new ArrayList<>(); + // 获取英雄id + material.getHeroIdsList().stream() + .filter(v->v.getType() == 1) + .forEach(v->heroIdsList.add(v.getItemId())); + String[] heroIds = heroIdsList.toArray(new String[0]); + // 验证神将是否可以消耗 useFunction = HeroLogic.getInstance().isUseFunction(iSession.getUid(), HongMengFunctionEnum.PASSIVE_EAT.getPropertyId(), heroIds); if (!useFunction){ throw new ErrorCodeException(ErrorCode.HONGMENG_ING); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java index f9ed13fe8..4bc8e1b87 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java @@ -3137,7 +3137,6 @@ public class MapLogic { CommonProto.Drop.Builder drop = ItemUtil.drop(user, sDailyChallengeConfig.getReward(), 1, 0, 1); builder.setDrop(drop); playerInfoManager.addDailyPass(id); - consumeCount = true; }else{ isFailed = true; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java index 3827f9f3e..646ea0c31 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java @@ -27,6 +27,7 @@ import com.ljsd.jieling.logic.player.PlayerLogic; import com.ljsd.jieling.network.server.GlobalidHelper; import com.ljsd.jieling.network.server.WorldHelper; import com.ljsd.jieling.network.session.ISession; +import org.luaj.vm2.lib.jse.JseMathLib; import rpc.protocols.ArenaInfoProto; import rpc.protocols.CommonProto; import rpc.protocols.FightInfoProto; @@ -569,31 +570,43 @@ public class ArenaLogic { } public String getRewardByRank(int rank,int type){ - Map config = STableManager.getConfig(SArenaReward.class); - for(SArenaReward sArenaReward : config.values()){ - int minRank = sArenaReward.getMinRank(); - int maxRank = sArenaReward.getMaxRank(); - if(rank>=minRank && rank<=maxRank){ - if(type == GlobalsDef.ARENA_DAILY_REWARD){ - int[][] dailyReward = sArenaReward.getDailyReward(); - return StringUtil.parseArrayToString(dailyReward); - }else{ - int[][] seasonReward = sArenaReward.getSeasonReward(); - return StringUtil.parseArrayToString(seasonReward); - } - } - } +// Map config = STableManager.getConfig(SArenaReward.class); +// for(SArenaReward sArenaReward : config.values()){ +// int minRank = sArenaReward.getMinRank(); +// int maxRank = sArenaReward.getMaxRank(); +// if(rank>=minRank && rank<=maxRank){ +// if(type == GlobalsDef.ARENA_DAILY_REWARD){ +// int[][] dailyReward = sArenaReward.getDailyReward(); +// return StringUtil.parseArrayToString(dailyReward); +// }else{ +// int[][] seasonReward = sArenaReward.getSeasonReward(); +// return StringUtil.parseArrayToString(seasonReward); +// } +// } +// } return ""; } public void updateArenaSeason(int curSeason){ this.curSeason = curSeason; + //初始化竞技场新周期数据 + if(curSeason>viewSeason){ + String oldRedisKey = RedisUtil.getInstence().getKey(RedisKey.ARENA_RANK,String.valueOf(viewSeason)); + String newRedisKey = RedisUtil.getInstence().getKey(RedisKey.ARENA_RANK,String.valueOf(curSeason)); + Set> set= RedisUtil.getInstence().getAllZsetRange(oldRedisKey); + for(ZSetOperations.TypedTuple item : set){ + String id = item.getValue(); + Double score = item.getScore(); + double time = score - score.intValue(); + double newScore =(int)(score.intValue()*0.8)+ time; + RedisUtil.getInstence().zsetAddOne(newRedisKey,id,newScore); + } + } if(this.curSeason!=0){ viewSeason = this.curSeason; } } - public void playWithSb(ISession session,int challengeUid,int myteamId) throws Exception { User mine = UserManager.getUser(session.getUid()); User defUser = UserManager.getUser(challengeUid); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java index cd413db03..1fc8ded0c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java @@ -22,6 +22,7 @@ public class HeroManager extends MongoBase { private Map mustRandomCount= new HashMap<>(); + private Map randomPoolInfo = new HashMap<>();//每个池子抽了多少次的信息 private Map heroHandBook = new HashMap<>(); private Set heroHandBookEnabled = new HashSet<>(); @@ -253,5 +254,13 @@ public class HeroManager extends MongoBase { } + public Map getRandomPoolInfo() { + return randomPoolInfo; + } + + public void addRandomPoolInfo(int poolId) { + randomPoolInfo.put(poolId,randomPoolInfo.getOrDefault(poolId,0)+1); + updateString("randomPoolInfo", randomPoolInfo); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index 413007f0c..2c66df7a2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -519,7 +519,8 @@ public class HeroLogic{ //是否有必出 int currStarId = 0; if(mustSet.isEmpty()){ - sLotteryRewardConfig = randomHeroByPoolId(getPooId(sLotterySetting), 1, user.getPlayerInfoManager().getLevel()); + int pooId = getPooId(sLotterySetting); + sLotteryRewardConfig = randomHeroByPoolId(pooId, user); // if(randomPoolByType.get(mergePool)!=null) { // for (int key : randomPoolByType.get(mergePool).keySet()) { // if (star == key) { @@ -530,7 +531,10 @@ public class HeroLogic{ // } // } // } - currStarId = sLotteryRewardConfig.getStar(); + if(sLotteryRewardConfig!=null){ + currStarId = sLotteryRewardConfig.getStar(); + LOGGER.info("随机到了{}-->对应star-->{}",sLotteryRewardConfig.getId(),currStarId); + } }else{ //有必出时比较各个优先级,取优先级高的 @@ -549,7 +553,7 @@ public class HeroLogic{ if(onConfig==null){ throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } - sLotteryRewardConfig = randomHeroByPoolId(onConfig.getpool_id(), 1, user.getPlayerInfoManager().getLevel()); + sLotteryRewardConfig = randomHeroByPoolId(onConfig.getpool_id(), user); currStarId = maxId; } if(randomPoolByType.get(mergePool)!=null) { @@ -558,6 +562,7 @@ public class HeroLogic{ //如果生效次数是0可重置 List lotteryListByDifferentType = SLotterySpecialConfig.getLotteryListByDifferentType(key); if (currStarId >= key && lotteryListByDifferentType != null && lotteryListByDifferentType.iterator().hasNext() && lotteryListByDifferentType.iterator().next().getMin_num() == 0) { + LOGGER.info("清除计数{}下的--->{}",mergePool,key); randomPoolByType.get(mergePool).put(key, 0); } else { int curValue = randomPoolByType.get(mergePool).getOrDefault(key, 0); @@ -567,6 +572,7 @@ public class HeroLogic{ } heroManager.updateRandomPoolByType(mergePool,randomPoolByType.get(mergePool)); int result = sLotteryRewardConfig.getId(); + heroManager.addRandomPoolInfo(sLotteryRewardConfig.getPool()); return result; } @@ -641,7 +647,7 @@ public class HeroLogic{ - public static SLotteryRewardConfig randomHeroByPoolId(int poolId,int randomCount,int userLevel){ + public static SLotteryRewardConfig randomHeroByPoolId(int poolId,User user){ List sLotteryRewardConfigs = new ArrayList<>(); List sLotteryRewardConfigListByPoolId = SLotteryRewardConfig.getSLotteryRewardConfigListByPoolId(poolId); int totalCountByPoolId =0; @@ -653,10 +659,10 @@ public class HeroLogic{ int openValue = openRules[1]; switch (openType) { case 1: - canAdd = randomCount > openValue; + canAdd = user.getHeroManager().getRandomPoolInfo().getOrDefault(poolId,0) > openValue; break; case 2: - canAdd = userLevel > openValue; + canAdd = user.getPlayerInfoManager().getLevel() > openValue; break; default: { break; @@ -990,81 +996,108 @@ public class HeroLogic{ if(consumeMaterialInfoByPosition ==null){ throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } - boolean canUse = true; - Set removeHeroIds = new HashSet<>(); + int needTotalHeroNums = 0; if(consumeMaterialInfoByPosition.size()!=consumeMaterialsList.size()){ throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH); } //判断编队 for(HeroInfoProto.ConsumeMaterial consumeMaterial1 : consumeMaterialsList) { - List heroIdsList = consumeMaterial1.getHeroIdsList(); - ErrorCode err = ItemLogic.getInstance().checkHeroResolve(heroIdsList, user); + List heroIdsList = new ArrayList<>(); + consumeMaterial1.getHeroIdsList().stream() + .filter(v->v.getType() == 1) + .forEach(v->heroIdsList.add(v.getItemId())); + ErrorCode err = null; + if (heroIdsList.size() > 0){ + err = ItemLogic.getInstance().checkHeroResolve(heroIdsList, user); + } if(null!=err){ throw new ErrorCodeException(err); } } + List removeHeroIds = new ArrayList<>(); + HashMap removeItemMap = new HashMap<>(); StringBuilder reportConsumeHero = new StringBuilder(); + for(HeroInfoProto.ConsumeMaterial consumeMaterial1 : consumeMaterialsList){ int position = consumeMaterial1.getPosition(); SCHero.ConsumeMaterialInfo consumeMaterialInfo = consumeMaterialInfoByPosition.get(position); int nums = consumeMaterialInfo.getNums(); needTotalHeroNums+=nums; - List heroIdsList = consumeMaterial1.getHeroIdsList(); + List list = consumeMaterial1.getHeroIdsList(); SHeroRankupGroup sHeroRankupGroup = STableManager.getConfig(SHeroRankupGroup.class).get(consumeMaterialInfo.getGroupID()); int isSame = sHeroRankupGroup.getIssame(); int starLimit = sHeroRankupGroup.getStarLimit(); int isSameClan = sHeroRankupGroup.getIsSameClan(); int isId = sHeroRankupGroup.getIsId(); - for(String consumeHero : heroIdsList){ - Hero hero = heroManager.getHero(consumeHero); - if( null == hero ){ - throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH); - } - //上报消耗的英雄数据 - if(reportConsumeHero.length()>0){ - reportConsumeHero.append("|"); - } - reportConsumeHero.append(hero.getTemplateId()).append("-").append(hero.getStar()).append("-").append(hero.getLevel(user.getHeroManager())); - - - if( 1 == isSame) { - if(hero.getTemplateId() != targetHero.getTemplateId()){ + // 万能道具代替 + List items = Arrays.stream(sHeroRankupGroup.getItems()).boxed().collect(Collectors.toList()); + // 专属道具代替 + int[][] itemCamp = sHeroRankupGroup.getItemCamp(); + for(HeroInfoProto.ConsumeItem consume : list){ + // 英雄 + if (consume.getType() == 1){ + Hero hero = heroManager.getHero(consume.getItemId()); + if( null == hero ){ throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH); } - } - - if( starLimit != 0 ) { - if(hero.getStar() != starLimit){ - throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH); + //上报消耗的英雄数据 + if(reportConsumeHero.length()>0){ + reportConsumeHero.append("|"); } - } + reportConsumeHero.append(hero.getTemplateId()).append("-").append(hero.getStar()).append("-").append(hero.getLevel(user.getHeroManager())); - if( 1 == isSameClan) { - SCHero scHeroTmp = SCHero.getsCHero().get(hero.getTemplateId()); - SCHero targetSHero = SCHero.getsCHero().get(targetHero.getTemplateId()); - if( scHeroTmp.getPropertyName() != targetSHero.getPropertyName() ){ - throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH); - } - } - if( isId != 0) { - if(hero.getTemplateId() != isId){ - throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH); + if( 1 == isSame) { + if(hero.getTemplateId() != targetHero.getTemplateId()){ + throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH); + } } + + if( starLimit != 0 ) { + if(hero.getStar() != starLimit){ + throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH); + } + } + + if( 1 == isSameClan) { + SCHero scHeroTmp = SCHero.getsCHero().get(hero.getTemplateId()); + SCHero targetSHero = SCHero.getsCHero().get(targetHero.getTemplateId()); + if( scHeroTmp.getPropertyName() != targetSHero.getPropertyName() ){ + throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH); + } + } + + if(isId != 0) { + if(hero.getTemplateId() != isId){ + throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH); + } + } + removeHeroIds.add(consume.getItemId()); + } + // 道具 + else { + int itemId = Integer.parseInt(consume.getItemId()); + if (!items.contains(itemId)){ + boolean camp = upStartItemCamp(scHero.getPropertyName(), itemCamp, itemId); + if (!camp){ + throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT); + } + } + Integer num = removeItemMap.getOrDefault(itemId, 0); + removeItemMap.put(itemId,num+1); } - removeHeroIds.add(consumeHero); } - + // 校验道具数量 + boolean cost = ItemUtil.checkCost(user, removeItemMap); + if (!cost){ + throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT); + } } - if(needTotalHeroNums!=removeHeroIds.size()){ - canUse=false; + if(needTotalHeroNums != (removeHeroIds.size()+removeItemMap.size())){ LOGGER.error("hero num not enough"); - } - - if(!canUse){ throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH); } @@ -1074,16 +1107,16 @@ public class HeroLogic{ throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } - //删除hero -// CommonProto.Drop.Builder baseBuilder = ItemLogic.getInstance().decomposeHero(session,new LinkedList<>(removeHeroIds),Collections.singleton(26),MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE); //改成归元获得,同时返还法宝获得 CommonProto.Drop.Builder baseBuilder = heroBackDrop(user,new ArrayList<>(removeHeroIds),10000,BIReason.UPHERO_DECOMPOS_HERO_REWARD,true); + // 删除英雄 for(String rmHeroId:removeHeroIds){ heroManager.removeHero(uid,rmHeroId); } + // 消耗道具 + ItemUtil.itemCost(user,removeItemMap,BIReason.COMPLEX_EQUIP_CONSUME,0); -// recyleHeroBySystem(user,removeHeroIds); rankUpHeroExecute(targetHero); Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(),targetHero.getTemplateId(),targetHero.getStar())); if (targetHero.getStar()>=5&&targetHero.getStar()!=15){ @@ -1092,15 +1125,13 @@ public class HeroLogic{ } } -// if(targetHero.getStar()==5){ -// Poster.getPoster().dispatchEvent(new HeroFiveStarGetEvent(user.getId())); -// } targetHero.setStarBreakId(scHeroRankUpConfig.getId()); user.getUserMissionManager().onGameEvent(user,GameEvent.HERO_UP,2,targetHero.getTemplateId(),targetHero.getStar()); user.getUserMissionManager().onGameEvent(user,GameEvent.GET_HERO,targetHero.getTemplateId(),targetHero.getStar()); if(isInTeam(user,heroId,1)){ Poster.getPoster().dispatchEvent(new UserMainTeamForceEvent(session.getUid())); } + if (targetHero.getStar() >= SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_awaken_hero_content_parm)) { Set hongmengMaxLevel = heroManager.getHongmengMaxLevel(); boolean add = hongmengMaxLevel.add(targetHero.getTemplateId()); @@ -1124,9 +1155,26 @@ public class HeroLogic{ } String consume = StringUtil.parseArrayToString(consumeMaterial); -// HERO_STRENGTHEN(13,"hero_strengthen", new CommonEventHandler(),new String[]{"hero_id","old_quality","new_quality","strengthen_type","cost_item_list","cost_hero_list"}), ReportUtil.onReportEvent(user, ReportEventEnum.HERO_STRENGTHEN.getType(),String.valueOf(targetHero.getTemplateId()),String.valueOf(oldStar),String.valueOf(targetHero.getStar()),consume,reportConsumeHero.toString()); } + + /** + * 升星验证同系道具 + * @param type + * @param itemCamp + * @param itemId + * @return + */ + private boolean upStartItemCamp(int type,int[][] itemCamp,int itemId){ + for (int[] ints : itemCamp) { + if (type == ints[0] && itemId == ints[1]){ + return true; + } + } + return false; + } + + private void rankUpHeroExecute(Hero hero)throws Exception { //是否解锁法宝 SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting(); 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 cfe4db2de..e595635e9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -569,7 +569,7 @@ public class ItemUtil { case GlobalItemType.RIDE: case GlobalItemType.SELECTSecretBox: case GlobalItemType.SpecialMonsterItem: - case GlobalItemType.HeroUpItem: + case GlobalItemType.AllPowerful_DogFood: itemType = GlobalItemType.ITEM; break; default: diff --git a/tablemanager/src/main/java/config/SHeroRankupGroup.java b/tablemanager/src/main/java/config/SHeroRankupGroup.java index 16d9478d9..daa872aa5 100644 --- a/tablemanager/src/main/java/config/SHeroRankupGroup.java +++ b/tablemanager/src/main/java/config/SHeroRankupGroup.java @@ -15,6 +15,9 @@ public class SHeroRankupGroup implements BaseConfig { private int isId; + private int[] items; + + private int[][] itemCamp; @Override public void init() throws Exception { @@ -40,5 +43,11 @@ public class SHeroRankupGroup implements BaseConfig { return isId; } + public int[] getItems() { + return items; + } + public int[][] getItemCamp() { + return itemCamp; + } } \ No newline at end of file diff --git a/test/src/main/java/com/ljsd/network/client/NettyClient.java b/test/src/main/java/com/ljsd/network/client/NettyClient.java index 76b7dcab4..4e00385db 100644 --- a/test/src/main/java/com/ljsd/network/client/NettyClient.java +++ b/test/src/main/java/com/ljsd/network/client/NettyClient.java @@ -15,6 +15,8 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.TimeUnit; + public class NettyClient { @@ -34,27 +36,39 @@ public class NettyClient { b.group(group) .channel(NioSocketChannel.class) .handler(new NettyTCPClientInitializer()); + Channel ch = b.connect("api.gamegs.cn",8741).sync().channel(); - Channel ch = b.connect("127.0.0.1",26080).sync().channel(); +// PlayerInfoProto.SignInRequest.Builder builder = PlayerInfoProto.SignInRequest.newBuilder().setDayIndex(1203); - NettyTCPClientHandler handler = ch.pipeline().get(NettyTCPClientHandler.class); -//------------------------------------------测试类型------------------------------------------------------- -// GameProto.GameMessage gameMessage = new NettyClient().sendLoginMessageTest();//登陆请求 - PlayerInfoProto.GetPlayerInfoRequest gameMessage = new NettyClient().sendRegisterMessageTest();//注册请求 - LOGGER.info(gameMessage.toString()); -//--------------------------------------------------------------------------------------------------------- - PlayerInfoProto.SignInRequest.Builder builder = PlayerInfoProto.SignInRequest.newBuilder().setDayIndex(1203); - PlayerInfoProto.SignInRequest build = builder.build(); - - PlayerInfoProto.SecretBoxRandomRequest.Builder builder1 = PlayerInfoProto.SecretBoxRandomRequest.newBuilder().setTypeId(29); - - handler.sendRequest_jieling(makeFinalMessage(gameMessage, MessageTypeProto.MessageType.RECONNECT_REQUEST_VALUE)); - msgIndex=31; - - while (!handler.rec){ - Thread.sleep(1); +// ChatProto.ChatUserV3 userFrom = ChatProto.ChatUserV3.newBuilder().build(); +// ChatProto.ChatV3 chat = ChatProto.ChatV3.newBuilder().setFrom(userFrom).build(); +// byte[] bytes = wrappedBuffer((short) 100, chat.toByteArray()); + ; + NettyTCPClientHandler handler = ch.pipeline().get(NettyTCPClientHandler.class); + while(true){ +// handler.sendRequest_jieling(bytes); + System.out.println(11111); + TimeUnit.SECONDS.sleep(3); } - handler.sendRequest_jieling(makeFinalMessage(gameMessage, MessageTypeProto.MessageType.HERO_RAND_REQQUEST_VALUE)); + + +////------------------------------------------测试类型------------------------------------------------------- +// GameProto.GameMessage gameMessage = new NettyClient().sendLoginMessageTest();//登陆请求 +// PlayerInfoProto.GetPlayerInfoRequest gameMessage = new NettyClient().sendRegisterMessageTest();//注册请求 +// LOGGER.info(gameMessage.toString()); +////--------------------------------------------------------------------------------------------------------- +// PlayerInfoProto.SignInRequest.Builder builder = PlayerInfoProto.SignInRequest.newBuilder().setDayIndex(1203); +// PlayerInfoProto.SignInRequest build = builder.build(); +// +// PlayerInfoProto.SecretBoxRandomRequest.Builder builder1 = PlayerInfoProto.SecretBoxRandomRequest.newBuilder().setTypeId(29); +// +// handler.sendRequest_jieling(makeFinalMessage(gameMessage, MessageTypeProto.MessageType.RECONNECT_REQUEST_VALUE)); +// msgIndex=31; +// +// while (!handler.rec){ +// Thread.sleep(1); +// } +// handler.sendRequest_jieling(makeFinalMessage(gameMessage, MessageTypeProto.MessageType.HERO_RAND_REQQUEST_VALUE)); /* for(int i=0;i<100000;i++){ handler.sendRequest_jieling(makeFinalMessage(builder1.build(), MessageTypeProto.MessageType.SECRETBOX_RANDOM_REQUEST_VALUE)); @@ -256,10 +270,11 @@ public class NettyClient { public HeroInfoProto.UpHeroStarRequest upHeroStar(){ String heroId = ""; List consumeMaterialsList = new ArrayList<>(); - consumeMaterialsList.add(HeroInfoProto.ConsumeMaterial.newBuilder().setPosition(1).addHeroIds("").build()); - consumeMaterialsList.add(HeroInfoProto.ConsumeMaterial.newBuilder().setPosition(2).addHeroIds("").build()); - consumeMaterialsList.add(HeroInfoProto.ConsumeMaterial.newBuilder().setPosition(3).addHeroIds("").build()); - consumeMaterialsList.add(HeroInfoProto.ConsumeMaterial.newBuilder().setPosition(4).addHeroIds("").build()); + HeroInfoProto.ConsumeItem.Builder builder = HeroInfoProto.ConsumeItem.newBuilder(); + consumeMaterialsList.add(HeroInfoProto.ConsumeMaterial.newBuilder().setPosition(1).addHeroIds(builder).build()); + consumeMaterialsList.add(HeroInfoProto.ConsumeMaterial.newBuilder().setPosition(2).addHeroIds(builder).build()); + consumeMaterialsList.add(HeroInfoProto.ConsumeMaterial.newBuilder().setPosition(3).addHeroIds(builder).build()); + consumeMaterialsList.add(HeroInfoProto.ConsumeMaterial.newBuilder().setPosition(4).addHeroIds(builder).build()); return HeroInfoProto.UpHeroStarRequest.newBuilder().setHeroId(heroId).addAllConsumeMaterials(consumeMaterialsList).build(); } @@ -288,4 +303,23 @@ public class NettyClient { return PlayerInfoProto.WorkShopEquipCreateRequest.newBuilder().setEquipTid(equipTid).build(); } +// public static byte[] wrappedBuffer(short gameId, byte[] content) { +// int length = PackageConstant.GAMEID_LEN+PackageConstant.CONTENT_LEN+content.length; +// byte[] bytes = new byte[length]; +// int pos = 0; +// Tea.shortToByte(bytes, pos, gameId); +// pos += PackageConstant.GAMEID_LEN; +// Tea.intToByte(bytes, pos, content.length); +// pos += PackageConstant.CONTENT_LEN; +// +// +// if (content.length != 0) { +// System.arraycopy(content, 0, bytes, pos, content.length); +// } +//// if (backMessage.length != 0) { +//// LOGGER.info("wrappedBuffer uid=>{} sendbyte=>{}", uid, bytes1.length); +//// } +// return bytes; +// } + }