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

GA地精研究院

 找回密码
 立即注册
查看: 889|回复: 58

[混合] 富格式对话框控件

[复制链接]
发表于 2018-1-6 21:16:30 | 显示全部楼层 |阅读模式
本帖最后由 yxxiaobin 于 2018-8-6 12:52 编辑

RPG一直以来都作为自定义地图的大类,经久不衰。在RPG类地图中,动态物品系统是个不错的亮点。然而,星际2编辑器原生不支持动态物品系统,给广大初学玩家造成了不小的困扰。其实动态物品系统的实际效果并不难,基本都容易用触发器来实现,比如:
物品行为:用触发器可以直接增加/减少/移除行为。
物品武器:有了行为,武器就不是问题了。
物品效果:触发器能修改效果树,从而实现修改物品效果的设计。
物品技能:技能主要就是效果树、射程、消耗等几项数据,触发器能很好的修改。头目有一篇专门的帖子演示这一技术,这里就不重复说了。

但是!物品的说明条是不能动态修改的,因为你无法衔接物品栏按钮和物品容器的说明条的任何部件。为了能控制说明条的内容,我们只有在触发器中启用自定义说明条,然后再衔接内部部件。但是这样一来,说明条的全部内容都需要代码控制,包括原来系统支持的说明条标题和说明条文字。这就需要一个对应的系统来控制说明条。一个兼容性和易用性都不错的系统可是需要仔细设计和制作的,很多人在这一工作量面前望而却步了。

在前些时候,我做了富格式按钮和富格式说明条,用于实现类似于官方命令按钮和它的说明条的效果。后来就想到,既然已经有了一个基础的说明条系统,稍微扩展一下,不就可以应用于物品栏了吗?于是一个能匹配动态物品系统的物品栏说明条就出现了。现在这一系统已经被制作成mod,无偿提供给广大地图作者使用。
预览一下效果:
aa.png
默认情况下,这一系统能让说明条显示所有类型物品的消耗、冷却时间、标题、说明文字等信息,物品栏提示信息等,但不显示召唤类物品的人口占用(主要是这功能需要遍历不同类型的效果树,一不小心容易bug,我实在懒得做了)。
同时,还可以启用强化功能,包括:物品的品质(体现在标题染色),杂项消息(比如是否可炼化、是否可重铸等,具体有地图作者自己制定),附加说明信息(可以用于显示随机属性、炼化属性、背景故事等),镶孔和宝石镶嵌信息。
2.gif

3.gif
比如上边两个物品,其实是同一个模板生成的物品,各项数据都是一样的,但是在强化功能开启后,分别赋予了他们不同的品质、不同的镶孔数量,第二个还被镶嵌了一颗宝石。实现这些功能,只需要简单定义几条动作就行,后续工作都由封装代码完成,可以说易用性是很高的。同时,提供底层函数的接口,对于了解这一系统的地图作者,也可以基于自己的需求做深层的定制,只要符合一定的规则,原来的封装代码仍然会兼容这些定制内容,而不必全部推倒重做。
-----------------------------------------------------

下边发上mod和演示用图。需要先下载mod,并保存到你的星际2的对应路径下,更名为 听风阁_RPG系统强化mod.SC2Mod然后再启动演示用图进行测试。

RPGmod演示图.SC2Map (229.08 KB, 下载次数: 15)
 楼主| 发表于 2018-1-11 19:42:04 | 显示全部楼层
继续填坑,新做了一个UI项目:物品快捷栏。可以把物品注册到快捷栏,这样就不必点开物品容器使用了,也无需占用物品栏技能的格子。
1.gif
可以在对话框中创建,也可以在面板中创建,或者直接在富格式物品栏中附带启用。然后为快捷栏指定单位就可以了。
玩家可以右键拿起物品栏中的物品,左键释放到空白格子里,物品就被注册了。同种物品的充能计数是叠加的(假如有充能计数的话),比如你有两个医疗包,每个充能5,只需要注册任意一个,就能自动叠加为10个。但是以下两种情况物品不叠加:1.冷却位置在技能,这时两个物品不共享冷却,所以会被分开处理;2.物品的最大充能计数为0,这时候作为非充能物品对待,是不叠加的。
你可以在地图中选择指定快捷键,或者不指定。快捷栏位最大支持10个,也可以指定少于这个值,比如5个,只要隐藏部分格子,并修改控件的尺寸就可以。
2.png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-13 01:21:49 | 显示全部楼层
本帖最后由 yxxiaobin 于 2018-1-13 01:25 编辑

