Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
Координаты, желательно координаты где это gui открывается:Лисенок написал(а):какие значения в X Y Z вставлять?
Ругается падла, если по нулям выставлять. А как выставить корды блока или ентити (в моем случае игрок)timaxa007 написал(а):Координаты, желательно координаты где это gui открывается:Лисенок написал(а):какие значения в X Y Z вставлять?
если gui блока - то координаты блока,
если открывает gui игрок, то координаты игрока (либо по нулям выставлять).
Версию ты не указал, но для 1.7.10 примерно так:Лисенок написал(а):в моем случае игрок
player.openGui(TestMod.instance, id, player.worldObj, (int)player.posX, (int)player.posY, (int)player.posZ);
Моя версия - 1.6.4timaxa007 написал(а):Версию ты не указал, но для 1.7.10 примерно так:Лисенок написал(а):в моем случае игрок
Код:player.openGui(TestMod.instance, id, player.worldObj, (int)player.posX, (int)player.posY, (int)player.posZ);
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);
}
}
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)
Нужны координаты в Integer значении.Лисенок написал(а):Что ему не нравится?
Методу openGui нужно давать координаты в Integer значении, а координаты игрока в значениях Double. Нужно Double значения привести к Integer значениям.Лисенок написал(а):Код:player.openGui(CoreMod.instance, gui, world, player.posX, player.posY, player.posZ);
player.openGui(CoreMod.instance, gui, world, (int)player.posX, (int)player.posY, (int)player.posZ);
Это уж точноAgravaine написал(а):Это уже не смешно. Тут надо хотя бы знать типы переменных. Марш джаву учить!
P.S Ты ему даешь дробное число, а он просит целое.
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)
@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);
}
Будет краш (скорее всего на сервере), так как Gui это клиентский класс.Лисенок написал(а):Код:public Object getServerGuiElement(int guiID, EntityPlayer player, World world, int x, int y, int z){ switch(guiID){ case 0: return new MyGui();