关闭极速探索功能

master_dev
grimm 2024-04-27 15:13:53 +08:00
parent afd6cc1736
commit 76907cc43e
3 changed files with 143 additions and 140 deletions

View File

@ -8,6 +8,7 @@ import rpc.protocols.FightInfoProto;
import rpc.protocols.MessageTypeProto;
import org.springframework.stereotype.Component;
@Deprecated
@Component
public class TakeAdventureRewardHandler extends BaseHandler {
@Override
@ -17,7 +18,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());
}
}

View File

@ -212,83 +212,85 @@ public class CombatLogic {
/************** 新挂机*****************/
public void takeNewAdventureReward(ISession session,int type,int position) throws Exception {
int uid = session.getUid();
User user = UserManager.getUser(uid);
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));
}
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));
// }
FightInfoProto.TakeAventureRewardResponse build = FightInfoProto.TakeAventureRewardResponse.newBuilder().setDrop(adventureFastReward.get(1)).setRandomDrop(adventureFastReward.get(2)).build();
FightInfoProto.TakeAventureRewardResponse build = FightInfoProto.TakeAventureRewardResponse.newBuilder()
// .setDrop(adventureFastReward.get(1))
// .setRandomDrop(adventureFastReward.get(2))
.build();
// KtEventUtils.onKtEvent(user,ParamEventBean.UserGameType,KTGameType.TAKE_SECURE_REWARD.getIndex(),type*10);
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.ADVENTURE_REWARD_RESPONSE_VALUE,build,true);
KtEventUtils.onKtEvent(user,ParamEventBean.UserGameType,KTGameType.TAKE_SECURE_REWARD.getIndex(),type*10);
}
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;
}
@ -927,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;
}

View File

@ -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();
}