summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaruna <haru@dotalux.com>2014-12-27 00:52:08 +0100
committerHaruna <haru@dotalux.com>2014-12-27 00:52:08 +0100
commit73e97a7ef8bd7b63e82f7817f17426db8bfc8949 (patch)
tree23e3dba6e1c705e98e9e6e71a8af24fa44d1c707
parentc564291bf3f2666f709beeecad24de7d95fdf558 (diff)
parent42e9d0b55557a73b60dd3832ba6d75b3b28ff13a (diff)
downloadhercules-73e97a7ef8bd7b63e82f7817f17426db8bfc8949.tar.gz
hercules-73e97a7ef8bd7b63e82f7817f17426db8bfc8949.tar.bz2
hercules-73e97a7ef8bd7b63e82f7817f17426db8bfc8949.tar.xz
hercules-73e97a7ef8bd7b63e82f7817f17426db8bfc8949.zip
Merge pull request #421 from csnv/songredo
Songs aegis behavior updated. Bonus correction
-rw-r--r--db/pre-re/skill_unit_db.txt14
-rw-r--r--db/re/skill_unit_db.txt14
-rw-r--r--src/map/skill.c29
3 files changed, 39 insertions, 18 deletions
diff --git a/db/pre-re/skill_unit_db.txt b/db/pre-re/skill_unit_db.txt
index 196a79d5b..b37ab23f5 100644
--- a/db/pre-re/skill_unit_db.txt
+++ b/db/pre-re/skill_unit_db.txt
@@ -67,15 +67,15 @@
312,0xa4, , 4, 0, -1,party, 0x240 //BD_INTOABYSS
313,0xa5, , 4, 0, -1,party, 0x200 //BD_SIEGFRIED
317,0xa6, , 3, 0,3000,enemy, 0x400 //BA_DISSONANCE
-319,0xa7, , 3, 0, -1,all, 0x440 //BA_WHISTLE
-320,0xa8, , 3, 0, -1,all, 0x440 //BA_ASSASSINCROSS
-321,0xa9, , 3, 0, -1,all, 0x440 //BA_POEMBRAGI
+319,0xa7, , 3, 0,3000,all, 0xC40 //BA_WHISTLE
+320,0xa8, , 3, 0,3000,all, 0xC40 //BA_ASSASSINCROSS
+321,0xa9, , 3, 0,3000,all, 0xC40 //BA_POEMBRAGI
322,0xaa, , 3, 0,6000,all, 0xC40 //BA_APPLEIDUN
325,0xab, , 3, 0,3000,enemy, 0x100 //DC_UGLYDANCE
-327,0xac, , 3, 0, -1,all, 0x140 //DC_HUMMING
-328,0xad, , 3, 0, -1,enemy, 0x100 //DC_DONTFORGETME
-329,0xae, , 3, 0, -1,all, 0x140 //DC_FORTUNEKISS
-330,0xaf, , 3, 0, -1,all, 0x140 //DC_SERVICEFORYOU
+327,0xac, , 3, 0,3000,all, 0x940 //DC_HUMMING
+328,0xad, , 3, 0,3000,enemy, 0x900 //DC_DONTFORGETME
+329,0xae, , 3, 0,3000,all, 0x940 //DC_FORTUNEKISS
+330,0xaf, , 3, 0,3000,all, 0x940 //DC_SERVICEFORYOU
336,0xb2, , 0,-1, -1,noone, 0x000 //WE_CALLPARTNER
339,0x86, , -1, 0, 300,enemy, 0x000 //NPC_DARKGRANDCROSS
362,0xb4, , 0, 2, 300,all, 0x000 //HP_BASILICA
diff --git a/db/re/skill_unit_db.txt b/db/re/skill_unit_db.txt
index f0f359bcc..1d0395bfc 100644
--- a/db/re/skill_unit_db.txt
+++ b/db/re/skill_unit_db.txt
@@ -67,15 +67,15 @@
312,0xa4, , 4, 0, -1,party, 0x240 //BD_INTOABYSS
313,0xa5, , 4, 0, -1,party, 0x200 //BD_SIEGFRIED
317,0xa6, , 3, 0,3000,enemy, 0x400 //BA_DISSONANCE
-319,0xa7, , 3, 0, -1,all, 0x440 //BA_WHISTLE
-320,0xa8, , 3, 0, -1,all, 0x440 //BA_ASSASSINCROSS
-321,0xa9, , 3, 0, -1,all, 0x440 //BA_POEMBRAGI
+319,0xa7, , 3, 0,3000,all, 0xC40 //BA_WHISTLE
+320,0xa8, , 3, 0,3000,all, 0xC40 //BA_ASSASSINCROSS
+321,0xa9, , 3, 0,3000,all, 0xC40 //BA_POEMBRAGI
322,0xaa, , 3, 0,6000,all, 0xC40 //BA_APPLEIDUN
325,0xab, , 3, 0,3000,enemy, 0x100 //DC_UGLYDANCE
-327,0xac, , 3, 0, -1,all, 0x140 //DC_HUMMING
-328,0xad, , 3, 0, -1,enemy, 0x100 //DC_DONTFORGETME
-329,0xae, , 3, 0, -1,all, 0x140 //DC_FORTUNEKISS
-330,0xaf, , 3, 0, -1,all, 0x140 //DC_SERVICEFORYOU
+327,0xac, , 3, 0,3000,all, 0x940 //DC_HUMMING
+328,0xad, , 3, 0,3000,enemy, 0x900 //DC_DONTFORGETME
+329,0xae, , 3, 0,3000,all, 0x940 //DC_FORTUNEKISS
+330,0xaf, , 3, 0,3000,all, 0x940 //DC_SERVICEFORYOU
336,0xb2, , 0,-1, -1,noone, 0x000 //WE_CALLPARTNER
339,0x86, , -1, 0, 300,enemy, 0x000 //NPC_DARKGRANDCROSS
362,0xb4, , 0, 2, 300,all, 0x000 //HP_BASILICA
diff --git a/src/map/skill.c b/src/map/skill.c
index ebcb31680..6bfecf46f 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -11067,7 +11067,7 @@ struct skill_unit_group* skill_unitsetting(struct block_list *src, uint16 skill_
break;
case BA_ASSASSINCROSS:
if(sd)
- val1 = (pc->checkskill(sd,BA_MUSICALLESSON) + 1) / 2;
+ val1 = pc->checkskill(sd,BA_MUSICALLESSON) / 2;
#ifdef RENEWAL
// This formula was taken from a RE calculator
// and the changes published on irowiki
@@ -11908,19 +11908,38 @@ int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *bl, int6
int heal;
#ifdef RENEWAL
struct mob_data *md = BL_CAST(BL_MOB, bl);
- if( md && md->class_ == MOBID_EMPERIUM )
+ if (md && md->class_ == MOBID_EMPERIUM)
break;
#endif
- if( (sg->src_id == bl->id && !(tsc && tsc->data[SC_SOULLINK] && tsc->data[SC_SOULLINK]->val2 == SL_BARDDANCER))
+ if ((sg->src_id == bl->id && !(tsc && tsc->data[SC_SOULLINK] && tsc->data[SC_SOULLINK]->val2 == SL_BARDDANCER))
|| (!(battle_config.song_timer_reset) && tsc && tsc->data[type] && tsc->data[type]->val4 == 1))
break;
+
heal = skill->calc_heal(ss,bl,sg->skill_id, sg->skill_lv, true);
if( tsc->data[SC_AKAITSUKI] && heal )
heal = ~heal + 1;
clif->skill_nodamage(&src->bl, bl, AL_HEAL, heal, 1);
status->heal(bl, heal, 0, 0);
+
+ if (!battle_config.song_timer_reset)
+ sc_start4(ss, bl, type, 100, sg->skill_lv, sg->val1, sg->val2, 0, sg->limit);
}
break;
+ case UNT_POEMBRAGI:
+ case UNT_WHISTLE:
+ case UNT_ASSASSINCROSS:
+ case UNT_HUMMING:
+ case UNT_DONTFORGETME:
+ case UNT_FORTUNEKISS:
+ case UNT_SERVICEFORYOU:
+ if (battle_config.song_timer_reset
+ || (!(battle_config.song_timer_reset) && tsc && tsc->data[type] && tsc->data[type]->val4 == 1)
+ || (sg->src_id == bl->id && !(tsc && tsc->data[SC_SOULLINK] && tsc->data[SC_SOULLINK]->val2 == SL_BARDDANCER))
+ )
+ break;
+
+ sc_start4(ss, bl, type, 100, sg->skill_lv, sg->val1, sg->val2, 0, sg->limit);
+ break;
case UNT_TATAMIGAESHI:
case UNT_DEMONSTRATION:
skill->attack(BF_WEAPON,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0);
@@ -12439,7 +12458,9 @@ int skill_unit_onleft(uint16 skill_id, struct block_list *bl, int64 tick) {
case DC_DONTFORGETME:
case DC_FORTUNEKISS:
case DC_SERVICEFORYOU:
- if ((battle_config.song_timer_reset && sce) || (!battle_config.song_timer_reset && sce && sce->val4 != 1)) {
+ if ((battle_config.song_timer_reset && sce) // athena style
+ || (!battle_config.song_timer_reset && sce && sce->val4 != 1)
+ ) {
timer->delete(sce->timer, status->change_timer);
//NOTE: It'd be nice if we could get the skill_lv for a more accurate extra time, but alas...
//not possible on our current implementation.