-
Posts
892 -
Joined
-
Last visited
-
Days Won
1
Everything posted by Awesome_Spider
-
Well, I had that problem playing in 8u25 (on a forge modpack) did some research and I think 8u11 is safe (i think that's the one I'm on). There was a bug that forge was taking advantage of and in the latest java that bug was fixed. But you could always switch to Java 7 instead.
-
[1.7.2] [Solved] Updating Forge to 1.7.10?
Awesome_Spider replied to Awesome_Spider's topic in Modder Support
Ya it does. I think i'll just move my src into a Forge that is already 1.7.10. Thanks for the help. -
[1.7.2] [Solved] Updating Forge to 1.7.10?
Awesome_Spider replied to Awesome_Spider's topic in Modder Support
That's what caused the problem. Ok, I will try that. wish me luck. Edit: which one is it? In "Source", there is "Minecraft/src/main/java" and "Minecraft/src/mail/resourses". I think they are both required. But if not, which one do I delete? -
[1.7.2] [Solved] Updating Forge to 1.7.10?
Awesome_Spider replied to Awesome_Spider's topic in Modder Support
Well... I have a problem, I did what you said, and I opened it up after and it displayed an exclamation mark on the project. I looked at the errors and there is two. Error #1 says: "Build path duplicate entry: 'org.eclipse.jdt.launcher.JRE_CONTAINER' for project 'Minecraft'". And Error #2 says: "The project cannot be buit until build path errors are resolved". I think error #2 is the same thing wrong as Error #1, but I could be wrong. Help! -
[1.7.2] [Solved] Updating Forge to 1.7.10?
Awesome_Spider replied to Awesome_Spider's topic in Modder Support
Oh cool, easier than I thought. -
Wow, two questions in one day, lol. Ok so I want to know how to update to forge 1.7.10. My current version is 1.7.2 and I heard that has errors. So, how do I update my Forge? My best guess I that I copy my coding that I have already, and paste it in too the 1.7.10 forge, but I doubt I'm even close to right since I'm a beginner at modding. Thanks In advance.
-
Uhh... EternalDoom, what's windows 10? lol
-
I need some help How do I go about creating a dimension? I want to be structured kind of like the overworld, but with a custom type of stone and a custom type of grass and dirt. No trees. Oh and a custom type of liquid instead of water. I have already created the grass, dirt, and stone blocks. I need help with the rest (creating a dimension and creating a liquid).
-
So, I tryed to do a google search for this and came up with nothing. So i decided to come here to see if the experts can answer my question. My question is, how do I make an icon and text appear above the lives in game? For example, if you have seen flans mod, much like it does when it displays the ammo number when you have a gun, that is kind of like what I want. Thanks in advance.
-
Your welcome glad to help out!
-
1st of all, for what type to extend, that depends, do you want it to be peaceful? Do you want it to be aggressive? If peaceful: The EntityCreature class. If aggressive: The EntityMob class. 2nd of all, for strength, speed, life, etc, you use some code like this: protected void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20.0D); this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(40.0D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.23000000417232513D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(5.0D); } You could just paste that right in you mob class and change the values how you like. As for making mobs talk I don't know how other than recording your friend talking and incorporate the sound files from that... I'm not sure. Hope this helps.
-
[1.7.10] How to make Mobs Say Things
Awesome_Spider replied to gallifrey2000's topic in Modder Support
Do you mean actual words? If so just record the words and incorporate the sound file like a normal game sound. -
[Solved] None of the Entity AIs are working...
Awesome_Spider replied to Awesome_Spider's topic in Modder Support
Never thought of that... I will try that. Edit: Oh no way! It works, thx. -
[Solved] None of the Entity AIs are working...
Awesome_Spider replied to Awesome_Spider's topic in Modder Support
Ok, I will try that. Edit: Nope, that didn't work... -
So in my last topic my entity wasn't rendering, now I have another problem. My entity's AIs aren't working. I spawn one in and it doesn't move, attack or track anything. Here is the code for it: public class GreyMan extends EntityMob{ public GreyMan(World par1World) { super(par1World); this.isImmuneToFire = true; this.experienceValue = 10; this.getNavigator().setBreakDoors(true); this.tasks.addTask(0, new EntityAISwimming(this)); this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false)); this.tasks.addTask(4, new EntityAIAttackOnCollide(this, EntityVillager.class, 1.0D, true)); this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 1.0D)); this.tasks.addTask(6, new EntityAIMoveThroughVillage(this, 1.0D, false)); this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); this.tasks.addTask(8, new EntityAILookIdle(this)); this.tasks.addTask(9, new EntityAIOpenDoor(this, true)); this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, true)); this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true)); this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityVillager.class, 0, false)); this.setSize(0.6F, 1.8F); } protected void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20.0D); this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(40.0D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.23000000417232513D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(5.0D); } /** * Returns the sound this mob makes while it's alive. */ protected String getLivingSound() { return "mob.blaze.breathe"; } /** * Returns the sound this mob makes when it is hurt. */ protected String getHurtSound() { return "mob.blaze.hit"; } /** * Returns the sound this mob makes on death. */ protected String getDeathSound() { return "mob.blaze.death"; } protected void func_145780_a(int p_145780_1_, int p_145780_2_, int p_145780_3_, Block p_145780_4_) { this.playSound("mob.skeleton.step", 0.15F, 1.0F); } /** * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons * use this to react to sunlight and start to burn. */ public void onLivingUpdate() { if (this.isWet()) this.teleportRandomly(); } /** * Teleport the grey man to a random nearby position */ protected boolean teleportRandomly() { double d0 = this.posX + (this.rand.nextDouble() - 0.5D) * 64.0D; double d1 = this.posY + (double)(this.rand.nextInt(64) - 32); double d2 = this.posZ + (this.rand.nextDouble() - 0.5D) * 64.0D; return this.teleportTo(d0, d1, d2); } /** * Teleport the grey man */ protected boolean teleportTo(double par1, double par3, double par5) { EnderTeleportEvent event = new EnderTeleportEvent(this, par1, par3, par5, 0); if (MinecraftForge.EVENT_BUS.post(event)){ return false; } double d3 = this.posX; double d4 = this.posY; double d5 = this.posZ; this.posX = event.targetX; this.posY = event.targetY; this.posZ = event.targetZ; boolean flag = false; int i = MathHelper.floor_double(this.posX); int j = MathHelper.floor_double(this.posY); int k = MathHelper.floor_double(this.posZ); if (this.worldObj.blockExists(i, j, k)) { boolean flag1 = false; while (!flag1 && j > 0) { Block block = this.worldObj.getBlock(i, j - 1, k); if (block.getMaterial().blocksMovement()) { flag1 = true; } else { --this.posY; --j; } } if (flag1) { this.setPosition(this.posX, this.posY, this.posZ); if (this.worldObj.getCollidingBoundingBoxes(this, this.boundingBox).isEmpty() && !this.worldObj.isAnyLiquid(this.boundingBox)) { flag = true; } } } if (!flag) { this.setPosition(d3, d4, d5); return false; } else { short short1 = 128; for (int l = 0; l < short1; ++l) { double d6 = (double)l / ((double)short1 - 1.0D); float f = (this.rand.nextFloat() - 0.5F) * 0.2F; float f1 = (this.rand.nextFloat() - 0.5F) * 0.2F; float f2 = (this.rand.nextFloat() - 0.5F) * 0.2F; double d7 = d3 + (this.posX - d3) * d6 + (this.rand.nextDouble() - 0.5D) * (double)this.width * 2.0D; double d8 = d4 + (this.posY - d4) * d6 + this.rand.nextDouble() * (double)this.height; double d9 = d5 + (this.posZ - d5) * d6 + (this.rand.nextDouble() - 0.5D) * (double)this.width * 2.0D; this.worldObj.spawnParticle("portal", d7, d8, d9, (double)f, (double)f1, (double)f2); } this.worldObj.playSoundEffect(d3, d4, d5, "mob.endermen.portal", 1.0F, 1.0F); this.playSound("mob.endermen.portal", 1.0F, 1.0F); return true; } } } Any help is appreciated, if you need more info just ask.
-
[Solved] Entity not rendering properly. Help???
Awesome_Spider replied to Awesome_Spider's topic in Modder Support
Lol yep, works fine now. thx everyone! -
[Solved] Entity not rendering properly. Help???
Awesome_Spider replied to Awesome_Spider's topic in Modder Support
It's there now. Any other info you need? Oh and btw I know there is a version of registerGlobalEntityId that take colors, it just wasn't working for me. Edit: Wait a second... did you say I have to call registerRenderers? I think I just created it is all. I will try that -
[Solved] Entity not rendering properly. Help???
Awesome_Spider replied to Awesome_Spider's topic in Modder Support
Oh right... That would be in the main class of my mod. It's up there now. Sorry about the lack in code guys, I think that's all my entity's code. -
[Solved] Entity not rendering properly. Help???
Awesome_Spider replied to Awesome_Spider's topic in Modder Support
It's in there. The bottom block of code is the proxy. -
Is there any errors in your console? I get fileNotFound all the time. That's easy to fix. But we do need to know some of your info to answer your question.
-
[Solved] Entity not rendering properly. Help???
Awesome_Spider replied to Awesome_Spider's topic in Modder Support
Oh ya I forgot that code lol. It's up there now. -
So I recently added an entity to my mod. It is supposed to render a standard biped, but instead it renders like this: Here is the code: The entity's class: public class GreyMan extends EntityMob{ public GreyMan(World par1World) { super(par1World); this.isImmuneToFire = true; this.experienceValue = 10; this.getNavigator().setBreakDoors(true); this.tasks.addTask(0, new EntityAISwimming(this)); this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false)); this.tasks.addTask(4, new EntityAIAttackOnCollide(this, EntityVillager.class, 1.0D, true)); this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 1.0D)); this.tasks.addTask(6, new EntityAIMoveThroughVillage(this, 1.0D, false)); this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); this.tasks.addTask(8, new EntityAILookIdle(this)); this.tasks.addTask(9, new EntityAIOpenDoor(this, true)); this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, true)); this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true)); this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityVillager.class, 0, false)); this.setSize(0.6F, 1.8F); } protected void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20.0D); this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(40.0D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.23000000417232513D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(5.0D); } /** * Returns the sound this mob makes while it's alive. */ protected String getLivingSound() { return "mob.blaze.breathe"; } /** * Returns the sound this mob makes when it is hurt. */ protected String getHurtSound() { return "mob.blaze.hit"; } /** * Returns the sound this mob makes on death. */ protected String getDeathSound() { return "mob.blaze.death"; } protected void func_145780_a(int p_145780_1_, int p_145780_2_, int p_145780_3_, Block p_145780_4_) { this.playSound("mob.skeleton.step", 0.15F, 1.0F); } /** * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons * use this to react to sunlight and start to burn. */ public void onLivingUpdate() { if (this.isWet()) this.teleportRandomly(); } /** * Teleport the grey man to a random nearby position */ protected boolean teleportRandomly() { double d0 = this.posX + (this.rand.nextDouble() - 0.5D) * 64.0D; double d1 = this.posY + (double)(this.rand.nextInt(64) - 32); double d2 = this.posZ + (this.rand.nextDouble() - 0.5D) * 64.0D; return this.teleportTo(d0, d1, d2); } /** * Teleport the grey man */ protected boolean teleportTo(double par1, double par3, double par5) { EnderTeleportEvent event = new EnderTeleportEvent(this, par1, par3, par5, 0); if (MinecraftForge.EVENT_BUS.post(event)){ return false; } double d3 = this.posX; double d4 = this.posY; double d5 = this.posZ; this.posX = event.targetX; this.posY = event.targetY; this.posZ = event.targetZ; boolean flag = false; int i = MathHelper.floor_double(this.posX); int j = MathHelper.floor_double(this.posY); int k = MathHelper.floor_double(this.posZ); if (this.worldObj.blockExists(i, j, k)) { boolean flag1 = false; while (!flag1 && j > 0) { Block block = this.worldObj.getBlock(i, j - 1, k); if (block.getMaterial().blocksMovement()) { flag1 = true; } else { --this.posY; --j; } } if (flag1) { this.setPosition(this.posX, this.posY, this.posZ); if (this.worldObj.getCollidingBoundingBoxes(this, this.boundingBox).isEmpty() && !this.worldObj.isAnyLiquid(this.boundingBox)) { flag = true; } } } if (!flag) { this.setPosition(d3, d4, d5); return false; } else { short short1 = 128; for (int l = 0; l < short1; ++l) { double d6 = (double)l / ((double)short1 - 1.0D); float f = (this.rand.nextFloat() - 0.5F) * 0.2F; float f1 = (this.rand.nextFloat() - 0.5F) * 0.2F; float f2 = (this.rand.nextFloat() - 0.5F) * 0.2F; double d7 = d3 + (this.posX - d3) * d6 + (this.rand.nextDouble() - 0.5D) * (double)this.width * 2.0D; double d8 = d4 + (this.posY - d4) * d6 + this.rand.nextDouble() * (double)this.height; double d9 = d5 + (this.posZ - d5) * d6 + (this.rand.nextDouble() - 0.5D) * (double)this.width * 2.0D; this.worldObj.spawnParticle("portal", d7, d8, d9, (double)f, (double)f1, (double)f2); } this.worldObj.playSoundEffect(d3, d4, d5, "mob.endermen.portal", 1.0F, 1.0F); this.playSound("mob.endermen.portal", 1.0F, 1.0F); return true; } } } The model's code: // Date: 9/7/2014 6:33:49 AM // Template version 1.1 // Java generated by Techne // Keep in mind that you still need to fill in some blanks // - ZeuX package com.awsp8.wizardry.entity.model; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; public class ModelGreyMan extends ModelBase{ //fields ModelRenderer head; ModelRenderer body; ModelRenderer rightarm; ModelRenderer leftarm; ModelRenderer rightleg; ModelRenderer leftleg; public ModelGreyMan() { textureWidth = 64; textureHeight = 32; head = new ModelRenderer(this, 0, 0); head.addBox(-4F, -8F, -4F, 8, 8, ; head.setRotationPoint(0F, 0F, 0F); head.setTextureSize(64, 32); head.mirror = true; setRotation(head, 0F, 0F, 0F); body = new ModelRenderer(this, 16, 16); body.addBox(-4F, 0F, -2F, 8, 12, 4); body.setRotationPoint(0F, 0F, 0F); body.setTextureSize(64, 32); body.mirror = true; setRotation(body, 0F, 0F, 0F); rightarm = new ModelRenderer(this, 40, 16); rightarm.addBox(-3F, -2F, -2F, 4, 12, 4); rightarm.setRotationPoint(-5F, 2F, 0F); rightarm.setTextureSize(64, 32); rightarm.mirror = true; setRotation(rightarm, 0F, 0F, 0F); leftarm = new ModelRenderer(this, 40, 16); leftarm.addBox(-1F, -2F, -2F, 4, 12, 4); leftarm.setRotationPoint(5F, 2F, 0F); leftarm.setTextureSize(64, 32); leftarm.mirror = true; setRotation(leftarm, 0F, 0F, 0F); rightleg = new ModelRenderer(this, 0, 16); rightleg.addBox(-2F, 0F, -2F, 4, 12, 4); rightleg.setRotationPoint(-2F, 12F, 0F); rightleg.setTextureSize(64, 32); rightleg.mirror = true; setRotation(rightleg, 0F, 0F, 0F); leftleg = new ModelRenderer(this, 0, 16); leftleg.addBox(-2F, 0F, -2F, 4, 12, 4); leftleg.setRotationPoint(2F, 12F, 0F); leftleg.setTextureSize(64, 32); leftleg.mirror = true; setRotation(leftleg, 0F, 0F, 0F); } public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { super.render(entity, f, f1, f2, f3, f4, f5); setRotationAngles(f, f1, f2, f3, f4, f5, entity); head.render(f5); body.render(f5); rightarm.render(f5); leftarm.render(f5); rightleg.render(f5); leftleg.render(f5); } private void setRotation(ModelRenderer model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; model.rotateAngleZ = z; } public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); } } The rendering class: package com.awsp8.wizardry.entity.render; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.renderer.entity.RenderBiped; import net.minecraft.client.renderer.entity.RenderLiving; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.util.ResourceLocation; import com.awsp8.wizardry.Entities.GreyMan; import com.awsp8.wizardry.entity.model.ModelGreyMan; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class RenderGreyMan extends RenderLiving{ public RenderGreyMan(ModelBase modelBase, float par2) { super(modelBase, par2); } @Override protected ResourceLocation getEntityTexture(Entity var1) { return new ResourceLocation("wizardry", "/textures/entities/greyMan.png"); } } The proxy class: package com.awsp8.wizardry; import net.minecraft.client.model.ModelBiped; import com.awsp8.wizardry.Entities.GreyMan; import com.awsp8.wizardry.entity.model.ModelGreyMan; import com.awsp8.wizardry.entity.render.RenderGreyMan; import cpw.mods.fml.client.registry.RenderingRegistry; public class ClientProxy extends CommonProxy { @Override public void registerRenderers() { RenderingRegistry.registerEntityRenderingHandler(GreyMan.class, new RenderGreyMan(new ModelGreyMan(), 0.5F)); } } In the main class the proxy is registered like this: @SidedProxy(clientSide = Info.clientSide, serverSide = Info.serverSide) public static CommonProxy proxy; My mod's init method in the main class: registerEntity(GreyMan.class, "greyMan", 660000, 050505); addSpawn(GreyMan.class, 25, 2, 6, new BiomeGenBase[] {}); Later in the main class: public void registerEntity(Class<? extends Entity> entityClass, String entityName, int bkEggColor, int fgEggColor) { int id = EntityRegistry.findGlobalUniqueEntityId(); EntityRegistry.registerGlobalEntityID(entityClass, entityName, id); EntityList.entityEggs.put(Integer.valueOf(id), new EntityList.EntityEggInfo(id, bkEggColor, fgEggColor)); } public void addSpawn(Class<? extends EntityLiving> entityClass, int spawnProb, int min, int max, BiomeGenBase[] biomes) { if (spawnProb > 0) { EntityRegistry.addSpawn(entityClass, spawnProb, min, max, EnumCreatureType.creature, biomes); } } I have been troubleshooting this code for a week now, any help is appreciated.