Jump to content
Existing user? Sign In

Sign In



Sign Up

trees

Respected Member
  • Posts

    52
  • Joined

  • Last visited

  • Days Won

    12

trees last won the day on March 1 2020

trees had the most liked content!

About trees

Personal Information

  • Sex
    Male
  • Location
    Boston

Recent Profile Visitors

935 profile views
  1. Nice upload ace the editors are useful if its pre 400.
  2. Correct! Read your inbox to see what happens to people who spam.
  3. Like soooo... Remove the X's [X hide] image here [X/hide]
  4. Remember to give credits to @Technotik who has worked tremendously hard on this and myself, if using this for a project or anything of that sort.
  5. Nice format, nice guide. Good job. Maybe use hide/spoiler tags for images, so we can see the instructions little better. [hide] text here [/hide]
  6. An OSRS Emulation The tales of old school in high definition has been played with time and time again, with a few success stories behind the idea. Me and my partner Technotik have combined efforts in attempt to bring together another great server for us all to enjoy, which of course needed some full high definition features! Our engine is a highly updated hyperion with update server and cross world features, hyperion is a game server suite server which was aimed to provide an excellent, stable, quality base with advanced features. With these components and the complete updating for oldschool data, we feel this is a very competitive and elaborate game environment. What is the smite client protocol? The client is originally a 530 client which was converted by leanbow to use the 464 packet structure and read the 464 cache. Smite's team uses tools to overwrite the data of that cache with everything from inside the oldshool cache, which allows us to update our oldschool cache, then smite cache painlessly with a few clicks. We do not use any data other than oldschool. In a nut shell its an osrs replica with all added benfits of opengl. People can't ever keep things safe, I sold it off to cheap. Smite #170 is now a public repository. Project made by @Technotik and @trees [Hidden Content] [Hidden Content] [Hidden Content]
  7. elon musk can't drive his truck very well
  8. trees

    Dawntained

    [Hidden Content]
  9. I have not tested this yet. feel free to leave some notes if using. Step 1: WorldController (or Scene) Tiles; Add the following... private final int TILE_DRAW_DISTANCE = 300; Search for the following, where its defined. aBooleanArrayArrayArrayArray491 Adjust it to the following aBooleanArrayArrayArrayArray491 = new boolean[8][32][(TILE_DRAW_DISTANCE * 2) + 1][(TILE_DRAW_DISTANCE * 2) + 1]; Search for the following, where its defined. aflag[][][][] Adjust it to the following aflag[][][][] = new boolean[9][32][(TILE_DRAW_DISTANCE * 2) + 3][(TILE_DRAW_DISTANCE * 2) + 3]; Finally, the op stated to find all the "25" in WorldController, replace it with TILE_DRAW_DISTANCE Step 2: Model class; Add the following... private final int MODEL_DRAW_DISTANCE = 30000; k2 is a standard variable in most clients so should be able to find, replace the following model draw distance new final draw distance. Like below. k2 >= MODEL_DRAW_DISTANCE
  10. trees

    instruction

    Welcome to the community, Al Ahmadi Basi Al Turki Kurdi Lion Hearted Turki. If you have any questions feel free the join our discord also. Discord Invitation
  11. trees

    toshiro

    Welcome to the community, if you have any questions feel free the join our discord also. Discord Invitation
  12. A better guide for runesuite This will add anti-aliasing feature to any 317 client, the naming may be different, thats up to you to sort. Step 1: Mouse Click Area Fix Search for 'l == 519' in client.java int y; int x; if (!this.menuOpen) { x = this.saveClickX - 4; y = this.saveClickY - 4; } else { x = j - 4; y = k - 4; } if (Configuration.anti_aliasing == true) { x <<= 1; y <<= 1; } this.worldController.method312(y, x); Step 2: Anti Aliasing Rendering 1/2 (example image 1) (example image 2) Search for 'method146'; Directly under 'int [] offsets = null'; Add the following int[] offsets = null; if (Configuration.anti_aliasing == true) { Model.currentCursorX <<= 1; Model.currentCursorY <<= 1; WorldController.focalLength <<= 1; pixels = Rasterizer.pixels; Rasterizer.pixels = antialiasingPixels; offsets = Rasterizer.anIntArray1472; Rasterizer.anIntArray1472 = antialiasingOffsets; Rasterizer.bottomX <<= 1; Rasterizer.bottomY <<= 1; DrawingArea.width <<= 1; DrawingArea.height <<= 1; DrawingArea.centerX <<= 1; DrawingArea.centerY <<= 1; DrawingArea.anInt1387 <<= 1; Rasterizer.textureInt1 <<= 1; Rasterizer.textureInt2 <<= 1; } Step 3: Anti Aliasing Render 2/2 Directly under 'worldController.method313'; Add the following; Note if you have fog rendering, the fog rendering should be just above this new code your adding and under 'method313' DrawingArea.setAllPixelsToZero(); worldController.method313(xCameraPos, yCameraPos, xCameraCurve, zCameraPos, j, yCameraCurve); if (Configuration.anti_aliasing == true) { Model.currentCursorX >>= 1; Model.currentCursorY >>= 1; WorldController.focalLength >>= 1; Rasterizer.pixels = pixels; Rasterizer.anIntArray1472 = offsets; Rasterizer.bottomX >>= 1; Rasterizer.bottomY >>= 1; DrawingArea.width >>= 1; DrawingArea.height >>= 1; DrawingArea.centerX >>= 1; DrawingArea.centerY >>= 1; DrawingArea.anInt1387 >>= 1; Rasterizer.textureInt1 >>= 1; Rasterizer.textureInt2 >>= 1; int w = DrawingArea.width; int h = DrawingArea.height; for (int x = 0; x < w; x++) { for (int y = 0; y < h; y++) { int x2 = x << 1; int y2 = y << 1; int w2 = w << 1; int c1 = antialiasingPixels[(x2 + y2 * w2)]; int c2 = antialiasingPixels[(x2 + 1 + y2 * w2)]; int c3 = antialiasingPixels[(x2 + (y2 + 1) * w2)]; int c4 = antialiasingPixels[(x2 + 1 + (y2 + 1) * w2)]; int r = (c1 >> 16 & 0xFF) + (c2 >> 16 & 0xFF) + (c3 >> 16 & 0xFF) + (c4 >> 16 & 0xFF) >> 2; int g = (c1 >> 8 & 0xFF) + (c2 >> 8 & 0xFF) + (c3 >> 8 & 0xFF) + (c4 >> 8 & 0xFF) >> 2; int b = (c1 & 0xFF) + (c2 & 0xFF) + (c3 & 0xFF) + (c4 & 0xFF) >> 2; DrawingArea.pixels[(x + y * DrawingArea.width)] = (r << 16 | g << 8 | b); } } } this code should all be followed with something that looks similar to the following, if you have done all that, congratulations! Make the 'Configuration.anti_aliasing' any boolean you please and test it out and continue below. worldController.clearObj5Cache(); updateEntities(); drawHeadIcon(); method37(k2); draw3dScreen(); aGraphicsBuffer_1165.drawGraphics(4, super.graphics, 4); xCameraPos = l; zCameraPos = i1; yCameraPos = j1; yCameraCurve = k1; xCameraCurve = l1; Grab a redbull, you'll need it. Step 4: The world controller / game scene Open your 'WorldController.java' (or 'Scene.java') Add and declare the following focalLength declarations anywhere (find below) and replace '>> 9' with the 'WorldController.focalLength' in the following methods; method311, method315, method 316; public static int focalLength = 512; static { focalLength = 512; } The following will be my methods using the focalLength, which may vary from yours. private static boolean method311(int i, int j, int k) { int l = j * anInt460 + k * anInt461 >> 16; int i1 = j * anInt461 - k * anInt460 >> 16; int j1 = i * anInt458 + i1 * anInt459 >> 16; int k1 = i * anInt459 - i1 * anInt458 >> 16; if (j1 < 50 || j1 > 3500) return false; int l1 = anInt493 + (l * WorldController.focalLength) / j1; int i2 = anInt494 + (k1 * WorldController.focalLength) / j1; return l1 >= anInt495 && l1 <= anInt497 && i2 >= anInt496 && i2 <= anInt498; } private void method315(Class43 class43, int i, int j, int k, int l, int i1, int j1, int k1) { int l1; int i2 = l1 = (j1 << 7) - anInt455; int j2; int k2 = j2 = (k1 << 7) - anInt457; int l2; int i3 = l2 = i2 + 128; int j3; int k3 = j3 = k2 + 128; int l3 = anIntArrayArrayArray440[i][j1][k1] - anInt456; int i4 = anIntArrayArrayArray440[i][j1 + 1][k1] - anInt456; int j4 = anIntArrayArrayArray440[i][j1 + 1][k1 + 1] - anInt456; int k4 = anIntArrayArrayArray440[i][j1][k1 + 1] - anInt456; int l4 = k2 * l + i2 * i1 >> 16; k2 = k2 * i1 - i2 * l >> 16; i2 = l4; l4 = l3 * k - k2 * j >> 16; k2 = l3 * j + k2 * k >> 16; l3 = l4; if (k2 < 50) return; l4 = j2 * l + i3 * i1 >> 16; j2 = j2 * i1 - i3 * l >> 16; i3 = l4; l4 = i4 * k - j2 * j >> 16; j2 = i4 * j + j2 * k >> 16; i4 = l4; if (j2 < 50) return; l4 = k3 * l + l2 * i1 >> 16; k3 = k3 * i1 - l2 * l >> 16; l2 = l4; l4 = j4 * k - k3 * j >> 16; k3 = j4 * j + k3 * k >> 16; j4 = l4; if (k3 < 50) return; l4 = j3 * l + l1 * i1 >> 16; j3 = j3 * i1 - l1 * l >> 16; l1 = l4; l4 = k4 * k - j3 * j >> 16; j3 = k4 * j + j3 * k >> 16; k4 = l4; if (j3 < 50) return; int i5 = Rasterizer.textureInt1 + (i2 * WorldController.focalLength) / k2; int j5 = Rasterizer.textureInt2 + (l3 * WorldController.focalLength) / k2; int k5 = Rasterizer.textureInt1 + (i3 * WorldController.focalLength) / j2; int l5 = Rasterizer.textureInt2 + (i4 * WorldController.focalLength) / j2; int i6 = Rasterizer.textureInt1 + (l2 * WorldController.focalLength) / k3; int j6 = Rasterizer.textureInt2 + (j4 * WorldController.focalLength) / k3; int k6 = Rasterizer.textureInt1 + (l1 * WorldController.focalLength) / j3; int l6 = Rasterizer.textureInt2 + (k4 * WorldController.focalLength) / j3; Rasterizer.anInt1465 = 0; if ((i6 - k6) * (l5 - l6) - (j6 - l6) * (k5 - k6) > 0) { private void method316(int i, int j, int k, ShapedTile shapedTile, int l, int i1, int j1) { int k1 = shapedTile.origVertexX.length; for (int l1 = 0; l1 < k1; l1++) { int i2 = shapedTile.origVertexX[l1] - anInt455; int k2 = shapedTile.origVertexY[l1] - anInt456; int i3 = shapedTile.origVertexZ[l1] - anInt457; int k3 = i3 * k + i2 * j1 >> 16; i3 = i3 * j1 - i2 * k >> 16; i2 = k3; k3 = k2 * l - i3 * j >> 16; i3 = k2 * j + i3 * l >> 16; k2 = k3; if (i3 < 50) return; if (Configuration.enableHDTextures || shapedTile.triangleTexture != null) { shapedTile.viewSpaceX[l1] = i2; shapedTile.viewSpaceY[l1] = k2; shapedTile.viewSpaceZ[l1] = i3; } shapedTile.screenX[l1] = Rasterizer.textureInt1 + (i2 * WorldController.focalLength) / i3; shapedTile.screenY[l1] = Rasterizer.textureInt2 + (k2 * WorldController.focalLength) / i3; shapedTile.viewSpaceZ[l1] = i3; shapedTile.viewSpaceZ[l1] = i3; } Rasterizer.anInt1465 = 0; k1 = shapedTile.triangleA.length; Step 5: Some model fixes Open 'Model.java' search for 'method443' (or 'renderAtPoint') and look around for some more of those '>> 9' and replace like we did before in 'method443' The following will be my methods using the focalLength, which may vary from yours. @Override public final void method443(int i, int j, int k, int l, int i1, int j1, int k1, int l1, int i2) { int j2 = l1 * i1 - j1 * l >> 16; int k2 = k1 * j + j2 * k >> 16; int l2 = anInt1650 * k >> 16; int i3 = k2 + l2; if (i3 <= 50 || k2 >= 3500) return; int j3 = l1 * l + j1 * i1 >> 16; int k3 = (j3 - anInt1650) * WorldController.focalLength; if (k3 / i3 >= DrawingArea.centerY) return; int l3 = (j3 + anInt1650) * WorldController.focalLength; if (l3 / i3 <= -DrawingArea.centerY) return; int i4 = k1 * k - j2 * j >> 16; int j4 = anInt1650 * j >> 16; int k4 = (i4 + j4) * WorldController.focalLength; if (k4 / i3 <= -DrawingArea.anInt1387) return; int l4 = j4 + (super.modelHeight * k >> 16); int i5 = (i4 - l4) * WorldController.focalLength; if (i5 / i3 >= DrawingArea.anInt1387) return; int j5 = l2 + (super.modelHeight * j >> 16); boolean flag = false; if (k2 - j5 <= 50) flag = true; boolean flag1 = false; if (i2 > 0 && objectExists) { int k5 = k2 - l2; if (k5 <= 50) k5 = 50; if (j3 > 0) { k3 /= i3; l3 /= k5; } else { l3 /= i3; k3 /= k5; } if (i4 > 0) { i5 /= i3; k4 /= k5; } else { k4 /= i3; i5 /= k5; } int i6 = currentCursorX - Rasterizer.textureInt1; int k6 = currentCursorY - Rasterizer.textureInt2; if (i6 > k3 && i6 < l3 && k6 > i5 && k6 < k4) if (aBoolean1659) anIntArray1688[objectsRendered++] = i2; else flag1 = true; } int l5 = Rasterizer.textureInt1; int j6 = Rasterizer.textureInt2; int l6 = 0; int i7 = 0; if (i != 0) { l6 = SINE[i]; i7 = COSINE[i]; } for (int j7 = 0; j7 < numberOfVerticeCoordinates; j7++) { int k7 = verticesXCoordinate[j7]; int l7 = verticesYCoordinate[j7]; int i8 = verticesZCoordinate[j7]; if (i != 0) { int j8 = i8 * l6 + k7 * i7 >> 16; i8 = i8 * i7 - k7 * l6 >> 16; k7 = j8; } k7 += j1; l7 += k1; i8 += l1; int k8 = i8 * l + k7 * i1 >> 16; i8 = i8 * i1 - k7 * l >> 16; k7 = k8; k8 = l7 * k - i8 * j >> 16; i8 = l7 * j + i8 * k >> 16; l7 = k8; anIntArray1667[j7] = i8 - k2; if (i8 >= 50) { projected_vertex_x[j7] = (l5 + k7 * WorldController.focalLength / i8); projected_vertex_y[j7] = (j6 + l7 * WorldController.focalLength / i8); if (Rasterizer.saveDepth) { vertexPerspectiveDepth[j7] = i8; } } else { projected_vertex_x[j7] = -5000; flag = true; } if (flag || numberOfTexturedFaces > 0) { camera_vertex_y[j7] = k7; camera_vertex_x[j7] = l7; camera_vertex_z[j7] = i8; } } try { method483(flag, flag1, i2); return; } catch (Exception _ex) { return; } }
  13. Have not tested. OP notes (Madara) 'this is just a base, modify the size of the item container and the item lists yourself' Skillguide Interace: public static void skillGuide(GameFont[] tda) { Widget mainScroll = addTabInterface(36100); Widget list = addTabInterface(36350); Widget side = addTabInterface(36150); int pos = 36151; int y = 0; side.height = 75; side.width = 260; list.height = 237; list.width = 284; list.scrollMax = 1750; addSprite(36101, 496); addSprite(36351, 497); addSprite(36352, 498); addButton(36104, 36100, 24, 24, 501, 501, 36105, "Close"); addHoveredButton_sprite_loader(36105, 502, 24, 24, 36106); addHoverText3(36353, "Weapons", "Open", tda, 3, 0x46320a, true, false, 150); addHoverText3(36354, "Armour", "Open", tda, 3, 0x46320a, true, false, 150); addHoverText3(36355, "Salamanders", "Open", tda, 3, 0x46320a, true, false, 150); addTitle(36102, "Attack", tda, 3, 0x46320a, true, false, true); addText(36103, "Weapons", tda, 0, 0x446320a, true, false); Widget container = addTabInterface(36250); container.spritesX = new int[20]; container.spritesY = new int[20]; container.inventoryItemId = new int[58]; container.inventoryAmounts = new int[58]; container.filled = false; container.replaceItems = false; container.usableItems = false; container.allowSwapItems = false; container.spritePaddingX = 0; container.spritePaddingY = 3; container.height = 58; container.width = 1; container.parent = 42000; container.type = TYPE_INVENTORY; for(int i = 0; i < 200; i++) { addText(pos + i, "" + i, tda, 1, 0x46320a, true, false); addText(pos + (i + 1), "" + (i + 1), tda, 1, 0x46320a, false, false); addText(pos + (i + 2), "" + (i + 2), tda, 1, 0x46320a, false, false); i += 3; } mainScroll.totalChildren(7); side.totalChildren(5); list.totalChildren(451); int scrollChild = 0; mainScroll.child(scrollChild++, 36101, 0, 0); mainScroll.child(scrollChild++, 36104, 470, 5); mainScroll.child(scrollChild++, 36105, 470, 5); mainScroll.child(scrollChild++, 36102, 180, 15); mainScroll.child(scrollChild++, 36103, 180, 32); mainScroll.child(scrollChild++, 36150, 355, 35); mainScroll.child(scrollChild++, 36350, 30, 75); int sideChild = 0; side.child(sideChild++, 36351, 0, 0); side.child(sideChild++, 36352, 0, 66); side.child(sideChild++, 36353, 0, 10); side.child(sideChild++, 36354, 0, 28); side.child(sideChild++, 36355, 0, 46); int listChild = 0; list.child(listChild++, 36250, 23, 0); for(int i = 0; i < 600; i++) { list.child(listChild++, pos + i, 11, y + 2); list.child(listChild++, pos + (i + 1), 61, y); list.child(listChild++, pos + (i + 2), 61, y + 13); y += 35; i += 3; } } 508 Scrollbar: public void draw508Scrollbar(int height, int pos, int y, int x, int maxScroll, boolean transparent) { if (transparent) { drawTransparentScrollBar(x, y, height, maxScroll, pos); } else { scrollBar3.drawSprite(x, y); // <- custom sprite scrollBar4.drawSprite(x, (y + height) - 16); // <- custom sprite Rasterizer2D.drawBox(x, y + 16, 16, height - 32, 0x746241); Rasterizer2D.drawBox(x, y + 16, 15, height - 32, 0x77603e); Rasterizer2D.drawBox(x, y + 16, 14, height - 32, 0x95784a); Rasterizer2D.drawBox(x, y + 16, 12, height - 32, 0x997c52); Rasterizer2D.drawBox(x, y + 16, 11, height - 32, 0x9e8155); Rasterizer2D.drawBox(x, y + 16, 10, height - 32, 0xa48558); Rasterizer2D.drawBox(x, y + 16, 8, height - 32, 0xaa8b5c); Rasterizer2D.drawBox(x, y + 16, 6, height - 32, 0xb09060); Rasterizer2D.drawBox(x, y + 16, 3, height - 32, 0x866c44); Rasterizer2D.drawBox(x, y + 16, 1, height - 32, 0x7c6945); int k1 = ((height - 32) * height) / maxScroll; if (k1 < 8) { k1 = 8; } int l1 = ((height - 32 - k1) * pos) / (maxScroll - height); int l2 = ((height - 32 - k1) * pos) / (maxScroll - height) + 6; Rasterizer2D.drawVerticalLine(x + 1, y + 16 + l1, k1, 0x5c492d); Rasterizer2D.drawVerticalLine(x + 14, y + 16 + l1, k1, 0x5c492d); Rasterizer2D.drawHorizontalLine(x + 1, y + 16 + l1, 14, 0x5c492d); Rasterizer2D.drawHorizontalLine(x + 1, y + 15 + l1 + k1, 14, 0x5c492d); Rasterizer2D.drawHorizontalLine(x + 4, y + 18 + l1, 8, 0x664f2b); Rasterizer2D.drawHorizontalLine(x + 4, y + 13 + l1 + k1, 8, 0x664f2b); Rasterizer2D.drawHorizontalLine(x + 3, y + 19 + l1, 2, 0x664f2b); Rasterizer2D.drawHorizontalLine(x + 11, y + 19 + l1, 2, 0x664f2b); Rasterizer2D.drawHorizontalLine(x + 3, y + 12 + l1 + k1, 2, 0x664f2b); Rasterizer2D.drawHorizontalLine(x + 11, y + 12 + l1 + k1, 2, 0x664f2b); Rasterizer2D.drawHorizontalLine(x + 3, y + 14 + l1 + k1, 11, 0x866c44); Rasterizer2D.drawHorizontalLine(x + 3, y + 17 + l1, 11, 0x866c44); Rasterizer2D.drawVerticalLine(x + 13, y + 12 + l2, k1 - 4, 0x866c44); Rasterizer2D.drawVerticalLine(x + 3, y + 13 + l2, k1 - 6, 0x664f2b); Rasterizer2D.drawVerticalLine(x + 12, y + 13 + l2, k1 - 6, 0x664f2b); Rasterizer2D.drawHorizontalLine(x + 2, y + 18 + l1, 2, 0x866c44); Rasterizer2D.drawHorizontalLine(x + 2, y + 13 + l1 + k1, 2, 0x866c44); Rasterizer2D.drawHorizontalLine(x + 12, y + 18 + l1, 1, 0x866c44); Rasterizer2D.drawHorizontalLine(x + 12, y + 13 + l1 + k1, 1, 0x866c44); } } Transparent Background: if(rsInterface.id == 36100) { Rasterizer2D.drawTransparentBox(-100, 0, Rasterizer2D.width + 100, Rasterizer2D.height, 0x3e2f1d, 100); }

Contact

ltlimes

RSPS Partners

RedemptionRSPS

What is a RSPS?

A RSPS, also known as RuneScape private server, is an online game based on RuneScape, and controlled by independent individuals.

Popular RSPS Servers

oldschoolrsps Runewild RedemptionRSPS

Disclaimer

Runesuite is not affiliated with runescape, jagex, rune-server and runelocus in any way & exists solely for educational purposes.

×
×
  • Create New...