From 9ee5081a5ef7b8aa20cfdd992cad280665b5ed7f Mon Sep 17 00:00:00 2001 From: Vicious Date: Wed, 8 Mar 2006 15:43:04 +0000 Subject: some skill check condition git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5514 54d463be-8e91-2dee-dedb-b68131a5f0ec --- db/skill_require_db.txt | 36 ++++++++++------------ 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) { -- cgit v1.2.3-70-g09d2