找回密码
 点一下
查看: 1975|回复: 20

随机技能的问题

[复制链接]
发表于 2012-1-8 16:41:19 | 显示全部楼层 |阅读模式
触发的高手能帮看看嘛?怎么随不出技能了
刚开始的几个英雄可以随得到技能,可是到后面就会出现没法随机技能的情况,请帮我看看怎么回事啊
快崩溃了,我的触发太菜了,已经尽了九牛二虎之力了
222.jpg



3C 随机技能.rar (341 KB, 下载次数: 17)
发表于 2012-1-9 01:04:49 | 显示全部楼层
LZ这个T的写法个人感觉有些诡异……

这个T本身单个技能只有最多20个英雄可以加(即第一个技能只有20个英雄能得到),但实际是,第一次触发了这个T后,就进行了0.1秒循环运行,这期间触发单位仍旧在Heros里,符合条件,于是继续判定,并且将对应的Ability1_01等设置成TRUE,第一次判定之后的技能倒是没加上,LZ用的似乎是工程升级做的添加可学技能,应该替换了一次就换不了其他技能了;

于是相当于每个单位至少多设置一个Ability1_X(X=01,02,03……20)为TRUE,第二个及之后的英雄随技能的时候自然就少了;
[trigger]Random Ability 1
    事件
        单位 - 任意单位进入 LightStart <预设>
        单位 - 任意单位进入 DarkStart <预设>
    条件
        省略……        
    动作
        -------- 第一技能 --------
        设置 Random_Ability = (随机整数,最小值: 1 最大值: 1)
        游戏 - 对 玩家1(红色) 在屏幕位移(0.00,0.00)处显示文本: (转换 Random_Ability 为字符串)
        以下省略……
[/trigger]
LZ可以在动作的这个位置加这个显示文本信息动作看下显示结果~
我就选了6个英雄就已经将16个Ability1_X设置为TRUE了。。

还有个问题就是这个T的写法会导致最后剩几个技能的时候也选不到。。
LZ的写法是触发事件后每0.1秒循环该T,并在1秒后将触发单位从Heros里删除
T处理过程如下:
假设剩最后一个技能了
英雄被选择后进入区域触发事件,随到这个技能的概率是1/20,大概随不到吧,那么等0.1秒后随第二次;
由于前后两次随机数并不相干(即不会因为第一次随到什么数而影响第二次随机),所以概率仍旧是1/20,大概……也没随到吧。。
那么第三次……运气差了点又没随到。。
第四次总有了吧……可惜了。。
第五次……
……
第十次……绝望了。。
第十一次?不好意思木有机会了,单位被踢出Heros了……


另外LZ用等待玩家时间。。这个会造成比较大的误差,尤其是多人联机大家网速差距较大的时候

其实。。个人觉得没必要这么写……
就直接进入区域后触发Random Ability 1,然后运行2,2里运行3,3里运行4,在4的最后直接将单位从Heros里删除,没必要用开启/关闭T以及等待。。

还有一点我没看懂……
第一个单位触发后,应该是将Random Ability 1关闭了且之后没再开启,为什么后面的英雄还能触发……
回复

使用道具 举报

发表于 2012-1-9 01:43:16 | 显示全部楼层
话说你可以参照我之前做的刷在兵身上的随机技能效果~~~~~~~

我的是刷兵的时候随机在48个技能里面添加1~3个技能到兵身上

PS:只有核心刷怪部分,至于其他的东西你不知道的话,就来问我吧

http://bbs.islga.org/read-htm-tid-583369.html



[s:187]
回复

使用道具 举报

发表于 2012-1-9 01:50:12 | 显示全部楼层
10235724429:话说你可以参照我之前做的刷在兵身上的随机技能效果~~~~~~~




....... (2012-01-09 01:43)
1. LS没给链接……谁知道是哪个。。
2. LS随机的是单位技能吧,LZ要刷英雄可学技能且技能不能重复
3. 刷兵给技能和选英雄后给技能多少还是有点不用的吧~
回复

使用道具 举报

发表于 2012-1-9 01:57:13 | 显示全部楼层
连接给你了~~~
不懂就加我QQ吧

我慢慢帮你

