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

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

神州重工mod介紹(上)環(huán)世界/邊緣世界/rimworld/mod介紹

2023-07-17 01:44 作者:滾動賣萌的小精靈  | 我要投稿

關(guān)于青蛇戰(zhàn)術(shù)狙擊步槍的事情,我這里稍微補(bǔ)充一下,因?yàn)檫@些東西比較復(fù)雜,要結(jié)合代碼才能說得明白。如果大家想要修改的話,用記事本打開對應(yīng)的文件,找到對應(yīng)的語句就可以直接修改。

同時,還希望能有哪位朋友可以在創(chuàng)意工坊上反應(yīng)一下,向作者大大說明這把槍的問題。

當(dāng)然,如果有哪位朋友希望能更深入的研究這方面的問題,我建議使用Notepad++這類更專業(yè)的代碼編輯軟件。它那個界面會比記事本好很多,有一定的代碼校驗(yàn)功能,使用體驗(yàn)會比記事本好很多。

以下先貼出相關(guān)文件、文件夾的位置和名字,方便大家查閱。

神舟重工mod文件夾位置和默認(rèn)文件夾名稱:

X:\……\RimWorld\Mods\2883670795

(所有關(guān)于該mod的文件內(nèi)容都在該文件夾下,正常來說,所有mod的文件夾名稱都是該mod在創(chuàng)意工坊的編號。后面為了目錄簡短,我就默認(rèn)都從這個編號文件夾目錄下開始寫了。)

青蛇狙擊槍物品定義文件位置、文件名和定義語句:

2883670795\Defs\Weapons\Rifles\QBU71.xml

<defName>QS</defName>

青蛇狙擊槍子彈定義文件位置、文件名和定義語句:

2883670795\Defs\Weapons\Projectiles.xml

<defName>Bullet_QS</defName>

青蛇狙擊槍子彈傷害定義文件位置、文件名和定義語句:

2883670795\Defs\ DamageDef\ Damages.xml

<defName>ATB</defName>

麻醉子彈Debuff定義文件位置、文件名和定義語句:

2883670795\Defs \Hediff\ Hediffs.xml

<defName>SMAnesthetic</defName>

以上,一共是4個文件以及當(dāng)中的4處位置。

所謂定義語句是mod文件所定義的東西要在系統(tǒng)內(nèi)有一個唯一的定義名稱,所有關(guān)于這個東西的定義都會寫在這個定義名下面。由于子彈、傷害、buff三個文件內(nèi)還寫了其他武器的相關(guān)內(nèi)容,所以我貼出這個定義名稱語句,方便大家搜索。

同時,為了方便大家理解和修改,需要修改的內(nèi)容,我都按照要查找那個文件位置、定義語句、需要修改的語句原文及附近部分、修改意見或修改后的語句、修改原因,這樣一個順序該大家介紹說明。希望能方便大家的理解。

1. 青蛇狙擊步槍物品定義修改:

文件位置:2883670795\Defs\Weapons\Rifles\QBU71.xml

定義語句:<defName>QS</defName>

需要修改的語句:

<defaultProjectile>Bullet_QS</defaultProjectile>

????????????????????<warmupTime>2.5</warmupTime>

????????????????????<range>53.9</range>

????????????????????<forcedMissRadius>0.1</forcedMissRadius>(問題語句)

修改后的語句:

<defaultProjectile>Bullet_QS</defaultProjectile>

????????????????????<warmupTime>2.5</warmupTime>

????????????????????<range>53.9</range>

????????????????????<!-- <forcedMissRadius>0.1</forcedMissRadius> -->

修改原因:

通過翻譯可知,該語句是讓子彈強(qiáng)行偏移了0.1格。但是這個具體的原因要結(jié)合下一個修改來解釋。這里大家只需要知道語句本意即可。

我的修改方式是把問題語句給轉(zhuǎn)成了注釋,即在需要修改的語句前后分別加上“<!--”和“-->”。這也是很多軟件語言修改的好辦法,方便未來查閱。如果大家嫌麻煩可以直接刪除這一行,效果是一樣的。但是不建議將數(shù)值改得更精確,具體原因在下一個修改里來解釋。

2. 青蛇狙擊槍子彈定義修改:

文件位置:2883670795\Defs\Weapons\Projectiles.xml

定義語句:<defName>Bullet_QS</defName>

需要修改的語句:

???</graphicData>