新项目:富格式列表框。让列表项不只有文字,还能展示图标。下图对比了富格式列表框和普通列表框的视觉效果。
1.png

你可以详细设置列表项的一些属性(如下图禁用部分所示),或者直接使用封装函数进行简单的设置(未禁用部分所示)。
2.png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-20 00:02:45 | 显示全部楼层
本帖最后由 yxxiaobin 于 2018-6-19 22:40 编辑

这次是合成面板,而且不仅仅是UI部分,而是拥有完全的功能,只要自己使用已经封装好的函数定义一下合成规则就好了。
1.png

再次更新,加入了炼化和重铸面板。UI差不多,就不另外截图了。
同时增加了物品动态属性的实际效果的代码,只要装备/卸除了具有动态属性的物品,对应行为就会被自动附加/扣减。这样地图作者就不必自己设计实际效果代码了。当然,如果有特别的需求,也是可以通过底层接口自己控制代码的。
-------------------------------------------------------------------

再次更新:
修复了一个材料显示错误的bug。
增加了重铸提升品质几率、炼化失败几率、物品产出几率,各种属性在不同品质、种类和类型的物品中出现的数量,以及镶孔数量等功能,现在可以在地图端指定这些东西,而不是写死到mod中了。

回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-26 18:34:06 | 显示全部楼层
本帖最后由 yxxiaobin 于 2018-2-6 11:49 编辑

为打造、炼化和重铸面板启用了不同的UI外观,以便玩家容易区分。实在懒得做图片了,就只做了星灵的图片,如果有人要用,自己去p图,然后在地图端换图片就好了。
---------------------------------------------------------------------------------
增加了合成资源消耗,并更新了UI以适应新的系统。
ss.png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-6 11:39:59 | 显示全部楼层
本帖最后由 yxxiaobin 于 2018-2-13 10:49 编辑

前几次更新一直没发现,设置了资源消耗后,只是显示,但并不扣除资源。这次修复了这一bug,同时更改了物品容器更新说明条的方案,现在炼化和重铸物品不会强制关闭物品容器了。
-----------------------------------------------------------------------------------------------
增加了3个新的对话框项:
1.富格式复选框。和传统复选框看起来没什么不同,但是支持自带说明标签,而且宽度随说明文字的长度自动调整。当鼠标指向说明标签时,也能操作复选框,能让玩家感觉更舒服。
2.框架。其实就是带边框的fram,可以用来归类控件,让对话框看起来更有条理,更重要的是为单选按钮做准备,没有这个,就无法实现单选按钮。
3.单选按钮。星际2只支持复选框,而不支持单选按钮,所有单选按钮的功能只能依赖下拉式列表框(星际2编辑器里叫菜单)。但是对于丰富界面元素而言,单选按钮是很有必要的,所以我定义了这个东西。需要配合框架使用才能正确分组,以便实现互斥和兼容。
1.png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-20 16:42:51 | 显示全部楼层
本帖最后由 yxxiaobin 于 2018-7-1 12:08 编辑

增加了仓库面板。
1.png

--------------------------------------------------------------------------------------------------------
更新了一下,现在有内部代码支持多页仓库了,自带页签,还能实现自动的增加按钮功能。如果你不需要这些代码,也可以用一条动作隐藏掉页签,以便能深度定制仓库的代码。
1.png    2.png
----------------------------------------------------------------------------------
植入了物品保存系统,能实现保存/读取指定物品,保存指定单位身上的所有物品以及读取所有物品给指定单位的功能。另外为了和现有内容无缝衔接,定义了保存/读取玩家角色携带的物品和玩家寄存到仓库的物品两种功能。
保存功能内置加密,某件物品的存档被改动后,读取时会发送通用事件来通知地图端,地图作者可以很方便的针对该改动做出相应处理。
为了实现加密,附带了自定义存档加密所需的函数。
1.png

