Originally Posted by
Emily
Sorry for late reply, but with the current released tools you can't dump a static region. And yes, an idiot that happens to have the coordinates.
And only a few people are prob capable of getting it (Ex: Richard). So don't talk so big there, because I don't see you releasing it?
First off , stop calling it static region.
Packet is creating a Viewport not a region and what it does is it reads the actual draw coordinates for 8x8 squares.
Dumping mapdata is very easy and You must be very dump to say such things
Here's dumping in 647 client , I guess you will be able to make it for 660
Code:
static final void method3462(int i) {
int viewportSizeType = Class274.serverOutBuffer.readSignedByteA_();
Class223_Sub3_Sub2_Sub1.numBlocksModified = Class274.serverOutBuffer.readUSAByte();
int regionPartX = Class274.serverOutBuffer.readUnsignedLEShort();
int regionPartY = Class274.serverOutBuffer.readUnsignedLEShort();
boolean forceRefresh = Class274.serverOutBuffer.readSignedByteA_() == 1;
Class186_Sub37_Sub1.method2201();
Class135.setViewportSize(viewportSizeType);
Class274.serverOutBuffer.initBITAccess();
for (int z = 0; z < 4; z++) {
for (int xwrite = 0; xwrite < Class116.viewportSizeX >> 3; xwrite++) {
for (int ywrite = 0; ywrite < Class157_Sub29.viewportSizeY >> 3; ywrite++) {
int isEmpty = Class274.serverOutBuffer.readBits(1);
if (isEmpty != 1)
Class235.viewportData[z][xwrite][ywrite] = -1;
else
Class235.viewportData[z][xwrite][ywrite] = Class274.serverOutBuffer.readBits(26);
}
}
}
Class274.serverOutBuffer.finishBITAccess();
int numRegionsToLoad = ((Class363.currentPacketLength - Class274.serverOutBuffer.position) / 16);
Class158.xteaKeys = new int[numRegionsToLoad][4];
for (int a = 0; numRegionsToLoad > a; a++) {
for (int ib = 0; ib < 4; ib++)
Class158.xteaKeys[a][ib] = Class274.serverOutBuffer.readInt();
}
Class157_Sub28.regionsToLoad = new int[numRegionsToLoad];
Class217_Sub4.aByteArrayArray4976 = new byte[numRegionsToLoad][];
Class186_Sub7.aByteArrayArray4456 = null;
Class348_Sub2.regionsToLoadUnderwaterMapFileIds = new int[numRegionsToLoad];
Class186_Sub29_Sub6.regionsToLoadMapFileIds = new int[numRegionsToLoad];
Class44.aByteArrayArray329 = new byte[numRegionsToLoad][];
Class115.anIntArray800 = null;
Class210.aByteArrayArray1759 = new byte[numRegionsToLoad][];
Class343.regionToLoadLandscapeFileIds = new int[numRegionsToLoad];
Class186_Sub20.aByteArrayArray4583 = new byte[numRegionsToLoad][];
Class186_Sub41_Sub3.regionsToLoadUnderwaterLandscapeFileIds = new int[numRegionsToLoad];
numRegionsToLoad = 0;
for (int z = 0; z < 4; z++) {
for (int xpart = 0; xpart < Class116.viewportSizeX >> 3; xpart++) {
for (int ypart = 0; Class157_Sub29.viewportSizeY >> 3 > ypart; ypart++) {
int data = (Class235.viewportData[z][xpart][ypart]);
if (data != -1) {
int drawPartX = (data & 0xfffc96) >> 14;
int drawPartY = (data & 0x3ffe) >> 3;
int drawRegionID = drawPartY / 8 + (drawPartX / 8 << 8);
for (int region = 0; region < numRegionsToLoad; region++) {
if (Class157_Sub28.regionsToLoad[region] == drawRegionID) {
drawRegionID = -1;
break;
}
}
if (drawRegionID != -1) {
Class157_Sub28.regionsToLoad[numRegionsToLoad] = drawRegionID;
int regionX = (drawRegionID & 0xffe6) >> 8;
int regionY = drawRegionID & 0xff;
Class186_Sub29_Sub6.regionsToLoadMapFileIds[numRegionsToLoad] = Class348_Sub1.aClass387_3446.method3989("m" + regionX + "_" + regionY);
Class343.regionToLoadLandscapeFileIds[numRegionsToLoad] = Class348_Sub1.aClass387_3446.method3989("l" + regionX + "_" + regionY);
Class348_Sub2.regionsToLoadUnderwaterMapFileIds[numRegionsToLoad] = Class348_Sub1.aClass387_3446.method3989("um" + regionX + "_" + regionY);
Class186_Sub41_Sub3.regionsToLoadUnderwaterLandscapeFileIds[numRegionsToLoad] = Class348_Sub1.aClass387_3446.method3989("ul" + regionX + "_" + regionY);
numRegionsToLoad++;
}
}
}
}
}
for (int a = 0; a < Class157_Sub28.regionsToLoad.length; a++) {
int regionID = Class157_Sub28.regionsToLoad[a];
int[] xtea = Class158.xteaKeys[a];
StringBuilder bld = new StringBuilder("regionID:" + regionID + "\t");
for (int b = 0; b < 4; b++) {
bld.append(xtea[b] + ((b + 1) >= 4 ? "" : ","));
}
if (Loader.debugEnabled) {
System.out.println(bld.toString());
}
}
Class233.method2949(regionPartX, forceRefresh, regionPartY, 11);
}