查看: 1358|回復: 6

[問題] 關於傷害顯示

[複製鏈接]

1

主題

9

帖子

124

金錢

史萊姆

Rank: 2

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
20
積分
133
在線時間
4 小時
相冊
0
日誌
0
好友
0
發表於 2024-2-5 13:58 | 顯示全部樓層 |閱讀模式
各位大大們好


想請問傷害顯示的一些核心問題。

1.小弟想要讓每次的攻擊都能顯示在目標的旁邊,並且顯示 " ( 當前傷害值 ) 總傷害值 " 這個效果。
      
        翻遍核心都不知道,要用哪種方法去讓傷害數值即時出現在目標旁邊。
        要針對不同的目標去計算總傷害值,用 targetNpc.getId() 這個方法是正確的嗎,因為相同的怪會出現相同的ID,這樣計算總傷害就會出錯。

2.使用範圍魔法,同時攻擊多個目標時。

        要如何確保能夠每個目標旁邊都會出現( 當前傷害值 ) 總傷害值。

3.小弟爬過論壇大大們,大部分都是使用飄血的方式去讀取 spr 檔。

        但是發現一個問題,飄血這個方法,有時候稍微lag ,不同位數的圖檔就會用不同的速度往上飄,這樣感覺起來有點不美觀,所以才希望使用單純的 ( 當前傷害值 ) 總傷害值,感覺較穩




上一篇︰【新手教學】不會SQL語法也可以快速更新資料庫內容for FREE
下一篇︰[懷舊系列、貳]火龍窟182版模擬器「免費送」

1

主題

586

帖子

1萬

金錢

巴列斯

Rank: 10Rank: 10Rank: 10

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
60
積分
17627
在線時間
298 小時
相冊
0
日誌
0
好友
0
發表於 2024-2-5 23:05 | 顯示全部樓層
一般你看到的 單純數字的傷害顯示 不是SPR的

那種基本上 大部分 都是用登入器寫出來的

所以內建喝水那邊 你可以看到有個傷害顯示開關

任何腦袋中想像的東西 要用核心寫 不是不行

但首先第一步最好是 先找到 "參考"

先想看看哪個功能有類似的地方

就算程式碼你真的每一行都看得懂好了

也不代表把每個檔案都翻遍 就能找到答案

如果家人沒跟你講 就吃掉你放在冰箱的布丁

那你冰箱 翻個10遍 100遍 布丁會變回來嗎?

所以找 "參考" 這個部分 很重要

先去思考 有沒有類似的功能

有想到 你才有辦法往下嘗試

千萬不要在冰箱裡找一個不存在的布丁

找參考 就是說 你今天想寫一個裝備升級的系統

那可以參考的 大概會像是 溶解系統 這種東西

溶解劑 > 選擇要溶解的 垃圾 > 獲得 魔法結晶體
升級捲 > 選擇要升級的 1星武器 > 獲得 2星武器

是不是很類似? 都是 用道具 將 A 變成 B
所以要先確定有類似的 你才有辦法翻得到 不是嗎?

你希望顯示數字 就要先想個類似的功能

還沒想到類似的 你就在想 不同怪怎麼辦 範圍怎麼辦

連布丁都沒找到 要怎麼吃布丁呢?

然後你有確定你 getId 每隻怪是一樣的嗎?
還是你把他跟 getNpcId 兩個搞混了?

反正 重點 還是要先想看看 有什麼跟你要的類似
等有想到了 再去煩惱後續 不同怪 跟 範圍問題也不遲

我舉例一個 像是 NPC名稱顯示
他就是在畫面上顯示你看到的所有NPC名稱

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

使用道具 舉報

7

主題

81

帖子

479

金錢

妖魔

Rank: 4

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
35
積分
560
在線時間
53 小時
相冊
0
日誌
0
好友
0
發表於 2024-2-7 15:13 | 顯示全部樓層
yasioukon 發表於 2024-2-5 23:05
一般你看到的 單純數字的傷害顯示 不是SPR的

那種基本上 大部分 都是用登入器寫出來的


