【冰話XS】007:XS 修改屬性愛憎の絡(luò)み合い

☆※冰の引言※☆
前文對(duì)XS中的純讀取函數(shù)"七君子"做了一定介紹和從實(shí)踐的角度深度闡明了獨(dú)立化的那些事兒,這一常見但又頭疼的問題。本文不講太多技術(shù)方面的內(nèi)容,重點(diǎn)就講講一個(gè)事——XS腳本調(diào)用函數(shù)與修改屬性這兩者在使用上的優(yōu)劣取舍與愛憎の絡(luò)み合い(愛恨糾葛)。

☆※本節(jié)の紹介※☆


☆※種屬/護(hù)甲與傷害/科技加成之間的聯(lián)系※☆
在講修改屬性與XS函數(shù)的優(yōu)缺點(diǎn)之前,先簡(jiǎn)單講講一些帝國(guó)里常用但容易被忽視的理論。
首先先擺結(jié)論在前:種屬 → 科技加成,護(hù)甲 → 傷害
--- 種屬 ---
先來講講種屬的概念,種屬可以認(rèn)為就是單位的"性別",每一種單位都能從種屬列表中找到他們唯一對(duì)應(yīng)的種,單位的種屬具有排他性、唯一性,每種單位有且只歸屬于一個(gè)種屬,就如同人的性別一樣,一個(gè)人不能既是男的,又是女的。而科技加成在AGE內(nèi)的實(shí)現(xiàn)原理基本上是通過改變種屬的屬性來實(shí)現(xiàn)的,所以說任何單位受的科技加成基本都由種屬來決定。
種屬列表如下圖所示:(紅字為常用種屬)

在認(rèn)識(shí)到科技加成是由種屬來決定的時(shí)候,很多平時(shí)認(rèn)知上難以理解的問題就能迎刃而解。
比如說如何解釋為何征服者、飛鏢騎兵和火槍手不受彈道學(xué)影響,因?yàn)閺椀缹W(xué)是修改歸屬于種屬0和種屬36單位的屬性,并沒有涉及到種屬23和種屬44單位的修改,所以這三者必然是不吃彈道學(xué)加成的;又比如講馬穆魯克,它有射手類型的護(hù)甲,但是他卻是吃騎兵護(hù)甲加成的單位,究其原因,是因?yàn)樗鼩w屬于種屬12騎兵,種屬12的單位就一定只受騎兵護(hù)甲的影響,所以很多從攻擊/護(hù)甲角度層面弄不明白的問題,結(jié)合種屬進(jìn)行分析,很快就茅塞頓開了。
---?護(hù)甲/攻擊 ---
攻擊和護(hù)甲是一對(duì)孖生兄弟,兩者互相作用,不可分割。與種屬不同,攻擊類型和護(hù)甲類型相當(dāng)于單位的"衣服",每種單位可以有多套衣服,每套衣服都是獨(dú)立的,互相之間不構(gòu)成關(guān)聯(lián)關(guān)系。例如戰(zhàn)象同時(shí)擁有戰(zhàn)象護(hù)甲和騎兵護(hù)甲,在被長(zhǎng)槍兵系單位攻擊的時(shí)候就會(huì)受兩種攻擊類型的疊加傷害。關(guān)于傷害計(jì)算的相關(guān)內(nèi)容留待后面章節(jié)再細(xì)講,傷害計(jì)算的核心要義就是攻擊單位的每一種攻擊減去被攻擊單位對(duì)應(yīng)類型的護(hù)甲所得的結(jié)果相加,這里簡(jiǎn)單提幾點(diǎn):?
總傷害若計(jì)算結(jié)果為0,則強(qiáng)制造成1傷害;?
若出現(xiàn)一種攻擊減去對(duì)應(yīng)類型的護(hù)甲后的結(jié)果不為正數(shù),則該項(xiàng)結(jié)果為0。

攻擊/護(hù)甲類型列表如下圖所示:

