UID323998
帖子
精華
主題
積分20823
現金
積極性
威望
違規
熱心
推廣次數
閱讀權限30
註冊時間2014-2-3
在線時間 小時
最後登錄1970-1-1
TA的每日心情 | 開心 2018-1-18 03:10 PM |
---|
簽到天數: 189 天 連續簽到: 1 天 [LV.7]常住居民III
|
本帖最後由 盧卡斯 於 2015-2-8 07:51 PM 編輯
由於官方版本的羅剎破凰擊 HP bonus 部份為無視抗人,
但是在Rathena/Hercules/3ceam/SEAR 中,羅剎破凰擊 HP bonus 部份均為有視抗人。
故現在希望可以藉修改源碼以修復此問題。
已考慮過的解決方法,
1. 在skill.c 的 case SR_GATEOFHELL 中新增status_zap 的function 以達到直接把對方的HP吸取而忽略抗人,但傷害顯示方式便會有別於官方。
2. 在使用技能時再觸發另一技能,SR_GATEOFHELL_BONUS,然後在skill_db中設置成無視抗人的屬性,傷害顯示方式一樣是有別於官方。
故暫時排除以上兩個方法。
希望有人能提供可行的解決方法,不要求閣下提供完整的源碼diff (如果有當然最好)
以下為羅剎破凰擊相關的源碼,
skill.c- case SR_GATEOFHELL:
- skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);
- break;
複製代碼- case SR_GATEOFHELL:
- if( sd->spiritball > 0 )
- sd->spiritball_old = require.spiritball;
- break;
複製代碼- case SR_GATEOFHELL:
- if( sc && sc->data[SC_COMBO] && sc->data[SC_COMBO]->val1 == SR_FALLENEMPIRE )
- req.sp -= req.sp * 10 / 100;
- break;
複製代碼 battle.c- if (skill_id == SR_GATEOFHELL) {
- if (skill_lv < 5)
- return BF_SHORT;
- else
- return BF_LONG;
- }
複製代碼- case SR_GATEOFHELL:
- case KO_BAKURETSU:
- wd.damage = battle_attr_fix(src, target, wd.damage, ELE_NEUTRAL, tstatus->def_ele, tstatus->ele_lv);
- break;
複製代碼- case SR_GATEOFHELL:
- if( sc && sc->data[SC_COMBO] && sc->data[SC_COMBO]->val1 == SR_FALLENEMPIRE )
- skillratio += 700 * skill_lv;
- else
- skillratio += 400 * skill_lv;
- RE_LVL_DMOD(100);
- break;
複製代碼- case SR_GATEOFHELL: {
- struct status_data *sstatus = status_get_status_data(src);
- ATK_ADD(wd.damage, wd.damage2, sstatus->max_hp - status_get_hp(src));
- if(sc && sc->data[SC_COMBO] && sc->data[SC_COMBO]->val1 == SR_FALLENEMPIRE) {
- ATK_ADD(wd.damage, wd.damage2, (sstatus->max_sp * (1 + skill_lv * 2 / 10)) + 40 * status_get_lv(src));
- } else
- ATK_ADD(wd.damage, wd.damage2, (sstatus->sp * (1 + skill_lv * 2 / 10)) + 10 * status_get_lv(src));
- }
複製代碼 |
|