2024年3月13日发(作者:)

少年易学老难成,一寸光阴不可轻 - 百度文库

单位篇

声音 单位声音设置 : 都是很好理解的东西,不过貌似只有该项有效 建筑 移动 随机 循环淡入率 循环淡出率 :

略过 战斗 主动攻击范围 : 单位会对该范围内的敌人进行主动攻击. 另该值还起到限制射程的作用,单位射程不会大于其主动攻击范

围.同时也影响到一些自动选取目标技能的施法距离,例如:召唤骷髅. 最小攻击范围 : 单位无法对小于该值的范围内的敌人进行主动攻

击. 防御类型 : 同样的攻击对不同的防御类型往往会造成不同的伤害. 基础防御 : 对英雄来说就是没有敏捷加成时的防御力. 防御

升级奖励 : 升级科技-提升一次防御等级增加的防御值. 作为目标类型 : 作为单位被攻击或施法时的目标判定依据. 该项为空则单位不

能被攻击或施法,即无敌. 死亡类型 : 略 装甲类型 : 该项只影响被近战单位攻击时的声音效果. 与其它任何东西无关. 允许攻击模

式: 设置单位可使用的攻击模式. 攻击 - 投射物图像 : 设置远程单位攻击时发出的投射物模型. 攻击 - 射弹速率 : 投射物飞行速

度. 攻击 - 射弹弧度 : 投射物发射弧度,弧度=射弹抛物线最大高度/平面位移距离. 攻击 - 射弹自导允许 : 允许箭矢类攻击(非炮火)

的投射物能跟踪目标. 自导不允许时,对箭矢和箭矢(弹射),尽管目标已经不在目标点,仍会对目标造成伤害;对箭矢(溅射/穿透)则相当于没

有攻击地面图标的炮火或炮火(穿透). 攻击 - 攻击类型 : 不同攻击类型对各种护甲造成的伤害不同. 无表示该攻击对所有护甲造成全

额伤害. 攻击 - 武器类型 : 表示各种攻击方式. 近战 : 无投射物效果,武器声音有效. 只有该类型的攻击被视为近战,其他都是远程.

立即 : 不显示投射物发射轨迹. 箭矢 : 显示投射物发射轨迹. 溅射攻击 : 箭矢(溅射)和炮火. 其中炮火会带有攻击地面按钮. 如恶

魔猎手和投石车. 弹射 : 箭矢(弹射). 发出的箭矢能在单位间弹射. 如女猎手. 穿透 : 箭矢(穿透)和炮火(穿透). 能穿透目标伤害其后

面的单位,其中炮火(穿透)在普通攻击时为穿透效果,攻击地面时为溅射效果,两者不叠加. 如狮鹫和投刃车. 攻击 - 武器声音 : 只对武

器类型为普通的攻击有效.攻击时的声音效果. 攻击 - 目标允许 : 可以攻击的单位类型.以下面的分类:同行之间为Or关系,异行之间为

And关系,该行不选则取默认值. 例:只选择无敌则表示目标允许无敌的存活的别人的单位(空中地面建筑).此时原默认值-可攻击将不再起

作用,单位只能攻击无敌的单位,而其它未被改动的行则采用默认值. 没有(选中即无允许目标,没悬念的DD...) 残骸 物品 地形 树木

墙 桥 装饰物 空中 地面 建筑 守卫 (默认空中 地面 建筑) 存活 死亡 (默认存活) 无敌 可攻击 (默认可攻击) 联盟 友军(不包括

玩家单位) 敌人 玩家单位 中立 自己 别人 (默认别人) 英雄 非英雄 (默认全选) 古树 非古树 (默认全选) 自爆工兵 非自爆工兵

(默认全选) 机械 有机 (默认全选) 攻击 - 显示UI : 设置是否显示攻击键. 攻击 - 动画伤害点 : 单位实际发动攻击效果,进行伤害

判断的时间点,该项大于攻击间隔时将取该项为单位实际攻击间隔. 例:A单位攻击间隔2,动画伤害点0;B单位攻击间隔0,动画伤害点2.

那么两者实际攻击间隔都是2秒.而他们之间的差距就是,A单位发动攻击会立刻产生效果,而B单位则要等待2秒,且这2秒之间取消攻击

的话该次攻击将无效化. 攻击 - 动画回复点 : 单位发动攻击效果到完成攻击动作所需要的时间,该值不大于(攻击间隔-动画伤害点). 该

时间可以手动取消,例:2秒动画回复的单位杀死单位并按Shift移动到某点需要等待2秒,但不用Shift可以直接移动. 攻击 - 攻击范围 :

相当于射程,当如果主动攻击范围小于该值,则会取主动攻击范围作为射程. 攻击 - 攻击范围缓冲 : 近战单位攻击移动中的单位,因为

发动攻击需要时间,目标可能跑出了射程以外,该值表示允许的缓冲范围值,只要目标没跑出该范围(射程+缓冲范围)则仍会受到伤害. 攻

击 - 基础伤害 : 魔兽的随机伤害输出采用D&D的掷骰子模式.实际伤害 = 基础伤害 + 骰子数量 x Random(1,骰子面数) 攻击 - 伤

害骰子数量 : 同上 攻击 - 伤害骰子面数 : 同上 攻击 - 伤害升级奖励 : 升级科技-提升一次攻击等级增加的伤害值. 攻击 - 攻击

间隔 : 两次攻击间的间隔,最小值为0.1.攻速增加上限为原速的5倍(加上本身,即提高4倍),但不会超过每秒45.46次的上限. 攻击 -

范围影响目标 : 溅射或穿透攻击影响的允许目标类型. 攻击 - 全伤害范围 : 溅射攻击的全伤害范围或是弹射攻击的弹射距离. 攻击

- 中伤害范围 : 仅对溅射攻击有效. 应遵循全伤害范围<中伤害范围<小伤害范围(不包括0),否则会出问题.比如300/200/100的范围实际

1

少年易学老难成,一寸光阴不可轻 - 百度文库

上会等于只有100的全伤害范围. 攻击 - 中伤害参数 : 仅对溅射攻击有效. 伤害参数可以大于100%,伤害优先权:全伤害>中伤害>小伤

害,与伤害值大小无关. 攻击 - 小伤害范围 : 同上 攻击 - 小伤害参数 : 同上 攻击 - 最大目标数 : 仅对弹射攻击有效. 攻击 -

伤害衰减参数 : 仅对弹射和穿透攻击有效. 注意穿透攻击的伤害衰减也是逐个衰减的. 攻击 - 穿透伤害范围 : 仅对穿透攻击有效.

攻击 - 穿透伤害距离 : 仅对穿透攻击有效. 技能 普通 : 略 英雄 : 学习性技能,最多只能有5个. 默认主动技能 : 默认激活的主

动技能.如心灵之火等. 文本 名字 : 略 名字 - 编辑器后缀 : 仅在编辑器中显示,一般用于区分同名单位. 称谓 : 略 称谓数量 :

实际采用的称谓数量. 提示工具 - 基础 : 建造该单位时的提示文本. 提示工具 - 扩展 : 同上 提示工具 - 重生 : 复活英雄时的提

示文本.(需要复活时间,如祭坛) 提示工具 - 唤醒 : 唤醒英雄时的提示文本.(不需要复活时间,如酒馆) 说明 : 仅对物品有效,多出来的

无效项. 热键 : 建造/雇用/复活单位时的热键. 魔法升级名字 : 拥有魔法升级科技的单位在状态栏右边会有个魔法升级图标. 该项为

其说明信息. 可参照各族法师. 魔法升级说明 : 同上 显示 模型文件 : 略 模型文件 - 版本 : 某些单位有ROC/TFT两个版本的模

型,如蒸汽坦克. 模型缩放 : 设置模型显示大小. 缩放投射物 : 修改模型大小时是否同时缩放攻击或技能的投射物大小. 选择缩放 :

设置选择圈的大小. 选择圈高度 : 略 选择圈在水面上 : 单位在水中时,选择圈在水面或是水底显示 颜色值(红) : 略 颜色值(绿)

: 略 颜色值(蓝) : 略 闭塞高度 : 如,单位站在有闭塞高度的非联盟建筑旁边,会有视线被阻挡,就是所谓闭塞.将该值设为0则不会有

此效果. X轴旋转角度(度数) : 仅取负数时有效. 模型绕X轴旋转的角度. Y轴旋转角度(度数) : 仅取负数时有效. 模型绕Y轴旋转的

角度. 射弹偏移 - X : 单位攻击时发射投射物的X轴偏移. 射弹偏移 - Y : 单位攻击时发射投射物的Y轴偏移. 射弹偏移 - Z :

单位攻击时发射投射物的Z轴偏移. 射弹偏移 - Z (深水) : 深水区中单位攻击时发射投射物的Z轴偏移. 射弹碰撞偏移 - Z : 单位

被攻击时投射物碰撞的Z轴偏移. 射弹碰撞偏移 - Z (深水) : 深水区中单位被攻击时投射物碰撞的Z轴偏移. 阴影图像(单位) : 单位

形态时的阴影图片. 阴影图像(建筑) : 建筑形态时的阴影图片. 阴影图像 - 宽度 : 略 阴影图像 - 高度 : 略 阴影图像 - X轴偏

移 : 略 阴影图像 - Y轴偏移 : 略 深水区有阴影 : 当阴影落在深水区时是否显示. 建筑地面纹理 : 略 图标 - 游戏界面 : 游戏

中使用的图标. 图标 - 计分屏 : 游戏结束计分屏显示的图标,注意该类图标是很小的. 按钮位置(X) : 训练或雇用时单位按钮的排列

坐标. 按钮位置(Y) : 训练或雇用时单位按钮的排列坐标. 魔法升级图标 : 如果该单位有魔法科技升级(如各种法师),该项为状态栏右

边显示的魔法升级图标. 死亡时间(秒) : 从死亡到产生尸体的时间. 特殊效果 : 单位被炮轰而死时的爆炸效果. 目标效果 : 弹射攻

击时对弹射目标附加的效果. 要求动画名 : 如为恶魔猎手添加alternate就会显示恶魔状态,为人类农民添加gold会显示背负黄金形态.

动画名可在模型预览窗口找到. 要求动画名 - 附加动画 : 为附加在单位身上的效果动画添加动画名.一般为medium和large,影响如反

魔法外壳的大小(为空表示小). 动画名可在模型预览窗口找到. 要求附加动画链接名 : 可参考恶魔猎手(恶魔形态) 要求骨骼名 : 同

上 动画 - 魔法施放点 : 从施放魔法到魔法生效需要的时间,该时间内单位不可做其他动作,但可以按Stop或Hold停止施法,此时魔法将

不被发动. 动画 - 魔法施放回复 : 从魔法生效到结束施法所需最小时间,该时间内作其他动作的话'施法结束'事件将不会被触发. 动画

- 混合时间(秒) : 单位动画图像混合时间. 决定身体部件连接的快慢,比如攻击时手臂挥舞的速度. 增大该值会是单位动作僵硬化(如冰

霜巨龙). 物体编辑器中设置无效,只能在触发中设置. 动画 - 行走速度 : 见下. 动画 - 跑步速度 : 取两者中更接近于实际移动速度

者(如果相等则取跑步速度). 该值和单位移动动画共同决定单位移动时的跨步距离,数值越大跨步距离越大,相对的跨步频率就会变小.

动画 - 转向角度 : 单位最大转向角度. 当单位移动转向角度大于该值时将会有一个原地转身的过程. 不是很好解释的东西,建议调低转

身速度自己测试看看效果. 动画 - 转向补正 : 该值决定单位模型转向的速度和幅度,取值0-8,取值越大则速度越慢,幅度越大.不同移动

类型的模型转向方式是不一样的,比如飞行单位会进行身体翻转,建议设到7或8自己看看效果. 队伍颜色 : 设置单位的队伍颜色. 队

2

少年易学老难成,一寸光阴不可轻 - 百度文库

伍颜色 - 允许自定义 : 只有该项为True才允许设置单位的队伍颜色. 高度变化 - 采样点数量 : 见下. 高度变化 - 采样范围 : 设置

单位在经过突起或下陷的地面时的高度变化.此时将取采样范围处的几个点的平均值作为单位显示的高度. 战争迷雾 - 采样范围 : 未

知 不可见区域显示单位 : 勾选该项则单位可以在不可见区域被显示. 状态 种族 : 略 等级 : 单位等级决定杀死该单位所得的经

验.该项对英雄无效. 单位类别 : 许多单位类别都有特殊作用. 不死族 机械类 古树 牛头人 召唤生物 城镇大厅: 可作为一些技能的

判定依据. 中立 : 在小地图上显示中立建筑标记. 可通行 : 比如传送门是可通行的,但事实上一般建筑你添加了也没用. 守卫 : UI

按钮全不可见,只能使用右键命令. 工人 : 空闲时会显示左下角的闲置图标,且不会主动攻击. 树木 : 该项貌似是多余项. 自爆工兵

: 会自动使用自爆技能. 泰坦族 : 未使用的一个类别,只在魔兽历史中出现. 是一个建筑 : 设置单位是否为建筑. 黄金消耗 : 建造

或雇用该单位的费用. 木材消耗 : 同上 建造时间 : 建造该单位需要的时间. 修理黄金消耗 : 修理该单位所需费用,还和修理技能

的参数设置有关. 修理木材消耗 : 同上 修理时间 : 修理该单位所需时间,还和修理技能的参数设置有关. 黄金奖励 - 基础值 : 杀

死该单位所能得到的奖励. 随机奖励采用D&D的掷骰子模式. 所得奖励 = 基础值 + 骰子数量 x Random(1,骰子面数) 黄金奖励 -

骰子数量 : 同上 黄金奖励 - 骰子面数 : 同上 木材奖励 - 基础值 : 同上,但木材奖励不会有漂浮文字显示. 木材奖励 - 骰子数量

: 同上 木材奖励 - 骰子面数 : 同上 占用人口 : 略 提供人口 : 略 生命最大值 : 略 生命回复 : 略 生命回复类型 : 略

魔法最大值 : 略 魔法回复 : 略 魔法初始数量 : 英雄复活以及单位刚建造出来时的魔法值. 视野范围(白天) : 单位在白天的视野

范围 视野范围(夜晚) : 单位在晚上的视野范围 雇佣开始时间 : 单位作为雇佣兵第一次能被雇佣的时间. 雇佣时间间隔 : 略 最

大库存量 : 单位作为雇佣兵的最大库存量. 运输尺寸 : 单位被装载时所占的装载格数. 英雄 - 主要属性 : 略 英雄 - 初始力量 :

略 英雄 - 初始敏捷 : 略 英雄 - 初始智力 : 略 英雄 - 每等级提升力量 : 略 英雄 - 每等级提升敏捷 : 略 英雄 - 每等级提

升智力 : 略 英雄 - 隐藏小地图英雄显示 : 勾选的话,会使用普通单位标记代替小地图中该英雄标记. 英雄 - 隐藏英雄栏图标 : 左

上角不显示该英雄图标. 英雄 - 隐藏英雄死亡信息 : 死亡时不显示死亡讯息. 中立建筑 - 可作为随机建筑 : 略 中立建筑 - 显示

小地图标记 : 略 隐藏小地图显示 : 小地图上不显示该单位的标记. 单位附加值 : 并无任何实际意义,仅用于触发器中,比如在一个T

D地图中,我们可以使用该项来作为建筑的售出价格. 允许睡眠 : 允许在夜晚进入睡眠状态. 只对中立敌对有效. 可以逃跑 : 单位被

攻击而无法反击时会自动跑开一段距离. 编队优先权 : 编队时单位图标的排列顺序,该值较高者会排列在前面. 队形排列 : 移动时的

队形排列,数值越小的会越靠前. 能建造在其他建筑上 : 仅用于不死族金矿,其他建筑乱用会跳错. 能被其他建筑建造 : 仅用于金矿,

其他建筑乱用会跳错. 科技树 需求 : 建造单位所需的科技项目,可添加多个. 需求 - 等级 N : 仅对英雄有效,建造第N个英雄需要

的科技项目. 需求 - 使用等级数 : 略 需求值 : 所需科技项目的等级(科技)或数量(单位),可添加多个,与科技树需求依次对应. 从属

等价物 : 这里列出的对象可以代替该单位,但该单位不能代替列出的对象. 即A属于B不代表B属于A. 可重生阵亡英雄 : 该建筑可以

用来重生死亡英雄. 可研究项目 : 该建筑中可以研究的科技项目. 指定复活点 : 该建筑必须可以复活英雄. 英雄将只能在指定的建

筑复活. 可建造建筑 : 该单位可以建造的建筑种类. 使用科技 : 该单位所应用的科技项目. 售出物品 : 该建筑可以出售的物品.

制造物品 : 该建筑可以出售的物品.与售出物品的区别是该项中的物品出售有科技树限制,而售出物品没有. 售出单位 : 该建筑可以出

售的单位. 训练单位 : 该建筑可以出售的单位.与售出单位的区别是该项中的单位出售有科技树限制,且有训练时间,而售出单位没有.

建筑升级 : 该建筑可以升级为指定建筑. 移动 类型 : 移动类型影响单位可移动区域以及飞行高度和转身动作等等. 无 : 能在包括

边界的所有区域移动 步行 骑马 : 只能在陆地和浅水区移动. 飞行 : 可以在边界之外的地区移动. 浮空(陆) : 只能在陆地和浅水区

移动,单位可以浮在空中. 漂浮(水) : 只能在水中移动. 两栖 : 可以在陆地和水中移动. 基础速度 : 单位的移动速度将处于最大和

3

