找回密码
 点一下
查看: 1662|回复: 20

用户类型怎么使用?

[复制链接]
发表于 2016-9-14 21:07:32 | 显示全部楼层 |阅读模式
用的麦大的war3mod,里边有个用户类型,记录单位的行为属性(力量,敏捷,智力),然后给ID单位添加属性值。
我尝试新建一个属性为:法强。 但是如何填进这个用户类型里(我盲目的直接按行为ID值添加进去,是无效的)?
@麦德三世
1.jpg
2.jpg
发表于 2016-9-15 17:59:41 | 显示全部楼层
简单的理解,你可以把用户类型理解为一种特殊的变量。所有能用变量的地方,都可以用用户类型。

点评

恕我没计算机知识,更听不懂了 这个“力量”“敏捷”“法强”啊 就是变量对吗?但是用户类型怎么获取“法强”这个行为属性呢?  详情 回复 发表于 2016-9-15 18:37
回复

使用道具 举报

 楼主| 发表于 2016-9-15 18:37:36 | 显示全部楼层
yxxiaobin 发表于 2016-9-15 17:59
简单的理解,你可以把用户类型理解为一种特殊的变量。所有能用变量的地方,都可以用用户类型。

恕我没计算机知识,更听不懂了
这个“力量”“敏捷”“法强”啊 就是变量对吗?但是用户类型怎么获取“法强”这个行为属性呢?

点评

换句话说,在某些地方你可能需要知道某个值是多少,这个值可以储存在用户类型的某个实例里边。这样你就可以不必直接填写某某值,而是填写这个实例。也就是说,它相当于另一种形式的变量。变量、用户类型、数据表都能  详情 回复 发表于 2016-9-16 00:25
回复

使用道具 举报

发表于 2016-9-16 00:25:31 | 显示全部楼层
sky282438525 发表于 2016-9-15 18:37
恕我没计算机知识,更听不懂了
这个“力量”“敏捷”“法强”啊 就是变量对吗?但是用户类型怎么 ...

换句话说,在某些地方你可能需要知道某个值是多少,这个值可以储存在用户类型的某个实例里边。这样你就可以不必直接填写某某值,而是填写这个实例。也就是说,它相当于另一种形式的变量。变量、用户类型、数据表都能储存数据,根据不同情况选择不同的方式。
当然,这是否是唯一用法,我并不清楚,只是目前我就是这么用的。
回复

使用道具 举报

发表于 2016-9-16 10:08:47 | 显示全部楼层
用户类型是一个不好说的东西。他的目的实际上是使用数据生成一个表,然后在游戏过程中可以用触发获取。基本上来说是替代了那种游戏初始化时注册一堆东西的过程。
不过这玩意的读取效率相比变量低很多倍(注意,因为Galaxy效率很高,所以这种低并不会有影响,触发你在同一个周期大量的执行,否则不必考虑这种问题)
对于LZ的问题,这个注册就是像声明一个变量,具体起效还是需要修改对应的计算公式的。

点评

我觉得用户类型的好处在于: 1.初始化数据,尤其是常量数据,可以直接定义在地图中,而不需要触发器特意的去初始化一下,虽然这似乎也不省工,但是将来维护地图可以直接找到要改的数据进行改动,而无需动触发器。动  详情 回复 发表于 2016-9-16 12:10
回复

使用道具 举报

发表于 2016-9-16 12:10:14 | 显示全部楼层
疯人¢衰人 发表于 2016-9-16 10:08
用户类型是一个不好说的东西。他的目的实际上是使用数据生成一个表,然后在游戏过程中可以用触发获取。基本 ...

我觉得用户类型的好处在于:
1.初始化数据,尤其是常量数据,可以直接定义在地图中,而不需要触发器特意的去初始化一下,虽然这似乎也不省工,但是将来维护地图可以直接找到要改的数据进行改动,而无需动触发器。动触发器的话有时候真的会误伤,从而出现莫名其妙的bug,而动数据则不容易出现这种问题。
2.本身就是结构化的,而触发器则必须定义一个结构体,而且使用起来也不方便。

