Jump to content
Existing user? Sign In

Sign In



Sign Up

'Kyle

Members
  • Posts

    22
  • Joined

  • Last visited

Personal Information

  • Sex
    Male
  • Location
    United States

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Oooooohhhh! Much appreciated, man!
  2. Very nice! Definitely going to give this thing a peek-a-boo.
  3. 200+ active members a day, and a huge content base. I have been playing it for a few months and love its appeal. Great job, guys!
  4. I grew up on PS1. You know, the old school one. You could plug it into a cigar lighter in the vehicle, flip the screen up on it and play your game! It was portable! I believe this system was way before its time. Although, over the years as PS introduced the PSP and so forth, they've stuck with the same old user interface that is so boring. Recently, about a few years now, I switched to XB1. It is much more user friendly and they have some great opportunities -such as streaming via Mixer and a GUI with much more appeal. So, I vote for XB1! Although, lets be honest, PC beats the both of them -and always will.
  5. You know those pesky little rocks and bushes that you'd like to add around for some more aesthetic appeal? But there is an issue ...you aren't quite sure as to how to obtain the idea of the object, being that you cannot right-click and examine in debug-mode. Well, here you go! Hope this helps. case "objdebug": System.out.println("Standing on " + World.getObject(player)); Region r = World.getRegion(player.getRegionY() | (player.getRegionX() << 8)); if (r == null) { player.getPackets().sendGameMessage("Region is null!"); return true; } List<WorldObject> objects = r.getObjects(); if (objects == null) { player.getPackets().sendGameMessage("Objects are null!"); return true; } for (WorldObject o : objects) { if (o == null || !o.matches(player)) { continue; } System.out.println("Objects coords: " + o.getX() + ", " + o.getY()); System.out.println("[Object]: id=" + o.getId() + ", type=" + o.getType() + ", rot=" + o.getRotation() + "."); } return true;
  6. Hey, thanks! I will definitely be adding this.
  7. You're supposed to thieve a stall, the stall respawns a temporary empty stall object for "x" amount of seconds, then the original stall comes back. So the original cached map objects -such as the ones in Draynor or East Ardougne- will respawn the stall with the items after the allotted time has been met. Yet, with spawned in thieved stalls, this seems to not work. I have added some stalls around varrock, fally, etc. Whenever you thieve the stall, it will spawn the temporary empty stall. Although, after its time to respawn the stall with the items it will despawn completely... This is frustrating me. Any ideas? (P.S. Seed stall at Draynor works, but not anywhere I have spawned it) Here are some gifs of what is supposed to happen: Instead, right before the stall comes back, it despawns. This method is involved, albiet I doubt it is the culprit. public static void handleStalls(final Player player, final WorldObject object) { // if (player.getAttackedBy() != null && player.getAttackedByDelay() > Utils.currentTimeMillis()) { // player.getPackets().sendGameMessage("You can't do this while you're under combat."); // return; // } for (final Stalls stall : Stalls.values()) { if (stall.getObjectId() == object.getId()) { final WorldObject emptyStall = new WorldObject( stall.getReplaceObject(), 10, object.getRotation(), object.getX(), object.getY(), object.getPlane()); if (player.getSkills().getLevel(Skills.THIEVING) < stall .getLevel()) { player.getPackets().sendGameMessage( "You need a thieving level of " + stall.getLevel() + " to steal from this.", true); return; } if (player.getInventory().getFreeSlots() <= 0) { player.getPackets().sendGameMessage( "Not enough space in your inventory.", true); return; } player.setNextAnimation(new Animation(881)); player.lock(2); WorldTasksManager.schedule(new WorldTask() { boolean gaveItems; @Override public void run() { // prevents multiempty stall spawn if many ppl using // same spot and also checks if stall there still if (!World.getRegion(object.getRegionId()) .containsObject(object.getId(), object)) { stop(); return; } if (!gaveItems) { player.getInventory().addItem( stall.getItem(Utils .getRandom(stall.item.length - 1)), Utils.getRandom(stall.getAmount())); player.getSkills().addXp(Skills.THIEVING, stall.getExperience()); gaveItems = true; checkGuards(player); } else { World.spawnTemporaryObject(emptyStall, (int) (1500 * stall.getTime())); stop(); } } }, 0, 0); } } }
  8. 'Kyle

    Vorkath -

    So you're going to continue working with this project?.. Or are you just releasing for the public to utilize, seeing as it was a paid project that you were hired to do?
  9. Hey, much obliged! I hope to enjoy my time here with everyone and learn quite a bit, as well as share some knowledge!
  10. First you'll need to declare your packets+size inside WPD: private final static int ITEM_ON_FLOOR_EXAMINE = 102; Then add this under processPackets method: } else if (packetId == ITEM_ON_FLOOR_EXAMINE) { int y = stream.readUnsignedShort(); //CLIENT SENDS THEM BACKWARDS ON PURPOSE int x = stream.readUnsignedShortLE(); int id = stream.readUnsignedShort(); boolean forceRun = stream.readUnsigned128Byte() == 1; player.getPackets().sendItemMessage(0, 15263739, id, x, y, ItemExamines.getExamine(new Item(id))); // ChatboxMessage Inside WPE: public void sendItemMessage(int border, int colour, int id, int x, int y, String message) { sendGameMessage(message); sendGlobalString(306, message); sendGlobalConfig(1699, colour); //"color" - Default; 1 - Black sendGlobalConfig(1700, border); //"border" - Default; 0 - White; 1 - Red; 2 - No Border sendGlobalConfig(1695, 1); sendItemInterface(new Item(id), new WorldTile(x, y, player.getPlane()), true, 746, 0, 1177); } public void sendItemInterface(Item item, WorldTile tile, boolean noclipped, int windowId, int windowComponentId, int interfaceId) { int[] xteas = new int[4]; OutputStream stream = new OutputStream(30); stream.writePacket(player, 36); stream.writeByte128(noclipped ? 1 : 0); stream.writeIntV2(xteas[0]); stream.writeIntLE((windowId << 16) | windowComponentId); stream.writeIntV1(xteas[1]); stream.writeShort(item.getId()); stream.writeIntV1(xteas[2]); stream.writeInt(xteas[3]); stream.writeShortLE(interfaceId); stream.writeInt((tile.getPlane() << 28) | (tile.getX() << 14) | tile.getY()); session.write(stream); }
  11. This is for the Underwall Tunnel at the Grand Exchange. In your ObjectHandler, you will want to place these two methods (preferably under HandleOption5, somewhere): public static void climbTunnel(final Player player, final boolean goingIn) { if (player.getBoneDelay() > Utils.currentTimeMillis()) return; player.addBoneDelay(150); if (!goingIn) { player.addWalkSteps(3144, 3514, 0, false); player.setNextWorldTile(new WorldTile(3143, 3514, 0)); player.setNextAnimation(new Animation(2589)); } else { player.addWalkSteps(3138, 3516, 0, false); player.setNextWorldTile(new WorldTile(3139, 3516, 0)); player.setNextAnimation(new Animation(2589)); } player.getPackets().sendGameMessage("Climb into the tunnel..."); WorldTasksManager.schedule(new WorldTask() { @Override public void run() { if (!goingIn) { player.addBoneDelay(3000); //5sec-2sec=3sec walkTunnel(player, false); } else { player.addBoneDelay(3000); //5sec-2sec=3sec walkTunnel(player, true); } stop(); } }, 2); } public static void walkTunnel(final Player player, final boolean goingIn) { if (!goingIn) { player.setNextAnimation(new Animation(2591)); player.setNextWorldTile(new WorldTile(3139, 3516, 0)); } else { player.setNextAnimation(new Animation(2591)); player.setNextWorldTile(new WorldTile(3143, 3514, 0)); } player.getPackets().sendGameMessage((goingIn) ? "...and end up inside the Grand Exchange" : "...and end up outside the Grand Exchange."); WorldTasksManager.schedule(new WorldTask() { @Override public void run() { if (!goingIn) { player.addWalkSteps(3138, 3516, 0, false); } else { player.addWalkSteps(3144, 3514, 0, false); } stop(); } }); } Then, in your HandleOption1 method, inside ObjectHandler, add this: } else if (id == 9311 && object.getX() == 3139 && object.getY() == 3516) { climbTunnel(player, true); // GE Tunnel outside to inside } else if (id == 9312 && object.getX() == 3143 && object.getY() == 3514) { climbTunnel(player, false); // GE Tunnel inside to outside
  12. 'Kyle

    A backup manager

    Thanks, I am going to use this!
  13. Hello, I am Kyle. I have been in the RSPS community for many years -starting sometime around 2009. I have worked with quite a few revisions. During 2014 I began to fall out of the community and disassociate with RS as a whole. Fast forwards a few years, here we are. The experiences I have and the knowledge I've gained has greatly accompanied me with my endeavor of obtaining my Software Engineers degree, that I am currently pursuing. I appreciate you all and am happy to be here!

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...