找回密码
 点一下
楼主: killer5957

我想做一个能使用技能的对话框

[复制链接]
 楼主| 发表于 2016-6-14 13:37:26 | 显示全部楼层
yxxiaobin 发表于 2016-5-13 17:03
伸手党的话真的是不好的。
可以给你解释一下核心思路。
1.创建一个对话框,这个用来盛放命令面板控件。根 ...

显示子菜单?命令面板页是哪个?这个在哪找?还有关闭按钮动作是怎么做的?函数那个又是什么功能?

点评

1,关于命令面板子菜单。我演示里有这个动作。你仔细看一下,有一条使指定的命令面板显示指定的页。页的名称需要在数据编辑器里的单位页面找到命令面板字段,里边有页的ID,同样可以参考我是如何改的。命名方式不一  详情 回复 发表于 2016-6-14 18:43
回复

使用道具 举报

发表于 2016-6-14 18:43:08 | 显示全部楼层
killer5957 发表于 2016-6-14 13:37
显示子菜单?命令面板页是哪个?这个在哪找?还有关闭按钮动作是怎么做的?函数那个又是什么功能?

1,关于命令面板子菜单。我演示里有这个动作。你仔细看一下,有一条使指定的命令面板显示指定的页。页的名称需要在数据编辑器里的单位页面找到命令面板字段,里边有页的ID,同样可以参考我是如何改的。命名方式不一定非要叫123这样的,也可以叫abc,但不能是汉字或某些特殊符号。你在单位页面填写什么,触发器里边也要填写什么,这样就能打开指定页了。
2.关闭按钮的做法。是我为了省事才这么写的,那条自定义代码的意思就是为“关闭命令面板对话框”触发器添加一个事件:最后创建的对话框项被点击。这样当玩家点击“关闭按钮”时就会触发那个触发器,从而隐藏对话框。你也可以使用任意对话框项被点击事件,然后在条件里判断是不是关闭按钮,也是一样的。

点评

我有些不懂的地方想请教你,由于论坛不能发图片,我就发到贴吧上了,你可以在论坛或贴吧回复我,谢谢http://tieba.baidu.com/p/4631649264  详情 回复 发表于 2016-6-25 13:17
我的图1代有32MB 2代我保守估计要70MB因为我以前玩过魔兽3 我记得魔兽3里面地图大小就有限制太大了的话你根本没法局域网只能单机了所以我就问问星际2有没有这种限制  详情 回复 发表于 2016-6-15 10:35
星际2单次上传地图没有大小限制吧?反正只要不超过总量300MB就可以了吧?  详情 回复 发表于 2016-6-14 21:46
回复

使用道具 举报

发表于 2016-6-14 21:46:00 | 显示全部楼层
yxxiaobin 发表于 2016-6-14 18:43
1,关于命令面板子菜单。我演示里有这个动作。你仔细看一下,有一条使指定的命令面板显示指定的页。页的 ...

星际2单次上传地图没有大小限制吧?反正只要不超过总量300MB就可以了吧?

点评

好像有来着,但是忘记是多少了。不过你可以拆分成若干个mod,这样可以上传很大,甚至是不同账号都占满。不过玩家下载会很久。  发表于 2016-6-15 00:30
回复

使用道具 举报

发表于 2016-6-15 10:35:19 | 显示全部楼层
yxxiaobin 发表于 2016-6-14 18:43
1,关于命令面板子菜单。我演示里有这个动作。你仔细看一下,有一条使指定的命令面板显示指定的页。页的 ...

我的图1代有32MB 2代我保守估计要70MB因为我以前玩过魔兽3 我记得魔兽3里面地图大小就有限制太大了的话你根本没法局域网只能单机了所以我就问问星际2有没有这种限制
回复

使用道具 举报

发表于 2016-6-15 11:08:46 | 显示全部楼层
yxxiaobin 发表于 2016-5-13 17:03
伸手党的话真的是不好的。
可以给你解释一下核心思路。
1.创建一个对话框,这个用来盛放命令面板控件。根 ...