???<thingClass>Projectile_Explosive</thingClass>(問題語句)

???<projectile>

修改后的語句:

???</graphicData>

???<!-- <thingClass>Projectile_Explosive</thingClass> -->

???<projectile>

修改原因:

通過翻譯可知,這個語句的意思是給青蛇的麻醉子彈做一個類型定義,定義為一種爆炸子彈。這個定義實(shí)際上就是各種炮彈的定義。

換句話說,有這個語句在,青蛇的麻醉子彈被定義為了一種炮彈。結(jié)合上一個修改,就是一種強(qiáng)制偏移0.1格的炮彈。我猜測作者的本意可能是希望把青蛇的麻醉子彈定義為一種1格范圍的麻醉子彈??梢酝瑫r對疊在一起的多個目標(biāo)生效。

然而,不知道是改版還是其他什么原因,在當(dāng)前1.4版的環(huán)世界游戲里,炮彈的命中機(jī)制與子彈不同。目視觀測上,炮彈沒打中就是真的沒打中,但是子彈沒打中,那只是一個動畫效果,是否真的擊中應(yīng)該是按照命中率去計(jì)算的。

所以以上兩個問題語句聯(lián)合起來,經(jīng)常導(dǎo)致青蛇的麻醉子彈打不中敵人。

3. 青蛇狙擊槍子彈傷害定義修改:

文件位置:2883670795\Defs\ DamageDef\ Damages.xml

定義語句:<defName>ATB</defName>

需要修改的語句:

?????<li>

???????<hediff>SMAnesthetic</hediff>

?????????????<severityPerDamageDealt>0.5</severityPerDamageDealt>(問題語句)

??????<victimSeverityScalingByInvBodySize>true</victimSeverityScalingByInvBodySize>(問題語句)

?????</li>

修改后的語句:

?????<li>

???????<hediff>SMAnesthetic</hediff>

?????????????<severityPerDamageDealt>1</severityPerDamageDealt>

??????<victimSeverityScalingByInvBodySize>false</victimSeverityScalingByInvBodySize>

?????</li>

修改原因:

由翻譯可知,兩個問題語句的含義分別是每點(diǎn)傷害帶來的Buff嚴(yán)重程度,以及Buff嚴(yán)重程度是否會受到目標(biāo)體型大小的影響。

先說明一下,青蛇狙擊步槍的基礎(chǔ)傷害為1點(diǎn),傳奇能達(dá)到2點(diǎn)。這些定義是寫在上一個子彈定義部分里的。

這些語句的修改原因以及原本的問題等,需要結(jié)合下一個修改來一起說。

4. 青蛇狙擊槍麻醉子彈Debuff定義修改:

文件位置:2883670795\Defs \Hediff\ Hediffs.xml

定義語句:<defName>SMAnesthetic</defName>

由于這一部分修改內(nèi)容較多,所以我就把整個定義代碼都貼在這里了。

需要修改的語句:

???<HediffDef ParentName="DiseaseBase">

???<defName>SMAnesthetic</defName>

???<label>mechanites anesthesia</label>

???<description>mechanites in the brain. Anesthetic renders creatures unconscious.</description>

???<isBad>false</isBad>

???<initialSeverity>1</initialSeverity>

???<maxSeverity>1</maxSeverity>

???<comps>

?????<li Class="HediffCompProperties_Disappears">

???????<disappearsAfterTicks>15000~15000</disappearsAfterTicks>(問題語句)

???????<showRemainingTime>true</showRemainingTime>

?????</li>

?????<li Class="HediffCompProperties_SeverityPerDay">

???????<severityPerDay>-0.8</severityPerDay>(問題語句)

?????</li>

???</comps>

???<stages>(問題語句,直到</stages>為止的整個部分都有問題)

?????<li>

???????<label>sedated</label>

???????<capMods>

?????????<li>

???????????<capacity>Consciousness</capacity>

???????????<setMax>0.01</setMax>

?????????</li>

???????</capMods>

?????</li>

???</stages>

?</HediffDef>

修改后的語句:

???<HediffDef ParentName="DiseaseBase">

???<defName>SMAnesthetic</defName>

???<label>mechanites anesthesia</label>

???<description>mechanites in the brain. Anesthetic renders creatures unconscious.</description>

???<isBad>false</isBad>

???<initialSeverity>1</initialSeverity>

???<maxSeverity>1</maxSeverity>

???<comps>