PS:你说的东西全部满足你的要求
技能不会获得相同的技能,一定是不同的技能
回复

使用道具 举报

 楼主| 发表于 2012-1-9 13:57:51 | 显示全部楼层
不能重复的随机技能对小弟来说的还是太难了。。。看得头都痛了,高手能帮把这个改良一下吗
回复

使用道具 举报

发表于 2012-1-9 14:24:12 | 显示全部楼层
[s:173]
好吧,不过我目前在修改我做的地图BUG,至于随机系统我一会帮你改改吧
回复

使用道具 举报

发表于 2012-1-9 15:17:03 | 显示全部楼层
[s:187]

我发现我在原版上改,不如帮你做个新的演示比较好。。。。。

一会帮你做一个
回复

使用道具 举报

发表于 2012-1-9 20:07:17 | 显示全部楼层

回 6楼(10235724429) 的帖子

10235724429: [s:173]
好吧,不过我目前在修改我做的地图BUG,至于随机系统我一会帮你改改吧&#160;(2012-01-09 14:24)&#160;
.....话说,随机系统用递归做不好吗?“
    用JASS啊.....
递归啊 ...
    摇一个技能
    被用了这个技能
   再次进入函数
   否则加给英雄
回复

使用道具 举报

发表于 2012-1-9 21:20:11 | 显示全部楼层
是小树苗喵~
要是不能重复的随机技能的话……
其实有种随机方式可以试试……

把一群单位添加进单位组,为每个单位绑定技能,每次为英雄添加技能就选取单位组内的随机单位,获取绑定的技能,选完之后吧单位从单位组里踢出去,这样单位组内单位会越来越少,也不会出现选取无效的问题……

单纯从数字入手的话……没想到好方法……

然后说说具体绑定方式吧……
一个单位组,技能几个,马甲就几个……
先用一个数组变量记录好所有技能;
然后把所有马甲添加进单位组;
循环整数A从1~X做动作
   设置unit(循环整数A)=group内随机单位
   设置unit(循环整数A)的自定义值为(循环整数A)
   从group内移除unit(循环整数A)

好了,这样单位就绑定上随机技能了
添加技能的时候就从单位组里随机选个单位,再从单位的自定义值里找到记录技能的数组变量的位置……
大概就这样了……
没时间去弄WE,就随手这样写了,马甲绝对是最容易理解的方式,不懂再去问问龙吧,反正他有时间……
小树苗,下次发模型能加动作不……
回复

使用道具 举报

 楼主| 发表于 2012-1-10 11:23:22 | 显示全部楼层
残念啊,看来只能先用能重复技能的玩了

你发模型啊,只要是标准姿势就容易绑定动作,
非标准姿势的话就得多花不少时间来改为标准的。。。
如果要和游戏里相同的动作,这个就更加麻烦,不过应该还是可以的。。。但是就要更耗时间了
回复

使用道具 举报

发表于 2012-1-10 12:32:11 | 显示全部楼层
为啥不用猫咪的方法?
难道说有成千上万个技能?
那么多的马甲用来摇奖的话估计会卡……
好吧,用纯数字的方法,再做一次……

依旧要用到数组变量……

初始化用的触发
事件:
游戏开始后1s
动作:
——————技能数组变量的初始化——————
——————共有X个技能——————
设置skill[1] = 风暴之锤
设置skill[2] =重击
设置skill[3] =雷霆一击
……
设置skill[X] = 死亡凋零
——————其他整数的初始化——————
设置C = 1


调整顺序
事件:
动作:
设置int = 1到(X-C+1)之间的随机整数
为英雄添加技能skill[int]
设置skill[0] = skill[int]
设置skill[int] = skill[(X-C+1)]
设置skill[(X-C+1)] = skill[0]
设置C = (C+1)

调整顺序的触发在运行过程中会随机改变技能的顺序,可以边添加技能边运行触发,也可以完成触发的整个循环,然后按顺序为英雄添加技能。

如有不懂的地方,继续问龙,我相信龙的实力……
回复

使用道具 举报

发表于 2012-1-10 16:17:39 | 显示全部楼层

回 10楼(小树苗) 的帖子

