请选择 进入手机版 | 继续访问电脑版

 找回密码
 点一下
查看: 4991|回复: 16

War3 Mod的数据对象ID命名规则(一)

[复制链接]
发表于 2015-1-28 13:38:27 | 显示全部楼层 |阅读模式
由于War3 Mod眼看着这两周就要发布了(虽然是先在SC2的PTR服务器上发布),所以我打算开始慢慢写一些方便地图作者们使用这个Mod的教程和小提示。


本贴有很多较大的图片,需要左键点击每张图片放大后才能正常浏览。

为了能最大限度照顾从war3编辑器转来的同学的习惯,War3 Mod尽了最大可能为每个来自War3的对象使用了War3引擎中的四字符格式内部ID

例如,若是按照SC2的命名习惯,步兵的内部ID通常会是其英文名Footman。但是在我这个War3 Mod中,对象内部ID用的却是war3的步兵四字符ID:hfoo,而“步兵”作为其显示名同时赋予这个单位。

3.png

这样做有哪些具体的好处呢?



例如,地图作者们在调试模式下运行搭载了War3 Mod的地图时,可以随时使用SC2本身的调试作弊码来创建自己想要的单位,而不需要回到编辑器里去编写脚本或者放置单位。而目前的命名方式能极大地利用这一引擎优势。

如在聊天框中输入



MakeUnit 步兵

即可在鼠标位置创建一个步兵。没错,这个调试码是支持中文的,因此你就算不知道一个兵种的英文名或内部ID,也可以随时随地创建它们用来测试你的地图。MakeUnit 凯尔就可以创建一个凯尔萨斯。

Screenshot2015-01-27 19_54_33.jpg

对于战役英雄,直接在MakeUnit后面输入它们的名字即可创建他们,对于非战役英雄,由于它们有许多随机名字,因此我在这里设置的规则是需要在Makeunit后面跟英雄职业,比如MakeUnit 吉安娜会创建吉安娜,而MakeUnit 大法师则会创建一个大法师对战英雄。


更方便的是,你甚至不需要输入单位的全名即可使这个调试码生效,例如MakeUnit 阿尔,或者MakeUnit 阿就能创建阿尔萨斯。系统会自动查找所有以“阿尔”或“阿”开头单位,并列出所有符合条件的单位列表,然后创建列表中的第一个单位。

Screenshot2015-01-27 20_05_38.jpg

好了,你现在可能会想问,如果遇到名字一样的单位怎么办呢?

我们从上图中可以发现,这个War3 Mod和魔兽3编辑器一样,数据库里有三个阿尔萨斯!分别是拿锤子版、拿剑版(霜之哀伤)和死亡骑士版,那么究竟要如何指定哪个阿尔萨斯呢?

其实,MakeUnit作弊码除了可以用单位中文/英文名外,还可以直接用单位内部ID来创建单位。大家可以注意到,图中下方屏幕提示的三个阿尔萨斯后面都跟了个括号,每个括号里都是四个字母,Harf,Hart,Uear.这对没接触过War3编辑器人来说,这几个字符的含义可能会让一般人摸不着头脑,但是只要是对War3编辑器曾有过较深入的了解的话,就能立刻看出这四个字符分别是三个版本的阿尔萨斯的内部ID。Harf是霜之哀伤版(Human Arthas w/ Frostmourne),Hart是普通的拿锤子版(Human Arthas),Uear是死亡骑士版(Undead Evil Arthas)。

因此如果你想要创建死亡骑士版本的阿尔萨斯,那么就只需要输入MakeUnit Uear就可以了,由于单位内部ID永远是唯一的,因此只要你输全了,就不可能出现创建了另一个单位的问题。

MakeUnit hfoo

该指令同样会创建步兵,因为hfoo就是步兵的内部ID。

Screenshot2015-01-27 19_54_56.jpg


用惯了War3编辑器的同学们肯定对大部分War3常用单位的ID都记熟了,但是就算你是SC2才进门的地图作者,也完全不用担心记忆单位ID的问题。且不说War3里面重名的单位其实并不多,就算真的遇到了,你也可以不管三七二十一,先用单位的中文名来创建了再说。就像上面的那几张图显示的那样,系统会在屏幕上列出所有同名单位的ID(在单位名字后面的括号中),因此就算记不住ID,也可以直接照着屏幕上的抄,都创建一遍总有一个对的吧。

注:MakeUnit作弊码不仅仅可用于创建单位,物品,飞弹,可破坏物都等等对象都可以用它来创建。我在制作这些对象时同样使用了War3的对象ID,因此你可以用MakeUnit + 他们的中文/英文名或是他们在War3中的内部ID来方便地创建他们。

同时,在编辑器中,你也可以像和在war3编辑器里一样,通过按下Ctrl+D来显示每个对象的内部ID(再按一次即可恢复)。(左图为搭载了war3 mod的sc2编辑器,右图为war3编辑器)

4.png 5.png



与War3统一内部ID的作用远远不止于方便测试这种细节(虽然这些个窍门确实会非常有用)。最重要的是,这一命名规则还直接关系到War3 Mod的一个后续强化项目:Jass-Galaxy