行星碎裂炮那种裂地效果是怎么弄出来的?因该有模型来支持的吧?问题是这个模型在哪?

点评

你是不是做过关于魔兽的地图?  详情 回复 发表于 2016-8-28 17:42
战役里一打一个大坑的那个吗?只可以直接去看战役图是怎么做的。  发表于 2016-6-15 18:58
回复

使用道具 举报

 楼主| 发表于 2016-6-25 13:17:53 | 显示全部楼层
yxxiaobin 发表于 2016-6-14 18:43
1,关于命令面板子菜单。我演示里有这个动作。你仔细看一下,有一条使指定的命令面板显示指定的页。页的 ...

我有些不懂的地方想请教你,由于论坛不能发图片,我就发到贴吧上了,你可以在论坛或贴吧回复我,谢谢http://tieba.baidu.com/p/4631649264
回复

使用道具 举报

发表于 2016-6-25 19:14:05 | 显示全部楼层
大面板是我给创建的对话框的命名,这个对话框容纳了两个命令面板控件。当然,你也可以叫他别的什么名字。
命令面板页改名字需要切换到原始数据模式,或者xml视图。默认的视图是改不了的。字段名似乎叫CardID,你可以看看我改了哪里,具体叫什么你可以自己决定,但是必须是一个合理的字符串。
隐藏面板触发器没有事件,是因为我在创建关闭按钮的时候使用自定义代码注册了事件,当鼠标点击关闭按钮时,会运行这一触发器。如果你不了解自定义代码,可以使用常规方案,即为触发器注册一个任意对话框项被点击事件,然后用条件判定是不是关闭按钮。
刷新面板触发器是为了保证总是显示正确的页。因为当你点选一个单位时,命令面板总是会回到第一页。

点评

如果我要点击其他单位触发面板隐藏 点击关闭按钮触发面板隐藏,该怎么做? 我只做了一部分,这样对吗? 隐藏面板 事件 局部变量 触发玩家组 = (玩家组((触发玩家))) 条件 动作  详情 回复 发表于 2016-6-26 12:13
怎么把第2个面板,也就是新的改成指定的命令面板页? 单位框选 -为玩家1选择单位 对话框 -将一个已有的命令面板衔接至名为"UIContainer/ConsoleUIContainer/CommandPanel"的标准UI 对话  详情 回复 发表于 2016-6-26 12:08
回复

使用道具 举报

 楼主| 发表于 2016-6-26 12:08:02 | 显示全部楼层
yxxiaobin 发表于 2016-6-25 19:14
大面板是我给创建的对话框的命名,这个对话框容纳了两个命令面板控件。当然,你也可以叫他别的什么名字。
...

        怎么把第2个面板,也就是新的改成指定的命令面板页?
