summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt1
-rw-r--r--db/const.txt4
-rw-r--r--src/map/map.h3
-rw-r--r--src/map/pc.c2
-rw-r--r--src/map/skill.c11
5 files changed, 14 insertions, 7 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index cb0b668b4..822a81e1c 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -6,6 +6,7 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
09/07/04
* TK_POWER shouldn't count the player him/herself for the skill. [Inkfish]
* Fixed a wrong check of Intimidate on hp. (bugreport:3305)[Inkfish]
+ * Extended ATF_SKILL to ATF_MAGIC and ATF_MISC. [Inkfish]
09/07/03
* Martyr's Reckoning can be perfect dodged. [Inkfish]
* Casting Flying Kick while running and in the spurt status doubles the damage dealt without spurt status. (bugreport:1898) [Inkfish]
diff --git a/db/const.txt b/db/const.txt
index 2bf4d41d4..0698bba85 100644
--- a/db/const.txt
+++ b/db/const.txt
@@ -492,7 +492,9 @@ ATF_TARGET 0x02
ATF_SHORT 0x04
ATF_LONG 0x08
ATF_WEAPON 0x10
-ATF_SKILL 0x20
+ATF_MAGIC 0x20
+ATF_MISC 0x40
+ATF_SKILL 0x60
IG_BlueBox 1
IG_VioletBox 2
diff --git a/src/map/map.h b/src/map/map.h
index ca40bdd98..8e02becbd 100644
--- a/src/map/map.h
+++ b/src/map/map.h
@@ -226,7 +226,8 @@ enum auto_trigger_flag {
ATF_SHORT=0x04,
ATF_LONG=0x08,
ATF_WEAPON=0x10,
- ATF_SKILL=0x20,
+ ATF_MAGIC=0x20,
+ ATF_MISC=0x40,
};
struct block_list {
diff --git a/src/map/pc.c b/src/map/pc.c
index 6c2bffeb8..603f2df97 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -1487,7 +1487,7 @@ static int pc_bonus_addeff(struct s_addeffect* effect, int max, enum sc_type id,
flag|=ATF_SHORT|ATF_LONG; //Default range: both
if (!(flag&(ATF_TARGET|ATF_SELF)))
flag|=ATF_TARGET; //Default target: enemy.
- if (!(flag&(ATF_WEAPON|ATF_SKILL)))
+ if (!(flag&(ATF_WEAPON|ATF_MAGIC|ATF_MISC)))
flag|=ATF_WEAPON; //Defatul type: weapon.
for (i = 0; i < max && effect[i].flag; i++) {
diff --git a/src/map/skill.c b/src/map/skill.c
index 857c0c40f..ec8115080 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -526,10 +526,13 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
rate += sd->addeff[i].arrow_rate;
if( !rate ) continue;
- if( (sd->addeff[i].flag&(ATF_WEAPON|ATF_SKILL)) != (ATF_WEAPON|ATF_SKILL) )
- { // Trigger has attack type consideration.
- if( (sd->addeff[i].flag&ATF_WEAPON && !(attack_type&BF_WEAPON)) || (sd->addeff[i].flag&ATF_SKILL && !(attack_type&(BF_MAGIC|BF_MISC))) )
- continue;
+ if( (sd->addeff[i].flag&(ATF_WEAPON|ATF_MAGIC|ATF_MISC)) != (ATF_WEAPON|ATF_MAGIC|ATF_MISC) )
+ { // Trigger has attack type consideration.
+ if( (sd->addeff[i].flag&ATF_WEAPON && attack_type&BF_WEAPON) ||
+ (sd->addeff[i].flag&ATF_MAGIC && attack_type&BF_MAGIC) ||
+ (sd->addeff[i].flag&ATF_MISC && attack_type&BF_MISC) ) ;
+ else
+ continue;
}
if( (sd->addeff[i].flag&(ATF_LONG|ATF_SHORT)) != (ATF_LONG|ATF_SHORT) )