Вопрос по эффектам

Версия Minecraft
1.6.4
Как прописать эффект , чтобы он срабатывал с некоторым шансом?

package assets.testmod.src;

import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemFood;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.world.World;

public class Cola extends ItemFood {

public Cola(int par1, int par2, float par3, boolean par4)
{
super(par1, par2, par4);
maxStackSize = 4;
}
@Override
public void registerIcons(IconRegister par1IconRegister)
{
this.itemIcon = par1IconRegister.registerIcon(ModInfo.MODID + ":Cola"); }

public ItemStack onFoodEaten(ItemStack is, World world, EntityPlayer player)
{
player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 200, 0));
return is;
} }
 
Последнее редактирование:
683
3
21
АХТУНГ! писал все тут ничего не проверено
Код:
Random randomeffect = new Random();
int a = 0;
int b = 10;
int random_number = a + (int) (Math.random() * b);
if(random_number < 5 )
{
player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 200, 0));
return is;
}
 

timaxa007

Модератор
5,831
409
672
@tiref и желательно давать эффект под условием if (!world.isRemote) или иначе можно получить эффект на клиентской части, который на серверной стороне не работает.
 
683
3
21
@timaxa007 , так?
Java:
if(!world.isRemote){
Random randomeffect = new Random();
int a = 0;
int b = 10;
int random_number = a + (int) (Math.random() * b);
if(random_number < 5 )
{
player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 200, 0));
return is;
}
}
 
Последнее редактирование:
Типа да. Можно Random и другие переменные тоже внутри этого условия всунуть.
Код:
package assets.testmod.src;

import java.util.Random;

import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemFood;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.world.World;

public class Cola extends ItemFood {
    
    public Cola(int par1, int par2, float par3, boolean par4)
    {
    super(par1, par2, par4);
    maxStackSize = 8;
    }
    @Override
    public void registerIcons(IconRegister par1IconRegister)
    {
    this.itemIcon = par1IconRegister.registerIcon(ModInfo.MODID + ":Cola"); }

public ItemStack onFoodEaten(ItemStack is, World world, EntityPlayer player) {

    Random randomeffect = new Random();
    int a = 0;
    int b = 10;
    int random_number = a + (int) (Math.random() * b);
    if(!world.isRemote)
    if(random_number < 9 )
    {
    {
    player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 200, 0));
    

} }
    return is; } }



Эффекты не работают на сервере. В чем причина?
 
У тебя после if(!world.isRemote) нет скобки, она ниже.
Код:
public ItemStack onFoodEaten(ItemStack is, World world, EntityPlayer player) {

    Random randomeffect = new Random();
    int a = 0;
    int b = 10;
    int random_number = a + (int) (Math.random() * b);
    if(!world.isRemote) {
    if(random_number < 9 )
    {
    {
    player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 200, 0));
    

} }
     }
    return is; }}
Так?
 
1,057
50
234
можно random из world дергать
 
Типа да. Можно Random и другие переменные тоже внутри этого условия всунуть.
Код:
package assets.testmod.src;

import java.util.Random;

import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemFood;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.world.World;

public class Cola extends ItemFood {
    
    public Cola(int par1, int par2, float par3, boolean par4)
    {
    super(par1, par2, par4);
    maxStackSize = 8;
    }
    @Override
    public void registerIcons(IconRegister par1IconRegister)
    {
    this.itemIcon = par1IconRegister.registerIcon(ModInfo.MODID + ":Cola"); }

public ItemStack onFoodEaten(ItemStack is, World world, EntityPlayer player) {
    if(!world.isRemote) {
    Random randomeffect = new Random();
    int a = 0;
    int b = 10;
    int random_number = a + (int) (Math.random() * b);
    
    if(random_number < 9 )
    {
    {
    player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 200, 0));
    

} }
     }
    return is; }}
 
Сверху