diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-03-28 15:49:36 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-03-28 15:49:36 +0000 |
commit | 2b4787d78f47142d979cb568e179387fb4befc7b (patch) | |
tree | 5d9bb07a9d54bb882849c363d096f70a402e52a4 | |
parent | 16d0bed247603d86d33b6b6b2cf6e3e2251abab4 (diff) | |
download | hercules-2b4787d78f47142d979cb568e179387fb4befc7b.tar.gz hercules-2b4787d78f47142d979cb568e179387fb4befc7b.tar.bz2 hercules-2b4787d78f47142d979cb568e179387fb4befc7b.tar.xz hercules-2b4787d78f47142d979cb568e179387fb4befc7b.zip |
- Fixed summon mobs being able to cast "summon" skills.
- Summoned mobs will inherit the size and ai properties of the master.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5790 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r-- | Changelog-Trunk.txt | 2 | ||||
-rw-r--r-- | src/map/mob.c | 2 | ||||
-rw-r--r-- | src/map/unit.c | 9 |
3 files changed, 13 insertions, 0 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 7caae1ca2..7e25a962e 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,8 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2006/03/28
+ * Fixed summon mobs being able to cast "summon" skills. [Skotlex]
+ * Summoned mobs will inherit the size and ai properties of the master. [Skotlex]
* Added a debug function to locate all "looping warps". [Skotlex]
- Now will someone help cleanup those warps?
* Some cleanup of the skill-use functions in clif.c [Skotlex]
diff --git a/src/map/mob.c b/src/map/mob.c index 034aca215..a344375b1 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -2503,6 +2503,8 @@ int mob_summonslave(struct mob_data *md2,int *value,int amount,int skill_id) data.x = md2->bl.x;
data.y = md2->bl.y;
data.num = 1;
+ data.state.size = md2->special_state.size;
+ data.state.ai = md2->special_state.ai;
if(mobdb_checkid(value[0]) == 0)
return 0;
diff --git a/src/map/unit.c b/src/map/unit.c index fe62c5da4..605a8bc24 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -773,6 +773,15 @@ int unit_skilluse_id2(struct block_list *src, int target_id, int skill_num, int if (!skill_check_condition(sd, skill_num, skill_lv, 0))
return 0;
}
+ //TODO: Add type-independant skill_check_condition function.
+ if (src->type == BL_MOB) {
+ switch (skill_num) {
+ case NPC_SUMMONSLAVE:
+ case NPC_SUMMONMONSTER:
+ if (((TBL_MOB*)src)->master_id)
+ return 0;
+ }
+ }
if(src->id != target_id &&
!battle_check_range(src,target,skill_get_range2(src, skill_num,skill_lv)
|