|
Client Sided:
RSInterface.java:
Add this:
In RSInterface, search forCode:private static void wildernessInterface() { RSInterface tab = RSInterface.addTabInterface(25347); tab.totalChildren(8); addSpriteLoader(25348, 1190); addText(25349, "Target:", fonts, 0, 0xCCCBCB, true, true); addText(25350, "None", fonts, 0, 0xCCCBCB, true, true); addText(25351, "Wilderness Level:", fonts, 0, 0xCCCBCB, false, true); addText(25352, "18", fonts, 0, 0xCCCBCB, true, true); addText(25353, "Target Percentage:", fonts, 0, 0xCCCBCB, false, true); addText(25354, "99%", fonts, 0, 0xCCCBCB, true, true); addText(25355, "Levels: 114 - 126", fonts, 1, 0xff9040, false, true); tab.child(0, 25348, 334, 2); tab.child(1, 25349, 356, 10); tab.child(2, 25350, 445, 10); tab.child(3, 25351, 340, 28); tab.child(4, 25352, 492, 28); tab.child(5, 25353, 340, 46); tab.child(6, 25354, 492, 46); tab.child(7, 25355, 411, 315); }
Directly under it add:Code:aClass44 = streamLoader;
Server Sided:Code:wildernessInterface();
Locations.java replace Wilderness.
Replace sprites or add 1190 (For Wildy)Code:WILDERNESS(new int[]{2941, 3392, 2986, 3012, 3653, 3706, 3650, 3653}, new int[]{3523, 3968, 10338, 10366, 3441, 3538, 3457, 3472}, false, true, true, true, true, true) { @Override public void process(Player player) { int x = player.getPosition().getX(); int y = player.getPosition().getY(); boolean ghostTown = x >= 3650 && y <= 3538; if(ghostTown) { player.setWildernessLevel(60); } else { player.setWildernessLevel(((((y > 6400 ? y - 6400 : y) - 3520) / 8)+1)); } player.getPacketSender().sendString(25352, ""+player.getWildernessLevel()); player.getPacketSender().sendString(25355, "Levels: "+CombatFactory.getLevelDifference(player, false) +" - "+CombatFactory.getLevelDifference(player, true)); BountyHunter.process(player); } @Override public void leave(Player player) { if(player.getLocation() != this) { player.getPacketSender().sendString(19000, "Combat level: " + player.getSkillManager().getCombatLevel()); player.getUpdateFlag().flag(Flag.APPEARANCE); } PLAYERS_IN_WILD--; } @Override public void enter(Player player) { player.getPacketSender().sendInteractionOption("Attack", 2, true); player.getPacketSender().sendWalkableInterface(25347); player.getPacketSender().sendString(19000, "Combat level: " + player.getSkillManager().getCombatLevel()); player.getUpdateFlag().flag(Flag.APPEARANCE); PLAYERS_IN_WILD++; } @Override public boolean canTeleport(Player player) { if(player.getWildernessLevel() > 20) { if(player.getRights() == PlayerRights.ADMINISTRATOR || player.getRights() == PlayerRights.OWNER || player.getRights() == PlayerRights.DEVELOPER) { player.getPacketSender().sendMessage("@red@You've teleported out of deep Wilderness, logs have been written."); return true; } player.getPacketSender().sendMessage("Teleport spells are blocked in this level of Wilderness."); player.getPacketSender().sendMessage("You must be below level 20 of Wilderness to use teleportation spells."); return false; } return true; } @Override public void login(Player player) { player.performGraphic(new Graphic(2000, 8)); } @Override public boolean canAttack(Player player, Player target) { int combatDifference = CombatFactory.combatLevelDifference(player.getSkillManager().getCombatLevel(), target.getSkillManager().getCombatLevel()); if (combatDifference > player.getWildernessLevel() || combatDifference > target.getWildernessLevel()) { player.getPacketSender().sendMessage("Your combat level difference is too great to attack that player here."); player.getMovementQueue().reset(); return false; } if(Jail.isJailed(player)) { player.getPacketSender().sendMessage("You cannot do that right now."); return false; } if(Jail.isJailed(target)) { player.getPacketSender().sendMessage("That player cannot be attacked right now."); return false; } if(Misc.getMinutesPlayed(player) < 20) { player.getPacketSender().sendMessage("You must have played for at least 20 minutes in order to attack someone."); return false; } if(Misc.getMinutesPlayed(target) < 20) { player.getPacketSender().sendMessage("This player is a new player and can therefore not be attacked yet."); return false; } return true; } },
Follow the steps correctly and you will get:
If you haven't modified any sprites you can use these:
https://mega.nz/#!VMBBTYLK!cHJvwfBBr..._zNLDZi4VQWXJc
nice work
He means change
toCode:public void process(Player player) { int x = player.getPosition().getX(); int y = player.getPosition().getY(); boolean ghostTown = x >= 3650 && y <= 3538; if(ghostTown) { player.setWildernessLevel(60); } else { player.setWildernessLevel(((((y > 6400 ? y - 6400 : y) - 3520) / 8)+1)); } player.getPacketSender().sendString(25352, ""+player.getWildernessLevel()); player.getPacketSender().sendString(25355, "Levels: "+CombatFactory.getLevelDifference(player, false) +" - "+CombatFactory.getLevelDifference(player, true)); BountyHunter.process(player); }
I haven't tested this, but basically this just checks server-sided if the players wilderness level has changed, if so, it sends the packets to the client telling it to update the interfaceCode:int wildLvl = 0; @Override public void process(Player player) { int x = player.getPosition().getX(); int y = player.getPosition().getY(); boolean ghostTown = x >= 3650 && y <= 3538; if(ghostTown) { player.setWildernessLevel(60); } else { player.setWildernessLevel(((((y > 6400 ? y - 6400 : y) - 3520) / 8)+1)); } if(wildLvl == 0) wildLvl = player.getWildernessLevel(); if(wildLvl != player.getWildernessLevel()) { player.getPacketSender().sendString(25352, ""+player.getWildernessLevel()); player.getPacketSender().sendString(25355, "Levels: "+CombatFactory.getLevelDifference(player, false) +" - "+CombatFactory.getLevelDifference(player, true)); } BountyHunter.process(player); }
This line is commented out in the stock v2 source, I'd say because it was broken lol.
player.getPacketSender().sendString(25355, "Levels: "+CombatFactory.getLevelDifference(player, false) +" - "+CombatFactory.getLevelDifference(player, true));
Pretty sure theres nothing wrong with the ruse v2 wilderness interface
Definitely nothing wrong with the original ruse v2 wilderness interface, unless you were using an extremely bad "released" ruse v2 source. Those looks like the bounty hunter id's from ruse v1 and it looks like the tutorial even recommends using RSInterface (ruse v1) instead of using Ruse v2's default CustomInterface class that automatically places them into that method. My guess is that it wasn't working so instead of debugging, then just copy and paste from a v1 client over to v2. If anyone has this same issue and they don't know how to fix it I guess it could be helpful though
The actual ruse v2 wilderness interface looks like this
I don't see why you would change the ruse v2 interface when it already works fine unless you added a separate interface that overwrote those id's. Maybe I'm wrong and theres a really bad ruse v2 source floating around thoughCode:private void bountyInterface() { RSInterface rsi = addInterface(42020); RSInterface.addTransparentSprite(42021, 611, 611, 125); RSInterface.addText(42022, "None", 0xD40000, true, true, -1, tda, 0); RSInterface.addText(42023, "5", 0xD40000, false, true, -1, tda, 0); RSInterface.addText(42024, "100%", 0xD40000, false, true, -1, tda, 0); RSInterface.addText(42025, "Target:", Integer.MAX_VALUE, true, true, -1, tda, 0); RSInterface.addText(42026, "Wilderness Level:", Integer.MAX_VALUE, false, true, -1, tda, 0); RSInterface.addText(42027, "Target Percentage:", Integer.MAX_VALUE, false, true, -1, tda, 0); rsi.totalChildren(7); setBounds(42021, 310, 5, 0, rsi); setBounds(42022, 430, 9, 1, rsi); setBounds(42023, 430, 25, 2, rsi); setBounds(42024, 430, 40, 3, rsi); setBounds(42025, 334, 10, 4, rsi); setBounds(42026, 316, 25, 5, rsi); setBounds(42027, 316, 39, 6, rsi); }
That line doesn't exist in the "stock v2 source". You're most likely talking about Necrotic, which is definitely not "stock" ruse v2, although it is ruse v2
« Previous Thread | Next Thread » |
Thread Information |
Users Browsing this ThreadThere are currently 1 users browsing this thread. (0 members and 1 guests) |