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];
|
||||
}
|
||||
|
||||
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);
|
||||
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 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();
|
||||
fightEndResponse.setEnventDrop(drop);
|
||||
|
|
|
@ -17,12 +17,39 @@ public class SGuildBossRewardConfig implements BaseConfig {
|
|||
|
||||
private int[][] randomReward;
|
||||
|
||||
private int[][][] randomRewardAllGroup;
|
||||
|
||||
|
||||
private static TreeMap<Integer, SGuildBossRewardConfig> sGuildBossHurtRewardConfig;
|
||||
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
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<>();
|
||||
config.values().forEach(item ->sGuildBossHurtRewardConfigTmp.put(item.getDamage(),item));
|
||||
sGuildBossHurtRewardConfig = sGuildBossHurtRewardConfigTmp;
|
||||
|
@ -48,4 +75,20 @@ public class SGuildBossRewardConfig implements BaseConfig {
|
|||
public int[][] getRandomReward() {
|
||||
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