少年易学老难成,一寸光阴不可轻 - 百度文库

最小值之间. 最大速度 : 数值0代表使用默认值(游戏平衡常数) 最小速度 : 数值0代表使用默认值(游戏平衡常数) 转身速度 : 取

值0-1. 数值越大,单位转身越快. 为0时单位将只能向前移动. 高度 : 单位的飞行高度. 最小高度 : 单位飞行高度不会小于该值.

组群分离 - 允许 : 开启该项的同类单位在距离过近时会自动排斥.(像磁铁一样) 组群分离 - 参数 : 设置排斥强度,即距离. 组群分离

- 组号 : 同组的不同单位间也会有排斥效应.0表示无组号. 组群分离 - 优先权 : 两单位发生排斥时,优先级低的单位会被排斥,优先级

相同则相互排斥. 编辑器 分类 - 战役 : 单位显示在战役分类中. 分类 - 特殊 : 单位显示在特殊分类中. 可在编辑器中放置 : 该

项为False则单位将无法在编辑其中放置... 地形设置 : 单位将只在工具面板的指定地形中显示,仅由于中立单位. 使用点击帮助 : 在

模型中心显示一个紫色小方块,对一些特别小的模型大概有用. 可作为中立敌对显示 : 勾选该项的中立单位会被显示在中立敌对分类

中. 可设置死亡掉落物品 : 可在设置单位属性中设置其死亡掉落物品. 有地形指定数据 : 据说某些模型对于不同地形会使用不同数

据,比如模型皮肤. 测试未果,只知道该项开启后更换地形很容易跳错. 建议不要理会. 路径 放置不允许 : 不允许放置该建筑的区域.

放置要求 : 对允许放置区域的要求. 放置要求距离水的范围 : 建筑需要建造在离水距离为该范围内的地方. 0表示不需要. AI放置类

型 : 用于对战AI. AI放置范围 : 用于对战AI. 碰撞体积 : 单位的实际大小而非显示大小,碰撞体积过大的单位经常会被被堵住,对建

筑无效. 路径纹理 : 建造建筑时显示的绿色方块区域. 可设置该区域的建造和通行状态.在编辑器中勾选菜单 - 编辑 - 路径(地面/海

路)项可以详细查看路径纹理. 如下图为人类基地的默认路径纹理,紫色区域表示不可建造,粉色区域表示地面单位不可通行.

本帖最近评分记录: 共 3 条评分 隐藏

alexries互助

印象分

威望

+4

+3

+2

2010-02-26

2010-02-26

2010-02-26

-

-

-

alexries

alexries

2

评价一下你浏览此帖子的感受

精彩 感动 愤怒 无聊 灌水 憧憬 鹿过 不解 杯具 惊 吐血 头晕晕

相关话题

发帖~

新年快乐与回帖奖励

GA版 遗失的记忆

回复 引用

举报顶端

只看该作者 沙发 发表于: 2010-02-26

希瓦

技能篇

声音

4

少年易学老难成,一寸光阴不可轻 - 百度文库

音效 : 技能音效.

音效(循环) : 持续技能的循环音效.

文本

级别: 路人

发帖

3315

金钱

195

威望

67

互助

111

关注Ta

发消息

名字 : 略

名字 - 编辑器后缀 : 仅在编辑器中显示,一般用于区分同名技能.

提示工具 - 学习 : 学习技能时的提示文本.

提示工具 - 学习 - 扩展 : 同上

提示工具 - 普通 : 正常状态时的技能提示文本.

提示工具 - 普通 - 扩展 : 同上

提示工具 - 关闭 : 激活/关闭技能的提示文本.

提示工具 - 关闭 - 扩展 : 同上

命令串 - 使用/打开 : 用于发布相应技能动作的命令串.

命令串 - 关闭 : 同上

命令串 - 激活 : 同上

命令串 - 取消激活 : 同上

热键 - 学习 : 学习技能的热键.

热键 - 普通 : 使用技能的热键.

热键 - 关闭 : 关闭技能的热键.

显示

图标 - 学习 : 学习技能的图标.

图标 - 普通 : 使用技能的图标.

图标 - 关闭 : 关闭技能的图标.

按钮位置 : 相应按钮图标的位置.

效果 - 投射物图像 : 技能投射物效果. 只对有射弹轨迹的技能有效(如风暴之锤、灼热之箭).

效果 - 射弹速度 : 技能投射物飞行速度.

效果 - 射弹弧度 : 射弹弧度 = 技能投射物飞行最大高度/平面位移.

效果 - 射弹自导允许 : 技能投射物可以自动跟踪目标单位.

效果 - 闪电效果 : 只对闪电链、魔法吸吮之类连通单位之间的技能有效.设置单位之间的连接

效果.

5

少年易学老难成,一寸光阴不可轻 - 百度文库

效果 - 区域 : 地面区域的效果影响.只有闪烁和传送类技能该项有效.

效果 - 施法动作 : 施法者在施法过程中所做的动作.

效果 - 施法者 : 对施法者附加的效果影响.

效果 - 施法者 - 附加数量 : 对施法者附加的效果数量. 0表示使用效果默认值.

效果 - 施法者附加点 : 对施法者的效果附加点位置.

效果 - 目标点 : 对目标点的效果附加. 只有以点为目标施放技能才有效.

效果 - 目标 : 对目标单位的效果附加. 只有以单位为目标施放技能才有效.

效果 - 目标 - 附加数量 : 对目标单位附加的效果数量. 0表示使用效果默认值.

效果 - 目标附加点 : 对目标单位的效果附加点位置.

效果 - 特殊 : 技能指定作特殊用途的效果. 不是每个技能都有效,而且对各技能的用途都不

一样.

效果 - 特殊附加点 : 特殊效果的效果附加点位置.

附加点:

hand 手 foot 脚 real 后肢(四足生物) weapon 武器

left right 修饰手脚等附加点,添加在前面和后面都可以

head 头部 overhead 头顶 chest 胸部 origin 脚底

turret 炮塔头部 mount 坐骑头部 eattree吃树时树的附加点所在位置

rally 聚集点(设置聚集点在该单位身上时的聚集点附加位置)

sprite 只有血法和建筑物有该附加点

first second third fourth fifth sixth 修饰sprite的后缀

状态

种族 : 技能所在种族分类.

英雄技能 : 是否作为英雄技能.

物品技能 : 是否作为物品技能.

等级 : 技能的总等级数量.

学习等级 : 技能初始学习需要的等级. 等级高于或等于6级的技能才能对魔免单位施放.

跳级要求 : 学习技能所需等级间隔. 0表示取默认值(平衡常数)

魔法偷取优先权 : 一般来说是作为对战AI中判断使用.

魔法效果 : 对目标单位附加的魔法效果.

区域持续效果 : 对目标区域的持续性效果. 只有对区域持续效果的技能才有效. 如暴风雪、地

震.

6

少年易学老难成,一寸光阴不可轻 - 百度文库

目标允许 : 可以对其施放的对象类型.以下面的分类:同行之间为Or关系,异行之间为And关

系,该行不选则取默认值.

例:只选择无敌则表示目标允许无敌的存活的别人的单位(空中地面建筑).此时原默认值-可攻

击将不再起作用,单位只能对无敌的单位施法,而其它未被改动的行则采用默认值.

没有(选中即无允许目标,没悬念的DD...)

残骸 物品 地形 树木 墙 桥 装饰物 空中 地面 建筑 守卫 (默认空中 地面 建筑)

存活 死亡 (默认存活)

无敌 可攻击 (默认可攻击)

联盟 友军(不包括玩家单位) 敌人 玩家单位 中立 自己 别人 (默认别人)

英雄 非英雄 (默认全选)

古树 非古树 (默认全选)

自爆工兵 非自爆工兵 (默认全选)

机械 有机 (默认全选)

魔法施放时间 : 魔法施放准备时间,但常被用来作为其他数据使用. 如暴风雪中作为波次间隔

时间使用.

魔法施放时间间隔 : 略

持续时间 - 普通 : 魔法效果对普通单位的持续时间. 也常被用来作其他用途.

持续时间 - 英雄 : 魔法效果对英雄单位的持续时间. 也常被用来作其他用途.

魔法消耗 : 略

施法距离 : 略

影响区域 : 一般作为范围性技能的影响范围大小.

科技树

检查等价所属 : 检查等价从属关系.如A从属于B,那么该项为True时A可以代替B,而B不

能代替A;为False则两者可以相互替代.

需求 : 使用技能所需的科技项目,可添加多个.

需求值 : 所需科技项目的等级(科技)或数量(单位),可添加多个,与科技树需求依次对应.

[ 此帖被希瓦在2010-02-26 18:46重新编辑 ]

GA版 遗失的记忆

回复 引用

举报顶端

7

少年易学老难成,一寸光阴不可轻 - 百度文库

希瓦

只看该作者 板凳 发表于: 2010-02-26

地形装饰物篇

装饰物

声音

级别: 路人

发帖

循环声音 : 略

3315

金钱

195

威望

67

互助

111

关注Ta

发消息

文本

名字 : 略

显示

模型文件 : 略

默认比例 : 默认的模型缩放大小.

X轴旋转角度(度数) : 仅取负数时有效. 模型绕X轴旋转的角度.

Y轴旋转角度(度数) : 仅取负数时有效. 模型绕Y轴旋转的角度.

固定角度 : 物体朝向方向. 取-1可以自由调节方向,当路径纹理为无时或正方形单一纹理(如

树木)时,可以自由选择角度,否则调节幅度为90度.

样式总数 : 模型样式的数量. 如10种样式的物体该项设为3,则只会出现3种样式.

选择圈大小 : 编辑器中的选择圈直径.

小地图 - 显示 : 是否在小地图显示.

小地图 - 使用自定义颜色 : 是否使用自定义小地图标记颜色.

小地图颜色(红) : 自定义小地图标记颜色.

小地图颜色(绿) : 同上

小地图颜色(蓝) : 同上

可见范围 : 未知

有阴影 : 未知

漂浮 : 装饰物在水中时是否漂浮在水面上.

迷雾中显示 : 设置装饰物能否在迷雾中被显示.

迷雾中显示动画 : 设置装饰物能否在迷雾中显示动画.

颜色值(红) : 略

8

少年易学老难成,一寸光阴不可轻 - 百度文库

颜色值(绿) : 略

颜色值(蓝) : 略

编辑器

类别 : 装饰物所处分类.

加入用户指定列表 : 将装饰物加入到工具面板的用户指定列表.

地形设置 : 装饰物将只在工具面板的指定地形分类中显示.

悬崖上可放置 : 略

水面可放置 : 略

可以放置随机比例 : 略

最大比例 : 允许的模型最大缩放值.

最小比例 : 允许的模型最小缩放值.

使用点击帮助 : 在模型中心显示一个紫色小方块来辅助点击.

忽略模型点击 : 点击模型将不能选中该装饰物,但能被框选. 如果开启了点击帮助,点击紫色

方块也能选中装饰物.

有地形指定数据 : 据说某些模型对于不同地形会使用不同数据,比如模型皮肤. 测试未果,只

知道该项开启后更换地形很容易跳错. 建议不要理会.

可通行 : 设置单位通过该装饰物时是否改变其Z轴高度使其从装饰物表面通过.

路径纹理 : 设置装饰物所占区域的大小以及建造和通行状态.在编辑器中勾选菜单 - 编辑 -

路径(地面/海路)项可以详细查看路径纹理.

[ 此帖被希瓦在2010-02-26 18:47重新编辑 ]

GA版 遗失的记忆

回复 引用

举报顶端

希瓦

只看该作者 地板 发表于: 2010-02-26

科技篇

科技

文本

9

少年易学老难成,一寸光阴不可轻 - 百度文库

名字 : 略

编辑器后缀 : 仅在编辑器中显示,一般用于区分同名科技.

提示工具 : 科技研究的说明文本.

提示工具 - 扩展 : 同上

级别: 路人

发帖

3315

金钱

195

威望

67

互助

111

关注Ta

发消息

热键 : 研究该科技的热键.

显示

图标 : 该科技使用的图标.

按钮位置(X) : 研究科技的按钮图标所在位置.

按钮位置(Y) : 研究科技的按钮图标所在位置.

数据

光环数据奖励 : 仅对兽族的战鼓升级及以它为基础的自定义科技有效,可以对兽族战鼓光环

的数据进行修正.

单位可用性更改 : 设置单位可用性,仅对指定的几个科技项有效.

增加夜视能力 : 空壳而已,无实际作用.

复活死尸持续时间奖励 : 延长复活死尸技能召唤骷髅的持续时间.

尖刺障碍 : 升级有尖刺障碍技能单位受到近战攻击时的反弹伤害值.

应用攻击升级奖励 : 提升单位攻击力,数值在单位编辑器中给定.

应用防御升级奖励 : 提升单位防御力,数值在单位编辑器中给定.

技能等级奖励 : 提升技能等级.

攻击伤害奖励 : 提升单位攻击力.

攻击伤害衰减奖励 : 弹射和穿透攻击的伤害衰减,注意增加伤害衰减表示每次反弹后的攻击

伤害会减少,所以要提升威力的话应该输入负值. (暴雪官方编辑器该项有Bug,不能输入实数,

在该UI的V1.2中修正可用.)

攻击允许 : 设置单位攻击模式.

攻击允许(扎根) : 古树扎根形态的攻击模式.

攻击允许(拔起) : 古树移动形态的攻击模式.

攻击射程奖励 : 增加单位攻击射程.

攻击目标数量奖励 : 增加弹射攻击弹射目标数量.

攻击速度奖励 : 增加攻击速度.

10

少年易学老难成,一寸光阴不可轻 - 百度文库

攻击骰子数奖励 : 增加单位攻击伤害骰子数量.

木材采集奖励 : 增加单位一次携带的木材数量.

生命值奖励 : 增加单位生命值.

生命值奖励(%) : 增加单位生命值.(基础生命值的百分比)

生命回复 : 增加单位生命恢复速度.

移动速度奖励 : 增加单位移动速度.

移动速度奖励(%) : 增加单位移动速度.(基础移动速度的百分比)

穿透攻击范围奖励 : 穿透攻击的范围奖励.

穿透攻击距离奖励 : 穿透攻击的穿透距离奖励.

视野范围奖励 : 增加单位的视野范围.

防御类型更改 : 修改单位的防御类型.

魔法值奖励 : 增加单位魔法值.

魔法值奖励(%) : 增加单位魔法值.(基础魔法值的百分比)

魔法免疫 : 空壳而已,无实际作用.

魔法回复 : 增加单位魔法恢复速度.

黄金采集奖励 : 增加单位一次采集的黄金数量.

黄金采集奖励(缠绕) : 增加一次采集的黄金数量.(该升级针对金矿使用,如不死或暗夜的金矿)

状态

种族 : 科技所属种族分类.

等级 : 科技升级等级总数.

升级类型 : 升级研究的科技类型,并会在单位状态栏中显示.

基础黄金消耗 : 首次研究科技所需花费.

基础木材消耗 : 同上

基础时间消耗 : 同上

每等级增加黄金 : 每次研究科技需要增加的花费.

每等级增加木材 : 同上

每等级增加时间 : 同上

可随单位转移所有者 : 转移单位所属同时能使玩家获得该单位的科技升级.

应用于所有单位 : 无效选项

11

少年易学老难成,一寸光阴不可轻 - 百度文库

科技树

需求 : 研究该科技所需的科技项目,可添加多个.

需求值 : 所需科技项目的等级(科技)或数量(单位),可添加多个,与科技树需求依次对应.

[ 此帖被希瓦在2010-02-26 18:48重新编辑 ]

GA版 遗失的记忆

回复 引用

举报顶端

希瓦

只看该作者 地下室 发表于: 2010-02-26

平衡常数篇

杂项

人口上限 FoodCeiling : 略

单位最大等级 MaxUnitLevel : 普通单位的等级上限.

级别: 路人

发帖

显示其它玩家物品栏 DisplayEnemyInventory : 该项为False将无法看到其他玩家的物品栏,

除非得到其控制权.

3315

金钱

195

威望

67

互助

111

攻击反应延迟 ReactionDelay : 单位发布攻击命令(或是发现攻击目标)到发动攻击之间的反

应延迟.

昼夜动画时间比例 ScaledAnimTime : 昼夜更替速率,60为标准值,数值越大昼夜更替越快.

最大碰撞范围 MaxCollisionRadius : 未发现作用

隐形转换速率 InvisSpeed : 未发现作用

关注Ta

发消息

集结点Z轴偏移 RallyZOffset : 未发现作用

通过可破坏物时选择圈Z偏移 ImageWalkableZOffset : 地面单位通过可通行的可破坏物时

单位选择圈和阴影的Z轴偏移.

建筑朝向角度(度数) BuildingAngle : 普通建筑朝向角度.

扎根建筑朝向角度(度数) RootAngle : 古树扎根后的朝向角度.

回收建筑HP流失速率 ConstructionLifeDrainRate : 使用不死族侍僧的回收建筑时,被回收建

筑的每秒流失的生命值.

建筑荒芜地表驱散范围 BuildingUnBlightRadius : 未发现作用

建造状态显示 DisplayBuildingStatus : 未发现作用

点命令指示器颜色(一般) : 发布一般点命令时的点命令指示器颜色. 颜色值格式:(A,R,G,B),

12

少年易学老难成,一寸光阴不可轻 - 百度文库

取值0-255.

点命令指示器颜色(攻击) : 发布指定点攻击命令时的点命令指示器颜色. 颜色值格式:(A,R,G,

B),取值0-255.

中立生物

对使用中立建筑的警戒范围 NeutralUseNotifyRadius : 未发现作用