点评

毕竟用触发器去初始化那些东西太难看了。 其实还有另一个重要的好处: 用户类型是可以在子代中重载的,所以你可以在在父mod里定义用户类型,在子mod里修改或者添加项目。 比方说,我的war3 mod里面,牛  详情 回复 发表于 2016-9-18 15:30
回复

使用道具 举报

 楼主| 发表于 2016-9-17 00:38:57 | 显示全部楼层
那我想问一下使用方法。我放的这个用户类型是怎么引用的呢?具体公式在哪里,没有找到与这个实例关联起来的东西 @yxxiaobin @疯人¢衰人

点评

你在编辑器随便建一个变量,可以是整数,单位等多种不同类型。然后你给变量赋值,在函数界面搜索“用户类型”  详情 回复 发表于 2016-9-17 19:29
回复

使用道具 举报

发表于 2016-9-17 19:29:28 | 显示全部楼层
sky282438525 发表于 2016-9-17 00:38
那我想问一下使用方法。我放的这个用户类型是怎么引用的呢?具体公式在哪里,没有找到与这个实例关联起来的 ...

你在编辑器随便建一个变量,可以是整数,单位等多种不同类型。然后你给变量赋值,在函数界面搜索“用户类型”
回复

使用道具 举报

发表于 2016-9-18 15:27:25 | 显示全部楼层
有直接可以“读取用户类型”的函数的。
回复

使用道具 举报

发表于 2016-9-18 15:30:02 | 显示全部楼层
yxxiaobin 发表于 2016-9-16 12:10
我觉得用户类型的好处在于:
1.初始化数据,尤其是常量数据,可以直接定义在地图中,而不需要触发器特意 ...

毕竟用触发器去初始化那些东西太难看了。

其实还有另一个重要的好处:

用户类型是可以在子代中重载的,所以你可以在在父mod里定义用户类型,在子mod里修改或者添加项目。



比方说,我的war3 mod里面,牛头人震荡波的最大捕捉数量是用触发器限定的。最多一次打15人。那么如果地图作者想要修改这个数字怎么办呢?

用触发器来修改库里的触发器可不是件容易事儿。然而直接修改用户类型里的数据就是超容易的了。

点评

意思是我说的这个用户类型是要靠触发使用的,无法在字段里生加?  详情 回复 发表于 2016-9-18 20:53
确实是这样,修改mod的触发器是不允许的,只能用另一个触发器去修改它,即困难,又难看。我忽略掉这最重要的一点好处了。  发表于 2016-9-18 17:53
回复

使用道具 举报

 楼主| 发表于 2016-9-18 20:53:37 | 显示全部楼层
麦德三世 发表于 2016-9-18 15:30
毕竟用触发器去初始化那些东西太难看了。

其实还有另一个重要的好处:

意思是我说的这个用户类型是要靠触发使用的,无法在字段里生加?

点评

这个实际值怎么填的?  详情 回复 发表于 2016-9-19 18:42
这个实际值怎么填的?  详情 回复 发表于 2016-9-19 18:42
字段是不支持变量的吧,只能填写实际值。  发表于 2016-9-19 12:59
回复

使用道具 举报

 楼主| 发表于 2016-9-19 18:42:28 | 显示全部楼层
sky282438525 发表于 2016-9-18 20:53
意思是我说的这个用户类型是要靠触发使用的,无法在字段里生加?

这个实际值怎么填的?
回复

使用道具 举报

 楼主| 发表于 2016-9-19 18:42:32 | 显示全部楼层
sky282438525 发表于 2016-9-18 20:53
意思是我说的这个用户类型是要靠触发使用的,无法在字段里生加?

这个实际值怎么填的?

点评

比如你要设为1,就写1,设为“abc”,就写“abc”呗。  发表于 2016-9-20 20:52
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 17:37 , Processed in 0.230693 second(s), 37 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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