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";
}
}