小树苗: 残念啊,看来只能先用能重复技能的玩了

你发模型啊,只要是标准姿势就容易绑定动作,
非标准姿势的话就得多花不少时间来改为标准的。。。
如果要和游戏里相同的动作,这个就更加麻烦,不过应该还是可以的。。。但是就要更耗时间了 (2012-01-10 11:23)
我帮你做了演示,很简单的,自己去移植就行了。整个演示很简单,按ESC不断的可以切换英雄的4个技能(得到的技能一定不相同)
随机技能系统~.w3x (18 KB, 下载次数: 27)
回复

使用道具 举报

发表于 2012-1-10 16:23:54 | 显示全部楼层
感觉楼主的一些触发写法很诡异了……比如选择单位之后开启随机技能模式,有这个必要嘛,而且……HERO 1-20,做了20个触发器, ,好吧,其实这样也算是清楚,不过在分配技能方面这样子就不是很好了。

一般来讲,如果你一个触发应用到另外一个触发的动作,尽量采用“运行触发器”而不是“开启触发器”,运行后那部分的触发会保持你的一些动作连续性和变量继承,比如触发单位之类的,就相当于在同一个触发里写的动作,好处是可以整合成一个。

lo的方式是随机中最方便的模式了,就是采用排除方式,你有20个技能,每一次有人选择的话,就随机1-20的技能给这个人,把这个技能移到一个空变量,然后把最末位技能移到该位置,再接少上限值。

这种方式不需要用到单位组,只跟据游戏人数的多少自动进行分配了。
回复

使用道具 举报

发表于 2012-1-10 16:36:01 | 显示全部楼层

回 12楼(10235724429) 的帖子

10235724429:我帮你做了演示,很简单的,自己去移植就行了。整个演示很简单,按ESC不断的可以切换英雄的4个技能(得到的技能一定不相同)


(2012-01-10 16:17)
演示不错,但不适合楼主移值,因为你用了变量存储已分配技能,并且是针对单人的。

最好是让楼主明白这些技能的分配模式和作用,懂了自然就会做了。
回复

使用道具 举报

发表于 2012-1-10 16:44:26 | 显示全部楼层

回 14楼(551155) 的帖子

551155:演示不错,但不适合楼主移值,因为你用了变量存储已分配技能,并且是针对单人的。

最好是让楼主明白这些技能的分配模式和作用,懂了自然就会做了。
(2012-01-10 16:36)
[s:177]

不是说针对随机么,那么不存在其他问题嘛。难倒还需要做到所有英雄的技能全部不一样?

每个人物获得技能的时候就能删除之前的所有技能,所以是适合多人的啊

我郁闷了
回复

使用道具 举报

发表于 2012-1-10 16:48:02 | 显示全部楼层
好了,楼主需要什么变化都行,加我QQ和我说下就行了

我忙着搞SLG的寻路系统,有点头疼~
回复

使用道具 举报

发表于 2012-1-10 17:02:47 | 显示全部楼层

回 16楼(10235724429) 的帖子

10235724429:好了,楼主需要什么变化都行,加我QQ和我说下就行了

我忙着搞SLG的寻路系统,有点头疼~ (2012-01-10 16:48)
呵呵,其实我真心不是很喜欢直接做演示给别人了,因为不一定适合,而且拿了演示之后可能依然还是不懂。SLG啊,做的是什么内容,很期待的说。
回复

使用道具 举报

 楼主| 发表于 2012-1-10 17:58:30 | 显示全部楼层

回 11楼(lo) 的帖子

lo:为啥不用猫咪的方法?
难道说有成千上万个技能?
那么多的马甲用来摇奖的话估计会卡……
好吧,用纯数字的方法,再做一次……

.......&#160;(2012-01-10 12:32)&#160;
研究中,吃力啊
回复

使用道具 举报

发表于 2012-1-10 18:22:35 | 显示全部楼层
加油,小树苗,喵~
其实主要的原理,某大大已经解释得很清楚了,不过理清逻辑的话,对新手是有点压力……
想当初,猫咪看西瓜的数组演示也是毫无头绪,不过后来接触WE的时间长了……于是在某天就飞升了……
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-6 13:21 , Processed in 0.038930 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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