瀏覽代碼

Fixes an issue with Joint Beat resistance (#6805)

* Follow up to cb2c553.
* Fixes a math error in the status resistance and duration for Joint Beat.
Thanks to @Tokeiburu and @Playtester!
Aleos 3 年之前
父節點
當前提交
41da8646ff
共有 2 個文件被更改,包括 2 次插入3 次删除
  1. 1 1
      src/map/skill.cpp
  2. 1 2
      src/map/status.cpp

+ 1 - 1
src/map/skill.cpp

@@ -5156,7 +5156,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
 		if (flag != BREAK_NECK && tsc && tsc->data[SC_JOINTBEAT] && tsc->data[SC_JOINTBEAT]->val2 & BREAK_NECK)
 			flag = BREAK_NECK; // Target should always receive double damage if neck is already broken
 		if (skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag))
-			sc_start4(src, bl, SC_JOINTBEAT, 50 + (skill_lv + 1), skill_lv, flag&BREAK_FLAGS, src->id, 0, skill_get_time2(skill_id, skill_lv));
+			status_change_start(src, bl, SC_JOINTBEAT, (50 * (skill_lv + 1) - (270 * tstatus->str) / 100) * 10, skill_lv, flag & BREAK_FLAGS, src->id, 0, skill_get_time2(skill_id, skill_lv), SCSTART_NONE);
 		break;
 
 	case MO_COMBOFINISH:

+ 1 - 2
src/map/status.cpp

@@ -8858,8 +8858,7 @@ t_tick status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_
 			sc_def = status->agi*50;
 			break;
 		case SC_JOINTBEAT:
-			sc_def2 = 270 * status->str / 100; // 270 * STR / 100
-			tick_def2 = (status->luk * 50 + status->agi * 200) / 2; // (50 * LUK / 100 + 20 * AGI / 100) / 2
+			tick_def2 = 1000 * ((status->luk / 2 + status->agi / 5) / 2); // (50 * LUK / 100 + 20 * AGI / 100) / 2
 			break;
 		case SC_DEEPSLEEP:
 			tick_def2 = status_get_base_status(bl)->int_ * 25 + status_get_lv(bl) * 50;