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

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

rimworld的mod制作——反編譯與瘟疫槍

2023-05-20 14:47 作者:PLucker518  | 我要投稿

今天原本想講一下反編譯的。但是看到了wiki上瘟疫槍的教程,他寫(xiě)的很詳細(xì)和全面,我打算簡(jiǎn)單介紹一下他的內(nèi)容,水一篇。

github網(wǎng)址我貼不上來(lái)。大家可以在github上搜索PlagueGun。會(huì)有好多個(gè)版本。。。我也不知道哪個(gè)是正版。。。wiki上說(shuō)是名叫Jecrell編寫(xiě)的,鏈接給的是dninemfive。

dninemfive/PlagueGun: The completed mod from the tutorial (github.com)


瘟疫槍作者打算在游戲中添加一把槍?zhuān)δ苁沁@把槍射出的子彈,有概率會(huì)給目標(biāo)添加一個(gè)“瘟疫”debuff。


about目錄與def目錄的內(nèi)容我就不重復(fù)了。之前我都介紹過(guò)該怎么寫(xiě)了。有興趣大家可以自己去作者github下載。

重點(diǎn)說(shuō)一下CS,我注釋了他的代碼。代碼還是很簡(jiǎn)單的。

編譯時(shí)注意要添加對(duì)Assembly-CSharp.dll、UnityEngine.dll和UnityEngine.CoreModule.dll的引用。注意引用不要選復(fù)制本地。


下面介紹一下反編譯工具。我用的是dnSpy。

先用編輯器打開(kāi)Assembly-CSharp.dll。然后就看到了左方紅框中的內(nèi)容。然后看下方紅箭頭的地方搜索你想要的內(nèi)容,比如我這里就查找Bullet這個(gè)原始代碼類(lèi)。想看一下它干了什么。

搜索到后,在上方代碼就顯示出了impact類(lèi)。就是作者繼承改寫(xiě)的類(lèi)。

這段代碼實(shí)現(xiàn)了在 RimWorld 游戲中,彈藥撞擊一個(gè)目標(biāo)時(shí)的具體邏輯與效果。

首先,保存當(dāng)前所在地圖和位置信息。接下來(lái),調(diào)用基類(lèi)(base)的 Impact 方法,處理當(dāng)前物體與目標(biāo)之間的撞擊情況,并記錄戰(zhàn)斗日志(battleLogEntry_RangedImpact)。然后,調(diào)用 NotifyImpact 來(lái)通知游戲系統(tǒng)有一個(gè)物體發(fā)生了撞擊。

如果當(dāng)前物體撞擊到了一個(gè)有效的目標(biāo)(即非 null),則構(gòu)造傷害信息 dinfo,并將傷害應(yīng)用于目標(biāo) hitThing,在戰(zhàn)斗日志中記錄該次傷害(AssociateWithLog)。如果目標(biāo)是角色(pawn2),通知其進(jìn)入受挫狀態(tài)(stagger)。特別地,如果當(dāng)前物體存在額外傷害(extraDamages),則遍歷每個(gè)額外傷害形成的 DamageInfo 并隨機(jī)使用其中的一部分應(yīng)用于目標(biāo) hitThing。

最后,如果目標(biāo) hitThing 是角色并且滿(mǎn)足觸發(fā)條件(bulletChanceToStartFire),則可能引起角色著火。否則,如果當(dāng)前物體未被護(hù)盾攔截,則根據(jù)撞擊地面的位置、所在地圖等信息確定造成撞擊的效果和聲音,同時(shí)也可能引發(fā)地面著火。

……

……

無(wú)聊且痛苦的內(nèi)容。



rimworld的mod制作——反編譯與瘟疫槍的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
屯留县| 龙泉市| 闽清县| 甘肃省| 龙陵县| 红桥区| 罗江县| 来宾市| 商河县| 东莞市| 武川县| 广昌县| 贡嘎县| 云林县| 罗山县| 宝丰县| 上饶市| 望城县| 长葛市| 民县| 柳江县| 北碚区| 航空| 手游| 东平县| 泰兴市| 涞水县| 慈溪市| 乌审旗| 定远县| 吴桥县| 博罗县| 镇江市| 盐边县| 宜城市| 宁安市| 嘉荫县| 鄂托克旗| 玉环县| 宝兴县| 乌兰察布市|