summaryrefslogtreecommitdiff
path: root/src/map/mob.c
diff options
context:
space:
mode:
authorremoitnane <remoit(DOT)nane(AT)gmail(DOT)com>2010-10-09 21:44:10 -0700
committerremoitnane <remoit(DOT)nane(AT)gmail(DOT)com>2010-10-09 21:44:10 -0700
commit1a6e929124104a93175b36185d2eb66b1f285279 (patch)
tree7f03d277311269ebd1ea9a3c211ec7c034f828b9 /src/map/mob.c
parent8040f42b2e2b2ee95ef49f49d7ccf7d4eeb39201 (diff)
downloadtmwa-1a6e929124104a93175b36185d2eb66b1f285279.tar.gz
tmwa-1a6e929124104a93175b36185d2eb66b1f285279.tar.bz2
tmwa-1a6e929124104a93175b36185d2eb66b1f285279.tar.xz
tmwa-1a6e929124104a93175b36185d2eb66b1f285279.zip
Add "master" target for mob skill use
Diffstat (limited to 'src/map/mob.c')
-rw-r--r--src/map/mob.c35
1 files changed, 28 insertions, 7 deletions
diff --git a/src/map/mob.c b/src/map/mob.c
index d8e6ef8..de691c1 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -4289,13 +4289,23 @@ int mobskill_use (struct mob_data *md, unsigned int tick, int event)
int x = 0, y = 0;
if (ms[i].target <= MST_AROUND)
{
- bl = ((ms[i].target == MST_TARGET
- || ms[i].target ==
- MST_AROUND5) ? map_id2bl (md->
- target_id)
- : (ms[i].target ==
- MST_FRIEND) ? &fmd->bl : &md->bl);
- if (bl != NULL)
+ if (ms[i].target == MST_MASTER)
+ {
+ bl = &md->bl;
+ if (md->master_id)
+ bl = map_id2bl (md->master_id);
+ }
+ else
+ {
+ bl = ((ms[i].target == MST_TARGET
+ || ms[i].target ==
+ MST_AROUND5) ? map_id2bl (md->
+ target_id)
+ : (ms[i].target ==
+ MST_FRIEND) ? &fmd->bl : &md->bl);
+ }
+
+ if (bl)
{
x = bl->x;
y = bl->y;
@@ -4349,6 +4359,15 @@ int mobskill_use (struct mob_data *md, unsigned int tick, int event)
}
else
{
+ if (ms[i].target == MST_MASTER)
+ {
+ struct block_list *bl = &md->bl;
+ if (md->master_id)
+ bl = map_id2bl (md->master_id);
+
+ if (bl && !mobskill_use_id (md, bl, i))
+ return 0;
+ }
// IDŽw’è
if (ms[i].target <= MST_FRIEND)
{
@@ -4904,6 +4923,8 @@ static int mob_readskilldb (void)
{
"friend", MST_FRIEND},
{
+ "master", MST_MASTER},
+ {
"around5", MST_AROUND5},
{
"around6", MST_AROUND6},