summaryrefslogtreecommitdiff
path: root/src/map
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
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')
-rw-r--r--src/map/clif.c2
-rw-r--r--src/map/skill.c52
2 files changed, 24 insertions, 30 deletions
diff --git a/src/map/clif.c b/src/map/clif.c
index 9d1e8d6dc..477180fc2 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -4827,7 +4827,7 @@ int clif_skill_estimation(struct map_session_data *sd,struct block_list *dst)
// WBUFB(buf,20+i)= (unsigned char)((fix=battle_attr_fix(NULL,dst,100,i+1,status->def_ele, status->ele_lv))<0?0:fix);
if(sd->status.party_id>0)
- clif_send(buf,packet_len_table[0x18c],&sd->bl,PARTY_AREA);
+ clif_send(buf,packet_len_table[0x18c],&sd->bl,PARTY_SAMEMAP);
else{
WFIFOHEAD(sd->fd,packet_len_table[0x18c]);
memcpy(WFIFOP(sd->fd,0),buf,packet_len_table[0x18c]);
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;
}