summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcelest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec>2005-04-05 17:00:51 +0000
committercelest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec>2005-04-05 17:00:51 +0000
commitd1527fb4557f1b175677bfd171afff2994b84820 (patch)
tree160b41b83f5e59dbbd2d2f045e3b75f46b6a9008
parentec7f5035ca95489c32d7e49f4b0f8f1c76d36d7f (diff)
downloadhercules-d1527fb4557f1b175677bfd171afff2994b84820.tar.gz
hercules-d1527fb4557f1b175677bfd171afff2994b84820.tar.bz2
hercules-d1527fb4557f1b175677bfd171afff2994b84820.tar.xz
hercules-d1527fb4557f1b175677bfd171afff2994b84820.zip
* Fixed skill tree entries for Vulcan Arrow, and Throw Arrow
* Fixed damage reflecting * Fixed Backstab to not have a push back effect * Fixed auto spell to not taking SP * Fixed Sanctuary to have proper healing count git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/branches/stable@1412 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r--Changelog-SVN.txt4
-rw-r--r--db/Changelog.txt4
-rw-r--r--db/skill_db.txt2
-rw-r--r--db/skill_tree.txt6
-rw-r--r--src/map/battle.c79
-rw-r--r--src/map/skill.c26
6 files changed, 62 insertions, 59 deletions
diff --git a/Changelog-SVN.txt b/Changelog-SVN.txt
index 0af906d0b..f5ad56326 100644
--- a/Changelog-SVN.txt
+++ b/Changelog-SVN.txt
@@ -2,6 +2,10 @@
Date Added
04/05
+ * Fixed damage reflecting (silly typo xP) [celest]
+ * Fixed Backstab to not have a push back effect [celest]
+ * Fixed auto spell to not taking SP, thanks to Hekate
+ * Fixed Sanctuary to have proper healing count, thanks to Hekate
* Simplified Valaris' online_timer [celest]
* Updated Fogwall, Spiderweb, and HP Conversion, thanks to redcard [celest]
* Adding saving character online/offline for TXT char and login (unfinished)
diff --git a/db/Changelog.txt b/db/Changelog.txt
index 072d5dcf7..21f7dd224 100644
--- a/db/Changelog.txt
+++ b/db/Changelog.txt
@@ -8,6 +8,10 @@
Einbroch items == 5%
Skill databases == celest working on them i believe.
+04/05
+ * Fixed skill tree entries for Vulcan Arrow, and Throw Arrow for gypsies,
+ thanks to Hekate
+
04/04
* Removed required skills for Berserk (only job level 50 is needed) [DracoRPG]
* Re-added MDEF +15 to Resting Cat [DracoRPG]
diff --git a/db/skill_db.txt b/db/skill_db.txt
index 1b98dee1f..db2e66370 100644
--- a/db/skill_db.txt
+++ b/db/skill_db.txt
@@ -261,7 +261,7 @@
//208 193に同じ
210,0,0,0,0,0,10,0,no,0,0,0,weapon,0 //RG_SNATCHER#スナッ?ャ?#
211,1,6,1,0,1,10,1,no,0,0,0,weapon,0 //RG_STEALCOIN#スティ?ルコイン#
-212,-1,6,1,0,0,10,1,no,0,0,0,weapon,1 //RG_BACKSTAP#バックス?ブ#
+212,-1,6,1,0,0,10,1,no,0,0,0,weapon,0 //RG_BACKSTAP#バックス?ブ#
213,0,0,0,0,0,5,0,no,0,0,0,none,0 //RG_TUNNELDRIVE#トンネルドライブ#
214,0,6,4,0,1,5,1,no,0,0,0,weapon,0 //RG_RAID#サプライズア?ック#
215,1,6,1,0,1,5,1,no,0,0,0,weapon,0 //RG_STRIPWEAPON#ストリップウェ?ン#
diff --git a/db/skill_tree.txt b/db/skill_tree.txt
index 70d2b2e1d..debfaef00 100644
--- a/db/skill_tree.txt
+++ b/db/skill_tree.txt
@@ -1152,7 +1152,7 @@
4020,312,1,306,1,0,0,0,0,0,0,0,0//BD_INTOABYSS #深淵の中に#
4020,313,5,321,10,0,0,0,0,0,0,0,0//BD_SIEGFRIED #不死身のジークフリード#
4020,314,1,312,1,308,1,0,0,0,0,0,0//BD_RAGNAROK #ラグナロク#
-4020,394,10,0,0,0,0,0,0,0,0,0,0//CG_ARROWVULCAN
+4020,394,10,47,5,316,1,0,0,0,0,0,0//CG_ARROWVULCAN
4020,395,5,45,5,315,7,0,0,0,0,0,0//CG_MOONLIT
4020,396,1,45,5,315,5,0,0,0,0,0,0//CG_MARIONETTE
//Gypsy
@@ -1166,7 +1166,7 @@
4021,147,1,0,0,0,0,0,0,0,0,0,0//AC_MAKINGARROW #矢作成#
4021,148,1,0,0,0,0,0,0,0,0,0,0//AC_CHARGEARROW #チャージアロー#
4021,323,10,0,0,0,0,0,0,0,0,0,0//DC_DANCINGLESSON #ダンスの練習#
-4021,324,5,0,0,0,0,0,0,0,0,0,0//DC_THROWARROW #矢撃ち#
+4021,324,5,323,3,0,0,0,0,0,0,0,0//DC_THROWARROW #矢撃ち#
4021,325,5,323,1,304,1,0,0,0,0,0,0//DC_UGLYDANCE #自分勝手なダンス#
4021,326,5,305,1,0,0,0,0,0,0,0,0//DC_SCREAM #スクリーム#
4021,327,10,325,3,0,0,0,0,0,0,0,0//DC_HUMMING #ハミング#
@@ -1184,7 +1184,7 @@
4021,312,1,306,1,0,0,0,0,0,0,0,0//BD_INTOABYSS #深淵の中に#
4021,313,5,329,10,0,0,0,0,0,0,0,0//BD_SIEGFRIED #不死身のジークフリード#
4021,314,1,312,1,308,1,0,0,0,0,0,0//BD_RAGNAROK #ラグナロク#
-4021,394,10,0,0,0,0,0,0,0,0,0,0//CG_ARROWVULCAN
+4021,394,10,47,5,324,1,0,0,0,0,0,0//CG_ARROWVULCAN
4021,395,5,45,5,323,7,0,0,0,0,0,0//CG_MOONLIT
4021,396,1,45,5,323,5,0,0,0,0,0,0//CG_MARIONETTE
// Peco Paladin
diff --git a/src/map/battle.c b/src/map/battle.c
index 3529b9946..b7e0320e8 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -3574,30 +3574,27 @@ int battle_weapon_attack( struct block_list *src,struct block_list *target,
}
if(sd) {
if(sd->autospell_id > 0 && rand()%100 < sd->autospell_rate) {
- int skilllv=sd->autospell_lv,i,f=0,sp;
+ int skilllv = sd->autospell_lv, i;
i = rand()%100;
if(i >= 50) skilllv -= 2;
else if(i >= 15) skilllv--;
if(skilllv < 1) skilllv = 1;
- sp = skill_get_sp(sd->autospell_id,skilllv)*2/3;
- if(sd->status.sp >= sp) {
- if((i=skill_get_inf(sd->autospell_id) == 2) || i == 32)
- f = skill_castend_pos2(src,target->x,target->y,sd->autospell_id,skilllv,tick,flag);
- else {
- switch( skill_get_nk(sd->autospell_id) ) {
- case 0: case 2:
- f = skill_castend_damage_id(src,target,sd->autospell_id,skilllv,tick,flag);
- break;
- case 1:/* 支援系 */
- if((sd->autospell_id==AL_HEAL || (sd->autospell_id==ALL_RESURRECTION && target->type != BL_PC)) && battle_check_undead(race,ele))
- f = skill_castend_damage_id(src,target,sd->autospell_id,skilllv,tick,flag);
- else
- f = skill_castend_nodamage_id(src,target,sd->autospell_id,skilllv,tick,flag);
- break;
- }
+
+ if((i=skill_get_inf(sd->autospell_id) == 2) || i == 32)
+ skill_castend_pos2(src,target->x,target->y,sd->autospell_id,skilllv,tick,flag);
+ else {
+ switch( skill_get_nk(sd->autospell_id) ) {
+ case 0: case 2:
+ skill_castend_damage_id(src,target,sd->autospell_id,skilllv,tick,flag);
+ break;
+ case 1:/* 支援系 */
+ if((sd->autospell_id==AL_HEAL || (sd->autospell_id==ALL_RESURRECTION && target->type != BL_PC)) && battle_check_undead(race,ele))
+ skill_castend_damage_id(src,target,sd->autospell_id,skilllv,tick,flag);
+ else
+ skill_castend_nodamage_id(src,target,sd->autospell_id,skilllv,tick,flag);
+ break;
}
- if(!f) pc_heal(sd,0,-sp);
- }
+ }
}
if (wd.flag&BF_WEAPON && src != target && (wd.damage > 0 || wd.damage2 > 0)) {
int hp = 0,sp = 0;
@@ -3626,39 +3623,37 @@ int battle_weapon_attack( struct block_list *src,struct block_list *target,
struct map_session_data *tsd = (struct map_session_data *)target;
if(tsd && ((sd && !sd->state.arrow_atk) || (status_get_range(src)<=2)) &&
tsd->autospell2_id > 0 && rand()%100 < tsd->autospell2_rate) {
- int skilllv = tsd->autospell_lv,i,f=0,sp;
+ struct block_list *tbl;
+ int skilllv = tsd->autospell_lv, i;
i = rand()%100;
if(i >= 50) skilllv -= 2;
else if(i >= 15) skilllv--;
if(skilllv < 1) skilllv = 1;
- sp = skill_get_sp(tsd->autospell2_id,skilllv)*2/3;
- if(tsd->status.sp >= sp) {
- struct block_list *tbl;
- if (tsd->autospell2_type == 0) tbl = target;
- else tbl = src;
- if((i=skill_get_inf(tsd->autospell2_id) == 2) || i == 32)
- f = skill_castend_pos2(target,tbl->x,tbl->y,tsd->autospell2_id,skilllv,tick,flag);
- else {
- switch( skill_get_nk(tsd->autospell2_id) ) {
- case 0: case 2:
- f = skill_castend_damage_id(target,tbl,tsd->autospell2_id,skilllv,tick,flag);
- break;
- case 1:/* 支援系 */
- if((tsd->autospell2_id==AL_HEAL || (tsd->autospell2_id==ALL_RESURRECTION && tbl->type != BL_PC)) &&
- battle_check_undead(status_get_race(tbl),status_get_elem_type(tbl)))
- f = skill_castend_damage_id(target,tbl,tsd->autospell2_id,skilllv,tick,flag);
- else
- f = skill_castend_nodamage_id(target,tbl,tsd->autospell2_id,skilllv,tick,flag);
+
+ if (tsd->autospell2_type == 0) tbl = target;
+ else tbl = src;
+ if((i=skill_get_inf(tsd->autospell2_id) == 2) || i == 32)
+ skill_castend_pos2(target,tbl->x,tbl->y,tsd->autospell2_id,skilllv,tick,flag);
+ else {
+ switch( skill_get_nk(tsd->autospell2_id) ) {
+ case 0: case 2:
+ skill_castend_damage_id(target,tbl,tsd->autospell2_id,skilllv,tick,flag);
+ break;
+ case 1:/* 支援系 */
+ if((tsd->autospell2_id==AL_HEAL || (tsd->autospell2_id==ALL_RESURRECTION && tbl->type != BL_PC)) &&
+ battle_check_undead(status_get_race(tbl),status_get_elem_type(tbl)))
+ skill_castend_damage_id(target,tbl,tsd->autospell2_id,skilllv,tick,flag);
+ else
+ skill_castend_nodamage_id(target,tbl,tsd->autospell2_id,skilllv,tick,flag);
break;
- }
}
- if(!f) pc_heal(tsd,0,-sp);
- }
+ }
}
}
if(rdamage > 0)
- battle_delay_damage(tick+wd.amotion,src,target,rdamage,0);
+ battle_delay_damage(tick+wd.amotion,target,src,rdamage,0);
+
if(t_sc_data && t_sc_data[SC_AUTOCOUNTER].timer != -1 && t_sc_data[SC_AUTOCOUNTER].val4 > 0) {
if(t_sc_data[SC_AUTOCOUNTER].val3 == src->id)
battle_weapon_attack(target,src,tick,0x8000|t_sc_data[SC_AUTOCOUNTER].val1);
diff --git a/src/map/skill.c b/src/map/skill.c
index 887395b40..fe22ce6cd 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -5633,26 +5633,26 @@ int skill_unit_onplace_timer(struct skill_unit *src,struct block_list *bl,unsign
switch (sg->unit_id) {
case 0x83: /* サンクチュアリ */
{
- int race=status_get_race(bl);
+ int race = status_get_race(bl);
- if (battle_check_undead(race,status_get_elem_type(bl)) || race==6) {
- if (skill_attack(BF_MAGIC,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0)) {
- // reduce healing count if this was meant for damaging [celest]
- // sg->val1 /= 2;
- sg->val1--; // チャットキャンセルに対応
+ if (battle_check_undead(race, status_get_elem_type(bl)) || race==6) {
+ if (skill_attack(BF_MAGIC, ss, &src->bl, bl, sg->skill_id, sg->skill_lv, tick, 0)) {
+ // reduce healing count if this was meant for damaging [hekate]
+ sg->val1 -= 2;
+ //sg->val1--; // チャットキャンセルに対応
}
} else {
int heal = sg->val2;
- if (status_get_hp(bl)>=status_get_max_hp(bl))
+ if (status_get_hp(bl) >= status_get_max_hp(bl))
break;
- if(bl->type==BL_PC && ((struct map_session_data *)bl)->special_state.no_magic_damage)
- heal=0; /* 黄金蟲カード(ヒール量0) */
- clif_skill_nodamage(&src->bl,bl,AL_HEAL,heal,1);
- battle_heal(NULL,bl,heal,0,0);
- if (diff>=500)
+ if (bl->type == BL_PC && ((struct map_session_data *)bl)->special_state.no_magic_damage)
+ heal = 0; /* 黄金蟲カード(ヒール量0) */
+ clif_skill_nodamage(&src->bl, bl, AL_HEAL, heal, 1);
+ battle_heal(NULL, bl, heal, 0, 0);
+ if (diff >= 500)
sg->val1--; // 新規に入ったユニットだけカウント
}
- if (sg->val1<=0)
+ if (sg->val1 <= 0)
skill_delunitgroup(sg);
break;
}