找回密码
 点一下
查看: 1704|回复: 17

求助两种技能思路一个是攻击越来越高一个是累积恢复速度

[复制链接]
发表于 2009-10-8 22:07:58 | 显示全部楼层 |阅读模式
如题 两种技能都和物品有关
第一个是单位持有物品 攻击敌人的话 攻击力会越来越高 最多累积12次 每次增加10%
我是这样做的
[trigger]
DragonFury 1
    事件
        单位 - 任意单位 获得物品
    条件
        ((被操作物品) 的类型) 等于 |cFFFF9900五色巨龙之怒|r
    动作
        触发器 - 开启 DragonFury 2 <预设>
        设置 Integer[50] = 0
[/trigger]
[trigger]
DragonFury 2
    事件
        单位 - 任意单位 被攻击
    条件
        ((攻击单位) 拥有 |cFFFF9900五色巨龙之怒|r) 等于 TRUE
    动作
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                Integer[50] 等于 13
            Then - 动作
                设置 Integer[50] = 12
                设置 Point[69] = ((攻击单位) 的位置)
                单位 - 创建 1 个 隐藏单位 给 ((攻击单位) 的所有者) 在 Point[69] ,面向角度为 默认建筑朝向 度
                单位 - 为 最后创建的单位 [R] 添加 五色巨龙之怒
                单位 - 设置 最后创建的单位 [R] 的 五色巨龙之怒  等级为 Integer[50]
                单位 - 为 最后创建的单位 [R] 设置 水元素 类型的生命周期,持续时间为 0.50 秒
                单位 - 对 最后创建的单位 [R] 发布 不死族巫师 - 残废 命令到目标: (攻击单位)
                计时器 - 开启 Time[59] ,计时方式: 一次性 时间设置: 20.00 秒
                触发器 - 开启 DragonFury 4 <预设>
            Else - 动作
                设置 Integer[50] = (Integer[50] + 1)
                设置 Point[69] = ((攻击单位) 的位置)
                单位 - 创建 1 个 隐藏单位 给 ((攻击单位) 的所有者) 在 Point[69] ,面向角度为 默认建筑朝向 度
                单位 - 为 最后创建的单位 [R] 添加 五色巨龙之怒
                单位 - 设置 最后创建的单位 [R] 的 五色巨龙之怒  等级为 Integer[50]
                单位 - 为 最后创建的单位 [R] 设置 水元素 类型的生命周期,持续时间为 0.50 秒
                单位 - 对 最后创建的单位 [R] 发布 不死族巫师 - 残废 命令到目标: (攻击单位)
                计时器 - 开启 Time[59] ,计时方式: 一次性 时间设置: 20.00 秒
                触发器 - 开启 DragonFury 4 <预设>
[/trigger]
[trigger]
DragonFury 3
    事件
        单位 - 任意单位 丢弃物品
    条件
        ((被操作物品) 的类型) 等于 |cFFFF9900五色巨龙之怒|r
    动作
        触发器 - 关闭 DragonFury 2 <预设>
        设置 Integer[50] = 0
[/trigger]
[trigger]
DragonFury 4
    事件
        时间 - Time[59] 到期
    条件
    动作
        设置 Integer[50] = 0
[/trigger]
[trigger]
DragonFury 5
    事件
        单位 - 任意单位 死亡
    条件
        ((触发单位) 拥有 |cFFFF9900五色巨龙之怒|r) 等于 TRUE
    动作
        设置 Integer[50] = 0
[/trigger]

这个增加攻击力的效果 最好是有一个BUFF来显示 而且BUFF不能被驱散
我有试过用残废技能修改负数来做 可还是会被净化驱散
还有就是如果持有物品的单位超过1个 不同的单位对同类这个物品进行操作 就会变得奇怪
比如第一个单位先达到了12次累积  第二个单位再获得物品 次数会归零 这个和那整数变量有关 我又不知道怎么更好的解决


第二个技能是众所周知的DOTA里面的血精石
描述一下
简单来说就是如果单位持有物品 他周围1000范围内如果有敌方英雄死亡 就会为血精石增加1点能量
而每点能量可以增加英雄2点的生命恢复速度和20%的魔法恢复速度
持有物品的英雄死亡后 能量值会减半
这个物品不能丢弃
我是这样做的
[trigger]
Blood 1
    事件
        单位 - 任意单位 获得物品
    条件
        ((被操作物品) 的类型) 等于 血精石
    动作
        单位 - 为 (操作物品的单位) 添加 技能
        单位 - 为 (操作物品的单位) 添加 技能
