diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-02-15 23:48:51 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-02-15 23:48:51 +0300 |
commit | c7a03f4a20ae7a39277417ee566211f7dd94130a (patch) | |
tree | 6ffe7c82956bc2163abfe7ddaa8c8702bee0fbe4 /src/map/mob.c | |
parent | 5391b33e088ebf7c88766abf3a622a6b4b52a2cf (diff) | |
download | evol-hercules-c7a03f4a20ae7a39277417ee566211f7dd94130a.tar.gz evol-hercules-c7a03f4a20ae7a39277417ee566211f7dd94130a.tar.bz2 evol-hercules-c7a03f4a20ae7a39277417ee566211f7dd94130a.tar.xz evol-hercules-c7a03f4a20ae7a39277417ee566211f7dd94130a.zip |
map: add attribute for mobs for stand slaves alive after muster was dead
New mob attribute: 0x8000
Diffstat (limited to 'src/map/mob.c')
-rw-r--r-- | src/map/mob.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/map/mob.c b/src/map/mob.c new file mode 100644 index 0000000..bd0f7f1 --- /dev/null +++ b/src/map/mob.c @@ -0,0 +1,41 @@ +// Copyright (c) Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// Copyright (c) 2014 Evol developers + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "../../../common/HPMi.h" +#include "../../../common/malloc.h" +#include "../../../common/mmo.h" +#include "../../../common/socket.h" +#include "../../../common/strlib.h" +#include "../../../common/timer.h" +#include "../../../map/battle.h" +#include "../../../map/itemdb.h" +#include "../../../map/mob.h" + +int emob_deleteslave_sub(struct block_list *bl, va_list ap) +{ + if (!bl) + return 0; + struct mob_data *md = (struct mob_data *)bl; + if (!md) + return 0; + + const int id = va_arg(ap, int); + if (md->master_id > 0 && md->master_id == id) + { + if (md->db->status.mode & 0x8000) + { + md->master_id = 0; + md->master_dist = 0; + } + else + { + status_kill(bl); + } + } + + return 0; +} |