感謝大大詳細說明 !!!

小弟也有嘗試使用登入器,可是似乎售價昂貴,所以才思考能不能自己完成。


其實小弟想過使用 truetarget 的方法來呈現,後來發現要改客戶端有點困難。

確實天堂這個專案真的是很大的專案超複雜,大大所說的 "參考" 小的會銘記於心 !!!

顯示數字的登入器能做到,目前在嘗試登入器,範圍魔法RangeSkill 裡面的形參好像沒有dmg,
for (TargetStatus target : targetList) {
    // System.out.println("TG: "+target.getTarget().getName() + "/" +
    // target.isCalc());
    this.writeD(target.getTarget().getId());
    if (target.isCalc()) {
        this.writeH(0x20);
    } else {
        this.writeH(0x00); // 0x00:無傷害 大於0傷害質
    }
}
導致火風暴轉下去,每隻怪都是顯示傷害 32

請教大大這個部分要怎麼調整才行 ~"~

是不是這樣 !?
getId = 每隻怪編號
getNpcId = 每種NPC的編號




回復 支持 反對

使用道具 舉報

1

主題

586

帖子

1萬

金錢

巴列斯

Rank: 10Rank: 10Rank: 10

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
60
積分
17627
在線時間
298 小時
相冊
0
日誌
0
好友
0
發表於 2024-2-7 16:28 | 顯示全部樓層
登入器 寫成抓 0X20 那一格

那16進制中 0X20 代表32

所以傷害顯示32 是這個地方的問題

不是getId的問題

把0X20改成任何數字 你會發現顯示變了

所以用登入器的方式 顯示傷害

那一格數字 要改成 對該隻的傷害 不能是固定數字

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

使用道具 舉報

7

主題

81

帖子

479

金錢

妖魔

Rank: 4

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
35
積分
560
在線時間
53 小時
相冊
0
日誌
0
好友
0
發表於 2024-2-7 17:01 | 顯示全部樓層
yasioukon 發表於 2024-2-7 16:28
登入器 寫成抓 0X20 那一格

那16進制中 0X20 代表32

我有試著在把 " 0x20 " 改為 dmg

RangeSkill 的形參中加入 dmg

並將調用這個方法的4個地方也都加上 _dmg

測試完結果變成所有怪顯示的傷害數字,都變成最後一隻怪的傷害數字


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

使用道具 舉報

1

主題

586

帖子

1萬

金錢

巴列斯

Rank: 10Rank: 10Rank: 10

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
60
積分
17627
在線時間
298 小時
相冊
0
日誌
0
好友
0
發表於 2024-2-7 18:54 | 顯示全部樓層
你把dmg送過來

假設 dmg 是 32

那跟 原本 0X20 不是一樣 所有怪都套用嗎?

所以你不能用固定值

要是每隻怪 個別的傷害

像 target.getTarget().getId() 會取得不同數字一樣

傷害一樣要是要每個target都不一樣dmg

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

使用道具 舉報

7

主題

81

帖子

479

金錢

妖魔

Rank: 4

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
35
積分
560
在線時間
53 小時
相冊
0
日誌
0
好友
0
發表於 2024-2-7 19:28 | 顯示全部樓層
本帖最後由 YJack 於 2024-2-7 21:40 編輯
yasioukon 發表於 2024-2-7 18:54
你把dmg送過來

假設 dmg 是 32

感謝大大的回覆 ~~ 有一點想不通,damage 是玩家的傷害

但是 target.getTarget( ).getId( ) 的對象是這個怪,範圍魔法的話

每個怪受到傷害的數字都不一樣,請問這樣的話要怎麼做...



因為我是參考,MagicPc 裡面的commit ()方法

判斷Gm 攻擊時調用damage ,我測試了一下火風暴捲下去還真的能

每個怪都顯示不一樣的傷害,所以我才依樣畫葫蘆讓WriteH 用damage

結果不能...哭哭




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

使用道具 舉報

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

本版積分規則

天堂私服列表

45客服

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

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

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

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