对建造建筑物的警戒范围 BuildingPlacementNotifyRadius : 未发现作用

最大中立营地范围(路径单元) CreepCampPathingCellDistance : 该范围用来决定中立单位

营地在小地图上的显示和相关AI判断. 以路径单元为单位,每个单元为32距离. 即10表示3

20距离.

警戒范围 GuardDistance : 中立单位与警戒点距离小于该值时不会主动返回.

警戒返回距离 MaxGuardDistance : 中立单位与警戒点距离大于警戒范围而小于警戒返回距

离时,如果在攻击目标则不会返回,否则自动返回警戒点;如果距离警戒点范围大于警戒返回距

离时无条件返回警戒点.

警戒返回时间(秒) GuardReturnTime : 中立单位在离开警戒范围时间超过该值时会自动返

回.

警戒范围 - 单位出售 UnitSaleAggroRange : 中立生物对玩家雇俑单位事件的警戒范围.

警戒范围 - 技能出售 AbilSaleAggroRange : 中立生物对玩家使用中立建筑技能的警戒范

围.

警戒范围 - 物品出售 ItemSaleAggroRange : 中立生物对玩家购买物品事件的警戒范围.

信息面板

Buff图标消褪时间 FadeBuffMinDuration : 当Buff效果剩余时间为该值时Buff图标开始出现

消褪效果.

Buff图标消褪最大Alpha值 FadeBuffMaxAlpha : Buff图标的正常Alpha值.

Buff图标消褪最小Alpha值 FadeBuffMinAlpha : Buff图标消褪状态时其Alpha值在最大和

最小值之间更替.

任务指示器持续时间 QuestIndicatorTimeout : 任务按钮闪动的持续时间.

攻击速度 - 快 AttackFast : '快' 与 '非常快' 的分界点.

攻击速度 - 中等 AttackAverage : '快' 与 '中等' 的分界点.

攻击速度 - 慢 AttackSlow : '中等' 与 '慢' 的分界点.

攻击速度 - 非常慢 AttackVerySlow : '慢' 与 '非常慢' 的分界点.

13

少年易学老难成,一寸光阴不可轻 - 百度文库

移动速度 - 快 SpeedFast : '快' 与 '非常快' 的分界点.

移动速度 - 中等 SpeedAverage: '快' 与 '中等' 的分界点.

移动速度 - 慢 SpeedSlow : '中等' 与 '慢' 的分界点.

移动速度 - 非常慢 SpeedVerySlow : '慢' 与 '非常慢' 的分界点.

近战最大攻击距离 MeleeRangeMax: 该值以下的攻击距离会被显示为近战,但与该单位是否

为近战单位无关.

取消返还参数

单位训练 TrainRefundRate : 取消以下各类事件返还的资源百分比. 1表示全额返还.

建筑升级 UpgradeRefundRate : 同上

建造建筑 ConstructionRefundRate : 同上

科技研究 ResearchRefundRate : 同上

英雄复活 ReviveRefundRate : 同上

字体大小

图标右下角数字 CommandButtonNumber : 可设置以下各项对应的字体大小

工具栏 - 标题 ToolTipName :

工具栏 - 消费数值 ToolTipCost :

工具栏 - 说明 ToolTipDesc :

排行榜和多面板 LeaderBoard :

游戏信息提示 WorldFrameMessage :

物体悬浮窗 - 名字 UnitTipPlayerName :

物体悬浮窗 - 说明 UnitTipDesc :

物品栏标题 Inventory :

生命魔法值 PortraitStats :

维修费提示 WorldFrameTopMessage :

聊天文本显示 WorldFrameChatMessage :

聊天输入栏文字大小 ChatEditBar :

触发文本显示 WorldFrameUnitMessage :

计分屏 - 大字体 ScoreScreenLarge :

计分屏 - 普通字体 ScoreScreenNormal :

计分屏 - 玩家名字 ScoreScreenTeam :

14

少年易学老难成,一寸光阴不可轻 - 百度文库

小地图信号

完成信号颜色 PingColor : 完成训练/研究/升级等动作时显示的信号. 颜色值格式:(A,R,G,B),

取值0-255.

建议信号颜色 PingAdvisorColor : 例如所采集金矿倒塌时会显示该信号.

攻击信号颜色 PingAttackColor : 遭受攻击时显示的信号.

路径点信号颜色 PingWaypointColor : 按Shift设置路径点显示的信号,该信号只有绿颜色值

可用,即设置其它颜色通道是无效的.

战斗

伤害奖励列表

虚无 EtherealDamageBonus : 设置虚无状态时各类攻击类型的伤害加成效果. 不过该项暴

雪的排序是错误的,正确的应该是普通-穿刺-攻城-魔法-混乱-法术-英雄.

攻城 DamageBonusSiege : 以下设置各类攻击类型对不同护甲的伤害效果.

普通 DamageBonusNormal :

法术 DamageBonusSpells :

混乱 DamageBonusChaos :

穿刺 DamageBonusPierce :

英雄 DamageBonusHero :

魔法 DamageBonusMagic :

失误几率 ChanceToMiss : 远程单位攻击高地上单位时的命中失误几率.

护甲减少伤害因子 DefenseArmor : 确定护甲与伤害减少值之间关系的参数,设该值为x,则

1>. 当防御Def>0时,单位所受伤害%为1/(1+0.06*Def)

2>. 当防御Def<0时,单位所受伤害%为 2-0.94^(-Def) (^符号是幂运算)

闪避抵消伤害因子 MissDamageReduction : 溅射攻击被闪避时,单位仍会受到部分伤害,该

值设置其所抵消的伤害值.

攻击通知范围 AttackNotifyRange : 未发现作用

攻击通知间隔 AttackNotifyDelay : 两次攻击通知之间的最小时间间隔.

救援范围 CallForHelp : 发生战斗时,该范围内拥有正面魔法并处于自动施放状态的单位会主

动赶去支援.

救援范围(中立) CreepCallForHelp : 同上,针对中立敌对玩家.

15

少年易学老难成,一寸光阴不可轻 - 百度文库

时间

每日时间长度 DayLength : 每日对应的真实时间秒数.

每日的小时数 DayHours : 默认为24.

黎明 Dawn : 进入白天的游戏日时间.

黄昏 Dusk : 进入夜晚的游戏日时间.

游戏性

等价所属检查 DepCheckAlias : 未发现作用

允许反弹远程攻击 DefendDeflection : 设置艾鲁尼之优雅、防御等技能的反弹功能可用

允许多种奖励 AllowMultiBounce : 未知

升级使用建造费用 RelativeUpgradeCost : 该项为True时,建筑升级费用=该建筑建造费用;

为False时,建筑升级费用=该建筑建造费用 - 原建筑建造费用.

升级建筑损伤返还惩罚 UpgradeDamageRefundPenalty : 如果建筑在升级中受到损伤,设置

其被取消时是否需要扣除相应资源.

建造建筑损伤返还惩罚 ConstructionDamageRefundPenalty : 如果建筑在建造中受到损伤,

设置其被取消时是否需要扣除相应资源.

移动速度奖励累加 MoveSpeedBonusesStack : 无效项

虚无对盟友伤害加成 EtherealDamageBonusAlly : 设置对盟友虚无单位造成伤害时是否有

加成效果.

飓风技能隐藏单位 CycloneStasis : 设置被飓风技能命中的单位能否被选取.

驱逐魔法可对无敌单位造成伤害 InvulnSummonDispelDamage : 该项为True时驱逐、净化

等技能可以对无敌召唤单位造成伤害.

变身时禁用其它形态交替技能 MorphAlternateDisable : 使用各类变身技能时将禁用其它形

态交替技能(这是个Bug项,事实上除了一些个别技能,所有技能会被禁用)

飞行单位变身寻找最近地着陆 MorphLandClosest : 为True时,当有单位或可破坏物障碍时

会自动寻找最近地着陆;为False时会提示无法登陆.

飞行英雄能给予光环 FlyingHerosBestowAuras : 未发现作用

操纵死尸复活的单位能给予光环 AnimatedUnitsBestowAuras : 以下四项如字面意思理解.

被变形单位能给予光环 PolymorphedUnitsBestowAuras :

钻地单位能给予光环 BurrowedUnitsBestowAuras :

隐形单位能给予光环 InvisibleUnitsBestowAuras :

蛛网属于魔法技能 WebIsMagic : 设置蛛网属于物理或是魔法技能.为True则能对虚无单位

16

少年易学老难成,一寸光阴不可轻 - 百度文库

施放不能对魔免施放,为False则能对魔免单位施放不能对虚无施放.

诱捕属于魔法技能 EnsnareIsMagic : 设置诱捕属于物理或是魔法技能,同上.

召唤护符使单位聚集 AmuletOfRecallCluster : 以下4项设置使用对应魔法时,被传送单位是

保持原来的位置或聚集在一起.

回城卷轴使单位聚集 TownPortalCluster :

群体传送使单位聚集 MassTeleportCluster :

17

黑暗传送使单位聚集 DarkSummoningCluster :

汲取使用虚无奖励 DrainUsesEtheralBonus : 无效项

汲取可传输生命 DrainTransfersLife : 设置是否可对己方传输生命

汲取可传输魔法 DrainTransfersMana : 设置是否可对己方传输魔法

汲取可获得额外生命值 DrainGivesBounsLife : 设置汲取所得生命能否超出生命上限

汲取可获得额外魔法值 DrainGivesBonusMana : 设置汲取所得魔法能否超出魔法上限

镜像有攻击加成 IllusionsGetAttackBonus : 增加攻击的技能、魔法、光环是否有效,不包括属

性加成

镜像有防御加成 IllusionsGetDefenseBonus : 增加防御的技能、魔法、光环是否有效,不包括

属性加成

镜像有攻击速度加成 IllusionsGetAttackSpeedBonus : 设置某些增加攻速技能对镜像是否

有效

镜像有移动速度加成 IllusionsGetMoveSpeedBonus : 设置某些加快移动技能对镜像是否有

镜像能回复生命 IllusionsCanRestoreLife : 能否对镜像使用加血技能 治疗守卫 邪恶光环

生命指环等恢复技能,以及镜像是否能吸血.

镜像能回复魔法 IllusionsCanRestoreMana : 与以上类似.

镜像能给予光环 IllusionsBestowAuras : 本体拥有的光环,镜像也能给予周围单位该光环的

效果影响

镜像自动施法允许 IllusionsGetAutocast : 如霜冻护甲、心灵之火等自动施放技能是否对镜像

自动施放.

附 : (其实很多是属于Bug,Blz的Bug见多了)

耐久光环、毒、霜冻、嗜血术、减速等技能改变攻击移动速度总是有效

速度之靴增加移动速度总是有效

增加属性总是有效,且属性附带的加攻加防加回复速度攻击速度都有效

少年易学老难成,一寸光阴不可轻 - 百度文库

加生命魔法上限总是有效

详细请参考该贴: /?tid=236583

魔法免疫抵抗吸血 MagicImmunesResistLeech : 设置攻击魔免单位时吸血效果是否有效.

魔法免疫抵抗攻击 MagicImmunesResistDamage : 设置魔法攻击能否攻击魔免单位.

魔法免疫抵抗终极 MagicImmunesResistUltimates : 设置终极技能能否对魔免单位有效.

魔法免疫抵抗荆棘 MagicImmunesResistThorns : 由于反弹并不会对魔免单位造成伤害,所

以区别只是是否有反弹效果而已.

能取消神圣护盾 CanDeactivateDivineShield :设置神圣护盾可否取消

能取消乌鸦形态(NYI) : 以下带NYI标记都是无效项

能取消剑刃风暴(NYI)

能取消化学风暴(NYI)

能取消恶魔变身(NYI)

能取消复仇者形态(NYI)

能取消天神下凡(NYI)

能取消战斗号召(NYI)

能取消机器人地精(NYI)

能取消潜水(NYI)

能取消灵肉形态(NYI)

能取消熊形态(NYI)

能取消献祭(NYI)

能取消疾风步(NYI)

能取消石像形态(NYI)

能取消装甲皮肤(NYI)

能取消钻地(NYI)

能取消防御(NYI)

能取消魔力之焰(NYI)

能取消魔法护盾(NYI)

漂浮文字 (奖励、黄金、木材、攻击丢失、暗影突袭、法力燃烧、致命一击)

字体大小 TextHeight : 漂浮文字的大小.

文字颜色 TextColor : 颜色值格式:(A,R,G,B),取值0-255

18

少年易学老难成,一寸光阴不可轻 - 百度文库

移动速度 TextVelocity : (X,Y)格式,对应X轴和Y轴方向的移动速度.

持续时间 TextLifetime : 漂浮文字存在的时间.

消逝时间点 TextFadeStart : 漂浮文字开始消退的时间.

物品

物品 - 拾取物品范围 PickupItemRange : 以下都可按字面理解

物品 - 丢弃物品范围 DropItemRange :

物品 - 给予物品范围 GiveItemRange :

物品 - 贩卖物品范围 PawnItemRange :

物品 - 贩卖物品价格 PawnItemRate : 卖出和买入价格的比例,1表示原价.

物品阴影 ItemShadowFile : 设置物品所使用的阴影图像

物品阴影大小 ItemShadowSize : 以(X,Y)形式表示.

物品阴影位移 ItemShadowOffset : 以(X,Y)形式表示,相对于物品所在点的位移,方向为X、Y

轴的负方向.

科技树

从属等价物 - 英雄 : 这里定义作为英雄的单位. (当限制玩家所能拥有的英雄数量时,只有这

些单位被列入计算)

从属等价物 - 祭坛 : 这里定义作为祭坛的单位.

从属等价物 - 主基地 : 这里定义作为各等级基地的单位.

从属等价物文本 - 英雄 : 未满足科技需求时显示的文本.

从属等价物文本 - 祭坛 : 同上

从属等价物文本 - 主基地 : 同上

移动

单位最大速度 MaxUnitSpeed : 定义单位或是建筑(古树)的最大和最小速度.如果在单位编辑

器中设置了最大/最小速度,则以单位编辑器中的数据优先.

单位最小速度 MinUnitSpeed : 同上

建筑最大速度 MaxBldgSpeed : 同上

建筑最小速度 MinBldgSpeed : 同上

维修费

19

少年易学老难成,一寸光阴不可轻 - 百度文库

人口设置 UpkeepUsage : 以下3者设置相应人口范围内的维修费率.

黄金维修费 UpkeepGoldTax : 同上

木材维修费 UpkeepLumberTax : 同上

英雄

最大等级 MaxHeroLevel : 略

默认技能跳级 HeroAbilityLevelSkip : 默认每提升技能等级需要的英雄等级增加量.

英雄Exp

详细请参考该贴: /?tid=303960

全球化分布 GlobalExperience : 当EXP取得范围内没有英雄时,是否将经验分配给其他英

经验取得范围 HeroExpRange : 以下字面理解

建筑杀死单位给予经验值 BuildingKillsGiveExp : 同上

最高等级英雄消耗经验值 MaxLevelHerosDrainExp : 同上

英雄Exp获取

中立生物经验参数表 HeroFactorXP : 中立生物被杀死后,所获得的经验值需要乘以该参数.

由1级开始,未列出的等级都按最后一个数据来计算.

召唤单位经验参数 SummonedKillFactor : 召唤单位被杀死后,所获得的经验值需要乘以该参

普通 - 列表 GrantNormalXP : 以下为杀死普通单位所得经验参数设置

普通 - 上一个值因数 GrantNormalXPFormulaA :

普通 - 等级因数 GrantNormalXPFormulaB :

普通 - 固定因数 GrantNormalXPFormulaC :

英雄 - 列表 GrantHeroXP : 以下为杀死英雄所得经验参数设置

英雄 - 一个值因数 GrantHeroXPFormulaA :

英雄 - 等级因数 GrantHeroXPFormulaB :

英雄 - 固定因数 GrantHeroXPFormulaC :

附 : 列表项中定义每个等级怪物的附带经验值

列表中未列出项,按以下计算公式计算:

设EXP(N)为N级单位的附带经验值,则

EXP(N)=EXP(N-1)*上一个值因素 + N*等级因素 + 固定因素

20

少年易学老难成,一寸光阴不可轻 - 百度文库

等级X奖励因子 XPFactor : 等级X表示基地的等级,后面的数据排列表示拥有N个已定义英

雄(等价英雄中定义过的英雄)时的经验加成

英雄Exp需求

列表 NeedHeroXP : 以下为英雄升级到N级所需经验参数设置,计算方法和经验获取一样

上一个值因数 NeedHeroXPFormulaA :

等级因数 NeedHeroXPFormulaB :

固定因数 NeedHeroXPFormulaC :

英雄唤醒/复活 (酒馆的瞬间复活就是唤醒)

生命值因数 : 英雄被唤醒/复活时的生命值百分比.

魔法值因数 : 英雄被唤醒/复活时的魔法值百分比.(当"使用初始魔法值"项为False)

使用初始魔法值 : 英雄被唤醒/复活时是否使用单位编辑器中设置的初始魔法值.

时间因数 : 英雄复活时间 = 英雄建造时间 * 英雄等级 * 时间因数

时间最大因数 : 英雄复活时间 <= 英雄建造时间 * 时间最大因数

时间最大值 : 英雄复活时间 <= 时间最大值

最大黄金/木材因数 : 黄金/木材消费 <= 建造消费 * 最大黄金/木材因数

黄金/木材基础因数 : 黄金/木材消费 = 建造消费*(基础因数+(等级因数*(等级-1)))

黄金/木材等级因数 : 同上

