diff options
-rw-r--r-- | Changelog-Trunk.txt | 7 | ||||
-rw-r--r-- | db/Changelog.txt | 2 | ||||
-rw-r--r-- | db/skill_db.txt | 2 | ||||
-rw-r--r-- | src/map/mob.c | 12 | ||||
-rw-r--r-- | 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; |