summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt1
-rw-r--r--db/Changelog.txt1
-rw-r--r--db/skill_cast_db.txt2
-rw-r--r--src/map/skill.c15
4 files changed, 17 insertions, 2 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 43289cd7e..a7690d368 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,7 @@ 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/08/19
+ * Fixed HAMI_CASTLE [Toms]
* Fixed HLIF_CHANGE [Toms]
* Updated HLIF_BRAIN skill [Toms]
* Fixed homunculus intimacy on feeding [Toms]
diff --git a/db/Changelog.txt b/db/Changelog.txt
index db8102d2e..1c2d4c9dc 100644
--- a/db/Changelog.txt
+++ b/db/Changelog.txt
@@ -20,6 +20,7 @@
=========================
08/19
+ * Added HAMI_CASTLE block time [Toms]
* Updated NJ_BAKUENRYU skill tree [Toms]
* Updated HLIF_CHANGE skill [Toms]
* Updated Kouenka, removed aftercast delay [Toms]
diff --git a/db/skill_cast_db.txt b/db/skill_cast_db.txt
index 45600c6e8..a01155f88 100644
--- a/db/skill_cast_db.txt
+++ b/db/skill_cast_db.txt
@@ -969,6 +969,8 @@
8002,0,0,0,40000:35000:30000:25000:20000,0
//-- HLIF_CHANGE
8004,0,0,0,60000:180000:300000,600000:900000:1200000
+//-- HAMI_CASTLE
+8005,0,0,0,0,60000:70000:80000:90000:129000
//-- HAMI_DEFENCE
8006,0,0,0,40000:35000:30000:25000:20000,30000
//-- HAMI_BLOODLUST
diff --git a/src/map/skill.c b/src/map/skill.c
index e3fa451f0..fe6b57d97 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -5523,12 +5523,15 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
break;
case HAMI_CASTLE: //[orn]
- if(rand()%100 > 20*skilllv || src == bl)
- break; //Failed.
+ if (src == bl && sd && sd->hd && merc_is_hom_active(sd->hd)) // (If used with @useskill, put the homunc as dest)
+ bl = &sd->hd->bl;
+ if(rand()%100 < 20*skilllv && src != bl)
{
int x,y;
x = src->x;
y = src->y;
+ if (hd)
+ skill_blockmerc_start(hd, skillid, skill_get_time2(skillid,skilllv));
if (unit_movepos(src,bl->x,bl->y,0,0)) {
clif_skill_nodamage(src,bl,skillid,skilllv,1);
@@ -5541,6 +5544,14 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
AREA_SIZE, BL_MOB, bl, src);
}
}
+ else
+ {
+ // Failed
+ if (hd)
+ clif_skill_fail(hd->master, skillid, 0, 0);
+ else
+ clif_skill_fail(sd, skillid, 0, 0);
+ }
break;
case HVAN_CHAOTIC: //[orn]
{