黄金/木材最大值 : 黄金/木材消费 <= 黄金/木材最大值

附 :实际取值为以上各式中的最小值.

英雄属性

每点主属性攻击奖励 StrAttackBonus : 以下字面理解

每点力量生命值奖励 StrHitPointBonus :

每点力量生命回复奖励 StrRegenBonus :

每点敏捷攻击速度奖励 AgiAttackSpeedBonus :

每点敏捷移动速度奖励 AgiMoveBonus :

每点敏捷防御奖励 AgiDefenseBonus :

每点智力魔法值奖励 IntManaBonus :

每点智力魔法回复奖励 IntRegenBonus :

21

少年易学老难成,一寸光阴不可轻 - 百度文库

基础防御补正(在敏捷奖励之前) : 英雄本体防御 = 基础防御+防御补正+敏捷加成. 就是说敏

捷为0的英雄防御 = 基础防御+防御补正.

衰退时间(秒)

取消 CancelTime : 未发现作用

建筑 StructureDecayTime : 建筑被破坏时残骸保留时间

投射物 BulletDeathTime : 射弹类攻击或魔法(如风暴之锤)击中目标时的动画效果持续时间

效果 EffectDeathTime : 未发现作用

迷雾 FogFlashTime : 被攻击时展现攻击者所在地迷雾的持续时间

英雄消散 DissipateTime : 英雄升天效果持续时间

肉态尸体 DecayTime : 单位死亡后肉态尸体持续时间

骨态尸体 BoneDecayTime : 单位死亡后骨态尸体持续时间

资源交易量

普通点击 TradingincSmall : 设置交易时点击一次增加的资源数量.

Ctrl点击 TradingincLarge : 设置交易时点击一次增加的资源数量(按住Ctrl)

跟随范围

单位 FollowRange : 跟随单位时所保持的距离.

建筑 StructureFollowRange : 未发现作用

物品 FollowItemRange : 捡取物品的检查范围.比如物品栏满的时候去捡取物品就会在该范

围处停住.

迷雾展现范围

攻击 FoggedAttackReveakRadius : 单位被视野之外敌人攻击时展现的攻击者所在地范围.

死亡 DyingReveakRadius : 未发现作用

金矿

最大储金量 GoldMineMaxGold : 编辑器中允许设置的金矿最大储金量,不影响触发器的设

置.

低含金量 LowGoldAmount : 当含金量小于该值时会提示金矿快采完了.

占据时间 GoldMineOwnDuration : 未发现作用

22

少年易学老难成,一寸光阴不可轻 - 百度文库

魔法

冰冻攻击速度降低 FrostAttackSpeedDecrease : 字面理解

冰冻移动速度降低 FrostMoveSpeedDecrease : 同上

虚无状态医疗加成 EtherealhealBonus : 同上

施法范围缓冲 SpellCastRangeBuffer : 由于施法时间的存在,目标可能跑出了施法范围以外,

该值表示允许的缓冲范围值,只要目标没跑出该范围(射程+缓冲范围)则施法成立,否则该次施

法不成立.

[ 此帖被希瓦在2010-02-26 18:48重新编辑 ]

GA版 遗失的记忆

回复 引用

举报顶端

希瓦

只看该作者 5楼 发表于: 2010-02-26

物品篇

物品

战斗

级别: 路人

发帖

3315

金钱

195

威望

67

互助

111

装甲类型 : 该项只影响被近战单位攻击时的声音效果. 与其它任何东西无关.

技能

技能 : 物品附带的技能,最多4个,超过可以用添加魔法书来做.

文本

名字 : 物品名字

关注Ta

发消息

提示工具 - 基础 : 购买物品时的提示文本.

提示工具 - 扩展 : 同上

说明 : 物品说明

热键 : 购买热键

23

少年易学老难成,一寸光阴不可轻 - 百度文库

显示

使用模型 : 略

模型缩放 : 设置模型显示大小.

界面图标 : 略

按钮位置(X) : 购买物品时按钮图标的排列坐标.

按钮位置(Y) : 购买物品时按钮图标的排列坐标.

选择圈大小(编辑器) : 编辑器中的选择圈直径, 0表示随模型大小自动调节.

颜色值(红) : 略

颜色值(绿) : 略

颜色值(蓝) : 略

状态

物品分类 : 略

等级 : 物品等级

等级(旧版) : 旧版本的物品等级,可用于触发中创建随机物品的参照对象

生命值 : 略

黄金消耗 : 购买物品所需黄金花费.

木材消耗 : 购买物品所需木材花费.

购买开始时间 : 物品首次到货时间.

购买时间间隔 : 略

最大库存量 : 略

优先权 : 用于对战AI. 物品栏满时,AI会捡取优先权高的物品,丢弃优先权低的物品.

CD间隔组 : 同组的物品将共享CD间隔,即不能连续使用.

无视CD间隔 : 该物品将无视技能CD,可以无限值使用.

有效的物品转换目标 : 使用'AIri'(随机物品)技能转换物品所得到的只能是该项设为True的物

品.

主动使用 : 物品可以主动使用.

使用完会消失 : 略

使用次数 : 略

可以丢弃 : 略

24

少年易学老难成,一寸光阴不可轻 - 百度文库

可以被抵押 : 是否可以被卖到商店.

可作为随机物品 : 略

可被市场出售 : 只影响对战游戏中市场能否随机出售该物品.

持有者死亡时掉落 : 略

捡取时自动使用 : 如神符和书.

科技树

需求 : 制造物品所需的科技项目,可添加多个.

需求值 : 所需科技项目的等级(科技)或数量(单位),可添加多个,与科技树需求依次对应

[ 此帖被希瓦在2010-02-26 18:49重新编辑 ]

GA版 遗失的记忆

回复 引用

举报顶端

希瓦

只看该作者 6楼 发表于: 2010-02-26

魔法效果篇

魔法效果

声音

级别: 路人

发帖

声音效果 : 略

声音效果(循环) : 略

3315

金钱

195

威望

67

互助

111

文本

名字(编辑器) : 魔法效果的名字,但只在编辑器中使用.

名字 - 编辑器后缀 : 仅在编辑器中显示,一般用于区分同名技能.

工具提示 : 魔法效果的说明文本.

关注Ta

发消息

工具提示 - 扩展 : 同上

显示

图标 : 略

25

少年易学老难成,一寸光阴不可轻 - 百度文库

效果 - 投射物图像 : 技能投射物效果. 只对有射弹轨迹的技能有效(如风暴之锤、灼热之箭).

效果 - 射弹速度 : 技能投射物飞行速度.

效果 - 射弹弧度 : 射弹弧度 = 技能投射物飞行最大高度/平面位移.

效果 - 射弹自导允许 : 技能投射物可以自动跟踪目标单位.

效果 - 点目标 : 对目标点的效果附加. 只有以点为目标施放技能才有效.

效果 - 点目标附加点 : 无效项

效果 - 目标 : 对目标单位的效果附加. 只有以单位为目标施放技能才有效.

效果 - 目标 - 附加数量 : 对目标单位附加的效果数量. 0表示使用效果默认值.

效果 - 目标附加点 : 对目标单位的效果附加点位置.

效果 - 闪电效果 : 只对闪电链、魔法吸吮之类连通单位之间的技能有效.设置单位之间的连接

效果.

效果 - 特殊 : 技能指定作特殊用途的效果. 不是每个技能都有效,而且对各技能的用途都不

一样.

效果 - 特殊附加点 : 特殊效果的效果附加点位置.

效果显示需求 : 需要魔法效果设置在该值以上才能显示此效果.

状态

是区域效果 : 是否作为区域效果使用.

种族 : 效果所在种族分类.

[ 此帖被希瓦在2010-02-26 18:49重新编辑 ]

GA版 遗失的记忆

回复 引用

举报顶端

希瓦

只看该作者 7楼 发表于: 2010-02-26

目标附加点解释

(主要骨架附着点)PRIMARY BONES

(胸)chest bone_chest

(足)foot bone_foot unused

(手)hand bone_hand unused

26

少年易学老难成,一寸光阴不可轻 - 百度文库

级别: 路人

发帖

3315

金钱

195

威望

67

互助

(头)head bone_head

(炮塔?)turret bone_turret

(骨架附着点位置修正)BONE QUALIFIERS

(互生?交替?)alternate alternate

(左)left left unused

(骑马的)mount mount unused

111

关注Ta

发消息

27

right right unused

smart smart unused

PRIMARY LINK POINTS

chest chest

feet feet

foot foot

hand hand

head head

origin origin

overhead overhead

sprite sprite (for building attachment points)

weapon weapon

LINK POINT QUALIFIERS

alternate alternate

left left

mount mount

right right

rear rear

smart smart

first first (for building attachment points)

second second (for building attachment points)

third third (for building attachment points)

fourth fourth (for building attachment points)

fifth fifth (for building attachment points)

(右)

(灵巧的?大大的?)

(主要身体部位附着点)

(胸)

(双足)

(足)

(手)

(头)

(原点?来源?)

(头顶)

(魂?点?)

(武器)

(身体部位附着点位置修正)

(互生?交替?)

(左)

(骑马的)

(右)

(背后)

(灵巧的?大大的?)

(第一?)

(第二?)

(第三?)

(第四?)

(第五?)

少年易学老难成,一寸光阴不可轻 - 百度文库

(第六?)sixth sixth (for building attachment points)

(小?)small small (for building attachment points)

(中?)medium medium (for building attachment points)

(大?)large large (for building attachment points)

(金?农民采矿后被上背的金袋?)gold gold

(聚集点?)rally rallypoint (for building attachment points)

(吞噬树木?)eattree eattree

[ 此帖被希瓦在2010-02-26 18:49重新编辑 ]

GA版 遗失的记忆

回复 引用

举报顶端

希瓦

只看该作者 8楼 发表于: 2010-02-26

触发器翻译

Events (事件)

Map Initialization地图最初设定地图一执行启动事件

Destructible Doodad - Destructible Doodad Dies摧毁可破坏的物件 摧毁可破坏对象启

级别: 路人

发帖

动事件

Dialog - Dialog Button Click按下对话按钮按下所设定的对话按钮

3315

金钱

195

威望

67

互助

111

Game - Time Of Day游戏时刻藉游戏时刻启动事件

Game - Value Of Real Variable变数Real数值判定判断Real类型变量的数质(大于、小于、

等于)

Game - Hero Abilities Button Clicked按下英雄升级技能按钮按下英雄升级钮启动事件

Game - Build Structure Button Clicked按下建造建筑物按钮按下建造建筑钮启动事件

关注Ta

发消息

Player - Chat Message游戏者聊天讯息侦测聊天讯息含有某字即通过

Player - Cinematic Skipped跳过电影模式电影模式跳过后即通过(按下ESC键)

Player - Selection Event玩家选择单位选择单位以启动事件

Player - Properties玩家的资源资源的变动以启动事件

Player - Alliance Change(Any)玩家改变同盟 改变同盟以启动事件

Player - Alliance Change(Specific)玩家改变指定同盟项目改变指定同盟项目启动事件

28

少年易学老难成,一寸光阴不可轻 - 百度文库

Player - Victory玩家胜利玩家胜利以启动事件

Player - Defeat玩家失败玩家失败以启动事件

Time - Time Elapsed游戏经过时间经过时间以启动事件

Time - Periodic Event游戏循环时间指定几秒中发生一次事件

Time - Timer Expires定时器归零当指定定时器归零时以启动事件

Unit - Specific Unit Event单位动作侦测指定单位做出指定动作即通过

Unit - Player-Owned Unit Event玩家所属单位事件指定游戏者所属单位做出指定动作即通

Unit - Unit Enters Region单位进入地区单位进入地区以启动事件

Unit - Unit Leaves Region单位离开地区单位离开地区以启动事件

Unit - Unit Within Range单位范围之内接触单位范围内启动事件

Unit - Life单位的生命达到指定单位生命启动事件

Unit - Mana单位的法力达到指定单位法力启动事件

Conditions (限制条件)

Boolean Comparison变数Boolean数值判定 判断指定Boolean是否为True/False

Destructible Comparison可破坏对象判断判断两个可破坏对象是否相等/不相等

Destructible-Type Comparison可破坏对象类型判断判断指定可破坏对象是否属于指定类型

Dialog Button Comparison对话按钮判断判断对话按钮是否等于指定变量

Game Difficulty Comparison游戏难度判断判断游戏难度是否等于/不等于指定难度

Game Speed Comparison游戏速度判断 判断游戏速度等于/不等于指定速度

Hero Skill Comparison英雄技能判断判断学习过的技能等于/不等于指定技能

Integer Comparison变量判断判断指定数字等于/不等于指定数字

Item Comparison宝物判断指定宝物等于/不等于指定宝物

Item-Type Comparison宝物种类判断指定宝物等于/不等于指定宝物类型

Order Comparison命令判断判断命令等于/不等于指定类型

Player Comparison游戏者判断判断指定游戏者等于/不等于指定游戏者

Player Color Comparison游戏者颜色判断判断指定游戏者颜色等于/不等于指定颜色

Player Controller Comparison游戏者控制判断判断指定游戏者的控制者等于/不等于指定控

制者

Player Slot Status Comparison游戏者在线状态判断判断指定游戏者在线状态等于/不等于

29

少年易学老难成,一寸光阴不可轻 - 百度文库

指定在线状态(离开游戏、在游戏中、没有控制者)

Race Comparison种族判断判断指定游戏者等于/不等于指定种族

Real Comparison变数Real判断判断指定状况的数字是否能通过指定比较式

String Comparison变数String判断判断指定字符串是否等于/不等于指定String变数

Tech-Type Comparison科技判断判断指定科技是否等于/不等于指定科技

Trigger Comparison触发器判断判断前后两个触发器是否相等/不相等

Unit Comparison单位判断判断两个单位是否相等/不相等

Unit-Type Comparison单位类型判断判断指定单位等于/不等于指定单位类型

And Comparison‘还有’判断式出现两个Condition设定,需要满足两个Condition 条件

Or Comparison“或者”判断式出现两个Condition设定,只要满足其一Condition 条件即可

动作

(其它)其它事件和未明确分类的动作项目。等候动作时间、游戏特别效果、设定变量等..

Do Nothing无所事事测试Event与Condition用

Comment批注分隔线,输入批注

Wait等待时间等待指定秒数

Wait For Sound等待时间(音乐拨放后)(秒)在音乐拨放后才开始数秒,若还没拨或已经拨完,

则无作用

Variable设定变量设定指定变量为指定数值

Skip Remaining Actions略过剩下的动作跳过此Action以下的Action

If/Then/Else如果/然后/否则若”如果”成立则执行then否则执行Else

如果:Condition然后、否则:Action

For Each Integer A,Do ActionInteger A 数值判断循环判断Integer A数值是否符合指定数

字范围

For Each Integer B,Do ActionInteger B 数值判断循环判断Integer B数值是否符合指定数

字范围

Ai - Start Melee Ai Script开启对战AI选取指定计算机游戏者所使用的对战AI

Ai - Start Campaign Ai Script开启单人战役AI选取指定计算机游戏者所使用的单人战役AI

Ai - Send Ai Command送出AI命令对指定计算机游戏者发出AI命令

Ai - Ignore Unit Guard Position忽略单位的警戒点让指定计算机玩家忽略指定单位的警戒

30

少年易学老难成,一寸光阴不可轻 - 百度文库

点,不适用于英雄与工人

Ai - Ignore All Unit Guard Positions忽略所有单位的警戒点让指定计算机玩家忽略所有单

位的警戒点,不适用英雄与工人

(能见度)地图可见区域的相关动作设定

Visibility - Enable Fog Of War 能见度 - 显示战争迷雾 显示战争迷雾

Visibility - Disable Fog Of War 能见度 - 移除战争迷雾 移除战争迷雾

Visibility - Enable Black Mask 能见度 - 显示黑色区域 显示黑色区域

Visibility - Disable Black Mask 能见度 - 移除黑色区域 移除黑色区域

Visibility - Create Visibility Modifier Region 能见度 - 显示地图区域(方形显示) 显示地图

