From 3e0e62675685bf18ef5ab0a12cdd97834462a0e4 Mon Sep 17 00:00:00 2001 From: Vicious Date: Thu, 9 Mar 2006 05:43:51 +0000 Subject: * included MAX_WEAPON_SIZE for flexible weapon types * more ninja/GS work git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5527 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 4 ++ db/Changelog.txt | 4 ++ db/exp.txt | 4 +- db/item_db.txt | 58 +++++++++--------- db/job_db1.txt | 152 ++++++++++++++++++++++++------------------------ db/job_db2.txt | 4 ++ db/size_fix.txt | 8 +-- db/skill_require_db.txt | 38 ++++++------ src/map/battle.c | 41 +++++++------ src/map/pc.c | 15 ++--- src/map/status.c | 50 +++++++++------- src/map/status.h | 2 + 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