-
Posts
840 -
Joined
-
Last visited
Everything posted by delpi
-
I looked around some more and still couldn't find any other way. Anybody got a different way to do this?
-
Let's try again. Fingers crossed. this.addSlotToContainer(new Slot(player.inventory, (j + (i + 1) * 9) + 5, 8 + j * 18, 84 + i * 18)); "(j + (i + 1) * 9) + 5" is wrong. Should be "j + (i + 1) * 9". The 5 is going to put it in the wrong place in your inventory. Same thing with this.addSlotToContainer(new Slot(player.inventory, (i + 5), 8 + i * 18, 142)); "(i + 5)" should just be "i". this is probably why you are off and having issues with out of bounds. You are setting places in the players inventory that do not exists. Why were you adding the 5? Don't worry about the transferinventory part yet. That is always painful and only matters when you shift click.
-
Hold on that then. These graphic line ups can be tough. So the item appears in the right box, the white hover thing is in the right box. However, you have to click to the right of the item by 4 boxes to pick it up?
-
The reason you have to click 4 to the right is what i have been trying to get across several times. You have the position of the slot in the GUI wrong. n you container class, it if really is 4 slots (exactly) to the right, move the position you are specifying to the left 4 slots. Probably a distance of 4x18 but it really depends what your graphic looks like. The best way is to open up Gimp, find something that is in the right place, look at coords and determine how to change it.
-
I've been rocking and rolling with 1.7.2 for some time now, but I just ran into a weird issue. Without changing anything that I know of, one of my child references compiles fine but when I try to run it on my server, the server crashes. When i simply try to set the value in the constructor of the child class, it tells me the method does not exist. Everything runs fine in the IDE. This is a portion of the parent class The one unusual thing on the setup is that the parent is in a 'repository' for my mod. It is sucked in through gradle on compile. There is a couple lines about unsafe operation i don't remember seeing in the gradle output.
-
Could someone tell me specifically what to put in my @mod annotation for a serversideonlymod? I've looked at the @mod documentation and can't figure it out. Made it work with acceptableRemoteVersions = "*", but surely that isn't the right way.
-
Figured it out - Sort of. Zombies spam a 3.0 dmg attack that never lands no matter what. If it has success with the 3.0 dmg attack at the 20 tick interval, it throws a 4.5 dmg attack that can land. What the hell? Taking this into consideration, I was able to adjust my events to handle. I haven't traced back through the Zombie code to figure this one out yet. Perhaps it has something to do with the convert villager stuff?? So tired of messing with this I don't have it in me to look for now. If someone has a some insight or a better solution, please throw it out there.
-
Yeh, server side only. I did print on client side at one point as troubleshooting just to see if there was anything interesting, but turned it off. I typically have different event handlers for the server and client so I have less suprises. This one has me stuck. I traced through minecraft code for hours and can't figure out why a zombie would be ignoring the normal rules.
-
I set debugg messages to print out who was being attacked by what with ID's so I could be sure. I included the attacktime as well as several other peices of information. I went to an isolated platform and only had a single zombie to test. Once a tick it would attack me and each time the attacktime would be 99. The reason it is 99 is that I went ahead and when the dodge occured set the attacktime up to 100 as part of testing. Whatever I set it to, its 1 less. I've searched and there is no other references to entityzombie in the mod and its the only one in the test environment. I got tired last night, but I'm going to look again to see where in the minecraft cycle it is telling zombies to attack bypassing the attack check
-
I have been messing with this all evening and finally figured out what is up. Hoping someone has seen this and knows a way around it. I have Dodge Functionality added to one of my mods. Noticed it wasn't working with zombies attacking the player. After troubleshooting it, I figured out something. Zombies are ignoring the variable attacktime and basically attacking almost once a tick. No other mob seems to be doing this that I can find. I've looked at the zombie code and I do not see how this is happening. Its pretty clear the limitation. Attack has to be called from somewhere else too, but i've looked through all the parents and i'm stumped. Anyone got an idea?
-
Monitor packet sending to avoid overburdening network?
delpi replied to TheGreyGhost's topic in Modder Support
I have not. At one point I was worried about it, but then I considered how much minecraft itself is sending compared to what I was doing and stopped. There are some packet events. You could monitor that for usage over time and do something with it. -
[1.7.2] How to place a torch or door on a generated structure
delpi replied to MrMinecraftGoodoo's topic in Modder Support
I'll add one more thing to the discussion. It doesn't matter for torches and doors, but some blocks like pistons decide after they are set orientation, so even if you use those methods with the right metadata, it will overwrite it and always point the same direction since no player is involved as the object sees it. To fix this, create a delay block action list. Basically setup a list (of block object actions - anotehr class) that a tick call activates once per tick. Put in this list directions to set the metadata 1 to 2 seconds later. 1 usually works, but found a couple where i needed 2. Still don't understand why. Them BAM, you have your piston the right way. -
[Solved][1.7.2] Downloading and applying player skin texture to an....?
delpi replied to prujohn's topic in Modder Support
Do you want to download a skin of a player never on your server or one that has been on your server? Anyhow, if you look at how the RenderPlayer deals with the skins this isn't that complicated. The trick is making all players see the same skin. On your entity, you need to pick the name of the 'player' you want it to emulate, set that string as a datawatcher properly so the clients all get it. On the client side, put a custom render for the entity, to utilize code similar to the player against the string you specified and bingo! The one thing I did notice, is there is a small time gap depending on different issues, so make the default skin for the entity Steve or something that you include in your entity texture so it doesn't have to download it. This prevents the ugly white box thing for a the small time lag in certain situations. -
I'll give you one more option. It is a bit excessive unless you have a reason to do this. For one of my entities, I had my render option for tail movement in my entitiy and I setup a datawatcher between client/server. Then I just looked at it for position during render.
-
That is a nice statement of something you witnessed. Well written.
-
Are you sure you changed it correctly on both client and server?
-
That isn't a bug. It is a feature. You need to chance the size of the bounding box for the block.
-
No need to be sorry. The general expectation is that you try with what is out there until you get stumped and then ask for direction sharing what you have already done.
-
You can duplicate the code in each mod. Whichever mod loads last should win in the clientproxy. If someone has a client mod without the server or some such oddity, there might be some errors though. You might want to setup a shared code repository between the mods so you don't have to keep them the same, but given that you are confused already, that is probably for later.
-
There are tutorials out there on doing block rendering, you can look them up.
-
Sort of. Whichever mod loads 2nd, its clientproxy override of the player render will win. Are you going to have different functionality in the two or just have it in both? If it is the same functionality, just don't care and let the last one win. you could also look for isModLoaded and see if the other is there. If it is different functionality, now you are going to have to get fancier and use the playerrender event and try to manipulate it in a smarter method, or have your mods talk.
-
On the clientproxy, you can assign a model to a block. I've never tiried to replace a base Minecraft block, but I think you should be able to. As to whether it screws up something else..... Also, it should work as a client only mod.
-
Try creating it from what I sent you. I use that setup all the time iwthout any issues.
-
This is easy to do. Extend RenderPlayer, do very limited modification, basically to apply whatever skin you want based upon conditions. There should be a gettexture method or something like that for it. In your client proxy assign your new renderplayer to EntityPlayer. This should minimize any incompatibilities with other mods unless you mess around with more of the methods.
-
It was hard to tell from my iphone. I noticed in your code several referces to final and such that were unessesary. Doubt that is the cause, but probably not a good idea.