挂机奖励回滚
parent
b4934dafe5
commit
477f22e7c5
|
@ -8,7 +8,6 @@ import rpc.protocols.FightInfoProto;
|
|||
import rpc.protocols.MessageTypeProto;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Deprecated
|
||||
@Component
|
||||
public class TakeAdventureRewardHandler extends BaseHandler {
|
||||
@Override
|
||||
|
@ -18,7 +17,7 @@ public class TakeAdventureRewardHandler extends BaseHandler {
|
|||
|
||||
@Override
|
||||
public void process(ISession iSession, PacketNetData netData) throws Exception {
|
||||
// FightInfoProto.TakeAventureRewardRequest takeAventureRewardRequest = FightInfoProto.TakeAventureRewardRequest.parseFrom(netData.parseClientProtoNetData());
|
||||
// CombatLogic.getInstance().takeNewAdventureReward(iSession,takeAventureRewardRequest.getType(),takeAventureRewardRequest.getPosition());
|
||||
FightInfoProto.TakeAventureRewardRequest takeAventureRewardRequest = FightInfoProto.TakeAventureRewardRequest.parseFrom(netData.parseClientProtoNetData());
|
||||
CombatLogic.getInstance().takeNewAdventureReward(iSession,takeAventureRewardRequest.getType(),takeAventureRewardRequest.getPosition());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -603,7 +603,7 @@ public class Hero extends MongoBase implements Comparable<Hero>,Cloneable {
|
|||
|
||||
public void setBauBlesId(String bauBles) {
|
||||
this.bauBlesId = bauBles;
|
||||
updateString("bauBlesId", bauBlesId);
|
||||
updateString("bauBlesId", bauBles);
|
||||
}
|
||||
|
||||
public String getBauBlesId() {
|
||||
|
|
|
@ -296,15 +296,17 @@ public class HeroManager extends MongoBase {
|
|||
updateString("randomPoolByType." + type, map);
|
||||
}
|
||||
|
||||
public Map<String, Hero> getItemMap() {
|
||||
return heroMap;
|
||||
}
|
||||
|
||||
public void setItemMap(Map<String, Hero> heroMap) {
|
||||
public void setHeroMap(Map<String, Hero> heroMap) {
|
||||
this.heroMap = heroMap;
|
||||
updateString("heroMap", heroMap);
|
||||
}
|
||||
|
||||
public void addHero(Hero hero) throws Exception {
|
||||
public void updateHero(Hero hero) {
|
||||
this.heroMap.put(hero.getId(), hero);
|
||||
updateString("heroMap", heroMap);
|
||||
}
|
||||
|
||||
public void addHero(Hero hero) {
|
||||
//绑定关系
|
||||
hero.init(this.getRootId(),getMongoKey() + ".heroMap." + hero.getId());
|
||||
updateString("heroMap." + hero.getId(), hero);
|
||||
|
|
|
@ -630,16 +630,21 @@ public class EquipLogic {
|
|||
if (config == null){
|
||||
throw new ErrorCodeException(ErrorCode.CFG_NULL);
|
||||
}
|
||||
int[][] formula = config.getFormula();
|
||||
int[][] resource = config.getResource();
|
||||
if (formula == null || formula.length == 0){
|
||||
throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE);
|
||||
}
|
||||
// 消耗道具
|
||||
ArrayList<int[][]> costList = new ArrayList<>();
|
||||
costList.add(config.getFormula());
|
||||
costList.add(config.getResource());
|
||||
boolean cost = ItemUtil.checkCost(user, costList);
|
||||
costList.add(formula);
|
||||
costList.add(resource);
|
||||
boolean cost = ItemUtil.itemCost(user, costList, BIReason.GIFT_UP_STAR_COST, 0);;
|
||||
if (!cost){
|
||||
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
|
||||
}
|
||||
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, new int[][]{{giftId, 1}}, BIReason.GIFT_UP_STAR_GET);
|
||||
ItemUtil.itemCost(user, costList, BIReason.GIFT_UP_STAR_COST, 0);
|
||||
// 掉落道具
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, new int[]{giftId, 1}, 1, BIReason.GIFT_UP_STAR_GET);
|
||||
HeroInfoProto.GiftEquipUpStarResponse.Builder builder = HeroInfoProto.GiftEquipUpStarResponse.newBuilder().setDrop(drop);
|
||||
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GiftEquipUpStarResponse_VALUE, builder.build(), true);
|
||||
}
|
||||
|
@ -833,17 +838,17 @@ public class EquipLogic {
|
|||
User user = UserManager.getUser(session.getUid());
|
||||
EquipManager equipManager = user.getEquipManager();
|
||||
HeroManager heroManager = user.getHeroManager();
|
||||
String baublesId = proto.getBaublesId();
|
||||
String heroId = proto.getHeroId();
|
||||
String baublesId = proto.getBaublesId();
|
||||
|
||||
Hero hero = heroManager.getHero(heroId);
|
||||
if (hero == null){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE, "英雄不存在");
|
||||
}
|
||||
String heroBauBlesId = hero.getBauBlesId();
|
||||
if (baublesId.isEmpty()){
|
||||
|
||||
if (StringUtil.isEmpty(baublesId)){
|
||||
// 卸下
|
||||
Baubles baubles = equipManager.getBaubles(heroBauBlesId);
|
||||
Baubles baubles = equipManager.getBaubles(hero.getBauBlesId());
|
||||
hero.setBauBlesId("");
|
||||
baubles.setHeroId("");
|
||||
}
|
||||
|
@ -854,6 +859,7 @@ public class EquipLogic {
|
|||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE, "法宝不存在或者处于庇佑状态");
|
||||
}
|
||||
// 检查英雄和法宝是否各有装备
|
||||
String heroBauBlesId = hero.getBauBlesId();
|
||||
if (!StringUtil.isEmpty(heroBauBlesId)){
|
||||
hero.setBauBlesId("");
|
||||
Baubles heroBauBles = equipManager.getBaubles(heroBauBlesId);
|
||||
|
@ -873,7 +879,6 @@ public class EquipLogic {
|
|||
hero.setBauBlesId(baublesId);
|
||||
baubles.setHeroId(heroId);
|
||||
}
|
||||
|
||||
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.BaublesWearResponse_VALUE, null, true);
|
||||
}
|
||||
|
||||
|
|
|
@ -213,84 +213,84 @@ public class CombatLogic {
|
|||
|
||||
public void takeNewAdventureReward(ISession session,int type,int position) throws Exception {
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
// Map<Integer, CommonProto.Drop> adventureFastReward;
|
||||
// if(type == 2){
|
||||
// adventureFastReward = getNewAdventureReward(user,false,TimeUtils.nowInt());
|
||||
// if(adventureFastReward.get(1).getItemlistCount()==0){
|
||||
// throw new ErrorCodeException(ErrorCode.REWARD_COLLECTING);
|
||||
// }
|
||||
// user.getUserMissionManager().onGameEvent(user,GameEvent.ONE_MISSION_TYPE_CONSUME,MissionType.TAKE_ADVENTUREREWARD_TIMES,1);
|
||||
// }else{
|
||||
// boolean update = true;
|
||||
// if(position == 0){
|
||||
// if(!PlayerLogic.getInstance().checkAndUpdate(user,VipPrivilegeType.FAST_MAP_LIMIT,1)) {
|
||||
// update = StoreLogic.getInstance().checkBuyGoodsAndUpdate(user,7,10008,1);
|
||||
// }
|
||||
// }else{
|
||||
// update = StoreLogic.getInstance().checkBuyGoodsAndUpdate(user,7,10015,1);
|
||||
// }
|
||||
// if (!update){
|
||||
// throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE);
|
||||
// }
|
||||
// adventureFastReward = getNewAdventureFastReward(user, STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getAdventureFastBattle());
|
||||
// user.getUserMissionManager().onGameEvent(user,GameEvent.PlAY_STORY,9999,1);
|
||||
// Poster.getPoster().dispatchEvent(new SecretEvent(user.getId()));
|
||||
// user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.TAKE_ADVENTURE_REWARD_COUNT, 1);
|
||||
// Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.EXPLORE.getType(),1));
|
||||
// }
|
||||
Map<Integer, CommonProto.Drop> adventureFastReward;
|
||||
if(type == 2){
|
||||
adventureFastReward = getNewAdventureReward(user,false,TimeUtils.nowInt());
|
||||
if(adventureFastReward.get(1).getItemlistCount()==0){
|
||||
throw new ErrorCodeException(ErrorCode.REWARD_COLLECTING);
|
||||
}
|
||||
user.getUserMissionManager().onGameEvent(user,GameEvent.ONE_MISSION_TYPE_CONSUME,MissionType.TAKE_ADVENTUREREWARD_TIMES,1);
|
||||
}else{
|
||||
boolean update = true;
|
||||
if(position == 0){
|
||||
if(!PlayerLogic.getInstance().checkAndUpdate(user,VipPrivilegeType.FAST_MAP_LIMIT,1)) {
|
||||
update = StoreLogic.getInstance().checkBuyGoodsAndUpdate(user,7,10008,1);
|
||||
}
|
||||
}else{
|
||||
update = StoreLogic.getInstance().checkBuyGoodsAndUpdate(user,7,10015,1);
|
||||
}
|
||||
if (!update){
|
||||
throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE);
|
||||
}
|
||||
adventureFastReward = getNewAdventureFastReward(user, STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getAdventureFastBattle());
|
||||
user.getUserMissionManager().onGameEvent(user,GameEvent.PlAY_STORY,9999,1);
|
||||
Poster.getPoster().dispatchEvent(new SecretEvent(user.getId()));
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.TAKE_ADVENTURE_REWARD_COUNT, 1);
|
||||
Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.EXPLORE.getType(),1));
|
||||
}
|
||||
|
||||
FightInfoProto.TakeAventureRewardResponse build = FightInfoProto.TakeAventureRewardResponse.newBuilder()
|
||||
// .setDrop(adventureFastReward.get(1))
|
||||
// .setRandomDrop(adventureFastReward.get(2))
|
||||
.setDrop(adventureFastReward.get(1))
|
||||
.setRandomDrop(adventureFastReward.get(2))
|
||||
.build();
|
||||
// KtEventUtils.onKtEvent(user,ParamEventBean.UserGameType,KTGameType.TAKE_SECURE_REWARD.getIndex(),type*10);
|
||||
KtEventUtils.onKtEvent(user,ParamEventBean.UserGameType,KTGameType.TAKE_SECURE_REWARD.getIndex(),type*10);
|
||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.ADVENTURE_REWARD_RESPONSE_VALUE,build,true);
|
||||
}
|
||||
|
||||
public Map<Integer,CommonProto.Drop> getNewAdventureReward(User user,boolean sendMail,int time) throws Exception {
|
||||
// GetNewAdventureData getNewAdventureData = new GetNewAdventureData(user, sendMail,false).invoke(time);
|
||||
// if (getNewAdventureData.is()) return null;
|
||||
// CommonProto.Drop.Builder baseBuilder = getNewAdventureData.getBaseBuilder();
|
||||
// CommonProto.Drop.Builder randomBuilder = getNewAdventureData.getRandomBuilder();
|
||||
GetNewAdventureData getNewAdventureData = new GetNewAdventureData(user, sendMail,false).invoke(time);
|
||||
if (getNewAdventureData.is()) return null;
|
||||
CommonProto.Drop.Builder baseBuilder = getNewAdventureData.getBaseBuilder();
|
||||
CommonProto.Drop.Builder randomBuilder = getNewAdventureData.getRandomBuilder();
|
||||
Map<Integer, CommonProto.Drop> result = new HashMap<>(2);
|
||||
// result.put(1,baseBuilder.build());
|
||||
// result.put(2,randomBuilder.build());
|
||||
result.put(1,baseBuilder.build());
|
||||
result.put(2,randomBuilder.build());
|
||||
return result;
|
||||
}
|
||||
|
||||
private Map<Integer,CommonProto.Drop> getNewAdventureFastReward(User user,int timeDuration) throws Exception {
|
||||
// MainLevelManager mainLevelManager = user.getMainLevelManager();
|
||||
// SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting();
|
||||
// int adventureRefresh = gameSetting.getAdventureRefresh();
|
||||
// int times = timeDuration / adventureRefresh;
|
||||
// ItemMap itemObj = new ItemMap();
|
||||
// ItemMap itemRandomObj = new ItemMap();
|
||||
// CommonProto.Drop.Builder baseBuilder = CommonProto.Drop.newBuilder();
|
||||
// CommonProto.Drop.Builder randomBuilder = CommonProto.Drop.newBuilder();
|
||||
// int fightId = mainLevelManager.getFightId();
|
||||
// SMainLevelConfig mainLevelConfig = SMainLevelConfig.config.get(fightId);
|
||||
// if(mainLevelManager.getState()==-1){
|
||||
// for( SMainLevelConfig sMainLevelConfig : SMainLevelConfig.config.values() ){
|
||||
// if(sMainLevelConfig.getNextLevel() == mainLevelManager.getFightId()){
|
||||
// mainLevelConfig = sMainLevelConfig;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// ItemUtil.combineRewardByMainLine(user,false, mainLevelConfig.getRandomRewardMin(), times,itemObj,BIReason.ADVENTURE_BASE_REWARD);
|
||||
// ItemUtil.combineRewardByMainLine(user,true, mainLevelConfig.getRandomReward(), times,itemRandomObj,BIReason.ADVENTURE_RANDOM_REWARDD);
|
||||
// // 小兵关卡
|
||||
// SSoldierStageConfig stageConfig = SSoldierStageConfig.idMap.get(mainLevelManager.getSoldierLayerId());
|
||||
// ItemUtil.combineRewardByMainLine(user,false, stageConfig.getRandomRewardMin(), times,itemObj,BIReason.ADVENTURE_BASE_REWARD);
|
||||
//
|
||||
// itemRandomObj.setEquipMap(equipAutoCombine(itemRandomObj.getEquipMap()));
|
||||
// //清除无用活动道具
|
||||
// removeNoUseItem(user,itemRandomObj.getItemMap());
|
||||
// ItemUtil.drop(user,baseBuilder,itemObj,BIReason.ADVENTURE_BASE_REWARD);
|
||||
// ItemUtil.drop(user,randomBuilder,itemRandomObj,BIReason.ADVENTURE_RANDOM_REWARDD);
|
||||
MainLevelManager mainLevelManager = user.getMainLevelManager();
|
||||
SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting();
|
||||
int adventureRefresh = gameSetting.getAdventureRefresh();
|
||||
int times = timeDuration / adventureRefresh;
|
||||
ItemMap itemObj = new ItemMap();
|
||||
ItemMap itemRandomObj = new ItemMap();
|
||||
CommonProto.Drop.Builder baseBuilder = CommonProto.Drop.newBuilder();
|
||||
CommonProto.Drop.Builder randomBuilder = CommonProto.Drop.newBuilder();
|
||||
int fightId = mainLevelManager.getFightId();
|
||||
SMainLevelConfig mainLevelConfig = SMainLevelConfig.config.get(fightId);
|
||||
if(mainLevelManager.getState()==-1){
|
||||
for( SMainLevelConfig sMainLevelConfig : SMainLevelConfig.config.values() ){
|
||||
if(sMainLevelConfig.getNextLevel() == mainLevelManager.getFightId()){
|
||||
mainLevelConfig = sMainLevelConfig;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
ItemUtil.combineRewardByMainLine(user,false, mainLevelConfig.getRandomRewardMin(), times,itemObj,BIReason.ADVENTURE_BASE_REWARD);
|
||||
ItemUtil.combineRewardByMainLine(user,true, mainLevelConfig.getRandomReward(), times,itemRandomObj,BIReason.ADVENTURE_RANDOM_REWARDD);
|
||||
// 小兵关卡
|
||||
SSoldierStageConfig stageConfig = SSoldierStageConfig.idMap.get(mainLevelManager.getSoldierLayerId());
|
||||
ItemUtil.combineRewardByMainLine(user,false, stageConfig.getRandomRewardMin(), times,itemObj,BIReason.ADVENTURE_BASE_REWARD);
|
||||
|
||||
itemRandomObj.setEquipMap(equipAutoCombine(itemRandomObj.getEquipMap()));
|
||||
//清除无用活动道具
|
||||
removeNoUseItem(user,itemRandomObj.getItemMap());
|
||||
ItemUtil.drop(user,baseBuilder,itemObj,BIReason.ADVENTURE_BASE_REWARD);
|
||||
ItemUtil.drop(user,randomBuilder,itemRandomObj,BIReason.ADVENTURE_RANDOM_REWARDD);
|
||||
Map<Integer, CommonProto.Drop> result = new HashMap<>(2);
|
||||
// result.put(1,baseBuilder.build());
|
||||
// result.put(2,randomBuilder.build());
|
||||
result.put(1,baseBuilder.build());
|
||||
result.put(2,randomBuilder.build());
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -929,74 +929,74 @@ public class CombatLogic {
|
|||
}
|
||||
|
||||
public GetNewAdventureData invoke(int time) throws Exception {
|
||||
// MainLevelManager mainLevelManager = user.getMainLevelManager();
|
||||
// Map<Integer, Integer> fightStateInfo = mainLevelManager.getFightStateInfo();
|
||||
// SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting();
|
||||
// int adventureRefresh = gameSetting.getAdventureRefresh();
|
||||
// int vipTimeAdd = PlayerLogic.getInstance().getMaxCountByPrivilegeType(user, VipPrivilegeType.ADVENTURE_ADD_TIME);
|
||||
// int adventureOffline = (gameSetting.getAdventureOffline()+vipTimeAdd)*60*60/adventureRefresh;
|
||||
// baseBuilder = CommonProto.Drop.newBuilder();
|
||||
// randomBuilder = CommonProto.Drop.newBuilder();
|
||||
// int takeTimes = 0;
|
||||
// ArrayList<int[][]> baseList = new ArrayList<>();
|
||||
// ArrayList<int[][]> randomList = new ArrayList<>();
|
||||
// Map<Integer, SMainLevelConfig> mainLevelConfigMap = SMainLevelConfig.config;
|
||||
// for(Map.Entry<Integer,Integer> fightStateInfoItem : fightStateInfo.entrySet()){
|
||||
// Integer fightId = fightStateInfoItem.getKey();
|
||||
// Integer times = fightStateInfoItem.getValue();
|
||||
// SMainLevelConfig sMainLevelConfig = mainLevelConfigMap.get(fightId);
|
||||
// baseList.add(new int[][]{sMainLevelConfig.getRandomRewardMin(),new int[]{times}});
|
||||
// randomList.add(new int[][]{sMainLevelConfig.getRandomReward(),new int[]{times}});
|
||||
// takeTimes+=times;
|
||||
// }
|
||||
// int fightId = mainLevelManager.getFightId();
|
||||
// SMainLevelConfig mainLevelConfig = mainLevelConfigMap.get(fightId);
|
||||
// int lastTime = mainLevelManager.getLastTime();
|
||||
// int times = (time - lastTime)/gameSetting.getAdventureRefresh();
|
||||
// int maxTimes = adventureOffline - takeTimes;
|
||||
// int lastTimeTakes=0;
|
||||
// boolean reset = maxTimes<times;
|
||||
// if(maxTimes>0){
|
||||
// times = reset?maxTimes:times;
|
||||
// baseList.add(new int[][]{mainLevelConfig.getRandomRewardMin(),new int[]{times}});
|
||||
// randomList.add(new int[][]{mainLevelConfig.getRandomReward(),new int[]{times}});
|
||||
// lastTimeTakes=times;
|
||||
// }
|
||||
// // 小兵奖励
|
||||
// getSoldierBaseReward(baseList);
|
||||
// ItemMap itemObj = new ItemMap();
|
||||
// ItemMap itemRandom = new ItemMap();
|
||||
// ItemUtil.combineRewardByMainLineNotCycle(user,true,baseList,itemObj,BIReason.ADVENTURE_BASE_REWARD);
|
||||
// if (viewBaseReward){
|
||||
// myResult = true;
|
||||
// rewardStr = ItemUtil.getReward(itemObj);
|
||||
// return this;
|
||||
// }
|
||||
// ItemUtil.combineRewardByMainLineNotCycle(user, false, randomList,itemRandom,BIReason.ADVENTURE_RANDOM_REWARDD);
|
||||
// //装备合成
|
||||
// itemRandom.setEquipMap(equipAutoCombine(itemRandom.getEquipMap()));
|
||||
// removeNoUseItem(user,itemRandom.getItemMap());
|
||||
// if(sendMail){
|
||||
// if(!itemObj.getItemMap().isEmpty()){
|
||||
// int vipLevel = user.getPlayerInfoManager().getVipLevel();
|
||||
// String title = SErrorCodeEerverConfig.getI18NMessage("adventuren_reward_of_viplevel_title");
|
||||
// String reward = ItemUtil.getReward(itemObj);
|
||||
// String randomReward = ItemUtil.getReward(itemRandom);
|
||||
// String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("adventuren_reward_of_viplevel_content",new Object[]{vipLevel},new int[0],"#");
|
||||
// if(!randomReward.isEmpty()){
|
||||
// reward = reward + "|" + randomReward;
|
||||
// MailLogic.getInstance().sendMail(user.getId(),title,content,reward,time, Global.MAIL_EFFECTIVE_TIME);
|
||||
// mainLevelManager.afterTakeStateReward(true,0,time);
|
||||
// System.out.printf("================在线奖励升级vip发送邮件:{%s},{%s}\n",mainLevelManager.getStartTime(),mainLevelManager.getLastTime());
|
||||
// }
|
||||
// }
|
||||
// myResult = true;
|
||||
// }else {
|
||||
// mainLevelManager.afterTakeStateReward(reset,lastTimeTakes,time);
|
||||
// ItemUtil.drop(user,baseBuilder,itemObj, BIReason.ADVENTURE_BASE_REWARD);
|
||||
// ItemUtil.drop(user,randomBuilder,itemRandom,BIReason.ADVENTURE_RANDOM_REWARDD);
|
||||
// myResult = false;
|
||||
// }
|
||||
MainLevelManager mainLevelManager = user.getMainLevelManager();
|
||||
Map<Integer, Integer> fightStateInfo = mainLevelManager.getFightStateInfo();
|
||||
SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting();
|
||||
int adventureRefresh = gameSetting.getAdventureRefresh();
|
||||
int vipTimeAdd = PlayerLogic.getInstance().getMaxCountByPrivilegeType(user, VipPrivilegeType.ADVENTURE_ADD_TIME);
|
||||
int adventureOffline = (gameSetting.getAdventureOffline()+vipTimeAdd)*60*60/adventureRefresh;
|
||||
baseBuilder = CommonProto.Drop.newBuilder();
|
||||
randomBuilder = CommonProto.Drop.newBuilder();
|
||||
int takeTimes = 0;
|
||||
ArrayList<int[][]> baseList = new ArrayList<>();
|
||||
ArrayList<int[][]> randomList = new ArrayList<>();
|
||||
Map<Integer, SMainLevelConfig> mainLevelConfigMap = SMainLevelConfig.config;
|
||||
for(Map.Entry<Integer,Integer> fightStateInfoItem : fightStateInfo.entrySet()){
|
||||
Integer fightId = fightStateInfoItem.getKey();
|
||||
Integer times = fightStateInfoItem.getValue();
|
||||
SMainLevelConfig sMainLevelConfig = mainLevelConfigMap.get(fightId);
|
||||
baseList.add(new int[][]{sMainLevelConfig.getRandomRewardMin(),new int[]{times}});
|
||||
randomList.add(new int[][]{sMainLevelConfig.getRandomReward(),new int[]{times}});
|
||||
takeTimes+=times;
|
||||
}
|
||||
int fightId = mainLevelManager.getFightId();
|
||||
SMainLevelConfig mainLevelConfig = mainLevelConfigMap.get(fightId);
|
||||
int lastTime = mainLevelManager.getLastTime();
|
||||
int times = (time - lastTime)/gameSetting.getAdventureRefresh();
|
||||
int maxTimes = adventureOffline - takeTimes;
|
||||
int lastTimeTakes=0;
|
||||
boolean reset = maxTimes<times;
|
||||
if(maxTimes>0){
|
||||
times = reset?maxTimes:times;
|
||||
baseList.add(new int[][]{mainLevelConfig.getRandomRewardMin(),new int[]{times}});
|
||||
randomList.add(new int[][]{mainLevelConfig.getRandomReward(),new int[]{times}});
|
||||
lastTimeTakes=times;
|
||||
}
|
||||
// 小兵奖励
|
||||
getSoldierBaseReward(baseList);
|
||||
ItemMap itemObj = new ItemMap();
|
||||
ItemMap itemRandom = new ItemMap();
|
||||
ItemUtil.combineRewardByMainLineNotCycle(user,true,baseList,itemObj,BIReason.ADVENTURE_BASE_REWARD);
|
||||
if (viewBaseReward){
|
||||
myResult = true;
|
||||
rewardStr = ItemUtil.getReward(itemObj);
|
||||
return this;
|
||||
}
|
||||
ItemUtil.combineRewardByMainLineNotCycle(user, false, randomList,itemRandom,BIReason.ADVENTURE_RANDOM_REWARDD);
|
||||
//装备合成
|
||||
itemRandom.setEquipMap(equipAutoCombine(itemRandom.getEquipMap()));
|
||||
removeNoUseItem(user,itemRandom.getItemMap());
|
||||
if(sendMail){
|
||||
if(!itemObj.getItemMap().isEmpty()){
|
||||
int vipLevel = user.getPlayerInfoManager().getVipLevel();
|
||||
String title = SErrorCodeEerverConfig.getI18NMessage("adventuren_reward_of_viplevel_title");
|
||||
String reward = ItemUtil.getReward(itemObj);
|
||||
String randomReward = ItemUtil.getReward(itemRandom);
|
||||
String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("adventuren_reward_of_viplevel_content",new Object[]{vipLevel},new int[0],"#");
|
||||
if(!randomReward.isEmpty()){
|
||||
reward = reward + "|" + randomReward;
|
||||
MailLogic.getInstance().sendMail(user.getId(),title,content,reward,time, Global.MAIL_EFFECTIVE_TIME);
|
||||
mainLevelManager.afterTakeStateReward(true,0,time);
|
||||
System.out.printf("================在线奖励升级vip发送邮件:{%s},{%s}\n",mainLevelManager.getStartTime(),mainLevelManager.getLastTime());
|
||||
}
|
||||
}
|
||||
myResult = true;
|
||||
}else {
|
||||
mainLevelManager.afterTakeStateReward(reset,lastTimeTakes,time);
|
||||
ItemUtil.drop(user,baseBuilder,itemObj, BIReason.ADVENTURE_BASE_REWARD);
|
||||
ItemUtil.drop(user,randomBuilder,itemRandom,BIReason.ADVENTURE_RANDOM_REWARDD);
|
||||
myResult = false;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -3437,7 +3437,6 @@ public class HeroLogic {
|
|||
attribute.put(id, attribute.getOrDefault(id, 0L) + num);
|
||||
}
|
||||
}
|
||||
LOGGER.info("===助阵属性:{}",attribute);
|
||||
combinedAttribute(attribute, heroAllAttribute);
|
||||
return totalAdd;
|
||||
}
|
||||
|
|
|
@ -1080,10 +1080,10 @@ public class CBean2Proto {
|
|||
if(update){
|
||||
mainLevelManager.directUpdateDb();
|
||||
}
|
||||
// CombatLogic.GetNewAdventureData getNewAdventureData = new CombatLogic.GetNewAdventureData(user, false,true).invoke(TimeUtils.nowInt());
|
||||
// if (!StringUtil.isEmpty(getNewAdventureData.getRewardStr())){
|
||||
// builder.setReward(getNewAdventureData.getRewardStr());
|
||||
// }
|
||||
CombatLogic.GetNewAdventureData getNewAdventureData = new CombatLogic.GetNewAdventureData(user, false,true).invoke(TimeUtils.nowInt());
|
||||
if (!StringUtil.isEmpty(getNewAdventureData.getRewardStr())){
|
||||
builder.setReward(getNewAdventureData.getRewardStr());
|
||||
}
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
|
|
|
@ -679,6 +679,7 @@ public class ItemUtil {
|
|||
*/
|
||||
public static int addItemByMail(User user, Map<Integer, Long> itemMap, CommonProto.Drop.Builder dropBuilder, int reason) throws Exception {
|
||||
if (itemMap.isEmpty()) {
|
||||
LOGGER.info("掉落道具退出,itemMap为空,uid:{}",user.getId());
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -693,24 +694,25 @@ public class ItemUtil {
|
|||
int itemId = entry.getKey();
|
||||
long itemNum = entry.getValue();
|
||||
if (itemNum <= 0) {
|
||||
LOGGER.info("掉落道具跳过,itemNum数量错误,uid:{},itemid:{},itemnum:{}",user.getId(),itemId,itemNum);
|
||||
continue;
|
||||
}
|
||||
|
||||
SItem sItem = SItem.getsItemMap().get(itemId);
|
||||
int id = sItem.getId();
|
||||
long itemNumlimit = sItem.getItemNumlimit();
|
||||
|
||||
itemNum = Math.min(itemNum, itemNumlimit);
|
||||
|
||||
int missingRoomItem = Global.MISSING_ROOM_ITEM;//道具寻龙钰
|
||||
int baseReward = BIReason.ADVENTURE_BASE_REWARD;//挂机基础奖励
|
||||
Item item = itemManager.getItem(itemId);
|
||||
if (item == null) {
|
||||
item = itemManager.newItem(itemId, itemNum);
|
||||
} else {
|
||||
if (id == Global.MISSING_ROOM_ITEM && reason == BIReason.ADVENTURE_BASE_REWARD) {
|
||||
if (id == missingRoomItem && reason == baseReward) {
|
||||
itemNumlimit = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(user.getPlayerInfoManager().getLevel()).getMazeTreasureMax();
|
||||
}
|
||||
if (item.getItemNum() > itemNumlimit) {
|
||||
if (id == Global.MISSING_ROOM_ITEM && reason == BIReason.ADVENTURE_BASE_REWARD) {
|
||||
if (id == missingRoomItem && reason == baseReward) {
|
||||
continue;
|
||||
}
|
||||
if (reason == BIReason.TAKE_MAIL_REWARD) {
|
||||
|
@ -723,7 +725,7 @@ public class ItemUtil {
|
|||
|
||||
long num = item.getItemNum() + itemNum;
|
||||
if (num > itemNumlimit) {
|
||||
if (id == Global.MISSING_ROOM_ITEM && reason == BIReason.ADVENTURE_BASE_REWARD) {
|
||||
if (id == missingRoomItem && reason == baseReward) {
|
||||
item.setItemNum(num);
|
||||
} else {
|
||||
if (reason == BIReason.TAKE_MAIL_REWARD) {
|
||||
|
@ -1542,6 +1544,9 @@ public class ItemUtil {
|
|||
}
|
||||
|
||||
private static void selectCost(int[][] costItems, Map<Integer, Integer> itemMap) {
|
||||
if (costItems == null){
|
||||
return;
|
||||
}
|
||||
for (int[] costItem : costItems){
|
||||
int itemId = costItem[0];
|
||||
int itemNum = costItem[1];
|
||||
|
|
Loading…
Reference in New Issue