最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Mod里制作劍(四)

2023-09-09 13:13 作者:道家深湖  | 我要投稿

第一篇

第二篇

第三篇



補一下漏

深湖:我想在正式開始之前,我應該糾正我在第二篇里的一個錯誤,或者說是含混的地方。

淺海:哪里?

深湖:我當時是這么說的:

正確答案是,當你的屬性修飾符(AttributeModifier)的UUID為特定的兩個值的時候,這項修正顯示灰色最終值;否則的話,顯示藍色正加成或者紅色負加成。

淺海:我做了實際嘗試,確實是這樣的???

深湖:只是格式上確實是這樣,但是顯示的具體數(shù)字內容不是。

舉例來說,你使用了ATTACK_SPEED_MODIFIER(攻速修飾符)修改了……攻擊傷害屬性,修改內容為“加2”,那么這里顯示的不是你的總攻擊傷害,也不是你的基礎攻擊傷害+2。它的值是你的基礎攻擊速度+2,但是描述是“X 攻擊傷害”,驢唇不對馬嘴。這就是上面你看到有兩條攻擊傷害屬性,還自相矛盾的原因。

如果你感興趣的話,上圖對應的的代碼是:

因此,攻擊修飾符就修飾攻擊,攻速修飾符就修飾攻速,不要亂搞了。

此外,因為這顯示的不是最終值,而是基礎值+修正值后的結果。如果有多件用這個UUID修正同一個屬性的裝備——當然他們會因為UUID互相沖突而無法同時生效——這東西也只能預覽這一件的理論效果。

對,這玩意總是按照加法來預覽,所以如果你是百分比+100%,他不會按照攻速(基礎值為4)的4*(1+100%)=8來計算,而是會算出錯誤的4+100%=500%。很愚蠢。所以這個UUID的修飾符還是留給類型為0的加法修飾符吧。

淺海:好的。說了這么多,總之我不按照原版未計劃的方式使用這兩個UUID的修飾符,就不會有問題,對吧?而且即使有也只是顯示問題。

深湖:對!就是這樣。

淺海:那么今天我們講修飾符的另一個要素,也就是具體的修正值?

深湖:對。這一項很好理解。如果值填3,那么它類型為0(普通加法)的時候,就是屬性+3;為1或者2(百分比加成)的時候,就代表+300%。

淺海:也就是說,如果我修正值填10000,類型為0(普通加法),就能讓玩家拿著的時候,攻擊力是……基礎的1點,加10000,最后是10001。

深湖:錯了。

淺海:為什么?

看似一萬攻擊,實際2048

深湖:如圖。最后的結果是2048。如果你去SharedMonsterAttributes里去看看它的定義,就會知道攻擊力這條屬性被限制在0~2048,根本沒法達到一萬。你的加成再多,也頂不出這個限制。

淺海:可我做出來,看到預覽的時候確實是10001攻擊傷害?。?/p>

深湖:我想前面你看過那個代碼的實現(xiàn)原理了,這個數(shù)值不可靠,他總是返回基礎值加修正值,而非實際的屬性最終值。你應該做的是實際獲取屬性值看一眼,就比如這樣……

淺海:我試試……為什么我獲取出來屬性值為1?超出范圍的修飾符會被丟棄嗎?

深湖:不會丟棄。獲取出來為1是你獲取的方式不對。要么你是獲取了BaseValue(基礎值),要么是因為你試圖在前端獲取攻擊傷害這條屬性。

如果你仔細看過這些屬性的定義的話,你會發(fā)現(xiàn)有的屬性在構造的時候,沒有進行setShoudlWatch(true),也就是說前端是根本不知道你最后身上的實際攻擊力是多少的。哦,基礎值還是知道的,如果這個基礎值是實體初始化的那個數(shù),也沒有被其他模組亂改過的話。

如果你想在前端臨時查看,最暴力的方法就是像我上面那樣給這個屬性,在后端的某個地方強行設置為setShouldWatch(true)。類似地,我記得有幾條屬性在1.12.2是watch的,在高版本又不watch了。在前端去試圖顯示東西的時候務必注意這條屬性是否會同步給前端。實際上,如果只是為了調試,那么在后端打條log就足夠了。

Mod里制作劍(四)的評論 (共 條)

分享到微博請遵守國家法律
麦盖提县| 嘉兴市| 呼伦贝尔市| 永和县| 清徐县| 湾仔区| 佛冈县| 彭阳县| 福安市| 浦北县| 嘉祥县| 金湖县| 景东| 盐源县| 正宁县| 博罗县| 司法| 铜梁县| 石台县| 东乡县| 沅陵县| 德钦县| 虹口区| 当雄县| 北辰区| 高平市| 嘉善县| 绍兴县| 清涧县| 万源市| 合山市| 桐城市| 京山县| 夏邑县| 含山县| 花莲县| 抚顺县| 绥芬河市| 玉山县| 公安县| 卢氏县|