找回密码
 点一下
楼主: 冷漠

问几个问题

[复制链接]
发表于 2012-2-5 14:08:04 | 显示全部楼层

回 冷漠 的帖子

冷漠:多面板 - 设置 (最后创建的多面板) 的标题为 (转换 ((本地玩家) 的玩家索引号) 为字符串)

那如果我这样用的话不会出现问题吧? (2012-02-04 19:23)
可以...
回复

使用道具 举报

发表于 2012-2-5 14:09:27 | 显示全部楼层

回 cynsw 的帖子

cynsw:不是才有人问过多面板异步显示么。。。

记住只能异步【显示】,其他的包你掉线。
(2012-02-05 00:34)
异步修改项内容也可以
回复

使用道具 举报

发表于 2012-2-5 14:15:05 | 显示全部楼层
做12个不同的多面板分别给玩家们显示比较好,异步修改内容虽然可以,可是编辑器的
ui会弄出一些惊喜给你来(比如BJ函数冷不丁创建个临时用的多面板项,你就哭了)。
回复

使用道具 举报

 楼主| 发表于 2012-2-5 18:18:47 | 显示全部楼层
呃,昨天测试了才知道,原来循环整数创建多面板不隐藏的话,那么最终只会显示最后创建那个?

按稳定性来说,最好还是每个玩家绑定一个?

[trigger]对战初始化
    事件
        时间 - 游戏开始 0.00 秒
    条件
    动作
        For循环整数A从 1 到 12, 做动作
            Loop - 动作
                如果所有条件成立则做动作1,否则做动作2
                    If - 条件
                        ((玩家 循环整数A [R]) 的游戏状态) 等于 正在游戏
                    Then - 动作
                        多面板 - 创建一个列数为 1 行数为 1 标题为 <空字符串> 的多面板
                        设置 m[循环整数A [R]] = 最后创建的多面板 [R]
                        多面板 - 设置 m[循环整数A [R]] 隐藏
                    Else - 动作
[/trigger]


比如这样对每个在线的玩家建一个多面板,但是该用什么事件来对本地玩家显示呢?

另外这样做的话每次改变数据就要循环12次了吧?
回复

使用道具 举报

发表于 2012-2-5 19:37:14 | 显示全部楼层
从1~12循环
if 本地玩家等于玩家(循环整数)
then 创建多面板

这样,不要纠结于“显示”,换个思路,否则你会进死胡同
回复

使用道具 举报

 楼主| 发表于 2012-2-5 20:37:44 | 显示全部楼层
[trigger]
对战初始化
    事件
        时间 - 游戏开始 0.00 秒
    条件
    动作
        For循环整数A从 1 到 12, 做动作
            Loop - 动作
                如果所有条件成立则做动作1,否则做动作2
                    If - 条件
                        (本地玩家) 等于 (玩家 循环整数A [R])
                    Then - 动作
                        多面板 - 创建一个列数为 1 行数为 1 标题为 <空字符串> 的多面板
                        设置 m[循环整数A [R]] = 最后创建的多面板 [R]
                        多面板 - 设置 m[循环整数A [R]] 隐藏
                        多面板 - 设置 m[((本地玩家) 的玩家索引号)] 显示
                    Else - 动作
[/trigger]
[trigger]
未命名触发器 001
    事件
        玩家 - 玩家1(红色) 按下Esc键
    条件
    动作
        设置 z[((触发玩家) 的玩家索引号)] = (z[((触发玩家) 的玩家索引号)] + 1)
        多面板 - 设置 m[((触发玩家) 的玩家索引号)] 的标题为 (转换 z[((触发玩家) 的玩家索引号)] 为字符串)
[/trigger]

实际做法是这样?

在杀死单位时修改标题用判断触发单位所有者的索引来捕捉玩家绑定多面板

然后其他一览表用循环整数12次来修改么?
回复

使用道具 举报

发表于 2012-2-5 21:28:12 | 显示全部楼层
[trigger]
createboard
    事件
        时间 - 当游戏逝去 0.00 秒
    条件
    动作
        循环动作[循环整数A]从 1 到 12, 运行 (Loop - 动作)
            Loop - 动作
                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                    If - 条件
                        (本地玩家) 等于 (玩家 (循环整数A))
                    Then - 动作
                        多面板 - 创建一个列数为 1 行数为 1 标题为 <空字符串> 的多面板
                        设置 board = (最后创建的多面板)
                    Else - 动作

[/trigger]
[trigger]
kills
    事件
        单位 - 任意单位 死亡
    条件
        (本地玩家) 等于 ((凶手单位) 的所有者)
    动作
        设置 int = (int + 1)
        多面板 - 设置 board 的标题为 (转换 int 为字符串)

[/trigger]
回复

使用道具 举报

 楼主| 发表于 2012-2-5 21:53:02 | 显示全部楼层

回 · 的帖子

·:[trigger]
createboard
    事件
        时间 - 当游戏逝去 0.00 秒
    条件
....... (2012-02-05 21:28)
这...

我晕了...

理解不能

为什么是这样子?

如果循环12次创建多面板变量不用索引的话那么变量绑定的不就是最后一个新建的多面板么?
回复

使用道具 举报

发表于 2012-2-5 22:07:35 | 显示全部楼层
点点必掉线,动作明显不能异步执行 。
回复

使用道具 举报

发表于 2012-2-5 22:19:42 | 显示全部楼层
循环12次对本地玩家创建多面板更是多此一举……
实际上它就等于创建一个多面板……
点点需要再补习一下本地玩家……

楼主的触发也不对……
既然要循环,那肯定是同步创建异步显示。
创建多面板时不需要使用本地玩家,你只需要创建12个对应玩家的多面板就可以了。
显示时再用本地玩家,只显示对应自己的那块多面板即可。

