Jump to content

Senitiel

Members
  • Posts

    66
  • Joined

  • Last visited

Everything posted by Senitiel

  1. Version 1.6.2 released Someone was bugging me to add configurable blaster griefing property, so I added it, alongside with some more customization. One may now modify: -Laser, Blaster shooting damage -Laser,Blaster, Power Fist melee damage -Blaster explosion radius -Blaster griefing (can be completely disabled) -Rocket boots jump strength -Rocket boots fall resistance (can be increased to make jumping easier) -Power fist knockback
  2. Updated to 1.6.2. Finally, this update was a real pain in the ass, but I think the changes in Vanilla were for the better. It should be now easier to make resource packs for mods and so on.
  3. I'm not sure if You have tried this, I'm not 100% sure, that it will work. I had a similar issue, and I've been really pissed off, because I was sure i do everything just like in the tutorial, so eventually I created the most basic tutorial example following it step by step, even with the names. It worked. I tried to find the difference between my mod and this simple generic tutorial, but I couldn't find any. Then I messed up a little with the basic example to see how I can make it screwed again, and i turned out that UPPERCASE LETTERS WERE THE CASE. I renamed my mod folders to all lowercase, without spaces, changed modID to lowercase and it worked. Png files themselves didn't have to be changed to lowercase, thanks God. Shitty bug if You ask me.
  4. I managed to solve it on my own. Strange thing is, that moving send packet method from some free class to a class deriving from Item solved it. I have no idea why that's so.
  5. I have a key handler, which works fine in SSP, but causes server crash, when used in SMP. I'm not sure why that's so, because other packets, sent in some item classes (onUpdate method) are delivered and handled just fine. I can't figure out what's going wrong here, and believe me, I have spent several hours trying to understand or bypass it, to no avail - any help would be appreciated. Crash log Main mod class relevant part Packet Handler Key handler code Send packet method
  6. Thanks, diesieben07, I couldn't figure it out, ant it turns out to be so simple. Solution This, however, leaves me completely idea-less when it comes to server crash. Crash-log Mentioned line 37 in packet handler: FireModeHanlder.handlePacket is blank And send packet, called on key press looks like this: I'm not sure why it fails. I've been sending packets before, but then I always had EntityPlayer from onUpdate and onItemRightClick methods, I didn't use Minecraft.getMinecraft() before.
  7. I have a problem i couldn't solve on my own for more than a day. It seems, that keyHandler code is called not only on the client side, but also on the server side, which sucks. I wanted to use this keybind to toggle flag, which means that two packets are sent and the flag is toggled twice, staying the same. Plus, it makes "real server" crash, if any player presses the button. Key handler code: Client Proxy Packet Handler Post Init method of main mod class Did anybody experience similar problem? Does anyone know of how to correctly do a keybinding? Is it a FML bug perhaps, because I'm not sure if client/server side checkers work correctly now?
  8. Do You have any other items which don't share this issue? Or is it the first item You've created so far, if so, post code responsible for creating and registering this item.
  9. Crashes in recipes usually occur, when You have a typo in pattern, when You have a pattern wider or narrower than 3. Test, if it's only cocoa beans, or any other item, that causes the crash. But thats just my first, wild guess. Posting Your crash log or (the logic or, which means or/and) code would help.
  10. Again: post Your code. Don't worry, nobody will steal it. (At least I won't) Precisely, post code responsible for building the portal on the other side and code handling Entities entering Your portal. Then I'll be able to tell You, where Your bug is. Because from what You've told so far I'm pretty sure You have to fix something in mentioned parts of code, but I suppose You don't know how to do that. Post the code, then You'll get help.
  11. First, don't be so impatient. You're saying, that You can go to Your dimension, but to return to overworld You have to step into the Nether first, and then go to nether portal once again to get back to overworld? You probably forgot to generate a valid portal on the other side, or are providing nether id instead of overworld id in Your dimension in portal block code. Well, If You have problems with it, please post relevant code. And please post it using \[code\] tags.
  12. Updated to 1.5.2 version. Not much changed, as update caught me in the middle of coding new stuff. I apologize for any bugs I may have let slip through quick tests. Please notify me in case You find any.
  13. My ideas: - did You run recompile.bat? Because You may have run it before, and now it uses older, buggy version - check for strings fed in @SidedProxy() in main mod file, especially for upper/lower case - do You use any national characters in class names? Like ę ą ó ł ś ć? Because this may cause problems - or check for upper/lower case in file names, maybe that's the case. It clearly doesn't find ESteelBase, but at first glance folder structure seems legit.
  14. Click Minecraft package, Run->Run as->Java Application, then choose Minecraft Server from menu
  15. You've put your setup in zip, but what's Your setup in Eclipse?
  16. Either world or tle is null. First, do an: if(tle!=null) { world.destroyBlock((int)tle.px, par3, par4, true); } If it still shrieks about null, then world is null, which probably would mean You're calling onBlockDestroyedByPlayer some weird way.
  17. In Your BlockTestPortal create a method public boolean tryToCreatePortal(World par1World, int par2, int par3, int par4) { byte b0 = 0; byte b1 = 0; if (par1World.getBlockId(par2 - 1, par3, par4) == Block.obsidian.blockID || par1World.getBlockId(par2 + 1, par3, par4) == Block.obsidian.blockID) { b0 = 1; } if (par1World.getBlockId(par2, par3, par4 - 1) == Block.obsidian.blockID || par1World.getBlockId(par2, par3, par4 + 1) == Block.obsidian.blockID) { b1 = 1; } if (b0 == b1) { return false; } else { if (par1World.getBlockId(par2 - b0, par3, par4 - b1) == 0) { par2 -= b0; par4 -= b1; } int l; int i1; for (l = -1; l <= 2; ++l) { for (i1 = -1; i1 <= 3; ++i1) { boolean flag = l == -1 || l == 2 || i1 == -1 || i1 == 3; if (l != -1 && l != 2 || i1 != -1 && i1 != 3) { int j1 = par1World.getBlockId(par2 + b0 * l, par3 + i1, par4 + b1 * l); if (flag) { if (j1 != Block.obsidian.blockID) { return false; } } else if (j1 != 0 && j1 != GaaraMod.blockIgnitor.blockID) { return false; } } } } for (l = 0; l < 2; ++l) { for (i1 = 0; i1 < 3; ++i1) { par1World.setBlock(par2 + b0 * l, par3 + i1, par4 + b1 * l, GaaraMod.testPortal.blockID, 0, 2); } } return true; } } Then, in IgnitorBlock, in onBlockAdded, change the first if to include Your portalBlock public void onBlockAdded(World par1World, int par2, int par3, int par4) { if (par1World.provider.dimensionId > 0 || par1World.getBlockId(par2, par3 - 1, par4) != Block.obsidian.blockID || ![b]GaaraMod.testPortal[/b].tryToCreatePortal(par1World, par2, par3, par4)) ...
  18. Well, You created Your own fire class, which is not a bad idea, but You also have to create Your custom portal class. In the new PortalBlock, override OnEntityCollidedWithBlock method, to send Entity into Your dimension (If You have any trouble with it, check code of Vanilla portal blocks (Ender or Nether)). Then in Your fireBlock, in onblockPlaced method, if obsidian criteria is met (check neighboring block ids, it doesn't need to be obsidian in fact), place a few PortalBlocks in desired shape. I'm not sure, if it's the best and cleanest solution, but I think this should do the trick. Just be careful with custom portal block, as from what I remember, they tend to disappear if they're not supported by obsidian blocks, You may need to trim it a little.
  19. From little things: do You call proxy.registerRenderers(); in Your mod Load method? If it's not it, i would suggest placing lots of System.out.println() in Your render methods, to figure out what code is or isn't called, or if something, which is supposed to be non-zero and non-null is what it's supposed to be. Also: You may try spawning PrimedNukes with a RightClick item, to see if Your issue is related to entity spawning, or to Entity itself.
  20. I was wondering, if there's any way of changing player arms position. When player aims a bow, or swings an item, arms position is modified. For the bow unfortunately, I noticed it's done in player rendering method. Are there any hooks, which would allow us to raise player's arms without changing vanilla classes?
  21. Try adding this: EntityRegistry.registerGlobalEntityID(EntityNukePrimed.class, "NukePrimed", ModLoader.getUniqueEntityId()); in clientProxy register Renders method - before calling RenderingRegistry.registerEntityRenderingHandler(EntityNukePrimed.class, new RenderNukePrimed()); Helps?
  22. Hmm, I took a closer look at Your code. In survivalChaos, change this line public static Block campfire = new BlockCampfire(508, Material.wood).setUnlocalizedName("campfire").setCreativeTab(CreativeTabs.tabDecorations); And add a field: public static int campfireRenderId = -12;//Any number, but I'm not sure if the range isn't limited somehow BlockCampfire @Override public int getRenderType() { return SurvivalCHaos.blockCampfireRenderId; } In clientproxy RenderingRegistry.registerBlockHandler(SurvivalChaos.campfireRenderId, CampfireRender.getInstance()); In CampfireRender add this: public static CampfireRender instance; public static ISimpleBlockRenderingHandler getInstance() { if(instance==null) { instance = new CampfireRender(); } return instance; } change this: @Override public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { return false; } to something like this: TileEntity tempTile = world.getBlockTileEntity(x, y, z); if(tempTile!=null) { renderTileEntityAt(tempTile,(double)x,(double)y,(double)z,1.0F); return true; } return false; Also remember to call aModel.render method after pushmatrix and before popmatrix in renderAModelAt
  23. Hmm, I took a closer look at Your code. In survivalChaos, change this line public static Block campfire = new BlockCampfire(508, Material.wood).setUnlocalizedName("campfire").setCreativeTab(CreativeTabs.tabDecorations); And add a field: public static int campfireRenderId = -12;//Any number, but I'm not sure if the range isn't limited somehow BlockCampfire @Override public int getRenderType() { return SurvivalCHaos.blockCampfireRenderId; } In clientproxy RenderingRegistry.registerBlockHandler(SurvivalChaos.campfireRenderId, CampfireRender.getInstance()); In CampfireRender add this: public static CampfireRender instance; public static ISimpleBlockRenderingHandler getInstance() { if(instance==null) { instance = new CampfireRender(); } return instance; } change this: @Override public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { return false; } to something like this: TileEntity tempTile = world.getBlockTileEntity(x, y, z); if(tempTile!=null) { renderTileEntityAt(tempTile,(double)x,(double)y,(double)z,1.0F); return true; } return false; Also remember to call aModel.render method after pushmatrix and before popmatrix in renderAModelAt
  24. When You kill an Enderman, which has been starring at You, You will still hear the starring sound. So I suppose there isn't any ready functionality to do that. At least, I don't know about anything like that. You could try to bypass that, splitting Your sounds into shorter pieces, and then playing them one after another, and checking, if You shouldn't stop playing them at some point.
  25. When You kill an Enderman, which has been starring at You, You will still hear the starring sound. So I suppose there isn't any ready functionality to do that. At least, I don't know about anything like that. You could try to bypass that, splitting Your sounds into shorter pieces, and then playing them one after another, and checking, if You shouldn't stop playing them at some point.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.