From 40418b2ae80248b13521bd3f670999437b556806 Mon Sep 17 00:00:00 2001 From: toms Date: Fri, 18 Aug 2006 15:22:24 +0000 Subject: Applied Mpeg's work on ninja (http://gpegon.free.fr/ea/ninja_08-18-06_mpeg.txt) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8347 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 1 + db/skill_cast_db.txt | 8 ++++---- db/skill_require_db.txt | 4 ++-- doc/item_db.txt | 2 +- src/map/battle.c | 16 +++++++--------- src/map/skill.c | 17 +++++++++++++++-- 6 files changed, 30 insertions(+), 18 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index e570c8d67..5a97e3d6a 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,7 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2006/08/18 + * Applied Mpeg's work on ninja [Toms] * Fixed @homlvup [Toms] * Added guild_aura (skill.conf) setting so you can specify when it works and if it works on the guild-master itself. Defaults to working all the diff --git a/db/skill_cast_db.txt b/db/skill_cast_db.txt index dde90feaf..5bf283725 100644 --- a/db/skill_cast_db.txt +++ b/db/skill_cast_db.txt @@ -886,8 +886,8 @@ 525,1000,1000,0,0,0 //-- NJ_ZENYNAGE 526,0,5000,0,0,0 -//-- NJ_TATAMIGAESHI // Duration1 is land-effect. Duration2 is the range-inmunity effect -527,0,3000,0,1000,3000 +//-- NJ_TATAMIGAESHI // Duration1 is land-effect & range-inmunity effect. Duration2 is skill_attack duration (minimal value) +527,0,3000,0,3000,200 //-- NJ_KASUMIKIRI // Delay unknown (if there is one) 528,0,0,0,30000:60000:90000:120000:150000:180000:210000:240000:270000:300000,0 //-- NJ_SHADOWJUMP // Delay unknown (if there is one) @@ -899,8 +899,8 @@ //-- NJ_BUNSINJYUTSU // Cast and Delay unknown (temp > random cast) 532,4000:3500:3000:2500:2000:3000:2500:2000:1500:1000,0,0,60000:80000:100000:120000:140000:160000:180000:200000:220000:240000,0 -//-- NJ_KOUENKA // Should there really be a delay ? -534,700:1400:2100:2800:3500:4200:4900:5600:6300:7000,1000:1200:1400:1600:1800:2000:2200:2400:2600:2800,0,0,0 +//-- NJ_KOUENKA +534,700:1400:2100:2800:3500:4200:4900:5600:6300:7000,0,0,0,0 //-- NJ_KAENSIN 535,6000:5500:5000:4500:4000:3500:3000:2500:2000:1500,1000,0,20000,0, //-- NJ_BAKUENRYU diff --git a/db/skill_require_db.txt b/db/skill_require_db.txt index b29d2f0ce..b7a14238f 100644 --- a/db/skill_require_db.txt +++ b/db/skill_require_db.txt @@ -421,7 +421,7 @@ 529,0,0,10,0,0,0,99,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_SHADOWJUMP 530,0,0,14:16:18:20:22,0,0,0,99,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,12:15:18:21:24,0,0,0,99,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,30:32:34:36:38:40:42:44:46:48,0,0,0,99,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 +532,0,0,30:32:34:36:38:40:42:44:46:48,0,0,0,99,0,0,none,0,7524,1,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,99,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,18:20:22:24:26:28:30:32:34:36,0,0,0,99,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,25,0,0,0,99,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 @@ -432,7 +432,7 @@ 540,0,0,12:14:16:18:20:22:24:26:28:30,0,0,0,99,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,16:20:24:28:32,0,0,0,99,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,24:28:32:36:40,0,0,0,99,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,80,0,20:30:40:50:60,0,0,0,99,0,0,none,0,7524,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NJ_NEN +543,80,0,20:30:40:50:60,0,0,0,99,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,55:60:65:70:75:80:85:90:95:100,0,0,0,99,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 1001,0,0,40,0,0,0,99,0,0,move_enable,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //KN_CHARGEATK#チャ?[ジアタック# diff --git a/doc/item_db.txt b/doc/item_db.txt index fb31c5d1a..4dcbe491c 100644 --- a/doc/item_db.txt +++ b/doc/item_db.txt @@ -111,7 +111,7 @@ View: For normal items, defines a replacement view-sprite for the item (eg: 19: Shotguns 20: Gatling guns 21: Grenade launchers - 22: Huuma + 22: Fuuma Shurikens For ammo, the types are: 1: Arrows diff --git a/src/map/battle.c b/src/map/battle.c index c481d0034..f16a58314 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -318,15 +318,6 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,int damage,i return 0; } - if(sc->data[SC_UTSUSEMI].timer != -1 && !skill_num) - { - clif_specialeffect(bl, 462, AREA); - skill_blown (src, bl, sc->data[SC_UTSUSEMI].val3); - if (--sc->data[SC_UTSUSEMI].val2 <= 0) - status_change_end(bl, SC_UTSUSEMI, -1); - return 0; - } - if(sc->data[SC_BUNSINJYUTSU].timer != -1 && (flag&(BF_WEAPON|BF_MISC)) ) { if (--sc->data[SC_BUNSINJYUTSU].val2 <= 0) @@ -2927,6 +2918,13 @@ int battle_weapon_attack( struct block_list *src,struct block_list *target, return 0; } } + if (tsc->data[SC_UTSUSEMI].timer != -1) { + clif_specialeffect(target, 462, AREA); + skill_blown (src, target, tsc->data[SC_UTSUSEMI].val3); + if (--tsc->data[SC_UTSUSEMI].val2 <= 0) + status_change_end(target, SC_UTSUSEMI, -1); + return 0; + } } //Recycled the damage variable rather than use a new one... [Skotlex] if(sd && (damage = pc_checkskill(sd,MO_TRIPLEATTACK)) > 0) diff --git a/src/map/skill.c b/src/map/skill.c index dfe085f75..b8fd82f3b 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -6245,7 +6245,7 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s } break; case NJ_TATAMIGAESHI: - sc_start(src,type,100,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(src,type,100,skilllv,skill_get_time(skillid,skilllv)); skill_unitsetting(src,skillid,skilllv,src->x,src->y,0); break; @@ -7174,7 +7174,20 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns break; } - case UNT_TATAMIGAESHI: + case UNT_TATAMIGAESHI: + { + /* NJ_TATAMIGAESHI has to work like that (has to be instant, instead of during 1s), according to Tharis' last video + Did not find a better way to do it (even in traps' code) */ + + struct skill_unit_group *sug; // better name needed + + if ( (sug = map_find_skill_unit_oncell(bl,bl->x,bl->y,NJ_TATAMIGAESHI,NULL)->group) != NULL ) + { + if ( DIFF_TICK(gettick(), sug->tick) <= skill_get_time2(sg->skill_id, sg->skill_lv) ) + skill_attack(BF_WEAPON,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0); + } + break; + } case UNT_DEMONSTRATION: skill_attack(BF_WEAPON,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0); break; -- cgit v1.2.3-60-g2f50