Jump to content

Search the Community

Showing results for tags 'base'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • RuneLocus
    • News & Announcements
    • Information Booth
    • Website Support
    • Introductions
    • Chat
    • Forum Games
  • RuneScape Development
    • RSPS General
    • RuneScape Private Server (RS2)
    • RuneScape Private Server (503+)
    • RuneScape Private Server (EoC 742+)
  • Other
    • Digital Art
    • Gaming
    • Webdevelopment
    • Computers
  • Marketplace
    • RuneScape Market
    • RSPS Market
    • Others Market
    • Freelance Middleman Services
  • Super Secret Club's Topics

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Found 79 results

  1. hi, i'm looking for just a base 317 preferably with newer client
  2. Hello, I am new to RSPS coding and would like to know what base I should start with, I was thinking about PI but I have seen quite a lot of people say it's bad and I shouldn't use it. Maybe matrix? Thanks.
  3. just asking if is possible...
  4. SO HERES WHAT IM LOOKING FOR 1. i am seeking a complete ready for release server base that meets my standards which i will pay fairly for OR I am seeking a coder to help me finish my current base souce i am working with as of now these items still need to be completed keep in mind i will pay fairly for all work completed dg needs redo boss monster damage auto vote auto donate agility course gnome needs work thiev enable staking at duel arena donator zone, donator shops construction pest control client needs new background/name godwars needs to be touched up barrows items drop onto ground when you get them from the chest completionist cape reqs send me a pm on the fourms or add my skype chris.987654321
  5. Is there a thread on the "best" base for some of the more popular revisions? Best in terms of content or stability.
  6. Thread can be closed [MENTION=1573]Cart[/MENTION] or anyother staff member. for the people who have this Enjoy. For the ones not thank your fellow members on this forum for hating.
  7. Hello, I am DoseSociety. The developer for the new project GoodtimesScape. Here is one thing I've been working on in the first two days of development. I see no reason to share whatever source code I produce publicly. [code]import com.rs2hd.model.Player; import com.rs2hd.Constants; /** * represents the process of stealing from a stall * @author ethan */ public class Thieving { /** * represents a vendor stall in the game from which you can steal items for experience */ private enum Stall { BREAD_STALL(25, 526, 0, "bread"), FABRIC_STALL(50, 526, 15, "fabric"), JEWELRY_STALL(100, 526, 40, "jewelry"); private int xp; private int item; private int level; private String itemName; private Stall(int xp, int item, int level, String itemName) { this.xp = xp; this.item = item; this.level = level; this.itemName = itemName; } public int getXp() { return xp; } public int getItem() { return item; } public int getLevel() { return level; } public String getItemName() { return itemName; } } /** * instance of the player while thieving */ private Player player; /** * the stall being stolen from */ private Stall stall; /** * constructs an instance of thieving */ public Thieving() { } /** * executes the thieving * TO-DO put better discription * [MENTION=75098]Para[/MENTION]m player * [MENTION=75098]Para[/MENTION]m stallId */ public void execute(Player player, int stallId) { this.player = player; switch (stallId) { case 4705: stall = Stall.BREAD_STALL; break; case 4706: stall = Stall.FABRIC_STALL; break; case 4707: stall = Stall.JEWELRY_STALL; break; } perform(); } /** * performs the thieving * TO-DO put better discription */ private void perform() { if (playerDoesntHaveLevel()) { player.getActionSender().sendMessage("You do not have the level required to steal from this stall."); return; } player.animate(881, 0); player.getActionSender().sendMessage("You stole some " + stall.getItemName() + "."); player.getInventory().addItem(stall.getItem(), 1); player.getSkills().addXp(17, stall.getXp() * Constants.EXPERIENCE_SCALE); } /** * checks to see if the player has the level needed to steal from a stall * [MENTION=184045]return[/MENTION] */ private boolean playerDoesntHaveLevel() { if (player.getSkills().getLevelForXp(17) < stall.getLevel()) { return true; } return false; } }[/code] The items aren't correct for the stalls If you want to scale the xp rate search for EXPERIENCE_SCALE in Thieving.java and change it to whatever scale you want This is the first object I've programmed in java for a very long time. If you could please revamp this and release the updates. I will use the updates personally. I hope I helped someone. Have a nice day :) To add this file to your rs2hd server go into ObjectPacketHandler.java Search [code]case 4705: player.thiefbs(); break; [/code] and replace it with [code]case 4705: case 4706: case 4707: thieving.execute(player, id); break; [/code]
  8. Good to start off with. I realized I don't haz the inters so I can't make it. (im clueless of adding interfaces to a PI since never done) [CODE]package com.argon.minigame.impl.barbarianassault; import java.util.ArrayList; import java.util.List; import com.Server; import com.argon.minigame.impl.Roles; import com.argon.player.Client; import com.argon.player.Player; import com.argon.player.PlayerUpdate; import com.argon.player.plugin.impl.ColoredMessage.Colours; import com.argon.utility.WorldTile; import java.util.Collection; import java.util.Iterator; /** * * @author FUZENSETH * [MENTION=98951]infor[/MENTION]mation RS2 Barbarian assault minigame. */ public class BarbarianAssault { /** The team, in a list. */ private List<Client> team; /* The maxinum team members. **/ private static final int MAX_TEAM_MEMBERS = 5; private Role role; private static final int INVITING_INTERFACE = 12349; private static WorldTile START_AREA = new WorldTile(3200,3200); public BarbarianAssault(Client player) { this.team = new ArrayList<>(); team.add(player); player.sendMessage("You have created a team."); } /** Basically represents that assault difficulty level*/ private int level; public enum Role { ATTACKER(0), HEALER(1), DEFENDER(2), COLLECTOR(3); private int index; public int getIndex() { return index; } private Role(final int index) { this.index = index; } } /** Adds a new team member.*/ public void add(Client player) { if (team != null) { player.sendMessage("You are already in a team."); return; } if (team.size() > MAX_TEAM_MEMBERS - 1) { player.sendMessage("The team has already "+MAX_TEAM_MEMBERS+"."); return; } team.add(player); if (team.size() > 0) for (Client players : getTeam()) players.sendMessage(""+player.getUsername()+" has joined to the team.", Colours.ORANGE); } public void invite(Client player, Client target) { if (target == null) { player.sendMessage("Target unavailable."); return; } player.sendMessage("Sending request..."); target.getPlayerAssistant().sendInterface(MAX_TEAM_MEMBERS); } /** Removes a team member, if the boolean is true, the whole team will be destroyed. */ public void remove(Client player, boolean destroy) { if (destroy) { getTeam().stream().map((players) -> { players.sendMessage("The team was destroyed."); return players; }).map((_item) -> { team.removeAll((Collection<Client>) getTeam()); return _item; }).forEach((_item) -> { this.team = null; }); team.remove(player); } } /* Starts the minigame, when players goes to the ladder. */ public void start() { if (team.size() < MAX_TEAM_MEMBERS) { team.get(0).sendMessage(team.get(0), MAX_TEAM_MEMBERS+"You need to have all the "+" team members in your team. "); return; } for (Client teamPlayers : getTeam()) { teamPlayers.getPlayerAssistant().movePlayer(START_AREA, team.get(0).playerId * 2); teamPlayers.sendMessage("The fight starts in 15 seconds..."); } } /* Gets a team player by id.*/ public List<Player> getTeamPlayer(int id) { return (List<Player>) team.get(id); } /** returns the whole team, with Client class casted. * [MENTION=184045]return[/MENTION] t*/ public List<Client> getTeam() { return team; } /** Gets a role. */ public Role getRole() { return role; } /** Sets the role. */ public void setRole(Role role) { this.role = role; } } [/CODE]
  9. Hey guys, I used to run a server about 2 years ago but it has been awhile. I'm looking to get back into it for fun, and to learn a little more. Back in the day I used PI based source which a lot of people recently have been complaining. So my question is what is the best stable base to get started on? I'm looking for something with the basic's already completed so I am starting on a solid foundation. Also I would like to note I would prefer a 317 but any suggestions are greatly appreciated. Thanks, Michael
  10. As I said, this is just a base: [CODE]package server.model.minigames; import server.Server; import server.model.npcs.NPCHandler; import server.model.players.Client; import server.util.Misc; /** * Handles Impetous Imps random spawning * Gives rewards (Imps in their jars) aswell as points * Magical Net will reward the player with double hunting EXP. * @author David * */ public class ImpetousImpulses { public static final String MINIGAME_NAME = "Impetous Impulses"; public static int IMPS[] = {1028, 1029, 1030, 1031, 1032,1033,1034,1035, 6053, 6054}; public static int randomImp(Client c, int i) { return IMPS[(int) (Math.random() * IMPS.length)]; } static enum ImpsData { BABY_IMP(1028, 17, 18, "Baby Imp", 11238), YOUNG_IMPLING(1029, 22, 20, "Young Impling", 1), GOURMET_IMPLING(1030, 28, 22, "Gourmet Impling", 1), EARTH_IMPLING(1031, 36, 25, "Earth Impling", 1), ESSENCE_IMPLING(1032, 42, 27, "Essence Impling", 1), ECLETIC_IMPLING(1033, 50, 30, "Ecletic Impling", 1), NATURE_IMPLING(1034, 50, 30, "Nature Impling", 1), MAGPIE_IMP(1035, 65, 44, "Magpie Impling", 1), NINJA_IMPLING(6053, 74, 50, "Ninja Impling", 1), DRAGON_IMPLING(6054, 83, 65, "Dragon Impling", 1); private int id, req, exp; private String desc; private int reward; ImpsData(int id, int req, int exp, String desc, int reward) { this.id = id; this.req = req; this.exp = exp; this.desc = desc; this.reward = reward; } public int getId() { return id; } public int getReq() { return req; } public int getExp() { return exp; } public int getReward() { return reward; } public String getDesc() { return desc; } } public static void spawnImp(Client c, int i) { for (int i = 1; i < 6; i++) { int npc = randomImp(c, randomImp(c, 0)); Server.npcHandler.spawnNpc(c, npc, c.absX + i, c.absY + i, c.heightLevel, 0, 0, 0, 0, 0, false, false); } System.out.println("Impling has been spawned"); } /*public void getRewards(Client c) { if (NPCHandler.npcs[id].npcType == id) c.sendMessage("You caught the "+desc+" and put into a jar."); c.getItems().addItem(reward, 1); c.getLevelForXP(c.playerXP[c.playerHunter] + exp); }*/ } [/CODE] [CODE]package server.model.items.addons; import server.model.players.Client; import server.util.Misc; /** **Impling Reward base for hunter. ** @Author David **/ public class ImplingJars { private Client c; public ImplingJars(Client c) { this.c = c; } public static int EMPTY_JAR = 11260; static enum ImpsData {BABY_IMPLING_JAR(1028,"Baby Impling Jar"); private int id; private String desc; ImpsData(int id, String desc) { this.id = id; this.desc = desc; } public static int baby_implings[] = {123, 123, 123, 123, 123, 123, 123, 123}; /*public static void handleJarReward() { c.getItems().deleteItem(11283, 1); c.getItems().addItem(4151, 1); c.getItems().addItem(EMPTY_JAR, 1); c.getItems().addItem(c.getPA().randomRunes(), Misc.random(150) + 100); c.sendMessage("You open the baby impling jar and recieve an item, the impling jar is intact"); }*/ } }[/CODE] I wrote this for a project, but I've not seen people have this minigame. To do: write impling jar rewards and the catching of implings. If you need any methods just ask. (P.S I'm aware it could do with some changes)
  11. Criley

    Rsps on a mac

    I'm looking for a good base to start a simple project on a mac. I've been looking for awhile and have not been able to find a base that works on mac. Leave suggestions, thanks!
  12. does anyone know any good 317 good base source to start with im on a server right now and I really want to know what source he is using
  13. [img]http://puu.sh/5Q2CN.png[/img] I wanted a fairy ring system with my own custom locations. You know, so people can get to training areas and stuff. Here's the base of my Fairy Ring system. This code is mine, besides the buttons. --- Make a new file called FairyRing in the package com.rs.game.player.content. In it, add this: [code] package com.rs.game.player.content; import com.rs.game.Animation; import com.rs.game.Graphics; import com.rs.game.WorldObject; import com.rs.game.WorldTile; import com.rs.game.player.Equipment; import com.rs.game.player.Player; import com.rs.game.tasks.WorldTask; import com.rs.game.tasks.WorldTasksManager; /** * @author Arham Siddiqui * @author InflictionRB * The Fairy Ring transportation system. */ public class FairyRing { /** * Handles the single button of the main Fairy Ring interface. * * @param player The Player. * @param componentId The button (component in 508+ revisions)'s ID. */ public static void handleButton(Player player, int componentId) { if (componentId == 23) { //1st Plus if (player.getFirstColumn() == 2) { player.setFirstColumn(4); } else if (player.getFirstColumn() == 3) { player.setFirstColumn(3); } else if (player.getFirstColumn() >= 4) { player.setFirstColumn(1); } else { player.incrementFirstColumn(); } } else if (componentId == 24) { //1st Subtract if (player.getFirstColumn() <= 1) { player.setFirstColumn(4); } else { player.decrementFirstColumn(); } } else if (componentId == 25) { //2nd Plus if (player.getSecondColumn() == 2) { player.setSecondColumn(4); } else if (player.getSecondColumn() == 3) { player.setSecondColumn(3); } else if (player.getSecondColumn() >= 4) { player.setSecondColumn(1); } else { player.incrementSecondColumn(); } } else if (componentId == 26) { //2nd Subtract if (player.getSecondColumn() <= 1) { player.setSecondColumn(4); } else { player.decrementSecondColumn(); } } else if (componentId == 27) { //3rd Plus if (player.getThirdColumn() == 2) { player.setThirdColumn(4); } else if (player.getThirdColumn() == 3) { player.setThirdColumn(3); } else if (player.getThirdColumn() >= 4) { player.setThirdColumn(1); } else { player.incrementThirdColumn(); } } else if (componentId == 28) { //3rd Subtract if (player.getThirdColumn() <= 1) { player.setThirdColumn(4); } else { player.decrementThirdColumn(); } } else if (componentId == 21) { //Confirm System.out.println(1); teleport(player, false); } } /** * Teleports the player to the desired Fairy Ring code's location. * * @param player The Player teleporting to the entered code. * @param main If the Player is teleporting to the main Fairy Ring. */ private static void teleport(final Player player, boolean main) { System.out.println(2); if (player.getTemporaryAttributtes().get("TeleBlocked") != null) { player.getPackets().sendGameMessage("You cannot use the Fairy ring when teleblocked!"); return; } if (main) { teleport(player, Combination.MAIN_LOCATION); return; } boolean success = false; for (final Combination combination : Combination.values()) { if (player.getFirstColumn() == combination.getFirstColumn() && player.getSecondColumn() == combination.getSecondColumn() && player.getThirdColumn() == combination.getThirdColumn() && combination != Combination.MAIN_LOCATION) { System.out.println(3); success = true; teleport(player, combination); } } System.out.println(success ? "true" : "false"); if (!success) { invalidCode(player); } } /** * Handles if the code was invalid. * * @param player The Player entering the invalid code. */ private static void invalidCode(Player player) { player.closeInterfaces(); player.getPackets().sendGameMessage("You've entered an invalid code!"); } /** * The teleporting itself. * * @param player The Player teleporting. * @param combination The combination the Player entered (to get the destination). */ private static void teleport(final Player player, final Combination combination) { preTeleportSetup(player); player.setNextAnimation(new Animation(3254)); player.setNextGraphics(new Graphics(2670)); WorldTasksManager.schedule(new WorldTask() { @Override public void run() { player.setNextWorldTile(combination.getDestination()); } }, 1); WorldTasksManager.schedule(new WorldTask() { @Override public void run() { player.setNextGraphics(new Graphics(2671)); player.setNextAnimation(new Animation(3255)); postTeleportSetup(player); } }, 3); } /** * What to do before initializing the teleport itself. * * @param player The Player initializing the teleport. */ private static void preTeleportSetup(Player player) { player.stopAll(); player.lock(3); } /** * What to do after the teleport has been done. * * @param player The Player to handle after the teleport has been done. */ private static void postTeleportSetup(Player player) { player.lock(3); refreshConfigurations(player); player.closeInterfaces(); player.stopAll(); } /** * Refreshes the numbers representing the sections of the Fairy Ring code. * * @param player The Player to refresh the numbers of. */ private static void refreshConfigurations(Player player) { player.setFirstColumn(1); player.setSecondColumn(1); player.setThirdColumn(1); } /** * Handles the Fairy Ring object. * * @param object The Fairy Ring object. * @param player The Player clicking the Fairy Ring object. */ public static void handleObject(WorldObject object, Player player) { if (object.getX() == 2412 && object.getY() == 4434 && object.getPlane() == 0) { if (canOpenInterfaces(player)) openInterfaces(player); return; } teleport(player, true); } /** * Can the player open the interface (if they don't have a weapon or if they do and its not a dramen or a lunar staff)? * * @param player The Player to check if they can open the interface for them. * @return If the player can open the interface. */ private static boolean canOpenInterfaces(Player player) { if (player.getEquipment().getItem(Equipment.SLOT_WEAPON) == null || player.getEquipment().getItem(Equipment.SLOT_WEAPON) != null && player.getEquipment().getItem(Equipment.SLOT_WEAPON).getId() == 772 || player.getEquipment().getItem(Equipment.SLOT_WEAPON) != null && player.getEquipment().getItem(Equipment.SLOT_WEAPON).getId() == 9084) { player.getPackets().sendGameMessage("You need a dramen or lunar staff to use the Fairy Ring!"); return false; } return true; } /** * Opens the interfaces of the main Fairy Ring. Also assigns text to the interface. * * @param player The Player to open the interfaces for. */ private static void openInterfaces(Player player) { player.getInterfaceManager().sendInterface(734); player.getInterfaceManager().sendInventoryInterface(735); // setTitle(player, ""); // If you'd like to set a custom title for your Fairy Ring transportation system, uncomment this code and put the new name in-between the "". setLocations(player, "Test1", "Test2", "Test3", "Test4", "Test5", "Test6", "Test7", "Test8", "Test9", "Test10", "Test11", "Test12", "Test13", "Test14", "Test15", "Test16", "Test17"); } /** * Sets the title of the inventory interface. This is optional. * * @param player The Player to set the title of their inventory interface. * @param title The title of the inventory interface. */ private static void setTitle(Player player, String title) { player.getPackets().sendIComponentText(735, 11, title); } /** * Sets the list of codes and locations. * * @param player The Player to list the locations to. * @param locations The locations to set. */ private static void setLocations(Player player, String... locations) { int line = 14; int stringIndex = 0; while (line != 31) { player.getPackets().sendIComponentText(735, line, " " + locations[stringIndex]); stringIndex++; line++; } } /** * The enumeration of the possible Combinations for the Fairy Ring. */ private enum Combination { MAIN_LOCATION(-1, -1, -1, new WorldTile(2412, 4434, 0)); private int firstColumn; private int secondColumn; private int thirdColumn; private WorldTile destination; Combination(int firstColumn, int secondColumn, int thirdColumn, WorldTile destination) { this.firstColumn = firstColumn; this.secondColumn = secondColumn; this.thirdColumn = thirdColumn; this.destination = destination; } public int getFirstColumn() { return firstColumn; } public int getSecondColumn() { return secondColumn; } public int getThirdColumn() { return thirdColumn; } public WorldTile getDestination() { return destination; } } } [/code] Next, in Player.java, add: [code] private transient int firstColumn = 1, secondColumn = 1, thirdColumn = 1; public int getFirstColumn() { return this.firstColumn; } public int getSecondColumn() { return this.secondColumn; } public int getThirdColumn() { return this.thirdColumn; } public void setFirstColumn(int i) { this.firstColumn = i; } public void setSecondColumn(int i) { this.secondColumn = i; } public void setThirdColumn(int i) { this.thirdColumn = i; } public void decrementFirstColumn() { this.firstColumn--; } public void decrementSecondColumn() { this.secondColumn--; } public void decrementThirdColumn() { this.thirdColumn--; } public void incrementFirstColumn() { this.firstColumn++; } public void incrementSecondColumn() { this.secondColumn++; } public void incrementThirdColumn() { this.thirdColumn++; } [/code] Now, open ButtonHandler and find: [code] } else if (interfaceId == 34) {// notes interface [/code] Above that, add: [code] } else if (interfaceId == 734) { //Fairy rings FairyRing.handleButton(player, componentId); [/code] Lastly, open ObjectHandler and below: [code] case "ladder": handleLadder(player, object, 1); break; [/code] Add: [code] case "fairy ring": FairyRing.handleObject(object, player); break; [/code] Finished. :^^ [img]http://puu.sh/5Q37m.png[/img] [I]Here we go...[/I] EDIT: Here's some little things for adding onto this base: [B]Adding a new code combination[/B] Heh, funny thing is, I left something out. If you are still reading this far, lucky you. Go just below the class declaration and add the following: [code] /** * The integers representing the letters on the Fairy Ring. */ private static final int A = 1; private static final int I = 1; private static final int P = 1; private static final int D = 2; private static final int L = 2; private static final int S = 2; private static final int C = 3; private static final int K = 3; private static final int R = 3; private static final int B = 4; private static final int J = 4; private static final int Q = 4; [/code] This will make you making a new code SO much more easier! So, adding the new combination code. To do so, go into the Combination enum and remove the [I];[/I] in the [I]MAIN_LOCATION[/I] and make it a [I],[/I], then below that, with a enter from the [I]MAIN_LOCATION[/I], make a new entry. You must put 3 integers. The things we declared below the class declaration are what we are going to use. Let's say, we want a player to go to Lumbridge with AIP, so then I'd put [I]A, I, P[/I], then we'd make one for the location, so we'd do, [I]A, I, P, new WorldTile(3200, 3200, 0)[/I]. Our end result? [code] /** * The enumeration of the possible Combinations for the Fairy Ring. */ private enum Combination { MAIN_LOCATION(-1, -1, -1, new WorldTile(2412, 4434, 0)), LUMBRIDGE(A, I, P, new WorldTile(3200, 3200, 0)); [/code] We have just added a new code combination! [B]Changing the text so it prints out your location.[/B] Did you notice the dummy text? [img]http://puu.sh/5Q45g.png[/img] Yeah... they don't look pretty. Scroll down to see the following: [code] setLocations(player, "Test1", "Test2", "Test3", "Test4", "Test5", "Test6", "Test7", "Test8", "Test9", "Test10", "Test11", "Test12", "Test13", "Test14", "Test15", "Test16", "Test17"); [/code] Currently, a bug I am trying to fix is that the tests are not really organized in the travel log. For now, you'll need to actually use your head for making it visible. Good luck with that! Anywho, all you need to do is replace the Test# with your text. For example, I made lumbridge AIP, so now I want to make it say that in the description. All I need to do is replace Test1 with my text. I'm going to say, [I]Misthalin: Lumbridge[/I]. So now, it looks like this: [code] setLocations(player, "Misthalin: Lumbridge", "Test2", "Test3", "Test4", "Test5", "Test6", "Test7", "Test8", "Test9", "Test10", "Test11", "Test12", "Test13", "Test14", "Test15", "Test16", "Test17"); [/code] [img]http://puu.sh/5Q4om.png[/img] [B]Setting a custom title[/B] For setting a custom title, I commented some code in the openInterfaces method. [code] // setTitle(player, ""); // If you'd like to set a custom title for your Fairy Ring transportation system, uncomment this code and put the new name in-between the "". [/code] The instructions are there for you. ;) For example, I want to make the title now, "Ham's Transportation". All I'd do is replace whats inside, so the ending is this: [code] setTitle(player, "Ham's Transportation"); [/code] [img]http://puu.sh/5Q4Cv.png[/img] [COLOR="#FF0000"][B]Bug fix #1[/B][/COLOR] The system was reading the integers as 0, where they should be read as 1 at start. Simple fix. All you need to do is add this to [I]openInterfaces[/I]: [code] refreshConfigurations(player); [/code]
  14. Primed

    Best Server Base?

    What is the best and most stable base to build a server from? I'd like it if most basic things are done already, but I don't mind coding things in.
  15. I've edited a clean Deltascape source from the bottom up, so I don't know where to look but maybe someone can help. Everything works fine when there's just one person online. When someone else logs in, however, there's a mixup between interfaces. Say player A is standing at home, not doing anything. If player B walks into the wilderness (from Edgeville) the shops from around player A disappear and the wilderness icon appears in the corner of both screens. The NPC shops then appear the in wilderness for player B. Also, Player A and Player B are always in each other's screens no matter how "far" apart the avatars actually are. Ideas?
  16. evilguyme

    Popular base?

    hey guys, i wanted to ask what is the most recent popular base that i can work on and is 317? like one that has stuff like 600+ anims and items and overloads and torva? thanks guys :)
  17. Helicobacter

    Starter Base

    I'm looking for a clean sort of 508 base that has its respective Cache/Client/Server. While the prebuilt ones got me quite a ways with learning some coding knowledge, theres too much content in many of them that I either don't want or makes it a bit harder to learn. Can anyone point me to a reliable Package(Cache/Client/Server). Also..Im also curious about Hyperion/Runesource. If anyone could provide a link to them, I can't find them anywhere.
  18. Hello , Snake and I are going to sell a few copies of our OSRS Server Apollo Based! Features 2 Skills - in ruby All Basic Packets Decent Combat System - in ruby Update Server All Xtea Keys skype: sir.james1996
  19. Hi. You must set up the item interactions yourself as mine were all in Python, but this was what I had in Java and can be used for a base setup for Barrows for anyone in need. Not complete, don't expect to rip this and go make magic happen. Also you have to change to your own dialogue system because ours is completely custom and runs off of a Deque poll system. click the following link for minimap blackout : [url]http://www.runelocus.com/forums/showthread.php?93556-Minimap-Blackout-Packet[/url] [CODE]package com.asgarniars.rs2.content.minigame.barrows; import com.asgarniars.rs2.model.Position; import com.asgarniars.rs2.util.Misc; /** * Encapsulates each barrows brother and their respective properties. * * @[URL="http://www.runelocus.com/forums/member.php?u=52317"]auth[/URL]or Joshua Barry <Sneakyhearts> * */ public enum Brother { AHRIM(2025, 6821, new Position(3556, 9696, 3)), // Ahrim the Blighted DHAROK(2026, 6771, new Position(3551, 9714, 3)), // Dharok the Wretched GUTHAN(2027, 6773, new Position(3539, 9701, 3)), // Guthan the Infested KARIL(2028, 6822, new Position(3554, 9683, 3)), // Karil the Tainted TORAG(2029, 6772, new Position(3572, 9685, 3)), // Torag the Corrupted VERAC(2030, 6823, new Position(3570, 9706, 3)); // Verac the Defiled /* The ID of the Npc */ private int npcId; /* The ID of the sarcophagus object */ private int sarcophagusId; /* The relative postition the Npc should spawn at */ private Position position; /** * * @[URL="http://www.runelocus.com/forums/member.php?u=75098"]Para[/URL]m npcId The NPC ID. * @[URL="http://www.runelocus.com/forums/member.php?u=75098"]Para[/URL]m sarcophagusId The object ID. * @[URL="http://www.runelocus.com/forums/member.php?u=75098"]Para[/URL]m position The spawn position. */ private Brother(int npcId, int sarcophagusId, Position position) { this.npcId = npcId; this.sarcophagusId = sarcophagusId; this.position = position; } public int getNpcId() { return npcId; } public int getSarcophagusId() { return sarcophagusId; } public Position getPosition() { return position; } /** * Global access to a Barrows Brother * * @[URL="http://www.runelocus.com/forums/member.php?u=75098"]Para[/URL]m id The NPC id you want to match. * @[URL="http://www.runelocus.com/forums/member.php?u=184045"]return[/URL] The brother corresponding to the NPC id. */ public static Brother forId(int id) { for (Brother brother : Brother.values()) if (id == brother.getNpcId()) return brother; return null; } /** * Gets a brother based on the ID of the sarcophagus they are associated * with. * * @[URL="http://www.runelocus.com/forums/member.php?u=75098"]Para[/URL]m id The ID of the sarcophagus object. * @[URL="http://www.runelocus.com/forums/member.php?u=184045"]return[/URL] */ public static Brother forTomb(int id) { for (Brother brother : Brother.values()) if (id == brother.getSarcophagusId()) return brother; return null; } /** * Returns a randomised brother which we will use to enter a hidden tomb. * * @[URL="http://www.runelocus.com/forums/member.php?u=184045"]return[/URL] */ public static Brother randomise() { Brother[] values = Brother.values(); int ordinal = Misc.random(values.length); for (Brother brother : values) if (ordinal == brother.ordinal()) return brother; return null; } } [/CODE] [CODE]package com.asgarniars.rs2.content.minigame.barrows; import com.asgarniars.rs2.content.dialogue.Dialogue; import com.asgarniars.rs2.content.dialogue.Option; import com.asgarniars.rs2.content.dialogue.StatementDialogue; import com.asgarniars.rs2.content.dialogue.StatementType; import com.asgarniars.rs2.model.Position; import com.asgarniars.rs2.model.World; import com.asgarniars.rs2.model.npcs.Npc; import com.asgarniars.rs2.model.npcs.Npc.WalkType; import com.asgarniars.rs2.model.players.Player; import com.asgarniars.rs2.task.Task; /** * * @[URL="http://www.runelocus.com/forums/member.php?u=52317"]auth[/URL]or Joshua Barry <Sneakyhearts> * */ public class Barrows { /** * Summons a brother from their tomb. * * @[URL="http://www.runelocus.com/forums/member.php?u=75098"]Para[/URL]m brother * @[URL="http://www.runelocus.com/forums/member.php?u=75098"]Para[/URL]m player */ public static void awaken(Brother brother, Player player) { Npc npc = new Npc(brother.getNpcId()); npc.setSpawnPosition(brother.getPosition()); npc.setWalkType(WalkType.STAND); npc.setFaceType(1); npc.setAttribute("owner", player); World.register(npc); npc.getUpdateFlags().sendForceMessage("You dare disturb my rest!"); player.getActionSender().createNpcHints(npc.getIndex()); player.setAttribute("brother", npc); } /** * */ public static void requestHiddenTomb(final Player player) { Dialogue dialogue = new StatementDialogue(StatementType.NORMAL, "You've found a hidden tunnel, do you want to enter?"); Option yes = new Option("Yeah I'm fearless!", new Task(1, true) { @[URL="http://www.runelocus.com/forums/member.php?u=15855"]Over[/URL]ride protected void execute() { player.clipTeleport(new Position(3535, 9712, 0), 3); this.stop(); } }); Option no = new Option("No way, that looks scary!", new Task(1, true) { @[URL="http://www.runelocus.com/forums/member.php?u=15855"]Over[/URL]ride protected void execute() { player.getActionSender().sendMessage("You chose NOT to enter!"); this.stop(); } }); dialogue.add("Select an Option", yes, no); player.open(dialogue); } public static void openChest(Player player) { Brother brother = player.getAttribute("hidden_tomb"); Npc npc = new Npc(brother.getNpcId()); npc.setSpawnPosition(new Position(3551, 9691, 0)); npc.setWalkType(WalkType.STAND); npc.setFaceType(1); npc.setAttribute("owner", player); World.register(npc); npc.getUpdateFlags().sendForceMessage("You dare steal from us!"); player.getActionSender().createNpcHints(npc.getIndex()); player.setAttribute("brother", npc); } /** * Called when a player defeats a brother. Increments the killcount and * proceeds. * * @[URL="http://www.runelocus.com/forums/member.php?u=75098"]Para[/URL]m brother The brother who has been slain. * @[URL="http://www.runelocus.com/forums/member.php?u=75098"]Para[/URL]m player The player who defeated the brother. */ public static void defeat(Brother brother, Player player) { incrementKillcount(player); player.getActionSender().sendString("Killcount: " + player.getAttribute("barrows_killcount"), 4536); player.removeAttribute("brother"); } /** * Increments the players kill count for each brother they slay. * * @[URL="http://www.runelocus.com/forums/member.php?u=75098"]Para[/URL]m player */ public static void incrementKillcount(Player player) { /* define the key we're going to use to identify this attribute */ String key = "barrows_killcount"; /* check if the attribute exists, if not (first kill) we set it to 1 */ if (player.getAttribute(key) == null) { player.setAttribute(key, 1); return; } /* create an integer type specific data type of the attribute */ int killcount = (Integer) player.getAttribute(key); /* If you have killed all the brother's, your kill count is reset */ if (killcount >= 6) { player.setAttribute(key, 0); return; } /* increment too kill count at this point */ player.setAttribute(key, ++killcount); } } [/CODE] How I got into each crypt : Python Script : [CODE] def itemInteractOptionOne_spade(player, item): player.getUpdateFlags().sendAnimation(831) World.submit(Dig(player)) class Dig(Task): ''' When a player digs with a spade ''' def __init__(self, player): super(Dig, self).__init__(2) self.player = player def execute(self): self.player.getUpdateFlags().sendAnimation(-1) # construct a dictionary where key = acceptable area : val = final position tombs = {Area(Position(3562, 3286, 0), Position(3567, 3291, 0)) : Position(3557, 9703, 3), #ahrim Area(Position(3574, 3279, 0), Position(3579, 3286, 0)) : Position(3535, 9704, 3), # guthan Area(Position(3572, 3295, 0), Position(3577, 3301, 0)) : Position(3556, 9718, 3), # D'harok Area(Position(3563, 3272, 0), Position(3568, 3279, 0)) : Position(3546, 9684, 3), #Karil Area(Position(3550, 3279, 0), Position(3556, 3286, 0)) : Position(3568, 9683, 3), #Torag Area(Position(3553, 3294, 0), Position(3560, 3301, 0)) : Position(3578, 9706, 3) # verac } for tomb in tombs.items(): if tomb[0].isInArea(self.player.getPosition()): self.player.teleport(tomb[1]) self.player.getActionSender().sendMessage("You've broken into a crypt!") self.player.getActionSender().sendMinimapBlackout(2) self.stop() [/CODE] [CENTER] [COLOR=#FF0000][IMG]http://i.imgur.com/3NtFYgy.png[/IMG] [IMG]http://i.imgur.com/0TvLvRS.png[/IMG] [IMG]http://i.imgur.com/xFgbUZi.png[/IMG] [IMG]http://i.imgur.com/XdsSF2H.png[/IMG][/COLOR] [/CENTER]
  20. I'm selling an on-demand NPC processing feature. Specs: [LIST] [*]NPCs are only processed when they are viewed by players [*]NPCs that always need processing are always processed (owned NPCs, mini-game NPCs) [/LIST] This will save you a lot of processing time if you have many NPCs spawned throughout the world. I'm looking for around $25 for this. This price is not negotiable. I will not work over TV unless you go first (half or more). I will provide proof before requesting payment. Skype: mikey.sasse vouches: [quote name='Lystuya']Vouch; Mikey truly does know how to handle a transaction cleanly and efficiently. Was friendly throughout the process and got the job done, as well as fixed anything that didn't work that should have. Will definitely use services in the future.[/QUOTE] [quote name='Arithium']I'll vouch, Mikey' is very trustworthy and definitely knows what hes doing.[/QUOTE] [quote name='Shawn Patel']Mikey does amazing work, he's a trust-able guy. (y)[/QUOTE] [quote name='blackout']Vouch for Mikey` He knows what he's doing.[/QUOTE] [quote name='Enums']Vouch for Mikey. He added clipping to my server and its ***y! Thanks again bro! :D[/QUOTE]
  21. Anyone knows a good server that is 317 and its files are like this? [ATTACH=CONFIG]8389[/ATTACH] not like recent servers the source files are split in src, deps, data etc ..
  22. gonzalez

    719 base

    hey i am making a 718/719 rsps and i need a 719 base, cache/client but i have been searching but currently i dont find any so if you guys can help me where can i get 1 it would really work thanks:D:D:D:D
  23. [center][img]http://i44.tinypic.com/2ladbhv.gif[/img] [i]Delta never looked so good[/i] [B]Download the client here[/B] [url]https://www.dropbox.com/s/nmmp8v0pepyavp5/client.jar[/url] Features Hosted on Linux CentOS - The Smart Choice Anti Spam/Bot/Flooder By IPTables - Fuck dat java code shit Delta Base Quest's Custom Weapons Such as Iron whip etc. Custom Boss's New and refreshing home location Many Minigames PvP System Slayer task system Duel arena Random Events [img]http://i39.tinypic.com/x6h2mh.png[/img] [img]http://i41.tinypic.com/mt1bmh.png[/img] Fully Functional Clan chat [img]http://i42.tinypic.com/2598pyg.gif[/img] Working Quest's [img]http://content.screencast.com/users/markdapimp/folders/Jing/media/69f4bfef-c1b2-4ecc-a6dd-f01fe5136e32/2013-03-11_1520.png[/img] Custom Boss's like this one [img]http://content.screencast.com/users/markdapimp/folders/Jing/media/bed724f5-cf8a-4c26-8df8-2be62a07f4d1/2013-03-11_1755.png[/img] Home/Shops [img]http://content.screencast.com/users/markdapimp/folders/Jing/media/86842ec9-9b9e-4c7f-9e9a-3e94d9923662/2013-03-11_1530.png[/img][/center] [b]We are Looking for staff and Mods [B]Download the client here[/B] [url]https://www.dropbox.com/s/nmmp8v0pepyavp5/client.jar[/url]
  24. [CENTER][B][U]Difficulty[/U][/B]: 0.5 [B][U]Required Knowledge:[/U][/B] Copy/paste + Ability to read file paths [B][U]Time to complete:[/U][/B] With copy/paste under one minute[/CENTER] [B][U]Description: [/U][/B] This Firemaking base uses absolutely no animations or sounds. It really is for noobies to get a "start" on Firemaking (Like me ;)) But anyhow... I was fooling around with Firemaking.. looking up tutorials and such and everyone has "90-95% completed Firemaking!" guides. Problem is they can't get the user to walk backwards and stop at objects not meant to be walked through :P SOOOO I came up with this very... [b]VERY[/b] simple Firemaking base that is nearly like Fletching, or crafting. This is my first tutorial and I don't mind feedback, just don't be a d**k head please as I'm only a beginner at Java. [B][U]Step 1:[/U][/B] Goto "server\src\server\model\items\UseItem.java" [COLOR="#DAA520"]then right click[/COLOR] UseItem.java [COLOR="#DAA520"]and click "edit"[/COLOR]. [B][U]Step 2:[/U][/B] Press the keys "CTRL" (Control key) and "F" key simultaneously to bring up the search mini-window. [B][U]Step 3:[/U][/B] Search for: [code]590[/code] [B][U]Step 4:[/U][/B] You should see something like: [code]case 590:[/code] [COLOR="#DAA520"]If you do not see case 590:[/COLOR] in your search, it's okay, [COLOR="#DAA520"]continue on to step 5.[/COLOR] [B][U]Step 5:[/U][/B] Now,[COLOR="#DAA520"] copy/paste this code[/COLOR] below the case 590: For those who found "case 590:" [spoiler][code] if (itemUsed == 590 && useWith == 1511 || itemUsed == 1511 && useWith == 590) {//regular logs if (c.playerLevel[c.playerFiremaking] >= 1) { c.getItems().deleteItem(1511, c.getItems().getItemSlot(1511), 1); c.getItems().addItem(592, 1); c.getPA().addSkillXP(40 * Config.FIREMAKING_EXPERIENCE, c.playerFiremaking); c.sendMessage("The logs burn to ashes."); } else { c.sendMessage("You need a firemaking level of 1 to burn this log."); } } if (itemUsed == 590 && useWith == 1521 || itemUsed == 1521 && useWith == 590) {//oak logs if (c.playerLevel[c.playerFiremaking] >= 15) { c.getItems().deleteItem(1521, c.getItems().getItemSlot(1521), 1); c.getItems().addItem(592, 1); c.getPA().addSkillXP(60 * Config.FIREMAKING_EXPERIENCE, c.playerFiremaking); c.sendMessage("The logs burn to ashes."); } else { c.sendMessage("You need a firemaking level of 15 to burn this log."); } } if (itemUsed == 590 && useWith == 1519 || itemUsed == 1519 && useWith == 590) {//willow logs if (c.playerLevel[c.playerFiremaking] >= 30) { c.getItems().deleteItem(1519, c.getItems().getItemSlot(1519), 1); c.getItems().addItem(592, 1); c.getPA().addSkillXP(105 * Config.FIREMAKING_EXPERIENCE, c.playerFiremaking); c.sendMessage("The logs burn to ashes."); } else { c.sendMessage("You need a firemaking level of 30 to burn this log."); } } if (itemUsed == 590 && useWith == 1517 || itemUsed == 1517 && useWith == 590) {//maple logs if (c.playerLevel[c.playerFiremaking] >= 45) { c.getItems().deleteItem(1517, c.getItems().getItemSlot(1517), 1); c.getItems().addItem(592, 1); c.getPA().addSkillXP(135 * Config.FIREMAKING_EXPERIENCE, c.playerFiremaking); c.sendMessage("The logs burn to ashes."); } else { c.sendMessage("You need a firemaking level of 45 to burn this log."); } } if (itemUsed == 590 && useWith == 1515 || itemUsed == 1515 && useWith == 590) {//yew logs if (c.playerLevel[c.playerFiremaking] >= 60) { c.getItems().deleteItem(1515, c.getItems().getItemSlot(1515), 1); c.getItems().addItem(592, 1); c.getPA().addSkillXP(202 * Config.FIREMAKING_EXPERIENCE, c.playerFiremaking); c.sendMessage("The logs burn to ashes."); } else { c.sendMessage("You need a firemaking level of 60 to burn this log."); } } if (itemUsed == 590 && useWith == 1513 || itemUsed == 1513 && useWith == 590) {//magic logs if (c.playerLevel[c.playerFiremaking] >= 75) { c.getItems().deleteItem(1513, c.getItems().getItemSlot(1513), 1); c.getItems().addItem(592, 1); c.getPA().addSkillXP(308 * Config.FIREMAKING_EXPERIENCE, c.playerFiremaking); c.sendMessage("The logs burn to ashes."); } else { c.sendMessage("You need a firemaking level of 75 to burn this log."); } } break;[/code][/spoiler] For those who didn't find "case 590:" [spoiler][code] case 590: if (itemUsed == 590 && useWith == 1511 || itemUsed == 1511 && useWith == 590) {//regular logs if (c.playerLevel[c.playerFiremaking] >= 1) { c.getItems().deleteItem(1511, c.getItems().getItemSlot(1511), 1); c.getItems().addItem(592, 1); c.getPA().addSkillXP(40 * Config.FIREMAKING_EXPERIENCE, c.playerFiremaking); c.sendMessage("The logs burn to ashes."); } else { c.sendMessage("You need a firemaking level of 1 to burn this log."); } } if (itemUsed == 590 && useWith == 1521 || itemUsed == 1521 && useWith == 590) {//oak logs if (c.playerLevel[c.playerFiremaking] >= 15) { c.getItems().deleteItem(1521, c.getItems().getItemSlot(1521), 1); c.getItems().addItem(592, 1); c.getPA().addSkillXP(60 * Config.FIREMAKING_EXPERIENCE, c.playerFiremaking); c.sendMessage("The logs burn to ashes."); } else { c.sendMessage("You need a firemaking level of 15 to burn this log."); } } if (itemUsed == 590 && useWith == 1519 || itemUsed == 1519 && useWith == 590) {//willow logs if (c.playerLevel[c.playerFiremaking] >= 30) { c.getItems().deleteItem(1519, c.getItems().getItemSlot(1519), 1); c.getItems().addItem(592, 1); c.getPA().addSkillXP(105 * Config.FIREMAKING_EXPERIENCE, c.playerFiremaking); c.sendMessage("The logs burn to ashes."); } else { c.sendMessage("You need a firemaking level of 30 to burn this log."); } } if (itemUsed == 590 && useWith == 1517 || itemUsed == 1517 && useWith == 590) {//maple logs if (c.playerLevel[c.playerFiremaking] >= 45) { c.getItems().deleteItem(1517, c.getItems().getItemSlot(1517), 1); c.getItems().addItem(592, 1); c.getPA().addSkillXP(135 * Config.FIREMAKING_EXPERIENCE, c.playerFiremaking); c.sendMessage("The logs burn to ashes."); } else { c.sendMessage("You need a firemaking level of 45 to burn this log."); } } if (itemUsed == 590 && useWith == 1515 || itemUsed == 1515 && useWith == 590) {//yew logs if (c.playerLevel[c.playerFiremaking] >= 60) { c.getItems().deleteItem(1515, c.getItems().getItemSlot(1515), 1); c.getItems().addItem(592, 1); c.getPA().addSkillXP(202 * Config.FIREMAKING_EXPERIENCE, c.playerFiremaking); c.sendMessage("The logs burn to ashes."); } else { c.sendMessage("You need a firemaking level of 60 to burn this log."); } } if (itemUsed == 590 && useWith == 1513 || itemUsed == 1513 && useWith == 590) {//magic logs if (c.playerLevel[c.playerFiremaking] >= 75) { c.getItems().deleteItem(1513, c.getItems().getItemSlot(1513), 1); c.getItems().addItem(592, 1); c.getPA().addSkillXP(308 * Config.FIREMAKING_EXPERIENCE, c.playerFiremaking); c.sendMessage("The logs burn to ashes."); } else { c.sendMessage("You need a firemaking level of 75 to burn this log."); } } break; [/code][/spoiler] [B][U]Step 6: [/U][/B] [COLOR="#DAA520"]Save[/COLOR] the file [COLOR="#DAA520"]and close[/COLOR] out of it. [B][U]Step 7:[/U][/B] [COLOR="#DAA520"]Save/compile your server then run[/COLOR], wala! Your simple Firemaking base is now implemented :) [SIZE=4][B]Credits:[/B][/SIZE] 90% me 10% RL's Starter Pack Developers for having provided the base I've been using for my rsps
×