summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt4
-rw-r--r--db/Changelog.txt4
-rw-r--r--db/exp.txt4
-rw-r--r--db/item_db.txt58
-rw-r--r--db/job_db1.txt152
-rw-r--r--db/job_db2.txt4
-rw-r--r--db/size_fix.txt8
-rw-r--r--db/skill_require_db.txt38
-rw-r--r--src/map/battle.c41
-rw-r--r--src/map/pc.c15
-rw-r--r--src/map/status.c50
-rw-r--r--src/map/status.h2
12 files changed, 205 insertions, 175 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 0535a79ab..591ff4b11 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -5,6 +5,10 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. EV
GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS
2006/03/08
+ * More work on ninja/gs. Which made me do... [Vicious]
+ - Add more weapon type(17~21 for guns) [Vicious]
+ - Included MAX_WEAPON_TYPE in status.h and updated the codes
+ (Whose idea was it to do static number... esp dual weapon) [Vicious]
* Fixed a bug that was making the no_spawn_on_player setting useless.
[Skotlex]
* Added Deadly Poison and Bleeding to status_get_sc_def, meaning that now
diff --git a/db/Changelog.txt b/db/Changelog.txt
index 8660073f0..1f710045d 100644
--- a/db/Changelog.txt
+++ b/db/Changelog.txt
@@ -27,6 +27,10 @@
=========================
03/08
+ * More work on Ninja/GS. They have joblvl 70, according to status
+ on kRO site, so using adv. classes' job exp chart. [Vicious]
+ * Updated stat bonus, given by Muad_Dib. [Vicious]
+ * Added more columns to size_fix and job_db1.txt with temp value. [Vicious]
* Fixed cooldown time for ASC_CDP, according to description [Foruken]
03/07
* Temp ninja/gs skill tree. [Vicious]
diff --git a/db/exp.txt b/db/exp.txt
index 8eb732cf7..71b89eaa6 100644
--- a/db/exp.txt
+++ b/db/exp.txt
@@ -9,7 +9,7 @@
//Job - 1st Classes
50,1:2:3:4:5:6:26:4024:4025:4026:4027:4028:4029:4046,1,30,43,58,76,116,180,220,272,336,520,604,699,802,948,1125,1668,1937,2226,3040,3988,5564,6272,7021,9114,11473,15290,16891,18570,23229,28359,36478,39716,43088,52417,62495,78160,84175,90404,107611,125915,153941,191781,204351,248352,286212,386371,409795,482092,509596
//Job - 2nd Classes
-50,7:8:9:10:11:12:13:14:15:16:17:18:19:20:21:24:25:4030:4031:4032:4033:4034:4035:4036:4037:4038:4039:4040:4041:4042:4043:4044:4049,1,144,184,284,348,603,887,1096,1598,2540,3676,4290,4946,6679,9492,12770,14344,16005,20642,27434,35108,38577,42206,52708,66971,82688,89544,96669,117821,144921,174201,186677,199584,238617,286366,337147,358435,380376,447685,526989,610246,644736,793535,921810,1106758,1260955,1487304,1557657,1990632,2083386
+50,7:8:9:10:11:12:13:14:15:16:17:18:19:20:21:4030:4031:4032:4033:4034:4035:4036:4037:4038:4039:4040:4041:4042:4043:4044:4049,1,144,184,284,348,603,887,1096,1598,2540,3676,4290,4946,6679,9492,12770,14344,16005,20642,27434,35108,38577,42206,52708,66971,82688,89544,96669,117821,144921,174201,186677,199584,238617,286366,337147,358435,380376,447685,526989,610246,644736,793535,921810,1106758,1260955,1487304,1557657,1990632,2083386
//Job - Super Novice
99,23:4045,1,30,43,58,76,116,180,220,272,336,520,604,699,802,948,1125,1668,1937,2226,3040,3988,5564,6272,7021,9114,11473,15290,16891,18570,23229,28359,36478,39716,43088,52417,62495,78160,84175,90404,107611,125915,153941,191781,204351,248352,286212,386371,409795,482092,509596,982092,992092,1002092,1012092,1022092,1032092,1042092,1052092,1062092,1072092,1082092,1092092,1102092,1112092,1122092,1132092,1142092,1152092,1162092,1172092,1182092,1192092,1202092,1212092,1222092,1232092,1242092,1252092,1262092,1272092,1282092,1292092,1302092,1312092,1322092,1332092,1342092,1352092,1362092,1372092,1382092,1392092,1402092,1412092,1422092,1432092,1442092,1452092,1462092
//Job - Novice High
@@ -17,6 +17,6 @@
//Job - Adv First Classes
50,4002:4003:4004:4005:4006:4007,1,60,86,116,152,232,360,440,544,672,1040,1208,1398,1604,1896,2250,3336,3874,4452,6080,7976,11128,12544,14042,18228,28683,38225,42228,46425,58073,70898,91195,99290,107720,131043,156238,195408,210430,226010,269028,314788,384853,479453,510878,620880,715530,965928,1024488,1205230,1273990
//Job - Adv Second Classes
-70,4008:4009:4010:4011:4012:4013:4014:4015:4016:4017:4018:4019:4020:4021:4022,1,288,368,568,696,1206,1774,2192,3196,5080,7352,8580,9892,13358,18984,31925,35860,40013,51605,68585,87770,96443,105515,131770,167428,206720,223860,241673,294553,362303,479053,513362,548856,656197,787507,927154,985696,1046034,1231134,1449220,1678177,1773024,2182221,2534978,3043585,3782865,4461912,4672971,5971896,6250158,6875174,7562691,8318960,9150856,10065942,11877812,14015818,16538655,19515624,23028437,28094693,34275525,41816141,51015692,62239144,79666104,101972614,130524946,167071930,213852071
+70,24:25:4008:4009:4010:4011:4012:4013:4014:4015:4016:4017:4018:4019:4020:4021:4022,1,288,368,568,696,1206,1774,2192,3196,5080,7352,8580,9892,13358,18984,31925,35860,40013,51605,68585,87770,96443,105515,131770,167428,206720,223860,241673,294553,362303,479053,513362,548856,656197,787507,927154,985696,1046034,1231134,1449220,1678177,1773024,2182221,2534978,3043585,3782865,4461912,4672971,5971896,6250158,6875174,7562691,8318960,9150856,10065942,11877812,14015818,16538655,19515624,23028437,28094693,34275525,41816141,51015692,62239144,79666104,101972614,130524946,167071930,213852071
//Job - Star Gladiator
50,4047:4048,1,27434,27434,27434,27434,27434,27434,27434,27434,27434,27434,27434,27434,27434,27434,27434,27434,27434,27434,54868,70216,77154,84412,105416,133942,165376,179088,193338,235642,289842,348402,373354,399168,477234,572732,674294,716870,760752,895370,1053978,1220492,1289472,1587070,1843620,2213516,2521910,2974608,3115314,3981264,4166772
diff --git a/db/item_db.txt b/db/item_db.txt
index 29aed0ffa..1c2cf591a 100644
--- a/db/item_db.txt
+++ b/db/item_db.txt
@@ -2377,26 +2377,26 @@
//12141,Fifth_Stage,Fifth Stage,2,,10,,,,,,127918079,7,2,,,,,,{}
// Guns
-13150,Branch,Branch,4,10,,500,20,,9,3,134217728,7,2,2,1,1,1,,{}
-13100,Six_Shooter,Six Shooter,4,10,,400,30,,9,1,134217728,7,2,2,1,1,1,,{ bonus bHit,-10; }
-13101,Six_Shooter,Six Shooter,4,10,,400,30,,9,2,134217728,7,2,2,1,1,1,,{ bonus bHit,-10; }
-13102,Crimson_Bolt,Crimson Bolt,4,10,,450,45,,9,1,134217728,7,2,2,2,6,1,,{ bonus bHit,-10; }
-13103,Crimson_Bolt_,Crimson Bolt,4,10,,450,45,,9,2,134217728,7,2,2,2,6,1,,{ bonus bHit,-10; }
+13150,Branch,Branch,4,10,,500,20,,9,3,134217728,7,2,2,1,1,1,18,{}
+13100,Six_Shooter,Six Shooter,4,10,,400,30,,9,1,134217728,7,2,2,1,1,1,17,{ bonus bHit,-10; }
+13101,Six_Shooter,Six Shooter,4,10,,400,30,,9,2,134217728,7,2,2,1,1,1,17,{ bonus bHit,-10; }
+13102,Crimson_Bolt,Crimson Bolt,4,10,,450,45,,9,1,134217728,7,2,2,2,6,1,17,{ bonus bHit,-10; }
+13103,Crimson_Bolt_,Crimson Bolt,4,10,,450,45,,9,2,134217728,7,2,2,2,6,1,17,{ bonus bHit,-10; }
13104,Garrison,Garrison,4,10,,500,70,,9,1,134217728,7,2,2,2,22,1,,{ bonus bHit,-10; }
-13105,Garrison_,Garrison,4,10,,500,70,,9,2,134217728,7,2,2,2,22,1,,{ bonus bHit,-10; }
-13106,Gold_Lux,Gold Lux,4,10,,500,20,,9,0,134217728,7,2,2,3,12,1,,{ bonus bHit,-10; }
-13151,Cyclone,Cyclone,4,10,,700,130,,9,1,134217728,7,2,2,2,24,1,,{ bonus bHit,10; bonus bCritical,10; }
-13152,Cyclone_,Cyclone,4,10,,700,130,,9,2,134217728,7,2,2,2,24,1,,{ bonus bHit,10; bonus bCritical,10; }
-13153,Dusk,Dusk,4,10,,750,160,,9,1,134217728,7,2,2,1,1,1,,{ bonus bHit,10; bonus bCritical,10; }
-13154,Rolling_Stone,Rolling Stone,4,10,,900,135,,9,1,134217728,7,2,2,1,14,1,,{ bonus bSplashRange,1; }
-13155,Black_Rose,Black Rose,4,10,,900,180,,9,1,134217728,7,2,2,2,35,1,,{ bonus bSplashRange,1; }
-13156,Gate_Keeper,Gate Keeper,4,10,,1000,195,,9,0,134217728,7,2,2,2,6,1,,{ bonus bSplashRange,1; }
-13157,Drifter,Drifter,4,10,,2300,50,,9,1,134217728,7,2,2,2,55,1,,{}
-13158,Butcher,Butcher,4,10,,2500,75,,9,1,134217728,7,2,2,2,68,1,,{ bonus2 bCriticalAddRace,RC_Brute,5; }
-13159,Butcher_,Butcher,4,10,,2500,75,,9,2,134217728,7,2,2,2,68,1,,{ bonus2 bCriticalAddRace,RC_Brute,5; }
-13160,Destroyer,Destroyer,4,10,,1200,220,,9,0,134217728,7,2,2,2,52,1,,{ bonus bHit,-10; } //break armor at close range
-13161,Destroyer_,Destroyer,4,10,,1200,220,,9,1,134217728,7,2,2,2,52,1,,{ bonus bHit,-10; } //break armor at close range
-13162,Inferno,Inferno,4,10,,1250,280,,9,1,134217728,7,2,2,2,65,1,,{}
+13105,Garrison_,Garrison,4,10,,500,70,,9,2,134217728,7,2,2,2,22,1,17,{ bonus bHit,-10; }
+13106,Gold_Lux,Gold Lux,4,10,,500,20,,9,0,134217728,7,2,2,3,12,1,17,{ bonus bHit,-10; }
+13151,Cyclone,Cyclone,4,10,,700,130,,9,1,134217728,7,2,2,2,24,1,18,{ bonus bHit,10; bonus bCritical,10; }
+13152,Cyclone_,Cyclone,4,10,,700,130,,9,2,134217728,7,2,2,2,24,1,18,{ bonus bHit,10; bonus bCritical,10; }
+13153,Dusk,Dusk,4,10,,750,160,,9,1,134217728,7,2,2,1,1,1,18,{ bonus bHit,10; bonus bCritical,10; }
+13154,Rolling_Stone,Rolling Stone,4,10,,900,135,,9,1,134217728,7,2,2,1,14,1,19,{ bonus bSplashRange,1; }
+13155,Black_Rose,Black Rose,4,10,,900,180,,9,1,134217728,7,2,2,2,35,1,19,{ bonus bSplashRange,1; }
+13156,Gate_Keeper,Gate Keeper,4,10,,1000,195,,9,0,134217728,7,2,2,2,6,1,19,{ bonus bSplashRange,1; }
+13157,Drifter,Drifter,4,10,,2300,50,,9,1,134217728,7,2,2,2,55,1,20,{}
+13158,Butcher,Butcher,4,10,,2500,75,,9,1,134217728,7,2,2,2,68,1,20,{ bonus2 bCriticalAddRace,RC_Brute,5; }
+13159,Butcher_,Butcher,4,10,,2500,75,,9,2,134217728,7,2,2,2,68,1,20,{ bonus2 bCriticalAddRace,RC_Brute,5; }
+13160,Destroyer,Destroyer,4,10,,1200,220,,9,0,134217728,7,2,2,2,52,1,21,{ bonus bHit,-10; } //break armor at close range
+13161,Destroyer_,Destroyer,4,10,,1200,220,,9,1,134217728,7,2,2,2,52,1,21,{ bonus bHit,-10; } //break armor at close range
+13162,Inferno,Inferno,4,10,,1250,280,,9,1,134217728,7,2,2,2,65,1,21,{}
// Bullets
13200,Bullet,Bullet,10,1,,2,10,,,,134217728,7,2,32768,,1,,,{}
@@ -2427,16 +2427,16 @@
7524,Fang_,Fang,3,10,,10,,,,,,7,2,,,,,,{}
// Ninja Weapons
-13006,Gokurin,Gokurin,4,10,,1000,140,,1,0,268435456,7,2,2,4,45,1,19,{ bonus2 bAddEff,Eff_Curse,500; }
-13007,Jitte,Jitte,4,10,,1000,140,,1,0,268435456,7,2,2,4,45,1,20,{ bonus bBreakWeaponRate,500; }
-13008,Jitte_,Jitte,4,10,,1000,140,,1,0,268435456,7,2,2,4,45,1,21,{ bonus bBreakWeaponRate,500; }
-13009,Kamaitachi,Kamaitachi,4,10,,1000,140,,1,0,268435456,7,2,2,4,45,1,22,{ bonus bCritical,1; }
-13010,Ashura,Ashura,4,0,,1000,140,,1,0,268435456,7,2,2,4,45,1,23,{}
-13011,Ashura_,Ashura,4,0,,1000,140,,1,0,268435456,7,2,2,4,45,1,,{}
-13012,Murasame,Murasame,4,10,,1000,140,,1,0,268435456,7,2,2,4,45,1,,{ bonus2 bCriticalAddRace,RC_DemiHuman,5; }
-13013,Murasame_,Murasame,4,10,,1000,140,,1,0,268435456,7,2,2,4,45,1,,{}
-13014,Hakujin,Hakujin,4,10,,1000,140,,1,0,268435456,7,2,2,4,45,1,,{ bonus4 bAutoSpell,28,10,20,0; }
-13015,Hakujin_,Hakujin,4,10,,1000,140,,1,0,268435456,7,2,2,4,45,1,,{ bonus4 bAutoSpell,28,10,20,0; }
+13006,Gokurin,Gokurin,4,10,,1000,140,,1,0,268435456,7,2,2,4,45,1,1,{ bonus2 bAddEff,Eff_Curse,500; }
+13007,Jitte,Jitte,4,10,,1000,140,,1,0,268435456,7,2,2,4,45,1,1,{ bonus bBreakWeaponRate,500; }
+13008,Jitte_,Jitte,4,10,,1000,140,,1,0,268435456,7,2,2,4,45,1,1,{ bonus bBreakWeaponRate,500; }
+13009,Kamaitachi,Kamaitachi,4,10,,1000,140,,1,0,268435456,7,2,2,4,45,1,1,{ bonus bCritical,1; }
+13010,Ashura,Ashura,4,0,,1000,140,,1,0,268435456,7,2,2,4,45,1,1,{}
+13011,Ashura_,Ashura,4,0,,1000,140,,1,0,268435456,7,2,2,4,45,1,1,{}
+13012,Murasame,Murasame,4,10,,1000,140,,1,0,268435456,7,2,2,4,45,1,2,{ bonus2 bCriticalAddRace,RC_DemiHuman,5; }
+13013,Murasame_,Murasame,4,10,,1000,140,,1,0,268435456,7,2,2,4,45,1,2,{}
+13014,Hakujin,Hakujin,4,10,,1000,140,,1,0,268435456,7,2,2,4,45,1,2,{ bonus4 bAutoSpell,28,10,20,0; }
+13015,Hakujin_,Hakujin,4,10,,1000,140,,1,0,268435456,7,2,2,4,45,1,2,{ bonus4 bAutoSpell,28,10,20,0; }
// Ninja Kazema Shurikens
13300,Kazemashuriken_Beneki,Kazemashuriken Beneki,4,10,,1500,80,,1,0,268435456,7,2,2,1,3,1,,{}
diff --git a/db/job_db1.txt b/db/job_db1.txt
index cc0b31029..20f332bd3 100644
--- a/db/job_db1.txt
+++ b/db/job_db1.txt
@@ -1,155 +1,155 @@
// Job-specific Values Database
//
// Structure of Database:
-// JobID,Weight,HPFactor,HPMultiplicator,SPFactor,BareFist,Dagger,1HSword,2HSword,1HSpear,2HSpear,1HAxe,2HAxe,1HMace,2HMace(unused),Rod,Bow,Knuckle,Instrument,Whip,Book,Katar
+// JobID,Weight,HPFactor,HPMultiplicator,SPFactor,BareFist,Dagger,1HSword,2HSword,1HSpear,2HSpear,1HAxe,2HAxe,1HMace,2HMace(unused),Rod,Bow,Knuckle,Instrument,Whip,Book,Katar,Revolver,Rifle,Shotgun,Gatling Gun,Grenade Launcher
//
// Novice
-0, 20000,0 ,500 ,100 ,500 ,650 ,700 ,2000 ,2000 ,2000 ,800 ,2000 ,700 ,700 ,650 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+0, 20000,0 ,500 ,100 ,500 ,650 ,700 ,2000 ,2000 ,2000 ,800 ,2000 ,700 ,700 ,650 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Swordman
-1, 28000,70 ,500 ,200 ,400 ,500 ,550 ,600 ,650 ,700 ,700 ,750 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+1, 28000,70 ,500 ,200 ,400 ,500 ,550 ,600 ,650 ,700 ,700 ,750 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Magician
-2, 22000,30 ,500 ,600 ,500 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+2, 22000,30 ,500 ,600 ,500 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Archer
-3, 26000,50 ,500 ,200 ,400 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,700 ,2000 ,2000 ,2000 ,2000 ,2000
+3, 26000,50 ,500 ,200 ,400 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Acolyte
-4, 24000,40 ,500 ,500 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600 ,600 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4, 24000,40 ,500 ,500 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600 ,600 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Merchant
-5, 28000,40 ,500 ,300 ,400 ,600 ,700 ,2000 ,2000 ,2000 ,700 ,750 ,700 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+5, 28000,40 ,500 ,300 ,400 ,600 ,700 ,2000 ,2000 ,2000 ,700 ,750 ,700 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Thief
-6, 24000,50 ,500 ,200 ,400 ,500 ,650 ,2000 ,2000 ,2000 ,800 ,2000 ,2000 ,2000 ,2000 ,800 ,2000 ,2000 ,2000 ,2000 ,2000
+6, 24000,50 ,500 ,200 ,400 ,500 ,650 ,2000 ,2000 ,2000 ,800 ,2000 ,2000 ,2000 ,2000 ,800 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Knight
-7, 28000,150 ,500 ,300 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+7, 28000,150 ,500 ,300 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Priest
-8, 26000,75 ,500 ,800 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600 ,600 ,600 ,2000 ,2000 ,2000 ,2000 ,600 ,2000
+8, 26000,75 ,500 ,800 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600 ,600 ,600 ,2000 ,2000 ,2000 ,2000 ,600 ,2000 ,2000, 2000, 2000, 2000, 2000
// Wizard
-9, 24000,55 ,500 ,900 ,500 ,575 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,625 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+9, 24000,55 ,500 ,900 ,500 ,575 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,625 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Blacksmith
-10, 30000,90 ,500 ,400 ,400 ,600 ,650 ,2000 ,2000 ,2000 ,650 ,650 ,675 ,675 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+10, 30000,90 ,500 ,400 ,400 ,600 ,650 ,2000 ,2000 ,2000 ,650 ,650 ,675 ,675 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Hunter
-11, 27000,85 ,500 ,400 ,400 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600 ,2000 ,2000 ,2000 ,2000 ,2000
+11, 27000,85 ,500 ,400 ,400 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Assassin
-12, 24000,110 ,500 ,400 ,400 ,500 ,650 ,2000 ,2000 ,2000 ,800 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,500
+12, 24000,110 ,500 ,400 ,400 ,500 ,650 ,2000 ,2000 ,2000 ,800 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,500 ,2000, 2000, 2000, 2000, 2000
// Knight (Peco)
-13, 28000,150 ,500 ,300 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+13, 28000,150 ,500 ,300 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Crusader
-14, 28000,110 ,700 ,470 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+14, 28000,110 ,700 ,470 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Monk
-15, 26000,90 ,650 ,470 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,575 ,575 ,575 ,2000 ,475 ,2000 ,2000 ,2000 ,2000
+15, 26000,90 ,650 ,470 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,575 ,575 ,575 ,2000 ,475 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Sage
-16, 24000,75 ,500 ,700 ,450 ,525 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,625 ,2000 ,2000 ,2000 ,2000 ,550 ,2000
+16, 24000,75 ,500 ,700 ,450 ,525 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,625 ,2000 ,2000 ,2000 ,2000 ,550 ,2000 ,2000, 2000, 2000, 2000, 2000
// Rogue
-17, 24000,85 ,500 ,500 ,400 ,500 ,550 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,650 ,2000 ,2000 ,2000 ,2000 ,2000
+17, 24000,85 ,500 ,500 ,400 ,500 ,550 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,650 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Alchemist
-18, 30000,90 ,500 ,400 ,400 ,550 ,575 ,2000 ,2000 ,2000 ,675 ,700 ,650 ,650 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+18, 30000,90 ,500 ,400 ,400 ,550 ,575 ,2000 ,2000 ,2000 ,675 ,700 ,650 ,650 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Bard
-19, 27000,75 ,300 ,600 ,400 ,550 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,650 ,2000 ,575 ,2000 ,2000 ,2000
+19, 27000,75 ,300 ,600 ,400 ,550 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,650 ,2000 ,575 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Dancer
-20, 27000,75 ,300 ,600 ,400 ,550 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,650 ,2000 ,2000 ,575 ,2000 ,2000
+20, 27000,75 ,300 ,600 ,400 ,550 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,650 ,2000 ,2000 ,575 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Crusader (Peco)
-21, 28000,110 ,700 ,470 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+21, 28000,110 ,700 ,470 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Wedding
-22, 20000,0 ,500 ,100 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+22, 20000,0 ,500 ,100 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Super Novice
-23, 20000,0 ,500 ,100 ,500 ,650 ,700 ,2000 ,2000 ,2000 ,800 ,2000 ,700 ,700 ,650 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+23, 20000,0 ,500 ,100 ,500 ,650 ,700 ,2000 ,2000 ,2000 ,800 ,2000 ,700 ,700 ,650 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Gunslinger
-24, 20000,75 ,300 ,600 ,400 ,550 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,650 ,2000 ,575 ,2000 ,2000 ,2000
+24, 20000,75 ,300 ,600 ,400 ,550 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,650 ,2000 ,575 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Ninja
-25, 20000,110 ,500 ,400 ,400 ,500 ,650 ,2000 ,2000 ,2000 ,800 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,500
+25, 20000,110 ,500 ,400 ,400 ,500 ,650 ,2000 ,2000 ,2000 ,800 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,500 ,2000, 2000, 2000, 2000, 2000
// Novice High
-4001, 20000,0 ,500 ,100 ,500 ,650 ,700 ,2000 ,2000 ,2000 ,800 ,2000 ,700 ,700 ,650 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4001, 20000,0 ,500 ,100 ,500 ,650 ,700 ,2000 ,2000 ,2000 ,800 ,2000 ,700 ,700 ,650 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Swordman High
-4002, 28000,70 ,500 ,200 ,400 ,500 ,550 ,600 ,650 ,700 ,700 ,750 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4002, 28000,70 ,500 ,200 ,400 ,500 ,550 ,600 ,650 ,700 ,700 ,750 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Magician High
-4003, 22000,30 ,500 ,600 ,500 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4003, 22000,30 ,500 ,600 ,500 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Archer High
-4004, 26000,50 ,500 ,200 ,400 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,700 ,2000 ,2000 ,2000 ,2000 ,2000
+4004, 26000,50 ,500 ,200 ,400 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Acolyte High
-4005, 24000,40 ,500 ,500 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600 ,600 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4005, 24000,40 ,500 ,500 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600 ,600 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Merchant High
-4006, 28000,40 ,500 ,300 ,400 ,600 ,700 ,2000 ,2000 ,2000 ,700 ,750 ,700 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4006, 28000,40 ,500 ,300 ,400 ,600 ,700 ,2000 ,2000 ,2000 ,700 ,750 ,700 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Thief High
-4007, 24000,50 ,500 ,200 ,400 ,500 ,650 ,2000 ,2000 ,2000 ,800 ,2000 ,2000 ,2000 ,2000 ,800 ,2000 ,2000 ,2000 ,2000 ,2000
+4007, 24000,50 ,500 ,200 ,400 ,500 ,650 ,2000 ,2000 ,2000 ,800 ,2000 ,2000 ,2000 ,2000 ,800 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Lord Knight
-4008, 28000,150 ,500 ,300 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4008, 28000,150 ,500 ,300 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// High Priest
-4009, 26000,75 ,500 ,800 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600 ,600 ,600 ,2000 ,2000 ,2000 ,2000 ,600 ,2000
+4009, 26000,75 ,500 ,800 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600 ,600 ,600 ,2000 ,2000 ,2000 ,2000 ,600 ,2000 ,2000, 2000, 2000, 2000, 2000
// High Wizard
-4010, 24000,55 ,500 ,900 ,500 ,575 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,625 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4010, 24000,55 ,500 ,900 ,500 ,575 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,625 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Whitesmith
-4011, 30000,90 ,500 ,400 ,400 ,600 ,650 ,2000 ,2000 ,2000 ,650 ,650 ,675 ,675 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4011, 30000,90 ,500 ,400 ,400 ,600 ,650 ,2000 ,2000 ,2000 ,650 ,650 ,675 ,675 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Sniper
-4012, 27000,85 ,500 ,400 ,400 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600 ,2000 ,2000 ,2000 ,2000 ,2000
+4012, 27000,85 ,500 ,400 ,400 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Assassin Cross
-4013, 24000,110 ,500 ,400 ,400 ,500 ,650 ,2000 ,2000 ,2000 ,800 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,500
+4013, 24000,110 ,500 ,400 ,400 ,500 ,650 ,2000 ,2000 ,2000 ,800 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,500 ,2000, 2000, 2000, 2000, 2000
// Lord Knight (Peco)
-4014, 28000,150 ,500 ,300 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4014, 28000,150 ,500 ,300 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Paladin
-4015, 28000,110 ,700 ,470 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4015, 28000,110 ,700 ,470 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Champion
-4016, 26000,90 ,650 ,470 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,575 ,575 ,575 ,2000 ,475 ,2000 ,2000 ,2000 ,2000
+4016, 26000,90 ,650 ,470 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,575 ,575 ,575 ,2000 ,475 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Professor
-4017, 24000,75 ,500 ,700 ,450 ,525 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,625 ,2000 ,2000 ,2000 ,2000 ,550 ,2000
+4017, 24000,75 ,500 ,700 ,450 ,525 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,625 ,2000 ,2000 ,2000 ,2000 ,550 ,2000 ,2000, 2000, 2000, 2000, 2000
// Stalker
-4018, 24000,85 ,500 ,500 ,400 ,500 ,550 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,650 ,2000 ,2000 ,2000 ,2000 ,2000
+4018, 24000,85 ,500 ,500 ,400 ,500 ,550 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,650 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Creator
-4019, 30000,90 ,500 ,400 ,400 ,550 ,575 ,2000 ,2000 ,2000 ,675 ,700 ,650 ,650 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4019, 30000,90 ,500 ,400 ,400 ,550 ,575 ,2000 ,2000 ,2000 ,675 ,700 ,650 ,650 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Clown
-4020, 27000,75 ,300 ,600 ,400 ,550 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,650 ,2000 ,575 ,2000 ,2000 ,2000
+4020, 27000,75 ,300 ,600 ,400 ,550 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,650 ,2000 ,575 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Gypsy
-4021, 27000,75 ,300 ,600 ,400 ,550 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,650 ,2000 ,2000 ,575 ,2000 ,2000
+4021, 27000,75 ,300 ,600 ,400 ,550 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,650 ,2000 ,2000 ,575 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Paladin (Peco)
-4022, 28000,110 ,700 ,470 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4022, 28000,110 ,700 ,470 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Baby Novice
-4023, 20000,0 ,500 ,100 ,500 ,650 ,700 ,2000 ,2000 ,2000 ,800 ,2000 ,700 ,700 ,650 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4023, 20000,0 ,500 ,100 ,500 ,650 ,700 ,2000 ,2000 ,2000 ,800 ,2000 ,700 ,700 ,650 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Baby Swordman
-4024, 28000,70 ,500 ,200 ,400 ,500 ,550 ,600 ,650 ,700 ,700 ,750 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4024, 28000,70 ,500 ,200 ,400 ,500 ,550 ,600 ,650 ,700 ,700 ,750 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Baby Magician
-4025, 22000,30 ,500 ,600 ,500 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4025, 22000,30 ,500 ,600 ,500 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Baby Archer
-4026, 26000,50 ,500 ,200 ,400 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,700 ,2000 ,2000 ,2000 ,2000 ,2000
+4026, 26000,50 ,500 ,200 ,400 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Baby Acolyte
-4027, 24000,40 ,500 ,500 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600 ,600 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4027, 24000,40 ,500 ,500 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600 ,600 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Baby Merchant
-4028, 28000,40 ,500 ,300 ,400 ,600 ,700 ,2000 ,2000 ,2000 ,700 ,750 ,700 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4028, 28000,40 ,500 ,300 ,400 ,600 ,700 ,2000 ,2000 ,2000 ,700 ,750 ,700 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Baby Thief
-4029, 24000,50 ,500 ,200 ,400 ,500 ,650 ,2000 ,2000 ,2000 ,800 ,2000 ,2000 ,2000 ,2000 ,800 ,2000 ,2000 ,2000 ,2000 ,2000
+4029, 24000,50 ,500 ,200 ,400 ,500 ,650 ,2000 ,2000 ,2000 ,800 ,2000 ,2000 ,2000 ,2000 ,800 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Baby Knight
-4030, 28000,150 ,500 ,300 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4030, 28000,150 ,500 ,300 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Baby Priest
-4031, 26000,75 ,500 ,800 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600 ,600 ,600 ,2000 ,2000 ,2000 ,2000 ,600 ,2000
+4031, 26000,75 ,500 ,800 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600 ,600 ,600 ,2000 ,2000 ,2000 ,2000 ,600 ,2000 ,2000, 2000, 2000, 2000, 2000
// Baby Wizard
-4032, 24000,55 ,500 ,900 ,500 ,575 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,625 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4032, 24000,55 ,500 ,900 ,500 ,575 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,625 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Baby Blacksmith
-4033, 30000,90 ,500 ,400 ,400 ,600 ,650 ,2000 ,2000 ,2000 ,650 ,650 ,675 ,675 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4033, 30000,90 ,500 ,400 ,400 ,600 ,650 ,2000 ,2000 ,2000 ,650 ,650 ,675 ,675 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Baby Hunter
-4034, 27000,85 ,500 ,400 ,400 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600 ,2000 ,2000 ,2000 ,2000 ,2000
+4034, 27000,85 ,500 ,400 ,400 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Baby Assassin
-4035, 24000,110 ,500 ,400 ,400 ,500 ,650 ,2000 ,2000 ,2000 ,800 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,500
+4035, 24000,110 ,500 ,400 ,400 ,500 ,650 ,2000 ,2000 ,2000 ,800 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,500 ,2000, 2000, 2000, 2000, 2000
// Baby Knight (Peco)
-4036, 28000,150 ,500 ,300 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4036, 28000,150 ,500 ,300 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Baby Crusader
-4037, 28000,110 ,700 ,470 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4037, 28000,110 ,700 ,470 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Baby Monk
-4038, 26000,90 ,650 ,470 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,575 ,575 ,575 ,2000 ,475 ,2000 ,2000 ,2000 ,2000
+4038, 26000,90 ,650 ,470 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,575 ,575 ,575 ,2000 ,475 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Baby Sage
-4039, 24000,75 ,500 ,700 ,450 ,525 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,625 ,2000 ,2000 ,2000 ,2000 ,550 ,2000
+4039, 24000,75 ,500 ,700 ,450 ,525 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,625 ,2000 ,2000 ,2000 ,2000 ,550 ,2000 ,2000, 2000, 2000, 2000, 2000
// Baby Rogue
-4040, 24000,85 ,500 ,500 ,400 ,500 ,550 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,650 ,2000 ,2000 ,2000 ,2000 ,2000
+4040, 24000,85 ,500 ,500 ,400 ,500 ,550 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,650 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Baby Alchemist
-4041, 30000,90 ,500 ,400 ,400 ,550 ,575 ,2000 ,2000 ,2000 ,675 ,700 ,650 ,650 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4041, 30000,90 ,500 ,400 ,400 ,550 ,575 ,2000 ,2000 ,2000 ,675 ,700 ,650 ,650 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Baby Bard
-4042, 27000,75 ,300 ,600 ,400 ,550 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,650 ,2000 ,575 ,2000 ,2000 ,2000
+4042, 27000,75 ,300 ,600 ,400 ,550 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,650 ,2000 ,575 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Baby Dancer
-4043, 27000,75 ,300 ,600 ,400 ,550 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,650 ,2000 ,2000 ,575 ,2000 ,2000
+4043, 27000,75 ,300 ,600 ,400 ,550 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,650 ,2000 ,2000 ,575 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Baby Crusader (Peco)
-4044, 28000,110 ,700 ,470 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4044, 28000,110 ,700 ,470 ,400 ,500 ,500 ,550 ,600 ,600 ,700 ,700 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Baby Super Novice
-4045, 20000,0 ,500 ,100 ,500 ,650 ,700 ,2000 ,2000 ,2000 ,800 ,2000 ,700 ,700 ,650 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4045, 20000,0 ,500 ,100 ,500 ,650 ,700 ,2000 ,2000 ,2000 ,800 ,2000 ,700 ,700 ,650 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Taekwon
-4046, 26000,67 ,500 ,470 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4046, 26000,67 ,500 ,470 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
// Star Knight
-4047, 24000,80 ,650 ,700 ,450 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,550 ,2000
+4047, 24000,80 ,650 ,700 ,450 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,550 ,2000 ,2000, 2000, 2000, 2000, 2000
// Star Knight (flying)
-4048, 24000,80 ,650 ,700 ,450 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,550 ,2000
+4048, 24000,80 ,650 ,700 ,450 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,550 ,2000 ,2000, 2000, 2000, 2000, 2000
// Soul Linker
-4049, 24000,55 ,500 ,900 ,500 ,575 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,625 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4049, 24000,55 ,500 ,900 ,500 ,575 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,625 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000, 2000, 2000, 2000, 2000
diff --git a/db/job_db2.txt b/db/job_db2.txt
index 69571320b..9ec29924b 100644
--- a/db/job_db2.txt
+++ b/db/job_db2.txt
@@ -59,6 +59,10 @@
// 22: Wedding
// Super Novice
23,1,0,2,0,3,0,4,0,5,0,6,0,1,0,2,0,3,0,4,0,5,0,6,0,1,0,2,0,3,0,4,0,5,0,6,0,1,0,2,0,3,0,4,0,5,0,6,0,1,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+// Gunslinger
+24,5,6,0,6,0,5,0,0,0,0,5,6,0,0,0,0,5,0,0,0,6,0,0,0,5,0,0,0,0,0,6,1,0,0,0,5,0,0,0,0,1,0,0,0,5,0,0,0,0,1,0,4,0,0,5,0,0,0,2,3,4,5,6,1,0,0,0,0,0,0
+// Ninja
+25,1,1,0,0,0,0,0,0,0,5,0,0,1,0,0,0,0,0,2,4,0,5,0,0,0,0,0,0,4,6,2,0,4,0,0,0,0,0,0,6,2,4,5,0,0,0,0,0,0,0,2,6,5,0,0,0,0,0,0,3,2,4,0,6,0,0,0,0,0,0
// Novice High
4001,0,6,5,0,2,3,0,1,4,0
// Swordman High
diff --git a/db/size_fix.txt b/db/size_fix.txt
index cc0e824a7..829bbc636 100644
--- a/db/size_fix.txt
+++ b/db/size_fix.txt
@@ -1,7 +1,7 @@
// Database for size fix for weapon damage.
//Columns: Weapon type, Rows: Target size.
-//Bare Fist,Knife,1H Sword, 2H Sword,1H Spear, 2H Spears, 1H Axe, 2H Axe, Mace, ?, Staff, Bow, Knuckle, Musical Instrument, Whip, Book, Katar
-100,100, 75, 75, 75, 75, 50, 50, 75,100,100,100,100, 75, 75,100, 75, // Size: Small
-100, 75,100, 75, 75, 75, 75, 75,100,100,100,100, 75,100,100,100,100, // Size: Medium
-100, 50, 75,100,100,100,100,100,100,100,100, 75, 50, 75, 50, 50, 75, // Size: Large
+//Bare Fist,Knife,1H Sword, 2H Sword,1H Spear, 2H Spears, 1H Axe, 2H Axe, Mace, ?, Staff, Bow, Knuckle, Musical Instrument, Whip, Book, Katar, Revolver, Rifle, Shotgun, Gatling Gun, Grenade Launcher
+100,100, 75, 75, 75, 75, 50, 50, 75,100,100,100,100, 75, 75,100, 75,100,100,100,100,100, // Size: Small
+100, 75,100, 75, 75, 75, 75, 75,100,100,100,100, 75,100,100,100,100,100,100,100,100,100, // Size: Medium
+100, 50, 75,100,100,100,100,100,100,100,100, 75, 50, 75, 50, 50, 75,100,100,100,100,100, // Size: Large
diff --git a/db/skill_require_db.txt b/db/skill_require_db.txt
index ce8dbe335..c4e3fd94c 100644
--- a/db/skill_require_db.txt
+++ b/db/skill_require_db.txt
@@ -388,25 +388,25 @@
498,0,0,200,0,0,0,99,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0//AM_TWILIGHT3#ƒgƒ?ƒCƒ‰ƒCƒgƒtƒ@?[ƒ}ƒV?[3#
499,0,0,8,0,0,0,11,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //HT_POWER#ƒr?[ƒXƒgƒXƒgƒŒƒCƒsƒ“ƒO#
//temp plugs
-500,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_GLITTERING
-501,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_FLING
-502,0,0,10,0,0,0,0,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_TRIPLEACTION
-503,0,0,10,0,0,0,0,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_BULLSEYE
-504,0,0,10,0,0,0,0,none,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_MADNESSCANCEL
-505,0,0,10,0,0,0,0,none,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_ADJUSTMENT
-506,0,0,10,0,0,0,0,none,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_INCREASING
-507,0,0,10,0,0,0,0,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_MAGICALBULLET
-508,0,0,10,0,0,0,0,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_CRACKER
-512,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_TRACKING
-513,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_DISARM
-514,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_PIERCINGSHOT
-515,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_RAPIDSHOWER
-516,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_DESPERADO
-517,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_GATLINGFEVER
-518,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_DUST
-519,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_FULLBUSTER
-520,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_SPREADATTACK
-521,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_GROUNDDRIFT
+500,0,0,10,0,0,0,99,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_GLITTERING
+501,0,0,10,0,0,0,17:18:19:20:21,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_FLING
+502,0,0,10,0,0,0,17:18:19:20:21,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_TRIPLEACTION
+503,0,0,10,0,0,0,17:18:19:20:21,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_BULLSEYE
+504,0,0,10,0,0,0,17:18:19:20:21,none,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_MADNESSCANCEL
+505,0,0,10,0,0,0,17:18:19:20:21,none,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_ADJUSTMENT
+506,0,0,10,0,0,0,17:18:19:20:21,none,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_INCREASING
+507,0,0,10,0,0,0,17:18:19:20:21,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_MAGICALBULLET
+508,0,0,10,0,0,0,17:18:19:20:21,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_CRACKER
+512,0,0,10,0,0,0,17:18,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_TRACKING
+513,0,0,10,0,0,0,17:18,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_DISARM
+514,0,0,10,0,0,0,17:18,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_PIERCINGSHOT
+515,0,0,10,0,0,0,17,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_RAPIDSHOWER
+516,0,0,10,0,0,0,17,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_DESPERADO
+517,0,0,10,0,0,0,20,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_GATLINGFEVER
+518,0,0,10,0,0,0,19,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_DUST
+519,0,0,10,0,0,0,19,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_FULLBUSTER
+520,0,0,10,0,0,0,19,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_SPREADATTACK
+521,0,0,10,0,0,0,21,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_GROUNDDRIFT
523,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NJ_SYURIKEN
524,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NJ_KUNAI
525,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NJ_HUUMA
diff --git a/src/map/battle.c b/src/map/battle.c
index fbd3b5f21..b75bf0f16 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -911,17 +911,18 @@ int battle_addmastery(struct map_session_data *sd,struct block_list *target,int
}
break;
}
- case 0x11: // Place holder for guns
+ case 0x11: // Revolver
+ case 0x12: // Rifle
+ case 0x13: // Shotgun
+ case 0x14: //Gatling Gun
+ case 0x15: //Grenade Launcher
break;
- case 0x12: // place holder for shrikens
- {
- if((skill = pc_checkskill(sd,NJ_TOBIDOUGU)) > 0) {
- //Advanced Katar Research by zanetheinsane
- damage += (skill * 3);
- }
- break;
- }
}
+/*//need to add this on shuriken skills.
+ if((skill = pc_checkskill(sd,NJ_TOBIDOUGU)) > 0) {
+ damage += (skill * 3);
+ }
+*/
return (damage);
}
/*==========================================
@@ -1159,7 +1160,8 @@ static struct Damage battle_calc_weapon_attack(
}
}
//Set miscellaneous data that needs be filled regardless of hit/miss
- if(sd && sd->status.weapon == 11) {
+ if(sd && (sd->status.weapon == 11 || sd->status.weapon == 17 || sd->status.weapon == 18
+ || sd->status.weapon == 19 || sd->status.weapon == 20 || sd->status.weapon == 21)) {
wd.flag=(wd.flag&~BF_RANGEMASK)|BF_LONG;
flag.arrow = 1;
} else if (status_get_range(src) > 3)
@@ -1246,6 +1248,10 @@ static struct Damage battle_calc_weapon_attack(
case NJ_HUUMA:
flag.arrow = 1;
break;
+
+ case GS_MAGICALBULLET:
+ flag.arrow = 0;
+ break;
}
}
@@ -1311,7 +1317,7 @@ static struct Damage battle_calc_weapon_attack(
flag.rh=0;
flag.lh=1;
}
- if(sd->status.weapon > 16)
+ if(sd->status.weapon > MAX_WEAPON_TYPE)
flag.rh = flag.lh = 1;
}
@@ -1559,7 +1565,7 @@ static struct Damage battle_calc_weapon_attack(
//Add any bonuses that modify the base baseatk+watk (pre-skills)
if(sd)
{
- if (sd->status.weapon < 16 && (sd->atk_rate != 100 || sd->weapon_atk_rate[sd->status.weapon] != 0))
+ if (sd->status.weapon < MAX_WEAPON_TYPE && (sd->atk_rate != 100 || sd->weapon_atk_rate[sd->status.weapon] != 0))
ATK_RATE(sd->atk_rate + sd->weapon_atk_rate[sd->status.weapon]);
if(flag.cri && sd->crit_atk_rate)
@@ -2251,7 +2257,7 @@ static struct Damage battle_calc_weapon_attack(
wd.div_=skill_get_num(TF_DOUBLE,skill_lv?skill_lv:1);
wd.type = 0x08;
}
- } else if (( (skill_lv = 5*pc_checkskill(sd,GS_CHAINACTION)) > 0 && sd->weapontype1 == 0x01) ||
+ } else if (( (skill_lv = 5*pc_checkskill(sd,GS_CHAINACTION)) > 0 && sd->weapontype1 == 0x11) ||
sd->double_rate > 0) // Copied double attack
if (rand()%100 < (skill_lv>sd->double_rate?skill_lv:sd->double_rate))
{
@@ -2275,7 +2281,7 @@ static struct Damage battle_calc_weapon_attack(
wd.damage2 = 0;
flag.rh=1;
flag.lh=0;
- } else if(sd->status.weapon > 16)
+ } else if(sd->status.weapon > MAX_WEAPON_TYPE)
{ //Dual-wield
if (wd.damage > 0)
{
@@ -3100,7 +3106,8 @@ int battle_weapon_attack( struct block_list *src,struct block_list *target,
race = status_get_race(target);
ele = status_get_elem_type(target);
- if(sd && sd->status.weapon == 11) {
+ if(sd && (sd->status.weapon == 11 || sd->status.weapon == 17 || sd->status.weapon == 18
+ || sd->status.weapon == 19 || sd->status.weapon == 20 || sd->status.weapon == 21)) {
if(sd->equip_index[10] >= 0) {
if(battle_config.arrow_decrement)
pc_delitem(sd,sd->equip_index[10],1,0);
@@ -3144,7 +3151,7 @@ int battle_weapon_attack( struct block_list *src,struct block_list *target,
}
//Recycled the damage variable rather than use a new one... [Skotlex]
- if(sd && (damage = pc_checkskill(sd,MO_TRIPLEATTACK)) > 0 && sd->status.weapon <= 16) // triple blow works with bows ^^ [celest]
+ if(sd && (damage = pc_checkskill(sd,MO_TRIPLEATTACK)) > 0 && sd->status.weapon <= MAX_WEAPON_TYPE) // triple blow works with bows ^^ [celest]
{
int triple_rate= 30 - damage; //Base Rate
if (sc && sc->data[SC_SKILLRATE_UP].timer!=-1 && sc->data[SC_SKILLRATE_UP].val1 == MO_TRIPLEATTACK)
@@ -3170,7 +3177,7 @@ int battle_weapon_attack( struct block_list *src,struct block_list *target,
clif_damage(src, target, tick, wd.amotion, wd.dmotion, wd.damage, wd.div_ , wd.type, wd.damage2);
//“ρ“?—¬?ΆŽθ‚ΖƒJƒ^?[ƒ‹’ΗŒ‚‚Μƒ~ƒX•\Ž¦(–³—?‚β‚θ?`)
- if(sd && sd->status.weapon >= 16 && wd.damage2 == 0)
+ if(sd && sd->status.weapon >= MAX_WEAPON_TYPE && wd.damage2 == 0)
clif_damage(src, target, tick+10, wd.amotion, wd.dmotion,0, 1, 0, 0);
if (sd && sd->splash_range > 0 && damage > 0)
diff --git a/src/map/pc.c b/src/map/pc.c
index b5c078d06..b57ae27d2 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -507,20 +507,20 @@ int pc_calcweapontype(struct map_session_data *sd)
if(sd->weapontype1 == 0 && sd->weapontype2 != 0)// ΆŽθ•Šν Only
sd->status.weapon = sd->weapontype2;
else if(sd->weapontype1 == 1 && sd->weapontype2 == 1)// ?’Z?
- sd->status.weapon = 0x11;
+ sd->status.weapon = MAX_WEAPON_TYPE+1;
else if(sd->weapontype1 == 2 && sd->weapontype2 == 2)// ??Žθ?
- sd->status.weapon = 0x12;
+ sd->status.weapon = MAX_WEAPON_TYPE+2;
else if(sd->weapontype1 == 6 && sd->weapontype2 == 6)// ??Žθ•€
- sd->status.weapon = 0x13;
+ sd->status.weapon = MAX_WEAPON_TYPE+3;
else if( (sd->weapontype1 == 1 && sd->weapontype2 == 2) ||
(sd->weapontype1 == 2 && sd->weapontype2 == 1) ) // ’Z? - ?Žθ?
- sd->status.weapon = 0x14;
+ sd->status.weapon = MAX_WEAPON_TYPE+4;
else if( (sd->weapontype1 == 1 && sd->weapontype2 == 6) ||
(sd->weapontype1 == 6 && sd->weapontype2 == 1) ) // ’Z? - •€
- sd->status.weapon = 0x15;
+ sd->status.weapon = MAX_WEAPON_TYPE+5;
else if( (sd->weapontype1 == 2 && sd->weapontype2 == 6) ||
(sd->weapontype1 == 6 && sd->weapontype2 == 2) ) // ?Žθ? - •€
- sd->status.weapon = 0x16;
+ sd->status.weapon = MAX_WEAPON_TYPE+6;
else
sd->status.weapon = sd->weapontype1;
@@ -4335,7 +4335,8 @@ int pc_attack_timer(int tid,unsigned int tick,int id,int data)
return 0;
}
- if(sd->status.weapon == 11 && sd->equip_index[10] < 0)
+ if((sd->status.weapon == 11 || sd->status.weapon == 17 || sd->status.weapon == 18
+ || sd->status.weapon == 19 || sd->status.weapon == 20 || sd->status.weapon == 21)&& sd->equip_index[10] < 0)
{
clif_arrow_fail(sd,0);
return 0;
diff --git a/src/map/status.c b/src/map/status.c
index 6aff9bb4e..f56436455 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -35,11 +35,11 @@ static int hp_coefficient[MAX_PC_CLASS];
static int hp_coefficient2[MAX_PC_CLASS];
static int hp_sigma_val[MAX_PC_CLASS][MAX_LEVEL];
static int sp_coefficient[MAX_PC_CLASS];
-static int aspd_base[MAX_PC_CLASS][20];
+static int aspd_base[MAX_PC_CLASS][MAX_WEAPON_TYPE];
#define MAX_REFINE_BONUS 5
static int refinebonus[MAX_REFINE_BONUS][3]; // Έ˜Bƒ{[ƒiƒXƒe[ƒuƒ‹(refine_db.txt)
int percentrefinery[5][MAX_REFINE+1]; // Έ˜B¬Œχ—¦(refine_db.txt)
-static int atkmods[3][20]; // •ŠνATKƒTƒCƒYC³(size_fix.txt)
+static int atkmods[3][MAX_WEAPON_TYPE]; // •ŠνATKƒTƒCƒYC³(size_fix.txt)
static char job_bonus[MAX_PC_CLASS][MAX_LEVEL];
int current_equip_item_index; //Contains inventory index of an equipped item. To pass it into the EQUP_SCRIPT [Lupus]
@@ -1069,6 +1069,11 @@ int status_calc_pc(struct map_session_data* sd,int first)
case 11: // Bows
case 13: // Musical Instruments
case 14: // Whips
+ case 17: // Revolver
+ case 18: // Rifle
+ case 19: // Shotgun
+ case 20: //Gatling Gun
+ case 21: //Grenade Launcher
str = sd->paramc[4];
dex = sd->paramc[0];
break;
@@ -1159,10 +1164,11 @@ int status_calc_pc(struct map_session_data* sd,int first)
if(sd->status.weapon == 11)
sd->attackrange += skill;
}
- if((skill=pc_checkskill(sd,GS_SINGLEACTION))>0 && (sd->status.weapon == 11)){ //temp until we get gun id
+ if((skill=pc_checkskill(sd,GS_SINGLEACTION))>0 && (sd->status.weapon == 17 || sd->status.weapon == 18
+ || sd->status.weapon == 19 || sd->status.weapon == 20 || sd->status.weapon == 21))
sd->hit += 2*skill;
- }
- if((skill=pc_checkskill(sd,GS_SNAKEEYE))>0 && (sd->status.weapon == 11)){ //temp until we get gun id
+ if((skill=pc_checkskill(sd,GS_SNAKEEYE))>0 && (sd->status.weapon == 17 || sd->status.weapon == 18
+ || sd->status.weapon == 19 || sd->status.weapon == 20 || sd->status.weapon == 21)) {
sd->hit += skill;
sd->attackrange += skill;
}
@@ -1323,7 +1329,7 @@ int status_calc_pc(struct map_session_data* sd,int first)
// Unlike other stats, ASPD rate modifiers from skills/SCs/items/etc are first all added together, then the final modifier is applied
// Basic ASPD value
- if (sd->status.weapon <= 16)
+ if (sd->status.weapon < MAX_WEAPON_TYPE)
sd->aspd += aspd_base[sd->status.class_][sd->status.weapon]-(sd->paramc[1]*4+sd->paramc[4])*aspd_base[sd->status.class_][sd->status.weapon]/1000;
else
sd->aspd += (
@@ -1340,9 +1346,9 @@ int status_calc_pc(struct map_session_data* sd,int first)
if(pc_isriding(sd))
sd->aspd_rate += 50-10*pc_checkskill(sd,KN_CAVALIERMASTERY);
- if((skill=pc_checkskill(sd,GS_SINGLEACTION))>0 && (sd->status.weapon == 11)){ //temp until we get gun id
+ if((skill=pc_checkskill(sd,GS_SINGLEACTION))>0 && (sd->status.weapon == 17 || sd->status.weapon == 18
+ || sd->status.weapon == 19 || sd->status.weapon == 20 || sd->status.weapon == 21))
sd->aspd_rate -= (int)(skill / 2);
- }
// Relative modifiers from status changes (shared between PC and NPC)
sd->aspd_rate = status_calc_aspd_rate(&sd->bl,sd->aspd_rate);
@@ -1830,11 +1836,12 @@ int status_calc_batk(struct block_list *bl, int batk)
if(sc->data[SC_SKE].timer!=-1)
batk += batk * 3;
if(sc->data[SC_JOINTBEAT].timer!=-1 && sc->data[SC_JOINTBEAT].val2==4)
- batk -= batk * 25/100;
+ batk -= batk * 25/100;
if(sc->data[SC_CURSE].timer!=-1)
- batk -= batk * 25/100;
- if(sc->data[SC_BLEEDING].timer != -1)
batk -= batk * 25/100;
+//Curse shouldn't effect on this?
+// if(sc->data[SC_BLEEDING].timer != -1)
+// batk -= batk * 25/100;
}
return batk;
@@ -2191,8 +2198,9 @@ int status_calc_aspd_rate(struct block_list *bl, int aspd_rate)
aspd_rate += 25;
if(sc->data[SC_GRAVITATION].timer!=-1)
aspd_rate += sc->data[SC_GRAVITATION].val2;
- if(sc->data[SC_BLEEDING].timer != -1)
- aspd_rate += 25;
+//Curse shouldn't effect on this?
+// if(sc->data[SC_BLEEDING].timer != -1)
+// aspd_rate += 25;
if(sc->data[SC_JOINTBEAT].timer!=-1) {
if (sc->data[SC_JOINTBEAT].val2 == 1)
aspd_rate += 25;
@@ -2686,7 +2694,7 @@ int status_get_batk(struct block_list *bl)
if(bl->type==BL_PC) {
batk = ((struct map_session_data *)bl)->base_atk;
- if (((struct map_session_data *)bl)->status.weapon < 16)
+ if (((struct map_session_data *)bl)->status.weapon < MAX_WEAPON_TYPE)
batk += ((struct map_session_data *)bl)->weapon_atk[((struct map_session_data *)bl)->status.weapon];
} else {
int str,dstr;
@@ -5293,7 +5301,7 @@ int status_change_timer(int tid, unsigned int tick, int id, int data)
// - υσϊμͺΞͺήͺή«΅?«ΠμΉΤΡͺδ«κ«ν«°ͺ·ͺΖͺβ?ΝύͺΟαΌͺ¨ͺΚͺ€
// To-do: bleeding effect increases damage taken?
if ((sc->data[type].val4 -= 10000) >= 0) {
- int hp = rand()%300 + 400;
+ int hp = rand()%600 + 200;
if(sd) {
pc_heal(sd,-hp,0);
} else if(bl->type == BL_MOB) {
@@ -5671,7 +5679,7 @@ int status_readdb(void) {
return 1;
}
while(fgets(line, sizeof(line)-1, fp)){
- char *split[23];
+ char *split[MAX_WEAPON_TYPE + 5];
if(line[0]=='/' && line[1]=='/')
continue;
for(j=0,p=line;j<22 && p;j++){
@@ -5687,7 +5695,7 @@ int status_readdb(void) {
hp_coefficient[atoi(split[0])]=atoi(split[2]);
hp_coefficient2[atoi(split[0])]=atoi(split[3]);
sp_coefficient[atoi(split[0])]=atoi(split[4]);
- for(j=0;j<17;j++)
+ for(j=0;j<MAX_WEAPON_TYPE;j++)
aspd_base[atoi(split[0])][j]=atoi(split[j+5]);
}
fclose(fp);
@@ -5719,7 +5727,7 @@ int status_readdb(void) {
// ƒTƒCƒY•β³ƒe?ƒuƒ‹
for(i=0;i<3;i++)
- for(j=0;j<20;j++)
+ for(j=0;j<MAX_WEAPON_TYPE;j++)
atkmods[i][j]=100;
sprintf(path, "%s/size_fix.txt", db_path);
fp=fopen(path,"r");
@@ -5729,18 +5737,18 @@ int status_readdb(void) {
}
i=0;
while(fgets(line, sizeof(line)-1, fp)){
- char *split[20];
+ char *split[MAX_WEAPON_TYPE];
if(line[0]=='/' && line[1]=='/')
continue;
if(atoi(line)<=0)
continue;
memset(split,0,sizeof(split));
- for(j=0,p=line;j<20 && p;j++){
+ for(j=0,p=line;j<MAX_WEAPON_TYPE && p;j++){
split[j]=p;
p=strchr(p,',');
if(p) *p++=0;
}
- for(j=0;j<20 && split[j];j++)
+ for(j=0;j<MAX_WEAPON_TYPE && split[j];j++)
atkmods[i][j]=atoi(split[j]);
i++;
}
diff --git a/src/map/status.h b/src/map/status.h
index d1315b394..5ca71ce6a 100644
--- a/src/map/status.h
+++ b/src/map/status.h
@@ -524,6 +524,8 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int
#define MAX_REFINE 10
extern int percentrefinery[5][MAX_REFINE+1]; //The last slot always has a 0% success chance [Skotlex]
+#define MAX_WEAPON_TYPE 21
+
int status_readdb(void);
int do_init_status(void);