diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-07-11 02:49:44 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-07-11 02:49:44 +0000 |
commit | 770b5fc92df304517a37e701026b6f87f064a488 (patch) | |
tree | 3c6b792b228780b36b8fe18a31f46b77363c3425 /src/map/skill.c | |
parent | 69e30e1de648a546d1faf3d058dfb88e2181d413 (diff) | |
download | hercules-770b5fc92df304517a37e701026b6f87f064a488.tar.gz hercules-770b5fc92df304517a37e701026b6f87f064a488.tar.bz2 hercules-770b5fc92df304517a37e701026b6f87f064a488.tar.xz hercules-770b5fc92df304517a37e701026b6f87f064a488.zip |
- Corrected Frost Nova's splash range and Land Protector's cast range. Thanks to Haplo.
- Fixed Beast Strafing not having inf2 = 512 (to make it a target-auto-select skill)
- Fixed the duration of Land Protector, removed unusued time2 value from their entries in skill_cast_db. Thanks to Haplo.
- Corrected Warp Portal being unable to warp people who are standing on it on the moment it triggers.
- Fixed @follow stopping the moment you are warped.
- Fixed pc_additem messing with the equip field of the passed item data. Fixes the famous "equip stuff on your arrow slot" bug.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7607 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/skill.c')
-rw-r--r-- | src/map/skill.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index 8b3576e94..164a6c7c2 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -6242,6 +6242,15 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, int skillid, unit_flag = skill_get_unit_flag(skillid); layout = skill_get_unit_layout(skillid,skilllv,src,x,y); + if (skillid == AL_WARP && flag && src->type == BL_SKILL) + { //Warp Portal morphing to active mode, extract relevant data from src. [Skotlex] + group= ((TBL_SKILL*)src)->group; + src = map_id2bl(group->src_id); + if (!src) return NULL; + val2=group->val2; //Copy the (x,y) position you warp to + val3=group->val3; //as well as the mapindex to warp to. + } + BL_CAST(BL_PC, src, sd); status = status_get_status_data(src); sc= status_get_sc(src); // for traps, firewall and fogwall - celest @@ -6263,7 +6272,6 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, int skillid, val1=skilllv+6; if(!(flag&1)) limit=2000; - active_flag=0; break; case PR_SANCTUARY: /* サンクチュアリ */ @@ -7259,16 +7267,8 @@ int skill_unit_onlimit (struct skill_unit *src, unsigned int tick) nullpo_retr(0, sg=src->group); switch(sg->unit_id){ - case UNT_WARP_ACTIVE: /* ワープポータル(発動前) */ - { - struct skill_unit_group *group= - skill_unitsetting(map_id2bl(sg->src_id),sg->skill_id,sg->skill_lv, - src->bl.x,src->bl.y,1); - if(group == NULL) - return 0; - group->val2=sg->val2; //Copy the (x,y) position you warp to - group->val3=sg->val3; //as well as the mapindex to warp to. - } + case UNT_WARP_ACTIVE: + skill_unitsetting(&src->bl,sg->skill_id,sg->skill_lv,src->bl.x,src->bl.y,1); break; case UNT_ICEWALL: /* アイスウォール */ |