From 9212ac09f4c80361ba4e69273bc9e9a265d27f25 Mon Sep 17 00:00:00 2001 From: skotlex Date: Thu, 7 Sep 2006 20:24:41 +0000 Subject: - Changed the default of sg_angel_skill_ratio to 10 based on recent information from Tharis. - Cleaned up the doridori parse clif function. - Moved doridori_counter to state.doridori - Merged some of mpeg's work on NJ skills git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8665 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 2 ++ conf-tmpl/Changelog.txt | 2 ++ conf-tmpl/battle/skill.conf | 2 +- db/Changelog.txt | 3 +++ db/skill_cast_db.txt | 16 ++++++++-------- src/map/battle.c | 3 +-- src/map/clif.c | 20 ++++++++++++++------ src/map/map.h | 2 +- src/map/skill.c | 5 +++-- src/map/status.c | 4 ++-- 10 files changed, 37 insertions(+), 22 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 710b656fb..d9b38eb81 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,8 @@ 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/09/07 + * Cleaned up the doridori parse clif function. [Skotlex] + * Merged some of mpeg's work on NJ skills [Skotlex] * Removed the Warmth "stacking" code. [Skotlex] * Added back the effect of /doridori to skill-SP regen [Skotlex] * Implemented a rough version of Angel of the Sun/Moon/Stars, it has a low diff --git a/conf-tmpl/Changelog.txt b/conf-tmpl/Changelog.txt index c7745e453..c3e5d94e9 100644 --- a/conf-tmpl/Changelog.txt +++ b/conf-tmpl/Changelog.txt @@ -1,6 +1,8 @@ Date Added 2006/09/07 + * Changed the default of sg_angel_skill_ratio to 10 based on recent + information from Tharis. [Skotlex] * Added sg_angel_skill_ratio to specify rate at which the Angel skill triggers. [Skotlex] * Increased duration of Miracle of the Sun/Moon/Stars to one hour. diff --git a/conf-tmpl/battle/skill.conf b/conf-tmpl/battle/skill.conf index 9146101b8..f09629792 100644 --- a/conf-tmpl/battle/skill.conf +++ b/conf-tmpl/battle/skill.conf @@ -265,4 +265,4 @@ sg_miracle_skill_ratio: 1 sg_miracle_skill_duration: 3600000 //Angel of the Sun, Moon and Stars skill ratio (100% = 10000) -sg_angel_skill_ratio: 1 +sg_angel_skill_ratio: 10 diff --git a/db/Changelog.txt b/db/Changelog.txt index fd6a00511..e2d8063f0 100644 --- a/db/Changelog.txt +++ b/db/Changelog.txt @@ -19,6 +19,9 @@ ----- ========================= + +09/07 + * Merged some of mpeg's work on NJ skills [Skotlex] 09/06 * Changed all bCriticalRate to bCritical [Playtester] * Updated skill_require_db's entry for Abracadabra, it requires yellow 2 diff --git a/db/skill_cast_db.txt b/db/skill_cast_db.txt index 9c9f15eea..2e0ed04c7 100644 --- a/db/skill_cast_db.txt +++ b/db/skill_cast_db.txt @@ -897,20 +897,20 @@ 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 +//-- NJ_BAKUENRYU // Cast and Delay taken from lvl5 (need to confirm it's not influenced by lvl) 536,3000,2000,0,0,0 //-- NJ_HYOUSENSOU 537,700:1400:2100:2800:3500:4200:4900:5600:6300:7000,0,0,0,0 -//-- NJ_SUITON -538,3300:3200:3100:3000:2900:2800:2700:2600:2500:2400,0,0,15000:20000:25000:30000:35000:40000:45000:50000:55000:60000,15000:20000:25000:30000:35000:40000:45000:50000:55000:60000 -//-- NJ_HYOUSYOURAKU // Cast time taken from jA (not reliable, must be checked) +//-- NJ_SUITON // Delay unknown (if there is one) +538,3000,0,0,15000:20000:25000:30000:35000:40000:45000:50000:55000:60000,15000:20000:25000:30000:35000:40000:45000:50000:55000:60000 +//-- NJ_HYOUSYOURAKU // Cast time and Delay taken from jA (not reliable, must be checked) 539,3000,1000:1200:1400:1600:1800:2000:2200:2400:2600:2800,0,0,10000:11000:12000:13000:14000:15000:16000:17000:18000:19000 //-- NJ_HUUJIN 540,700:1400:2100:2800:3500:4200:4900:5600:6300:7000,0,0,0,0 -//-- NJ_RAIGEKISAI -541,3700:3400:3100:2800:2500,0,0,0,0 // Not sure of cast but very litely to be correct (English Translation Project) -//-- NJ_KAMAITACHI -542,3000,2000,0,0,0 // Cast and delay unknown > temp values taken from NJ_BAKUENRYU +//-- NJ_RAIGEKISAI // Cast and Delay must be checked (Seems to be more 4s at lvl1. Don't have other lvls) +541,3700:3400:3100:2800:2500,0,0,0,0 +//-- NJ_KAMAITACHI // Cast and delay unknown > temp values taken from NJ_BAKUENRYU +542,3000,2000,0,0,0 //-- NJ_NEN 543,5000:4000:3000:2000:1000,0,0,30000:45000:60000:75000:90000,30000:45000:60000:75000:90000 //-- NJ_ISSEN // cast and delay unknown > temp values taken from MO_EXTREMITYFIST diff --git a/src/map/battle.c b/src/map/battle.c index a8aa4e988..a2f71a32c 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -882,7 +882,6 @@ static struct Damage battle_calc_weapon_attack( case CR_GRANDCROSS: case NPC_GRANDDARKNESS: case NJ_HUUMA: - case NJ_TATAMIGAESHI: case GS_FLING: case GS_TRIPLEACTION: case GS_BULLSEYE: @@ -2618,7 +2617,7 @@ struct Damage battle_calc_misc_attack( pc_payzeny(sd, md.damage); } - if(is_boss(target)) + if(is_boss(target) || tsd) md.damage=md.damage*60/100; break; case GS_FLING: diff --git a/src/map/clif.c b/src/map/clif.c index f60594160..318aa3a99 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -11086,12 +11086,20 @@ void clif_parse_PMIgnoreList(int fd,struct map_session_data *sd) void clif_parse_NoviceDoriDori(int fd, struct map_session_data *sd) { int level; - if ((sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE) - sd->doridori_counter++; - - if ((sd->class_&MAPID_BASEMASK) == MAPID_TAEKWON - && sd->state.rest && (level = pc_checkskill(sd,TK_SPTIME))) - sc_start(&sd->bl,SkillStatusChangeTable(TK_SPTIME),100,level,skill_get_time(TK_SPTIME, level)); + if (sd->state.doridori) return; + + switch (sd->class_&MAPID_UPPERMASK) + { + case MAPID_TAEKWON: + if (!sd->state.rest) + break; + if (level = pc_checkskill(sd,TK_SPTIME)) + sc_start(&sd->bl,SkillStatusChangeTable(TK_SPTIME), + 100,level,skill_get_time(TK_SPTIME, level)); + case MAPID_SUPER_NOVICE: + sd->state.doridori=1; + break; + } return; } /*========================================== diff --git a/src/map/map.h b/src/map/map.h index dcd87f294..4249babd4 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -595,6 +595,7 @@ struct map_session_data { unsigned rewarp :1; //Signals that a player should warp as soon as he is done loading a map. [Skotlex] unsigned killer : 1; unsigned killable : 1; + unsigned doridori : 1; unsigned short autoloot; struct guild *gmaster_flag; } state; @@ -765,7 +766,6 @@ struct map_session_data { int spirit_timer[MAX_SKILL_LEVEL]; int die_counter; - short doridori_counter; char potion_success_counter; int reg_num; diff --git a/src/map/skill.c b/src/map/skill.c index 531cb9857..87df0e1ac 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -1848,6 +1848,7 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds clif_specialeffect(bl, 438, AREA); if (--sc->data[SC_KAITE].val2 <= 0) status_change_end(bl, SC_KAITE, -1); + clif_skill_nodamage(bl,src,skillid,skilllv,1); bl = src; //Just make the skill attack yourself @.@ sc = status_get_sc(bl); tsd = (bl->type == BL_PC)?(TBL_PC*)bl:NULL; @@ -5128,7 +5129,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in } break; - // Slim Pitcher (normally Condensed Potion doesn't give SP (Heals party members)) + // Slim Pitcher case CR_SLIMPITCHER: if (potion_hp || potion_sp) { int hp = potion_hp, sp = potion_sp; @@ -5466,7 +5467,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in pc_delspiritball(sd,1,0); } break; - + case GS_CRACKER: if (!dstsd) // according to latest patch, should not work on players [Reddozen] { diff --git a/src/map/status.c b/src/map/status.c index e561b7d91..f4af0c8e7 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -7006,9 +7006,9 @@ static int status_natural_heal(DBKey key,void * data,va_list app) while(sregen->tick.sp >= (unsigned int)battle_config.natural_heal_skill_interval) { val = sregen->sp; - if (sd && sd->doridori_counter) { + if (sd && sd->state.doridori) { val*=2; - sd->doridori_counter--; + sd->state.doridori = 0; if ( (sd->class_&MAPID_UPPERMASK) == MAPID_STAR_GLADIATOR && rand()%10000 < battle_config.sg_angel_skill_ratio -- cgit v1.2.3-70-g09d2