挂机奖励
parent
86858a8c25
commit
b36f434768
|
@ -324,17 +324,17 @@ public class CombatLogic {
|
||||||
public void takeAdventureReward(ISession session,int type,int position) throws Exception {
|
public void takeAdventureReward(ISession session,int type,int position) throws Exception {
|
||||||
int uid = session.getUid();
|
int uid = session.getUid();
|
||||||
User user = UserManager.getUser(uid);
|
User user = UserManager.getUser(uid);
|
||||||
CommonProto.Drop.Builder advetureReward=null;
|
Map<Integer, CommonProto.Drop> adventureFastReward =null;
|
||||||
if(type == 2){
|
if(type == 2){
|
||||||
advetureReward = getAdventureReward(user, position);
|
adventureFastReward = getAdventureReward(user, position);
|
||||||
}else{
|
}else{
|
||||||
advetureReward = getAdventureFastReward(user,SGameSetting.getGameSetting().getAdventureFastBattle());
|
adventureFastReward = getAdventureFastReward(user, SGameSetting.getGameSetting().getAdventureFastBattle());
|
||||||
}
|
}
|
||||||
FightInfoProto.TakeAventureRewardResponse build = FightInfoProto.TakeAventureRewardResponse.newBuilder().setDrop(advetureReward).build();
|
FightInfoProto.TakeAventureRewardResponse build = FightInfoProto.TakeAventureRewardResponse.newBuilder().setDrop(adventureFastReward.get(1)).setRandomDrop(adventureFastReward.get(2)).build();
|
||||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.ADVENTURE_REWARD_RESPONSE_VALUE,build,true);
|
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.ADVENTURE_REWARD_RESPONSE_VALUE,build,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private CommonProto.Drop.Builder getAdventureReward(User user, int position) throws Exception {
|
private Map<Integer,CommonProto.Drop> getAdventureReward(User user, int position) throws Exception {
|
||||||
AdventureManager adventureManager = user.getAdventureManager();
|
AdventureManager adventureManager = user.getAdventureManager();
|
||||||
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
|
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
|
||||||
Map<Integer, AdventureStateInfo> adventureStateInfoMap = adventureManager.getAdventureStateInfoMap();
|
Map<Integer, AdventureStateInfo> adventureStateInfoMap = adventureManager.getAdventureStateInfoMap();
|
||||||
|
@ -342,6 +342,17 @@ public class CombatLogic {
|
||||||
SGameSetting gameSetting = SGameSetting.getGameSetting();
|
SGameSetting gameSetting = SGameSetting.getGameSetting();
|
||||||
int adventureRefresh = gameSetting.getAdventureRefresh();
|
int adventureRefresh = gameSetting.getAdventureRefresh();
|
||||||
int adventureOffline = gameSetting.getAdventureOffline();
|
int adventureOffline = gameSetting.getAdventureOffline();
|
||||||
|
Map<Integer, Integer> baseItemMap = new HashMap<>();
|
||||||
|
Map<Integer, Integer> baseCardMap = new HashMap<>();
|
||||||
|
Map<Integer, Integer> baseEquipMap = new HashMap<>();
|
||||||
|
Map<Integer,Integer> baseRandomMap = new HashMap<>();
|
||||||
|
|
||||||
|
Map<Integer, Integer> randomItemMap = new HashMap<>();
|
||||||
|
Map<Integer, Integer> randomCardMap = new HashMap<>();
|
||||||
|
Map<Integer, Integer> randomEquipMap = new HashMap<>();
|
||||||
|
Map<Integer,Integer> randomRandomMap = new HashMap<>();
|
||||||
|
CommonProto.Drop.Builder baseBuilder = CommonProto.Drop.newBuilder();
|
||||||
|
CommonProto.Drop.Builder randomBuilder = CommonProto.Drop.newBuilder();
|
||||||
for(AdventureStateInfo adventureStateInfoTmp:adventureStateInfoMap.values()) {
|
for(AdventureStateInfo adventureStateInfoTmp:adventureStateInfoMap.values()) {
|
||||||
int positionTmp = adventureStateInfoTmp.getPosition();
|
int positionTmp = adventureStateInfoTmp.getPosition();
|
||||||
if (position != -1 && positionTmp != position) {
|
if (position != -1 && positionTmp != position) {
|
||||||
|
@ -355,32 +366,58 @@ public class CombatLogic {
|
||||||
SAdventureConfig sAdventureConfig = SAdventureConfig.getConfig().get(positionTmp);
|
SAdventureConfig sAdventureConfig = SAdventureConfig.getConfig().get(positionTmp);
|
||||||
int baseRewardGroup[] = sAdventureConfig.getBaseRewardGroup();
|
int baseRewardGroup[] = sAdventureConfig.getBaseRewardGroup();
|
||||||
int[][] randomRewardGroup = sAdventureConfig.getRandomRewardGroup();
|
int[][] randomRewardGroup = sAdventureConfig.getRandomRewardGroup();
|
||||||
ItemUtil.activityDrop(user, dropBuilder, new int[]{baseRewardGroup[adventureStateInfoTmp.getLevel()-1]}, times);
|
ItemUtil.combineReward(new int[]{baseRewardGroup[adventureStateInfoTmp.getLevel()-1]}, times,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||||
ItemUtil.activityDrop(user, dropBuilder, randomRewardGroup[adventureStateInfoTmp.getLevel()-1], times);
|
int timesTemp =times;
|
||||||
|
while (timesTemp-->0){
|
||||||
|
ItemUtil.combineReward(randomRewardGroup[adventureStateInfoTmp.getLevel()-1], 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return dropBuilder;
|
ItemUtil.drop(user,baseBuilder,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||||
|
ItemUtil.drop(user,randomBuilder,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap);
|
||||||
|
Map<Integer, CommonProto.Drop> result = new HashMap<>(2);
|
||||||
|
result.put(1,baseBuilder.build());
|
||||||
|
result.put(2,randomBuilder.build());
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private CommonProto.Drop.Builder getAdventureFastReward(User user,int timeDuration) throws Exception {
|
private Map<Integer,CommonProto.Drop> getAdventureFastReward(User user,int timeDuration) throws Exception {
|
||||||
AdventureManager adventureManager = user.getAdventureManager();
|
AdventureManager adventureManager = user.getAdventureManager();
|
||||||
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
|
|
||||||
Map<Integer, AdventureStateInfo> adventureStateInfoMap = adventureManager.getAdventureStateInfoMap();
|
Map<Integer, AdventureStateInfo> adventureStateInfoMap = adventureManager.getAdventureStateInfoMap();
|
||||||
int now = (int)(System.currentTimeMillis()/1000);
|
int now = (int)(System.currentTimeMillis()/1000);
|
||||||
SGameSetting gameSetting = SGameSetting.getGameSetting();
|
SGameSetting gameSetting = SGameSetting.getGameSetting();
|
||||||
int adventureRefresh = gameSetting.getAdventureRefresh();
|
int adventureRefresh = gameSetting.getAdventureRefresh();
|
||||||
int times = (now - timeDuration) / adventureRefresh;
|
int times = (now - timeDuration) / adventureRefresh;
|
||||||
|
Map<Integer, Integer> baseItemMap = new HashMap<>();
|
||||||
|
Map<Integer, Integer> baseCardMap = new HashMap<>();
|
||||||
|
Map<Integer, Integer> baseEquipMap = new HashMap<>();
|
||||||
|
Map<Integer,Integer> baseRandomMap = new HashMap<>();
|
||||||
|
|
||||||
|
Map<Integer, Integer> randomItemMap = new HashMap<>();
|
||||||
|
Map<Integer, Integer> randomCardMap = new HashMap<>();
|
||||||
|
Map<Integer, Integer> randomEquipMap = new HashMap<>();
|
||||||
|
Map<Integer,Integer> randomRandomMap = new HashMap<>();
|
||||||
|
CommonProto.Drop.Builder baseBuilder = CommonProto.Drop.newBuilder();
|
||||||
|
CommonProto.Drop.Builder randomBuilder = CommonProto.Drop.newBuilder();
|
||||||
for(AdventureStateInfo adventureStateInfoTmp:adventureStateInfoMap.values()) {
|
for(AdventureStateInfo adventureStateInfoTmp:adventureStateInfoMap.values()) {
|
||||||
int positionTmp = adventureStateInfoTmp.getPosition();
|
int positionTmp = adventureStateInfoTmp.getPosition();
|
||||||
if (times > 0) {
|
if (times > 0) {
|
||||||
SAdventureConfig sAdventureConfig = SAdventureConfig.getConfig().get(positionTmp);
|
SAdventureConfig sAdventureConfig = SAdventureConfig.getConfig().get(positionTmp);
|
||||||
int baseRewardGroup[] = sAdventureConfig.getBaseRewardGroup();
|
int baseRewardGroup[] = sAdventureConfig.getBaseRewardGroup();
|
||||||
int[][] randomRewardGroup = sAdventureConfig.getRandomRewardGroup();
|
int[][] randomRewardGroup = sAdventureConfig.getRandomRewardGroup();
|
||||||
ItemUtil.activityDrop(user, dropBuilder, new int[]{baseRewardGroup[adventureStateInfoTmp.getLevel()-1]}, times);
|
ItemUtil.combineReward(new int[]{baseRewardGroup[adventureStateInfoTmp.getLevel()-1]}, times,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||||
ItemUtil.activityDrop(user, dropBuilder, randomRewardGroup[adventureStateInfoTmp.getLevel()-1], times);
|
int timesTemp =times;
|
||||||
|
while (timesTemp-->0){
|
||||||
|
ItemUtil.combineReward(randomRewardGroup[adventureStateInfoTmp.getLevel()-1], 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return dropBuilder;
|
ItemUtil.drop(user,baseBuilder,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||||
|
ItemUtil.drop(user,randomBuilder,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap);
|
||||||
|
Map<Integer, CommonProto.Drop> result = new HashMap<>(2);
|
||||||
|
result.put(1,baseBuilder.build());
|
||||||
|
result.put(2,randomBuilder.build());
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -70,6 +70,17 @@ public class ItemUtil {
|
||||||
addCard(user, cardMap, dropBuilder);
|
addCard(user, cardMap, dropBuilder);
|
||||||
addEquip(user, equipMap, dropBuilder);
|
addEquip(user, equipMap, dropBuilder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void getactivityDropInfo(int[] dropGroupIds, float dropRatio, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap, Map<Integer, Integer> equipMap ,Map<Integer, Integer> randomMap) throws Exception {
|
||||||
|
for (int dropGroupId : dropGroupIds) {
|
||||||
|
SRewardGroup sRewardGroup = SRewardGroup.getsRewardItemMap().get(dropGroupId);
|
||||||
|
if (sRewardGroup == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
selectDrop(sRewardGroup, itemMap, cardMap, equipMap, randomMap, dropRatio);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//掉落组概率
|
//掉落组概率
|
||||||
public static CommonProto.Drop.Builder drop(User user, Map<int [],Float> dropGroupAndRatioMap) throws Exception {
|
public static CommonProto.Drop.Builder drop(User user, Map<int [],Float> dropGroupAndRatioMap) throws Exception {
|
||||||
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
|
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
|
||||||
|
@ -115,7 +126,6 @@ public class ItemUtil {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param user
|
|
||||||
* @param dropGroupIds
|
* @param dropGroupIds
|
||||||
* @param dropRatio
|
* @param dropRatio
|
||||||
* @return
|
* @return
|
||||||
|
@ -136,6 +146,23 @@ public class ItemUtil {
|
||||||
return getReward(itemMap,cardMap,equipMap,randomMap);
|
return getReward(itemMap,cardMap,equipMap,randomMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void combineReward(int[] dropGroupIds,float dropRatio, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap, Map<Integer, Integer> equipMap, Map<Integer, Integer> randomMap){
|
||||||
|
for (int dropGroupId :dropGroupIds){
|
||||||
|
SRewardGroup sRewardGroup = SRewardGroup.getsRewardItemMap().get(dropGroupId);
|
||||||
|
if (sRewardGroup == null){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
selectDrop(sRewardGroup,itemMap,cardMap,equipMap,randomMap,dropRatio);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void drop(User user,CommonProto.Drop.Builder dropBuilder,Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap, Map<Integer, Integer> equipMap, Map<Integer, Integer> randomMap) throws Exception {
|
||||||
|
useRandomItem(user, randomMap);
|
||||||
|
addItem(user, itemMap, dropBuilder);
|
||||||
|
addCard(user, cardMap, dropBuilder);
|
||||||
|
addEquip(user, equipMap, dropBuilder);
|
||||||
|
}
|
||||||
|
|
||||||
private static String getReward(Map<Integer, Integer> itemMap,Map<Integer, Integer> cardMap,Map<Integer, Integer> equipMap, Map<Integer,Integer> randomMap) {
|
private static String getReward(Map<Integer, Integer> itemMap,Map<Integer, Integer> cardMap,Map<Integer, Integer> equipMap, Map<Integer,Integer> randomMap) {
|
||||||
StringBuilder reward= new StringBuilder();
|
StringBuilder reward= new StringBuilder();
|
||||||
for (Map.Entry<Integer, Integer> entry : itemMap.entrySet()){
|
for (Map.Entry<Integer, Integer> entry : itemMap.entrySet()){
|
||||||
|
|
Loading…
Reference in New Issue