?????<li Class="HediffCompProperties_Disappears">

???????<disappearsAfterTicks>45000~55000</disappearsAfterTicks>

???????<showRemainingTime>true</showRemainingTime>

?????</li>

?????<li Class="HediffCompProperties_SeverityPerDay">

???????<severityPerDay>-1.0</severityPerDay>

?????</li>

???</comps>

???<stages>

?????<li>

?????????????<minSeverity>0.98</minSeverity>

???????<label>sedated</label>

???????<capMods>

?????????<li>

???????????<capacity>Consciousness</capacity>

???????????<setMax>0.05</setMax>

?????????</li>

???????</capMods>

?????</li>

???????<li>

???????<minSeverity>0.99</minSeverity>

???????<label>sedative kicking in</label>

???????<painFactor>0</painFactor>

???????<capMods>

?????????<li>

???????????<capacity>Consciousness</capacity>

???????????<setMax>0.9</setMax>

?????????</li>

?????????<li>

???????????<capacity>Moving</capacity>

???????????<offset>-0.5</offset>

?????????</li>

?????????<li>

???????????<capacity>Manipulation</capacity>

???????????<offset>-0.5</offset>

?????????</li>

?????????<li>

???????????<capacity>Talking</capacity>

???????????<offset>-0.5</offset>

?????????</li>

?????????<li>

???????????<capacity>Metabolism</capacity>

???????????<offset>-0.5</offset>

?????????</li>

?????????<li>

???????????<capacity>Sight</capacity>

???????????<offset>-0.35</offset>

?????????</li>

???????</capMods>

?????</li>

???</stages>

?</HediffDef>

修改原因:

?“<disappearsAfterTicks>15000~15000</disappearsAfterTicks>”語句意為在15000tick時間后,麻醉buff強(qiáng)制消失。這個語句本身沒有什么問題,但是時間給得比較短,相當(dāng)于游戲內(nèi)6小時。這個時間……反正我是經(jīng)常不方便抓人的。我覺得還是弄長一點(diǎn)好。所以我改成了接近游戲內(nèi)1天的麻醉時間。

當(dāng)然,這個是否真的能有那么長的麻醉時間,還要看下面這個語句的配合。

“<severityPerDay>-0.8</severityPerDay>”語句意為buff每天的變化程度,這里是指buff每天減少80%的嚴(yán)重程度。如果嚴(yán)重程度將為0%,buff也會消失。所以這個語句與上面那個語句配合起來,保證在buff強(qiáng)制消失時間內(nèi)buff本身不會減少到0%,才能真正讓一個buff維持到強(qiáng)制消失時間。

語句段落“<stages>” 到“</stages>”這個之間的部分是定義在整個buff變化過程當(dāng)中,各階段具體上什么buff。

在原來的語句當(dāng)中,定義是很明確的,就是全過程麻醉,也就是只要青蛇麻醉子彈buff存在,就起到麻醉效果?!?lt;capacity>Consciousness</capacity>”和“<setMax>0.01</setMax>”的意思是Buff的效果是意識的最大值只有1%。顯然中了這個buff的小人肯定是倒地不起的。

但是,也正是這個地方,導(dǎo)致了青蛇狙擊槍的麻醉子彈會打死人。

經(jīng)過我的測試,在目前1.4的版本機(jī)制下,能夠造成傷害的武器,也就是除了原版心靈沖擊槍這種純粹上buff擊倒人的武器外,任何一種武器只要在對目標(biāo)造成傷害后,能夠?qū)е履繕?biāo)倒地。目標(biāo)是否死亡都會按照敘事者的倒地死亡概率設(shè)置進(jìn)行判斷。

也就是說,如果敘事者的敵人倒地死亡率設(shè)置為100%,那么青蛇狙擊槍麻醉子彈奇效后,都會被敘事者判定為死亡。反正,如果倒地死亡率設(shè)置為0%,那么青蛇狙擊槍的麻醉子彈就會起到正常的麻醉效果。

于是,參照VE武器拓展當(dāng)中的非致命武器拓展,我只能給它修改成一個漸進(jìn)式buff。在100%到99%嚴(yán)重程度的時候(對應(yīng)語句<minSeverity>0.99</minSeverity>),麻醉buff不會讓目標(biāo)立即倒地,而是會大幅度減少目標(biāo)的移動速度。從98%嚴(yán)重程度開始(對應(yīng)語句<minSeverity>0.98</minSeverity>),目標(biāo)才會由于麻醉buff失去意識倒地。