单位框选 -为玩家1选择单位
        对话框 -将一个已有的命令面板衔接至名为"UIContainer/ConsoleUIContainer/CommandPanel"的标准UI
        对话框 -为(所有玩家)将(最后创建的对话框控件)移动到相对于对话框底部右侧的(0,-300)
        对话框 -在(0,0)相对于屏幕的底部右侧创建一个尺寸为(445,368)的模态对话框
        变量 -设置大面板 = (最后创建的对话框)
        ------- 对按钮和按钮图片的一些操控
        对话框 -为对话框 (最后创建的对话框) 创建一个按钮, 其维度为 (24, 24), 锚点在 顶部右侧, 偏移为 (5, 5), 并将说明条设为 "关闭按钮", 按钮文本设为 "", 以及将悬浮图片设为 Assets\Textures\ui_ingame_resourcesharing_closebutton_normaloverandpressedover.dds
        对话框 -为(所有玩家)将(最后创建的对话框控件)图片设为Assets\Textures\ui_ingame_resourcesharing_closebutton_normalandpressed.dds
        对话框 -为(所有玩家)将(最后创建的对话框控件)图片类型设置为普通
        ------- 创建一个标识用标签
        对话框 -为对话框(最后创建的对话框)创建一个标签, 其维度为(100, 30), 锚点在 顶部, 偏移(0, 45), 文本为"", 颜色设为 自动, 文本写出设为 假, 写出持续时间为 2.0
        对话框 -为(所有玩家)将(最后创建的对话框控件)的样式设置为ABChoiceButtonText
        变量 -设置命令面板[2] = (最后创建的对话框控件)
        对话框 -为(所有玩家)将(最后创建的对话框控件)的尺寸大小设为(385,231)
        对话框 -为(所有玩家)将(最后创建的对话框控件)移动到相对于对话框底部右侧的(29,260)
        ------- 下边这条动作将对话框重新定位
        对话框 - 将 (最后创建的对话框)移动到相对于屏幕底部右侧的 (-5, 366)
        单位框选 -为玩家1选择单位
        对话框 -将一个已有的命令面板衔接至名为"UIContainer/ConsoleUIContainer/CommandPanel"的标准UI
        对话框 -为(所有玩家)将(最后创建的对话框控件)移动到相对于对话框底部右侧的(10,10)
        对话框 -在(0,0)相对于屏幕的底部右侧创建一个尺寸为(445,368)的模态对话框
        变量 -设置大面板 2 = (最后创建的对话框)
        对话框 -为对话框(最后创建的对话框)创建一个命令面板
        变量 -设置命令面板[2] = ( (触发玩家)的( (触发玩家)的(最后创建的对话框控件)的相对对话框控件)的相对对话框控件)
        对话框 -为(所有玩家)将(最后创建的对话框控件)的尺寸大小设为(385,231)
        对话框 -为(所有玩家)将(最后创建的对话框控件)移动到相对于对话框底部右侧的(29,29)
        对话框 -为对话框(最后创建的对话框)创建一个命令面板

点评

你写的这不对啊,我可不是这么给的演示,其实你基本照搬我给的演示就好了。 1.不必每次选择单位都衔接创建一遍,这样会导致重复创建对话框和对话框项。你应该在初始化时做这项工作,并用变量记录你创建的对话框和对  详情 回复 发表于 2016-6-27 17:57
回复

使用道具 举报

 楼主| 发表于 2016-6-26 12:13:15 | 显示全部楼层
yxxiaobin 发表于 2016-6-25 19:14
大面板是我给创建的对话框的命名,这个对话框容纳了两个命令面板控件。当然,你也可以叫他别的什么名字。
...

如果我要点击其他单位触发面板隐藏
点击关闭按钮触发面板隐藏,该怎么做?
我只做了一部分,这样对吗?
隐藏面板
    事件
    局部变量
        触发玩家组 = (玩家组((触发玩家))) <玩家组>
    条件
    动作
        对话框 -为 (所有玩家) 隐藏 (最后创建的对话框)
回复

使用道具 举报

发表于 2016-6-27 17:57:48 | 显示全部楼层
本帖最后由 yxxiaobin 于 2016-6-27 18:24 编辑
killer5957 发表于 2016-6-26 12:08
怎么把第2个面板,也就是新的改成指定的命令面板页?
单位框选 -为玩家1选择单位
        对话 ...


你写的这不对啊,我可不是这么给的演示,其实你基本照搬我给的演示就好了。
1.不必每次选择单位都衔接创建一遍,这样会导致重复创建对话框和对话框项。你应该在初始化时做这项工作,并用变量记录你创建的对话框和对话框项。在选择单位时(或别的什么时机,总之如果不做特殊限定,没有太好的事件,因为无法跟踪tab键切换子组),显示大面板,并设置面板页。
2.创建关闭按钮后还有一条自定义代码,是将关闭按钮注册给关闭触发器,如果你不要这条代码,需要给关闭触发器注册一条“任意对话框项被点击”的事件,并用条件判定点击的按钮是不是关闭按钮。
3.你为何要衔接两次,创建两次?
4.关闭触发器里边,不是隐藏最后创建的对话框,而是隐藏包含被使用的对话框项的那个对话框。

