查看: 723|回復: 5

[問題] 已解決_關於8.15 怪物血條顯示白色問題

[複製鏈接]

30

主題

117

帖子

3746

金錢

暗殺軍王.史雷佛

Rank: 8Rank: 8

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
45
積分
3863
在線時間
128 小時
相冊
0
日誌
0
好友
5
發表於 2025-11-15 16:28 | 顯示全部樓層 |閱讀模式
本帖最後由 軒云熊 於 2025-11-16 16:18 編輯

有沒有大大知道 怪物血條要怎麼改才能顯示正常 或這是把血條關閉 玩家的是正常為甚麼怪物會異常?

網路上的教學改核心 L1NpcInstance   onPerceive 都沒反應 新增 S_NPCPackHp 封包也沒用




上一篇︰有大大知道這啥問題嗎
下一篇︰關於Rev2028整合版架設出現的錯誤

3

主題

1381

帖子

3萬

金錢

安塔瑞斯

紅茶 LINE: lineageapp

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

威望
5
精華
0
貢獻
0
鑽石
0
閱讀權限
65
積分
36777
在線時間
1080 小時
相冊
0
日誌
0
好友
0
發表於 2025-11-15 18:13 | 顯示全部樓層
[發帖際遇]: 一個袋子砸在了 yasioukon 頭上,yasioukon 賺了 2 金錢. 幸運榜 / 衰神榜
紅茶
聯絡方式
LINE: lineageapp
回復 支持 反對

使用道具 舉報

30

主題

117

帖子

3746

金錢

暗殺軍王.史雷佛

Rank: 8Rank: 8

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
45
積分
3863
在線時間
128 小時
相冊
0
日誌
0
好友
5
 樓主| 發表於 2025-11-16 10:21 | 顯示全部樓層
yasioukon 發表於 2025-11-15 18:13
這篇有提到改什麼

謝謝 yasioukon 大大幫忙   S_NPCPack.java   可以修改  這樣就可以了雖然 還是有問題 不過已經可以接受了 謝謝 yasioukon 大大  有需要的朋友也可以改一下試試看
  1. //                this.writeC(0xff); // HP



  2.                 this.writeC(0x00);
  3.                
  4.                 int hpPercent = 0xff;
  5.                 if (npc.getMaxHp() > 0) {
  6.                     hpPercent = npc.getCurrentHp() * 100 / npc.getMaxHp();
  7.                     hpPercent = Math.min(hpPercent, 100); // 避免超過 100
  8.                 }
  9.                 this.writeC(hpPercent); // HP 血條顯示
  10.                
  11.                 this.writeC(0x00);// LV
  12. //                this.writeC(npc.getLevel());// LV
  13.                 this.writeS(npc.getTitle());
  14.                 this.writeC(0x00);
  15.                 this.writeC(0xff);
  16.                 this.writeC(0xff);
  17.         }
複製代碼




回復 支持 反對

使用道具 舉報

363

主題

4196

帖子

8萬

金錢

法利昂

Rank: 12Rank: 12Rank: 12

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
70
積分
85437
在線時間
270 小時
相冊
0
日誌
0
好友
4
發表於 2025-11-17 02:20 | 顯示全部樓層
哇,這個封包值是怎麼知道的啊?  好厲害

回復 支持 反對

使用道具 舉報

7

主題

95

帖子

3萬

金錢

安塔瑞斯

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

威望
5
精華
0
貢獻
0
鑽石
0
閱讀權限
65
積分
38011
在線時間
106 小時
相冊
1
日誌
0
好友
2
發表於 2026-2-3 10:33 | 顯示全部樓層
樓主還是很不錯的。願意花時間來做分享,頂頂頂。

回復 支持 反對

使用道具 舉報

7

主題

95

帖子

3萬

金錢

安塔瑞斯

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

威望
5
精華
0
貢獻
0
鑽石
0
閱讀權限
65
積分
38011
在線時間
106 小時
相冊
1
日誌
0
好友
2
發表於 2026-2-3 10:37 | 顯示全部樓層
軒云熊 發表於 2025-11-16 10:21
謝謝 yasioukon 大大幫忙   S_NPCPack.java   可以修改  這樣就可以了雖然 還是有問題 不過已經可以接受 ...

