Не могу разобраться с GUI

Делаю GUI по туториалу , раздел GUI. Не могу разобраться, какие значения в X Y Z вставлять? Вот кстати само действие :
Код:
player.openGui(TestMod.instance, guiID, world, x, y, z);

Помогите пожалуйста!
 
Хочу прикрепить действие к блоку из мода, когда его ломаешь.
 
Лисенок написал(а):
какие значения в X Y Z вставлять?
Координаты, желательно координаты где это gui открывается:
если gui блока - то координаты блока,
если открывает gui игрок, то координаты игрока (либо по нулям выставлять).
 
timaxa007 написал(а):
Лисенок написал(а):
какие значения в X Y Z вставлять?
Координаты, желательно координаты где это gui открывается:
если gui блока - то координаты блока,
если открывает gui игрок, то координаты игрока (либо по нулям выставлять).
Ругается падла, если по нулям выставлять. А как выставить корды блока или ентити (в моем случае игрок)
 
Лисенок написал(а):
в моем случае игрок
Версию ты не указал, но для 1.7.10 примерно так:
Код:
player.openGui(TestMod.instance, id, player.worldObj, (int)player.posX, (int)player.posY, (int)player.posZ);
 
timaxa007 написал(а):
Лисенок написал(а):
в моем случае игрок
Версию ты не указал, но для 1.7.10 примерно так:
Код:
player.openGui(TestMod.instance, id, player.worldObj, (int)player.posX, (int)player.posY, (int)player.posZ);
Моя версия - 1.6.4
[merge_posts_bbcode]Добавлено: 31.07.2015 20:41:12[/merge_posts_bbcode]

Крч, немного разобрался, но все равно ругается. Вот само действие:

Код:
player.openGui(CoreMod.instance, gui, world, player.posX, player.posY, player.posZ);
Код самого блока:

Код:
package com.minez.blocks;
 
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;

import com.minez.coremod.CoreMod;
import com.minez.coremod.ModInformation;
import com.minez.coremod.MyGui;
 
public class BlockTest extends Block
{
    protected BlockTest(int par1)
    {
        super(par1, Material.snow);
        this.setCreativeTab(CreativeTabs.tabTools);
        setTextureName(ModInformation.MODID.toLowerCase() + ":testBlock");
    }
    public void breakBlock(EntityPlayer player, World world, MyGui gui)
    {
        player.openGui(CoreMod.instance, gui, world, player.posX, player.posY, player.posZ);
    }
}


Ошибка указывает на player.opengui  пишет:
Код:
The method openGui(Object, int, World, int, int, int) in the type EntityPlayer is not applicable for the arguments (CoreMod, MyGui, World, double, double, double)
Что ему не нравится? Вроде все правильно.
 
krok, не понял?
 
Не понял. Можно меня просветить?
 
Лисенок написал(а):
Код:
player.openGui(CoreMod.instance, gui, world, player.posX, player.posY, player.posZ);
Методу openGui нужно давать координаты в Integer значении, а координаты игрока в значениях Double. Нужно Double значения привести к Integer значениям.
Код:
player.openGui(CoreMod.instance, gui, world, (int)player.posX, (int)player.posY, (int)player.posZ);
 
Agravaine написал(а):
Это уже не смешно. Тут надо хотя бы знать типы переменных. Марш джаву учить!
P.S Ты ему даешь дробное число, а он просит целое.
Это уж точно :D
[merge_posts_bbcode]Добавлено: 31.07.2015 21:03:01[/merge_posts_bbcode]

GUI не вызывается.
Метод BreakBlock
 
GuiHandler:

Код:
package com.minez.coremod;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import cpw.mods.fml.common.network.IGuiHandler;

public class GuiHandler implements IGuiHandler {

    @Override
    public Object getServerGuiElement(int guiID, EntityPlayer player, World world, int x, int y, int z){
        switch(guiID){
            case 0:
                return new MyGui();
            default:
                return null;
        }
    }
    @Override
    public Object getClientGuiElement(int guiID, EntityPlayer player, World world, int x, int y, int z) {
        switch(guiID){
            case 0:
                return new MyGui();
            default:
                return null;
        }
    }
}
 
Лисенок написал(а):
Код:
public void breakBlock(EntityPlayer player, World world, MyGui gui)
И как у тебя этот метод должен заработать?
 
timaxa007 написал(а):
Лисенок написал(а):
Код:
public void breakBlock(EntityPlayer player, World world, MyGui gui)
И как у тебя этот метод должен заработать?
Насколько я понял, этот метод срабатывает, когда ломаешь блок. Наверно я не тот метод нашел :(
 
Метод да, но не с такими аргументами как у тебя. Я не знаю как будет выглядит на 1.6.4, но на 1.7.10:
Код:
@Override
public void breakBlock(World world, int x, int y, int z, Block block, int meta) {
super.breakBlock(world, x, y, z, block, meta);
player.openGui(CoreMod.instance, 0, world, (int)player.posX, (int)player.posY, (int)player.posZ);
}
[merge_posts_bbcode]Добавлено: 31.07.2015 20:14:18[/merge_posts_bbcode]

Лисенок написал(а):
Код:
    public Object getServerGuiElement(int guiID, EntityPlayer player, World world, int x, int y, int z){
        switch(guiID){
            case 0:
                return new MyGui();
Будет краш (скорее всего на сервере), так как Gui это клиентский класс.
 
Назад
Сверху