ソースを参照

Blaze Shield slowdown, Sanctuary knock-back (fixes #963)
* Blaze Shield now properly slows down enemies while still making sure they take all the hits while moving over a fire cell
* Fixed some skills still having damage delay, even though their source is a unit (BL_SKILL)
* Sanctuary knock-back is now 2 cells instead of 1 and pushes "away from cell center of each cell", similar to Storm Gust

Playtester 9 年 前
コミット
2c3cb602dc

+ 1 - 1
db/pre-re/skill_db.txt

@@ -164,7 +164,7 @@
 67,9,6,16,0,0x1,0,3,1,yes,0,0x200,0,magic,0,0x0,	PR_SUFFRAGIUM,Suffragium
 68,9,6,16,6,0x31,0,5,1,yes,0,0,0,magic,0,0x0,	PR_ASPERSIO,Aspersio
 69,9,6,2,0,0x23,1,5,1,yes,0,0x40,0,magic,0,0x0,	PR_BENEDICTIO,B.S. Sacramenti
-70,9,6,2,6,0x21,0,10,1,yes,0,0,0,magic,1,0x0,	PR_SANCTUARY,Sanctuary
+70,9,6,2,6,0x21,0,10,1,yes,0,0,0,magic,2,0x0,	PR_SANCTUARY,Sanctuary
 71,9,6,16,0,0x1,0,4,1,yes,0,0,0,magic,0,0x0,		PR_SLOWPOISON,Slow Poison
 72,9,6,16,0,0x1,0,1,1,yes,0,0,0,magic,0,0x20,		PR_STRECOVERY,Status Recovery
 73,9,6,16,0,0x1,0,10,1,yes,0,0,0,magic,0,0x0,	PR_KYRIE,Kyrie Eleison

+ 1 - 1
db/pre-re/skill_unit_db.txt

@@ -100,7 +100,7 @@
 516,0x86,    ,  3, 0, 100,enemy, 0x000	//GS_DESPERADO
 521,0xbe,    ,  0, 1,1000,enemy, 0x000	//GS_GROUNDDRIFT
 527,0xbc,    , -1, 0,2000,enemy, 0x018	//NJ_TATAMIGAESHI
-535,0xbd,    , -1, 0,  20,enemy, 0x8010	//NJ_KAENSIN
+535,0xbd,    , -1, 0, 100,enemy, 0x8010	//NJ_KAENSIN
 538,0xbb,    ,  1:1:1:2:2:2:3:3:3:4,0,-1,all,0x8010	//NJ_SUITON
 670,0xc7,    ,  1, 5:5:5:5:5:5:5:5:5:13,1000,all,0x008	//NPC_EVILLAND
 

+ 1 - 1
db/re/skill_db.txt

@@ -164,7 +164,7 @@
 67,9,6,16,0,0x1,0,3,1,yes,0,0x200,0,magic,0,0x0,	PR_SUFFRAGIUM,Suffragium
 68,9,6,16,6,0x31,0,5,1,yes,0,0,0,magic,0,0x0,	PR_ASPERSIO,Aspersio
 69,9,6,2,0,0x23,1,5,1,yes,0,0x40,0,magic,0,0x0,	PR_BENEDICTIO,B.S. Sacramenti
-70,9,6,2,6,0x21,0,10,1,yes,0,0,0,magic,1,0x0,	PR_SANCTUARY,Sanctuary
+70,9,6,2,6,0x21,0,10,1,yes,0,0,0,magic,2,0x0,	PR_SANCTUARY,Sanctuary
 71,9,6,16,0,0x1,0,4,1,yes,0,0,0,magic,0,0x0,		PR_SLOWPOISON,Slow Poison
 72,9,6,16,0,0x1,0,1,1,yes,0,0,0,magic,0,0x20,		PR_STRECOVERY,Status Recovery
 73,9,6,16,0,0x1,0,10,1,yes,0,0,0,magic,0,0x0,	PR_KYRIE,Kyrie Eleison

+ 1 - 1
db/re/skill_unit_db.txt

@@ -101,7 +101,7 @@
 521,0xbe,    ,  0, 1,1000,enemy, 0x000	//GS_GROUNDDRIFT
 525,0x86,    ,  0, 2,1000,enemy, 0x018	//NJ_HUUMA
 527,0xbc,    , -1, 0,2000,enemy, 0x018	//NJ_TATAMIGAESHI
-535,0xbd,    , -1, 0,  20,enemy, 0x8010	//NJ_KAENSIN
+535,0xbd,    , -1, 0, 100,enemy, 0x8010	//NJ_KAENSIN
 538,0xbb,    ,  1:1:1:2:2:2:3:3:3:4,0,-1,all,0x8010	//NJ_SUITON
 541,0x86,    ,  0, 3:3:4:4:5,1000,enemy, 0x018	//NJ_RAIGEKISAI
 670,0xc7,    ,  1, 5:5:5:5:5:5:5:5:5:13,1000,all,0x008	//NPC_EVILLAND

+ 1 - 1
src/map/battle.c

@@ -5568,7 +5568,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
 			//Fall through
 		case NJ_KAENSIN:
 		case PR_SANCTUARY:
-			ad.dmotion = 0; //No flinch animation.
+			ad.dmotion = 1; //No flinch animation.
 			break;
 	}
 

+ 4 - 1
src/map/skill.c

@@ -2872,7 +2872,6 @@ void skill_attack_blow(struct block_list *src, struct block_list *dsrc, struct b
 	// Skill specific direction
 	switch (skill_id) {
 		case MG_FIREWALL:
-		case PR_SANCTUARY:
 		case GN_WALLOFTHORN:
 		case EL_FIRE_MANTLE:
 			dir = unit_getdir(target); // Backwards
@@ -3009,6 +3008,10 @@ int64 skill_attack (int attack_type, struct block_list* src, struct block_list *
 
 	dmg = battle_calc_attack(attack_type,src,bl,skill_id,skill_lv,flag&0xFFF);
 
+	//If the damage source is a unit, the damage is not delayed
+	if (src != dsrc)
+		dmg.amotion = 0;
+
 	//! CHECKME: This check maybe breaks the battle_calc_attack, and maybe need better calculation.
 	// Adjusted to the new system [Skotlex]
 	if( src->type == BL_PET ) { // [Valaris]

+ 1 - 1
src/map/unit.c

@@ -1449,7 +1449,7 @@ int unit_set_walkdelay(struct block_list *bl, unsigned int tick, int delay, int
 
 	if (ud->walktimer != INVALID_TIMER) { // Stop walking, if chasing, readjust timers.
 		if (delay == 1) // Minimal delay (walk-delay) disabled. Just stop walking.
-			unit_stop_walking(bl,4);
+			unit_stop_walking(bl,0);
 		else {
 			// Resume running after can move again [Kevin]
 			if(ud->state.running)