其实要想学习本地玩家的用法,搜索“本地玩家”就有很多资料了
学会了怎么“同步创建异步显示”,那么基本上你就学会了本地玩家的精髓了。
回复

使用道具 举报

 楼主| 发表于 2012-2-5 22:21:44 | 显示全部楼层

回 传说中的英雄 的帖子

传说中的英雄:循环12次对本地玩家创建多面板更是多此一举……
实际上它就等于创建一个多面板……

点点再补习一下本地玩家的知识吧…… (2012-02-05 22:19)
那请问到底是怎么样写法才是正确的呢?
回复

使用道具 举报

发表于 2012-2-5 22:26:08 | 显示全部楼层
具体的触发嘛,我下个war3再说。
回复

使用道具 举报

 楼主| 发表于 2012-2-5 22:37:25 | 显示全部楼层

回 传说中的英雄 的帖子

传说中的英雄:循环12次对本地玩家创建多面板更是多此一举……
实际上它就等于创建一个多面板……
点点需要再补习一下本地玩家……

楼主的触发也不对……
....... (2012-02-05 22:19)
搜索过了

没有什么相关的资料

因为以前学的时候看见老狼的UI上写着弄不懂本地玩家的话就会掉线

所以就没用过也没弄懂过

如果可以的话麻烦你帮忙写个正确的出发点给我参考理解一下...
回复

使用道具 举报

发表于 2012-2-5 22:44:30 | 显示全部楼层
[trigger]Create
    事件
        时间 - 游戏开始 0.00 秒
    条件
    动作
        For LoopInteger 从 1 到 12, 做动作
            Loop - 动作
                多面板 - 创建一个列数为 1 行数为 1 标题为 <空字符串> 的多面板
                设置 MultiBoard[LoopInteger] = (最后创建的多面板)
        多面板 - 显示 MultiBoard[((本地玩家) 的玩家索引号)]
[/trigger]
[trigger]Kills
    事件
        单位 - 任意单位 死亡
    条件
    动作
        设置 KillNumber[(((凶手单位) 的所有者) 的玩家索引号)] = (KillNumber[(((凶手单位) 的所有者) 的玩家索引号)] + 1)
        多面板 - 设置 MultiBoard[(((凶手单位) 的所有者) 的玩家索引号)] 第 1 列,第 1 行的项目文本为 (转换 KillNumber[(((凶手单位) 的所有者) 的玩家索引号)] 为字符串)
[/trigger]
回复

使用道具 举报

发表于 2012-2-5 22:52:47 | 显示全部楼层
至于我说的参考资料,这个就是很重要的一个。
http://bbs.islga.org/read-htm-tid-22147.html
包括“特效的同步创建异步显示”,还有“什么对象可以异步创建”

除了这个还有很多重要资料。
比如有个异步删除相同数量的计时器,虽然主handle表不同步,但是游戏还是可以继续正常运行一段时间……
或者是使用本地玩家使两个人的录像显示完全不同的内容……
……………………
要是你感兴趣绝对可以搜索到,我说有很多重要资料就绝对不骗你。
回复

使用道具 举报

 楼主| 发表于 2012-2-5 23:05:04 | 显示全部楼层

回 传说中的英雄 的帖子

传说中的英雄:至于我说的参考资料,这个就是很重要的一个。
http://bbs.islga.org/read-htm-tid-22147.html
包括“特效的同步创建异步显示”,还有“什么对象可以异步创建”

除了这个还有很多重要资料。
....... (2012-02-05 22:52)
J就无能为力了啊...
回复

使用道具 举报

发表于 2012-2-5 23:08:37 | 显示全部楼层
“翻译”成T来说就是:这样就可以创建一个只对玩家一可见的特效而不掉线
[trigger]如果所有条件成立则做动作1,否则做动作2
    If - 条件
        (本地玩家) 等于 玩家1(红色)
    Then - 动作
        特殊效果 - 在 ((可用地图区域) 的中心点) 创建特效: Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl
    Else - 动作
        特殊效果 - 在 ((可用地图区域) 的中心点) 创建特效: <空字符串>
[/trigger]
去掉ELSE就会掉线
回复

使用道具 举报

 楼主| 发表于 2012-2-5 23:08:39 | 显示全部楼层

回 传说中的英雄 的帖子

传说中的英雄:[trigger]Create
    事件
        时间 - 游戏开始 0.00 秒
    条件
    动作
....... (2012-02-05 22:44)
这个触发的话

第一条为12个玩家各建了一个多面板

直接对本地玩家显示是因为多面板只会显示一个的原因?

第二条的触发改变属于自己的标题的话

只需要判断索引就够了?

而其他的所有玩家都显示的文本的话

就直接循环12次给每个玩家的多面板修改就可以了是么?
回复

使用道具 举报

 楼主| 发表于 2012-2-5 23:10:41 | 显示全部楼层

回 传说中的英雄 的帖子

传说中的英雄:“翻译”成T来说就是:这样就可以创建一个只对玩家一可见的特效而不掉线
[trigger]如果所有条件成立则做动作1,否则做动作2
    If - 条件
        (本地玩家) 等于 玩家1(红色)
    Then - 动作 .. (2012-02-05 23:08)
呃....

用上了本地玩家的话就必须要在else做动作么?
回复

使用道具 举报

发表于 2012-2-5 23:29:54 | 显示全部楼层
啊,为啥会掉线。。。据我了解创建多面板不会导致掉线来着(而且我那样写逻辑上来说不应该地址相同吗。。。)。。。给变量赋值和修改标题就更不会了呀。。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-6 13:20 , Processed in 0.096650 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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