顯而易見,一種單位的護(hù)甲類型越多,意味著這種單位的"壽衣"越多,體現(xiàn)在戰(zhàn)斗中它受到傷害加成會(huì)更大;一種單位的攻擊類型越多,體現(xiàn)在戰(zhàn)斗中它能對(duì)更多類型的單位擁有傷害加成優(yōu)勢(shì)。
謹(jǐn)記:地圖編輯器只能通過高護(hù)甲免疫變相實(shí)現(xiàn)刪除單位護(hù)甲,但是無論如何都不能對(duì)單位新增攻擊類型/護(hù)甲類型(數(shù)據(jù)MOD改dat當(dāng)然可以,但不是本文討論的范疇)。所以說攻擊/護(hù)甲數(shù)值大小和類型共同決定了總傷害的多少。

☆※修改屬性の"幾宗罪"※☆
修改屬性因?yàn)槠淠芨淖儐挝坏膶傩远植粫?huì)獨(dú)立化受到眾多戰(zhàn)役制作者的青睞,甚至還衍生出某些到處鼓吹"修改屬性"如何神乎其神的狂熱分子,其實(shí)啊修改屬性看上去貌似很好用,實(shí)際上局限性非常明顯,而且還有很多讓人看不明白的反人類騷操作。筆者雖然不才,但是為了讓這些吹逼的臉被打腫成豬頭,還是要把其中的利害關(guān)系,是非曲直道個(gè)明白,讓我們來盤點(diǎn)下修改屬性到底有"幾宗罪"。

以下對(duì)修改屬性的"幾宗罪"進(jìn)行逐條列舉:
1.修改屬性一次只能修改一個(gè)ID一種單位的一種屬性。
上文提到科技加成的決定因素是以種屬為單位的,簡(jiǎn)而言之就是一類的單位,很遺憾的是修改屬性并不支持修改一類的單位。舉個(gè)例子:如果我想設(shè)計(jì)一個(gè)科技令所有騎兵單位HP+10,用修改屬性的話,只能老老實(shí)實(shí)地逐項(xiàng)枚舉,你還要保證不錯(cuò)不漏,那巨大的工作量,幾十條起步的效果,就算能實(shí)現(xiàn)也是老牛拉破車——費(fèi)了老大勁,吃力不討好。反觀 XS 函數(shù),直接對(duì)騎兵類和騎射手類進(jìn)行屬性修改,一條效果搞定一切,可以說修改屬性在這一條上完敗,輸?shù)膹貜氐椎住?/span>
大家可以翻閱AGE便可知AGE上絕大部分科技比如血統(tǒng),鼓風(fēng)爐,突厥騎射等都是直接對(duì)同一種屬的所有種類的單位統(tǒng)一進(jìn)行屬性修改,這種方法的好處非常明顯:簡(jiǎn)單快捷方便,而且工作量小一步到位又能做到不錯(cuò)不漏,實(shí)是四兩撥千斤的神來之筆。
2.修改屬性的數(shù)值只能用整數(shù),不能用小數(shù)。
這可謂是修改屬性最最反人類的騷操作。都2202年了,數(shù)值那里還只能使用整數(shù)int,而不能使用浮點(diǎn)數(shù)float的修改屬性就是遜了。在單位屬性方面,工作效率,移速,攻擊間隔等很多屬性都是以浮點(diǎn)數(shù)形式儲(chǔ)存的。比如我要把騎士的移速?gòu)?.35改為1.5,這個(gè)修改屬性還要求必須使用四則運(yùn)算實(shí)現(xiàn)小數(shù),先設(shè)置為15再除以10,這樣蟲豸窒息的騷操作怎么能讓人做戰(zhàn)役/場(chǎng)景做的安心呢?修改一個(gè)單位的屬性還要兩條效果才能實(shí)現(xiàn),屬實(shí)是低效冗長(zhǎng)的老土辦法。
再來看看 XS 函數(shù),它可支持float類型,遇到小數(shù)直接寫就行,根本不用想什么四則運(yùn)算,甚至可以多種屬、不同屬性的修改放到同一個(gè)函數(shù)里同時(shí)進(jìn)行修改,只需一條效果觸發(fā)足矣??梢哉f,修改屬性完全是被降維打擊,實(shí)力碾壓。與up-effect不同的是, XS 函數(shù)無需指定函數(shù)值為整型模式還是浮點(diǎn)型模式,統(tǒng)一都是浮點(diǎn)型,大大利好場(chǎng)景設(shè)計(jì)者,在這點(diǎn)上的確比up1.5更勝一籌。
3.修改屬性中某些屬性因?yàn)楣俜接薮赖腂UG無法進(jìn)行修改。
在官方文檔的字符串文件中,修改屬性有個(gè)可修改的功能屬性叫"駐扎治療速率"(屬性ID 108),這個(gè)參數(shù)主要應(yīng)用于受傷士兵通過駐扎防御建筑回復(fù)生命值。其中塔樓類單位該屬性是0.1,城堡和營(yíng)壘是0.2,堡壘是2,研究科技草藥后上述參數(shù)的值均乘6達(dá)到0.6/1.2/12。但是由于官方BUG的原因,這個(gè)參數(shù)通過修改屬性并不能修改,究其原因是官方這個(gè)下拉選框無法顯示這個(gè)屬性(見下圖,無108 駐扎治療速率)。如果想把所有塔類的駐扎治療效率設(shè)置為0.5,就只能使用 XS 函數(shù)這種方式,除此之外,別無他法。