区域(方形显示

Visibility - Create Visibility Modifier Circle 能见度 - 显示地图区域(圆形显示) 显示地图区

域(圆形显示)

Visibility - Enable Visibility Modifier 显示可见区域 显示指定的可见区域

Visibility – Disable Visibility Modifier 不显示指定的可见区域 不显示指定的可见区域

Visibility - Disable Visibility Modifier 能见度 - 移除能见度 移除能见度

Animation - (变化)单位产生不同变化,改变单位小动作,或是实时调整单位的尺寸等等..

Animation - Play Unit Animation 单位变化 - 播放单位动作 拨放指定单位的指定动画

Animation - Play Unit Animation(Specify Rarity) 拨放单位动画(指定动画出现机率) 拨

放指定单位的指定动画,并设定动画出现稀有度(常见、稀有)(会被切断)

Animation - Queue Unit Animation 拨放单位动画(完整) 拨放指定单位的动画(不会被切断)

Animation - Reset Unit Animation 回复成普通动画 让指定单位回复成一般动画设定

Animation - Add/Remove Unit Animation Tag 加入/消除单位动画 加入指定动画给指定单

Animation - Lock Body-Part Facing 锁定单位头部/胸部面向点 指定单位头部/胸部面向某

指定单位

Animation - Reset Body-Part Facing 复原单位面向点 复原指定单位的特定面向动作

Animation - Change Unit Size 改变单位大小(原大小百分比) 由左而右依序为改变单位长

31

少年易学老难成,一寸光阴不可轻 - 百度文库

度/宽度/高度(从单位正面看时)

Animation - Change Unit Vertex Coloring 改变单位着色(百分比) 由左而右依序为改变单

位Red/Green/Blue百分比与透明度单位预设:Red:100% Green:100%

Blue:100%

透明度:0%

Animation - Change Unit Animation Speed 改变单位动画拨放速度(原速度百分比) 改变

该单位的动画拨放速度

Animation - Change Unit Turn Speed 改变单位移动速度 数值范围0.00-1.00

改变指定单位移动的速度

Animation - Change Unit Blend Time 改变单位转向速度 改变指定单位转向速度 Animati

on - Change Unit Flying Height 改变飞行高度与速率 改变指定单位的飞行高度与飞行速

Animation - Play Destructible Doodad Animation 播放可破坏对象动作 拨放指定的可破坏

对象指定动画

Animation - Queue Destructible Doodad Animation 拨放可破坏对象动画(完整) 拨放指

定可破坏对象的指定动画(不会被切断)

Animation - Play Animation For Doodads In Region 拨放可破坏对象动画(指定区域) 拨

放指定可破坏对象种类在指定区域里的指定动画

Animation - Play Animation For Doodads In Circle 拨放可破坏对象动画(指定圆圈内)

拨放指定可破坏对象种类在指定区域(圆形)里的指定动画

Cinematic - (摄影机)(电影)制作以游戏来表现的电影动画,也包括了各种相关画面的动作与

特效滤镜

Camera - Apply Camera Object (Timed) 套用/启动摄影机(设定时间) 移动画面到摄影机

的对准角度(指定完成时间)

Camera - Pan Camera (Timed) 移动摄影机 移动启动的摄影机到指定区域(指定完成时间)

Camera - Pan Camera With Interpolated Height (Timed) 移动摄影机(指定高度) 移动

启动的摄影机到指定区域(可指定高度以避免进入较高的地形中)(指定完成时间)

Camera - Pan Camera As Necessary (Timed) 快速移动摄影机 快速移动启动的摄影机

到指定区域(画面快速跳动)

32

少年易学老难成,一寸光阴不可轻 - 百度文库

Camera - Set Camera Field (Timed) 设定摄影机视点 改变启动摄影机的视点(上下移动、

距离目标距离等)

Camera - Lock Camera Target To Unit 锁定摄影机视野到指定单位 锁定启动摄影机的

视点到某单位(跟着单位移动)

Camera - Lock Camera Orientation To Unit 锁定摄影机视点到指定单位 锁定启动摄影机

的视点到某单位(转动)

Camera - Stop Camera 结束启动中的摄影机 结束启动中的摄影机

Camera - Reset Game Camera 回复启动中的摄影机 回复启动中的摄影机到一般游戏

角度

Camera - Sway Camera Source 摇晃摄影机 摇晃启动中的摄影机之视点位置,指定摇晃

强度及速度

Camera - Sway Camera Target 摇晃摄影机 摇晃启动中的摄影机之所在位置,指定摇晃强

度及速度

Camera - Stop Swaying Camera 停止摇晃摄影机 停止摇晃摄影机

Camera - Extend/Shrink Camera Bounds 加大/缩小摄影机照射范围 加大/缩小启动中的

摄影机之视点范围(东、西、南、北)

Camera - Set Camera Bounds 设定摄影机视点范围 设定启动中摄影机之视点范围(依区

域)

Camera - Set Spacebar-Point 设定跳跃地点 设定启动中摄影机若被游戏者按下「空格键」

该跳到哪个位置

Cinematic - Transmission From Unit 单位电影对话显示 在电影模式下设定电影发言者与

发言内容、音乐、持续时间、等待下个发言与否

Cinematic - Transmission From Unit Type 单位类型电影对话显示 同上,只是指定单位变

成在指定区域里的指定单位类型

Cinematic - Cinematic Mode 开/关电影模式 开/关指定游戏者的电影模式

Cinematic - Fade Filter 淡入/淡出滤镜效果 在电影模式设定淡入/淡出滤镜效果

Cinematic - Advanced Filter 进阶配色设定 设定电影的材质、配色、透明度

Cinematic - Show/Hide Filter 使用/停用设定 使用/停用上两项设定

Cinematic - Ping Minimap 标示小地图标示记号 设定标示在小地图上面的绿色光圈记号

Cinematic - Flash SpeechIndicator For Unit 显示闪动标记(单位) 给指定可破坏对象显示

闪动标记(红,绿,蓝,透明度)

Cinematic - Flash SpeechIndicator For Destructible 显示闪动标记(可破坏物件) 给指定可

33

少年易学老难成,一寸光阴不可轻 - 百度文库

破坏对象显示闪动标记(红,绿,蓝,透明度)

Cinematic - Flash Speech Indicator For Item 显示闪动标记(宝物) 给指定宝物显示闪动

标记(红,绿,蓝,透明度)

Cinematic - Clear Text Messages - 清除游戏讯息 清除显示中的讯息

Cinematic - Letterbox Mode On 启动电影模式(指定淡入时间) 开启电影模式(可指定淡入

时间)

Cinematic - Letterbox Mode Off 关闭电影模式(指定淡出时间) 关闭电影模式(可指定淡出

时间)

Cinematic - Disable User Control 游戏者控制锁定 指定游戏者将无法控制游戏

Cinematic - Enable User Control 允许游戏者控制 指定游戏者将可控制游戏

Cinematic - Enable/Disable Occlusion 开启/关闭透视功能 当视野被阻碍时,选择开启/不开

启透视功能

Countdown Timer -(定时器)游戏中实时的定时器、定时器窗口和其它相关设定

Countdown Timer - Start Timer启动定时器开始指定的变量定时器与倒数时间Countdown

Timer - Pause Timer暂停定时器停止指定的定时器

Countdown Timer - Create Timer Window创造定时器窗口建造定时器窗口并指定标题

Countdown Timer - Destroy Timer Window移除定时器窗口移除指定的定时器窗口

Countdown Timer - Show/Hide Timer Window显示/隐藏 定时器窗口显示/隐藏指定的定

时器窗口

Countdown Timer - Change Timer Window Title改变定时器窗口标题改变指定定时器窗

口标题

Countdown Timer - Change Timer Window Title Color改变定时器窗口标题颜色改变指定

的定时器窗口之标题颜色(红,绿,蓝,透明度)

Countdown Timer - Change Timer Window Time Color改变定时器窗口时间颜色改变指

定的定时器窗口之时间颜色(红,蓝,绿,透明度)

Destructible Doodad -(可破坏物件)可破坏的对象的相关动作设定

Destructible Doodad - Create 创造可破坏对象 在指定的区域建立指定的可破坏对象,并指

定面向角度、大小与差异程度

34

少年易学老难成,一寸光阴不可轻 - 百度文库

Destructible Doodad - Create(Dead) 创造可破坏对象(以被破坏的) 同上,只不过建立的是

已死亡的残骸

Destructible Doodad - Kill 摧毁物件 毁灭指定的可破坏对象

Destructible Doodad - Remove 移除对象 移除指定的可破坏对象

Destructible Doodad - Resurrect 复活物件 复活指定的可破坏对象,指定复活时的HP与是

否显示复活动画

Destructible Doodad - Set Life(To Percentage) 改变对象破坏承受值(百分比) 设定可破坏

对象的HP(最大HP的百分比)

Destructible Doodad - Set Life(To Value) 改变对象破坏承受值(实数) 设定可破坏对象的

HP(实数)

Destructible Doodad - Set Max Life 改变对象最大破坏承受值 设定可破坏对象的最大HP

值(实数)

Destructible Doodad - Open/Close/Destroy Gate 打开/关闭/催毁 门类对象 开启/关闭/毁

灭指定城门

Destructible Doodad - Make Invulnerable/Vulnerable 可破对象 可损毁/不可损毁 设定可

破坏对象为可破坏/不可破坏

Destructible Doodad - Pick Every Destructible Doodad In Region And Do 选取所有可

破坏对象并执行动作(正方形区域) 在指定区域里选取所有可破坏对象并做指定Action

Destructible Doodad - Pick Every Destructible Doodad In 选取所有可破坏对象并执行动

作(圆形区域) 同上,只不过作用区域为圆形

Environment -(地图环境)进行创造或改变天气、设定浓雾等动作设定

Environment - Create Weather Effecct 创造天气 在指定区域创造天气特效

Environment - Enable/Disable Weather Effect 显示/不显示 天气效果 显示/不显示指定的

天气特效

Environment - Remove Weather Effect 移除天气效果 移除指定的天气特效

Environment - Set Sky 设定天空材质 设定天空材质

Environment - Set Fog 设定浓雾 设定雾气(种类,厚度,密度,红,蓝,绿)

Environment - Reset Fog 重设浓雾 恢复预设的无雾状态

Environment - Create/Remove Blight Region 创造/移除 腐地(方形面积) 在指定区域为指

定游戏者创造/移除腐地

35

少年易学老难成,一寸光阴不可轻 - 百度文库

Environment - Create/Remove Blight Circle 创造/移除 腐地(圆形面积) 同上,区域为圆形

Game -(游戏)游戏进行的相关动作设定

Game - Text Message(Auto-Timed) 显示游戏聊天讯息(自动决定时间) 给指定游戏者显示

指定游戏讯息(自动决定时间)

36

Game - Text Message(Explicitly-Timed) 显示游戏聊天讯息(指定显示时间) 给指定游戏者

显示指定游戏讯息(需特别指定显示时间)

Game - Pause Game 暂停游戏 暂停游戏

Game - Unause Game 取消暂停游戏 取消暂停游戏

Game - Set Game Speed 设定游戏速度 设定游戏速度至指定速度

Game - Lock Game Speed 锁定游戏速度 锁定游戏速度使游戏速度无法改变

Game - Unlock Game Speed 解除锁定游戏速度 解除锁定游戏速度使游戏速度可以改变

Game - Set Map Flag 改变游戏设定 解将指定游戏设定开/关

Game - Set Time Of Day 设定游戏时刻 游戏时间为24小时制

Game - Set Time Of Day Speed 设定游戏时刻进行速度 设定游戏内时间经过的速度(原

速度百分比)

Game - Turn Day/Night Cycle On/Off 启动/关闭 日夜循环 设定日夜循环是否开启

Game - Share Vision And Full Unit Control 分享同盟视野和单位控制 指定游戏者将可以

分享视野与控制权给其同盟

Game - Give Units To Neutral Victim 玩家控制权交给中立国 改变指定游戏者的单位所

有权至中立游戏者

Game - Set Next Level 设定下一个进行的地图 设定此地图过关后开启的地图

Game - Victory 游戏获胜 设定指定游戏者胜利,是否开启对话框、是否显示分数

Game - Defeat 游戏失败 设定指定游戏者失败,并输入失败讯息

Game - Set Campaign Screen 设定指定战役 设定此任务为指定单人任务

Game - Enable/Disable Mission 开启/关闭指定任务 开启/关闭单人战役里的任务

Game - Enable/Disable Campapign 开启/关闭战役 开启指定的单人战役

Game - Enable/Disable Cinematic 开启/关闭影片 开启/关闭指定的单人战役影片

Game - Force UI Key 按下指定按键 指定某游戏者按下指定的键

Game - Force UI Cancel 按下取消键 指定某游戏者按下取消键

Game - Preload File 指定读入档案 指定要读入的指定档案

少年易学老难成,一寸光阴不可轻 - 百度文库

Game - Begin Preloading 开始读入档案 在指定秒数后开始读入

Game - Preload Batch 指定读入多个档案 指定要读入多个指定档案

Game Cache - Create Game Cache 建立游戏纪录 建立游戏纪录,指定文件名

Game Cache - Save Game Cache 储存游戏纪录 储存指定的游戏纪录

Game Cache - Store Unit 储存单位至游戏纪录 在指定游戏纪录里以指定名子储存指定单

位在指定卷标里

Game Cache - Store Real 储存Real变量至游戏纪录 在指定游戏纪录里以指定名子储存

Real变量在指定卷标里

Game Cache - Store Integer 储存Integer变量至游戏纪录 在指定游戏纪录里以指定名子

储存Integer变量在指定卷标里

Game Cache - Store Boolean 储存Boolean变量至游戏纪录 在指定游戏纪录里以指定名

子储存Boolean变量在指定卷标里

Game Cache - Restore Unit Facing Angle 加载单位(面向角度) 加载指定卷标里的指定单

位名子,并决定拥有游戏者、面向角度与放置区域

Game Cache - Restore Unit Facing Point 加载单位(面向定点) 同上,只不过面向角度改

为面向定点

Hero -(英雄)英雄的相关动作设定。新增物品、经验等

Hero - Learn Skill 新增技能 让指定英雄学习指定的英雄技能

Hero - Set Level 设定等级 设定指定英雄的等级

Hero - Set Experience 设定经验 设定指定英雄的累积经验值

Hero - Add Experience 新增经验 增加指定英雄的累积经验值

Hero - Enable/Disable Experience Gain 允许/不允许 继续获得经验 允许/不允许指定单位

获得经验值

Hero - Set Experience Rate 设定经验比例 设定指定游戏者拥有的英雄可获得的经验值

比率(原经验值比率百分比)

Hero - Revive(Instantly) 复活 让指定英雄立即在指定地点复活

Hero - Give Item To Hero 给予物品到英雄 将指定宝物给予指定英雄

Hero - Create Item For Hero 创造物品给男主角 为指定英雄建立指定的宝物

Hero - Drop Item From Hero 掉落物品 从指定英雄的身上掉下指定宝物

Hero - Drop Item From Hero Inventory Slot 掉落指定字段物品 从指定英雄的身上掉下指

37

少年易学老难成,一寸光阴不可轻 - 百度文库

定字段的宝物

Hero - Use Item On A Unit 使用物品在单位上 让指定英雄对指定单位使用宝物

Hero - Use Item On A Point 使用物品在上地区 让指定英雄对指定区域使用宝物

Hero - Use Item On A Destructible 使用物品在可破坏物上 让指定英雄对指定可破坏对

象使用宝物

Hero - Use Item 使用物品 让英雄使用不需要指定目标的宝物

Item -(物品)物品相关动作设定

Item - Create 创造物品 在指定区域放置指定宝物

Item - Remove 移除物品 移除指定的宝物

Item - Move(Instantly) 搬移物品(立即) 快速的移动指定宝物至指定区域

Item - Set Life 设定物品破坏承受力 设定指定宝物的生命值

Item - Make Invulnerable/Vulnerable 设定 可破坏/不可破坏 设定指定宝物为可破坏/不可

破坏

Item - Make Undroppable 设定宝物可否掉落 设定指定宝物在被简起后是否可在丢弃

Item - Make Item Drop From Heroes Upon Death 英雄死亡遗留物品 设定指定宝物在拥

有英雄死后是否掉落

Item - Change Owner 改变宝物拥有权 改变指定宝物的拥有权到指定游戏者(改变/不改变

颜色)

Leaderboard - (标示窗口)游戏中的标示窗口,用来来配合任务模式用

Leaderboard - Create 创造标示窗口 建立标示窗口,指定显示游戏者,并取标题

Leaderboard - Destroy 移除标示窗口 移除指定的标示窗口

Leaderboard - Sort 标示窗口内容排列顺序 指定标示窗口内容的排列顺序

Leaderboard - Show/Hide 显示/隐藏标示窗口 显示/隐藏指定的标示窗口

Leaderboard - Change Title 改变标示视标题 改变指定的标示窗口标题

Leaderboard - Change Label Colors 改变标示窗口颜色 改变指定标示窗口里的卷标颜色

(红,绿,蓝,透明度)

Leaderboard - Change Value Colors 改变标示窗口数值颜色 改变指定标示窗口里的数值

颜色(红,绿,蓝,透明度)

38

少年易学老难成,一寸光阴不可轻 - 百度文库

Leaderboard - Change Style 改变标示窗口显示设定 改变指定标示窗口的标题、卷标、数

值、图像的显示与否

Leaderboard - Add Player 新增游戏者到标示窗口 新增指定的游戏者到标示窗口

Leaderboard - Remove Player 从标示窗口移除游戏者 从标示窗口里移除指定的游戏者

Leaderboard - Change Player Label 从标示窗口里改变游戏者的标签 在指定标示窗口里

改变指定游戏者的标签

Leaderboard - Change Player Label Color 从标示窗口里面改变游戏者卷标的颜色 在指

定标示窗口里改变指定游戏者的标签颜色(红,绿,蓝,透明度)

Leaderboard - Change Player Value 从标示窗口里改变游戏者的数值 在指定标示窗口里

改变指定游戏者的数值

Leaderboard - Change Player Value Color 从标示窗口里改变游戏者数值颜色 在指定标

示窗口里改变指定游戏者的数值颜色(红,绿,蓝,透明度)

Leaderboard - Change Player Style 改变游戏者在标示窗口里的显示设定 改变指定游戏

者在标示窗口里的显示设定(显示/隐藏卷标、数值或图像

Melee Game - Neutral Building -(多人游戏)(中立建筑)各种多人地图的动作设定和中立建

筑的设定。

Melee Game - Use Melee Time Of Day 多人游戏 - 设定多人模式的时间循环 设定死斗

模式的时间循环

Melee Game - Hero Limits 多人游戏 - 英雄数量限制 同一位英雄数量限制生产一名

Melee Game - Hero Starting Items 多人游戏 - 英雄起始物品 设定所有游戏者的英雄

初始道具为Scroll of Town Portal(传送卷轴)

Melee Game - Set Starting Resources 多人游戏 - 分配游戏预设资源 设定所有游戏者初

始资源为多人模式预设资源

Melee Game - Remove Excess Units 多人游戏 - 移除起始点中立生物 移除所有已被启

动的游戏者开始点附近的中立怪物、建筑

Melee Game - Create Starting Units 多人游戏 - 创造起始单位 放置所有游戏者的初始单

位于所有游戏者的开始点

Melee Game - Run AI 多人游戏 - 执行人工智能 给所有计算机玩家使用多人模式AI

Melee Game - Victory/Defeat Conditions 多人游戏 - 执行胜利/失败条件 启动多人模式的

胜利/失败条件

39

少年易学老难成,一寸光阴不可轻 - 百度文库

Neutral Building - Add Gold To Gold Mine 中立建筑 - 新增格外黄金数量至地图金矿 增

加指定数量黄金到指定金矿(负数为减少)

Neutral Building - Set Resources Of Gold Mine 中立建筑 - 改变金矿黄金数量 设定指

定金矿的黄金总量

Neutral Building - Haunt Gold Mine(Instantly) 中立建筑 - 改变矿区为闹鬼金矿 将指定金

矿变成指定游戏者的不死族专用金矿

Neutral Building - Enable/Disable Way Gate 中立建筑 - 生效/不生效 传送门功能 允许/

不允许指定传送门的使用

Neutral Building - Set Way Gate Destination 中立建筑 - 设定传送门目的地 设定指定传

送门到指定地点

Player - Player Group - (游戏者)(游戏者群)设定调整资源、同盟状况等动作

Player - Set Property 设定资源 改变游戏者的数值(资源等)

Player - Add Property 新增资源 增加黄金等的指定游戏者数值(负数为减少) Player - Tur

n Player Flag On/Off 改变游戏者的设定 改变指定游戏者的游戏者设定

Player - Set Alliance 设定玩家对立状态 设定敌我状态(同盟、敌对、中立)

Player - Set Aspect Of Alliance 更改同盟状况 改变指定游戏者对指定游戏者之间的同盟

设定

Player - Enable/Disable Ability 显示/隐藏技能显示 显示/隐藏指定游戏者的指定技能显示

Player - Set Training/Construction Availability Of Unit 设定玩家允许/不允许生产单位 设

定是否限制指定游戏者的指定单位(建筑)类型

Player - Set Current Research Level 设定研究项目等级 设定指定游戏者的指定科技目前

研发了几个等级

Player - Set Max Research Level 设定最大研究项目等级 设定游戏者的指定科技最高可

研发几个等级

Player - Change Color 改变颜色 改变指定游戏者的颜色,以及是否更改现有单位的颜色

Player - Set Handicap 整体单位生命值(百分比) 加强指定游戏者原生命的百分比

Player - Show/Hide In Score Screen 显示/隐藏 得分画面 在得分表中显示/隐藏指定游戏

Player Group - Pick Every Player In Player Group And Do Action 游戏者群 - 设定整

体动作 选取指定游戏者群内的所有游戏者并执行Action

40

少年易学老难成,一寸光阴不可轻 - 百度文库

Player Group - Add Player 游戏者群 -新增游戏者 加入指定游戏者到指定游戏者群变量中

Player Group - Remove Player 游戏者群 -移除游戏者 从指定游戏者群变量中移除游戏者

Player Group - Clear 游戏者群 -清除游戏者群变量 清除指定的游戏者群变量

Quest - (任务目标)制作单人任务的任务对话框的设定

Quest - Quest Message 任务目标讯息 给指定游戏者显示任务讯息

Quest - Create Quest 创造任务目标 建立一个任务目标,设定标题、内容、类型与使用Ic

on图像

Quest - Destroy Quest 移除任务目标 消除指定的任务目标

Quest - Enable/Disable Quest 显示/不显示 任务目标 显示/隐藏指定的任务

Quest - Mark Quest As Completed 标记任务目标完成 标记指定的任务为完成/未完成

Quest - Mark Quest As Failed 标记任务目标失败 标记指定的任务为失败/未失败

Quest - Mark Quest As Discovered 显示标记任务目标 标记指定的任务为已启动/未启动

Quest - Change Quest Title 改变任务目标标题 改变指定任务的标题

Quest - Change Quest Description 改变任务目标描述 改变指定任务的内容文字Quest -

Change Quest Requirement Description 改变主要任务目标描述 在指定任务上建立一个首

要任务,并指定内容文字

Quest - Create Defeat Condition 创造任务失败描述 建立一个失败条件,并指定内容文字

Quest - Destroy Defeat Condition 移除任务失败描述 清除指定的失败条件

Quest - Change Defeat Condition 改变任务失败描述 建立一个失败条件,并指定内容文字

Quest - Flash Quest Dialog Button 闪动任务按钮 闪动任务按钮

Selection - (框选)相关框选动作的设定

Selection - Clear 框选 - 清除 取消选取所有单位

Selection - Select Unit Group 框选 - 框选单位群 取消选取所有单位并选取指定的单位群

Selection - Select Unit 框选 -框选单位 取消选取所有单位并选取指定的单位

41

少年易学老难成,一寸光阴不可轻 - 百度文库

Selection - Add Unit 框选 - 新增框选单位 从已选取的单位里新增指定单位Selection - R

emove Unit 框选 - 移除框选单位 从已选取的单位里移除指定单位

Sound - (声音)地图中所有声音方面相关的动作设定

Sound - Play Sound 播放音效 拨放指定的音效

Sound - Stop Sound 停止音效 以立刻/声音渐小的方式停止指定音效

Sound - Destroy Sound 移除音效 直接移除指定音效;若该音效正在拨放则在结束后移除

Sound - Set Sound Volume 改变音效音量 设定指定音效音量(100%-0%)

Sound - Set Sound Cutoff Distance 声音自动开关距离 设定指定音效自动开关的距离

Sound - Set Sound Pitch 设定声音高低 设定指定音效的高低

Sound - Attach 3D Sound To Unit 附上3D音效于单位 将指定3D音效附于指定单位

Sound - Set 3D Sound Position 调整3D音效于地区 指定3D音效附于指定地点

Sound - Set 3D Sound Distances 调整3D音效于距离 指定3D音效附于指定距离

Sound - Add/Remove 3D Sound Across Region 新增/移除 3D音效于地区 新增/移除指

定3D音效于区域

Sound - Use Daytime Ambient Theme 使用白天地形主题背景音效 使用指定地图风格在

白天的背景音效

Sound - Use Nighttime Ambient Theme 使用夜晚地形主题背景音效 使用指定地图风格

在黑夜的背景音效

Sound - Enable/Disable Dawn And Dusk Sounds 开启/关闭 黎明和夜晚时刻音效 允许/

不允许黄昏与背景的音效

Sound - Set Music List (Using A Specific Initial Song) 设定音乐清单(指定拨放特定音

乐) 设定音乐清单,特别指定在其它音乐结束后会自动拨放的音乐

Sound - Set Music List (Using A Random Initial Song) 设定音乐清单(随机拨放音乐) 设

定音乐清单,随机选定在其它音乐结束后会自动拨放的音乐

Sound - Clear Music List 清除音乐清单 清除后,拨放中的音乐结束后将不会在拨放音乐

Sound - Play Music 播放音乐 拨放指定的音乐

Sound - Play Music Theme 拨放特定的音乐 拨放特定的音乐

Sound - Stop Music Theme 停止拨放特定音乐 停止拨放特定音乐

Sound - Stop Music 停止音乐 停止拨放指定音乐

Sound - Resume Music 回复暂停的音乐 回复之前暂停的音乐

42

少年易学老难成,一寸光阴不可轻 - 百度文库

Sound - Set Music Volume 调整音乐音量 设定拨放音乐的音量

Sound - Set Volume Channel 设定音乐音量(指定音乐) 设定指定音乐的音量

Sound - Set All Volume Channels For Cinematics 设定相同音量大小(拨放电影时) 设定

在拨放电影时都用相同音量的音乐

Sound - Set All Volume Channels For Speech 设定相同音量大小(电影对话显示时) 设

定在电影对话显示时都用相同音量的音乐

Sound - Reset All Volume Channels 回复所有音乐音量 回复所有音乐音量到预设

Trigger - (触发器)触发器动作设定

Trigger - Turn Off 关闭执行后触发器 关闭指定的触发器;现行的触发Action结束后将不会

再触发

Trigger - Turn On 启动触发器 开启被关闭的触发器,使其重新启用

Trigger - Run(Checking Conditions) 执行触发器(执行先决条件) 执行指定的触发器,并跳

过Events只检查Condition

Trigger - Run(Ignoring Conditions) 执行触发器(略过先决条件) 直接执行指定触发器的Acti

ons,跳过Events与Conditions

Trigger - Add To Trigger Queue 增加触发器到循环触发器清单 增加指定触发器到循环触

发器

Trigger - Remove From Trigger Queue 从循环触发器清单移除触发器 从循环触发器清单

里移除指定触发器

Trigger - Clear Trigger Queue 清除循环触发器清单 清除循环触发器清单

Trigger - Clear Trigger Queue Of Pending Triggers 清除循环触发器清单(未执行的触发)

清除循环触发器清单,正在执行中的触发器将不会被移除

Unit - Unit Group - (单位单位群)单位各种相关动作的设定。命令攻击、移动、创造、属性

改变等许多动作设定

Unit - Create Unit Facing Angle 创造单位与面向角度 建立指定数量的单位,设定该单位的

面向角度

Unit - Create Unit Facing Point 创造单位与面向单位 建立指定数量的单位,并设定该单位

面向的定点

Unit - Create Corpse 创造单位尸体 建立指定单位的尸体,指定建立位置与所属游戏者

43

少年易学老难成,一寸光阴不可轻 - 百度文库

Unit - Kill 杀死单位 杀死指定的单位

Unit - Remove 移除单位 直接移除单位不留下尸体,英雄将无法复活

Unit - Explode 身体碎开 将指定的单位以身体爆开的方式死亡

Unit - Replace 重设单位 重设单位的种类,许多变量存取的单位在此Action后必须重设

Unit - Hide 隐藏 隐藏指定的单位

Unit - Unhide 解除隐藏 解除隐藏指定的单位

44

Unit – Change Color 改变单位颜色 改变单位颜色,但不改变所属游戏者

Unit - Change Owner 改变所属玩家 改变指定单位的所属游戏者

Unit - Shared Vision 分享视野 允许/不允许指定游戏者分享指定单位的视野

Unit - Move Unit(Instantly) 搬移单位(立即) 让指定单位立刻移到指定区域

Unit - Move Unit And Face Angle(Instantly) 搬移单位与面向角度 让指定单位立刻移到指

定区域,并指定面向角度

Unit - Move Unit And Face Point(Instantly) 搬移单位与面向单位 让指定单位立刻移到指

定区域,并指定面向定点

Unit - Set Life(To Percentage) 调整生命值(百分比) 设定单位的现有生命,以最大生命的百

分比设定

Unit - Set Mana(To Percentage) 调整法力(百分比) 设定单位的现有法力,以最大生命的百

分比设定

Unit - Set Life(To Value) 调整生命值(实数) 设定单位的现有生命,以数字设定

Unit - Set Mana(To Value) 调整法力(实数) 设定单位的现有法力,以实际数设定

Unit - Make Invulnerable/Vulnerable 设定单位 不可攻击/可攻击 设定指定单位为可破坏/

无法破坏状态

Unit - Pause/Unpause 暂停/解除 暂停/解除暂停指定单位(单位将停止行动,但会记得当时

的命令)

Unit - Pause/Unpause All Unit 暂停/解除 所有单位 暂停/解除暂停所有单位

Unit - Make Unit Explode On Death 设定单位死亡方式 设定指定单位在死亡时是正常死

亡或爆开

Unit - SuspendCorpseDecay 暂停持续尸体腐烂 让指定单位的暂停持续尸体腐烂

Unit - Make Unit Sleep 设定单位睡眠 设定单位是否在未被攻击时睡眠,仅适用于中立怪物

Unit - Make Unit Sleep At Night 设定单位夜间睡眠 设定单位是否在晚上、并且未被攻击

时睡眠,仅适用于中立怪物

少年易学老难成,一寸光阴不可轻 - 百度文库

Unit - Wake Up 单位醒来 让指定单位在晚上睡觉时醒来,无法作用于魔法催眠

Unit - Rescue Unit 夺取单位 让指定单位所属于指定游戏者

Unit - Make Rescuable 单位为可捕获/不可捕获 设定指定单位可以为指定游戏者所捕获/不

可捕获

Unit - Set Rescue 单位被捕获距离 设定指定单位可被捕获的距离

Unit - Set Rescue Behavior For Units 单位被捕获时颜色变化 设定单位被捕获时颜色的

45

变化(改变颜色或保留原色)

Unit - Set Rescue For Buildings 建筑被捕获时颜色变化 同上,只不过是设定建筑

Unit - Make Unit Face Unit 单位转向于单位 让指定单位面对指定单位

Unit - Make Unit Face Point 单位转向于地区 让指定单位面对指定定点

Unit - Make Unit Face Angle 单位转向于角度 让指定单位面对指定角度

Unit - Set Movement Speed 调整移动速度 设定指定单位的移动速度

Unit - Turn Collision On/Off 设定可否重迭 设定指定单位可否和其它单位重迭

Unit - Set Acquisition Range 单位攻击范围 设定指定单位的攻击范围

Unit - Remove Ability 移除技能 从指定的单位中移除技能

Unit - Issue Order Targeting A Unit 命令单位(对单位) 让指定单位执行目标是单位的命令

(攻击、修理等)

Unit - Issue Order Targeting A Point 命令单位(对区域) 让指定单位执行目标是区域的命

令(移动、设定集合点等)

Unit - Issue Order Targeting A Destructible 命令单位(对可破坏物件) 让指定单位执行目

标是可破坏对象的命令(开采、攻击等)

Unit - Issue Order With No Target 命令单位(无目标) 让指定单位执行无目标的命令(停

止、坚守位置等)

Unit - Issue Train/Upgrade Order 命令单位(升级) 让指定单位执行升级的命令

Unit - Issue Research Order 命令建筑研发科技 让指定单位执行研发的命令

Unit - Issue Build Order 命令单位造盖建筑 让指定单位执行建造的命令

Unit Group - Pick Every Unit In Unit Group And Do Action 单位群执行Action 选取指

定单位群内的单位并执行Action

Unit Group - Add Unit 新增单位到单位群 新增指定单位到指定单位群

Unit Group - Add Unit Group 新增单位群到单位群 新增指定单位群到指定单位群

Unit Group - Remove Unit 从单位群里移除单位 从单位群里移除单位

Unit Group - Remove Unit Group 从单位群里移除单位群 从指定单位群里移除指定单位

少年易学老难成,一寸光阴不可轻 - 百度文库

Unit Group - Clear 清除单位群 清空单位群里的所有单位

Unit Group - Issue Order Targeting A Unit 命令单位群(对单位) 让指定单位群执行目标

是单位的命令(攻击、修理等)

Unit Group - Issue Order Targeting A Point 命令单位群(对区域) 让指定单位群执行目标

是区域的命令(移动、设定集合点等)

Unit Group - Issue Order Targeting A Destructible 命令单位群(对可破坏物件) 让指定单

位群执行目标是可破坏对象的命令(开采、攻击等)

Unit Group - Issue Order With No Target 命令单位群(无目标) 让指定单位群执行无目标

的命令(停止、坚守位置等)

Unit Group - Issue Train Order 命令单位群(升级) 让指定单位群执行升级的命令

[ 此帖被希瓦在2010-02-26 18:50重新编辑 ]

GA版 遗失的记忆

回复 引用

举报顶端

希瓦

只看该作者 9楼 发表于: 2010-02-26

記憶體漏失

By Danny 一、什麼是記憶體漏失 很多國外的W

Eer常常把談Memory Leak(記憶體漏失)掛在嘴邊,這是指有些創造出來的物件,已經不會再

被用到了,卻沒有被刪掉,因而佔用記憶體空間的情形。 例如:Unit - Create 1 Footma

n for Player 1 (Red) at (Center of (Playable map area)) facing Default building facing

degrees 其中(Center of (Playable map area))就是一個點。可以想成,我要電腦在操

级别: 路人

发帖

場中間產生一個武士,但是電腦不懂什麼叫做地圖中間。所以我到操場中間插一個旗子(也就

是一個Point),之後我就命令電腦在那個旗子的位置產生一個武士。好了,現在武士產生了,

3315

金钱

195

威望

67

互助

111

那麼旗子呢?因為我沒有刪掉它,所以它會一直留在記憶體中。一兩個不打緊,但是如果這一

類的動作很多,記憶體裡堆了數十萬個沒有用的東西,跑起來效率自然大打折扣。 同樣的

情形也發生在其它的物件中。對了,什麼是「物件」?籠統地說,只要是遊戲中一個具體的東

東就是物件,除了布林(boolean)、整數(integer)、字串(string)、實數(real)、程式碼(code)不

是以外,其它類型的變數皆屬之 。有些物件像單位、物品是可以看得到的;而有些像計時器、

关注Ta

发消息

點、單位群組,卻是看不見的。有些物件通常並不會大量產生,而且很多都是可重覆利用的,

因此並不需要太注意它 們的刪除。 當你執行了一些函數,就會產生物件,例如點或單位群

46

少年易学老难成,一寸光阴不可轻 - 百度文库

組的函數,只要呼叫一次就創造一個點(單位群組)。 最常見堆積記憶體的動作如: U

nit - Create 1 Footman for Player 1 (Red) at (Center of (Playable map area)) facing

Default building facing degrees 建立了一個點 Unit Group - Pick every unit in (Unit

s owned by Player 7 (Green) of type Barracks) and do (Unit - Create 1 Footman for

Player 7 (Green) at (Position of (Picked unit)) facing Default building facing degrees)

建立了一個單位群組及一個點 Unit Group - Pick every unit in (Last created unit gr

oup) and do (Unit - Order (Picked unit) to Attack-Move To (Center of Region 000 ))

建立了一個單位群組及一個點 Special Effect - Create a special effect at (Target poi

nt of issued order) using

建立了一個點和一個特效 其中紅色和粗字的部分就是建立而沒有被刪除的物件。 二、

記憶體漏失的解決方法(實用篇) 記憶體漏失不是太複雜的一件事,但是概念並不是很容易

理解。而且此問題從小到大都有,如果你真的要解決所有的記憶體漏失,那麼你會寸步難行,

一行簡單的觸發都必須被寫得複雜百倍。因此這裡先提供最實用的幾個技巧,基本上能掌握住

這個部分,你的地圖已經沒什麼大問題了。 重覆利用既有的物件 假設你要製作一張類

似DotA或三國無雙的地圖,像這一類的攻擊觸發應該是免不了的: Unit Attack 1

Events Unit - A unit enters HumanBase1 Conditions Actions Unit -

Order (Entering unit) to Attack-Move To (Center of DemonBase1 ) 但是,每當有一

個單位進入了HumanBase1,就要產生一個點(Center of DemonBase1 ),是不是太多餘了?

反正點都是同樣的位置,何不重覆利用呢? 所以為了環保起見,我們可以改寫成這樣:

Map Init Events Map initialization Conditions Actions Set De

monBase[1] = (Center of DemonBase1 ) Set DemonBase[2] = (Center of Demo

nBase2 ) Set DemonBase[3] = (Center of DemonBase3 ) Unit Attack 1 E

vents Unit - A unit enters HumanBase1 Conditions Actions Unit -

Order (Entering unit) to Attack-Move To DemonBase[1] 也就是預先把可以多次利用

的物件用變數記錄下來,然後直接套用以減少新物件的產生。 刪除使用過且不再需要的新

建物件 首先介紹刪除的方法,有一些要用到JASS: trigger (Trigger)--Custom scri

pt: call DestroyTrigger(xxx) location (Point)--Custom script: call RemoveLocation(xx

x) group (Unit Group)--Custom script: call DestroyGroup(xxx) ※注意Clear Group

是清除單位群組中的單位資料,而不是把整個單位群組刪除 force (Player Group)--Cus

tom script: call DestroyForce(xxx) ※注意ForceClear是清除 玩者群組中的玩者資料,而

不是把整個玩者群組刪除 Unit--死亡的單位於屍體消失之際,系統會自動移除。所以不

用特別去管它。像隱藏施法單位這種用後不理的,要刪的話可以用GUI的Unit - Remove、

47

少年易学老难成,一寸光阴不可轻 - 百度文库

Unit - Kill、Unit - Add Expiration Timer,甚至把生命回復設成負值讓它自動死亡都可以

Item--被用掉的物品,系統會自動移除。所以不用特別去管它。真的要刪的話用GUI的Ite

m - Remove即可 lightning (Lightning)--用GUI的Lightning - Destroy Lightning Effe

ct effect (Special Effect)--用GUI的Special Effect - Destroy texttag (Floating Tex

t)--用GUI的Floating Text - Destroy、Floating Text - Change Lifespan皆可。前者是

直接刪除;後者是設定它的壽命,時間一到會自動被刪除 image、ubersplat、quest、……

--同樣用GUI就能刪掉,廢話不多話了 刪除特效-- 創造特效後要移除,只要你沒刪

掉,即使它只出來一下就會消失,看起來好像沒了,但是實際上它還是存在,會佔用記憶體的

空間。 而建立在單位身上的特效,在單位死亡屍體腐爛後,特效就看不到了,但是和前面

一樣,只要你沒用觸發刪掉它,它還是會佔用記憶體。 刪除的方法就是用Special Effect -

Destroy (Last created special effect)。 創造出特效後立刻移除它,特效還是會播放至少

一次,所以對於只播一次的特效,順手刪掉它吧。 例如: Special Effect - Create a

special effect attached to the overhead of (Triggering unit) using AbilitiesSpellsOthe

Special Effect - Destroy (Last created special effect) 如

果你要讓它持續播放一段時間,可以先利用變數存起來,時間到再刪掉。 刪除觸發--把

執行一次就用不到的觸發刪除(關掉(Turn Off)可讓它不再執行,但是仍會佔用空間。刪除比較

一勞永逸)。 方法是在動作的最前面加上Custom script: call DestroyTrigger(GetTriggerin

gTrigger())。例如: Melee Initialization Events Map initialization Cond

itions Actions Custom script: call DestroyTrigger(GetTriggeringTrigger())

Melee Game - Use melee time of day (for all players) Player - Set Player

1 (Red) Current gold to 100000000 Player - Set Player 1 (Red) Current lumber

to 100000000 刪除點-- 點是最容易產生的垃圾物件,所以特別要注意怎麼刪除臨

時建立的點。除了如之前所述,可以先用變數記錄常用的點以外,還有一個簡單的方法可以清

除這些垃圾。之前的範例我們也可以改用這個方法: Unit Attack 1 Events U

nit - A unit enters HumanBase1 Conditions Actions Set P1 = (Center of

DemonBase1 ) Unit - Order (Entering unit) to Attack-Move To P1 Custo

m script: call RemoveLocation(udg_P1) 簡單的說,就是先用變數記錄打算要用到的

點,對它進行操作,然後刪掉它。 特別注意第三行,由於b社會把所有觸發編輯器裡定義

的變數加上字首udg_,所以這裡要填入udg_P1,而不是P1。 另外像這樣的寫法常常有

人會疏忽: Unit - Move (Triggering unit) instantly to ((Position of (Triggering unit))

offset by 500.00 towards (Facing of (Triggering unit)) degrees) 實際上這一行接連

產生了兩個點,而不是一個。 首先Position of (Triggering unit)就像是在單位的位置插一

48

少年易学老难成,一寸光阴不可轻 - 百度文库

支旗子,回傳之。 後一步的((Position of (Triggering unit)) offset by 500.00 towards (F

acing of (Triggering unit)) degrees)就是在那個旗子位移後的位置再插一支旗子,回傳之。

所以想把點刪乾淨就得像這樣寫: Set P1 = (Position of (Triggering unit)) Set P

2 = (P1 offset by 500.00 towards (Facing of (Triggering unit)) degrees) Unit - Move

(Triggering unit) instantly to P2 Custom script: call RemoveLocation(udg_P1) Cust

om script: call RemoveLocation(udg_P2) 使用這個方法,一個地圖裡只需要一、兩個

像P1、P2這樣的臨時變數就夠了,不必動用大量的變數及陣列。 刪除單位群組-- 對

於單位群組的移除,最簡單的方法是用Custom script: set bj_wantDestroyGroup = true。

當Blizzard.j裏的Unit Group相關函數執行時會檢查bj_wantDestroyGroup, 再決定是否

移除傳入的Unit Group。 例如: Custom script: set bj_wantDestroyGroup = true

Unit Group - Pick every unit in (Units owned by Player 1 (Red)) and do (Unit - Kill

(Picked unit)) 執行到Pick Every Unit 動作時,電腦會檢查bj_wantDestroy

Group這個變數是否為真,如果為真,就會在進行完動作後,把傳入的group(此例中就是(U

nits owned by Player 1 (Red)))刪除掉,並且自動把變數bj_wantDestroyGroup設為假。

但請注意,使用自訂變數的Group千萬不要亂刪,除非你曉得自己在做什麼。例如: Un

it Group - Pick every unit in ToTGroup and do (Actions) Loop - Actions Uni

t - Remove (Picked unit) from the game 前面千萬不要加set bj_wantDestroyGroup =

true ,否則那個變數會被砍掉,以後再也不能用來儲存單位。 還有Units Of Type使用

此用法會有bug,所以也不要對它這樣用。 如果你不能放心地使用這個指令,也可以參照

刪除點的作法。不過同樣要記得加上udg_: Set TempGroup = (Units owned by Player

1 (Red)) Unit Group - Pick every unit in TempGroup and do (Unit - Kill (Picked uni

t)) Custom script: call DestroyGroup(udg_TempGroup) 不要產生物件 要建立單

位於一特定地點,在觸發中是Create Units Facing Angle、Create Units Facing Point,對

應的JASS函數則是CreateNUnitsAtLoc、CreateNUnitsAtLocFacingLocBJ。但是在JASS

中還有像這樣的函數可用: native CreateUnit takes player id, integer unitid, real x, re

al y, real face returns unit 也就是說,你可以給座標,而不用創造點。 例如:Unit - C

reate 1 Footman for Player 1 (Red) at (Position Of Triggering Unit) facing Default bui

lding facing degrees 用JASS可以改寫成:call CreateUnit( Player(0), 'hfoo', GetUnitX

(GetTriggerUnit()), GetUnitY(GetTriggerUnit), bj_UNIT_FACING ) 如果你要寫一整段的J

ASS,可以考慮用座標來傳送,就可以避免創造不必要的點。 三、記憶體漏失的解決方

法(進階篇) 首先先聲明,以下是寫給功力高深,動輒落JASS、耍Custom Script、玩區

域變數、搞return bug、……的屌人看的。如果你都沒用到,甚至連前面寫的那幾個名詞都

49

少年易学老难成,一寸光阴不可轻 - 百度文库

不懂,那麼這不是你該來的地方,乖乖回去玩你的GUI Trigger吧! 明辨是非篇 有些

強者看了這篇教學以後,回去就開始厲行清掃工作,見point砍point、見group殺group……。

像這種: Player Group - Pick every player in (All allies of Player 1 (Red)) and do (Pl

ayer - Add 1000 to (Picked player) Current gold) 他們自然知道要優化成: Set Temp

Force = (All allies of Player 1 (Red)) Player Group - Pick every player in TempFor

ce and do (Player - Add 1000 to (Picked player) Current gold) Custom script: call

DestroyForce(udg_TempForce) 啥?你不知道?那你顯然是只懂第二篇的GUI Trigger

player,早說過你不該來這裡了,趕快回去玩GUI吧-o-" 結果你還是看了……好吧,既然要

看就把它看完,不准臨陣脫逃,嘿嘿! 依此類推: Set TempForce = (All players) Pl

ayer Group - Pick every player in TempForce and do (Player - Add 500 to (Picked p

layer) Current gold) Custom script: call DestroyForce(udg_TempForce) 寫完以後就

會發現--一切都變得不對勁了!! 為什麼勒?拜託,見鬼殺鬼、見妖斬妖、見魔屠魔,

可不要見神也砍神、見佛照滅佛啊XD 傳回物件的函數,大致上可分成兩種。一種是先建

立一個物件再傳回;另一種是傳回已知物件的記憶體位址。 像All allies of Player 1 (Red)

函數是GetPlayersAllies,我們可在blizzard.j中找到它: function GetPlayersAllies takes

player whichPlayer returns force local force f = CreateForce() call ForceEnum

Allies(f, whichPlayer, null) return f endfunction 由此可知它先建立了一個force,

把傳入的玩者的同盟加入,再傳回。所以這個函數實際上產生了一個玩者群組,所以該不該殺?

當然該殺! 而All players呢?它的函數是GetPlayersAll,我們也可以在blizzard.j中找

到它: function GetPlayersAll takes nothing returns force return bj_FORCE_ALL_P

LAYERS endfunction 嘎?怎麼是變數?我們再繼續找,費盡千辛萬苦,終於在InitBliz

zardGlobals下找到這兩行: function InitBlizzardGlobals takes nothing returns nothing

set bj_FORCE_ALL_PLAYERS = CreateForce() call ForceEnumPlayers(bj_FORC

E_ALL_PLAYERS, null) endfunction 這樣了解了嗎?其實B社在地圖初始化之時,就

先創造了一個叫bj_FORCE_ALL_PLAYERS的玩者群組,並且把所有的玩者加入。所以我們

在地圖中無論呼叫GetPlayersAll幾遍,它都只是傳回同樣一個玩者群組,而不是先創一個玩

者群組再傳回。所以當然不能亂殺,不然以後就抓不到了。 啥?你問我要怎麼寫?啊就不

殺啊,事實上這樣寫就沒錯了,很輕鬆愉快,是不是? Player Group - Pick every player i

n (All players) and do (Player - Add 500 to (Picked player) Current gold) 同樣的,

像Playable Map Area、Entire Map也是在初始化就建好等著被人隨便亂叫的變數函數,以

後看到可別亂砍。 而像Triggering Unit、Sold Item、……這種一看就知道是傳回一個已存

在的單位(物品),而不是先創一個再傳回。該怎麼處理不用多說了吧? 所以以後殺人前要

50

少年易学老难成,一寸光阴不可轻 - 百度文库

先睜大眼睛,親朋好友不殺、朝廷命官不殺、皇帝寵妃不殺、……咳,扯遠了,總之,不確定

的話就先查一下blizzard.j和common.j吧。 本手冊的觸發器中英對照表中已將會造成記

憶體問題的函數以紅底標示,以區域為例,Initial Camera Bounds沒標示,表示它只是傳回

一個已存在的物件;Region With Offset有標紅底,表示它會先建立一個區域再傳回,這種

最好在用完後就把它刪掉。祝屠殺愉快! 要殺乾淨篇 大家長大後大概多少會寫到像這樣

的東西,以下是一個技能觸發的片段: Code1: function Ampify_Damage_child takes not

hing returns nothing call SetUnitLifeBJ( GetTriggerUnit(), RMaxBJ(( GetUnitStateSwa

p(UNIT_STATE_LIFE, GetTriggerUnit()) - GetEventDamage() ), 0.50) ) endfunction

function Trig_Ampify_Damage_Actions takes nothing returns nothing local trigger tr

g = CreateTrigger() call TriggerRegisterUnitEvent( trg, GetSpellTargetUnit(), EVENT_

UNIT_DAMAGED ) call TriggerAddAction(trg, function Ampify_Damage_child) call P

olledWait(45.0) call DestroyTrigger(trg) endfunction 好啦,我承認範例很爛,JASS

的範例很難找咩,不要強人所難了XD 回歸正題,以上的程式碼是否有記憶體漏失的問

題? 嗯,乍看之下沒有,實際上是有……。基本上它還漏了一個triggeraction。這樣寫才不

會有這個問題: Code2: function Ampify_Damage_child takes nothing returns nothin

g call SetUnitLifeBJ( GetTriggerUnit(), RMaxBJ(( GetUnitStateSwap(UNIT_STATE_LIF

E, GetTriggerUnit()) - GetEventDamage() ), 0.50) ) endfunction function Trig_Amp

ify_Damage_Actions takes nothing returns nothing local trigger T = CreateTrigger()

local triggeraction A = TriggerAddAction(trg, function Ampify_Damage_child) call Tri

ggerRegisterUnitEvent( T, GetSpellTargetUnit(), EVENT_UNIT_DAMAGED ) call Polle

dWait(45.0) call TriggerRemoveAction(T,A) call DestroyTrigger(T) endfunction

所以如果你常常寫那種創臨時觸發來用的JASS,要記得連Action也一起刪除喔。 commo

n.j中還有一個TriggerClearActions函數,它是把觸發中的動作清空,但是不會真的把動作刪

掉。 我們可以想成,CreateTrigger建立一個觸發傳回;TriggerAddAction建立一個觸發動

作,把它連結到該觸發,再傳回觸發動作。 TriggerRemoveAction把觸發動作和它與觸發

的連結關係刪除;TriggerClearActions是把觸發中與所有觸發動作的連結切斷,但是沒有把

那些觸發動作刪除。 等等,……action會造成記憶體漏失,那麼類似的event和conditio

n呢? 每一個event都會佔不小的空間並造成leak。不過它就像是附著在trigger中的一部

分,所以只要刪trigger,event就會一併消失。 然而,如果一個觸發擺了上百個那也

是很佔資源的(trigger佔用量大約為event的1.5倍)。 順帶一提,在觸發中註冊事件是

蠻耗資源的事,跑這一類的函數比跑大多數其它的函數慢得多。 而condition嘛……一般我

們在創臨時觸發的時候都不寫condition,把條件直接加在action裡,所以這個問題幾乎不用

51

少年易学老难成,一寸光阴不可轻 - 百度文库

考慮。 事實上和triggercondition相較之下,boolexpr反而比較有可能造成問題。我們通

常在建立condition時都是這種格式: Code3: function Trig_Test_Conditions takes nothi

ng returns boolean if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) == tru

e ) ) then return false endif return true endfunction function Trig_Test_Actio