這1%的時間放在1倍速的游戲內(nèi),差不多相當(dāng)于現(xiàn)實(shí)當(dāng)中20秒左右。按照計(jì)算應(yīng)該是相當(dāng)于10秒的,可能是我這邊幀率低吧,我當(dāng)時1倍速可能只有30幀左右。

但是這又出現(xiàn)了另外一個問題。

由于青蛇子彈傷害定義里,也就是上一處修改里,青蛇麻醉子彈的buff嚴(yán)重程度是每點(diǎn)傷害只增加buff嚴(yán)重程度50%,并且還會受到目標(biāo)體型的影響。體型越大,中槍后buff嚴(yán)重程度越低。這就導(dǎo)致了大體型動物中槍后,直接進(jìn)入第二階段的麻醉狀態(tài),倒地昏迷,因此又被敘事者判定為受傷后擊倒,代入倒地死亡率判斷。

所以,我只好把前面子彈傷害的部分代碼也做了修改。讓青蛇的麻醉子彈每點(diǎn)傷害都能打滿100%的buff嚴(yán)重程度,并且與目標(biāo)體型不相關(guān)。這就是子彈傷害定義部分需要修改的原因。

這一部分修改比較復(fù)雜,希望這些解釋能讓大家看得懂。

我個人猜測,會出現(xiàn)這些問題,除了mod作者大大測試的時候用的是休閑難度之外,他的本意應(yīng)該是希望青蛇的子彈面對大體型目標(biāo)時容易打中,但是不會麻醉很長時間;面對小體型目標(biāo)時很難打中,但是能麻醉很長時間。

這才有了將青蛇子彈定義為炮彈,并且強(qiáng)制偏轉(zhuǎn)0.1格;將子彈每點(diǎn)傷害的麻醉buff嚴(yán)重程度與目標(biāo)體型大小掛鉤。

然而,環(huán)世界自帶的游戲機(jī)制不支持這個想法,沒有對應(yīng)機(jī)制的設(shè)定空間。如果一定要這么做,我覺得應(yīng)該要寫一個專門的.dll文件才行。

我也考慮過是不是能讓buff變成正向增加的buff,也就是“<severityPerDay>-0.8</severityPerDay>”語句當(dāng)中的值變?yōu)檎龜?shù)。然后buff階段的設(shè)置按照正增長來進(jìn)行設(shè)置。

然而這樣做的結(jié)果,只能是讓大體型目標(biāo)中槍后更久才能倒地,或者是要多中幾槍才能倒地。但是正如之前所說,如果中槍后出現(xiàn)立即倒地的情況,那又會被敘事者代入倒地死亡率計(jì)算,在高難度下還是會打死目標(biāo)。

所以這個辦法也是不行的。就像前面所說,真的想實(shí)現(xiàn)作者大大的目標(biāo),只能專門寫一個dll文件了。

以上就是我個人對青蛇狙擊步槍的研究和修改意見了,我修改之后,確實(shí)沒有在出現(xiàn)打死人的情況了。只是,我這邊雖然沒有打CE,mod總數(shù)也有400個以上。再加上本人水平有限,這件事也過去了幾個月了,如果上文有哪里有錯,或者是由于mod沖突引起的,還請各位大大能夠在下的回復(fù)里批評指正。

同時也希望有哪位大大看到后,能在創(chuàng)意工坊給作者大大留言,說明以上問題。創(chuàng)意工坊界面是有字?jǐn)?shù)限制的,實(shí)在不行可以貼這個文章的鏈接也可以。

神州重工mod介紹(上)環(huán)世界/邊緣世界/rimworld/mod介紹的評論 (共 條)

分享到微博請遵守國家法律
信宜市| 临沭县| 娄烦县| 密山市| 嘉禾县| 泸州市| 定结县| 平利县| 荥阳市| 封丘县| 右玉县| 鹤壁市| 安远县| 福安市| 凤台县| 逊克县| 阳高县| 黄冈市| 浮梁县| 京山县| 温宿县| 会昌县| 丹阳市| 奈曼旗| 长垣县| 富宁县| 武汉市| 兴隆县| 东安县| 库伦旗| 绩溪县| 三都| 湖北省| 怀仁县| 芦溪县| 印江| 满城县| 巴林右旗| 远安县| 玛纳斯县| 沽源县|