關於傷害顯示
引用了這位大大的文章https://lineage45.com/forum.php?mod=viewthread&tid=105001&highlight=%E5%82%B7%E5%AE%B3%E9%A1%AF%E7%A4%BA複製貼上之後 /* ■■■■■■■■■■■■■■■ 計算結果反映 ■■■■■■■■■■■■■■■ */
public void commit() {
if (_isHit) {
if (_calcType == PC_PC || _calcType == NPC_PC) {
commitPc();
} else if (_calcType == PC_NPC || _calcType == NPC_NPC) {
commitNpc();
}
}
// 傷害顯示特效開關
if (!Config.ALT_ATKMSG) {
return;
}
final String srcatk = _pc.getName();// 攻擊者
String tgatk = "";// 被攻擊者
String hitinfo = "";// 資訊
String dmginfo = "";// 傷害
String atkinfo = "";// 最終資訊
int i = (int) ((_damage/Math.pow(10,0)) % 10) + 8000;//個位0-9
int k = (int) ((_damage/Math.pow(10,1)) % 10) + 8010;//十位0-9
int h = (int) ((_damage/Math.pow(10,2)) % 10) + 8020;//百位0-9
int s = (int) ((_damage/Math.pow(10,3)) % 10) + 8030;//千位0-9
int m = (int) ((_damage/Math.pow(10,4)) % 10) + 8040;//萬位0-9
switch (this._calcType) {
case PC_PC:
tgatk = _targetPc.getName();
hitinfo = " 命中率 " + _hitRate + "% 剩餘 HP" + _targetPc.getCurrentHp();
dmginfo = _isHit ? _damage + " 傷害" : "攻擊失敗";
atkinfo = srcatk + " > " + tgatk + " " + dmginfo + hitinfo;
_pc.sendPackets(new S_ServerMessage(166, atkinfo));
if ( _damage <= 0 ){
_pc.sendPackets(new S_SkillSound(_targetPc.getId() , 8050));//Miss數特效
}
else if ( _damage > 0 && _damage < 10 ){
_pc.sendPackets(new S_SkillSound(_targetPc.getId() , i));//個位數特效
}
else if ( _damage >= 10 && _damage < 100){
_pc.sendPackets(new S_SkillSound(_targetPc.getId() , i));//個位數特效
_pc.sendPackets(new S_SkillSound(_targetPc.getId() , k));//十位數特效
}
else if ( _damage >= 100 && _damage < 1000){
_pc.sendPackets(new S_SkillSound(_targetPc.getId() , i));//個位數特效
_pc.sendPackets(new S_SkillSound(_targetPc.getId() , k));//十位數特效
_pc.sendPackets(new S_SkillSound(_targetPc.getId() , h));//百位數特效
}
else if ( _damage >= 1000 && _damage < 10000){
_pc.sendPackets(new S_SkillSound(_targetPc.getId() , i));//個位數特效
_pc.sendPackets(new S_SkillSound(_targetPc.getId() , k));//十位數特效
_pc.sendPackets(new S_SkillSound(_targetPc.getId() , h));//百位數特效
_pc.sendPackets(new S_SkillSound(_targetPc.getId() , s));//千位數特效
}
else if ( _damage >= 10000){
_pc.sendPackets(new S_SkillSound(_targetPc.getId() , i));//個位數特效
_pc.sendPackets(new S_SkillSound(_targetPc.getId() , k));//十位數特效
_pc.sendPackets(new S_SkillSound(_targetPc.getId() , h));//百位數特效
_pc.sendPackets(new S_SkillSound(_targetPc.getId() , s));//千位數特效
_pc.sendPackets(new S_SkillSound(_targetPc.getId() , m));//萬位數特效
}
break;
case PC_NPC:
tgatk = _targetNpc.getName();
hitinfo = " 命中率 " + _hitRate + "% 剩餘 HP " + _targetNpc.getCurrentHp();
dmginfo = _isHit ? _damage + " 傷害" : "攻擊失敗";
atkinfo = srcatk + " > " + tgatk + " " + dmginfo + hitinfo;
_pc.sendPackets(new S_ServerMessage(166, atkinfo));
if ( _damage <= 0 ){
_pc.sendPackets(new S_SkillSound(_targetNpc.getId() , 8050));//Miss數特效
}
else if ( _damage > 0 && _damage < 10 ){
_pc.sendPackets(new S_SkillSound(_targetNpc.getId() , i));//個位數特效
}
else if ( _damage >= 10 && _damage < 100){
_pc.sendPackets(new S_SkillSound(_targetNpc.getId() , i));//個位數特效
_pc.sendPackets(new S_SkillSound(_targetNpc.getId() , k));//十位數特效
}
else if ( _damage >= 100 && _damage < 1000){
_pc.sendPackets(new S_SkillSound(_targetNpc.getId() , i));//個位數特效
_pc.sendPackets(new S_SkillSound(_targetNpc.getId() , k));//十位數特效
_pc.sendPackets(new S_SkillSound(_targetNpc.getId() , h));//百位數特效
}
else if ( _damage >= 1000 && _damage < 10000){
_pc.sendPackets(new S_SkillSound(_targetNpc.getId() , i));//個位數特效
_pc.sendPackets(new S_SkillSound(_targetNpc.getId() , k));//十位數特效
_pc.sendPackets(new S_SkillSound(_targetNpc.getId() , h));//百位數特效
_pc.sendPackets(new S_SkillSound(_targetNpc.getId() , s));//千位數特效
}
else if ( _damage >= 10000){
_pc.sendPackets(new S_SkillSound(_targetNpc.getId() , i));//個位數特效
_pc.sendPackets(new S_SkillSound(_targetNpc.getId() , k));//十位數特效
_pc.sendPackets(new S_SkillSound(_targetNpc.getId() , h));//百位數特效
_pc.sendPackets(new S_SkillSound(_targetNpc.getId() , s));//千位數特效
_pc.sendPackets(new S_SkillSound(_targetNpc.getId() , m));//萬位數特效
}
break;
}
#8000 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8001 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8002 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8003 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8004 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8005 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8006 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8007 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8008 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8009 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8010 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8011 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8012 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8013 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8014 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8015 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8016 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8017 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8018 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8019 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8020 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8021 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8022 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8023 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8024 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8025 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8026 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8027 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8028 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8029 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8030 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8031 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8032 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8033 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8034 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8035 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8036 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8037 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8038 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8039 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8040 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8041 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8042 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8043 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8044 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8045 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8046 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8047 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8048 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8049 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
#8050 1
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
"S_SkillSound"的字樣 一直顯示紅色XX 表示沒有修改成功 是否是我語法的位置錯誤 懇請各位大大指導
懇求個位大大指導小弟~ • 关于伤害显示 一般來說 先檢查最上方有沒有 import
要告訴他這個檔案的路徑 yasioukon 發表於 2025-4-19 08:47
一般來說 先檢查最上方有沒有 import
要告訴他這個檔案的路徑
假如沒有的話 有辦法自己寫一個這樣嗎?
open2245 發表於 2025-4-19 22:37
假如沒有的話 有辦法自己寫一個這樣嗎?
我會建議你把該類的java檔放出來給各位大神看看
不然隔空抓藥無法保證藥到病除QQ
open2245 發表於 2025-4-19 22:37
假如沒有的話 有辦法自己寫一個這樣嗎?
EC的話 紅叉那會提示你錯誤原因
甚至可以選擇自動修正
選補import
不然就是拉到最上方 自己照檔案路徑輸入
yasioukon 發表於 2025-4-20 13:01
EC的話 紅叉那會提示你錯誤原因
甚至可以選擇自動修正
好的 大大 我在看看如何修改
繁華攏是夢 發表於 2025-4-19 22:44
我會建議你把該類的java檔放出來給各位大神看看
不然隔空抓藥無法保證藥到病除QQ
...
目前是L1Attack 這個Java的語法的問題 我照著之前一些大大方式做 我的卻是錯誤 我認為是缺少某些語法 來問這裡的大神
本帖最後由 open2245 於 2025-4-21 12:14 編輯
yasioukon 發表於 2025-4-20 13:01
EC的話 紅叉那會提示你錯誤原因
甚至可以選擇自動修正
大大好 照您的方法EC可自動修正 核心OK了 再來我編碼也改好了 也對應圖檔 沒有重複對應 但是攻擊怪物時會閃退
想問BIN檔是否也要跟著改 但是版上好像也沒有BIN轉TXT
就是你的SPR圖 要跟變身檔編碼 對應
沒對應 特效一出來 就是斷線 yasioukon 發表於 2025-4-21 12:25
就是你的SPR圖 要跟變身檔編碼 對應
沒對應 特效一出來 就是斷線
假設我的圖檔是
14910-0.spr
變身碼
#14910 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
這樣是對的嗎 我是下載別人設定好的 每一個圖檔我都一一對應 也有用抽出禿檔的方式在檢查有無重複 也確認是沒有 但是像大大說的 似乎沒對應到 而閃退
你可以直接用GM看圖指令測試
從個位數0~9 十位數 百位數這樣測
你就知道哪些圖沒弄好 感恩大大的解答 這就去試試看 本帖最後由 open2245 於 2025-4-21 15:04 編輯
yasioukon 發表於 2025-4-21 14:13
你可以直接用GM看圖指令測試
從個位數0~9 十位數 百位數這樣測
大大好 我整個被整矇了 "測試每一個顯示傷害的圖檔 全部都閃退"
我想釐清一下 我是否有做錯什麼步驟
核心除錯後沒問題 一開始有重疊圖檔 圖有跑出1跟2 還有重疊圖檔[本來是8001-8050]
我的變身檔是TW13081901.txt 我把SPR圖檔改成14860-14910
我直接在變身檔 直接新增編碼
核心部分也跟著修正成14860以此類推
#14860 6
0 0 6 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2
102 0
104 8
以此類推 測試到現在全部閃退 大大覺得我有甚麼地方出錯
yasioukon 發表於 2025-4-21 14:13
你可以直接用GM看圖指令測試
從個位數0~9 十位數 百位數這樣測
大大好 我似乎爬到問題 可能跟圖檔編號太後面有關係 我試著找前面的看看
頁:
[1]