summaryrefslogtreecommitdiff
path: root/src/map/skill.c
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-07-10 14:51:34 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-07-10 14:51:34 +0000
commit454f2747e5cc8d222b8bdbe39bfda2f433003747 (patch)
tree9ee9026350b54c9dc4c6156a664cd543013b3879 /src/map/skill.c
parent143de8ba7b476f7c1a4934a478d9169214a205ce (diff)
downloadhercules-454f2747e5cc8d222b8bdbe39bfda2f433003747.tar.gz
hercules-454f2747e5cc8d222b8bdbe39bfda2f433003747.tar.bz2
hercules-454f2747e5cc8d222b8bdbe39bfda2f433003747.tar.xz
hercules-454f2747e5cc8d222b8bdbe39bfda2f433003747.zip
- Corrected skill require entry from the Twilight Pharmacy skills.
- Removed the Frost Nova entry from skill_unit_db - Moved Gospel's code to skill_castend_pos2 - Some cleaning of skill_castend_pos2 - Fixed a unnecessary map_freeblock_unlock call in the default case of skill_castend_pos2 - Sense/Estimation will now display the mob info window to all party members in the same map. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7595 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/skill.c')
-rw-r--r--src/map/skill.c52
1 files changed, 23 insertions, 29 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index aaf572d42..7aad7d7e2 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -4119,19 +4119,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
}
break;
- case PA_GOSPEL: /* ゴスペル */
- if (!tsc) break;
- if (tsc->data[type].timer != -1 && tsc->data[type].val4 == BCT_SELF) {
- i = status_change_end(bl,SC_GOSPEL,-1);
- } else {
- struct skill_unit_group *sg = skill_unitsetting(src,skillid,skilllv,src->x,src->y,0);
- if (tsc->data[type].timer != -1)
- status_change_end(bl,type,-1); //Was under someone else's Gospel. [Skotlex]
- i = sc_start4(bl,type,100,skilllv,0,(int)sg,BCT_SELF,skill_get_time(skillid,skilllv));
- }
- clif_skill_nodamage(src,bl,skillid,skilllv,i);
- break;
-
case BD_ADAPTATION: /* アドリブ */
if(tsc && tsc->data[SC_DANCING].timer!=-1){
clif_skill_nodamage(src,bl,skillid,skilllv,1);
@@ -5729,7 +5716,8 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s
{
struct map_session_data *sd=NULL;
struct status_change *sc;
- int i;
+ struct skill_unit_group *sg;
+ int i,type;
//if(skilllv <= 0) return 0;
if(skillid > 0 && skilllv <= 0) return 0; // celest
@@ -5742,14 +5730,16 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s
if(src->type==BL_PC)
sd=(struct map_session_data *)src;
- sc = status_get_sc(src); //Needed for Magic Power checks.
+ sc = status_get_sc(src);
if (sc && !sc->count)
sc = NULL; //Unneeded.
+ type = SkillStatusChangeTable(skillid);
switch (skillid) { //Skill effect.
case WZ_METEOR:
case MO_BODYRELOCATION:
case CR_CULTIVATION:
+ case HW_GANBANTEIN:
break; //Effect is displayed on respective switch case.
default:
if(skill_get_inf(skillid)&INF_SELF_SKILL)
@@ -5991,14 +5981,9 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s
break;
case HW_GRAVITATION:
- {
- struct skill_unit_group *sg;
- clif_skill_poseffect(src,skillid,skilllv,x,y,tick);
- sg = skill_unitsetting(src,skillid,skilllv,x,y,0);
- sc_start4(src,SkillStatusChangeTable(skillid),100,
- skilllv,0,BCT_SELF,(int)sg,skill_get_time(skillid,skilllv));
- flag|=1;
- }
+ sg = skill_unitsetting(src,skillid,skilllv,x,y,0);
+ sc_start4(src,type,100,skilllv,0,BCT_SELF,(int)sg,skill_get_time(skillid,skilllv));
+ flag|=1;
break;
// Plant Cultivation [Celest]
@@ -6019,20 +6004,29 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s
clif_skill_fail(sd,skillid,0,0);
}
break;
+
case SG_SUN_WARM:
case SG_MOON_WARM:
case SG_STAR_WARM:
- {
- struct skill_unit_group *sg;
+ sg = skill_unitsetting(src,skillid,skilllv,src->x,src->y,0);
+ sc_start4(src,type,100,skilllv,0,0,(int)sg,skill_get_time(skillid,skilllv));
+ flag|=1;
+ break;
+
+ case PA_GOSPEL:
+ if (sc && sc->data[type].timer != -1 && sc->data[type].val4 == BCT_SELF)
+ status_change_end(src,SC_GOSPEL,-1);
+ else
+ {
sg = skill_unitsetting(src,skillid,skilllv,src->x,src->y,0);
- clif_skill_nodamage(src,src,skillid,skilllv,
- sc_start4(src,SkillStatusChangeTable(skillid),
- 100,skilllv,0,0,(int)sg,skill_get_time(skillid,skilllv)));
+ if (sc->data[type].timer != -1)
+ status_change_end(src,type,-1); //Was under someone else's Gospel. [Skotlex]
+ sc_start4(src,type,100,skilllv,0,(int)sg,BCT_SELF,skill_get_time(skillid,skilllv));
}
break;
+
default:
ShowWarning("skill_castend_pos2: Unknown skill used:%d\n",skillid);
- map_freeblock_unlock();
return 1;
}