ns takes nothing returns nothing endfunction //============================

=============================================== function InitTrig_Test tak

es nothing returns nothing set gg_trg_Test = CreateTrigger( ) call TriggerAddCondi

tion( gg_trg_Test, Condition( function Trig_Test_Conditions ) ) call TriggerAddAction

( gg_trg_Test, function Trig_Test_Actions ) endfunction Condition( function Trig_T

est_Conditions )本身就先製造出一個conditionfunc,而TriggerAddCondition又製造一個tri

ggercondition。那麼真要刪的話,一定刪到頭昏眼花。所幸筆者測試conditionfunc和trigger

condition的記憶體漏失情形,結果是無法觀測(可能沒有,可能有但是太小)。所以這部分

可以放心。 變數清空篇 我們再來問:上面連triggeraction都刪的龜毛函數(code2)還

有沒有記憶體問題。答案是:有。 我勒!@#$()*&@$%&^!@%#!%#@!&^#@,到底要怎麼

改才對?要這樣: function Ampify_Damage_child takes nothing returns nothing c

all SetUnitLifeBJ( GetTriggerUnit(), RMaxBJ(( GetUnitStateSwap(UNIT_STATE_LIFE, G

etTriggerUnit()) - GetEventDamage() ), 0.50) ) endfunction function Trig_Ampify_D

