查看: 547|回復: 24

[問題] 關於傷害顯示

[複製鏈接]

20

主題

169

帖子

545

金錢

妖魔

Rank: 4

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
35
積分
714
在線時間
84 小時
相冊
0
日誌
0
好友
0
發表於 2025-4-18 15:37 | 顯示全部樓層 |閱讀模式
大幅數位科技
引用了這位大大的文章https://lineage45.com/forum.php? ... 3%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 表示沒有修改成功 是否是我語法的位置錯誤 懇請各位大大指導


1111111.PNG



上一篇︰妖精火屬性技能[核心版本:伊薇381]
下一篇︰天天樂開獎單怎麼運用?拖牌意思新手要知道!

相關帖子

20

主題

169

帖子

545

金錢

妖魔

Rank: 4

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
35
積分
714
在線時間
84 小時
相冊
0
日誌
0
好友
0
 樓主| 發表於 2025-4-18 15:41 | 顯示全部樓層
懇求個位大大指導小弟~

回復 支持 反對

使用道具 舉報

2

主題

77

帖子

1635

金錢

妖魔鬥士

Rank: 6Rank: 6

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
40
積分
1712
在線時間
24 小時
相冊
0
日誌
0
好友
1
發表於 2025-4-18 18:13 | 顯示全部樓層
• 关于伤害显示

回復 支持 反對

使用道具 舉報

1

主題

974

帖子

2萬

金錢

安塔瑞斯

Rank: 11Rank: 11Rank: 11Rank: 11

威望
5
精華
0
貢獻
0
鑽石
0
閱讀權限
65
積分
30138
在線時間
630 小時
相冊
0
日誌
0
好友
0
發表於 2025-4-19 08:47 | 顯示全部樓層
一般來說 先檢查最上方有沒有 import

要告訴他這個檔案的路徑

紅茶
聯絡方式
LINE: lineageapp
回復 支持 反對

使用道具 舉報

20

主題

169

帖子

545

金錢

妖魔

Rank: 4

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
35
積分
714
在線時間
84 小時
相冊
0
日誌
0
好友
0
 樓主| 發表於 2025-4-19 22:37 | 顯示全部樓層
yasioukon 發表於 2025-4-19 08:47
一般來說 先檢查最上方有沒有 import

要告訴他這個檔案的路徑

假如沒有的話 有辦法自己寫一個這樣嗎?

回復 支持 反對

使用道具 舉報

15

主題

119

帖子

8767

金錢

鑽石VIP

Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
90
積分
8886
在線時間
97 小時
相冊
0
日誌
0
好友
2
發表於 2025-4-19 22:44 | 顯示全部樓層
open2245 發表於 2025-4-19 22:37
假如沒有的話 有辦法自己寫一個這樣嗎?

我會建議你把該類的java檔放出來給各位大神看看
不然隔空抓藥無法保證藥到病除QQ

回復 支持 反對

使用道具 舉報

1

主題

974

帖子

2萬

金錢

安塔瑞斯

Rank: 11Rank: 11Rank: 11Rank: 11

威望
5
精華
0
貢獻
0
鑽石
0
閱讀權限
65
積分
30138
在線時間
630 小時
相冊
0
日誌
0
好友
0
發表於 2025-4-20 13:01 | 顯示全部樓層
open2245 發表於 2025-4-19 22:37
假如沒有的話 有辦法自己寫一個這樣嗎?

EC的話 紅叉那會提示你錯誤原因

甚至可以選擇自動修正
選補import

不然就是拉到最上方 自己照檔案路徑輸入

[發帖際遇]: yasioukon 在論壇發帖時沒有注意,被小偷偷去了 1 金錢. 幸運榜 / 衰神榜
紅茶
聯絡方式
LINE: lineageapp
回復 支持 反對

使用道具 舉報

20

主題

169

帖子

545

金錢

妖魔

Rank: 4

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
35
積分
714
在線時間
84 小時
相冊
0
日誌
0
好友
0
 樓主| 發表於 2025-4-20 19:33 | 顯示全部樓層
yasioukon 發表於 2025-4-20 13:01
EC的話 紅叉那會提示你錯誤原因

甚至可以選擇自動修正

好的 大大 我在看看如何修改

回復 支持 反對

使用道具 舉報

20

主題

169

帖子

545

金錢

妖魔

Rank: 4

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
35
積分
714
在線時間
84 小時
相冊
0
日誌
0
好友
0
 樓主| 發表於 2025-4-20 19:40 | 顯示全部樓層
繁華攏是夢 發表於 2025-4-19 22:44
我會建議你把該類的java檔放出來給各位大神看看
不然隔空抓藥無法保證藥到病除QQ
...

