From e75627d6dc8ef479555dafc0c3c2ad52753f9120 Mon Sep 17 00:00:00 2001 From: Vicious Date: Wed, 8 Mar 2006 02:31:16 +0000 Subject: @job ninja/gs. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5506 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 1 + conf-tmpl/msg_athena.conf | 2 + db/item_db.txt | 120 ++++++++++---------- db/skill_tree.txt | 108 +++++++++--------- src/map/atcommand.c | 2 +- src/map/map.h | 272 +++++++++++++++++++++++----------------------- src/map/pc.c | 16 ++- 7 files changed, 267 insertions(+), 254 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 382eb9270..61188b61a 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -5,6 +5,7 @@ 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/07 + * @job ninja/gunslinger. No skill tree or anything yet. [Vicious] * Gospel won't start taking effect until after 10 secs have passed since invocation. [Skotlex] * Now if a skill has inf set to 4 (self skill) and inf2 512 (cannot target diff --git a/conf-tmpl/msg_athena.conf b/conf-tmpl/msg_athena.conf index af87144c1..00d54932b 100644 --- a/conf-tmpl/msg_athena.conf +++ b/conf-tmpl/msg_athena.conf @@ -498,6 +498,8 @@ 616: Taekwon 617: Star Gladiator 618: Soul Linker +619: Gunslinger +620: Ninja //... 650: Unknown Job diff --git a/db/item_db.txt b/db/item_db.txt index 6d757609c..e82b40477 100644 --- a/db/item_db.txt +++ b/db/item_db.txt @@ -2377,74 +2377,74 @@ //12141,Fifth_Stage,Fifth Stage,2,,10,,,,,,127918079,7,2,,,,,,{} // Guns -//13100,Branch,Branch,,,,,,,,,,,,,,,,,{} //Slot: 3 -//13101,Six_Shooter,Six Shooter,,,,,,,,,,,,,,,,,{} //Slot: 1 -//13102,Six_Shooter_,Six Shooter,,,,,,,,,,,,,,,,,{} //Slot: 2 -//13103,Crimson_Bolt,Crimson Bolt,,,,,,,,,,,,,,,,,{} //Slot: 1 -//13104,Crimson_Bolt_,Crimson Bolt,,,,,,,,,,,,,,,,,{} //Slot: 2 -//13105,Garrison,Garrison,,,,,,,,,,,,,,,,,{} //Slot: 1 -//13106,Garrison_,Garrison,,,,,,,,,,,,,,,,,{} //Slot: 2 -//13107,Gold_Lux,Gold Lux,,,,,,,,,,,,,,,,,{} //Slot: 0 -//13108,Cyclone,Cyclone,,,,,,,,,,,,,,,,,{} //Slot: 1 -//13109,Cyclone_,Cyclone,,,,,,,,,,,,,,,,,{} //Slot: 2 -//13110,Dusk,Dusk,,,,,,,,,,,,,,,,,{} //Slot: 1 -//13111,Rolling_Stone,Rolling Stone,,,,,,,,,,,,,,,,,{} //Slot: 1 -//13112,Black_Rose,Black Rose,,,,,,,,,,,,,,,,,{} //Slot: 1 -//13113,Gate_Keeper,Gate Keeper,,,,,,,,,,,,,,,,,{} //Slot: 0 -//13114,Drifter,Drifter,,,,,,,,,,,,,,,,,{} //Slot: 1 -//13115,Butcher,Butcher,,,,,,,,,,,,,,,,,{} //Slot: 1 -//13116,Butcher_,Butcher,,,,,,,,,,,,,,,,,{} //Slot: 2 -//13117,Destroyer,Destroyer,,,,,,,,,,,,,,,,,{} //Slot: 0 -//13118,Destroyer_,Destroyer,,,,,,,,,,,,,,,,,{} //Slot: 1 -//13119,Inferno,Inferno,,,,,,,,,,,,,,,,,{} //Slot: 1 +13100,Branch,Branch,4,10,,500,20,,9,3,134217728,0,2,2,1,1,1,,{} +13101,Six_Shooter,Six Shooter,4,10,,400,30,,9,1,134217728,0,2,2,1,1,1,,{ bonus bHit,-10; } +13102,Six_Shooter,Six Shooter,4,10,,400,30,,9,2,134217728,0,2,2,1,1,1,,{ bonus bHit,-10; } +13103,Crimson_Bolt,Crimson Bolt,4,10,,450,45,,9,1,134217728,0,2,2,2,6,1,,{ bonus bHit,-10; } +13104,Crimson_Bolt_,Crimson Bolt,4,10,,450,45,,9,2,134217728,0,2,2,2,6,1,,{ bonus bHit,-10; } +13105,Garrison,Garrison,4,10,,500,70,,9,1,134217728,0,2,2,2,22,1,,{ bonus bHit,-10; } +13106,Garrison_,Garrison,4,10,,500,70,,9,2,134217728,0,2,2,2,22,1,,{ bonus bHit,-10; } +13107,Gold_Lux,Gold Lux,4,10,,500,20,,9,0,134217728,0,2,2,3,12,1,,{ bonus bHit,-10; } +13108,Cyclone,Cyclone,4,10,,700,130,,9,1,134217728,0,2,2,2,24,1,,{ bonus bHit,10; bonus bCritical,10; } +13109,Cyclone_,Cyclone,4,10,,700,130,,9,2,134217728,0,2,2,2,24,1,,{ bonus bHit,10; bonus bCritical,10; } +13110,Dusk,Dusk,4,10,,750,160,,9,1,134217728,0,2,2,1,1,1,,{ bonus bHit,10; bonus bCritical,10; } +13111,Rolling_Stone,Rolling Stone,4,10,,900,135,,9,1,134217728,0,2,2,1,14,1,,{ bonus bSplashRange,1; } +13112,Black_Rose,Black Rose,4,10,,900,180,,9,1,134217728,0,2,2,2,35,1,,{ bonus bSplashRange,1; } +13113,Gate_Keeper,Gate Keeper,4,10,,1000,195,,9,0,134217728,0,2,2,2,6,1,,{ bonus bSplashRange,1; } +13114,Drifter,Drifter,4,10,,2300,50,,9,1,134217728,0,2,2,2,55,1,,{} +13115,Butcher,Butcher,4,10,,2500,75,,9,1,134217728,0,2,2,2,68,1,,{ bonus2 bCriticalAddRace,RC_Brute,5; } +13116,Butcher_,Butcher,4,10,,2500,75,,9,2,134217728,0,2,2,2,68,1,,{ bonus2 bCriticalAddRace,RC_Brute,5; } +13117,Destroyer,Destroyer,4,10,,1200,220,,9,0,134217728,0,2,2,2,52,1,,{ bonus bHit,-10; } //break armor at close range +13118,Destroyer_,Destroyer,4,10,,1200,220,,9,1,134217728,0,2,2,2,52,1,,{ bonus bHit,-10; } //break armor at close range +13119,Inferno,Inferno,4,10,,1250,280,,9,1,134217728,0,2,2,2,65,1,,{} // Bullets -//13200,Bullet,Bullet,,,,,,,,,,,,,,,,,{} -//13201,Silver_Bullet,Silver Bullet,,,,,,,,,,,,,,,,,{} -//13202,Shell_of_Blood,Shell of Blood,,,,,,,,,,,,,,,,,{} -//13203,Flare_Sphere,Flare Sphere,,,,,,,,,,,,,,,,,{} -//13204,Lightning_Sphere,Lightning Sphere,,,,,,,,,,,,,,,,,{} -//13205,Poison_Sphere,Poison Sphere,,,,,,,,,,,,,,,,,{} -//13206,Blind_Sphere,Blind Sphere,,,,,,,,,,,,,,,,,{} -//13207,Freezing_Sphere,Freezing Sphere,,,,,,,,,,,,,,,,,{} +13200,Bullet,Bullet,10,1,,2,10,,,,134217728,7,2,32768,,1,,,{} +13201,Silver_Bullet,Silver Bullet,10,1,,2,15,,,,134217728,7,2,32768,,1,,,{ bonus bAtkEle,Ele_Holy; } +13202,Shell_of_Blood,Shell of Blood,10,1,,2,30,,,,134217728,7,2,32768,,1,,,{ bonus2 bAddEff,Eff_Bleeding,500; } +13203,Flare_Sphere,Flare Sphere,10,1,,5,50,,,,134217728,7,2,32768,,1,,,{ bonus bAtkEle,Ele_Fire; } +13204,Lightning_Sphere,Lightning Sphere,10,1,,5,50,,,,134217728,7,2,32768,,1,,,{ bonus bAtkEle,Ele_Wind; } +13205,Poison_Sphere,Poison Sphere,10,1,,5,50,,,,134217728,7,2,32768,,1,,,{ bonus2 bAddEff,Eff_Poison,500; } +13206,Blind_Sphere,Blind Sphere,10,1,,5,50,,,,134217728,7,2,32768,,1,,,{ bonus2 bAddEff,Eff_Blind,500; } +13207,Freezing_Sphere,Freezing Sphere,10,1,,5,50,,,,134217728,7,2,32768,,1,,,{ bonus bAtkEle,Ele_Water; } // Shurikens & Kunais -//13250,Shuriken,Shuriken,,,,,,,,,,,,,,,,,{} -//13251,Raincloud_Shuriken,Raincloud Shuriken,,,,,,,,,,,,,,,,,{} -//13252,Flash_Shuriken,Flash Shuriken,,,,,,,,,,,,,,,,,{} -//13253,Pointed_Leaf_Shuriken,Pointed Leaf Shuriken,,,,,,,,,,,,,,,,,{} -//13254,Piercing_Thorn_Shuriken,Piercing Thorn Shuriken,,,,,,,,,,,,,,,,,{} -//13255,Kunai_of_Frozen_Icicle,Kunai of Frozen Icicle,,,,,,,,,,,,,,,,,{} -//13256,Kunai_of_Black_Earth,Kunai of Black Earth,,,,,,,,,,,,,,,,,{} -//13257,Kunai_of_Violent_Winds,Kunai of Violent Winds,,,,,,,,,,,,,,,,,{} -//13258,Kunai_of_Fierce_Heat,Kunai of Fierce Heat,,,,,,,,,,,,,,,,,{} -//13259,Kunai_of_Deadly_Poison,Kunai of Deadly Poison,,,,,,,,,,,,,,,,,{} +13250,Shuriken,Shuriken,10,1,,10,10,,,,268435456,7,2,32768,,1,,,{} +13251,Raincloud_Shuriken,Raincloud Shuriken,10,1,,20,30,,,,268435456,7,2,32768,,1,,,{} +13252,Flash_Shuriken,Flash Shuriken,10,1,,30,45,,,,268435456,7,2,32768,,1,,,{} +13253,Pointed_Leaf_Shuriken,Pointed Leaf Shuriken,10,1,,30,70,,,,268435456,7,2,32768,,1,,,{} +13254,Piercing_Thorn_Shuriken,Piercing Thorn Shuriken,10,1,,20,100,,,,268435456,7,2,32768,,1,,,{} +13255,Kunai_of_Frozen_Icicle,Kunai of Frozen Icicle,10,1,,50,30,,,,268435456,7,2,32768,,1,,,{} bonus bAtkEle,Ele_Water; } +13256,Kunai_of_Black_Earth,Kunai of Black Earth,10,1,,50,30,,,,268435456,7,2,32768,,1,,,{} bonus bAtkEle,Ele_Earth; } +13257,Kunai_of_Violent_Winds,Kunai of Violent Winds,10,1,,50,30,,,,268435456,7,2,32768,,1,,,{} bonus bAtkEle,Ele_Wind; } +13258,Kunai_of_Fierce_Heat,Kunai of Fierce Heat,10,1,,50,30,,,,268435456,7,2,32768,,1,,,{} bonus bAtkEle,Ele_Fire; } +13259,Kunai_of_Deadly_Poison,Kunai of Deadly Poison,10,1,,50,30,,,,268435456,7,2,32768,,1,,,{} bonus2 bAddEff,Eff_Poison,500; } // Ninja Stones -//7521,Burning_Stone,Burning Stone,,,,,,,,,,,,,,,,,{} -//7522,Freezing_Stone,Freezing Stone,,,,,,,,,,,,,,,,,{} -//7523,Windchime_Stone,Windchime Stone,,,,,,,,,,,,,,,,,{} -//7524,Fang_,Fang,,,,,,,,,,,,,,,,,{} +7521,Burning_Stone,Burning Stone,3,10,,10,,,,,,0,2,,,,,,{} +7522,Freezing_Stone,Freezing Stone,3,10,,10,,,,,,0,2,,,,,,{} +7523,Windchime_Stone,Windchime Stone,3,10,,10,,,,,,0,2,,,,,,{} +7524,Fang_,Fang,3,10,,10,,,,,,0,2,,,,,,{} // Ninja Weapons -//13006,Gokurin,Gokurin,,,,,,,,,,,,,,,,,{} -//13007,Jitte,Jitte,,,,,,,,,,,,,,,,,{} -//13008,Jitte_,Jitte,,,,,,,,,,,,,,,,,{} -//13009,Kamaitachi,Kamaitachi,,,,,,,,,,,,,,,,,{} -//13010,Ashura,Ashura,,,,,,,,,,,,,,,,,{} -//13011,Ashura_,Ashura,,,,,,,,,,,,,,,,,{} -//13012,Murasame,Murasame,,,,,,,,,,,,,,,,,{} -//13013,Murasame_,Murasame,,,,,,,,,,,,,,,,,{} -//13014,Hakujin,Hakujin,,,,,,,,,,,,,,,,,{} -//13015,Hakujin_,Hakujin,,,,,,,,,,,,,,,,,{} +13006,Gokurin,Gokurin,4,10,,1000,140,,1,0,268435456,0,2,2,4,45,1,,{ bonus2 bAddEff,Eff_Curse,500; } +13007,Jitte,Jitte,4,10,,1000,140,,1,0,268435456,0,2,2,4,45,1,,{ bonus bBreakWeaponRate,500; } +13008,Jitte_,Jitte,4,10,,1000,140,,1,0,268435456,0,2,2,4,45,1,,{ bonus bBreakWeaponRate,500; } +13009,Kamaitachi,Kamaitachi,4,10,,1000,140,,1,0,268435456,0,2,2,4,45,1,,{ bonus bCritical,1; } +13010,Ashura,Ashura,4,0,,1000,140,,1,0,268435456,0,2,2,4,45,1,,{} +13011,Ashura_,Ashura,4,0,,1000,140,,1,0,268435456,0,2,2,4,45,1,,{} +13012,Murasame,Murasame,4,10,,1000,140,,1,0,268435456,0,2,2,4,45,1,,{ bonus2 bCriticalAddRace,RC_DemiHuman,5; } +13013,Murasame_,Murasame,4,10,,1000,140,,1,0,268435456,0,2,2,4,45,1,,{} +13014,Hakujin,Hakujin,4,10,,1000,140,,1,0,268435456,0,2,2,4,45,1,,{ bonus4 bAutoSpell,28,10,20,0; } +13015,Hakujin_,Hakujin,4,10,,1000,140,,1,0,268435456,0,2,2,4,45,1,,{ bonus4 bAutoSpell,28,10,20,0; } // Ninja Kazema Shurikens -//13300,Kazemashuriken_Beneki,Kazemashuriken Beneki,,,,,,,,,,,,,,,,,{} -//13301,Kazemashuriken_Daisharin,Kazemashuriken Daisharin,,,,,,,,,,,,,,,,,{} -//13302,Kazemashuriken_Daisharin_,Kazemashuriken Daisharin,,,,,,,,,,,,,,,,,{} -//13303,Kazemashuriken_Rekka,Kazemashuriken Rekka,,,,,,,,,,,,,,,,,{} +13300,Kazemashuriken_Beneki,Kazemashuriken Beneki,4,10,,1500,80,,1,0,268435456,0,2,2,1,3,1,,{} +13301,Kazemashuriken_Daisharin,Kazemashuriken Daisharin,4,10,,1500,80,,1,0,268435456,0,2,2,1,3,1,,{bonus2 bAddEff,Eff_Bleeding,500; } +13302,Kazemashuriken_Daisharin,Kazemashuriken Daisharin,4,10,,1500,80,,1,0,268435456,0,2,2,1,3,1,,{ bonus2 bAddEff,Eff_Bleeding,500; } +13303,Kazemashuriken_Rekka,Kazemashuriken Rekka,4,10,,1500,80,,1,0,268435456,0,2,2,1,3,1,,{ bonus3 bAutoSpell,19,10,100; } -//2117,Gauntlet,Gauntlet,,,,,,,,,,,,,,,,,{} -//2118,Gauntlet_,Gauntlet,,,,,,,,,,,,,,,,,{} -//2119,Superior_Gauntlet,Superior Gauntlet,,,,,,,,,,,,,,,,,{} -//2120,Superior_Gauntlet_,Superior Gauntlet,,,,,,,,,,,,,,,,,{} +2117,Gauntlet,Gauntlet,5,10,,150,,4,,0,268435456,0,2,32,,20,1,,{} +2118,Gauntlet_,Gauntlet,5,10,,150,,4,,1,268435456,0,2,32,,20,1,,{} +2119,Superior_Gauntlet,Superior Gauntlet,5,10,,150,,7,,0,268435456,0,2,32,,30,1,,{} +2120,Superior_Gauntlet_,Superior Gauntlet,5,10,,150,,7,,0,268435456,0,2,32,,30,1,,{} diff --git a/db/skill_tree.txt b/db/skill_tree.txt index 7fe907107..8b7566010 100644 --- a/db/skill_tree.txt +++ b/db/skill_tree.txt @@ -585,6 +585,12 @@ 21,258,10,55,10,0,0,0,0,0,0,0,0 //CR_SPEARQUICKEN#Spear Quicken# 21,1002,1,0,0,0,0,0,0,0,0,0,0 //CR_SHRINK#Shrink# 21,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Call Baby# +//WeddingClass +22,1,9,0,0,0,0,0,0,0,0,0,0 //NV_BASIC#Basic Skill# +22,334,1,0,0,0,0,0,0,0,0,0,0 //WE_MALE#I Will Protect You# +22,335,5,0,0,0,0,0,0,0,0,0,0 //WE_FEMALE#I Look up to You# +22,336,5,0,0,0,0,0,0,0,0,0,0 //WE_CALLPARTNER#I miss You# +22,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Call Baby# //SuperNovice 23,1,9,0,0,0,0,0,0,0,0,0,0 //NV_BASIC#Basic Skill# 23,142,1,0,0,0,0,0,0,0,0,0,0 //NV_FIRSTAID#First Aid# @@ -638,12 +644,53 @@ 23,52,10,0,0,0,0,0,0,0,0,0,0 //TF_POISON#Envenom# 23,53,1,52,3,0,0,0,0,0,0,0,0 //TF_DETOXIFY#Detoxify# 23,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Call Baby# -//WeddingClass -22,1,9,0,0,0,0,0,0,0,0,0,0 //NV_BASIC#Basic Skill# -22,334,1,0,0,0,0,0,0,0,0,0,0 //WE_MALE#I Will Protect You# -22,335,5,0,0,0,0,0,0,0,0,0,0 //WE_FEMALE#I Look up to You# -22,336,5,0,0,0,0,0,0,0,0,0,0 //WE_CALLPARTNER#I miss You# -22,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Call Baby# +//Gunslinger +24,500,5,0,0,0,0,0,0,0,0,0,0 //GS_GLITTERING#Flip the Coin# +24,501,1,0,0,0,0,0,0,0,0,0,0 //GS_FLING#Fling# +24,502,1,0,0,0,0,0,0,0,0,0,0 //GS_TRIPLEACTION#Triple Action# +24,503,1,0,0,0,0,0,0,0,0,0,0 //GS_BULLSEYE#Bulls Eye# +24,504,1,0,0,0,0,0,0,0,0,0,0 //GS_MADNESSCANCEL#Madness Canceler# +24,505,1,0,0,0,0,0,0,0,0,0,0 //GS_ADJUSTMENT#AdJustment# +24,506,1,0,0,0,0,0,0,0,0,0,0 //GS_INCREASING#Increasing Accuracy# +24,507,1,0,0,0,0,0,0,0,0,0,0 //GS_MAGICALBULLET#Magical Bullet# +24,508,1,0,0,0,0,0,0,0,0,0,0 //GS_CRACKER#Cracker# +24,509,10,0,0,0,0,0,0,0,0,0,0 //GS_SINGLEACTION#Single Action# +24,510,10,0,0,0,0,0,0,0,0,0,0 //GS_SNAKEEYE#Snake Eye# +24,511,10,0,0,0,0,0,0,0,0,0,0 //GS_CHAINACTION#Chain Action# +24,512,10,0,0,0,0,0,0,0,0,0,0 //GS_TRACKING#Tracking# +24,513,5,0,0,0,0,0,0,0,0,0,0 //GS_DISARM#Disarm# +24,514,10,0,0,0,0,0,0,0,0,0,0 //GS_PIERCINGSHOT#Piercing Shot# +24,515,10,0,0,0,0,0,0,0,0,0,0 //GS_RAPIDSHOWER#Rapid Shower# +24,516,10,0,0,0,0,0,0,0,0,0,0 //GS_DESPERADO#Desperado# +24,517,10,0,0,0,0,0,0,0,0,0,0 //GS_GATLINGFEVER#Gatling Fever# +24,518,10,0,0,0,0,0,0,0,0,0,0 //GS_DUST#Dust# +24,519,5,0,0,0,0,0,0,0,0,0,0 //GS_FULLBUSTER#Full Buster# +24,520,10,0,0,0,0,0,0,0,0,0,0 //GS_SPREADATTACK#Spread Attack# +24,521,10,0,0,0,0,0,0,0,0,0,0 //GS_GROUNDDRIFT#Ground Drift# +//Ninja +25,522,10,0,0,0,0,0,0,0,0,0,0 //NJ_TOBIDOUGU#NJ_TOBIDOUGU# +25,523,10,0,0,0,0,0,0,0,0,0,0 //NJ_SYURIKEN#NJ_SYURIKEN# +25,524,5,0,0,0,0,0,0,0,0,0,0 //NJ_KUNAI#NJ_KUNAI# +25,525,5,0,0,0,0,0,0,0,0,0,0 //NJ_HUUMA#NJ_HUUMA# +25,526,10,0,0,0,0,0,0,0,0,0,0 //NJ_ZENYNAGE#NJ_ZENYNAGE# +25,527,5,0,0,0,0,0,0,0,0,0,0 //NJ_TATAMIGAESHI#NJ_TATAMIGAESHI# +25,528,10,0,0,0,0,0,0,0,0,0,0 //NJ_KASUMIKIRI#NJ_KASUMIKIRI# +25,529,10,0,0,0,0,0,0,0,0,0,0 //NJ_SHADOWJUMP#NJ_SHADOWJUMP# +25,530,5,0,0,0,0,0,0,0,0,0,0 //NJ_KIRIKAGE#NJ_KIRIKAGE# +25,531,5,0,0,0,0,0,0,0,0,0,0 //NJ_UTSUSEMI#NJ_UTSUSEMI# +25,532,10,0,0,0,0,0,0,0,0,0,0 //NJ_BUNSINJYUTSU#NJ_BUNSINJYUTSU# +25,533,10,0,0,0,0,0,0,0,0,0,0 //NJ_NINPOU#NJ_NINPOU# +25,534,10,0,0,0,0,0,0,0,0,0,0 //NJ_KOUENKA#NJ_KOUENKA# +25,535,10,0,0,0,0,0,0,0,0,0,0 //NJ_KAENSIN#NJ_KAENSIN# +25,536,5,0,0,0,0,0,0,0,0,0,0 //NJ_BAKUENRYU#NJ_BAKUENRYU# +25,537,10,0,0,0,0,0,0,0,0,0,0 //NJ_HYOUSENSOU#NJ_HYOUSENSOU# +25,538,10,0,0,0,0,0,0,0,0,0,0 //NJ_SUITON#NJ_SUITON# +25,539,5,0,0,0,0,0,0,0,0,0,0 //NJ_HYOUSYOURAKU#NJ_HYOUSYOURAKU# +25,540,10,0,0,0,0,0,0,0,0,0,0 //NJ_HUUJIN#NJ_HUUJIN# +25,541,5,0,0,0,0,0,0,0,0,0,0 //NJ_RAIGEKISAI#NJ_RAIGEKISAI# +25,542,5,0,0,0,0,0,0,0,0,0,0 //NJ_KAMAITACHI#NJ_KAMAITACHI# +25,543,5,0,0,0,0,0,0,0,0,0,0 //NJ_NEN#NJ_NEN# +25,544,10,0,0,0,0,0,0,0,0,0,0 //NJ_ISSEN#NJ_ISSEN# //NoviceHigh 4001,1,9,0,0,0,0,0,0,0,0,0,0 //NV_BASIC#Basic Skill# 4001,142,1,0,0,0,0,0,0,0,0,0,0 //NV_FIRSTAID#First Aid# @@ -2123,51 +2170,4 @@ 4049,471,3,452,1,0,0,0,0,0,0,0,0 //SL_SKE#Esk# 4049,472,3,447,1,0,0,0,0,0,0,0,0 //SL_SKA#Eska# 4049,494,5,451,1,0,0,0,0,0,0,0,0 //SL_HIGH#Spirit of Rebirth# -4049,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Call Baby# -//Gunslinger -24,500,5,0,0,0,0,0,0,0,0,0,0 //GS_GLITTERING#Flip the Coin# -24,501,1,0,0,0,0,0,0,0,0,0,0 //GS_FLING#Fling# -24,502,1,0,0,0,0,0,0,0,0,0,0 //GS_TRIPLEACTION#Triple Action# -24,503,1,0,0,0,0,0,0,0,0,0,0 //GS_BULLSEYE#Bulls Eye# -24,504,1,0,0,0,0,0,0,0,0,0,0 //GS_MADNESSCANCEL#Madness Canceler# -24,505,1,0,0,0,0,0,0,0,0,0,0 //GS_ADJUSTMENT#AdJustment# -24,506,1,0,0,0,0,0,0,0,0,0,0 //GS_INCREASING#Increasing Accuracy# -24,507,1,0,0,0,0,0,0,0,0,0,0 //GS_MAGICALBULLET#Magical Bullet# -24,508,1,0,0,0,0,0,0,0,0,0,0 //GS_CRACKER#Cracker# -24,509,10,0,0,0,0,0,0,0,0,0,0 //GS_SINGLEACTION#Single Action# -24,510,10,0,0,0,0,0,0,0,0,0,0 //GS_SNAKEEYE#Snake Eye# -24,511,10,0,0,0,0,0,0,0,0,0,0 //GS_CHAINACTION#Chain Action# -24,512,10,0,0,0,0,0,0,0,0,0,0 //GS_TRACKING#Tracking# -24,513,5,0,0,0,0,0,0,0,0,0,0 //GS_DISARM#Disarm# -24,514,10,0,0,0,0,0,0,0,0,0,0 //GS_PIERCINGSHOT#Piercing Shot# -24,515,10,0,0,0,0,0,0,0,0,0,0 //GS_RAPIDSHOWER#Rapid Shower# -24,516,10,0,0,0,0,0,0,0,0,0,0 //GS_DESPERADO#Desperado# -24,517,10,0,0,0,0,0,0,0,0,0,0 //GS_GATLINGFEVER#Gatling Fever# -24,518,10,0,0,0,0,0,0,0,0,0,0 //GS_DUST#Dust# -24,519,5,0,0,0,0,0,0,0,0,0,0 //GS_FULLBUSTER#Full Buster# -24,520,10,0,0,0,0,0,0,0,0,0,0 //GS_SPREADATTACK#Spread Attack# -24,521,10,0,0,0,0,0,0,0,0,0,0 //GS_GROUNDDRIFT#Ground Drift# -//Ninja -25,522,10,0,0,0,0,0,0,0,0,0,0 //NJ_TOBIDOUGU#NJ_TOBIDOUGU# -25,523,10,0,0,0,0,0,0,0,0,0,0 //NJ_SYURIKEN#NJ_SYURIKEN# -25,524,5,0,0,0,0,0,0,0,0,0,0 //NJ_KUNAI#NJ_KUNAI# -25,525,5,0,0,0,0,0,0,0,0,0,0 //NJ_HUUMA#NJ_HUUMA# -25,526,10,0,0,0,0,0,0,0,0,0,0 //NJ_ZENYNAGE#NJ_ZENYNAGE# -25,527,5,0,0,0,0,0,0,0,0,0,0 //NJ_TATAMIGAESHI#NJ_TATAMIGAESHI# -25,528,10,0,0,0,0,0,0,0,0,0,0 //NJ_KASUMIKIRI#NJ_KASUMIKIRI# -25,529,10,0,0,0,0,0,0,0,0,0,0 //NJ_SHADOWJUMP#NJ_SHADOWJUMP# -25,530,5,0,0,0,0,0,0,0,0,0,0 //NJ_KIRIKAGE#NJ_KIRIKAGE# -25,531,5,0,0,0,0,0,0,0,0,0,0 //NJ_UTSUSEMI#NJ_UTSUSEMI# -25,532,10,0,0,0,0,0,0,0,0,0,0 //NJ_BUNSINJYUTSU#NJ_BUNSINJYUTSU# -25,533,10,0,0,0,0,0,0,0,0,0,0 //NJ_NINPOU#NJ_NINPOU# -25,534,10,0,0,0,0,0,0,0,0,0,0 //NJ_KOUENKA#NJ_KOUENKA# -25,535,10,0,0,0,0,0,0,0,0,0,0 //NJ_KAENSIN#NJ_KAENSIN# -25,536,5,0,0,0,0,0,0,0,0,0,0 //NJ_BAKUENRYU#NJ_BAKUENRYU# -25,537,10,0,0,0,0,0,0,0,0,0,0 //NJ_HYOUSENSOU#NJ_HYOUSENSOU# -25,538,10,0,0,0,0,0,0,0,0,0,0 //NJ_SUITON#NJ_SUITON# -25,539,5,0,0,0,0,0,0,0,0,0,0 //NJ_HYOUSYOURAKU#NJ_HYOUSYOURAKU# -25,540,10,0,0,0,0,0,0,0,0,0,0 //NJ_HUUJIN#NJ_HUUJIN# -25,541,5,0,0,0,0,0,0,0,0,0,0 //NJ_RAIGEKISAI#NJ_RAIGEKISAI# -25,542,5,0,0,0,0,0,0,0,0,0,0 //NJ_KAMAITACHI#NJ_KAMAITACHI# -25,543,5,0,0,0,0,0,0,0,0,0,0 //NJ_NEN#NJ_NEN# -25,544,10,0,0,0,0,0,0,0,0,0,0 //NJ_ISSEN#NJ_ISSEN# +4049,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Call Baby# \ No newline at end of file diff --git a/src/map/atcommand.c b/src/map/atcommand.c index d517cc9e6..b9dd48ae4 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -2263,7 +2263,7 @@ int atcommand_jobchange( { "baby bard", 4042 }, { "baby dancer", 4043 }, { "super baby", 4045 }, - { "taekwon", 4046 }, + { "taekwon", 4046 }, { "taekwon boy", 4046 }, { "taekwon girl", 4046 }, { "star gladiator", 4047 }, diff --git a/src/map/map.h b/src/map/map.h index b73237760..4eeb86957 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -267,12 +267,12 @@ enum { enum { BL_NUL = 0x000, BL_PC = 0x001, - BL_MOB = 0x002, - BL_PET = 0x004, - BL_ITEM = 0x008, - BL_SKILL = 0x010, + BL_MOB = 0x002, + BL_PET = 0x004, + BL_ITEM = 0x008, + BL_SKILL = 0x010, BL_NPC = 0x020, - BL_CHAT = 0x040, + BL_CHAT = 0x040, BL_HOMUNCULUS = 0x080 //[blackhole89] }; @@ -328,34 +328,34 @@ struct vending { }; struct weapon_data { - int atkmods[3]; - // all the variables except atkmods get zero'ed in each call of status_calc_pc + int atkmods[3]; + // all the variables except atkmods get zero'ed in each call of status_calc_pc // NOTE: if you want to add a non-zeroed variable, you need to update the memset call // in status_calc_pc as well! All the following are automatically zero'ed. [Skotlex] - int watk; - int watk2; - int atk_ele; - int overrefine; - int star; - int ignore_def_ele; - int ignore_def_race; - int def_ratio_atk_ele; - int def_ratio_atk_race; - int addele[10]; - int addrace[12]; - int addrace2[12]; - int addsize[3]; - - short ignore_def_mob; - short hp_drain_rate; - short hp_drain_per; - short hp_drain_value; - short sp_drain_rate; - short sp_drain_per; - short sp_drain_value; - short add_damage_classid[MAX_PC_BONUS]; - int add_damage_classrate[MAX_PC_BONUS]; - int add_damage_class_count; + int watk; + int watk2; + int atk_ele; + int overrefine; + int star; + int ignore_def_ele; + int ignore_def_race; + int def_ratio_atk_ele; + int def_ratio_atk_race; + int addele[10]; + int addrace[12]; + int addrace2[12]; + int addsize[3]; + + short ignore_def_mob; + short hp_drain_rate; + short hp_drain_per; + short hp_drain_value; + short sp_drain_rate; + short sp_drain_per; + short sp_drain_value; + short add_damage_classid[MAX_PC_BONUS]; + int add_damage_classrate[MAX_PC_BONUS]; + int add_damage_class_count; }; struct skill_unit_group; @@ -544,40 +544,40 @@ struct map_session_data { struct weapon_data right_weapon; struct weapon_data left_weapon; - int paramc[6],paramcard[6]; - - // here start arrays to be globally zeroed at the beginning of status_calc_pc() - - int paramb[6]; - int parame[6]; - int subele[10]; - int subrace[12]; - int subrace2[12]; - int subsize[3]; - int addeff[SC_COMMON_MAX-SC_COMMON_MIN+1]; - int addeff2[SC_COMMON_MAX-SC_COMMON_MIN+1]; - int reseff[SC_COMMON_MAX-SC_COMMON_MIN+1]; - int weapon_coma_ele[10]; - int weapon_coma_race[12]; - int weapon_atk[16]; - int weapon_atk_rate[16]; - int arrow_addele[10]; - int arrow_addrace[12]; - int arrow_addsize[3]; - int arrow_addeff[SC_COMMON_MAX-SC_COMMON_MIN+1]; - int arrow_addeff2[SC_COMMON_MAX-SC_COMMON_MIN+1]; - int magic_addele[10]; - int magic_addrace[12]; - int magic_addsize[3]; - int critaddrace[12]; - int expaddrace[12]; - int itemhealrate[7]; - int addeff3[SC_COMMON_MAX-SC_COMMON_MIN+1]; - short addeff3_type[SC_COMMON_MAX-SC_COMMON_MIN+1]; - short sp_gain_race[12]; - short unequip_losehp[11]; - short unequip_losesp[11]; - // zeroed arrays end here. + int paramc[6],paramcard[6]; + + // here start arrays to be globally zeroed at the beginning of status_calc_pc() + + int paramb[6]; + int parame[6]; + int subele[10]; + int subrace[12]; + int subrace2[12]; + int subsize[3]; + int addeff[SC_COMMON_MAX-SC_COMMON_MIN+1]; + int addeff2[SC_COMMON_MAX-SC_COMMON_MIN+1]; + int reseff[SC_COMMON_MAX-SC_COMMON_MIN+1]; + int weapon_coma_ele[10]; + int weapon_coma_race[12]; + int weapon_atk[16]; + int weapon_atk_rate[16]; + int arrow_addele[10]; + int arrow_addrace[12]; + int arrow_addsize[3]; + int arrow_addeff[SC_COMMON_MAX-SC_COMMON_MIN+1]; + int arrow_addeff2[SC_COMMON_MAX-SC_COMMON_MIN+1]; + int magic_addele[10]; + int magic_addrace[12]; + int magic_addsize[3]; + int critaddrace[12]; + int expaddrace[12]; + int itemhealrate[7]; + int addeff3[SC_COMMON_MAX-SC_COMMON_MIN+1]; + short addeff3_type[SC_COMMON_MAX-SC_COMMON_MIN+1]; + short sp_gain_race[12]; + short unequip_losehp[11]; + short unequip_losesp[11]; + // zeroed arrays end here. // zeroed structures start here struct s_autospell{ short id, lv, rate, card_id; @@ -594,79 +594,79 @@ struct map_session_data { int race, rate; } add_drop[MAX_PC_BONUS]; // zeroed structures end here - // zeroed vars start here. - int hit; - int flee, flee2; - int critical; - int aspd; - int def, def2; - int mdef, mdef2; - int def_ele; - int matk1, matk2; - int base_atk; - int arrow_atk,arrow_ele,arrow_cri,arrow_hit,arrow_range; - int nhealhp,nhealsp,nshealhp,nshealsp,nsshealhp,nsshealsp; - int critical_def,double_rate; - int long_attack_atk_rate; //Long range atk rate, not weapon based. [Skotlex] - int near_attack_def_rate,long_attack_def_rate,magic_def_rate,misc_def_rate; - int ignore_mdef_ele; - int ignore_mdef_race; - int perfect_hit; - int perfect_hit_add; - int get_zeny_rate; - int get_zeny_num; //Added Get Zeny Rate [Skotlex] - int double_add_rate; - int short_weapon_damage_return,long_weapon_damage_return; - int magic_damage_return; // AppleGirl Was Here - int random_attack_increase_add,random_attack_increase_per; // [Valaris] - int break_weapon_rate,break_armor_rate; - int crit_atk_rate; - int hp_loss_rate; - int sp_loss_rate; - int classchange; // [Valaris] - unsigned int setitem_hash, setitem_hash2; //Split in 2 because shift operations only work on int ranges. [Skotlex] - - short attackrange,attackrange_; - short splash_range, splash_add_range; - short add_steal_rate; - short hp_loss_value; - short sp_loss_value; - short hp_loss_type; - short sp_drain_type; - short sp_gain_value, hp_gain_value; + // zeroed vars start here. + int hit; + int flee, flee2; + int critical; + int aspd; + int def, def2; + int mdef, mdef2; + int def_ele; + int matk1, matk2; + int base_atk; + int arrow_atk,arrow_ele,arrow_cri,arrow_hit,arrow_range; + int nhealhp,nhealsp,nshealhp,nshealsp,nsshealhp,nsshealsp; + int critical_def,double_rate; + int long_attack_atk_rate; //Long range atk rate, not weapon based. [Skotlex] + int near_attack_def_rate,long_attack_def_rate,magic_def_rate,misc_def_rate; + int ignore_mdef_ele; + int ignore_mdef_race; + int perfect_hit; + int perfect_hit_add; + int get_zeny_rate; + int get_zeny_num; //Added Get Zeny Rate [Skotlex] + int double_add_rate; + int short_weapon_damage_return,long_weapon_damage_return; + int magic_damage_return; // AppleGirl Was Here + int random_attack_increase_add,random_attack_increase_per; // [Valaris] + int break_weapon_rate,break_armor_rate; + int crit_atk_rate; + int hp_loss_rate; + int sp_loss_rate; + int classchange; // [Valaris] + unsigned int setitem_hash, setitem_hash2; //Split in 2 because shift operations only work on int ranges. [Skotlex] + + short attackrange,attackrange_; + short splash_range, splash_add_range; + short add_steal_rate; + short hp_loss_value; + short sp_loss_value; + short hp_loss_type; + short sp_drain_type; + short sp_gain_value, hp_gain_value; short sp_vanish_rate; short sp_vanish_per; short add_drop_count; unsigned short unbreakable; // chance to prevent ANY equipment breaking [celest] - unsigned short unbreakable_equip; //100% break resistance on certain equipment - unsigned short unstripable_equip; - short no_regen; - short add_def_count,add_mdef_count; - short add_dmg_count,add_mdmg_count; - - // zeroed vars end here. - - int amotion,dmotion; - int castrate,delayrate,hprate,sprate,dsprate; - int atk_rate; - int aspd_rate,speed_rate,hprecov_rate,sprecov_rate; - int matk_rate; - int critical_rate,hit_rate,flee_rate,flee2_rate,def_rate,def2_rate,mdef_rate,mdef2_rate; - int speed_add_rate, aspd_add_rate; - - int hp_loss_tick; - int sp_loss_tick; - - int itemid; - short itemindex; //Used item's index in sd->inventory [Skotlex] - + unsigned short unbreakable_equip; //100% break resistance on certain equipment + unsigned short unstripable_equip; + short no_regen; + short add_def_count,add_mdef_count; + short add_dmg_count,add_mdmg_count; + + // zeroed vars end here. + + int amotion,dmotion; + int castrate,delayrate,hprate,sprate,dsprate; + int atk_rate; + int aspd_rate,speed_rate,hprecov_rate,sprecov_rate; + int matk_rate; + int critical_rate,hit_rate,flee_rate,flee2_rate,def_rate,def2_rate,mdef_rate,mdef2_rate; + int speed_add_rate, aspd_add_rate; + + int hp_loss_tick; + int sp_loss_tick; + + int itemid; + short itemindex; //Used item's index in sd->inventory [Skotlex] + short catch_target_class; // pet catching, stores a pet class to catch (short now) [zzo] - short spiritball, spiritball_old; - int spirit_timer[MAX_SKILL_LEVEL]; - - int die_counter; - short doridori_counter; + short spiritball, spiritball_old; + int spirit_timer[MAX_SKILL_LEVEL]; + + int die_counter; + short doridori_counter; char potion_success_counter; int reg_num; @@ -730,10 +730,10 @@ struct map_session_data { #endif int duel_group; // duel vars [LuzZza] - int duel_invite; - - char away_message[128]; // [LuzZza] - + int duel_invite; + + char away_message[128]; // [LuzZza] + }; struct { diff --git a/src/map/pc.c b/src/map/pc.c index 8e3d58c6e..0b3cd1185 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -4011,6 +4011,10 @@ unsigned short pc_mapid2jobid(unsigned short class_, int sex) { return JOB_TAEKWON; case MAPID_WEDDING: return JOB_WEDDING; + case MAPID_GUNSLINGER: + return JOB_GUNSLINGER; + case MAPID_NINJA: + return JOB_NINJA; case MAPID_XMAS: // [Valaris] return JOB_XMAS; //2_1 classes @@ -4175,8 +4179,6 @@ char * job_name(int class_) { case JOB_WEDDING: case JOB_SUPER_NOVICE: - case JOB_GUNSLINGER: - case JOB_NINJA: case JOB_XMAS: return msg_txt(570 - JOB_WEDDING+class_); @@ -4254,6 +4256,11 @@ char * job_name(int class_) { return msg_txt(617); case JOB_SOUL_LINKER: return msg_txt(618); + + case JOB_GUNSLINGER: + return msg_txt(619); + case JOB_NINJA: + return msg_txt(620); default: return msg_txt(650); @@ -6036,7 +6043,10 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper) return 1; else if (upper == 2) b_class = JOB_SUPER_BABY; - } else if (job < JOB_SUPER_BABY-JOB_NOVICE_HIGH+JOB_SUPER_NOVICE+2) { + } else if (job == JOB_GUNSLINGER || job == JOB_NINJA) { + if (upper > 0) + return 1; + } else if (job < JOB_SUPER_BABY-JOB_NOVICE_HIGH+JOB_SUPER_NOVICE+1) { // Min is SuperNovice +1 -> Becomes Novice High [Skotlex] // Max is SuperBaby-NoviceHigh+1 -> Becomes Super Baby b_class += JOB_NOVICE_HIGH - JOB_SUPER_NOVICE -1; -- cgit v1.2.3-70-g09d2