amage_Actions takes nothing returns nothing local trigger T = CreateTrigger() local

triggeraction A = TriggerAddAction(trg, function Ampify_Damage_child) call TriggerR

egisterUnitEvent( T, GetSpellTargetUnit(), EVENT_UNIT_DAMAGED ) call PolledWait

(45.0) call TriggerRemoveAction(T,A) call DestroyTrigger(T) set T = null set A

= null endfunction 這個步驟稱為變數清空(nullifying)。之所以連這個都要做,是由於B

社的程式師偷懶,留下區域變數的bug。 詳細原因後面會說明。只有區域變數會造成這個

問題,全域變數不會。例如: function MyFunc takes nothing returns nothing local

trigger T = CreateTrigger() call DestroyTrigger(T) set T = null endfunction 和

function MyFunc takes nothing returns nothing set udg_T = CreateTrigger() cal

l DestroyTrigger(udg_T) endfunction 兩者同樣都不會造成記憶體問題。 此外,這個

問題只發生在物件變數,也就是像整數、實數、字串等都不會有問題。譬如以下這個無聊函數,

你給電腦跑幾十萬遍也不會有記憶體問題: function MyFunc takes nothing returns nothin

g local string s = "實在太感謝Danny了!" local integer i = 520 local real r = 543

8.49 local boolean IShouldStudyHarder = true endfunction 事實上和物件沒刪相