目前是L1Attack 這個Java的語法的問題 我照著之前一些大大方式做 我的卻是錯誤 我認為是缺少某些語法 來問這裡的大神

回復 支持 反對

使用道具 舉報

20

主題

169

帖子

545

金錢

妖魔

Rank: 4

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
35
積分
714
在線時間
84 小時
相冊
0
日誌
0
好友
0
 樓主| 發表於 2025-4-21 12:13 | 顯示全部樓層
本帖最後由 open2245 於 2025-4-21 12:14 編輯
yasioukon 發表於 2025-4-20 13:01
EC的話 紅叉那會提示你錯誤原因

甚至可以選擇自動修正

大大好 照您的方法EC可自動修正 核心OK了 再來我編碼也改好了 也對應圖檔 沒有重複對應 但是攻擊怪物時會閃退


想問BIN檔是否也要跟著改 但是版上好像也沒有BIN轉TXT

回復 支持 反對

使用道具 舉報

1

主題

974

帖子

2萬

金錢

安塔瑞斯

Rank: 11Rank: 11Rank: 11Rank: 11

威望
5
精華
0
貢獻
0
鑽石
0
閱讀權限
65
積分
30138
在線時間
630 小時
相冊
0
日誌
0
好友
0
發表於 2025-4-21 12:25 | 顯示全部樓層
就是你的SPR圖 要跟變身檔編碼 對應

沒對應 特效一出來 就是斷線

紅茶
聯絡方式
LINE: lineageapp
回復 支持 反對

使用道具 舉報

20

主題

169

帖子

545

金錢

妖魔

Rank: 4

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
35
積分
714
在線時間
84 小時
相冊
0
日誌
0
好友
0
 樓主| 發表於 2025-4-21 13:44 | 顯示全部樓層
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


這樣是對的嗎 我是下載別人設定好的 每一個圖檔我都一一對應 也有用抽出禿檔的方式在檢查有無重複 也確認是沒有 但是像大大說的 似乎沒對應到 而閃退

[發帖際遇]: 一個袋子砸在了 open2245 頭上,open2245 賺了 3 金錢. 幸運榜 / 衰神榜
回復 支持 反對

使用道具 舉報

1

主題

974

帖子

2萬

金錢

安塔瑞斯

Rank: 11Rank: 11Rank: 11Rank: 11

威望
5
精華
0
貢獻
0
鑽石
0
閱讀權限
65
積分
30138
在線時間
630 小時
相冊
0
日誌
0
好友
0
發表於 2025-4-21 14:13 | 顯示全部樓層
你可以直接用GM看圖指令測試
從個位數0~9 十位數 百位數這樣測

你就知道哪些圖沒弄好

[發帖際遇]: yasioukon 撿了錢沒交公 金錢 降了 1 . 幸運榜 / 衰神榜
紅茶
聯絡方式
LINE: lineageapp
回復 支持 反對

使用道具 舉報

20

主題

169

帖子

545

金錢

妖魔

Rank: 4

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
35
積分
714
在線時間
84 小時
相冊
0
日誌
0
好友
0
 樓主| 發表於 2025-4-21 14:15 | 顯示全部樓層
感恩大大的解答 這就去試試看

回復 支持 反對

使用道具 舉報

20

主題

169

帖子

545

金錢

妖魔

Rank: 4

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
35
積分
714
在線時間
84 小時
相冊
0
日誌
0
好友
0
 樓主| 發表於 2025-4-21 15:00 | 顯示全部樓層
本帖最後由 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


以此類推 測試到現在全部閃退 大大覺得我有甚麼地方出錯


TW13081901.rar

320.01 KB, 下載次數: 0, 下載積分: 金錢 -2

回復 支持 反對

使用道具 舉報

1

主題

974

帖子

2萬

金錢

安塔瑞斯

Rank: 11Rank: 11Rank: 11Rank: 11

威望
5
精華
0
貢獻
0
鑽石
0
閱讀權限
65
積分
30138
在線時間
630 小時
相冊
0
日誌
0
好友
0
發表於 2025-4-21 18:01 | 顯示全部樓層
沒看到你txt轉檔的步驟

轉檔丟主程式覆蓋才有編碼

紅茶
聯絡方式
LINE: lineageapp
回復 支持 反對

使用道具 舉報

20

主題

169

帖子

545

金錢

妖魔

Rank: 4

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
35
積分
714
在線時間
84 小時
相冊
0
日誌
0
好友
0
 樓主| 發表於 2025-4-21 18:16 | 顯示全部樓層
yasioukon 發表於 2025-4-21 18:01
沒看到你txt轉檔的步驟

轉檔丟主程式覆蓋才有編碼

這部分也有做 我在想是不是編碼太後面所以讀不到

回復 支持 反對

使用道具 舉報

20