[/trigger]
[trigger]
Blood 2
    事件
        单位 - 任意单位 死亡
    条件
        ((触发单位) 是 英雄) 等于 TRUE
    动作
        设置 UnitG[49] = (半径为 1000.00 圆心为 ((触发单位) 的位置) 且满足 ((((匹配单位) 是 ((触发单位) 的所有者) 的敌对单位) 等于 TRUE) and (((匹配单位) 拥有 血精石) 等于 TRUE)) 的所有单位)
        单位组 - 选取 UnitG[49] 内所有单位做动作
            Loop - 动作
                物品 - 设置 ((选取单位) 所持有的 血精石) 的使用次数为 ((((选取单位) 所持有的 血精石) 的使用次数) + 1)
                单位 - 设置 (选取单位) 的 技能 等级为 ((((选取单位) 所持有的 血精石) 的使用次数) + 1)
                单位 - 设置 (选取单位) 的 技能 等级为 ((((选取单位) 所持有的 血精石) 的使用次数) + 1)
                设置 Integer[49] = (Integer[49] + 1)
        单位组 - 删除 UnitG[49]
[/trigger]
[trigger]
Blood 3
    事件
        单位 - 任意单位 死亡
    条件
        ((触发单位) 拥有 血精石) 等于 TRUE
    动作
        设置 Integer[49] = (Integer[49] / 2)
        物品 - 设置 ((触发单位) 所持有的 血精石) 的使用次数为 Integer[49]
        单位 - 设置 (选取单位) 的 技能 等级为 Integer[49]
        单位 - 设置 (选取单位) 的 技能 等级为 Integer[49]
[/trigger]

如上 问题很多 如果是用直接添加技能+提升技能等级来控制累积恢复速度的话 我不知道哪里有问题 恢复速度好像不会正常的累积
我是用物品的增加生命恢复速度和增加魔法恢复速度的两个技能改成单位技能来添加的 每个技能21级
控制最大能量数为20 第一级无恢复效果
问题就是如果这么做 第一次获得物品的时候会很卡很卡。。大概2 3秒左右 我就开始觉得这个办法不可行了
而且(后来我没太仔细的测试) 大概目测的 恢复效果没办法正常累积

所以来此求助了 希望各位大人看见了能帮忙想想~~以上
还有我不是很懂jass 如果懂jass的大人发什么什么代码的话 希望可以说明一下它对应trigger的哪个函数

有点长  希望不要嫌我啰嗦呀..
发表于 2009-10-8 23:10:51 | 显示全部楼层
sf
J ····不会··,只是看过一个类似于你滴第一个技能思路滴演示,攻击单位拥有XXX,在攻击别人时,按次数添加攻击速度,就是越打越快,一旦停止攻击就衰减攻击速度········
回复

使用道具 举报

 楼主| 发表于 2009-10-9 05:57:29 | 显示全部楼层
引用第1楼pk321oo于2009-10-08 23:10发表的  :
sf
J ····不会··,只是看过一个类似于你滴第一个技能思路滴演示,攻击单位拥有XXX,在攻击别人时,按次数添加攻击速度,就是越打越快,一旦停止攻击就衰减攻击速度········

那个演示我看过了 也是用设置技能等级的方法 和我的一样
回复

使用道具 举报

发表于 2009-10-9 08:34:57 | 显示全部楼层
其实这个系统不复杂
不过如果你要多人使用的话
会涉及到延时参数的局域化
也就是需要存储系统……
比如1.24的hashtable

实际上就是个物品等级的问题
做一个物品,技能是对自己有效的加攻击速度的带buff的被动技能(比如耐久光环)
设置技能有13个等级(12+1)
加攻击速度的效果从0开始递增
然后注册单位接受伤害事件
条件是判断攻击者是否有物品
动作是
设置物品的技能的等级+1(为13级就不变了)
然后如果单位带有的物品的技能的等级为1
开启某个计时器(计时器要和攻击单位绑定)
计时器到期的事件为设置技能等级为1
如果等级不为1
那么直接重置计时器的倒计时
然后单位丢弃物品时
(这个触发用不用写你自己测试下,丢弃物品再捡起来后后技能的等级是不是还原)
设置技能等级为0
回复

使用道具 举报

发表于 2009-10-9 09:18:30 | 显示全部楼层
技能卡的话
创建英雄时添加删除一次就行了
效果应该是可以正常叠加的
实际上如果直接回复数值的话
那么用触发修改生命值魔法值就可以了
不用技能
回复

使用道具 举报

 楼主| 发表于 2009-10-9 09:20:38 | 显示全部楼层
