diff options
-rw-r--r-- | db/skill_require_db.txt | 36 | ||||
-rw-r--r-- | src/map/skill.c | 82 |
2 files changed, 95 insertions, 23 deletions
diff --git a/db/skill_require_db.txt b/db/skill_require_db.txt index 60162fbde..ce8dbe335 100644 --- a/db/skill_require_db.txt +++ b/db/skill_require_db.txt @@ -1,7 +1,7 @@ // Skill Requirements Database
//
// Structure of Database:
-// SkillID,HPCost,?MaxHP?,SPCost,MaxHPRateCost,MaxSPRateCost,ZenyCost,RequiredWeapons,RequiredState,SpiritSphereCost,RequiredItemID1,RequiredItemAmount1,...,RequiredItemID10,RequiredItemAmount10
+// SkillID,HPCost,?MaxHP?,SPCost,MaxHPRateCost,MaxSPRateCost,ZenyCost,RequiredWeapons,RequiredState,SpiritSphereCost,RequiredItemID1,RequiredItemAmount1,RequiredItemID2,RequiredItemAmount2,RequiredItemID3,RequiredItemAmount3,RequiredItemID4,RequiredItemAmount4,RequiredItemID5,RequiredItemAmount5,RequiredItemID6,RequiredItemAmount6,RequiredItemID7,RequiredItemAmount7,RequiredItemID8,RequiredItemAmount8,RequiredItemID9,RequiredItemAmount9,RequiredItemID10,RequiredItemAmount10
//
// Legend for 'RequiredState' field:
// none = Nothing special
@@ -390,16 +390,13 @@ //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,0,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,0,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,0,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,0,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,0,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,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_CRACKER
-509,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_SINGLEACTION
-510,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_SNAKEEYE
-511,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_CHAINACTION
+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
@@ -410,27 +407,26 @@ 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
-522,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_TOBIDOUGU
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
-526,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_ZENYNAGE
+526,0,0,10,0,0,1000:2000:3000:4000:5000:6000:7000:8000:9000:10000,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NJ_ZENYNAGE
527,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_TATAMIGAESHI
528,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_KASUMIKIRI
529,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_SHADOWJUMP
-530,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_KIRIKAGE
+530,0,0,10,0,0,0,0,hiding,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NJ_KIRIKAGE
531,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_UTSUSEMI
532,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_BUNSINJYUTSU
533,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_NINPOU
534,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_KOUENKA
-535,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_KAENSIN
-536,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_BAKUENRYU
+535,0,0,10,0,0,0,0,none,0,7521,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NJ_KAENSIN
+536,0,0,10,0,0,0,0,none,0,7521,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NJ_BAKUENRYU
537,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_HYOUSENSOU
-538,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_SUITON
-539,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_HYOUSYOURAKU
+538,0,0,10,0,0,0,0,none,0,7522,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NJ_SUITON
+539,0,0,10,0,0,0,0,none,0,7522,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NJ_HYOUSYOURAKU
540,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_HUUJIN
-541,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_RAIGEKISAI
-542,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_KAMAITACHI
+541,0,0,10,0,0,0,0,none,0,7523,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NJ_RAIGEKISAI
+542,0,0,10,0,0,0,0,none,0,7523,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NJ_KAMAITACHI
543,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_NEN
544,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_ISSEN
diff --git a/src/map/skill.c b/src/map/skill.c index 468850df1..dda4f1e6f 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -3078,7 +3078,8 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl,int s }
break;
- //Until they're at right position [Vicious]
+ //Until they're at right position - gs_damage- [Vicious]
+ //Not implemented yet [Vicious]
case GS_GLITTERING:
case GS_FLING:
case GS_TRIPLEACTION:
@@ -5639,8 +5640,14 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in }
break;
- //Until they're at right position [Vicious]
+ //Until they're at right position - gs_nodamage- [Vicious]
+ //Not implemented yet [Vicious]
case GS_GLITTERING:
+ if(sd) {
+ clif_skill_nodamage(src,bl,skillid,skilllv,1);
+ pc_addspiritball(sd,skill_get_time(skillid,skilllv),skilllv);
+ }
+ break;
case GS_FLING:
case GS_TRIPLEACTION:
case GS_BULLSEYE:
@@ -8138,6 +8145,76 @@ int skill_check_condition(struct map_session_data *sd,int type) return 0;
}
break;
+
+ //Until they're at right position - gs_skillcheck- [Vicious]
+ case GS_GLITTERING:
+ if(sd->spiritball >= 10) {
+ clif_skill_fail(sd,skill,0,0);
+ return 0;
+ }
+ break;
+ case GS_FLING:
+ case GS_TRIPLEACTION:
+ case GS_MAGICALBULLET:
+ case GS_CRACKER:
+ if(sd->spiritball < 1) {
+ clif_skill_fail(sd,skill,0,0);
+ return 0;
+ }
+ if (skill != GS_MAGICALBULLET)
+ arrow_flag = 1;
+ break;
+ case GS_BULLSEYE:
+ if(sd->spiritball < 5) {
+ clif_skill_fail(sd,skill,0,0);
+ return 0;
+ }
+ break;
+ case GS_MADNESSCANCEL:
+ if(sd->spiritball < 4) {
+ clif_skill_fail(sd,skill,0,0);
+ return 0;
+ }
+ break;
+ case GS_ADJUSTMENT:
+ case GS_INCREASING:
+ if(sd->spiritball < 2) {
+ clif_skill_fail(sd,skill,0,0);
+ return 0;
+ }
+ break;
+ case GS_TRACKING:
+ case GS_DISARM:
+ case GS_PIERCINGSHOT:
+ case GS_RAPIDSHOWER:
+ case GS_DESPERADO:
+ case GS_DUST:
+ case GS_SPREADATTACK:
+ case GS_GROUNDDRIFT:
+ case NJ_SYURIKEN:
+ case NJ_KUNAI:
+ case NJ_HUUMA:
+ arrow_flag = 1;
+ break;
+
+ //Not implemented yet [Vicious]
+ case NJ_KASUMIKIRI:
+ case NJ_SHADOWJUMP:
+ case NJ_KIRIKAGE:
+ case NJ_UTSUSEMI:
+ case NJ_BUNSINJYUTSU:
+ 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:
+ break;
}
if(!(type&2)){
@@ -8253,7 +8330,6 @@ int skill_check_condition(struct map_session_data *sd,int type) return 0;
}
break;
-
}
if (checkitem_flag) {
|