Jump to content

Featured Replies

Posted
comment_93672

Hello i will be sharing how to update the client to load 211+ maps ;)

 

everything your going to be editing is in ObjectManager.

 

underlays and underlays got changed from a byte to a short.

 

you will see something like this

 aByteArrayArrayArray142[l][k9][i8] & 0xf

for this

 underlays[l][x][z] & 0xff

same thing for overlays 

 

the & 0xff needs to be & 0x3FFF 

 

Make sure you do both overlays and underlays


you will see something like this

private void method181(int i, int j, Buffer stream, int k, int l, int i1, int k1) {

  try {

   if (k >= 0 && k < 104 && i >= 0 && i < 104) {

    int absX = (k1 + k);

    int absY = (j + i);

    int absZ = (i1 + l);

    tileFlags[l][k][i] = 0;

    do {

     int l1 = stream.readUnsignedByte();

     if (l1 == 0)

      if (l == 0) {

       tileHeights[0][k][i] = -calculateVertexHeight(0xe3b7b + k + k1, 0x87cce + i + j) * 8;

       return;

      } else {

       tileHeights[l][k][i] = tileHeights[l - 1][k][i] - 240;

       return;

      }

     if (l1 == 1) {

      int j2 = stream.readUnsignedByte();

      if (j2 == 1)

       j2 = 0;

      if (l == 0) {

       tileHeights[0][k][i] = -j2 * 8;

       return;

      } else {

       tileHeights[l][k][i] = tileHeights[l - 1][k][i] - j2 * 8;

       return;

      }

     }

     if (l1 <= 49) {

      overlays[l][k][i] = stream.readSignedByte();

      overlayTypes[l][k][i] = (byte) ((l1 - 2) / 4);

      overlayOrientations[l][k][i] = (byte) ((l1 - 2) + i1 & 3);

     } else if (l1 <= 81)

      tileFlags[l][k][i] = (byte) (l1 - 49);

     else

      underlays[l][k][i] = (byte) (l1 - 81);

    } while (true);

   }

   do {

    int i2 = stream.readUnsignedByte();

    if (i2 == 0)

     break;

    if (i2 == 1) {

     stream.readUnsignedByte();

     return;

    }

    if (i2 <= 49)

     stream.readUnsignedByte();

   } while (true);

  } catch (Exception e) {

  }

  }

make sure it looks like this 

 private void method181(int i, int j, Buffer stream, int k, int l, int i1, int k1) {

  try {

   if (k >= 0 && k < 104 && i >= 0 && i < 104) {

    int absX = (k1 + k);

    int absY = (j + i);

    int absZ = (i1 + l);

    tileFlags[l][k][i] = 0;

    do {

     int l1 = stream.readUShort();

     if (l1 == 0)

      if (l == 0) {

       tileHeights[0][k][i] = -calculateVertexHeight(0xe3b7b + k + k1, 0x87cce + i + j) * 8;

       return;

      } else {

       tileHeights[l][k][i] = tileHeights[l - 1][k][i] - 240;

       return;

      }

     if (l1 == 1) {

      int j2 = stream.readUnsignedByte();

      if (j2 == 1)

       j2 = 0;

      if (l == 0) {

       tileHeights[0][k][i] = -j2 * 8;

       return;

      } else {

       tileHeights[l][k][i] = tileHeights[l - 1][k][i] - j2 * 8;

       return;

      }

     }

     if (l1 <= 49) {

      overlays[l][k][i] = (short) stream.readSignedWord();

      overlayTypes[l][k][i] = (byte) ((l1 - 2) / 4);

      overlayOrientations[l][k][i] = (byte) ((l1 - 2) + i1 & 3);

     } else if (l1 <= 81)

      tileFlags[l][k][i] = (byte) (l1 - 49);

     else

      underlays[l][k][i] = (short) (l1 - 81);

    } while (true);

   }

   do {

    int i2 = stream.readUShort();

    if (i2 == 0)

     break;

    if (i2 == 1) {

     stream.readUnsignedByte();

     return;

    }

    if (i2 <= 49)

     stream.readSignedWord();

   } while (true);

  } catch (Exception e) {

  }

 }that should do it ;)

Edited by GodJesseJames

  • 4 weeks later...

Create an account or sign in to comment