找回密码
 点一下
查看: 1613|回复: 16

用T模拟随机被动技能的问题

[复制链接]
发表于 2008-9-30 17:55:09 | 显示全部楼层 |阅读模式
攻击时有一定几率发动技能XXX(比如百分之25的几率吧)
估计都是这么写吧?
事件
任意单位被攻击
条件
如果攻击单位=XX
如果1-25随机数<=100
动作
放技能

可是这么一来就出现一个问题
因为魔兽收到攻击事件的时候没真的攻击了
于是只要周围有敌人的话
会不断自动攻击
这样只要一直按S(停止)就会不断触发这个事件
然后嘛...基本等于无限释放随机技能

有没有什么好的解决方法呢?(纯脚本实现的)
发表于 2008-9-30 18:47:14 | 显示全部楼层
这不像袋鼠会问的问题呢
严谨点的模拟被动技能都会用到damage event
回复

使用道具 举报

发表于 2008-9-30 19:00:10 | 显示全部楼层
如果1-25随机数<=100

唉唉,对这句感觉很诧异呢………………
回复

使用道具 举报

 楼主| 发表于 2008-9-30 20:41:14 | 显示全部楼层
引用第1楼kook于2008-09-30 18:47发表的  :
这不像袋鼠会问的问题呢
严谨点的模拟被动技能都会用到damage event
damage event貌似只能针对指定单位口牙?
注册任意单位好像比较麻烦吧
引用第2楼zhuzeitou于2008-09-30 19:00发表的  :
如果1-25随机数<=100

唉唉,对这句感觉很诧异呢………………
咋个诧异法?
回复

使用道具 举报

发表于 2008-9-30 20:46:21 | 显示全部楼层
1-25随机数<=100不是恒成立么???
回复

使用道具 举报

 楼主| 发表于 2008-9-30 20:47:32 | 显示全部楼层
呃...
这个嘛
你就无视吧(1-100<=25)
问题是主要的那个咋解决么
回复

使用道具 举报

发表于 2008-9-30 20:49:51 | 显示全部楼层
那个我的话只会注册动态事件了,还没找到更好的方法………………

不过伤害事件无法判断物理还是魔法,所以要判断可能需要法球………………
回复

使用道具 举报

 楼主| 发表于 2008-9-30 20:53:41 | 显示全部楼层
我咋一直觉得动态注册全地图的事件效率很低口牙
难道纯J就咩有简单点的完美解决方案
回复

使用道具 举报

发表于 2008-9-30 21:51:38 | 显示全部楼层
加个等待0.3秒在动作的第一行
回复

使用道具 举报

 楼主| 发表于 2008-10-1 00:57:32 | 显示全部楼层
引用第8楼z416于2008-09-30 21:51发表的  :
加个等待0.3秒在动作的第一行
等待后后面的语句还是会运行
跟没加没任何区别
回复

使用道具 举报

发表于 2008-10-1 00:59:01 | 显示全部楼层
刚才看了下dota中食尸鬼的盛宴,并且自己尝试了下,捕捉近战貌似米什么问题,远程仍然不太行额
回复

使用道具 举报

 楼主| 发表于 2008-10-1 01:03:03 | 显示全部楼层
太郁闷了
难道要不断WAIT然后判断死血没...
会不会很容易掉线口牙
回复

使用道具 举报

发表于 2008-10-1 01:20:37 | 显示全部楼层
dota里的做法貌似是这样:
食尸鬼第一次学习盛宴技能时注册单位被攻击,判断攻击单位拥有技能及触发单位不是肉山、不是建筑、不是友军
食尸鬼攻击时判断是否已经被注册事件,如果没有,则注册单位受伤害事件以及1秒事件,并设置0.4秒内不再有新的事件被注册
单位受伤害时创建特效并处理伤害和hp,并且删除触发,释放缓存,1秒时间到了的话也会删除触发,释放缓存

我自己做的时候修改了下,第一步注册的是获取攻击目标事件,并且获取目标时另外注册了发布各类命令事件,发布命令和时间到都会删除触发

不过这只对近战有效,远程就不行了,唉唉
回复

使用道具 举报

 楼主| 发表于 2008-10-2 21:33:08 | 显示全部楼层

看来素没啥好办法了
回复

使用道具 举报

发表于 2008-10-2 23:22:31 | 显示全部楼层
这个问题....
过时好久了 了吧...
话说 我 做过这方面的研究...

通过研究 发现./..被动几率技能最好的..方法就是 捕捉 BUFF
一开始...我用的 .....是 ...捕捉..致命一击的BUFF..不过 有个问题就是 会带有晕眩效果...
之后 大家考论后...发现捕捉闪电球的BUFF..是最好的办法...

以前的帖子:
http://www.islga.org/bbs/read.php?tid=18026

你去试试看吧 ...
回复

使用道具 举报

发表于 2008-10-3 15:44:33 | 显示全部楼层
引用第12楼zhuzeitou于2008-10-01 01:20发表的  :
dota里的做法貌似是这样:
食尸鬼第一次学习盛宴技能时注册单位被攻击,判断攻击单位拥有技能及触发单位不是肉山、不是建筑、不是友军
食尸鬼攻击时判断是否已经被注册事件,如果没有,则注册单位受伤害事件以及1秒事件,并设置0.4秒内不再有新的事件被注册
单位受伤害时创建特效并处理伤害和hp,并且删除触发,释放缓存,1秒时间到了的话也会删除触发,释放缓存

.......
远程的风暴之灵貌似也是这样判断的,不过因为远程有弹道,攻击生效的延迟更长,所以风暴之灵没有伤害性法术,攻击速度太快的话也会有问题

我觉得可以在动态注册受伤害事件的时候多加单位发布命令事件,不是右键或者攻击命令并且目标不是被攻击的单位就删除触发
回复

使用道具 举报

发表于 2008-10-3 16:14:55 | 显示全部楼层
但是远程的话如果部判断命令,在投射物飞行过程中释放瞬发伤害技能,技能伤害就会被认为是攻击伤害,如果判断命令,那么投射物飞行时发布其他命令触发就会被干掉

风熊猫的那个灭看过呢,去看下~~
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-21 08:21 , Processed in 0.033514 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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