From ab7c57743e1807cca8c994a38137065f5b174a0c Mon Sep 17 00:00:00 2001 From: skotlex Date: Thu, 3 Aug 2006 15:54:46 +0000 Subject: - Added RUDE_ATTACKED_COUNT so you can easily adjust how many rude-attacks should happen before a mob uses the rude-attacked skill. Value has been set to 2 for now. - Now when a mob changes target (to someone they can hit) their rude-attacked count won't be reset, but instead will be reduced by one. - SC_SPEEDUP0 can now stack with the other speed raising buffs. - Changed the inf2 value of SA_DISPEL so it can be casted on party/guild mates, but not yourself. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8104 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 7 +++++++ db/Changelog.txt | 2 ++ db/skill_db.txt | 2 +- src/map/mob.c | 12 ++++++++---- src/map/status.c | 4 ++-- 5 files changed, 20 insertions(+), 7 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index aef626250..8e8afc5e1 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,13 @@ Date Added AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2006/08/03 + * Added RUDE_ATTACKED_COUNT so you can easily adjust how many rude-attacks + should happen before a mob uses the rude-attacked skill. Value has been set + to 2 for now. [Skotlex] + * Now when a mob changes target (to someone they can hit) their + rude-attacked count won't be reset, but instead will be reduced by one. + [Skotlex] + * SC_SPEEDUP0 can now stack with the other speed raising buffs. [Skotlex] * Some adjustments so that the last-skill-used will be correctly cleared when your combo-time ends. [Skotlex] * Fix a bug in atcommand_charspeed [Toms] diff --git a/db/Changelog.txt b/db/Changelog.txt index 92702c866..4a3bc039e 100644 --- a/db/Changelog.txt +++ b/db/Changelog.txt @@ -20,6 +20,8 @@ ========================= 08/03 + * Changed the inf2 value of SA_DISPEL so it can be casted on party/guild + mates, but not yourself. [Skotlex] * Updated some monsters [Playtester] - Gig and Deleter are now Fire 2 element - reduced attack power of Skeggiolds diff --git a/db/skill_db.txt b/db/skill_db.txt index edb017a8b..bb251f974 100644 --- a/db/skill_db.txt +++ b/db/skill_db.txt @@ -309,7 +309,7 @@ 286,2,6,2,0,1,0,5,1,yes,0,0,0,magic,0 //SA_DELUGE#Deluge# 287,2,6,2,0,1,0,5,1,yes,0,0,0,magic,0 //SA_VIOLENTGALE#Whirlwind# 288,3,6,2,0,1,0,5,1,yes,0,0,0,magic,0 //SA_LANDPROTECTOR#Magnetic Earth# -289,9,6,1,0,1,0,5,1,yes,0,0,0,magic,0 //SA_DISPELL#Dispel# +289,9,6,1,0,1,0,5,1,yes,0,7680,0,magic,0 //SA_DISPELL#Dispel# 290,0,6,4,0,1,0,10,1,yes,0,0,0,magic,0 //SA_ABRACADABRA#Hocus-pocus# 291,9,6,1,0,1,0,1,1,yes,0,2,0,magic,0 //SA_MONOCELL#Monocell# 292,9,6,1,0,1,0,1,1,yes,0,2,0,magic,0 //SA_CLASSCHANGE#Class Change# diff --git a/src/map/mob.c b/src/map/mob.c index a06cc3731..f9e85dc57 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -43,6 +43,9 @@ #define MOB_LAZYWARPPERC 20 // Warp probability in the negligent mode MOB (rate of 1000 minute) #define MAX_MINCHASE 30 //Max minimum chase value to use for mobs. + +#define RUDE_ATTACKED_COUNT 2 //After how many rude-attacks should the skill be used? + //Dynamic mob database, allows saving of memory when there's big gaps in the mob_db [Skotlex] struct mob_db *mob_db_data[MAX_MOB_DB+1]; struct mob_db *mob_dummy = NULL; //Dummy mob to be returned when a non-existant one is requested. @@ -1105,7 +1108,7 @@ static int mob_ai_sub_hard(struct block_list *bl,va_list ap) !battle_check_range(&md->bl, tbl, md->status.rhw.range)) { //Rude-attacked (avoid triggering due to can-walk delay). if (DIFF_TICK(tick, md->ud.canmove_tick) > 0 && - md->attacked_count++ > 3) + md->attacked_count++ >= RUDE_ATTACKED_COUNT) mobskill_use(md, tick, MSC_RUDEATTACKED); } } else @@ -1120,7 +1123,7 @@ static int mob_ai_sub_hard(struct block_list *bl,va_list ap) ((TBL_PC*)abl)->state.gangsterparadise ) ) { //Can't attack back - if (md->attacked_count++ > 3) { + if (md->attacked_count++ >= RUDE_ATTACKED_COUNT) { if (mobskill_use(md, tick, MSC_RUDEATTACKED) == 0 && can_move) { int dist = rand() % 10 + 1;//Œã‘Þ‚·‚é‹——£ @@ -1139,7 +1142,8 @@ static int mob_ai_sub_hard(struct block_list *bl,va_list ap) //or if the previous target is not attacking the mob. [Skotlex] md->target_id = md->attacked_id; // set target md->state.aggressive = 0; //Retaliating. - //md->attacked_count = 0; //Should we reset rude attack count? + if (md->attacked_count) + md->attacked_count--; //Should we reset rude attack count? md->min_chase = dist+md->db->range3; if(md->min_chase>MAX_MINCHASE) md->min_chase=MAX_MINCHASE; @@ -2676,7 +2680,7 @@ int mobskill_use(struct mob_data *md, unsigned int tick, int event) case MSC_SKILLUSED: // specificated skill used flag = ((event & 0xffff) == MSC_SKILLUSED && ((event >> 16) == c2 || c2 == 0)); break; case MSC_RUDEATTACKED: - flag = (md->attacked_count >= 3); + flag = (md->attacked_count >= RUDE_ATTACKED_COUNT); if (flag) md->attacked_count = 0; //Rude attacked count should be reset after the skill condition is met. Thanks to Komurka [Skotlex] break; case MSC_MASTERHPLTMAXRATE: diff --git a/src/map/status.c b/src/map/status.c index 9752483d4..81b8641dd 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -3422,10 +3422,10 @@ static unsigned short status_calc_speed(struct block_list *bl, struct status_cha if(sc->data[SC_WEDDING].timer!=-1) speed += 300; - //% increases (they don't stack) + //% increases (they don't stack, with the exception of Speedup1? @.@) if(sc->data[SC_SPEEDUP1].timer!=-1) speed -= speed * 50/100; - else if(sc->data[SC_SPEEDUP0].timer!=-1) + if(sc->data[SC_SPEEDUP0].timer!=-1) speed -= speed * 25/100; else if(sc->data[SC_INCREASEAGI].timer!=-1) speed -= speed * 25/100; -- cgit v1.2.3-70-g09d2