Fully revised HP washing guide

Discussion in 'Guides' started by Pheelo, May 11, 2014.

  1. Pheelo
    Offline

    Pheelo Donator

    Joined:
    Apr 22, 2014
    Messages:
    123
    Likes Received:
    67
    Location:
    Denmark
    IGN:
    Pheelo
    Level:
    66
    Guild:
    Queens
    Firstly I would like to say that I did not write all of this.
    This guide is written by UponWish three years ago and improved by PepsiBandit two years ago, and optimized by me today (14:52 GMT +1, 11. may 2014).

    Data for experienced HP washers:
    Here's some data for those who already know about HP Washing:
    Job, HP gained, MP lost, Min MP, Min HP
    Beginner, +8~12HP, -8MP, (10 x level) +2, (12 x level) +50
    Warrior, +50~54HP, -4MP, (4 x level) +156, (24 x level) +172
    Thief, +20~24HP, -12MP, (4 x level) +56, (24 x level) +472
    Bowman, +16~20HP, -12MP, (14 x level) +148, (20 x level) +378
    Magician, +6~10HP, -90MP, (14 x level) +148, (20 x level) +378
    Pirate, +16~20HP (+36~40HP for Brawlers), -16MP, (18 x level) +111, (22 x level) +380

    Code:
    				
    				case 2048: // HP
    					int MaxHP = c.getPlayer().getMaxHp();
    					if (c.getPlayer().getHpApUsed() == 10000 || MaxHP == 30000)
    						return;
    					ISkill improvingMaxHP = null;
    					int improvingMaxHPLevel = 0;
    					if (c.getPlayer().getJob().isA([COLOR="DarkGreen"]MapleJob.BEGINNER[/COLOR])) {
    						[COLOR="DarkGreen"]MaxHP += rand(8, 12)[/COLOR];
    					} else if (c.getPlayer().getJob().isA([COLOR="Blue"]MapleJob.WARRIOR[/COLOR])) {
    						improvingMaxHP = SkillFactory.getSkill(1000001);
    						improvingMaxHPLevel = c.getPlayer().getSkillLevel(improvingMaxHP);
    						if (improvingMaxHPLevel >= 1) {
    							[COLOR="blue"]MaxHP += rand(20, 24) + improvingMaxHP[/COLOR].getEffect(improvingMaxHPLevel).getY();
    						} else {
    							[COLOR="blue"]MaxHP += rand(20, 24)[/COLOR];
    						}
    					} else if (c.getPlayer().getJob().isA([COLOR="Orange"]MapleJob.MAGICIAN[/COLOR])) {
    						[COLOR="Orange"]MaxHP += rand(6, 10)[/COLOR];
    					} else if (c.getPlayer().getJob().isA([COLOR="Purple"]MapleJob.BOWMAN[/COLOR])) {
    						[COLOR="purple"]MaxHP += rand(16, 20)[/COLOR];
    					} else if (c.getPlayer().getJob().isA([COLOR="Red"]MapleJob.THIEF[/COLOR])) {
    						[COLOR="red"]MaxHP += rand(20, 24)[/COLOR];
    					} else if (c.getPlayer().getJob().isA([COLOR="Sienna"]MapleJob.PIRATE[/COLOR])) {
    						improvingMaxHP = SkillFactory.getSkill(5100000);
    						improvingMaxHPLevel = c.getPlayer().getSkillLevel(improvingMaxHP);
    						if (improvingMaxHPLevel >= 1) {
    							[COLOR="Sienna"]MaxHP += rand(16, 20) + improvingMaxHP[/COLOR].getEffect(improvingMaxHPLevel).getY();
    						} else {
    							[COLOR="Sienna"]MaxHP += rand(16, 20)[/COLOR];
    						}
    					}
    					MaxHP = Math.min(30000, MaxHP);
    					c.getPlayer().setHpApUsed(c.getPlayer().getHpApUsed() + 1);
    					c.getPlayer().setMaxHp(MaxHP);
    					statupdate.add(new Pair<MapleStat, Integer>(MapleStat.MAXHP, MaxHP));
    					break;
    				case 8192: // MP
    					int MaxMP = c.getPlayer().getMaxMp();
    					if (c.getPlayer().getMpApUsed() == 10000 || c.getPlayer().getMaxMp() == 30000)
    						return;
    					if (c.getPlayer().getJob().isA(MapleJob.BEGINNER)) {
    						MaxMP += rand(6, 8);
    					} else if (c.getPlayer().getJob().isA(MapleJob.WARRIOR)) {
    						MaxMP += rand(2, 4);
    					} else if (c.getPlayer().getJob().isA(MapleJob.MAGICIAN)) {
    						ISkill improvingMaxMP = SkillFactory.getSkill(2000001);
    						int improvingMaxMPLevel = c.getPlayer().getSkillLevel(improvingMaxMP);
    						if (improvingMaxMPLevel >= 1) {
    							MaxMP += rand(18, 20) + improvingMaxMP.getEffect(improvingMaxMPLevel).getY();
    						} else {
    							MaxMP += rand(18, 20);
    						}
    					} else if (c.getPlayer().getJob().isA(MapleJob.BOWMAN)) {
    						MaxMP += rand(10, 12);
    					} else if (c.getPlayer().getJob().isA(MapleJob.THIEF)) {
    						MaxMP += rand(10, 12);
    					} else if (c.getPlayer().getJob().isA(MapleJob.PIRATE)) {
    						MaxMP += rand(10, 12);
    					}
    					MaxMP = Math.min(30000, MaxMP);
    					c.getPlayer().setMpApUsed(c.getPlayer().getMpApUsed() + 1);
    					c.getPlayer().setMaxMp(MaxMP);
    					statupdate.add(new Pair<MapleStat, Integer>(MapleStat.MAXMP, MaxMP));
    					break;
    
    Here's some data for HP washing by adding the point to HP using an AP reset, and then removing it using another reset:
    Job, HP gained, MP lost, Min MP, Min HP
    Beginner, +8~12HP, -8MP, (10 x level) +2, (12 x level) +50
    Warrior, +50~55HP, -4MP, (4 x level) +156, (24 x level) +172
    Thief, +16~20HP, -12MP, (4 x level) +56, (24 x level) +472
    Bowman, +16~20HP, -12MP, (14 x level) +148, (20 x level) +378
    Magician, +10~20HP, -90MP, (14 x level) +148, (20 x level) +378
    Pirate, +20HP (+40HP for Brawlers), -16MP, (18 x level) +111, (22 x level) +380

    Code:
    switch (APTo) {
    	case 64: // str
    		if (c.getPlayer().getStr() >= 999) {
    			return;
    		}
    		c.getPlayer().setStr(c.getPlayer().getStr() + 1);
    		statupdate.add(new Pair<MapleStat, Integer>(MapleStat.STR, c.getPlayer().getStr()));
    		break;
    	case 128: // dex
    		if (c.getPlayer().getDex() >= 999) {
    			return;
    		}
    		c.getPlayer().setDex(c.getPlayer().getDex() + 1);
    		statupdate.add(new Pair<MapleStat, Integer>(MapleStat.DEX, c.getPlayer().getDex()));
    		break;
    	case 256: // int
    		if (c.getPlayer().getInt() >= 999) {
    			return;
    		}
    		c.getPlayer().setInt(c.getPlayer().getInt() + 1);
    		statupdate.add(new Pair<MapleStat, Integer>(MapleStat.INT, c.getPlayer().getInt()));
    		break;
    	case 512: // luk
    		if (c.getPlayer().getLuk() >= 999) {
    			return;
    		}
    		c.getPlayer().setLuk(c.getPlayer().getLuk() + 1);
    		statupdate.add(new Pair<MapleStat, Integer>(MapleStat.LUK, c.getPlayer().getLuk()));
    		break;
    	case 2048: // hp
    		int maxhp = c.getPlayer().getMaxHp();
    		if (maxhp >= 30000) {
    			c.getSession().write(MaplePacketCreator.updatePlayerStats(MaplePacketCreator.EMPTY_STATUPDATE, true));
    			return;
    		} else {
    			if (c.getPlayer().getJob().isA([COLOR="DarkGreen"]MapleJob.BEGINNER[/COLOR])) {
    				[COLOR="DarkGreen"]maxhp += rand(8, 12)[/COLOR];
    			} else if (c.getPlayer().getJob().isA([COLOR="Blue"]MapleJob.WARRIOR[/COLOR])) {
    				ISkill improvingMaxHP = SkillFactory.getSkill(1000001);
    				int improvingMaxHPLevel = c.getPlayer().getSkillLevel(improvingMaxHP);
    				[COLOR="blue"]maxhp += rand(20, 25)[/COLOR];
    				if (improvingMaxHPLevel >= 1) {
    					[COLOR="blue"]maxhp += improvingMaxHP[/COLOR].getEffect(improvingMaxHPLevel).getY();
    				}
    			} else if (c.getPlayer().getJob().isA([COLOR="DarkOrange"]MapleJob.MAGICIAN[/COLOR])) {
    				[COLOR="DarkOrange"]maxhp += rand(10, 20)[/COLOR];
    			} else if (c.getPlayer().getJob().isA([COLOR="Purple"]MapleJob.BOWMAN[/COLOR])) {
    				[COLOR="Purple"]maxhp += rand(16, 20)[/COLOR];
    			} else if (c.getPlayer().getJob().isA([COLOR="Red"]MapleJob.THIEF[/COLOR])) {
    				[COLOR="Red"]maxhp += rand(16, 20)[/COLOR];
    			} else if (c.getPlayer().getJob().isA([COLOR="Sienna"]MapleJob.PIRATE[/COLOR])) {
    				ISkill improvingMaxHP = SkillFactory.getSkill(5100000);
    				int improvingMaxHPLevel = c.getPlayer().getSkillLevel(improvingMaxHP);
    				[COLOR="Sienna"]maxhp += 20;[/COLOR]
    				if (improvingMaxHPLevel >= 1) {
    					[COLOR="Sienna"]maxhp += improvingMaxHP[/COLOR].getEffect(improvingMaxHPLevel).getY();
    				}
    			}
    			maxhp = Math.min(30000, maxhp);
    			c.getPlayer().setHpApUsed(c.getPlayer().getHpApUsed() + 1);
    			c.getPlayer().setMaxHp(maxhp);
    			statupdate.add(new Pair<MapleStat, Integer>(MapleStat.MAXHP, c.getPlayer().getMaxHp()));
    			break;
    		}
    	case 8192: // mp
    		int maxmp = c.getPlayer().getMaxMp();
    		if (maxmp >= 30000) {
    			return;
    		} else {
    			if (c.getPlayer().getJob().isA(MapleJob.BEGINNER)) {
    				maxmp += rand(6, 8);
    			} else if (c.getPlayer().getJob().isA(MapleJob.WARRIOR)) {
    				maxmp += rand(2, 4);
    			} else if (c.getPlayer().getJob().isA(MapleJob.MAGICIAN)) {
    				ISkill improvingMaxMP = SkillFactory.getSkill(2000001);
    				int improvingMaxMPLevel = c.getPlayer().getSkillLevel(improvingMaxMP);
    				maxmp += rand(18, 20);
    				if (improvingMaxMPLevel >= 1) {
    					maxmp += improvingMaxMP.getEffect(improvingMaxMPLevel).getY();
    				}
    			} else if (c.getPlayer().getJob().isA(MapleJob.BOWMAN)) {
    				maxmp += rand(10, 12);
    			} else if (c.getPlayer().getJob().isA(MapleJob.THIEF)) {
    				maxmp += rand(10, 12);
    			} else if (c.getPlayer().getJob().isA(MapleJob.PIRATE)) {
    				maxmp += rand(10, 12);
    			}
    			maxmp = Math.min(30000, maxmp);
    			c.getPlayer().setMpApUsed(c.getPlayer().getMpApUsed() + 1);
    			c.getPlayer().setMaxMp(maxmp);
    			statupdate.add(new Pair<MapleStat, Integer>(MapleStat.MAXMP, c.getPlayer().getMaxMp()));
    			break;
    
    ♠♠ Fully revised HP washing guide for beginners ♠♠
    Index
    1.Abstract

    A. What is HP washing?
    B. How does it work?
    C. Will your damage be affected by using this technique?
    D. Who should do it?
    E. What is the rate between HP gain and MP lost?
    F. What are the Pros and Cons of HP washing?
    G. How to improve MP gained per level
    H. How much HP washing can you do / should you do?
    I. How to HP Wash
    J. When can I do HP washing?
    2. Facts
    3. INT Equip Suggestions
    4. Conclusion
    5. Summary
    6. Credits
    7. References


    1. Abstract
    A. What is HP washing?
    This concept was first pioneered by Tiger from GMS and further tested out and improved by many guys including Tanyia and kwanhua from MSEA. HP washing is not against any rules and is essential for certain bosses.

    B. How does it work?
    Normally when you level up you will have your 5 spare AP and you will just add them to what ever you want. With HP washing you will first put these 5 AP into HP. Once it is in HP you can then buy an AP reset scroll from the cash shop (you need one for each point), Then you will use the reset and you can take one point out of MP and return this spare point into what ever you were originally going to.
    Important note: You can just keep reusing the same 1 AP, adding it to HP, then taking it out of MP and repeat until you reach minimum MP

    C. Will your damage be affected by using this technique?
    No. The overall outcome will be a reduction of your MP and an increase of HP with no affect on your damage. There is an alternative to HP washing known as blood washing which will have an affect on your damage. Blood washing involves only adding into HP without extracting the AP after to use (I wouldn’t recommend this).

    D. Who should do it?
    The class that benefits most from HP washing is warrior. HP washing is almost essential at higher levels because of the high damage by bosses. Some of these bosses would be impossible for certain jobs unless washed.

    E. What is the rate between HP gain and MP lost?
    Beginner +8~12HP, -8MP
    Warrior +50~54HP -4MP
    Thief +20~24 HP -12MP
    Bowman +16~20HP -12MP
    Magician +6~10Hp -90MP
    Pirate +16~20HP (+36~40HP for Brawlers) -16MP

    F. What are the Pros and Cons of HP washing?
    Pros:
    - Gain more HP so you can survive 1~ 2 HKO from boss monsters (Zakum, Horntail, Grandpa, Anego, Papulatus, Pink Bean… etc) attacks that deal large amounts of damage!
    - It will also mean that you need less money for pots at higher levels assuming that you use % HP pots such as ginger ales.

    Cons:
    - It's very expensive, 3.1K NX per wash.

    G. How to improve MP gained per level
    Every 10 INT that you have when you level up will increase your MP gained by 1. To be able to have more INT without it affecting your damage and training speed people will often buy INT gear. INT gear are items that have been specifically scrolled for INT, not often intended for use. This means the items are often common instead of job specific.

    The amount of INT gained increases in steps. If for example you had +10 INT items then you would get 1 additional MP, if your had 20 INT you would get 2 MP. If you only had 19 INT you would get 1 MP. The extra MP gained increases in discrete steps.

    It’s best to start wearing INT items as early as possible to gain the most out of it (level 1 if possible).

    H. How much HP washing can you do / should you do?
    It varies from job to job. But the minimum MP is the thing that controls it all. However if you use INT gear, you can gain a lot more MP. The more MP you gain, the more you can potentially wash.

    (This is for after 2nd job advancement)
    Min MP Formula for Beginner = 10 x level + 2
    Min MP Formula for Spearman class = 4 x level + 156
    Min MP Formula for Fighter class = 4 x level + 56
    Min MP Formula for Bowman = 14 x level + 148
    Min MP Formula for Thief = 14 x level + 148
    Min MP Formula for Pirate = 18 x level + 111

    For eg, let’s assume that you are a Level 200 Thief with 4000 MP.
    The thief minimum MP that he can’t remove is 200 x 14 + 148 = 2948
    So, this thief could channel at MOST 4000 MP - 2948 MP = 1052 MP into his HP
    To be more realistic you probably would not need to wear godly INT gear from level 1 and wash as much as you can. The amount of HP for each job is:

    (This is for after 2nd job advancement)
    Min HP Formula for Beginner = 12 x level + 50
    Min HP Formula for Spearman class = 24 x level + 172
    Min HP Formula for Fighter class = 24 x level + 472
    Min HP Formula for Bowman = 20 x level + 378
    Min HP Formula for Thief = 20 x level + 378
    Min HP Formula for Pirate = 22 x level + 380

    You will then need to decide how much HP you feel that you need. Some of the following are targets you might want:

    Monster Magic Damage Touch Damage
    Crimson Balrog 2.5k 4.5k
    Ergoth 3.9k 3k
    Zakum 2.9k 11k
    Pianus 5k 5.2k
    Papulatus 6k 5.2k
    Bigfoot 12k
    Anego 19k 12k
    Horntail 7.8k 23k
    Pink Bean 19k 23k

    Please note that the damage shown is not always the maximum amount needed in order to be able to safely kill the bosses and that with Pink Bean it also has an instant kill attack.

    I. How to HP Wash
    Step 1: Keep some spare AP for washing when you level up.
    Step 2: Calculate your minimum MP
    Step 3: Calculate the amount of resets you can do
    Step 4: Using AP Reset Cards (NX Cash)
    1. Put 1 AP into HP (doing this one at a time is often the most sensible although it makes no difference in the end)
    2. Use AP Reset to reduce 1 point from MP.
    3. Add that 1 point into your primary attribute. (example: If you are a Thief, add to LUK)
    4. Repeat step 1 and 2 until all your AP have been used.

    J. When i can do HP washing?
    I would recommend waiting until after the second job advancement as you can get more HP per MP that way. This does not mean you should not wear INT equips as soon as you can though.

    2. Facts:
    1. Maximum HP/MP cap for all jobs is 30,000.
    2. YES, you can do HP washing at level 1 with umbrella and bandana. About 12~13MP every level from lvl 1-10
    3. Do not try to reset with Hyper Body, it won’t work.
    4. It is NOT possible for lvl 200 to reach 30k HP without hyper body/washing now.
    5. It is also currently NOT possible to reach 30k by normal HP washing (without INT gear).
    6. It is ONLY possible to reach 30k now if you wash with INT gear.
    7. Will wearing STR gear gain more HP? No, no and no. After research, it has proven that HP washing is the only way.
    8. If you put AP to HP and cant -MP mean you have reached the minimum MP limit. Then u will temporarily weaker than normal until you can further wash in the coming levels. So, wash AP per AP is advisable.


    3. INT Equip Suggestions:
    The most common items INT items are listed below with an approximate INT gain assuming you have decent funds available (much higher INT can be achieved). Remember that you should equip these before you level when you are about 99.90%, make sure you do not leave it until too late to equip them.

    Item, Level, Average int

    Hat:
    Black Bandana, 10, 1~3 INT
    Green Bandana, 10, 1~10 INT (scrolled)
    Zakum Helm, 50, 13~17 INT

    Overall:
    Bath Robe, 20, 10~20 INT (scrolled)

    Earrings:
    Any earring, 15+, 4~5 INT (scrolled)

    Capes
    Any cape, 25+, 8~11 INT (scrolled)

    Weapons:
    Wooden Wand, 8, 4~8 INT (scrolled)
    Blue Umbrella, 0, 1~6 INT (scrolled)

    Gloves:
    Work gloves, 10, 4~7 INT (scrolled)

    Shoes:
    Yellow Snow Shoes, 50, 3~6 INT (clean or scrolled)

    Shield:
    Any shield, 5+, 5~7 INT (scrolled)

    These would be decent INT items that could be used for washing but every little helps. I would recommend buying a zakum helm to begin with as it is probably the most effective at increasing INT for cost. Some of the other cheap items would be 100% scrolling a bath robe and buying a low INT cape.
    HP washing on a low budget would give you around 30 extra INT.
    If you plan on spending very large amounts (billions on each item) of money you can get over 150 INT.

    4. Conclusion
    So, if each time you wear +30 INT equipment at 99.9% before next level, you would gain additional 3 MP, and leveling 3 times would get you 15 MP. It would be sufficient for about 1 AP reset (check table at the top of the page). If you are wearing +90 INT equipment, you will gain 9 MP per level, and in 3 levels you gain 27 MP. If you are a warrior then this would be enough to use 6 AP Resets= 6×55HP = 330 HP! In short, every 10 INT gains 1 MP.

    5. Summary
    The main reasons for HP washing are to make it easier and safer to train at places such as skeles and to kill bosses. For dark knights there is also the bonus of using bersek which requires you to be on less than 40% HP and gives a 200% attack bonus. If you had 30k HP with then you would still be able to get this bonus with 12k HP which is enough to take a hit from almost any monster.

    6. Credits
    UponWish, for originally writing this
    Tiger, from GMS for invention of HP theory
    Tanyia, and many others from MSEA for the washing HP information
    Ayumilove, maple blog and her formulas
    LostJVlyDex from Khaini GMS for discovering the flaw in the theory
    PepsiBandit, MesosPlz mod and someone who made noticeable adjustments to this guide
    The guild Queens here on MapleRoyals, for answering all my tedious questions and being extremely helpful helping me optimize this premade guide for MapleRoayls
    Pheelo, for optimizing this guide for MapleRoyals

    7. References:
    Tutorial Vids:
    Normal resetting (without INT gear) http://www.youtube.com/watch?v=jFfHts-iUdg

    AP Reset cash value
    *Each AP Reset Scroll - 3100 NX

    The purpose of this thread was to give people ideas on how to construct their washing skills while being able to make decisions for themselves. There is no ultimate guide out there, or else it would have been apparent to us right from the beginning.
    Any questions or suggestions are welcome.
    ♪HAPPY WASHING♪

    Original source: http://www.sleepywood.net/forum/showthread.php?t=1502061

    Thank you for taking the to read this and please feel free to ask any questions.

    ~Pheelo
     
    Last edited: Jun 3, 2014
  2. Liek
    Offline

    Liek Donator

    Joined:
    Mar 4, 2014
    Messages:
    78
    Likes Received:
    59
    Country Flag:
    IGN:
    Liek, Nikon
    Level:
    13x
    Guild:
    Queens \o.O/
    I would like to say that from my experience of HP washing my hermit (Nikon) is that the average HP gain is 20~24. I haven't seen any HP addition lower than 20 and higher than 24. The MP loss is correct.
     
    patjustpat and EDelirio like this.
  3. Chokladkakan
    Offline

    Chokladkakan Web Developer

    Joined:
    Feb 2, 2014
    Messages:
    421
    Likes Received:
    986
    This would also correlate with what Matt once posted:

    Code:
    else if (c.getPlayer().getJob().isA(MapleJob.THIEF)) {
    	MaxHP += rand(20, 24);
    }
     
  4. Pheelo
    Offline

    Pheelo Donator

    Joined:
    Apr 22, 2014
    Messages:
    123
    Likes Received:
    67
    Location:
    Denmark
    IGN:
    Pheelo
    Level:
    66
    Guild:
    Queens
    Thx to you guys, and Matt for the code. Fixed it.
    Noticed in the code that brawlers have a HP increase like warriors have, added it to the guide.
     
    Last edited: May 11, 2014
    syncrinity likes this.
  5. Afee
    Offline

    Afee Donator

    Joined:
    Aug 6, 2013
    Messages:
    231
    Likes Received:
    83
    Gender:
    Male
    Location:
    Aux, Aotearoa
    Country Flag:
    IGN:
    Afee
    - 3,100 NX

    For me, it takes 8 MP to wash into 8 HP per AP reset for beginners.
     
    Last edited: May 12, 2014
  6. Dizz
    Offline

    Dizz Well-Known Member

    Joined:
    Mar 3, 2014
    Messages:
    94
    Likes Received:
    256
    Gender:
    Male
    Location:
    Lith Harbor
    Country Flag:
    IGN:
    Dizz
    Level:
    105
    For beginners, its -8 MP per reset, and +8-12 HP per reset.
     
    LostMyTuna and Afee like this.
  7. mettzi
    Offline

    mettzi Donator

    Joined:
    Dec 24, 2013
    Messages:
    228
    Likes Received:
    197
    Gender:
    Male
    Country Flag:
    IGN:
    QueenBee
    Level:
    15x
    Guild:
    XIII
    You might want to add that you can also add 1 AP into HP, and then keep taking AP out of MP and putting it into HP.

    If I remember correctly, it's a loss of HP because the HP gained is static and not varied, however you don't need to save AP if you use this method.
     
  8. Pheelo
    Offline

    Pheelo Donator

    Joined:
    Apr 22, 2014
    Messages:
    123
    Likes Received:
    67
    Location:
    Denmark
    IGN:
    Pheelo
    Level:
    66
    Guild:
    Queens
    I had my doubts about it, have been trying to get a hold of you, thanks for your input. I have fixed it now.

    How is it a loss of HP?
    As you say yourself, HP gain is static.
    That would mean that every point you put in HP will yield the same area HP,
    for example, beginners get 8-12 HP no matter what method you use.
    Also, as you probably know, every washing method will only work till you reach minimum MP.
    I'll add the method to the guide, thanks for your input.
     
    Last edited: May 12, 2014
  9. mettzi
    Offline

    mettzi Donator

    Joined:
    Dec 24, 2013
    Messages:
    228
    Likes Received:
    197
    Gender:
    Male
    Country Flag:
    IGN:
    QueenBee
    Level:
    15x
    Guild:
    XIII
    It's a loss of HP because if you directly add the AP into HP (without using an AP reset) it's a varied number. Like you said beginners get 8-12 HP. If you use the method I'm speaking of, it's not 8-12. The HP gained would be a static number, something like 8 HP per wash rather than 8-12 HP. I don't know the actual number but I'm just using that as an example. Over time the HP loss would become significant.
     
  10. Pheelo
    Offline

    Pheelo Donator

    Joined:
    Apr 22, 2014
    Messages:
    123
    Likes Received:
    67
    Location:
    Denmark
    IGN:
    Pheelo
    Level:
    66
    Guild:
    Queens
    Wow, that's pretty interesting, I hope a GM can provide us with the code used to AP resets so we can clear things up :)
     
  11. Pheelo
    Offline

    Pheelo Donator

    Joined:
    Apr 22, 2014
    Messages:
    123
    Likes Received:
    67
    Location:
    Denmark
    IGN:
    Pheelo
    Level:
    66
    Guild:
    Queens
    UPDATE

    I had contact with Matt today and he gave me these data for adding HP using AP resets:
    Code:
    switch (APTo) {
    	case 64: // str
    		if (c.getPlayer().getStr() >= 999) {
    			return;
    		}
    		c.getPlayer().setStr(c.getPlayer().getStr() + 1);
    		statupdate.add(new Pair<MapleStat, Integer>(MapleStat.STR, c.getPlayer().getStr()));
    		break;
    	case 128: // dex
    		if (c.getPlayer().getDex() >= 999) {
    			return;
    		}
    		c.getPlayer().setDex(c.getPlayer().getDex() + 1);
    		statupdate.add(new Pair<MapleStat, Integer>(MapleStat.DEX, c.getPlayer().getDex()));
    		break;
    	case 256: // int
    		if (c.getPlayer().getInt() >= 999) {
    			return;
    		}
    		c.getPlayer().setInt(c.getPlayer().getInt() + 1);
    		statupdate.add(new Pair<MapleStat, Integer>(MapleStat.INT, c.getPlayer().getInt()));
    		break;
    	case 512: // luk
    		if (c.getPlayer().getLuk() >= 999) {
    			return;
    		}
    		c.getPlayer().setLuk(c.getPlayer().getLuk() + 1);
    		statupdate.add(new Pair<MapleStat, Integer>(MapleStat.LUK, c.getPlayer().getLuk()));
    		break;
    	case 2048: // hp
    		int maxhp = c.getPlayer().getMaxHp();
    		if (maxhp >= 30000) {
    			c.getSession().write(MaplePacketCreator.updatePlayerStats(MaplePacketCreator.EMPTY_STATUPDATE, true));
    			return;
    		} else {
    			if (c.getPlayer().getJob().isA([COLOR="DarkGreen"]MapleJob.BEGINNER[/COLOR])) {
    				[COLOR="DarkGreen"]maxhp += rand(8, 12)[/COLOR];
    			} else if (c.getPlayer().getJob().isA([COLOR="Blue"]MapleJob.WARRIOR[/COLOR])) {
    				ISkill improvingMaxHP = SkillFactory.getSkill(1000001);
    				int improvingMaxHPLevel = c.getPlayer().getSkillLevel(improvingMaxHP);
    				[COLOR="blue"]maxhp += rand(20, 25)[/COLOR];
    				if (improvingMaxHPLevel >= 1) {
    					[COLOR="blue"]maxhp += improvingMaxHP[/COLOR].getEffect(improvingMaxHPLevel).getY();
    				}
    			} else if (c.getPlayer().getJob().isA([COLOR="DarkOrange"]MapleJob.MAGICIAN[/COLOR])) {
    				[COLOR="DarkOrange"]maxhp += rand(10, 20)[/COLOR];
    			} else if (c.getPlayer().getJob().isA([COLOR="Purple"]MapleJob.BOWMAN[/COLOR])) {
    				[COLOR="Purple"]maxhp += rand(16, 20)[/COLOR];
    			} else if (c.getPlayer().getJob().isA([COLOR="Red"]MapleJob.THIEF[/COLOR])) {
    				[COLOR="Red"]maxhp += rand(16, 20)[/COLOR];
    			} else if (c.getPlayer().getJob().isA([COLOR="Sienna"]MapleJob.PIRATE[/COLOR])) {
    				ISkill improvingMaxHP = SkillFactory.getSkill(5100000);
    				int improvingMaxHPLevel = c.getPlayer().getSkillLevel(improvingMaxHP);
    				[COLOR="Sienna"]maxhp += 20;[/COLOR]
    				if (improvingMaxHPLevel >= 1) {
    					[COLOR="Sienna"]maxhp += improvingMaxHP[/COLOR].getEffect(improvingMaxHPLevel).getY();
    				}
    			}
    			maxhp = Math.min(30000, maxhp);
    			c.getPlayer().setHpApUsed(c.getPlayer().getHpApUsed() + 1);
    			c.getPlayer().setMaxHp(maxhp);
    			statupdate.add(new Pair<MapleStat, Integer>(MapleStat.MAXHP, c.getPlayer().getMaxHp()));
    			break;
    		}
    	case 8192: // mp
    		int maxmp = c.getPlayer().getMaxMp();
    		if (maxmp >= 30000) {
    			return;
    		} else {
    			if (c.getPlayer().getJob().isA(MapleJob.BEGINNER)) {
    				maxmp += rand(6, 8);
    			} else if (c.getPlayer().getJob().isA(MapleJob.WARRIOR)) {
    				maxmp += rand(2, 4);
    			} else if (c.getPlayer().getJob().isA(MapleJob.MAGICIAN)) {
    				ISkill improvingMaxMP = SkillFactory.getSkill(2000001);
    				int improvingMaxMPLevel = c.getPlayer().getSkillLevel(improvingMaxMP);
    				maxmp += rand(18, 20);
    				if (improvingMaxMPLevel >= 1) {
    					maxmp += improvingMaxMP.getEffect(improvingMaxMPLevel).getY();
    				}
    			} else if (c.getPlayer().getJob().isA(MapleJob.BOWMAN)) {
    				maxmp += rand(10, 12);
    			} else if (c.getPlayer().getJob().isA(MapleJob.THIEF)) {
    				maxmp += rand(10, 12);
    			} else if (c.getPlayer().getJob().isA(MapleJob.PIRATE)) {
    				maxmp += rand(10, 12);
    			}
    			maxmp = Math.min(30000, maxmp);
    			c.getPlayer().setMpApUsed(c.getPlayer().getMpApUsed() + 1);
    			c.getPlayer().setMaxMp(maxmp);
    			statupdate.add(new Pair<MapleStat, Integer>(MapleStat.MAXMP, c.getPlayer().getMaxMp()));
    			break;
    
    In Short
    Job, Using AP from level up to gain HP, using AP from AP reset to gain HP
    Beginner, +8~12HP, +8~12HP The Same
    Warrior, +50~54HP, +50~55HP Slightly better
    Thief, +20~24HP, +16~20HP Much worse
    Bowman, +16~20HP, +16~20HP The Same
    Magician, +6~10HP, +10~20HP Much better
    Pirate, +16~20HP (+36~40HP for Brawlers), +20HP (+40HP for Brawlers) Much better
     
    Last edited: May 24, 2014
    Kung, SirBearLag, Andriks and 6 others like this.
  12. Katsuruka
    Offline

    Katsuruka Donator

    Joined:
    May 10, 2013
    Messages:
    10,977
    Likes Received:
    5,320
    I've made your post a sticky, as I think it will be of great help to a lot of players! Thank you for making it!
     
    Pheelo and Marty like this.
  13. Marty
    Offline

    Marty Donator

    Joined:
    Dec 7, 2013
    Messages:
    3,444
    Likes Received:
    2,485
    Gender:
    Male
    Country Flag:
    IGN:
    Linyah
    Level:
    170
    To get this 100% straight: I'm a Shadower, so if I were to reset LUK, put it in HP and then reset MP back to LUK, I would get 16~20 HP? I always thought it always gave me 16 HP... o:
     
  14. Kerners
    Offline

    Kerners Donator

    Joined:
    Apr 7, 2014
    Messages:
    229
    Likes Received:
    418
    IGN:
    TeddieDuckie
    No you would get 20~24 for +hp -> -mp + luk

    If you put in HP, reset MP back to HP, you'd get 16~20 (instead of 16 fixed).
     
  15. Goofy
    Offline

    Goofy Donator

    Joined:
    Nov 12, 2013
    Messages:
    1,461
    Likes Received:
    1,827
    Location:
    SoCal
    IGN:
    Goofy
    Guild:
    Queens
    So if you reset AP out of a regular stat (rather than using level-up AP) and place it into HP, you get the maximum of your job's range, every time?

    So you're using twice as many AP resets for the same amount of washes? That's a little extreme.
     
  16. Doritos
    Offline

    Doritos Donator

    Joined:
    Feb 13, 2014
    Messages:
    620
    Likes Received:
    363
    Location:
    Xanadu
    Country Flag:
    IGN:
    RoughKnight
    No. Add your level up ap into hp, then subtract mp and add the reset ap to regular stat. 1 reset per wash.
     
  17. Kerners
    Offline

    Kerners Donator

    Joined:
    Apr 7, 2014
    Messages:
    229
    Likes Received:
    418
    IGN:
    TeddieDuckie
    Let me try to explain this.

    There are 2 main methods of HP washing.

    Let's call the first method the traditional HP washing method, since it is the one most players are familiar with.

    Method 1

    Step 1. Add 1 point to HP
    Step 2. Use AP Reset, deduct 1 point from MP and add it back into the relevant stat(luk, dex etc.)

    Notes: You are limited to 5 resets per level since it uses the AP gained from level up.

    Following this method will allow a gain of
    Beginner, +8~12HP,
    Warrior, +50~54HP
    Thief, +20~24HP
    Bowman, +16~20HP
    Magician, +6~10HP
    Pirate, +16~20HP (+36~40HP for Brawlers)

    Method 2
    Step 1. You need to add at least 1 point in HP first.
    Step 2. Use AP reset, -mp and add hp.
    Step 3. You can keep repeating Step 2 till you hit the minimum mp.

    Notes: People used to argue against this method, since it seems that adding HP using an AP Reset would fix the HP gained (at +16 for thieves for example). But due to how it is coded here in Royals, it does not fix the HP gain, hence it is a viable method to HP wash as well.

    Following this method will allow a gain of
    Beginner, +8~12HP
    Warrior +50~55HP
    Thief 16~20HP
    Bowman +16~20HP
    Magician +10~20HP
    Pirate +20HP (+40HP for Brawlers)

    As Pheelo has compared both methods:
    Method 1 VS Method 2
     
    ikiru, Catalyst, Andriks and 7 others like this.
  18. Oldie
    Offline

    Oldie Well-Known Member

    Joined:
    Jun 6, 2014
    Messages:
    862
    Likes Received:
    257
    Location:
    PureNoob
    Country Flag:
    IGN:
    OldRanger
    Level:
    255
    Guild:
    Noobs
    ...? I used to do real HP Washing.

    This is where you take points in and out of HP. (You lost less HP than you gained when doing so)

    Does this not work here?
     
  19. Doritos
    Offline

    Doritos Donator

    Joined:
    Feb 13, 2014
    Messages:
    620
    Likes Received:
    363
    Location:
    Xanadu
    Country Flag:
    IGN:
    RoughKnight
    You can test it if you want, but if it was more efficient per reset chances are someone would have tested it already.
     
  20. LowTierPage
    Offline

    LowTierPage Well-Known Member

    Joined:
    Apr 15, 2014
    Messages:
    152
    Likes Received:
    75
    IGN:
    DavidBowie
    With this method could you just work on getting your MP pool nice and fat with base int/int equips and then mass HP wash at level 120?
     

Share This Page