找回密码
 点一下
查看: 1562|回复: 7

关于自定义技能的设想.已经放上演示。。。

  [复制链接]
发表于 2008-2-29 20:09:49 | 显示全部楼层 |阅读模式
    目前流行的图,无论技能有多华丽,大都是静态的,就是说每个英雄的技能是被事先固定好的,我很早就想做一个图,使得玩家可以自己挑选技能技能以商品的形式陈列在商店,玩家可以去挑选、学习和升级自己的技能。    这样,除了固有的技能可以陈列外,自己做的技能必须要异步化才行。就是说,技能必须要满足下列条件:不同的玩家虽然选择了不同的英雄,但有可能学习了同样的技能,这样,如果不同的单位在某段时间内同时释放了同一种技能,必须要互不影响
    这样,使用Trigger是很难实现的,因为不能用全局变量来保存状态等数据,那将需要大量的数组用来保存英雄当前学习的技能,更要命的是,一个玩家可能会拥有好几个英雄。
    那么,最好的办法就是用J了。J+return bug + game cache的确很好,很方便,功能也很强大。但是,经过本人长期的研究,发现使用J也是很有局限性,比如在Group里面,就没有类似GetTriggeringTrigger或者GetExpiredTimer的函数——GerCurrentGroup。使得使用GameCache对于区域性的对敌人伤害的技能异步化非常困难。
    本人在近期内会上传一些已经做好了的各种异步化的技能演示,还有在商店购买技能的演示。

    然后,这篇讨论作为抛砖引玉,希望各位高手在闲暇时,能够做一些异步化的技能,最好能一起想办法解决掉上面我提到过的“Group”的问题。大家一起研究嘛。。。

    谢谢。。。

    魔兽是大家的。。

    下面是个比较简单的演示:
abc.w3x (26 KB, 下载次数: 39)
发表于 2008-2-29 21:21:41 | 显示全部楼层
恩. DOTA的部分技能就是固定的.
回复

使用道具 举报

发表于 2008-2-29 21:26:16 | 显示全部楼层
不要死盯着单位组嘛,用单位数组+gc我觉得也可以
回复

使用道具 举报

 楼主| 发表于 2008-2-29 21:50:06 | 显示全部楼层
即使是用单位数组,也需要枚举范围内的敌人,然后加入到这个数组中。那么在枚举的过程中,就不能得到这个数组的handle,或者说首地址,除非该数组是全局的。但是既然是全局的,那么第二个单位如果释放这个魔法,又怎么区分这些数组哪个是哪个魔法释放者的呢??所以,还是不行的。呵呵。。楼上的朋友,您可以看看这个帖子:http://www.ourga.com/bbs/read.php?tid=11048么?如果能帮我做出这个帖子里第7楼要求的效果,那就太感激了。。。
回复

使用道具 举报

发表于 2008-2-29 23:21:15 | 显示全部楼层
演示名字ABC.
回复

使用道具 举报

发表于 2008-3-1 00:13:32 | 显示全部楼层
不晓得为什么要传单位组
楼主的设想能否描述清晰问题的内容

你至少列举一个实际情况 来说明你的问题
回复

使用道具 举报

 楼主| 发表于 2008-3-1 00:46:16 | 显示全部楼层
引用第5楼nonct于2008-03-01 00:13发表的  :
不晓得为什么要传单位组
楼主的设想能否描述清晰问题的内容

你至少列举一个实际情况 来说明你的问题

好的。请看:

比如要实现下面的技能:
  创建一系列的冰球,这些冰球会沿着目标方向前进,所有被这些冰球遇到的敌人,都会被吸住,会同时和冰球一起移动。

思路是:
  当一个单位释放魔法,并且释放的魔法是指定的冰球魔法。
  创建n个冰球。
  把这些冰球加入到一个组A中。
  创建一个定时器,间隔为x秒,目的是移动这些冰球。
  创建一个触发器,事件为一个冰球死亡,目的是清除这些冰球,不造成泄漏。
  以定时器handle为关键字,将魔法释放单位hanlde,目标角度、冰球组handle等数据写入GameCache。
  启动定时器。

然后,定时器里面:
    获得本定时器handle。
    以本定时器的handle为关键字获得Gamecahce冰球组的handle。
    枚举冰球组中所有的冰球。

枚举冰球的函数里面:
    获得被枚举的冰球的当前坐标,目标方向。
    计算冰球的下一个坐标点。(移动步进)
    移动该冰球。
   
    获得被枚举的冰球周围半径为r的范围内的所有敌人,同时创建一个敌人组。
    枚举敌人组中所有的敌人。

枚举敌人的函数里面:
    获得冰球的坐标,角度。魔法释放者的unit handle  //此处无法获得。。。
    移动被枚举的敌人的坐标到冰球的坐标。
    对该敌人进行伤害,设置起因为魔法释放者。
回复

使用道具 举报

 楼主| 发表于 2008-3-1 01:00:39 | 显示全部楼层
我考。。居然有这样的触发。。。哈哈哈哈。。问题解决了。

采用注册单位进入某单位的范围做为触发。。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-27 19:44 , Processed in 0.050291 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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