Merge branch 'master' of http://60.1.1.230/backend/jieling_server
commit
3721397aa0
|
@ -205,6 +205,16 @@ public class MathUtils {
|
||||||
return array[index][0];
|
return array[index][0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int[] randomFromWeight(int[][][] arrays){
|
||||||
|
int[] result = new int[arrays.length];
|
||||||
|
int i=0;
|
||||||
|
for(int[][] array : arrays){
|
||||||
|
int index = randomFromWeightReturnIndex(array);
|
||||||
|
result[i++] = array[index][0];
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1105,9 +1105,9 @@ public class GuildFightLogic {
|
||||||
user.getGuildMyInfo().setLastHurt(myHurt);
|
user.getGuildMyInfo().setLastHurt(myHurt);
|
||||||
SGuildBossRewardConfig sGuildBossRewardConfig = SGuildBossRewardConfig.getIndexByHurt(myHurt);
|
SGuildBossRewardConfig sGuildBossRewardConfig = SGuildBossRewardConfig.getIndexByHurt(myHurt);
|
||||||
|
|
||||||
int randomGroupId = MathUtils.randomFromWeight(sGuildBossRewardConfig.getRandomReward());
|
int[] randomGroupIds = MathUtils.randomFromWeight(sGuildBossRewardConfig.getRandomRewardAllGroup());
|
||||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sGuildBossRewardConfig.getReward(), 1, 0, BIReason.GUILD_BOSS_FIGHT_BASE_REWARD);
|
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sGuildBossRewardConfig.getReward(), 1, 0, BIReason.GUILD_BOSS_FIGHT_BASE_REWARD);
|
||||||
CommonProto.Drop.Builder raadomDrop = ItemUtil.drop(user, new int[]{randomGroupId}, 1, 0, BIReason.GUILD_BOSS_FIGHT_RANDOM_REWARD);
|
CommonProto.Drop.Builder raadomDrop = ItemUtil.drop(user, randomGroupIds, 1, 0, BIReason.GUILD_BOSS_FIGHT_RANDOM_REWARD);
|
||||||
|
|
||||||
FightInfoProto.FightEndResponse.Builder fightEndResponse = FightInfoProto.FightEndResponse.newBuilder();
|
FightInfoProto.FightEndResponse.Builder fightEndResponse = FightInfoProto.FightEndResponse.newBuilder();
|
||||||
fightEndResponse.setEnventDrop(drop);
|
fightEndResponse.setEnventDrop(drop);
|
||||||
|
|
|
@ -17,12 +17,39 @@ public class SGuildBossRewardConfig implements BaseConfig {
|
||||||
|
|
||||||
private int[][] randomReward;
|
private int[][] randomReward;
|
||||||
|
|
||||||
|
private int[][][] randomRewardAllGroup;
|
||||||
|
|
||||||
|
|
||||||
private static TreeMap<Integer, SGuildBossRewardConfig> sGuildBossHurtRewardConfig;
|
private static TreeMap<Integer, SGuildBossRewardConfig> sGuildBossHurtRewardConfig;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() throws Exception {
|
public void init() throws Exception {
|
||||||
Map<Integer, SGuildBossRewardConfig> config = STableManager.getConfig(SGuildBossRewardConfig.class);
|
Map<Integer, SGuildBossRewardConfig> config = STableManager.getConfig(SGuildBossRewardConfig.class);
|
||||||
|
for(SGuildBossRewardConfig sGuildBossRewardConfig : config.values()){
|
||||||
|
int[] reward = sGuildBossRewardConfig.getReward();
|
||||||
|
int prelength=0;
|
||||||
|
int[] preReward=null;
|
||||||
|
int[][][] randomRewardAllGroupTmpPre=null;
|
||||||
|
if(sGuildBossRewardConfig.getId()!=1){
|
||||||
|
SGuildBossRewardConfig sGuildBossRewardConfigPre = config.get(sGuildBossRewardConfig.getId() - 1);
|
||||||
|
preReward=sGuildBossRewardConfigPre.getReward();
|
||||||
|
randomRewardAllGroupTmpPre=sGuildBossRewardConfigPre.getRandomRewardAllGroup();
|
||||||
|
prelength = preReward.length;
|
||||||
|
}
|
||||||
|
int rewardFinl[] = new int[reward.length+prelength];
|
||||||
|
System.arraycopy(reward,0,rewardFinl,0,reward.length);
|
||||||
|
sGuildBossRewardConfig.setReward(rewardFinl);
|
||||||
|
int[][][] randomRewardAllGroupTmp = new int[sGuildBossRewardConfig.getId()][][];
|
||||||
|
randomRewardAllGroupTmp[0] =sGuildBossRewardConfig.getRandomReward();
|
||||||
|
if(prelength>0){
|
||||||
|
System.arraycopy(preReward,0,rewardFinl,reward.length,preReward.length);
|
||||||
|
System.arraycopy(randomRewardAllGroupTmpPre,0,randomRewardAllGroupTmp,1,preReward.length);
|
||||||
|
}
|
||||||
|
sGuildBossRewardConfig.setRandomRewardAllGroup(randomRewardAllGroupTmp);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
TreeMap<Integer, SGuildBossRewardConfig> sGuildBossHurtRewardConfigTmp = new TreeMap<>();
|
TreeMap<Integer, SGuildBossRewardConfig> sGuildBossHurtRewardConfigTmp = new TreeMap<>();
|
||||||
config.values().forEach(item ->sGuildBossHurtRewardConfigTmp.put(item.getDamage(),item));
|
config.values().forEach(item ->sGuildBossHurtRewardConfigTmp.put(item.getDamage(),item));
|
||||||
sGuildBossHurtRewardConfig = sGuildBossHurtRewardConfigTmp;
|
sGuildBossHurtRewardConfig = sGuildBossHurtRewardConfigTmp;
|
||||||
|
@ -48,4 +75,20 @@ public class SGuildBossRewardConfig implements BaseConfig {
|
||||||
public int[][] getRandomReward() {
|
public int[][] getRandomReward() {
|
||||||
return randomReward;
|
return randomReward;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setReward(int[] reward) {
|
||||||
|
this.reward = reward;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRandomReward(int[][] randomReward) {
|
||||||
|
this.randomReward = randomReward;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[][][] getRandomRewardAllGroup() {
|
||||||
|
return randomRewardAllGroup;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRandomRewardAllGroup(int[][][] randomRewardAllGroup) {
|
||||||
|
this.randomRewardAllGroup = randomRewardAllGroup;
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue