國內(nèi)資深魔獸玩家麥德三世近日又公布了部分《魔獸爭霸3》MOD的新細(xì)節(jié),主要講解了數(shù)據(jù)對(duì)象ID的命名規(guī)則,據(jù)悉,這款基于《星際爭霸2》制作的MOD將于本周或下周發(fā)布。
本文作者為麥德三世,感興趣的玩家可以到地精研究院與作者詳細(xì)探討。
《魔獸爭霸3》MOD新細(xì)節(jié):
為了能最大限度照顧從war3編輯器轉(zhuǎn)來的同學(xué)的習(xí)慣,War3 Mod盡了最大可能為每個(gè)來自War3的對(duì)象使用了War3引擎中的四字符格式內(nèi)部ID。
例如,若是按照SC2的命名習(xí)慣,步兵的內(nèi)部ID通常會(huì)是其英文名Footman。但是在我這個(gè)War3 Mod中,對(duì)象內(nèi)部ID用的卻是war3的步兵四字符ID:hfoo,而“步兵”作為其顯示名同時(shí)賦予這個(gè)單位。
這樣做有哪些具體的好處呢?
例如,地圖作者們在調(diào)試模式下運(yùn)行搭載了War3 Mod的地圖時(shí),可以隨時(shí)使用SC2本身的調(diào)試作弊碼來創(chuàng)建自己想要的單位,而不需要回到編輯器里去編寫腳本或者放置單位。而目前的命名方式能極大地利用這一引擎優(yōu)勢。
如在聊天框中輸入:“MakeUnit 步兵”
即可在鼠標(biāo)位置創(chuàng)建一個(gè)步兵。沒錯(cuò),這個(gè)調(diào)試碼是支持中文的,因此你就算不知道一個(gè)兵種的英文名或內(nèi)部ID,也可以隨時(shí)隨地創(chuàng)建它們用來測試你的地圖。MakeUnit 凱爾就可以創(chuàng)建一個(gè)凱爾薩斯。
對(duì)于戰(zhàn)役英雄,直接在MakeUnit后面輸入它們的名字即可創(chuàng)建他們,對(duì)于非戰(zhàn)役英雄,由于它們有許多隨機(jī)名字,因此我在這里設(shè)置的規(guī)則是需要在Makeunit后面跟英雄職業(yè),比如MakeUnit 吉安娜會(huì)創(chuàng)建吉安娜,而MakeUnit 大法師則會(huì)創(chuàng)建一個(gè)大法師對(duì)戰(zhàn)英雄。
更方便的是,你甚至不需要輸入單位的全名即可使這個(gè)調(diào)試碼生效,例如MakeUnit 阿爾,或者M(jìn)akeUnit 阿就能創(chuàng)建阿爾薩斯。系統(tǒng)會(huì)自動(dòng)查找所有以“阿爾”或“阿”開頭單位,并列出所有符合條件的單位列表,然后創(chuàng)建列表中的第一個(gè)單位。
好了,你現(xiàn)在可能會(huì)想問,如果遇到名字一樣的單位怎么辦呢?
我們從上圖中可以發(fā)現(xiàn),這個(gè)War3 Mod和魔獸3編輯器一樣,數(shù)據(jù)庫里有三個(gè)阿爾薩斯!分別是拿錘子版、拿劍版(霜之哀傷)和死亡騎士版,那么究竟要如何指定哪個(gè)阿爾薩斯呢?
其實(shí),MakeUnit作弊碼除了可以用單位中文/英文名外,還可以直接用單位內(nèi)部ID來創(chuàng)建單位。大家可以注意到,圖中下方屏幕提示的三個(gè)阿爾薩斯后面都跟了個(gè)括號(hào),每個(gè)括號(hào)里都是四個(gè)字母,Harf,Hart,Uear.這對(duì)沒接觸過War3編輯器人來說,這幾個(gè)字符的含義可能會(huì)讓一般人摸不著頭腦,但是只要是對(duì)War3編輯器曾有過較深入的了解的話,就能立刻看出這四個(gè)字符分別是三個(gè)版本的阿爾薩斯的內(nèi)部ID。Harf是霜之哀傷版(Human Arthas w/ Frostmourne),Hart是普通的拿錘子版(Human Arthas),Uear是死亡騎士版(Undead Evil Arthas)。
因此如果你想要?jiǎng)?chuàng)建死亡騎士版本的阿爾薩斯,那么就只需要輸入MakeUnit Uear就可以了,由于單位內(nèi)部ID永遠(yuǎn)是唯一的,因此只要你輸全了,就不可能出現(xiàn)創(chuàng)建了另一個(gè)單位的問題。
“MakeUnit hfoo”
該指令同樣會(huì)創(chuàng)建步兵,因?yàn)閔foo就是步兵的內(nèi)部ID。
用慣了War3編輯器的同學(xué)們肯定對(duì)大部分War3常用單位的ID都記熟了,但是就算你是SC2才進(jìn)門的地圖作者,也完全不用擔(dān)心記憶單位ID的問題。且不說War3里面重名的單位其實(shí)并不多,就算真的遇到了,你也可以不管三七二十一,先用單位的中文名來創(chuàng)建了再說。就像上面的那幾張圖顯示的那樣,系統(tǒng)會(huì)在屏幕上列出所有同名單位的ID(在單位名字后面的括號(hào)中),因此就算記不住ID,也可以直接照著屏幕上的抄,都創(chuàng)建一遍總有一個(gè)對(duì)的吧。
注:MakeUnit作弊碼不僅僅可用于創(chuàng)建單位,物品,飛彈,可破壞物都等等對(duì)象都可以用它來創(chuàng)建。我在制作這些對(duì)象時(shí)同樣使用了War3的對(duì)象ID,因此你可以用MakeUnit + 他們的中文/英文名或是他們在War3中的內(nèi)部ID來方便地創(chuàng)建他們。
同時(shí),在編輯器中,你也可以像和在war3編輯器里一樣,通過按下Ctrl+D來顯示每個(gè)對(duì)象的內(nèi)部ID(再按一次即可恢復(fù))。(上圖為搭載了war3 mod的sc2編輯器,下圖為war3編輯器)
與War3統(tǒng)一內(nèi)部ID的作用遠(yuǎn)遠(yuǎn)不止于方便測試這種細(xì)節(jié)(雖然這些個(gè)竅門確實(shí)會(huì)非常有用)。最重要的是,這一命名規(guī)則還直接關(guān)系到War3 Mod的一個(gè)后續(xù)強(qiáng)化項(xiàng)目:Jass-Galaxy
Jass-Galaxy系統(tǒng)仍然在開發(fā)中,但它是作為War3 Mod的一個(gè)強(qiáng)化功能存在的,因此War3 Mod并不需要等它完成,而是一年前就是隨時(shí)可以發(fā)布開測的狀態(tài)。
我以后會(huì)專門寫一篇帖子說明Jass-Galaxy系統(tǒng)的細(xì)節(jié),但要要簡單地說明的話,Jass-Galaxy就是在SC2的腳本環(huán)境下直接模擬War3的腳本環(huán)境和API,并通過這一點(diǎn)來實(shí)現(xiàn)War3地圖腳本到SC2腳本的直接轉(zhuǎn)換!——簡單來說就是把以前的War3地圖轉(zhuǎn)換基于War3 Mod的SC2地圖,并能在SC2下正常運(yùn)作。
出于現(xiàn)實(shí)考慮,由于Jass腳本中存在各種“Bug寫法”,最終想要實(shí)現(xiàn)100%轉(zhuǎn)換多半是做不到的,但是目前的測試表明,對(duì)每張地圖Jass-Galaxy至少可以實(shí)現(xiàn)90%的轉(zhuǎn)換。
于此同時(shí),作為War3復(fù)刻的一部分,Jass-Galaxy還將提供與War3的Jass腳本一致的API(簡單來說就是把War3的腳本API用同名函數(shù)全部實(shí)現(xiàn)一遍。)
例如,在war3中,下面這句Jass腳本在會(huì)在地圖的正中心創(chuàng)建一個(gè)步兵:CreateNUnitsAtLoc( 1, 'hfoo', Player(0), GetRectCenter(GetPlayableMapRect()), bj_UNIT_FACING )
而在Jass-Galaxy中,你將可以通過完全一樣的語句在War3 Mod(SC2)里實(shí)現(xiàn)完全相同的效果。
由此,War3 Mod與War3原版統(tǒng)一對(duì)象內(nèi)部ID就變得更為重要了。因?yàn)閃ar3的Jass腳本中充斥了各種各樣以對(duì)象類型為參數(shù)的操作。創(chuàng)建單位,禁止技能,摧毀可破壞物等等。若不使兩邊的對(duì)象ID一致的話,當(dāng)然就會(huì)出現(xiàn)無法正常解析的問題了。
好了,關(guān)于這個(gè)對(duì)象ID命名的事情暫時(shí)先寫到這里。之后我會(huì)找時(shí)間說明War3 Mod之間的各種不同對(duì)象是如何關(guān)聯(lián)起來的。
瀏覽量:02015-03-24
瀏覽量:02015-03-16
瀏覽量:02015-01-29
瀏覽量:02015-01-20