让命令面板显示子菜单的方法:
1.给子菜单的cardID进行命名,你需要切换到原始数据模式,或者转换为xml视图才可以做这件事。命名没有特殊关键字,只要是一个合理的字符串就好,可以
2.当命令面板UI显示对应单位组时(比如你想显示scv的某个子菜单,就要让命令面板UI显示scv的命令面板,一般默认UI是需要选中scv为当前子组,而创建的控件则需要指定一下单位组),使用“显示指令面板子页”动作指定一下cardID就可以。

点评

显示大面板,并设置面板页?怎么做? 我用你的示范修改了一下,但是示范也看不懂。。。 哪个步骤是选择单位? 设置命令面板是什么意思? 变量 -设置命令面板[2] = (最后创建的对话框控件)这个是把新面板放到对话  详情 回复 发表于 2016-6-27 20:06
回复

使用道具 举报

 楼主| 发表于 2016-6-27 20:06:45 | 显示全部楼层
yxxiaobin 发表于 2016-6-27 17:57
你写的这不对啊,我可不是这么给的演示,其实你基本照搬我给的演示就好了。
1.不必每次选择单位都衔接 ...

显示大面板,并设置面板页?怎么做?
我用你的示范修改了一下,但是示范也看不懂。。。
哪个步骤是选择单位?
设置命令面板是什么意思?
变量 -设置命令面板[2] = (最后创建的对话框控件)这个是把新面板放到对话框的?我的面板命名是2,那个地方就填写命令面板[2]?
好像是手误造成了复制粘贴
回复

使用道具 举报

发表于 2016-6-27 20:38:11 | 显示全部楼层
在合适的时机显示“大面板”对话框,因为命令面板控件在对话框内,所以本质上是显示了明明面板控件。至于什么是合适的时机,说实在的,没有合适的时机,因为我们无法跟踪tab键切换子组这件事。比较好的是让单位不可选择,点击单位的时候显示“大面板”,就像rpg网游里边点击了商店npc一样。
设置命令面板的页:因为“大面板”中有两个命令面板控件,我们要让这两个控件显示不同的页才能完成功能。所以需要把第二个控件设置一下,让它显示不同的页。
设置变量里的[2]指的是数组的下标为2的元素,建议你先了解一下编程基础,最起码了解变量、数组、条件分支、循环等常用的知识。

点评

这个是什么意思?怎么操作才能解决问题? 那个对话框有很多问题,比如选中几个幼虫后,只造了一个单位面板就出问题了,好像这个面板不管选中几个相同单位,但是只显示其中一个单位的面板,操作也局限于这一个单位,  详情 回复 发表于 2016-7-1 15:35
为什么我这个还是无效? 隐藏面板 事件 UI -玩家 任意玩家在shift键排除, control键 排除,alt键 排除的情况下,将F5键朝下按 局部变量 触发玩家组 = (玩家组((触发玩家))) 条件  详情 回复 发表于 2016-6-30 12:13
在响应“对话框项被使用”事件时,“被使用的对话框控件”函数才有用 这个是什么意思?怎么操作才能解决问题? 那个对话框有很多问题,比如选中几个幼虫后,只造了一个单位面板就出问题了,好像这个面板不管选中几  详情 回复 发表于 2016-6-30 10:44
刷新面板 事件 UI -玩家 任意玩家将左鼠标按钮朝上点击。 局部变量 条件 动作 对话框 -为(所有玩家)设置命令面板[2]的子菜单为"2"  详情 回复 发表于 2016-6-29 17:16
单位框选 -为玩家1选择单位 对话框 -将一个已有的命令面板衔接至名为"UIContainer/ConsoleUIContainer/CommandPanel"的标准UI 对话框 -为(所有玩家)将(最后创建的对话框控件)移动到相对于  详情 回复 发表于 2016-6-29 17:14
回复

