[Проблема] [MOD_FORGE] В создании мода столкнулся с одной проблемой

cookie_Dice

Активный участник
Баллы
78
Имя в Minecraft
Unknown_
Простите за оффтоп, но проблема насущная, которая позволит решить много проблем. Есть игрок, есть высота. Надо сделать так, что бы игрок, пересекая определенную высоту получал урон после некоторого времени, а именно после 35 секунд, по 1 хп в секунду. Вот собственно код, который я пробовал написать, но что то он не работает. Подскажите как решить проблему.
Код:
package com.metro2033.radiation;
 
import java.util.EnumSet;
 
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityClientPlayerMP;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.item.ItemStack;
 
import org.lwjgl.opengl.GL11;
 
import com.metro2033.METRO;
import com.metro2033.gui.GasMaskOverlay;
 
import cpw.mods.fml.common.ITickHandler;
import cpw.mods.fml.common.TickType;
 
public class Radiation implements ITickHandler
{   
    byte timer=0;
   
    @Override
    public void tickStart(EnumSet<TickType> type, Object... tickData) {}
 
    @Override
    public void tickEnd(EnumSet<TickType> type, Object... tickData)
    {
        if(Minecraft.getMinecraft().thePlayer==null) return;
        ItemStack helmet = Minecraft.getMinecraft().thePlayer.inventory.armorItemInSlot(3);
        if(Minecraft.getMinecraft().thePlayer.posY <= 70) return;
        if(helmet == null || helmet.itemID != METRO.GasMaskA1.itemID)
        {
            if(timer>35)
            {
                Minecraft.getMinecraft().thePlayer.setHealth(Minecraft.getMinecraft().thePlayer.getHealth()-1);
                timer=0;
            }
        timer++;
        }
    }
 
    @Override
    public EnumSet<TickType> ticks()
    {
        return EnumSet.of(TickType.RENDER);
    }
 
    @Override
    public String getLabel()
    {
        return "Radiation tick handler";
    }
 
}
 
Назад
Верх