你說的還是有問題,可能是你加的位置不對。代碼如下:

  1. /**
  2.          * 物件封包
  3.          *
  4.          * @param npc
  5.          */
  6.         public S_NPCPack(final L1NpcInstance npc,final L1PcInstance pc) {
  7.                 this.writeC(S_PUT_OBJECT);
  8.                 this.writeH(npc.getX());
  9.                 this.writeH(npc.getY());
  10.                 this.writeD(npc.getId());

  11.                 if (npc.getTempCharGfx() == 0) {
  12.                         this.writeH(npc.getGfxId());

  13.                 } else {
  14.                         this.writeH(npc.getTempCharGfx());
  15.                 }

  16.                 if (npc.getNpcTemplate().is_doppel() && (npc.getGfxId() != 31)) { // スライムの姿をしていなければドッペル
  17.                         this.writeC(0x04); // 拿剑

  18.                 } else {
  19.                         this.writeC(npc.getStatus());
  20.                 }

  21.                 this.writeC(npc.getHeading());
  22.                 this.writeC(npc.getChaLightSize());
  23.                 this.writeC(npc.getMoveSpeed());
  24.                 this.writeD((int) npc.getExp());
  25.                 this.writeH(npc.getTempLawful());
  26.                 String levelname = npc.getNameId();
  27.                 if ((pc.getLevel() - npc.getLevel() >= 5 && pc.getLevel()
  28.                                 - npc.getLevel() <= 10)
  29.                                 || (npc.getLevel() - pc.getLevel() >= 5 && npc.getLevel()
  30.                                                 - pc.getLevel() <= 10)) {
  31.                         levelname = "\\f2" + npc.getNameId();
  32.                 } else if (npc.getLevel() - pc.getLevel() >= 30) {
  33.                         levelname = "\\f3" + npc.getNameId();
  34.                 } else if (npc.getLevel() - pc.getLevel() >= 20) {
  35.                         levelname = "\\fC" + npc.getNameId();
  36.                 } else if (npc.getLevel() - pc.getLevel() >= 11) {
  37.                         levelname = "\\f:" + npc.getNameId();
  38.                 }
  39.                 writeS(levelname);
  40.             if (!ConfigAlt.NPCid){
  41.                        writeS(levelname);
  42.                      }else{
  43.                        writeS(levelname + "[" + npc.getNpcId() + "]");
  44.                      }
  45.             this.writeS(npc.getTitle());//白条问题修复 by IQN 20240808
  46.                 /**
  47.                  * ???? - 0:mob,item(atk pointer), 1:poisoned(), 2:invisable(), 4:pc,
  48.                  * 8:cursed(), 16:brave(), 32:??, 64:??(??), 128:invisable but name
  49.                  */
  50.                 int status = 0;
  51.                 if (npc.getPoison() != null) { // 毒状态
  52.                         if (npc.getPoison().getEffectId() == 1) {
  53.                                 status |= STATUS_POISON;
  54.                         }
  55.                 }
  56.                 if (npc.getNpcTemplate().is_doppel()) {
  57.                         // PC属性だとエヴァの祝福を渡せないためWIZクエストのドッペルは例外
  58.                         if (npc.getNpcTemplate().get_npcId() != 81069) {
  59.                                 status |= STATUS_PC;
  60.                         }
  61.                 }
  62.                 if (npc.getNpcTemplate().get_npcId() == 90024) {
  63.                         status |= STATUS_POISON;
  64.                 }
  65.                 this.writeC(status); // 状态

  66.                 this.writeD(0x00000000); // 0以外にするとC_27が飞ぶ
  67.                 this.writeS(null);
  68.                 this.writeS(null); // マスター名?

  69.                 this.writeC(0x00); // 物件分类

  70.                 this.writeC(0xff); // HP
  71.                 this.writeC(0x00);
  72.                 this.writeC(0x00);// LV
  73.                 // this.writeC(npc.getLevel());// LV
  74.                 this.writeC(0x00);
  75.                 this.writeC(0xff);
  76.                 this.writeC(0xff);
  77.         }
複製代碼



回復 支持 反對

使用道具 舉報

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

本版積分規則

天堂私服列表

45客服

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

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

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

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