国内资深魔兽玩家麦德三世近日公布了《魔兽争霸3》MOD的一些新细节,主要解释了数据对象ID的命名规则。据悉,这款基于《星际争霸2》的MOD将于本周或下周发售。
这篇文章的作者是马特三世。有兴趣的玩家可以去地精研究所和作者详细讨论。
魔兽争霸3新细节》MOD:
为了最大程度的照顾从war3编辑器中转来的同学的习惯,War3 Mod对War3的每一个对象都尽可能的使用了War3引擎中的四字符格式内部ID。
例如魔兽争霸无cd脚本,根据SC2的命名惯例,步兵的内部ID通常是其英文名Footman。但在我的war3 Mod中,对象的内部ID是war3的步兵四字ID: hfoo,“步兵”作为显示名给了这个单位。
这样做的具体好处是什么?
例如,当地图作者在调试模式下运行装备有War3 Mod的地图时,他们总是可以使用SC2自己的调试欺骗代码来创建他们想要的单位,而无需返回编辑器来编写脚本或放置单位。现在的命名方式可以很好的利用这个引擎优势。
例如,在聊天框中输入“MakeUnit步兵”。
你可以在鼠标位置创建一个步兵。没错,这个调试代码支持中文,所以即使你不知道一个单位的英文名或者内部ID,你也可以随时随地创建它们来测试你的地图。凯尔单位可以创造一个凯尔萨斯。
对于战役英雄,可以直接在MakeUnit后面输入名字来创建。对于非战役英雄,因为他们有很多随机的名字,我在这里设置的规则是,你需要跟随Makeunit之后的英雄职业。比如MakeUnit吉安娜会创造吉安娜,而MakeUnit驱魔人会创造一个对抗驱魔人的英雄。
更方便的是,你甚至不需要输入单元的全名就可以让这段调试代码生效,比如MakeUnit Al,或者MakeUnit A就可以创建阿尔萨斯。系统会自动找到所有以“Al”或“A”开头的公司,列出所有符合条件的公司,然后创建列表中的第一个公司。
好了,现在你可能要问了,如果遇到同名公司呢?
从上图我们可以看到,这个War3 Mod和魔兽争霸3编辑器一样,数据库里有三个阿尔萨斯!是锤子版,剑版(霜之哀伤)和死亡骑士版,那怎么指定哪个阿尔萨斯呢?
更多信息请关注:魔兽争霸3:冰封王座专区
其实MakeUnit作弊代码不仅可以使用公司的中/英文名称,还可以直接使用公司的内部ID来创建公司。你可以注意到,图底部屏幕提示上的三个阿尔萨斯后面是括号辅助卡盟,每个括号包含四个字母,Harf,Hart Hart,Uear。对于从未接触过War3编辑器的人来说,这些字符的含义可能会让普通人感到困惑,但只要你对War3编辑器有深入的了解,你就能立刻看出这四个字符是阿尔萨斯三个版本的内部ID。Harf是霜之哀伤版本(人类阿尔萨斯w/霜之哀伤),Hart是常见的人类亚瑟版本,Uear是亡灵邪恶阿尔萨斯版本。
所以如果想创建阿尔萨斯死亡骑士版本,只需要输入MakeUnit Uear即可。由于单元的内部ID总是唯一的,只要您输入所有的ID,就不会有创建另一个单元的问题。
" MakeUnit hfoo "
这个命令也会创建步兵,因为hfoo是步兵的内部ID。
习惯了War3编辑器的同学一定熟悉War3中大多数常用单位的ID,但即使你是一个刚进入SC2的地图写手,你也完全不用担心记忆单位ID的问题。更别说War3里同名的单位不多了。即使你真的遇到他们,你也可以先用单位的中文名来创建。如上图所示,系统会在屏幕上列出所有同名公司的ID(在公司名称后的括号内),所以即使你记不住ID,你也可以只在屏幕上复制,重新创建。肯定有一个是对的。
注意:MakeUnit欺骗代码不仅可以用来创建单位、物品、导弹、可破坏对象等等,还可以用来创建对象。我在制作这些对象的时候也使用了War3的对象ID,所以你可以在War3中使用make unit+它们的中/英文名称或者它们的内部ID来轻松创建它们。
同时,在编辑器中,也可以像war3编辑器中那样,按Ctrl+D显示每个对象的内部ID(再按一次恢复)。(上图为搭载war3 mod的sc2编辑器,下图为war3编辑器)
与War3统一内部ID的作用远远不止于方便测试这种细节(虽然这些个窍门确实会非常有用)。最重要的是,这一命名规则还直接关系到War3 Mod的一个后续强化项目:Jass-Galaxy用War3统一内部ID的作用远不止是方便测试这样的细节(虽然这些小技巧确实会非常有用)。最重要的是,这个命名规则直接关系到War3 Mod的一个后续增强项目:Jass-Galaxy。
Jass-Galaxy系统还在开发中,但作为War3 Mod的增强功能存在。所以War3 Mod不需要等它完成,一年前就已经准备好发布beta测试了。
以后我会写一个帖子来解释Jass-Galaxy系统的细节,但简单来说,Jass-Galaxy是在SC2的脚本环境下直接模拟War3的脚本环境和API,通过这一点实现War3地图脚本到SC2脚本的直接转换!——简单来说就是把之前的War3地图转换成基于War3 Mod的SC2地图,在SC2下也能正常工作。
更多信息请关注:魔兽争霸3:冰封王座专区
出于实际原因,由于Jass脚本中的各种“Bug编写”,最终无法实现100%的转化,但目前的测试显示,Jass-Galaxy可以实现每张地图至少90%的转化。
同时,作为War3复刻版的一部分,Jass-Galaxy也将提供与War3的Jass脚本相同的API(简而言之,War3的所有脚本API都将实现相同的名称函数。)
例如,在war3中,下面的Jass脚本将在地图的正中央创建一个步兵:CreateNutSatloc (1,' hfoo ',Player (0),GetRectCenter(GetPlayableMapRect),BJ _单位_面临)
在Jass-Galaxy中,你将能够用完全相同的语句在War3 Mod(SC2)中实现完全相同的效果。
所以War3 Mod把对象的内部ID和原来的War3统一起来就变得更加重要了。因为War3的Jass脚本充满了以对象类型为参数的各种操作。创造单位,禁止技能,破坏可破坏的东西等等。如果不使两边的对象ID一致,当然会出现无法正常解析的问题。
好了魔兽争霸无cd脚本,关于这个对象ID命名的事情暂时先写到这里。之后我会找时间说明War3 Mod之间的各种不同对象是如何关联起来的。好了,现在让我们写下这个对象ID的命名。之后我会找时间解释War3 Mod之间的不同对象是如何关联的。
更多信息请关注:魔兽争霸3:冰封王座专区
来源:【九爱网址导航www.fuzhukm.com】 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!