主題

169

帖子

545

金錢

妖魔

Rank: 4

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
35
積分
714
在線時間
84 小時
相冊
0
日誌
0
好友
0
 樓主| 發表於 2025-4-22 14:40 | 顯示全部樓層
本帖最後由 open2245 於 2025-4-22 14:45 編輯
yasioukon 發表於 2025-4-21 18:01
沒看到你txt轉檔的步驟

轉檔丟主程式覆蓋才有編碼

大大好 傷害顯示 已成功安裝上去 卻面臨一個問題 怪打人物打一下就不會動了


黑盒子有表示L1Attack 1726 有問題 是怪攻擊人物一下之後出現的

這行 是核心 傷害顯示的 final String srcatk = _pc.getName();// 攻擊者

當我把_pc.getName() 改成 _npc.getName()

怪物恢復正常 而我的傷害顯示消失 有甚麼辦法並存嗎?

黑盒子資訊

四月 22, 2025 2:56:21 下午 l1j.server.server.model.Instance.L1NpcInstance$NpcAIThreadImpl run
警告: NpcAIで例外が発生しました。
java.lang.NullPointerException
        at l1j.server.server.model.L1Attack.commit(L1Attack.java:1759)
        at l1j.server.server.model.Instance.L1NpcInstance.attackTarget(L1NpcInstance.java:565)
        at l1j.server.server.model.Instance.L1NpcInstance.onTarget(L1NpcInstance.java:445)
        at l1j.server.server.model.Instance.L1NpcInstance.AIProcess(L1NpcInstance.java:319)
        at l1j.server.server.model.Instance.L1NpcInstance.access$400(L1NpcInstance.java:77)
        at l1j.server.server.model.Instance.L1NpcInstance$NpcAIThreadImpl.run(L1NpcInstance.java:251)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)


以下是傷害顯示的核心碼

        /* ■■■■■■■■■■■■■■■ 計算結果反映 ■■■■■■■■■■■■■■■ */
        public void commit() {
        /** 程式說明:
        * 首先取得 _damage(傷害)的個位 十位 百位 ... 數值
        * 假設傷害為171,則以下變數為:
        * i = 1 + 11944 // 11955為個位數"1"特效編號
        * k = 7 + 11954 // 11961為個十數"7"特效編號
        * h = 1 + 11964 // 11965為個百數"1"特效編號
        * s = 0 + 11974
        * m = 0 + 11984
        **/
        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) + 11944;//個位0-9
        int k = (int) ((_damage/Math.pow(10,1)) % 10) + 11954;//十位0-9
        int h = (int) ((_damage/Math.pow(10,2)) % 10) + 11964;//百位0-9
        int s = (int) ((_damage/Math.pow(10,3)) % 10) + 11974;//千位0-9
        int m = (int) ((_damage/Math.pow(10,4)) % 10) + 11984;//萬位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() , 11944));//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() , 11944));//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;

        }


}



回復 支持 反對

使用道具 舉報

1

主題

974

帖子

2萬

金錢

安塔瑞斯

Rank: 11Rank: 11Rank: 11Rank: 11

威望
5
精華
0
貢獻
0
鑽石
0
閱讀權限
65
積分
30138
在線時間
630 小時
相冊
0
日誌
0
好友
0
發表於 2025-4-22 18:18 | 顯示全部樓層
PC打PC PC打NPC
不會影響NPC打PC
除非你改錯檔案 放錯地方
如果你怪打人也要顯示
要先定義 pc=目標

紅茶
聯絡方式
LINE: lineageapp
回復 支持 反對

使用道具 舉報

20

主題

169

帖子

545

金錢

妖魔

Rank: 4

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
35
積分
714
在線時間
84 小時
相冊
0
日誌
0
好友
0
 樓主| 發表於 2025-4-22 18:30 | 顯示全部樓層
yasioukon 發表於 2025-4-22 18:18
PC打PC PC打NPC
不會影響NPC打PC
除非你改錯檔案 放錯地方

我在想是不是 核心編碼編錯位置才會導致這樣 檔案是對的沒錯 也照著我這篇開頭引用大大的教學去搜索關鍵編碼 並複製蓋過


回復 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊會員

本版積分規則

天堂私服列表

45客服

Archiver| 45天堂私服論壇   分享到微博! 分享到臉書! 分享到噗浪! 分享到維特! 分享到Google+! 分享到LINE!

45天堂私服發佈站 ©    天堂私服架設教學  提供最新天堂私服最新資訊

流量最高、品質最好、服務最優、玩家首選、最新天堂私服資訊,都在45天堂私服發佈站.    免責聲明

Sitetag
line客服聯繫
掃一掃二碼
Line客服聯繫
24H專人回覆
返回頂部 返回列表