diff --git a/db/item_db.txt b/db/item_db.txt index e82b404775..a7cdb23c9a 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 -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,,{} +13100,Branch,Branch,4,10,,500,20,,9,3,134217728,7,2,2,1,1,1,,{} +13101,Six_Shooter,Six Shooter,4,10,,400,30,,9,1,134217728,7,2,2,1,1,1,,{ bonus bHit,-10; } +13102,Six_Shooter,Six Shooter,4,10,,400,30,,9,2,134217728,7,2,2,1,1,1,,{ bonus bHit,-10; } +13103,Crimson_Bolt,Crimson Bolt,4,10,,450,45,,9,1,134217728,7,2,2,2,6,1,,{ bonus bHit,-10; } +13104,Crimson_Bolt_,Crimson Bolt,4,10,,450,45,,9,2,134217728,7,2,2,2,6,1,,{ bonus bHit,-10; } +13105,Garrison,Garrison,4,10,,500,70,,9,1,134217728,7,2,2,2,22,1,,{ bonus bHit,-10; } +13106,Garrison_,Garrison,4,10,,500,70,,9,2,134217728,7,2,2,2,22,1,,{ bonus bHit,-10; } +13107,Gold_Lux,Gold Lux,4,10,,500,20,,9,0,134217728,7,2,2,3,12,1,,{ bonus bHit,-10; } +13108,Cyclone,Cyclone,4,10,,700,130,,9,1,134217728,7,2,2,2,24,1,,{ bonus bHit,10; bonus bCritical,10; } +13109,Cyclone_,Cyclone,4,10,,700,130,,9,2,134217728,7,2,2,2,24,1,,{ bonus bHit,10; bonus bCritical,10; } +13110,Dusk,Dusk,4,10,,750,160,,9,1,134217728,7,2,2,1,1,1,,{ bonus bHit,10; bonus bCritical,10; } +13111,Rolling_Stone,Rolling Stone,4,10,,900,135,,9,1,134217728,7,2,2,1,14,1,,{ bonus bSplashRange,1; } +13112,Black_Rose,Black Rose,4,10,,900,180,,9,1,134217728,7,2,2,2,35,1,,{ bonus bSplashRange,1; } +13113,Gate_Keeper,Gate Keeper,4,10,,1000,195,,9,0,134217728,7,2,2,2,6,1,,{ bonus bSplashRange,1; } +13114,Drifter,Drifter,4,10,,2300,50,,9,1,134217728,7,2,2,2,55,1,,{} +13115,Butcher,Butcher,4,10,,2500,75,,9,1,134217728,7,2,2,2,68,1,,{ bonus2 bCriticalAddRace,RC_Brute,5; } +13116,Butcher_,Butcher,4,10,,2500,75,,9,2,134217728,7,2,2,2,68,1,,{ bonus2 bCriticalAddRace,RC_Brute,5; } +13117,Destroyer,Destroyer,4,10,,1200,220,,9,0,134217728,7,2,2,2,52,1,,{ bonus bHit,-10; } //break armor at close range +13118,Destroyer_,Destroyer,4,10,,1200,220,,9,1,134217728,7,2,2,2,52,1,,{ bonus bHit,-10; } //break armor at close range +13119,Inferno,Inferno,4,10,,1250,280,,9,1,134217728,7,2,2,2,65,1,,{} // Bullets 13200,Bullet,Bullet,10,1,,2,10,,,,134217728,7,2,32768,,1,,,{} @@ -2421,30 +2421,30 @@ 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,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,,,,,,{} +7521,Burning_Stone,Burning Stone,3,10,,10,,,,,,7,2,,,,,,{} +7522,Freezing_Stone,Freezing Stone,3,10,,10,,,,,,7,2,,,,,,{} +7523,Windchime_Stone,Windchime Stone,3,10,,10,,,,,,7,2,,,,,,{} +7524,Fang_,Fang,3,10,,10,,,,,,7,2,,,,,,{} // Ninja Weapons -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; } +13006,Gokurin,Gokurin,4,10,,1000,140,,1,0,268435456,7,2,2,4,45,1,,{ bonus2 bAddEff,Eff_Curse,500; } +13007,Jitte,Jitte,4,10,,1000,140,,1,0,268435456,7,2,2,4,45,1,,{ bonus bBreakWeaponRate,500; } +13008,Jitte_,Jitte,4,10,,1000,140,,1,0,268435456,7,2,2,4,45,1,,{ bonus bBreakWeaponRate,500; } +13009,Kamaitachi,Kamaitachi,4,10,,1000,140,,1,0,268435456,7,2,2,4,45,1,,{ bonus bCritical,1; } +13010,Ashura,Ashura,4,0,,1000,140,,1,0,268435456,7,2,2,4,45,1,,{} +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; } // Ninja Kazema Shurikens -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; } +13300,Kazemashuriken_Beneki,Kazemashuriken Beneki,4,10,,1500,80,,1,0,268435456,7,2,2,1,3,1,,{} +13301,Kazemashuriken_Daisharin,Kazemashuriken Daisharin,4,10,,1500,80,,1,0,268435456,7,2,2,1,3,1,,{bonus2 bAddEff,Eff_Bleeding,500; } +13302,Kazemashuriken_Daisharin,Kazemashuriken Daisharin,4,10,,1500,80,,1,0,268435456,7,2,2,1,3,1,,{ bonus2 bAddEff,Eff_Bleeding,500; } +13303,Kazemashuriken_Rekka,Kazemashuriken Rekka,4,10,,1500,80,,1,0,268435456,7,2,2,1,3,1,,{ bonus3 bAutoSpell,19,10,100; } -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,,{} +2117,Gauntlet,Gauntlet,5,10,,150,,4,,0,268435456,7,2,32,,20,1,,{} +2118,Gauntlet_,Gauntlet,5,10,,150,,4,,1,268435456,7,2,32,,20,1,,{} +2119,Superior_Gauntlet,Superior Gauntlet,5,10,,150,,7,,0,268435456,7,2,32,,30,1,,{} +2120,Superior_Gauntlet_,Superior Gauntlet,5,10,,150,,7,,0,268435456,7,2,32,,30,1,,{} diff --git a/db/skill_tree.txt b/db/skill_tree.txt index 8b75660108..270eb9673c 100644 --- a/db/skill_tree.txt +++ b/db/skill_tree.txt @@ -645,6 +645,8 @@ 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# //Gunslinger +24,1,9,0,0,0,0,0,0,0,0,0,0 //NV_BASIC#Basic Skill# +24,142,1,0,0,0,0,0,0,0,0,0,0 //NV_FIRSTAID#First Aid# 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# @@ -668,6 +670,8 @@ 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,1,9,0,0,0,0,0,0,0,0,0,0 //NV_BASIC#Basic Skill# +25,142,1,0,0,0,0,0,0,0,0,0,0 //NV_FIRSTAID#First Aid# 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# diff --git a/src/map/itemdb.c b/src/map/itemdb.c index 6b09005418..aa4f3a6229 100644 --- a/src/map/itemdb.c +++ b/src/map/itemdb.c @@ -199,6 +199,10 @@ static void itemdb_jobid2mapid(unsigned short *bclass, int jobmask) bclass[1] |= 1<status.job_level; break; case SP_CLASS: - if(val>=24 && val < 45) + if(val>=27 && val < 45) val+=3978; else val= sd->status.class_; @@ -6046,7 +6046,7 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper) } 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) { + } else if (job < JOB_SUPER_BABY-JOB_NOVICE_HIGH+JOB_SUPER_NOVICE+2) { // 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; @@ -8133,6 +8133,7 @@ int pc_readdb(void) skill_tree[atoi(split[0])][j].need[k].id=atoi(split[k*2+m]); skill_tree[atoi(split[0])][j].need[k].lv=atoi(split[k*2+m+1]); } + } fclose(fp); ShowStatus("Done reading '"CL_WHITE"%s"CL_RESET"'.\n","skill_tree.txt"); diff --git a/src/map/skill.c b/src/map/skill.c index 38a880df81..8caa4031ba 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -3078,6 +3078,59 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl,int s } break; + //Until they're at right position [Vicious] + case GS_GLITTERING: + case GS_FLING: + case GS_TRIPLEACTION: + case GS_BULLSEYE: + case GS_MADNESSCANCEL: + case GS_ADJUSTMENT: + case GS_INCREASING: + case GS_MAGICALBULLET: + case GS_CRACKER: + case GS_SINGLEACTION: + case GS_SNAKEEYE: + case GS_CHAINACTION: + case GS_TRACKING: + case GS_DISARM: + case GS_PIERCINGSHOT: + case GS_RAPIDSHOWER: + case GS_DESPERADO: + case GS_GATLINGFEVER: + case GS_DUST: + case GS_SPREADATTACK: + case GS_GROUNDDRIFT: + + case NV_BASIC: + case NV_FIRSTAID: + case NJ_TOBIDOUGU: + case NJ_SYURIKEN: + case NJ_KUNAI: + case NJ_HUUMA: + case NJ_ZENYNAGE: + case NJ_TATAMIGAESHI: + case NJ_KASUMIKIRI: + case NJ_SHADOWJUMP: + case NJ_KIRIKAGE: + case NJ_UTSUSEMI: + case NJ_BUNSINJYUTSU: + case NJ_NINPOU: + skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + break; + case NJ_KOUENKA: + case NJ_KAENSIN: + case NJ_BAKUENRYU: + case NJ_HYOUSENSOU: + case NJ_SUITON: + case NJ_HYOUSYOURAKU: + case NJ_HUUJIN: + case NJ_RAIGEKISAI: + case NJ_KAMAITACHI: + case NJ_NEN: + case NJ_ISSEN: + skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag); + break; + case 0: if(sd) { if (flag & 3){ @@ -5588,6 +5641,58 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in } break; + //Until they're at right position [Vicious] + case GS_GLITTERING: + case GS_FLING: + case GS_TRIPLEACTION: + case GS_BULLSEYE: + case GS_MADNESSCANCEL: + case GS_ADJUSTMENT: + case GS_INCREASING: + case GS_MAGICALBULLET: + case GS_CRACKER: + case GS_SINGLEACTION: + case GS_SNAKEEYE: + case GS_CHAINACTION: + case GS_TRACKING: + case GS_DISARM: + case GS_PIERCINGSHOT: + case GS_RAPIDSHOWER: + case GS_DESPERADO: + case GS_GATLINGFEVER: + case GS_DUST: + case GS_SPREADATTACK: + case GS_GROUNDDRIFT: + + case NV_BASIC: + case NV_FIRSTAID: + case NJ_TOBIDOUGU: + case NJ_SYURIKEN: + case NJ_KUNAI: + case NJ_HUUMA: + case NJ_ZENYNAGE: + case NJ_TATAMIGAESHI: + case NJ_KASUMIKIRI: + case NJ_SHADOWJUMP: + case NJ_KIRIKAGE: + case NJ_UTSUSEMI: + case NJ_BUNSINJYUTSU: + case NJ_NINPOU: + case NJ_KOUENKA: + case NJ_KAENSIN: + case NJ_BAKUENRYU: + case NJ_HYOUSENSOU: + case NJ_SUITON: + case NJ_HYOUSYOURAKU: + case NJ_HUUJIN: + case NJ_RAIGEKISAI: + case NJ_KAMAITACHI: + case NJ_NEN: + case NJ_ISSEN: + clif_skill_nodamage(src,bl,skillid,skilllv, + sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); + break; + default: ShowWarning("skill_castend_nodamage_id: Unknown skill used:%d\n",skillid); map_freeblock_unlock(); @@ -11062,7 +11167,7 @@ int skill_readdb(void) i = GD_SKILLRANGEMIN + i - GD_SKILLBASE; if(i<=0 || i>MAX_SKILL_DB) continue; - + skill_split_atoi(split[1],skill_db[i].range); skill_db[i].hit=atoi(split[2]); skill_db[i].inf=atoi(split[3]);