使用道具 举报

 楼主| 发表于 2016-6-29 17:14:13 | 显示全部楼层
本帖最后由 killer5957 于 2016-6-29 18:54 编辑
yxxiaobin 发表于 2016-6-27 20:38
在合适的时机显示“大面板”对话框,因为命令面板控件在对话框内,所以本质上是显示了明明面板控件。至于什 ...

      
隐藏面板
    事件
        UI -玩家 任意玩家在shift键排除, control键 排除,alt键 排除的情况下,将F5键朝下按
    局部变量
        触发玩家组 = (玩家组((触发玩家))) <玩家组>
    条件
    动作
        对话框 -为 (所有玩家) 隐藏 (对话框包含(被使用的对话框控件))
为什么测试我按了F5还是没有反应?
如果我要让其他玩家对这些操作无效,还要加什么样的条件呢?

Screenshot2016-06-29 18_33_25.jpg

点评

在响应“对话框项被使用”事件时,“被使用的对话框控件”函数才有用 这个是什么意思?怎么操作才能解决问题? 那个对话框有很多问题,比如选中几个幼虫后,只造了一个单位面板就出问题了,好像这个面板不管选中几  详情 回复 发表于 2016-6-30 10:42
只有在响应“对话框项被使用”事件时,“被使用的对话框控件”函数才有用。  发表于 2016-6-29 22:13
回复

使用道具 举报

 楼主| 发表于 2016-6-29 17:16:28 | 显示全部楼层
本帖最后由 killer5957 于 2016-6-29 18:53 编辑
yxxiaobin 发表于 2016-6-27 20:38
在合适的时机显示“大面板”对话框,因为命令面板控件在对话框内,所以本质上是显示了明明面板控件。至于什 ...

我不能让敌人或盟友点击我的传送门然后我莫名其妙的弹出对话框,该怎么加个条件?还有隐藏对话框也是

我把那个关闭对话框的脚本复制到我的mod'上,出现这种情况怎么办?

我把那个关闭对话框的脚本复制到我的mod'上,出现这种情况怎么办?

点评

触发玩家==(触发单位)的所有者  发表于 2016-6-29 22:14
回复

使用道具 举报

 楼主| 发表于 2016-6-30 10:42:19 | 显示全部楼层
killer5957 发表于 2016-6-29 17:14
隐藏面板
    事件
        UI -玩家 任意玩家在shift键排除, control键 排除,alt键 排除的情 ...

在响应“对话框项被使用”事件时,“被使用的对话框控件”函数才有用
这个是什么意思?怎么操作才能解决问题?
那个对话框有很多问题,比如选中几个幼虫后,只造了一个单位面板就出问题了,好像这个面板不管选中几个相同单位,但是只显示其中一个单位的面板,操作也局限于这一个单位,并不是像选中几个折跃门后按个快捷键就可以让所有的折跃门都开始造兵,结果就是折跃门造了兵后就出现冷却但不会换到另一个折跃门。
还有快捷键也有个奇葩bug,我用快捷键造兵,点击快捷键却使用了另一个单位的技能,快捷键和那个单位的技能按键一样,我都没有选中这个单位。这些问题该怎么解决?
回复

使用道具 举报

 楼主| 发表于 2016-6-30 10:44:45 | 显示全部楼层
yxxiaobin 发表于 2016-6-27 20:38
在合适的时机显示“大面板”对话框,因为命令面板控件在对话框内,所以本质上是显示了明明面板控件。至于什 ...

在响应“对话框项被使用”事件时,“被使用的对话框控件”函数才有用
这个是什么意思?怎么操作才能解决问题?
那个对话框有很多问题,比如选中几个幼虫后,只造了一个单位面板就出问题了,好像这个面板不管选中几个相同单位,但是只显示其中一个单位的面板,操作也局限于这一个单位,并不是像选中几个折跃门后按个快捷键就可以让所有的折跃门都开始造兵,结果就是折跃门造了兵后就出现冷却但不会换到另一个折跃门。
还有快捷键也有个奇葩bug,我用快捷键造兵,点击快捷键却使用了另一个单位的技能,快捷键和那个单位的技能按键一样,我都没有选中这个单位。这些问题该怎么解决?
回复