比,物件區域變數沒清空所造成的影響小非常多(筆者測試大約是1/12左右),更何況使用

52

少年易学老难成,一寸光阴不可轻 - 百度文库

區域變數的人並沒有那麼多。這個問題幾乎是小到可以不用考慮,只是既然連物件都很龜毛地

刪了,最後加個幾行清空變數的指令,好人做到底,應該也沒什麼大不了吧? 以下提

供一個簡單的模型解釋記憶體的運作原理與和物件的關係。這個模型只是為了方便說明,未必

100%正確(想知道正確理論的請去找B社的程式師);而裡面提供的數據僅作為舉例用,未

必是確切的數值。電腦方面並非筆者的專業,如果有哪位大大對這方面有更進一步的了解,敬

請不吝指教。 變數 編號表 名稱 類型 內容(物件編號) 編號 變數連結 物件位址 udg_A

rchmage unit 1048802 1048801 0 21~25 udg_Paladin unit 1048807 1048802 2 1~2

0 udg_MyHero unit 1048802 1048803 1 31~40 udg_GameTimer timer 1048803 10

48804 0 26~30 (local) target unit 1048809 1048805 1 udg_P1 location 104880

8 1048806 0 udg_P2 location 1048805 1048807 1 41~60 udg_FootmanGuard

unit 1048805 1048808 1 121~125 1048809 1 81~100 1048810

0 101~120 這是記憶體內部大致的配置情形,它大約是這樣運作的: 刪除物件:假

設我們要刪除一個點: call RemoveLocation(udg_P1)。電腦會去讀udg_P1對到的編號表10

48808號,把對應的物件121~125區域清空,並且更新編號表。這是刪除後的情形: 變數

編號表 名稱 類型 內容(物件編號) 編號 變數連結 物件位址 udg_Archmage unit 1048

802 1048801 0 21~25 udg_Paladin unit 1048807 1048802 2 1~20 udg_MyHero u

nit 1048802 1048803 1 31~40 udg_GameTimer timer 1048803 1048804 0 26~30

(local) target unit 1048809 1048805 1 udg_P1 location 1048808 1048806 0

udg_P2 location 1048805 1048807 1 41~60 udg_FootmanGuard unit 1048805 1048

808 1 1048809 1 81~100 1048810 0 101~120 建立物件:

假設我們要建立一個山王。電腦會從記憶體中找一大塊可用的位址畫給它用,假設是61~80

號。然後搜尋變數連結=0且物件位址為空的空間建立物件。這是建立後的情形: 變數 編號

表 名稱 類型 內容(物件編號) 編號 變數連結 物件位址 udg_Archmage unit 1048802

1048801 0 21~25 udg_Paladin unit 1048807 1048802 2 1~20 udg_MyHero unit 10

48802 1048803 1 31~40 udg_GameTimer timer 1048803 1048804 0 26~30 (local)

target unit 1048809 1048805 1 udg_P1 location 1048808 1048806 0 61~80 u

dg_P2 location 1048805 1048807 1 41~60 udg_FootmanGuard unit 1048805 10488

08 1 121~125 1048809 1 81~100 1048810 0 101~120 那個6

1~80八成就是記錄山王的生命啦、魔力啦、技能啦、經驗值啦、……等等有的沒有的資料。

或許有人會問了:1048805不是沒有物件嗎?為什麼不建立在這裡? 當然這是為了防止bu

g,想想為什麼1048805有被變數連結卻沒有值?也許它之前是連到一個武士,後來那個武士

在一場戰鬥中壯烈犧牲了,系統就很聰明地把它從記憶體中挪走。然後變成一開始那樣。但是

53

少年易学老难成,一寸光阴不可轻 - 百度文库

它仍舊被一個變數udg_FootmanGuard連結,假設我們把山王創造在這個地方,那麼我們會

發現,udg_FootmanGuard本來一直是指一個武士,後來武士死了,有一天udg_FootmanG

uard突然變成一個山王……這當然不合理,武士死後udg_FootmanGuard理所當然要一直指

向空的物件才行。所以只要有被變數連結,那個位置就不能被使用,即使它是空的。 修改

變數:假設我們修改變數: set udg_MyHero = udg_Paladin。電腦會把udg_MyHero重新連

到1048007號,並且修改編號表中的變數連結個數: 變數 編號表 名稱 類型 內容(物件編

號) 編號 變數連結 物件位址 udg_Archmage unit 1048802 1048801 0 21~25 udg_P

aladin unit 1048807 1048802 1 1~20 udg_MyHero unit 1048807 1048803 1 31~40

udg_GameTimer timer 1048803 1048804 0 26~30 (local) target unit 1048809 1048

805 1 udg_P1 location 1048808 1048806 0 udg_P2 location 1048805 1048

807 2 41~60 udg_FootmanGuard unit 1048805 1048808 1 121~125 104

8809 1 81~100 1048810 0 101~120 清空變數:假設我們清空變數: set u

dg_MyHero = null。電腦會把udg_MyHero連到空號(可能是0),並且修改編號表中的變數連

結個數: 變數 編號表 名稱 類型 內容(物件編號) 編號 變數連結 物件位址 udg_Archm

age unit 1048802 1048801 0 21~25 udg_Paladin unit 1048807 1048802 1 1~20 u

dg_MyHero unit 0 1048803 1 31~40 udg_GameTimer timer 1048803 1048804 0 26

~30 (local) target unit 1048809 1048805 1 udg_P1 location 1048808 1048806

0 udg_P2 location 1048805 1048807 1 41~60 udg_FootmanGuard unit 104880

5 1048808 1 121~125 1048809 1 81~100 1048810 0 101~120

刪除區域變數:最後是我們的重點,假設我們的某個函數(其中有一個區域變數target)執

行到endfunction,此時target會被清除。電腦會把target這個變數清掉, 此時1048809的

變數連結理當被改成0,但是它並不會(應該是一個bug): 變數 編號表 名稱 類型 內容(物

件編號) 編號 變數連結 物件位址 udg_Archmage unit 1048802 1048801 0 21~25 ud

g_Paladin unit 1048807 1048802 2 1~20 udg_MyHero unit 1048802 1048803 1 31~

40 udg_GameTimer timer 1048803 1048804 0 26~30 1048805 1 ud

g_P1 location 1048808 1048806 0 udg_P2 location 1048805 1048807 1 41~60

udg_FootmanGuard unit 1048805 1048808 1 121~125 1048809 1 81~10

0 1048810 0 101~120 現在,假設我們執行call RemoveUnit(target)以後

離開函數,結果變成: 變數 編號表 名稱 類型 內容(物件編號) 編號 變數連結 物件位址

udg_Archmage unit 1048802 1048801 0 21~25 udg_Paladin unit 1048807 1048802

2 1~20 udg_MyHero unit 1048802 1048803 1 31~40 udg_GameTimer timer 1048

803 1048804 0 26~30 1048805 1 udg_P1 location 1048808 1048806

54

少年易学老难成,一寸光阴不可轻 - 百度文库

0 udg_P2 location 1048805 1048807 1 41~60 udg_FootmanGuard unit 104880

5 1048808 1 121~125 1048809 1 1048810 0 101~120

顯然這時候1048809的位置早該被清空等著其它的物件放,可是卻由於這個bug,導致這

個空間不能再被使用。 所以我們只好在區域變數被系統自動刪除前,手動把它的內容清空,

使它對應的編號表的變數連結被扣掉。如果沒有這樣做,久而久之,就有一大堆空間被佔據住

不能使用,就成了 記憶體漏失。 最後再重申一次,這個模型和裡面寫的數字純粹作為舉

例用,一個location未必只佔用5個位址;物件也未必是從0開始往上編;編號表也不一定

是從1048801開始。 還沒清完篇 看完上一篇大家感想如何?嗯……以後寫JASS,最後

面記得加個幾行清空的指令吧(誰叫你就是愛用區域變數?)。 不過這個才是真的麻煩:

function bird takes unit whichUnit returns location local location loc = GetUnitLoc(wh

ichUnit) //這裡有一段不足為外人道,慘不忍賭,血淚縱橫的運算... return loc endfunct

ion 當然我們知道要把區域變數loc清空,問題是清空了怎麼回傳loc? 這時候只好祭

出我們的大神--return bug來了,請看: function H2I takes handle h returns integer

return h return 0 endfunction function bird takes unit whichUnit returns locatio

n local location loc = GetUnitLoc(whichUnit) local integer li //這裡有一段不足為外

人道,慘不忍賭,血淚縱橫的運算... set li = H2I(loc) set loc = null return li return

null endfunction 這時候一定有高手會問啦: ㄟ,你根本在亂寫嘛!那個H2I函數不

是要傳入handle嗎?怎麼傳入location?那個H2I函數不是要傳回整數嗎?怎麼傳回點?那

個鳥(bird)函數明明要傳回點,你怎麼傳回整數? 關於第一個問題,如果你會問建議你重

新閱讀一遍JASS教學。因為location是handle的子類型,所以當然也算是handle,當然可

以傳入。 至於後面兩個問題……沒錯,正常來說你的世界編輯會一如往常地冒出一段廢話

要你趕快修正,不過這次沒有,所以它叫做回傳錯誤(return bug)。 這個錯誤是由於世界編

輯器在檢查函數的回傳時,會從最下面(endfunction那行)往上查,只要查到一個正確的retur

n就停了,不會再管上面有沒有錯誤的return。 譬如H2I函數,WE只檢查return 0是正確

的就通過,根本不管上面有個錯誤的return h 那麼我使用這個回傳錯誤幹麻呢?它的用途

可廣了,你可以用這個函數隨便地把單位變成物品、把物品變成觸發、把觸發變成整數、把整

數轉成點、……。簡單地說,可以做到物件間以及物件和整數間的自由轉換。物件間的轉換沒

有問題,可是物件轉成整數怎麼轉呢?它會把物件在記憶體內部的編號傳出來,換句話說,每

一個物件會傳回一個唯一的整數,就像身分證字號一樣。同樣地,只要把記憶體內碼(整數)輸

入,就可以回傳出對應的物件。這個bug主要用在物件和整數間的自由轉換,想也知道,如

果你把單位當成物品交給電腦去設它的物品數,顯然十之八九會出問題,輕則沒效,重則當掉。

把物件和字串互轉會當機,至於布林和實數筆者沒試過, 有興趣的讀者可自行測試,不過那

55

少年易学老难成,一寸光阴不可轻 - 百度文库

似乎沒有什麼實際的用途。 我們先解決這個問題,首先我們定義區域變數loc,然後進行

一段操作,接著把loc的內部編碼存到整數變數li,接著把loc變數清空,然後回傳li,li當然

會自動變成對應在記憶體內的點,最後,li是整數變數,所以不會有變數未清空的問題。所以,

OK!圓滿解決!收工! 附帶一提,這個return bug轉換配合遊戲暫存(Game Cache)可

以允許你製作無限多的Custom Value。 我們只要先定義一些轉換用函數: function H2I

takes handle h returns integer return h return 0 endfunction function I2U take

s integer i returns unit return i return 0 endfunction function I2T takes integer

i returns trigger return i return 0 endfunction function I2Ti takes integer i ret

urns timer return i return 0 endfunction ... (為什麼不用一個I2H代替全

部?……ㄟ,兒子可以代替老子,老子可不能代替兒子啊!如果一個函數takes handle,你

可以傳unit進去;可是一個函數如果takes unit,你就不能放handle進去,誰知道你的han

dle不會是trigger或者其它類型的東西) 我們可以把一個單位轉成整數再轉成字串當做資

料夾名,隨便取個檔名如"UnitLifeTrigger",然後把單位對應的觸發轉成整數存進去。再用類

似的方法讀取之。 換句話說,我們可以隨便地在物件之間做連結,有一個就能找出其它個,

這對於製作多重施法的觸發技能是非常好用的功能 。不過當然,遊戲暫存的存取速度,相較

於一般正統的變數或者內建的Custom Value為慢。至於return bug怎麼應用,筆者也沒辦

法教太多,請自行上國外論壇深造。 既然這是個BUG,以後要是有一天B社改版把它修

正了怎麼辦?別擔心,大概是這個bug太有用了,B社之前公開說明:「魔獸爭霸III的世界

編輯器日後永遠不會修正return bug」。因此,放手去做吧! 筆者廢話篇 看完以後有沒

有覺得世界末日到了?點、單位群組、觸發要刪不打緊,連觸發的動作還要另外刪,定區域變

數還要清空,如果要回傳甚至還得扯上return bug…… 不過大家大可不必那麼擔心,還記

得我們解決記憶體漏失的目的嗎--減少遊戲lag和減少跳出的延遲(後者是我自己偷加的X

D)。 不要看前面說得那麼可怕,那些高頻率的執行對電腦而言只是小事一樁,倒是魔獸

各方面的運算,3D貼圖的計算等等反而更耗用資源。小問題累積很久才可能變成大問題,而

我們通常在發生大問題還沒發生以前就結束遊戲了。以點的累積來說,大約10~30萬以上會

感覺到明顯的跳出延遲,再更多才會造成遊戲中的lag。區域變數沒清空造成的記憶體漏失與

此相比之下更加微不足道(大約是觸發影響力的1/12左右)。而觸發動作(triggeraction)雖然嚴

重程度和點差不多,可是它實在是非常非常非常非常不好刪,所以除非你太常用臨時觸發,問

題嚴重,否則還是可以當做沒看到。 以B社的官方地圖為例,它們其實也只做到刪除點、

單位群組、特效與漂浮文字,大致上用到的是本文「實用篇」的方式。其它像觸發、觸發動作、

變數清空等,B社根本沒有在管。B社提供的blizzard.j函數中用的區域變數(雖然用到的不多)

也沒有做到變數清空。然而大家玩B社出的地圖會很不順嗎? 記住,我們左刪右刪的最

56

少年易学老难成,一寸光阴不可轻 - 百度文库

終目的是增加遊戲的順暢度。一條觸發或函數,除非解決記憶體漏失不會太麻煩,或者它的使

用頻率實在太高,漏洞很嚴重,才有必要去處理;否則都可以不理它。很多老外天天在寫JA

SS,常把memory leak掛在嘴邊,不過它們主要是為了嚴謹性的考量,不希望有人使用了他

們的函數或系統後出現lag等症狀,所以對此方面的要求較高。 筆者建議像點、單位群組、

特效最好都刪掉;而像triggeraction和需要用到return bug來清空變數的麻煩事就免了;其

它的……自行判斷。 總之我們製作地圖,只要跑起來順就好了,記憶體漏失把主要的做好

即可,次要的、不重要的就可以馬虎一點,不 必把時間浪費在不重要的事情上。(謎:那你

寫這一串廢話不是也在浪費時間嗎? 我:……………………) 最後,總結一下重點:

要搞清楚什麼可以刪,什麼不能刪。千萬別把重要的公用物件變數刪除了。 除了trigge

r以外,event和triggeraction也會造成leak。此外,註冊event比起大多數的函數更耗資源,

執行更慢 如果有使用handle類的區域變數,還要再做變數清空(nullify)的動作才能完全清

除。如果有困難可利用return bug解決。區域變數未清空造成的leak不太嚴重,如果嫌麻煩

可以忽略。 return是一個被JASS高手廣泛研究的工具,有興趣可多爬文研究

因此研究了一下加强型护甲升级,发现如下结论

实际使用中升级所设数据是一个数,他代表当前护甲加上该数后所对应编号的护甲,而不是字面的改为某护甲:L

护甲升级顺序及代表数值如下:

小型 0

中型 1

大型 2

城甲 3

普通 4

英雄 5

神圣 6

无甲 7

无图标小型(以后与无甲循环,就是说一开始是无甲的话用该升级永远也不会升出神圣以上的类型)

按照当前护甲加上各甲所对值

例:当前为大型,升级设置为中型,则升级后为大型+1=城甲

实际上看对战数据也发现了,升级加强型护甲时,地堡是大型护甲,升级写的数据是中甲:L

以上是我得出的结论,不知大家怎么看......

57