4.修改屬性使用范圍較小,沒有額外特殊功能,局限性較大
修改屬性只能用于修改單位的屬性,功能較單一,除了修改單位各類屬性之外,其他啥都干不了。
而 XS 函數(shù)不僅僅能修改單位屬性,還能夠承擔(dān)起變量與資源直接的聯(lián)動(dòng)、真隨機(jī)、全局聊天等等特殊功能。比如勃艮第銀冠——勃艮第葡萄園(把一半的食物轉(zhuǎn)換為黃金)這種不定數(shù)資源轉(zhuǎn)換的科技,只能通過 XS 函數(shù)的方式得以實(shí)現(xiàn),其他方法均無法實(shí)現(xiàn)。

☆※兩者優(yōu)劣大盤點(diǎn)※☆
關(guān)于兩者的優(yōu)劣對(duì)比大盤點(diǎn)詳見下圖:


☆※權(quán)衡の使用場(chǎng)合之我見※☆
從上面的分析可以看出,修改屬性除了在修改單位名字(比如把所有的薩瓦爾更名為不死軍)對(duì)比XS函數(shù)有非常明顯的優(yōu)勢(shì),在攻防乘除方面算是與之打成平手外,再無更多亮點(diǎn)。
在這里筆者給出的建議是多用XS腳本調(diào)用,特定場(chǎng)合才用修改屬性。門檻高不高不是問題,只要你讀熟讀透本教程,可以保證的是玩轉(zhuǎn)XS是可以很輕松就能實(shí)現(xiàn)的。望各位能權(quán)衡好利弊得失,盡量做到趨利避害,用更少的工作量實(shí)現(xiàn)預(yù)定效果,XS函數(shù)遠(yuǎn)比修改屬性好用太多!

☆※冰の小結(jié)※☆
本節(jié)對(duì)修改屬性與XS腳本調(diào)用函數(shù)的愛憎の絡(luò)み合い(愛恨糾葛)進(jìn)行了非常詳細(xì)的剖析,指明了創(chuàng)作者如何在這兩者之間做好取舍,如何分清使用場(chǎng)合正確運(yùn)用指明了方案。下一篇章將走進(jìn)xsChatData函數(shù),探秘這個(gè)測(cè)試神器和全局廣播究竟有何神通,敬請(qǐng)期待。
欲知后事如何,請(qǐng)聽下回分解?