使用道具 举报

 楼主| 发表于 2016-6-30 12:13:29 | 显示全部楼层
yxxiaobin 发表于 2016-6-27 20:38
在合适的时机显示“大面板”对话框,因为命令面板控件在对话框内,所以本质上是显示了明明面板控件。至于什 ...

为什么我这个还是无效?
隐藏面板
    事件
        UI -玩家 任意玩家在shift键排除, control键 排除,alt键 排除的情况下,将F5键朝下按
    局部变量
        触发玩家组 = (玩家组((触发玩家))) <玩家组>
    条件
        ((触发单位)的所有者)==(触发玩家)
    动作
        对话框 -为 (所有玩家) 隐藏 (对话框包含(被使用的对话框控件))


怎么让单位和他的变种双击其中一个都能选中?比如我想选择腾跃虫和分裂虫,我可以按住ctrl或双击点击其中一个兵种屏幕中的腾跃虫和分裂虫就会选中到一起

点评

“被使用的对话框控件”只能响应“对话框控件被使用”事件。按键盘可以直接指定关闭哪个(全局变量)对话框。  发表于 2016-7-1 14:31
回复

使用道具 举报

 楼主| 发表于 2016-7-1 15:35:08 | 显示全部楼层
yxxiaobin 发表于 2016-6-27 20:38
在合适的时机显示“大面板”对话框,因为命令面板控件在对话框内,所以本质上是显示了明明面板控件。至于什 ...

怎么让单位和他的变种双击其中一个都能选中?比如我想选择腾跃虫和分裂虫,我可以按住ctrl或双击点击其中一个兵种屏幕中的腾跃虫和分裂虫就会选中到一起?
那个对话框有很多问题,比如选中几个幼虫后,只造了一个单位面板就出问题了,好像这个面板不管选中几个相同单位,但是只显示其中一个单位的面板,操作也局限于这一个单位,并不是像选中几个折跃门后按个快捷键就可以让所有的折跃门都开始造兵,结果就是折跃门造了兵后就出现冷却但不会换到另一个折跃门。
还有快捷键也有个奇葩bug,我用快捷键造兵,点击快捷键却使用了另一个单位的技能,快捷键和那个单位的技能按键一样,我都没有选中这个单位。这些问题该怎么解决?
回复

使用道具 举报

发表于 2016-7-2 09:24:38 | 显示全部楼层
1.单位页面有好多某某别名的字段,你都看一下就了解了。
2.选择单位本身就是会出现问题,子组识别是困难的,这一点前边多次说过。所以我并没有为面板注册一个子组,而是只注册一个单位。建议使用单位被点击事件,点谁操作谁。如果你一定要响应选择事件,那么需要把被整个控制组设置给面板,而不是直接设置被选择的单位,这样就避免了无法操作多个的问题,但是一旦玩家使用tab选择子组,或者添加了子组优先级更高的单位,你的面板就无法及时更新。
3.这问题不明白怎么会出现,除非你的单位组设置错了,否则不会出现发布指令到一个不相干单位的情况。

点评

字段在哪看?被整个控制组设置给面板这个怎么做?单位组怎么设置?  详情 回复 发表于 2016-7-4 13:31
回复

使用道具 举报

 楼主| 发表于 2016-7-4 13:30:48 | 显示全部楼层
yxxiaobin 发表于 2016-7-2 09:24
1.单位页面有好多某某别名的字段,你都看一下就了解了。
2.选择单位本身就是会出现问题,子组识别是困难的 ...

字段在哪看?被整个控制组设置给面板这个怎么做?单位组怎么设置?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 06:59 , Processed in 0.505220 second(s), 35 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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