---------------------------------------------------------------------------------
修复了一个非常严重的bug:如果读取的物品所在栏位是一个装备栏位,会重复应用一次动态属性。现在加入了一个布尔值来过滤掉读取时移动物品到装备栏位置带来的错误。
回复 支持 反对

使用道具 举报

发表于 2018-3-22 12:00:52 | 显示全部楼层
为什么我下载你的:   
富格式对话框项1.SC2Mod
测试富格式.SC2Map
Mod载入也成功了的,但是你上面说的这些经过测试,都没有触发成功.触发上面也很多都是关闭的没开启.
那个启用副格式物品栏,B物品技能栏按钮,C物品栏容器     想创建几个变量试试看,试了几个也没试到可以用的.

是地图缺失文件之类的问题吗?好像也没报错


回复 支持 反对

使用道具 举报

发表于 2018-3-22 12:04:41 | 显示全部楼层
噢,进游戏有个这个错误提示:

回复 支持 反对

使用道具 举报

发表于 2018-3-22 12:06:41 | 显示全部楼层


地图名字没改,什么都没改动,测试的就是这样...

点评

我传错了测试图的版本,现在正确了。其实你可以手动点一下参数,通常建议全部选择“启用”。参数的意义说白了就是可以分别控制物品栏技能面板和容器面板是否启用富格式说明条。  详情 回复 发表于 2018-3-23 19:07
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-23 19:07:13 | 显示全部楼层
本帖最后由 yxxiaobin 于 2018-7-1 10:22 编辑

修复了一个参数错误的bug。
同时加入了一个数据模板:被动还击的单位。当该单位和你敌对时,不能直接攻击你,除非你首先伤害它,当你停止伤害后,单位会持续追击你一小段时间,然后重新回到不主动攻击的状态。该功能使用纯数据制作,用于制作被动还击型单位。

点评

如果我把这些触发复制到我的地图里面,需要返回值 和 无效的参数列表 怎么解决呀?  详情 回复 发表于 2018-3-24 13:48
回复 支持 反对

使用道具 举报

发表于 2018-3-24 13:48:11 | 显示全部楼层
yxxiaobin 发表于 2018-3-23 19:07
我传错了测试图的版本,现在正确了。其实你可以手动点一下参数,通常建议全部选择“启用”。参数的意义说 ...

如果我把这些触发复制到我的地图里面,需要返回值 和 无效的参数列表  怎么解决呀?


点评

图片我看不到....  发表于 2018-3-25 00:49
回复 支持 反对

使用道具 举报

发表于 2018-3-24 21:37:39 | 显示全部楼层
本帖最后由 w8316159 于 2018-3-24 22:51 编辑




我把触发重新弄了一下,改了下变量,然后弄了个 显示对话框  和  隐藏对话框和 ,结果每次显示,材料数量都自动多添加1个.
这个是要在哪里改

点评

应该是品质系数的问题,你可以指定一下每个品质消耗的系数是多少,比如紫装是3,那么如果你指定消耗一颗宝石,最后会显示消耗3颗。  详情 回复 发表于 2018-3-25 00:49
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-25 00:49:35 | 显示全部楼层
本帖最后由 yxxiaobin 于 2018-3-25 01:19 编辑
w8316159 发表于 2018-3-24 21:37
我把触发重新弄了一下,改了下变量,然后弄了个 显示对话框  和  隐藏对话框和 ,结果每次显示,材料 ...

