Welcome, guest! Please login or register.

    * Shoutbox

    • drubrkletern: be honest with me boss
      December 06, 2019, 01:31:52 AM
    • drubrkletern: now is it really that unique
      December 06, 2019, 01:31:47 AM
    • SuperNativeZ: COME PLAY THE MOST UNIQUE CUSTOM RSPS #1 [link][link][link]
      December 05, 2019, 09:22:55 PM
    • SuperNativeZ: FASTEST GROWING #1 UNIQUE CUSTOM RSPS [link][link][link]
      December 05, 2019, 09:22:42 PM
    • ragnoroker: New Server - Unique - Awesome Community - Start your adventure - 60+ online : [link]
      December 05, 2019, 02:48:39 PM
    • ragnoroker: New Server - Unique - Awesome Community - Start your adventure - 40+ online : [link]
      December 05, 2019, 02:48:31 PM
    • Cole1497: you click any of these links? those boner pills theyre selling are wicked
      December 04, 2019, 05:58:03 PM
    • Cole1497: oh shit vain whats crackin
      December 04, 2019, 05:57:49 PM
      December 04, 2019, 06:30:27 AM
    • Vain_: where the boys at
      December 01, 2019, 03:20:36 PM
    • black evil111: They should close this down, mostly the downloads section. The mods dont know how to do their jobs worth shit and its no excuse like "we have real life stuff going on" everyones replacable. Speaking of replacable, fix download links! Before I go to rune-server.
      December 01, 2019, 01:50:26 PM
    • ragnoroker: New Server - Unique - Awesome Community - Start your adventure - 40+ online : [link]
      November 28, 2019, 12:41:24 PM
    • ragnoroker: New Server - Unique - Awesome Community - Start your adventure - 40+ online : [link]
      November 28, 2019, 12:40:42 PM
    • 1strangler77: how do i post pictures on a post
      November 24, 2019, 05:16:18 PM
    • ragnoroker: New Server - Unique - Awesome Community - Start your adventure - 40+ online : [link]
      November 23, 2019, 08:23:51 PM
    • Freja1793: Hi
      November 22, 2019, 07:58:41 PM
    • xdarklordxx: JOIN NOW [link]
      November 22, 2019, 03:19:16 PM
      November 22, 2019, 03:18:36 PM
    • xdarklordxx: >!https://dl.dropbox.com/s/9iwtazv703mpqsw/LmfaoScape.jar<!
      November 22, 2019, 03:17:04 PM
    • Shadow Monarch: where do i get a client and source
      November 19, 2019, 11:17:48 PM

    Show Posts

    This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

    Topics - Rodgerwilco

    Pages: [1] 2
    Been working on the combat formula lately and figured this might help someone in the future.

    Weapons.txt has all attributes.


    General Server Discussion / OSRS Formulas
    « on: April 03, 2016, 11:35:50 PM »



    Found these gems on osrs reddit, feel free to discuss.

    Runescape Classic Server Advertisement / ProjectF2P
    « on: August 27, 2015, 08:57:29 PM »

    General Programming / Where do you start?
    « on: August 16, 2015, 08:31:11 PM »
    For the "programmers" out there, if you were to remake RS for make a game from scratch where would you start?

    You already have your brainstorming/ideas compiled and you open up your IDE of choice, select new project, enter in your project name etc etc. Whats the first class/file you make and WHY?:)

    Lets see where this goes.  I am just curious to see how other people function when they first initially start a project.

    RSC Server Development / Discussion / Website Files
    « on: August 03, 2015, 01:37:44 AM »
    Whats the best public www files around? Where can I find them?

    All the links seem to be dead. Anyone got any good ones?

    News / Cecil the Lion Killed : Idiot American Wanted
    « on: July 28, 2015, 11:29:59 PM »

    Cecil the lions final photograph :

    Your views on pissing on nature? My take, killing is great, human instinct.. but take it out on the local deer population. Not something expensive and majestic. Yes, I am American.

    I would like for us to vote on moderators for the RSC boards. A valuable individual to this community has always been Nacional. He's always fair game, never picks sides and is a great neutral party, he is even down to host dragon parties from time to time. He's been a great friend throughout the years and you can review his posts if you want to see what I am talking about. If not him, there are a few others around here who might be worthy, what do you guys think? Feel free to nominate!

    RSC Server Development / Discussion Board
    There are a lot of unnecessary posts on the RSC Server Development / Discussion board. I would like to bring it to everyones attention and maybe we could come up with a solution.

    I think we should remove all forum TOPICS that :
    1. Do not include any sort of code.

    2. Do not provide a valuable conversation for people who want to look into the past. It's quite annoying looking at map editors throughout the years and seeing non stop bickering, it makes us look like shit too when people search for tools or references from the past.

    3. Are not RSC related.

    These are within the first two pages :



    Furthermore, there are posts that can be merged. For example we could remove a lot of nonsense topics about content and they can be merged into a "Show Off" topic. If its a topic relating to a form of release, we can move it to a "Release" topic or maybe we could just create a new childboard "Releases" and have a general release topic there for misc.


    Finally, there are stupid questions being asked in this board which should always be moved to the Server/Client/Spam help section.

    MoparClassic Board
    The MoparClassic board nobody cares about, it's suppose to be for a server but you know how that went. #OpenSourcePublicServerNoSubs/DonationsFairPlayServer. Maybe we could remove it completely or hide it from the public.

    Server / Client Help
    I think what we need to do as a community is update Yongs tutorials and make them even more basic for people. Maybe have a child board in the help section for "Tuts" ? Every once in a while we get new people but they are shut down so easily and I feel that we need to make it easier for them to learn and host a server of there own (EasyRSC was great, Noobscape) but it only starts there and there really isnt much for them to build off of except trolls.

    Continuously working on RSC in private, I think about how I can make RSC accessible for others. I don't want to hear anything about how it's dead, we can still centralize the population and interest without hosting a server. I believe, if we do that.. we could potentially build something that could take us back to the 500+ days. This isn't about RSCE, RSCR, Karamja, MoparClassic, ClassicKBD, SlayPK, whatever. They had their chances, I think we need to do something without a server and changing these boards around will be a great start.

    What do you guys think?

    Web Design/Development / Mysql deleting replicated entries
    « on: July 25, 2015, 11:00:26 PM »
    I have a few entries that were duplicated..

    For example, lets say...

    user - id - x - y
    0123 - 23 - 222 - 3333
    0123  - 23 - 222 - 3333

    I want to delete the duplicated entry but want to keep the original, how would you do this?

    Java Programming / RS Voice Chat
    « on: July 12, 2015, 10:39:27 PM »
    I was wondering if anyone here has done anything with RS and a 3rd party voice program (mumble, vent, teamspeak)

    What I envision is that people can talk into the mic but only players within their view area would be able to hear it and be able to talk back. Which would obviously be done with the Area/Region system RS related but whats publicly available out there on the web that I can use to tackle the voice end of things.

    Free free to suggest your lovely knowledge.

    RSC Server Development / Discussion / [Release] Notes
    « on: July 04, 2015, 02:13:13 PM »
    Note: this really isn't a spoon feed release but an example of how I did it.

    Server Sided
    You will need to double all your itemdefinitions so that there is an item and its noted form. When you double it, the item id for the note will be the last id you have +1. If scythe is 1289? Your template note will be 1290 and "noted iron mace" will be 1291. You will need to know your shift value for when you handle banking. I did this :

    Code: [Select]
    if(itemID > 1308){ //my last item id (1308 being my note sprite and item)
    int newID = itemID - 1309; //-1309 here to get the alignment ("noted iron mace" becomes a "iron mace"
    InvItem oItem = new InvItem(itemID, amount);
    item = new InvItem(newID, amount);
    if (bank.canHold(item) && inventory.remove(oItem) > -1){ //remove the note and add the equivalent item
    //else if handle normal whatever you have here

    In the miscpacketbuilder you will need to send an intenger for the inventory rather than a short.
    s.addInt(item.getID() + (item.isWielded() ? 32768 : 0));

    Client Sided
    You will need to change the following methods :
    drawItem (ground entities)

    This is how I did it (copied from the draw inventory method)

    Just keep in mind when your editing the methods, that the array will change, below is inventoryItems[j] and it will vary such as myDuelItems[j] or opponentsDuelItems[j]

    SPRITE_ITEM_START + 465 Make sure you get the correct id for your note template
    Code: [Select]
    if (j < inventoryCount) {
    if(inventoryItems[j] > 1308){
    gameGraphics.spriteClip4(x, y, 48, 32, SPRITE_ITEM_START
    + 465,
    .getPictureMask(), 0, 0, false);
    gameGraphics.spriteClip4(x + 8, y + 6, 28, 16, SPRITE_ITEM_START
    + EntityHandler.getItemDef(inventoryItems[j])
    .getSprite(), EntityHandler.getItemDef(inventoryItems[j])
    .getPictureMask(), 0, 0, false);
    if(inventoryItemsCount[j] > 0){
    String.valueOf(inventoryItemsCount[j]), x + 1,
    y + 10, 1, 0xffff00);
    } else {
    gameGraphics.spriteClip4(x, y, 48, 32, SPRITE_ITEM_START
    + EntityHandler.getItemDef(inventoryItems[j])
    .getPictureMask(), 0, 0, false);
    if (EntityHandler.getItemDef(inventoryItems[j]).isStackable())
    String.valueOf(inventoryItemsCount[j]), x + 1,
    y + 10, 1, 0xffff00);


    You will also want to double your Items.rscd. I'll upload mine : http://uppit.com/ixn10pfvw4n1/Items.xml

    Here is the sprite I used for the template note: http://uppit.com/40am30niv71t/3365.spr

    RSC Server Development / Discussion / [Release] 99 Capes
    « on: July 04, 2015, 01:51:30 PM »
    Provided by Cleako, Rodgerwilco, Karamja.net :)


    The ids of these sprites have been changed so that new items could be added without interfering ids from other sprites. You will need to change the ids of these sprites to match your client. If you have a pk server you can add all the combat related capes without extending the ids (if i remember correctly)

    You will need to change the animations byte to a short both server and client sided.

    If you have any questions, feel free to ask.

    News / US Same-Sex Marriage Legal Nationwide
    « on: June 26, 2015, 12:14:33 PM »
    Congrats, now 90% of our forum members can get legally married.


    RSC Server Development / Discussion / [Release] Multiple Projectiles
    « on: February 11, 2015, 01:09:45 AM »

    This is the client sided part of Multiple Projectiles. I was going to release the server sided stuff but unfortunately it's not compatible. I am sure it will probably be released in a future noobscape or something so enjoy.

    Code: [Select]
    for (int i = 0; i < npcCount; i++) { //do this for players as well
    Mob caster = npcArray[i];
    if (caster.currentFrame > 0) {
    Mob victimArray[] = null;
    if(caster.victimPlayerIndex != null){
    victimArray = new Mob[caster.victimPlayerIndex.length];
    //populate victimArray
    for(int l = 0; l < caster.victimPlayerIndex.length; l++) {
    victimArray[l] = mobArray[caster.victimPlayerIndex[l]];
    if(caster.victimNpcIndex != null){
    victimArray = new Mob[caster.victimNpcIndex.length];
    //populate victimArray
    for(int l = 0; l < caster.victimNpcIndex.length; l++) {
    victimArray[l] = mobArray[caster.victimNpcIndex[l]];
    for(Mob victim : victimArray){
    if (victim != null) {
    int casterX = caster.currentX;
    int casterY = caster.currentY;
    int casterElevation = -engineHandle.getAveragedElevation(casterX, casterY) - 110;

    int victimX = victim.currentX;
    int victimY = victim.currentY;
    int victimElevation = -engineHandle.getAveragedElevation(victimX, victimY) - EntityHandler.getNpcDef(victim.type).getCamera2() / 2;

    int i10 = (casterX * caster.currentFrame + victimX * (frameRate - caster.currentFrame)) / frameRate;
    int j10 = (casterElevation * caster.currentFrame + victimElevation * (frameRate - caster.currentFrame)) / frameRate;
    int k10 = (casterY * caster.currentFrame + victimY * (frameRate - caster.currentFrame)) / frameRate;

    gameCamera.method268(SPRITE_PROJECTILE_START + caster.projectileType, i10, j10, k10, 32, 32, 0);

    Code: [Select]
    else if (mobUpdateType == 3) { // Projectile an npc..
    int projectileType = DataOperations.getShort(data, mobUpdateOffset);
    mobUpdateOffset += 2;
    int amountOfTargets = DataOperations.getShort(data, mobUpdateOffset);
    mobUpdateOffset += 2;
    mob.victimNpcIndex = new int[amountOfTargets];

    for(int i = 0; i < mob.victimNpcIndex.length; i++) {
    mob.victimNpcIndex[i] = DataOperations.getShort(data, mobUpdateOffset);
    mobUpdateOffset += 2;
    if (mob != null) {
    mob.projectileType = projectileType;
    mob.victimPlayerIndex = null;
    mob.currentFrame = 40;
    } else if (mobUpdateType == 4) { // Projectile another player.
    int projectileType = DataOperations.getShort(data, mobUpdateOffset);
    mobUpdateOffset += 2;
    int amountOfTargets = DataOperations.getShort(data, mobUpdateOffset);
    mobUpdateOffset += 2;
    mob.victimPlayerIndex = new int[amountOfTargets];

    for(int i = 0; i < mob.victimPlayerIndex.length; i++) {
    mob.victimPlayerIndex[i] = DataOperations.getShort(data, mobUpdateOffset);
    mobUpdateOffset += 2;
    if (mob != null) {
    mob.projectileType = projectileType;
    mob.victimNpcIndex = null;
    mob.currentFrame = 40;

    public int victimPlayerIndex[];
    public int victimNpcIndex[];

    RSC Server Development / Discussion / NPC AI
    « on: January 26, 2015, 02:17:56 PM »
    I have seen some half ass hackish ways of having NPCs "react" to a players actions. I myself can admit to participating as RSCD based servers are extremely coupled code wise. Marwolfs post in the help section, where people reacted by showing off npc vs npc battles is a clear example of how limited we are with an actual AI system. It has been done since 2008 (maybe before) and yet the only actual public example is xEnts from RSCA source (Which again doesn't do anything with the highly coupled code and just embraces it)

    In the RSCD source we have Entity -> Mob -> NPC & Player which determines the differences between a Player and NPC

    By adding the RangeEvent and its methods to the the Mob class, you can call on NPC's having the ability to range whatever you want them too. The same thing with Mage, Trading, Dueling etc etc. I so far got to the point where you can trade an npc but the npc doesn't offer anything (yet)

    The difference between an NPC and a Player is that the server handles the logic for npcs and not sending packets to any client while the player requires packets.

    Which brings me to my question. Is it better to give the MobileEntity class more features (maybe just make them abstract and handle the methods differently in both the NPC and Player class) or should I just take the event package and duplicate it for NPC usage (which would be stupid, but I have seen people do it for some reason) because the DelayedEventHandler should handle all events.

        public DelayedEvent(Mob owner, int delay) {
            this.owner = owner;
            this.delay = delay;

    Giving each MobileEntity its own viewarea, I am not worried about for memory saving as I won't have more than 300-400 loaded any any single time.

    What are your thoughts?

    RSC Server Development / Discussion / RIP Hixk aka Zach Knight
    « on: December 27, 2014, 05:49:37 PM »
    RIP the RSC career of Zach #3

    RSC Server Development / Discussion / Sprite Editor
    « on: October 21, 2014, 01:55:39 AM »
    Hello friends,

    I have been working a lot with sprites recently, oh you know those notes, custom capes and other misc stuff. I am currently working on a sprite editor that allows artists to create content with the ability to use current sprites as a "template" for their work. When they are done they simply "save" and their work is packed into the cache. This sprite editor is unique because it allows for artists to use all the different views at the same time.


    So below are a list of features which will be implemented :
    -load templates (monsters, humans)
    -load sprites (will put the sprites you're interested in working with on the templates)
    -inbuilt paint (for editing)

    RSC requires 17 different views so I will probably run with a 3 x 6 grid horizontally.

    Using the paint would be something like this...

    Games / Psst Remember This?
    « on: October 11, 2014, 04:06:48 AM »

    RSC Server Development / Discussion / Spells Implementation
    « on: October 07, 2014, 03:33:14 AM »
    Has anyone here bothered to create an implementation of Spells? What are your thoughts on this.

    Thinking about it, I should and will just make a default handler for all strength based skills. However I want to implement the ability for custom spells to be implemented easily. If you add a spell before Wind Strike, say a home teleport like on RS2/3 you will have to change the ID of every spell unless specified by the client. Does anyone have any suggestions?

    Code: [Select]
    public static int calcSpellHit(int spellStr, int magicEquip) {
    int mageRatio = (int) (45D + magicEquip);
    int max = spellStr;
    int peak = (int) ((spellStr / 100D) * mageRatio);
    int dip = (int) ((peak / 3D) * 2D);
    return DataConversions.randomWeighted(0, dip, peak, max);

    Does anybody know if :
    Code: [Select]
    * Should the spell cast or fail?
    public static boolean castSpell(SpellDef def, int magicLevel, int magicEquip) {
    int levelDiff = magicLevel - def.getReqLevel();

    if (magicEquip >= 30 && levelDiff >= 5)
    return true;
    if (magicEquip >= 25 && levelDiff >= 6)
    return true;
    if (magicEquip >= 20 && levelDiff >= 7)
    return true;
    if (magicEquip >= 15 && levelDiff >= 8)
    return true;
    if (magicEquip >= 10 && levelDiff >= 9)
    return true;
    if (levelDiff < 0) {
    return false;
    if (levelDiff >= 10) {
    return true;
    return DataConversions.random(0, (levelDiff + 2) * 2) != 0;

    Is "return DataConversions.random(0, (levelDiff + 2) * 2) != 0;" replicated from rsc?

    Would anybody be interested? and does anyone have a level 3 account?

    Pages: [1] 2
    Copyright © 2017 MoparScape. All rights reserved.
    Powered by SMFPacks SEO Pro Mod |
    SimplePortal 2.3.5 © 2008-2012, SimplePortal