Welcome, guest! Please login or register.

    * Shoutbox

    RefreshHistory
    • hexedss1: Anyone would like to help on client side got a variable declartion Error
      August 15, 2018, 09:06:30 PM
    • SOUPSOUP: just get a vpn
      August 13, 2018, 06:44:28 PM
    • jme: _^_ will answer all of your javascript questions
      August 12, 2018, 07:11:00 PM
    • doomsale: and where is boxman?
      August 10, 2018, 03:16:59 AM
    • doomsale: Where can i play the Moparscape MMORPG with the Metallica instrumentals?
      August 10, 2018, 03:16:47 AM
    • doomsale: no longer clicking on doors and dummies at east bank
      August 10, 2018, 03:16:07 AM
    • doomsale: were all grown up now huh?
      August 10, 2018, 03:15:58 AM
    • _^_: hey everyone look at my graphs [link]
      August 06, 2018, 01:52:16 PM
    • braedyn: Someone pl0x help me out with PI Lottery!!
      August 03, 2018, 02:12:25 AM
    • Travas: p3n1s
      July 26, 2018, 09:46:33 PM
    • Krackkid: You up :eggplant:
      July 23, 2018, 06:18:17 PM
    • DeathsChaos9: no
      July 23, 2018, 03:53:31 PM
    • Emulous: Come check out Emulous: [link]
      July 22, 2018, 03:37:19 PM
    • Emulous:[link]
      July 22, 2018, 03:37:00 PM
    • Travas: ur mom
      July 21, 2018, 06:04:50 PM
    • YNRDAB: Watcha big ballers up too?
      July 20, 2018, 11:01:06 AM
    • dark250: i need help for coding client
      July 19, 2018, 08:27:37 AM
    • Travas: yes
      July 14, 2018, 02:19:44 PM
    • drubrkletern: lmao racist and sexist much?
      July 14, 2018, 01:11:52 PM
    • Cole1497: yeah i got you lil boat give me a second
      July 13, 2018, 03:19:35 AM

    Author Topic: Official MoparScape Server - In Development  (Read 67846 times)

    0 Members and 1 Guest are viewing this topic.

    OfflineDavidi2

    • Member
    • ****
    • *
    • Posts: 23,272
    • Thanks: +0/-0
      • View Profile
    Re: Official MoparScape Server - In Development [Source back on git!]
    « Reply #740 on: June 20, 2014, 12:07:57 PM »
    So how feature-complete is this nowadays?
    Still a long way to go. Need a lot of npc spawns, defs, and drops. Still a few important skills (looking at cooking for food first I think), and combat needs to be polished (esp hit rates). But a lot of that can be done after/during alpha.

    sini just jelly

    I just found 'commence_leaching.png' on your harddrive, explain pls.
    was a typo, supposed to be leeching and its from my blood sucking fetish...

    TheFullWiki has all of RS Wiki's pages from 2009.
    Not sure how I can make this clearer... but the page didnt EXIST before EOC. It was made in 2013 when Jagex released the EOC hit chance formula. Before that it was unknown and not on the wikipedias.
    Runescape Gambling

    Offlinesini

    • Member
    • ****
    • *
    • *
    • Posts: 5,785
    • Thanks: +0/-0
      • View Profile
    Re: Official MoparScape Server - In Development [Source back on git!]
    « Reply #741 on: June 20, 2014, 12:36:37 PM »
    I'm just going to point out that it's possible that the formulas are very similar.
    Runescape Gambling

    OfflineDavidi2

    • Member
    • ****
    • *
    • Posts: 23,272
    • Thanks: +0/-0
      • View Profile
    Re: Official MoparScape Server - In Development [Source back on git!]
    « Reply #742 on: June 20, 2014, 01:45:04 PM »
    I'm just going to point out that it's possible that the formulas are very similar.
    The only useful information is the (possible) link between the different ratios for equipment bonuses (0.0085 or something?), but from what I've looked at it seems different for pre-eoc. Most of the agreement is that both have a power value calculated similar to the max hit formula, one for def against a current style and one for current attack power. If you have a rand*attackpower than their def power, the hit goes through.
    Runescape Gambling

    Offlinesini

    • Member
    • ****
    • *
    • *
    • Posts: 5,785
    • Thanks: +0/-0
      • View Profile
    Re: Official MoparScape Server - In Development [Source back on git!]
    « Reply #743 on: June 20, 2014, 02:42:35 PM »
    I think hits scale in the amount of damage dealt based upon their defense. I noticed that a lot of the times when I played Runescape when I was attacking really high level defense monsters my hits were much lower.

    OfflineDavidi2

    • Member
    • ****
    • *
    • Posts: 23,272
    • Thanks: +0/-0
      • View Profile
    Re: Official MoparScape Server - In Development [Source back on git!]
    « Reply #744 on: June 20, 2014, 03:11:06 PM »
    I think hits scale in the amount of damage dealt based upon their defense. I noticed that a lot of the times when I played Runescape when I was attacking really high level defense monsters my hits were much lower.
    pretty sure thats just psychological, you hit less often so it appears like the average damage is lower. we know the max hit formula was not related to monster def pre-eoc

    OfflineRuneAgent

    • wololo
    • Member
    • ****
    • *
    • *
    • Posts: 7,515
    • Thanks: +0/-0
      • View Profile
      • MITB FORUMS
    Re: Official MoparScape Server - In Development [Source back on git!]
    « Reply #745 on: June 20, 2014, 03:18:19 PM »
    pretty sure there was no official release of that information you will need to make your own.

    OfflineAshi

    • Member
    • ****
    • Posts: 3,584
    • Thanks: +0/-0
      • View Profile
    Re: Official MoparScape Server - In Development [Source back on git!]
    « Reply #746 on: June 20, 2014, 05:29:47 PM »
    Lol if you post the question on runescape a forums, I'm sure they'll just tell you as long as they don't expect it being for a private server.

    Offlinesk8rdude461

    • MOPARSCAPE WAS HACKED
    • Member
    • ****
    • *
    • Posts: 12,471
    • Thanks: +0/-0
      • View Profile
    Re: Official MoparScape Server - In Development [Source back on git!]
    « Reply #747 on: June 20, 2014, 08:11:07 PM »
    Lol if you post the question on runescape a forums, I'm sure they'll just tell you as long as they don't expect it being for a private server.
    While you're at it ask em for the source of OSRS.

    OfflineAshi

    • Member
    • ****
    • Posts: 3,584
    • Thanks: +0/-0
      • View Profile
    Re: Official MoparScape Server - In Development [Source back on git!]
    « Reply #748 on: June 21, 2014, 12:53:29 AM »
    Lol if you post the question on runescape a forums, I'm sure they'll just tell you as long as they don't expect it being for a private server.
    While you're at it ask em for the source of OSRS.
    Why? It wouldn't be java lel

    OfflineEyeownyew

    • Member
    • ****
    • Posts: 3,431
    • Thanks: +0/-0
      • View Profile
    Re: Official MoparScape Server - In Development [Source back on git!]
    « Reply #749 on: June 21, 2014, 01:34:16 AM »
    I'm just going to point out that it's possible that the formulas are very similar.
    The only useful information is the (possible) link between the different ratios for equipment bonuses (0.0085 or something?), but from what I've looked at it seems different for pre-eoc. Most of the agreement is that both have a power value calculated similar to the max hit formula, one for def against a current style and one for current attack power. If you have a rand*attackpower than their def power, the hit goes through.
    This would make sense, but then it would be impossible to hit anything that has higher defenses than your attack bonus. We know that's false already

    OfflineDavidi2

    • Member
    • ****
    • *
    • Posts: 23,272
    • Thanks: +0/-0
      • View Profile
    Re: Official MoparScape Server - In Development [Source back on git!]
    « Reply #750 on: June 21, 2014, 02:26:43 AM »
    I'm just going to point out that it's possible that the formulas are very similar.
    The only useful information is the (possible) link between the different ratios for equipment bonuses (0.0085 or something?), but from what I've looked at it seems different for pre-eoc. Most of the agreement is that both have a power value calculated similar to the max hit formula, one for def against a current style and one for current attack power. If you have a rand*attackpower than their def power, the hit goes through.
    This would make sense, but then it would be impossible to hit anything that has higher defenses than your attack bonus. We know that's false already
    I was just going to like have it be
    chance = chance < X ? X : chance

    (x being 10% or 5% or something, idk)


    bit of a hack but not sure what else to do

    OfflineIfearI

    • Member
    • ***
    • Posts: 190
    • Thanks: +0/-0
      • View Profile
    Re: Official MoparScape Server - In Development [Source back on git!]
    « Reply #751 on: June 21, 2014, 02:37:02 AM »
    I'm just going to point out that it's possible that the formulas are very similar.
    The only useful information is the (possible) link between the different ratios for equipment bonuses (0.0085 or something?), but from what I've looked at it seems different for pre-eoc. Most of the agreement is that both have a power value calculated similar to the max hit formula, one for def against a current style and one for current attack power. If you have a rand*attackpower than their def power, the hit goes through.
    This would make sense, but then it would be impossible to hit anything that has higher defenses than your attack bonus. We know that's false already
    I was just going to like have it be
    chance = chance < X ? X : chance

    (x being 10% or 5% or something, idk)


    bit of a hack but not sure what else to do

    Was what I PM'ed you nothing useful?

    OfflineDavidi2

    • Member
    • ****
    • *
    • Posts: 23,272
    • Thanks: +0/-0
      • View Profile
    Re: Official MoparScape Server - In Development [Source back on git!]
    « Reply #752 on: June 21, 2014, 03:08:49 AM »
    Lots of contradicting information there

    OfflineLothy

    • Member
    • ****
    • *
    • *
    • Posts: 7,006
    • Thanks: +0/-0
      • View Profile
    Re: Official MoparScape Server - In Development [Source back on git!]
    « Reply #753 on: June 21, 2014, 03:39:41 AM »
    I think as long as the formula is consistent then it will be alright.
    If nothing else, you should be able to assume that it's a linear formula - it's certainly not the case that 99s are exponentially better than 90s or 80s, nor is it the case that level 70 armour was exponentially better than level 40 armour.

    Maybe you could make a command that spawns two 'players' wearing certain equipment with certain levels so that they fight. You could then observe this until you're satisfied that your formula is 'close enough'.
    <&Speljohan_> i wouldnt want to live in a society where Mopman isnt monitored 24/7

    OfflineIfearI

    • Member
    • ***
    • Posts: 190
    • Thanks: +0/-0
      • View Profile
    Re: Official MoparScape Server - In Development [Source back on git!]
    « Reply #754 on: June 21, 2014, 03:42:19 AM »
    « Last Edit: June 21, 2014, 04:02:30 AM by IfearI »

    OfflineDavidi2

    • Member
    • ****
    • *
    • Posts: 23,272
    • Thanks: +0/-0
      • View Profile
    Re: Official MoparScape Server - In Development [Source back on git!]
    « Reply #755 on: June 21, 2014, 02:39:47 PM »
    I have a formula now, based on a similar concept to the max hit formula. Just need to tweak numbers with testing.

    OfflineElrick

    • Member
    • ****
    • Posts: 1,132
    • Thanks: +0/-0
      • View Profile
      • Evelus
    Re: Official MoparScape Server - In Development [Source back on git!]
    « Reply #756 on: June 26, 2014, 04:16:40 PM »
    Keep going! :D
    http://www.moparscape.org/smf/index.php/topic,639149.0.html
    Support adding the
    (click to show/hide)

    OfflineDavidi2

    • Member
    • ****
    • *
    • Posts: 23,272
    • Thanks: +0/-0
      • View Profile
    Re: Official MoparScape Server - In Development [Source back on git!]
    « Reply #757 on: June 26, 2014, 05:15:06 PM »
    Taking a break to play some oldschool for a few days. Getting close to the point where I need to talk to MITB about how he wants to handle alpha and stuff.

    OfflineDavidi2

    • Member
    • ****
    • *
    • Posts: 23,272
    • Thanks: +0/-0
      • View Profile
    Re: Official MoparScape Server - In Development [Source back on git!]
    « Reply #758 on: July 06, 2014, 11:13:59 PM »
    I converted the ruby Firemaking to Java, just as an experiment to see how hard it would be. It wasn't too bad.

    Also I just wrote the Prayer core, it's complete except for actually giving bonuses (since thats in the combat handlers, but its just a few lines to add) and overhead icons showing.

    Here's most of it:
    Code: Java
    1. publicenum Prayer {
    2.  
    3.     // Tier one prayer bonuses
    4.     THICK_SKIN(1, 50, 83, 5, DEFENCE),
    5.     BURST_OF_STRENGTH(4, 50, 84, 7, STRENGTH),
    6.     CLARITY_OF_THOUGHT(7, 50, 85, 9, ATTACK),
    7.     SHARP_EYE(8, 50, 862, 11, RANGE, MAGIC),
    8.     MYSTIC_WILL(9, 50, 863, 13, RANGE, MAGIC),
    9.    
    10.     // Tier two prayer bonuses
    11.     ROCK_SKIN(10, 100, 86, 15, DEFENCE),
    12.     SUPERHUMAN_STRENGTH(13, 100, 87, 17, STRENGTH),
    13.     IMPROVED_REFLEXES(16, 100, 88, 19, ATTACK),
    14.     HAWK_EYE(26, 100, 864, 27, RANGE, MAGIC),
    15.     MYSTIC_LORE(27, 100, 865, 29, RANGE, MAGIC),
    16.    
    17.     // Tier three prayer bonuses
    18.     STEEL_SKIN(28, 200, 92, 31, DEFENCE),
    19.     ULTIMATE_STRENGTH(31, 200, 93, 33, STRENGTH),
    20.     INCREDIBLE_REFLEXES(34, 200, 94, 35, ATTACK),
    21.     EAGLE_EYE(44, 200, 866, 43, RANGE, MAGIC),
    22.     MYSTIC_MIGHT(45, 200, 867, 45, RANGE, MAGIC),
    23.    
    24.     // Tier four prayer bonuses
    25.     CHIVALRY(60, 400, 1052, 55, DEFENCE, STRENGTH, ATTACK),
    26.     PIETY(70, 400, 1053, 57, DEFENCE, STRENGTH, ATTACK),
    27.    
    28.     // Stat restore
    29.     RESTORE(19, 23, 89, 21, RAPID_RESTORE),
    30.    
    31.     // Health restore
    32.     HEAL(22, 33, 90, 23, RAPID_HEAL),
    33.    
    34.     // Protect item
    35.     PROTECT(25, 33, 91, 25, PROTECT_ITEM),
    36.    
    37.     // Overhead prayers TODO differentiate to allow summoning to pair with one other protect
    38.     PROTECT_FROM_SUMMONING(35, 200, 1168, 53, OVERHEAD),
    39.     PROTECT_FROM_MAGIC(37, 200, 95, 37, OVERHEAD),
    40.     PROTECT_FROM_RANGED(40, 200, 96, 39, OVERHEAD),
    41.     PROTECT_FROM_MELEE(43, 200, 97, 41, OVERHEAD),
    42.     RETRIBUTION(46, 50, 98, 47, OVERHEAD),
    43.     REDEMPTION(49, 100, 99, 49, OVERHEAD),
    44.     SMITE(52, 300, 100, 51, OVERHEAD);
    45.    
    46.     static{
    47.         // TODO chivalry/piety knights training ground requirements
    48.         CHIVALRY.requirements.addRequirements();
    49.         PIETY.requirements.addRequirements();
    50.     }
    51.    
    52.     privatefinal Requirements requirements;
    53.    
    54.     /**
    55.      * How many points are drained per tick. One thousand is one point.
    56.      */
    57.     privatefinalint drainRate;
    58.    
    59.     /**
    60.      * The config id to activate and deactivate this prayer in the prayer tab.
    61.      */
    62.     privatefinalint configId;
    63.    
    64.     privatefinalint buttonId;
    65.     privatefinal PrayerType[] types;
    66.    
    67.     private Prayer(int levelRequirement, int drainRate, int configId, int buttonId, PrayerType ... types){
    68.         requirements =new Requirements();
    69.         requirements.addRequirement(new SkillRequirement(Skill.PRAYER, levelRequirement, false, "activate that prayer"));
    70.         requirements.addRequirement(PrayerPointRequirement.NON_ZERO_POINTS);
    71.         this.drainRate= drainRate;
    72.         this.configId= configId;
    73.         this.buttonId= buttonId;
    74.         this.types= types;    
    75.     }
    76.    
    77.     publicstatic Prayer forId(int buttonId){
    78.         for(Prayer prayer : values()){
    79.             if(prayer.buttonId== buttonId){
    80.                 return prayer;
    81.             }
    82.         }
    83.         returnnull;
    84.     }
    85.    
    86.     publicboolean conflicts(Prayer other){
    87.         for(PrayerType type : types){
    88.             for(PrayerType otherType : other.types){
    89.                 if(type == otherType){
    90.                     returntrue;
    91.                 }
    92.             }
    93.         }
    94.         returnfalse;
    95.     }
    96.    
    97.     public Requirements getRequirements(){
    98.         return requirements;
    99.     }
    100.  
    101.     publicdouble getDrainRate(){
    102.         return drainRate;
    103.     }
    104.  
    105.     publicint getConfigId(){
    106.         return configId;
    107.     }
    108.    
    109.     public PrayerType[] getTypes(){
    110.         return types;
    111.     }
    112.    
    113. }
    Code: Java
    1. publicclass Prayers {
    2.  
    3.     privatefinal Player player;
    4.     privatefinal Set<Prayer> activePrayers;
    5.  
    6.     /**
    7.      * The rate at which prayer points are drained per tick.
    8.      */
    9.     privateint drainRate;
    10.  
    11.     /**
    12.      * The current prayer point drain counter. Once it reaches 1000 a prayer point is removed from
    13.      * the player.
    14.      */
    15.     privateint drainCounter;
    16.  
    17.     public Prayers(Player player){
    18.         this.player= player;
    19.         this.activePrayers=new HashSet<>();
    20.     }
    21.  
    22.     publicvoid toggle(Prayer prayer){
    23.         if(prayer ==null){
    24.             return;
    25.         }
    26.         if(activePrayers.contains(prayer)){
    27.             player.send(new ConfigMessage(prayer.getConfigId(), 0));
    28.             drainRate -= prayer.getDrainRate();
    29.             activePrayers.remove(prayer);
    30.         }else{
    31.             if(!prayer.getRequirements().hasRequirementsDisplayOne(player)){
    32.                 return;
    33.             }
    34.             player.send(new ConfigMessage(prayer.getConfigId(), 1));
    35.             drainRate += prayer.getDrainRate();
    36.             Iterator<Prayer> it = activePrayers.iterator();
    37.             while(it.hasNext()){
    38.                 Prayer activePrayer = it.next();
    39.                 if(prayer.conflicts(activePrayer)){
    40.                     player.send(new ConfigMessage(activePrayer.getConfigId(), 0));
    41.                     drainRate -= activePrayer.getDrainRate();
    42.                     it.remove();
    43.                 }
    44.             }
    45.             activePrayers.add(prayer);
    46.         }
    47.     }
    48.  
    49.     /**
    50.      * Deactivates all active prayers.
    51.      */
    52.     publicvoid deactivateAll(){
    53.         for(Prayer activePrayer : activePrayers){
    54.             player.send(new ConfigMessage(activePrayer.getConfigId(), 0));
    55.         }
    56.         activePrayers.clear();
    57.         drainCounter =0;
    58.         drainRate =0;
    59.     }
    60.  
    61.     /**
    62.      * Called once per tick, increments the prayer drain counter using the drain rate of all active
    63.      * prayers and then removes prayer points from the player if necessary.
    64.      */
    65.     publicvoid tick(){
    66.         if(drainRate >0){
    67.             int prayerBonus = player.getEquipmentBonuses().getPrayerBonus();
    68.             double modifier =1+(prayerBonus *(0.01/0.3));
    69.             int modifiedDrainRate =(int)(drainRate / modifier);
    70.             drainCounter += modifiedDrainRate;
    71.             int drain = drainCounter /1000;          
    72.             player.reducePrayerPoints(drain);
    73.             drainCounter -= drain *1000;
    74.             if(!PrayerPointRequirement.NON_ZERO_POINTS.hasRequirement(player)){
    75.                 deactivateAll();
    76.                 player.sendMessage("You have run out of Prayer points.");
    77.             }
    78.         }
    79.     }
    80.  
    81. }

    One thing I wasnt sure of was if the prayer actually ran on the 0.6second tick system like the rest of the game. I assumed it would (and so I wrote it that way), but according to the wiki some prayers are 1.5 second delay.. and the way I have it sometimes it wont be a uniform delay.
    « Last Edit: July 06, 2014, 11:16:52 PM by Davidi2 »

    OfflineLothy

    • Member
    • ****
    • *
    • *
    • Posts: 7,006
    • Thanks: +0/-0
      • View Profile
    Re: Official MoparScape Server - In Development [Source back on git!]
    « Reply #759 on: July 07, 2014, 04:00:37 PM »
    Prayer flashing works in the real game, so it can't be on a per-tick basis.


    Also, algorithmically, the trick is to maintain a prayerUsed counter that counts up from zero. This counter is reset to 0 every time all prayers are turned off. Once you have this in place, each game tick you the value of this counter. If it has surpassed a threshold then you deduct one prayer point from the user.


    You could also limit the threshold check to once every two ticks if you like, but yeah. As long as you don't just immediately decrement prayer level you should be good.
    « Last Edit: July 07, 2014, 04:07:09 PM by Lothy »
    <&Speljohan_> i wouldnt want to live in a society where Mopman isnt monitored 24/7

     

    Copyright © 2017 MoparScape. All rights reserved.
    Powered by SMFPacks SEO Pro Mod |
    SimplePortal 2.3.5 © 2008-2012, SimplePortal