Jump to content

BlueSpud

Members
  • Posts

    60
  • Joined

  • Last visited

Everything posted by BlueSpud

  1. Yes, 1.6.2, the top video is the most recent of the mod and is the release version.
  2. try running the python version of the script.
  3. Dishonored Mod for 1.6.2 YAY! ______________________________________________ THERE ARE A FEW PROBLEMS WITH THE MOD. I KNOW THIS. I HAVE BEEN WORKING ON A DIFFERENT CODING PROJECT, AND ITS HARD TO FOCUS ON TWO THINGS. THE Mod HAS BEEN UPDATED, AND NOTHING MORE. ALL FEATURES REMAIN THE SAME AS 1.5.2 UNTIL FURTHER NOTICE. This is Dishonored, a backwards, industrial world taking place in another universe. This Mod is a work in progress, but will eventually immerse you in the world of Dishonored. DISCLAIMER: There are multiple Dishonored mods on the minecraft-forums, however, this Mod is very different and is less mine craft-esque and more like Dishonored itself. This Mod changes the HUD, and many other things to make the world look and feel more like Dishonored. Videos of the developer versions can be found here: [embed=425,349] <iframe width="640" height="360" src="http://www.youtube.com/embed/aPW9UjhFTa4?feature=player_detailpage" frameborder="0" allowfullscreen></iframe> [/embed] [embed=425,349] <iframe width="640" height="360" src="http://www.youtube.com/embed/FRDmQG-Pbk4?feature=player_detailpage" frameborder="0" allowfullscreen></iframe> [/embed] [embed=425,349] <iframe width="640" height="360" src="http://www.youtube.com/embed/2hOxDaJ-SM4?feature=player_detailpage" frameborder="0" allowfullscreen></iframe> [/embed] INSTALLING THE MOD 1. Install the client version of forge for 1.6.2. 2. Run the forge profile once 3. Download and unzip the mod 4. Place the zip Dishnored.jar into your mods folder 5. Launch minecraft in the forge profile and enjoy! USEFUL INFORMATION: The mana system has not yet been implemented, press r to drink a mana potion (as of version .3 you must place down a Piero's Remedy and press f on it to be able to use a potion). Many things have been planned, but are not all implemented. ​The only power implemented is blink, and you may not blink onto the sides of blocks if another block is above it, this is going to be changed to blinking to the sides of that block. DISCLAIMERS: Dishonored is property of Bethesda softworks and Arkane Studios Download Link: http://205.196.121.140/bdldapcp9sdg/ce0l7r1csvwjosx/DHN_Unzip_me_1.6.2_Version_.3.zip I created this Mod for the sole purpose to have fun, and will never seek to make any kind of money of it. Enjoy the adfly free link.
  4. If you just want something simple, just use System.out.printf("message here %n") but that doesn't work with logging levels as far as I know
  5. I knew your problem was in the returning of the bytes . Guess I just missed that, because I assumed after you changed your code it would be fixed. Glad you got this worked out.
  6. You can do that, which I do and its not much of a hassle, and I don't care, or you could just move the files there and set them up in eclipse that way. If you are going to move them every time, make sure you delete them after you obfuscate, otherwise you will have duplicates of everything in eclipse.
  7. It is there. Its in the transform method below the first code. It is right under the print saying what kind of transformation is being done and what kind of environment the game is in.
  8. I don't see it in your new, modified code.
  9. Could it be you don't have the newimport("",arg2); in there? I really have no idea whats going wrong because I have this working.
  10. Got it: FMLClientHandler.instance().getServer().worldServerForDimension(0).destroyBlock(x, y, z, false);
  11. yes. It has the renderFirstPersonArm() as it is in the jar. THATS VERY IMPORTANT. If there's a return, etc, you still need to do that return. My function's parameters that I gave you are as follows: name: the name of the method you need, obfuscated or not. (do both, call it twice) bytes the bytes you recived from the transform method desc is the methods description iFile is the path to the class containing the replacement methods. rname is the name of the replacement method. Hope I could help.
  12. Eclipse isn't going to matter for recompiling. When you have all your java code written, put it where I said, then re-compile and re-obfuscate.
  13. It goes in the src/minecraft folder. For example, that should make a directory like: src/minecraft/your/package/name/class.java
  14. Its there. I forgot to mention that this won't let you use methods with 'this' ex: this.doSomething() I don't know if thats a problem for you.
  15. I know, I've tried doing it with Minecraft.getMinecraft().thePlayer.worldObj.setBlockToAir(x,y,z); but it still doesn't work. Am I getting the wrong world obj? And if so, where do I get the right one?
  16. Try this, it replaces 2 method bodies, and I've used it to modify a few things. Just copy the method declaration and then write your own body in a new class. public byte[] patch (String name, byte[] bytes, String desc, String iFile, String rname) throws IOException { ClassNode cn = new ClassNode(); ClassReader cr = new ClassReader(bytes); //the class node is now visiting the bytes that the class reader has cr.accept(cn,0); //giving us something we can look at all the methods Iterator<MethodNode> methods = cn.methods.iterator(); //creating the method node we are going to mess with MethodNode mn = null; while (methods.hasNext()) { MethodNode m = methods.next(); if (m.name.equals(name) && m.desc.equals(desc)) { System.out.printf("Found a method we want to transform%n"); mn = m; break; } } //get the file we're going to replace a method with java.io.InputStream in = DHNTransformer.class.getResourceAsStream(iFile); byte[] newbyte = IOUtils.toByteArray(in); //get the method ClassNode cnr = new ClassNode(); ClassReader crr = new ClassReader(newbyte); crr.accept(cnr,0); //find the right one Iterator<MethodNode> repalcemethods = cnr.methods.iterator(); MethodNode mnr = null; while (repalcemethods.hasNext()) { MethodNode m = repalcemethods.next(); if (m.name.equals(rname)) { System.out.printf("Found the right method that is going to be the replacement"); mnr = m; break; } } //now we start changing the bodies mn.instructions = mnr.instructions; ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES); //let the writer visit the class now cn.accept(cw); return cw.toByteArray(); } And how to use it: if (arg0.equals("bhg")) { System.out.println("Doing RenderPlayer transformers in a obfuscated environment"); newimport("",arg2); try { return patch("a", arg2, "(Lue;)V","/DHNCore/asm/Methods.class","renderFirstPersonArm"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (arg0.equals("net.minecraft.client.renderer.entity.RenderPlayer")) { System.out.println("Doing RenderPlayer transformers in a de-obfuscated environment"); //make sure we import the class so that it does crash newimport("",arg2); try { return patch("renderFirstPersonArm", arg2, "(Lnet/minecraft/entity/player/EntityPlayer;)V","/DHNCore/asm/Methods.class","renderFirstPersonArm"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
  17. A tick handler thats used to control various things.
  18. if you meant running, I'm running it from eclipse. The function might be in a client side part, but I tried in in the server-side common proxy too.
  19. Are you trying to re-write a method, or the whole class? I see a bit of both in there.
  20. I've gotten some ASM stuff to work, not replacing a whole class though. What I would assume you do is this: (just pseudocode) for the transformer, the transform method will be called for *I think* every class byte[] transform(String name, byte[] bytes) { if (name == obfuscated name || name == deobfuscatedname) { byte[] newClass = getYourClassBytes(); return newClass; } } The transform method kinda just goes through everything, see if you want to make changes, then asks for the modified or unmodified bytes back. You might be getting class not found because you aren't returning the bytes of the class.
  21. with World being Minecraft.getMinecraft().theWorld, it creates a ghost block as I said. My question should really being how to send a packet to update the server side block.
  22. Whats the right way to break a block? world.destroyBlock() just breaks the block client side and then creates a ghost block that comes back after a block update.
  23. How exactly would one do this? I knew that moving object position was part of it.
  24. Is there any way to call a function on a block or call a function when a key is pressed such as the f key on a certain block?
×
×
  • Create New...

Important Information

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