summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt7
-rw-r--r--db/Changelog.txt2
-rw-r--r--db/skill_db.txt2
-rw-r--r--src/map/mob.c12
-rw-r--r--src/map/status.c4
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;