Posted June 21, 201312 yr Title says it all. I've got custom boots that add Speed to player. The boots take damage from walking. Once the boots reach there damage value they don't seem to be getting removed from my armor slot. Another thing is that --item.stacksize does not work. I've set up some chat messages to tell me what itemstack equals and what the damage is. Here is the class. It should be all you need.
June 21, 201312 yr shouldn't it be --itemstack.stacksize Legend of Zelda Mod[updated September 20th to 3.1.1] Extra Achievements(Minecraft 1.8!)[updated April 3rd to 2.3.0] Fancy Cheeses[updated May 8th to 0.5.0]
June 21, 201312 yr try adding something like: if (item.stackSize <= 0) { item.stacksize =item.stacksize.getItem() .getContainerItemStack(item.stacksize); } http://mag.racked.eu/cimage/i6000/Achievement++get%21/Newb+Modder%21/mca.png[/img]
June 21, 201312 yr Author I tried using that if statement but that's not even a valid statement. so I tried a bit of what you wrote if (boots.stackSize <= 0) { boots.stackSize = boots.getItem().getContainerItemStack(boots).stackSize; } That does not work. MAde me crash actually.
June 25, 201312 yr Author I'm going to bring this topic back with a bump because it is still not solved
June 25, 201312 yr You'd probably be better off using player.inventory.decrStackSize(). BEWARE OF GOD --- Co-author of Pentachoron Labs' SBFP Tech.
June 25, 201312 yr stuff that popped into my head while reading your code: 1. are you planning on using this on smp? (if you are, you're going to get a lot of bugs) 2. is your tick handler running client side or server side? 3. you don't need to use "getPlayerCoordinates()" to get a player's coordinates 4. simply casting the coordinates to integers will get inaccurate results 5. you don't need a tick handler for this
June 25, 201312 yr stuff that popped into my head while reading your code: 1. are you planning on using this on smp? (if you are, you're going to get a lot of bugs) 2. is your tick handler running client side or server side? 3. you don't need to use "getPlayerCoordinates()" to get a player's coordinates 4. simply casting the coordinates to integers will get inaccurate results 5. you don't need a tick handler for this True. I hadn't looked at his code initially. Re #5, you should instead be overriding onArmorTickUpdate() in your item class. BEWARE OF GOD --- Co-author of Pentachoron Labs' SBFP Tech.
June 27, 201312 yr Author stuff that popped into my head while reading your code: 1. are you planning on using this on smp? (if you are, you're going to get a lot of bugs) 2. is your tick handler running client side or server side? 3. you don't need to use "getPlayerCoordinates()" to get a player's coordinates 4. simply casting the coordinates to integers will get inaccurate results 5. you don't need a tick handler for this Well, thanks a bunch for responding! 1. Server works perfectly fine actually that would be because of number 2. 2. Yes it is server side. You can not add potion effects client side. Sadly :-/ 3. Ideaas? 4. It works though. 5. Hmmm I don't know how else to do it.
June 27, 201312 yr Author You'd probably be better off using player.inventory.decrStackSize(). I tried doing this but I was not to sure on what I should put in for my paramaters I tried player.inventory.decrStackSize(boots, 1). um the paramters asked ar supposed to be ints so I could not use boots which is the slot of armor slot boots I casted that. I just put 1 for no reason ;P so my question is what should I put for my slot ID number or par1 it says in the declaration.
June 28, 201312 yr Author Okay, I used the correct parameters now but the boots STILL will not remove from my item slot.
June 28, 201312 yr stuff that popped into my head while reading your code: 1. are you planning on using this on smp? (if you are, you're going to get a lot of bugs) 2. is your tick handler running client side or server side? 3. you don't need to use "getPlayerCoordinates()" to get a player's coordinates 4. simply casting the coordinates to integers will get inaccurate results 5. you don't need a tick handler for this Well, thanks a bunch for responding! 1. Server works perfectly fine actually that would be because of number 2. 2. Yes it is server side. You can not add potion effects client side. Sadly :-/ 3. Ideaas? 4. It works though. 5. Hmmm I don't know how else to do it. 1. nope. since your values for bootLastX and bootLastZ are static, it's going to mess up once there are a lot of players. example: player1 is at (0, 0) and stays there. his bootLastX will be 0 and bootLastZ will be 0. since he isn't moving, those shouldn't change. then, player2 is at (5,5) and stays there as well. so his last x will become 5 and his last z will become 5. his last coordinates shouldn't change as well since he's standing still. but since your bootLastX and bootLastZ are static, and due to player2 changing them to (5,5), the values of bootLastX and bootLastZ for player1 also becomes (5,5). so when your code checks to see if player1's moved or not, it will return true because he's at (0,0) while his last x and z are supposedly (5,5) when they should still be (0,0). 2. well, it's really supposed to be server side, but like i said, you don't need it. 3. just take out the "getPlayerCoordinates()" part. you can type "player.posX" or "player.posZ" instead so you won't have to unnecessarily call "getPlayerCoordinates()". 4. it works, but at certain coordinates, it will be inaccurate. example: player.posX = 99.5D; lastBootX = (int) player.posX; lastBootX will become 99. so that'll work fine. but if posX is negative player.posX = -99.5D; lastBootX = (int) player.posX; lastBootX will become -99 instead of -100. you can use this intead to make sure you get the right values lastBootX = MathHelper.floor_double(player.posX); 5. like ObsequiousNewt said, you can us onArmorTickUpdate() in Item
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.