每个(x)的Fire事件都在Java中传递?

时间:2014-05-07 01:59:51

标签: java minecraft bukkit

好的,我正在创建一个使用此事件的bukkit插件:

public void onCreatureSpawn(CreatureSpawnEvent e) {
    // Do stuff
}

在事件内部我需要和if语句每次(x)时间触发Creature事件。

例如,如果生成了10个生物,那么10个生物,我需要if语句才能射击2次。

在这两种生物中,其中2种将获得特殊的特征。我的问题是,我怎么能这样做呢?这句话只会在多次被解雇的情况下触发(x)?

我也尝试过以下示例中的内容,但遇到了一些问题:

int outOf = Plugin.getConfig().getInt("armourSpawn");
int count = 1;
if(count%outOf==0) {
    // This will fire (x) out of (x) times
}

count++;

基本上,用户将选择(x)10个怪物将在配置中具有某些特征。

产生的所有生物(怪物)中我想要具有特征的(x)到10的比例。

1 个答案:

答案 0 :(得分:1)

为了更好地说明随机选择解决方案:

import java.util.Random;

Random rand = new Random();
int percentage = 25; //Set this to whatever percentage you want.

public void onCreatureSpawn(CreatureSpawnEvent e) {
  //This will generate a number between 0 and 99 (inclusive)
  int generatedNumber = rand.nextInt(100);

  //If the generated number is smaller than the percentage you chose, you have "success".
  if(generatedNumber < percentage){
    addCharacteristic(creature, characteristic);
  }else{
    //Do whatever you need to normally.
  }
}