Jass-Galaxy系统仍然在开发中,但它是作为War3 Mod的一个强化功能存在的,因此War3 Mod并不需要等它完成,而是一年前就是随时可以发布开测的状态。

我以后会专门写一篇帖子说明Jass-Galaxy系统的细节,但要要简单地说明的话,Jass-Galaxy就是在SC2的脚本环境下直接模拟War3的脚本环境和API,并通过这一点来实现War3地图脚本到SC2脚本的直接转换!——简单来说就是把以前的War3地图转换基于War3 Mod的SC2地图,并能在SC2下正常运作。

出于现实考虑,由于Jass脚本中存在各种“Bug写法”,最终想要实现100%转换多半是做不到的,但是目前的测试表明,对每张地图Jass-Galaxy至少可以实现90%的转换。

于此同时,作为War3复刻的一部分,Jass-Galaxy还将提供与War3的Jass脚本一致的API(简单来说就是把War3的脚本API用同名函数全部实现一遍。)

例如,在war3中,下面这句Jass脚本在会在地图的正中心创建一个步兵:
CreateNUnitsAtLoc( 1, 'hfoo', Player(0), GetRectCenter(GetPlayableMapRect()), bj_UNIT_FACING )

而在Jass-Galaxy中,你将可以通过完全一样的语句在War3 Mod(SC2)里实现完全相同的效果。

由此,War3 Mod与War3原版统一对象内部ID就变得更为重要了。因为War3的Jass脚本中充斥了各种各样以对象类型为参数的操作。创建单位,禁止技能,摧毁可破坏物等等。若不使两边的对象ID一致的话,当然就会出现无法正常解析的问题了。


QQ图片20150127212247.png

QQ图片20150127213115.jpg



暂时就先写到这里,有空找时间继续。
 楼主| 发表于 2015-1-28 13:44:07 | 显示全部楼层
顺便,这张图是War3 Mod中一个完整的萨尔所涉及的数据量。(包含全部单位、演算体、模型、动画控制、技能、buff、效果、足印、行为、武器、移动器、按钮、科技、需求和需求节点)

否则你说为啥制作这个Mod为啥花了这么长时间呢?

不过这个Mod本身的意义就是节省你做这些东西的麻烦,可以直接拿现成的素材开发地图。几千个像萨尔这样的单位和技能躺在Mod里,而你可以直接拿来用。(除非你打算像我一样从头搭建一个这种级别的mod,否则不可能有地图会需要你从头制作这种东西的啦。)

QQ图片20150127213631.png

点评

拿到这就素传说中滴——星际舰队  详情 回复 发表于 2015-1-28 22:46
回复 1 0

使用道具 举报

发表于 2015-1-28 14:27:48 | 显示全部楼层
希望这能多吸引一点编辑器爱好者   论坛太冷清了
回复

使用道具 举报

发表于 2015-1-28 14:37:28 | 显示全部楼层
回复

使用道具 举报

发表于 2015-1-28 14:38:33 | 显示全部楼层
这大工程终于要发布了,这是个耐心技术活,还是头目给力
回复

使用道具 举报

发表于 2015-1-28 14:38:55 | 显示全部楼层
没有沙发的日子,好难过
回复

使用道具 举报

发表于 2015-1-28 14:44:20 | 显示全部楼层
希望早日发布
回复

使用道具 举报

发表于 2015-1-28 17:11:43 来自手机 | 显示全部楼层
如果把整个教程转去魔兽地图编辑器贴吧不知道会有何反响
回复

使用道具 举报

发表于 2015-1-28 18:59:14 | 显示全部楼层
好高大上的样子。帮顶
回复

使用道具 举报

发表于 2015-1-28 22:17:09 | 显示全部楼层
支持
回复

使用道具 举报

发表于 2015-1-28 22:22:57 | 显示全部楼层
这样的命名有点不太习惯,还是喜欢记英文名
回复

使用道具 举报

发表于 2015-1-28 22:46:33 | 显示全部楼层
麦德三世 发表于 2015-1-28 13:44
顺便,这张图是War3 Mod中一个完整的萨尔所涉及的数据量。(包含全部单位、演算体、模型、动画控制、技能、 ...

拿到这就素传说中滴——星际舰队
回复

使用道具 举报

发表于 2015-1-28 23:10:55 来自手机 | 显示全部楼层
恩,这种思路太棒了。
回复

使用道具 举报

发表于 2015-1-29 01:10:09 | 显示全部楼层
膜拜下
回复

使用道具 举报

发表于 2015-1-29 14:17:42 | 显示全部楼层
麻麻问我为什么要跪着看论坛   1.jpg
回复

使用道具 举报

发表于 2015-1-30 10:35:31 | 显示全部楼层
哎呦哎呦 这mod简直达到了暴雪的标准
回复

使用道具 举报

发表于 2015-1-31 14:35:59 | 显示全部楼层
跪倒在头目裙下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-3-29 02:17 , Processed in 0.662662 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表