那个啥 其实我是想加攻击力 不过这个不重要
问题是光环技能的buff不能够及时的更新 虽然也不是很重要 感觉不太好
而且我遇到的另外一个问题是 如果有一个技能等级设置的很多 比如13级
如果这技能不默认在某个单位身上并且单位初始放在地图上的话
这个技能被调用的时候就会卡很久 大概1~3秒 级别越多就越卡 这个办法能不能解决呀
比如在读图的时候提前读取它 什么的
回复

使用道具 举报

 楼主| 发表于 2009-10-9 09:26:29 | 显示全部楼层
引用第4楼疯人¢衰人于2009-10-09 09:18发表的  :
技能卡的话
创建英雄时添加删除一次就行了
效果应该是可以正常叠加的
实际上如果直接回复数值的话
那么用触发修改生命值魔法值就可以了
.......

生命值还好说
魔法值百分比的要怎么算 还是说那个百分比是个假象?
回复

使用道具 举报

发表于 2009-10-9 09:40:04 | 显示全部楼层
魔法值的回复速度可以算出来的……
然后算百分比……
具体的公式我也不知道……
不过应该有人研究吧
回复

使用道具 举报

 楼主| 发表于 2009-10-9 09:49:39 | 显示全部楼层
等下我试试用马甲把一些技能初始放在地图上
总之先谢谢疯人大人(怪别扭的..
回复

使用道具 举报

发表于 2009-10-10 17:05:41 | 显示全部楼层
第一个是单位持有物品 攻击敌人的话 攻击力会越来越高 最多累积12次 每次增加10%

这个是不是可以用12级的粉碎来做啊。
回复

使用道具 举报

 楼主| 发表于 2009-10-14 19:27:03 | 显示全部楼层
我是希望有一个buff来显示增加了攻击力  粉碎没buff吧
回复

使用道具 举报

发表于 2009-10-14 19:37:30 | 显示全部楼层
你在给他硬打一个buff即可
回复

使用道具 举报

发表于 2009-10-14 20:28:08 | 显示全部楼层
命令光环......

书本确实可以开始放一个有技能的单位,进入地图后删掉解决卡的问题,延长读图时间而已

血晶石用计时器大概简单一点吧.
回复

使用道具 举报

 楼主| 发表于 2009-10-14 21:25:21 | 显示全部楼层
其实那都不重要 重要的是我现在血精石的效果做不出来 我用物品技能的恢复生命和恢复魔法为模版改成单位技能添加给英雄
实际上恢复速度好像不能正确叠加  我也不知道那个杀死敌人设置等级有没有起作用
我用一个显示数字信息动作放在设置等级后面 发现可以正常的叠加数字
但是单位的回复速度我怎么看也看不出来有越来越高
按理说40多点能量的话  每秒180的回血啊 30多攻击力的小兵3个 怎么打也不至于掉到一半以下吧
回复

使用道具 举报

发表于 2009-10-15 03:41:41 | 显示全部楼层
引用第15楼小滴于2009-10-14 21:25发表的  :
其实那都不重要 重要的是我现在血精石的效果做不出来 我用物品技能的恢复生命和恢复魔法为模版改成单位技能添加给英雄
实际上恢复速度好像不能正确叠加  我也不知道那个杀死敌人设置等级有没有起作用
我用一个显示数字信息动作放在设置等级后面 发现可以正常的叠加数字
但是单位的回复速度我怎么看也看不出来有越来越高
按理说40多点能量的话  每秒180的回血啊 30多攻击力的小兵3个 怎么打也不至于掉到一半以下吧

生命值魔法值恢复生命什么的,比较麻烦,不能直接设置等级——必须使用负值技能(这些东西提升等级没有效果,但是如果删除就会 增加或者减少 该等级 减少或者增加 的量)

所以,你真正要做的是,每当得到血晶石或者血晶石增加,给他一本负数的书,设置等级,然后删掉这本书,相对的,如果丢弃血晶石或者血晶石减少,就要给他一本正数的书,设置等级,然后删掉……好麻烦……

建议使用Timer

获得血晶石→判断是否还有其它血晶石→每秒恢复血晶石总数*2的血啊魔啊什么的→该Timer绑定单位,如果丢弃就删除Timer
回复

使用道具 举报

发表于 2009-10-15 09:42:48 | 显示全部楼层
- -血精石的回复你没看出来是假的么。。。。每1秒根据玩家身上血精石的数量回血回魔
回复

使用道具 举报

发表于 2009-10-15 09:51:52 | 显示全部楼层
血精石那初始的回复是技能,所谓的能量点数就是触发了,叠得高了你可以明显地看到那个是一段一段加的
回复

使用道具 举报

 楼主| 发表于 2009-10-21 14:51:20 | 显示全部楼层
嗯谢谢楼上几位  我大概了解了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-4 11:25 , Processed in 0.034994 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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