如果是炼化和重铸,可能是品质系数的问题,你可以指定一下每个品质消耗的系数是多少,比如紫装是3,那么如果你指定消耗一颗宝石,最后会显示消耗3颗。
另外有通用基础值,比如所有长剑类武器都使用某个材料,那么即使你的某种长剑没有指定这个材料,它也会自动加上去,当然这个是地图里指定的,如果你没指定就没有。考虑到你截图的那个是打造,应该没有系数的影响,所以应该是你在地图里指定了通用基础消耗。

1.png

点评

是不是,我每次靠近单位 触发动作 测试打造面板,那么就会添加一个新的合成规则?所以给我加了数量? 通用基础消耗我全部都弄的关闭都还是给我添加 材料的数量  详情 回复 发表于 2018-3-25 20:09
回复 支持 反对

使用道具 举报

发表于 2018-3-25 20:09:36 | 显示全部楼层
yxxiaobin 发表于 2018-3-25 00:49
如果是炼化和重铸,可能是品质系数的问题,你可以指定一下每个品质消耗的系数是多少,比如紫装是3,那么 ...






是不是,我每次靠近单位 触发动作 测试打造面板,那么就会添加一个新的合成规则?所以给我加了数量?
通用基础消耗我全部都弄的关闭都还是给我添加  材料的数量
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-26 21:28:39 | 显示全部楼层
本帖最后由 yxxiaobin 于 2018-3-26 21:30 编辑

你并没有新增合成规则,如果新增的合成规则和已有的同名,会将材料添加到已有的规则上面,也就是说,你每运行一次触发器,就让这些规则增加一组材料。
正确的用法是:在初始化时设定好规则,以后如非必要,就不要在更改规则了,只需要更新面板就好了。
另外,如果你希望玩家初始就能解锁规则,可以直接将参数设置为解锁,这样就不必在后边在写一条解锁动作了。如果你希望玩家在获得某些物品或完成某些任务后解锁,则初始设为锁定,然后在合适的时候用解锁动作为玩家解锁规则。
没有被解锁的规则不会显示在列表中。

点评

这个UI效果是在哪里可以删除呀? 有时候这UI会卡住  详情 回复 发表于 2018-4-6 01:55
回复 支持 反对

使用道具 举报

发表于 2018-4-6 01:55:14 | 显示全部楼层
yxxiaobin 发表于 2018-3-26 21:28
你并没有新增合成规则,如果新增的合成规则和已有的同名,会将材料添加到已有的规则上面,也就是说,你每运 ...


这个UI效果是在哪里可以删除呀?
有时候这UI会卡住

点评

你可以描述一下什么时候这个说明条会失效,我看看是不是有bug,或许可以修复一下。  详情 回复 发表于 2018-4-6 12:22
不要启用富格式物品栏就行。但是这样一来,就无法显示物品的动态属性了。  详情 回复 发表于 2018-4-6 12:21
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-6 12:21:45 | 显示全部楼层
w8316159 发表于 2018-4-6 01:55
这个UI效果是在哪里可以删除呀?
有时候这UI会卡住

不要启用富格式物品栏就行。但是这样一来,就无法显示物品的动态属性了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-6 12:22:27 | 显示全部楼层
w8316159 发表于 2018-4-6 01:55
这个UI效果是在哪里可以删除呀?
有时候这UI会卡住

你可以描述一下什么时候这个说明条会失效,我看看是不是有bug,或许可以修复一下。

点评

物品快捷栏的槽位种类应该怎么添加?  详情 回复 发表于 2018-4-21 18:33
把物品栏里面的物品用鼠标拖拽或者是使用掉后 或者 鼠标移动到物品栏显示的时候鼠标移开了但是UI还是存在就卡住了.  详情 回复 发表于 2018-4-6 13:42
回复 支持 反对

使用道具 举报

发表于 2018-4-6 13:42:20 | 显示全部楼层
本帖最后由 w8316159 于 2018-4-6 15:28 编辑
yxxiaobin 发表于 2018-4-6 12:22
你可以描述一下什么时候这个说明条会失效,我看看是不是有bug,或许可以修复一下。

没问题了,是我触发设置的问题,启用富格式物品栏 打开了多次

回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2018-11-19 13:28 , Processed in 0.157145 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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