翔鹰帝国网|帝国时代论坛|帝国时代II高清版|神话时代|亚洲王朝|征服者|罗马复兴
 找回密码
 注册翔鹰会员(昵称)
搜索
查看: 1304|回复: 4

[MOD 作品] WAIFor Gizmo工具与新触发效果

[复制链接]

369

主题

14

精华

6万

积分

宗主教

耕战
9162
鹰币
25058
天龙币
18
帖子
4967

特级嘉禾勋章三级帝国勋章十字军勋章

附庸关系0
发表于 2017-7-16 17:49:16 | 显示全部楼层 |阅读模式
接触过葡萄牙MOD(Portuguese Civ Mod)以及触发补丁1.5(Extended Triggers Patch 1.5)的玩家,应该都知道其中有DLL文件的存在。这些DLL,便是对游戏主程序功能的增补,在几乎不对EXE文件产生影响的情况下,来丰富内容。
比起WTEP那种直接改变主程序的方法,DLL能有更多的功能。但是这种DLL的加载也并不容易,需要人工地对EXE文件进行编辑,增加WIN32API相关的指令。尤其加载的DLL数量多了,修改起来会很麻烦。而且其中主程序与模块之间的跳转指令,也需要实时地进行配置。
另一方面,ETP 1.5重写了整个触发部分的指令,因而它“定死”了触发条件、效果的数量。用户如果要再附加自己的触发效果,也是很困难的。

因此,我们需要寻找合适的解决方案。之前我提过一个设想:编写一个DLL的加载器,能够根据配置文件,来动态地加载DLL模块;而且,能够自动调节内部的跳转指令,无需模块的编写者去撰写相关语句。
于是,我开发了WAIFor Gizmo模块。它是一个DLL文件,通过它能够加载更多的DLL,而且会对补丁DLL进行调整。至于触发条件、效果,则有了相当简单的模板——只需要指定条件或效果的数量,以及各自的名称、输入框、执行语句,就可以自动地在游戏本身的触发后面追加新的条目了!加载多个触发DLL时,也可以按照相应的顺序全部列出,不会造成冲突。

附件是一个测试版的Gizmo。包含了说明文档、Gizmo主模块和一个DLL触发效果示例,DLL示例的具体内容会在2楼说明。

使用时,需要先通过WTEP(http://www.hawkaoc.net/bbs/forum.php?mod=viewthread&tid=137261)修改EXE,并设置Gizmo=1,使之能够加载Gizmo模块。之后,将压缩包中Data\下的文件放置在游戏的Data\目录下(如果是UserPatch的独立包,则可放在它对应的Games\<游戏路径>\Data\下),便可以使用了。

Gizmo.zip

13.67 KB, 下载次数: 39

004时代:战役时代
我很乐意看到有人在MOD技术上超过我。
回复

使用道具 举报

369

主题

14

精华

6万

积分

宗主教

耕战
9162
鹰币
25058
天龙币
18
帖子
4967

特级嘉禾勋章三级帝国勋章十字军勋章

附庸关系0
 楼主| 发表于 2017-7-16 17:50:53 | 显示全部楼层
本帖最后由 我是谁004 于 2017-7-16 17:54 编辑

WAIFor的触发效果 1.0

Show Choice Box 显示选择对话框
在游戏中弹出一个选择对话框,可以设置其中的文字,并根据用户的选项设置指定玩家的某个资源值:0-否,1-是。

Resource Modifier 资源修改器
设置目标玩家的资源值。除此之外,还有源玩家、资源类型、数量、外交关系以及数目参数,它们可以产生不同的效果。
数目效果:(目标-目标玩家通过资源参数指定的资源,源1-源玩家通过资源参数指定的资源,源2-源玩家的通过数量参数指定的资源)
0 - 目标 = 数量
1 - 目标 = 源1+数量
2 - 目标 = 源1*数量
3 - 目标 = 源1/数量
4 - 目标 = 数量 / 源1
5 - 目标 = 源2
6 - 目标 += 源2
7 - 目标 *= 源2
8 - 目标 /= 源2
9 - 目标 = 源2 / 目标玩家的资源外交效果:“同盟”不变,“中立”使最终值除以360,“敌人”使最终值除以1000。

Save Resources To File 将资源存储至文件
将一名玩家的所有资源量存储至“文字”参数指定的文件中。文件扩展名为.res。

Load Resources From File 从文件中读取资源
从.res文件中读取资源量,并设置给一名玩家。

Set Resource Storage 设置资源存储
能够修改单位的资源存储量。数目效果:
0 - 设置目标单位的资源量
1 - 增加目标单位的资源量
2 - 将目标单位的资源值,设置为目标玩家的通过数量指定的资源
3 - 将目标单位的资源值(多个则只用第一个),赋予目标玩家的通过数量指定的资源

Protounit Modifier 原型单位修改器
能够修改目标玩家的科技树中单位的属性,浮点型的属性则将数量除以1000,属性类型通过定时器参数来确定。数目效果:
0 - 设置原型单位的属性值
1 - 增加原型单位的属性值
2 - 通过目标玩家的资源值,来设置原型单位的属性值。

Object Modifier Selector 单位修改选择器
筛选Object Modifier触发效果的单位列表。数目为0时,直接设置;为1时,则在原有的列表之后附加。最多支持256个单位。
该效果须严格优先于Object Modifier效果,即前面的序号要大于后者的。

Object Modifier 单位修改器
在通过Object Modifier Selector指定了单位列表之后,来对它们的属性进行修改,修改后的单位会变得独立。
参数的用法与Protounit Modifier类似。

Create Units In Area 区域内建立单位
单位会在通过区域参数指定的每一个地块中产生。数目为0时,受到地形和体积的限制,为1时则不受限制。

Change/Replace Object 改变/替换单位
对指定单位进行一定的操作,数量指定了新单位。数目决定了其效果:
0 - 将单位转变为新单位
1 - 将单位移除,在原来的位置上建立新单位
2 - 在单位的位置上建立新单位,但不移除原单位

WAIFor Unit Typer WAIFor 打字机
可以在地图的特定位置上,将单位以5x5的点阵打出文字来。

Focus Object 聚焦单位
类似于原触发效果“改变视角”,不同在于它的目标不是固定点,而是目标单位。数目0、1可以指定改变视角的类型为移动、切换。
004时代:战役时代
我很乐意看到有人在MOD技术上超过我。
回复

使用道具 举报

1

主题

0

精华

16

积分

乡绅

耕战
0
鹰币
10
天龙币
0
帖子
3

翔鹰建站十周年纪念章

附庸关系0
发表于 2017-7-17 15:07:38 | 显示全部楼层
火前留名
回复

使用道具 举报

7

主题

2

精华

5144

积分

国王

耕战
800
鹰币
100
天龙币
0
帖子
115
附庸关系0
发表于 2017-7-21 10:19:32 | 显示全部楼层
好东西,楼主辛苦了
回复

使用道具 举报

0

主题

0

精华

0

积分

农夫

耕战
0
鹰币
10
天龙币
0
帖子
1
附庸关系0
发表于 2017-8-9 22:13:39 | 显示全部楼层
只会java不会c++ 会不会看不懂
回复

使用道具 举报

本版积分规则

排行榜|小黑屋|翔鹰帝国 ( 蜀ICP备07503549号 )

GMT+8, 2017-12-11 19:03

Powered by Hawk Studio  QS Security Corp.® Licensed

© 2001-2017 Hawkaoc.net All rights reserved

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