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

[求助]弹药系统实现

[复制链接]
发表于 2010-8-20 14:02:57 | 显示全部楼层 |阅读模式
尝试了几种弹药系统,有的是用资源来实现,有的是用触发器实现,虽然运作的还不是很好,但是有了个基础。

目前发现编辑器中有这么几个类
CAbilArmMagazine
CEffectReleaseMagazine

这个是弹夹类型,其中有个示例是核弹弹药。

我想利用这个类做一个效果来实现单位自带的弹夹系统。

这样就即不用占用系统默认的资源,也不用挂载触发器。

不过目前对这个类型不太熟悉,特别是对技能计数器还很陌生,不知道如何设置,希望对此有所研究的前辈给出以此方法实现弹药的示例。


另外,希望能和物品系统联动,做成如下效果:

陆战队拥有弹药(子弹)类型A,弹药(弹夹)类型B,一个Reload装填技能,一个RemoveClip的卸除弹药B的技能,一个补充弹药B的物品ItemClip。(可能存在的被动行为或被动技能未标明)
陆战队射击,消耗1单位弹药A,弹药A为0时无法自动攻击。
A上限50发,当A消耗为0或使用Reload技能时,消耗一个弹药B,效果将弹药A的计数器重置为50。
玩家使用Reload技能时,要求弹药B>1,消耗1单位B,将A重置为50。(无视残弹)

RemoveClip技能消耗3单位弹药B(弹药B少于3时无法使用该技能)生成一个ItemClip,该物品可以放置在物品栏,可以堆叠5次。

使用ItemClip,为使用该物品的单位的B类型弹药增加3个计数单位。


Reload技能有5秒施法时间,在该时间内玩家单位可以移动,执行其他命令,但是无法重复执行Reload技能。施法时间结束后获取足够弹药A,可以继续使用普通攻击。



==============

当然,如果能做成计算残弹数的模式更好,例如弹药A为50发,弹药B为500发。使用Reload技能时候,将A补充为50发,消耗B为50-A弹药的剩余额度。(类似CS的装填模式)

示例:射击剩余A25发,使用Reload技能,消耗了25弹药B,补充弹药A至50发。





==============

好像以上要求有些过分,但是如果能实现以上功能,很多使用枪械武器的游戏都可以利用此弹药系统实现各种很好玩的功能。

例如做主视角射击类游戏的时候就能使用该系统来控制弹药。

如果设置随机掉落,空投弹药,或者商店购买弹药,甚至可以做成GTA之类的开放性非常高的游戏。


希望有人能实现并公布实现该系统的方法。
发表于 2010-8-20 15:24:47 | 显示全部楼层
纯数据即可实现,下面只是一些关键点而已~多尝试一下应该没问题的,实在没经历做演示了,如果有什么不明白的,发帖问吧~
==============
子弹即为Unit,做好技能所消耗的Unit数目限制的Requirement和Validator即可。
另一个Item也可以是一枚子弹Unit,只是消耗需要做显性手动消耗而已~
填充弹药用CreateUint便可以了~
消耗弹药要做好CallDown的Effect关联便可以了~

对了所谓的“5秒施法时间”看你是要用技能做还是用延迟的Effect效果了,都可以完成的。
==============
回复

使用道具 举报

发表于 2010-8-20 15:35:07 | 显示全部楼层
我现在正做的地图吉姆的狙击就是消耗弹药的,在要增加弹药限制的技能上设置好最大计数(最大弹药),使用计数(使用一次技能消耗多少),初始计数(一开始有多少)就行了另外做了弹夹这个物品分散在地图上捡到使用可以补充也可以商店购买,物品连接效果,效果为修改技能消耗计数-10就是+10颗弹药的意思。作成技能就是技能效果为修改某技能计数消耗为-10.作为武器而不是技能的也只是修改武器效果就可以了。
实际上很简单就几步操作,把这个做好比我研究新建英雄技能耗时少多了=  =
我是用台版的……以前也没用过美版所以只能跟你说“单位”“消耗”“物品”“项目”囧
另外官方自带的战役里就有需要弹药的模式,名字我忘记了……如果你玩过战役的话可以回忆一下把那图找出来看看设置
回复

使用道具 举报

发表于 2010-8-20 15:55:34 | 显示全部楼层
直接用行为做如何?做一个属性类行为,每次射击增益层数+1,假如弹夹限制50发,增益叠到50时候用 需求 使技能无法使用,RELOAD技能重置增益层数。
回复

使用道具 举报

发表于 2010-8-20 16:10:36 | 显示全部楼层

回 2楼(kevinkimber) 的帖子

隐藏关 一探究竟
回复

使用道具 举报

发表于 2010-8-21 01:08:07 | 显示全部楼层
可以实现的,我已经有初步的尝试了
不过用弹夹类实现的弹药系统似乎有500的上限限制~~~
回复

使用道具 举报

 楼主| 发表于 2010-9-2 00:59:39 | 显示全部楼层
引用第2楼kevinkimber于2010-08-20 15:35发表的 :
我现在正做的地图吉姆的狙击就是消耗弹药的,在要增加弹药限制的技能上设置好最大计数(最大弹药),使用计数(使用一次技能消耗多少),初始计数(一开始有多少)就行了另外做了弹夹这个物品分散在地图上捡到使用可以补充也可以商店购买,物品连接效果,效果为修改技能消耗计数-10就是+10颗弹药的意思。作成技能就是技能效果为修改某技能计数消耗为-10.作为武器而不是技能的也只是修改武器效果就可以了。
实际上很简单就几步操作,把这个做好比我研究新建英雄技能耗时少多了=  =
我是用台版的……以前也没用过美版所以只能跟你说“单位”“消耗”“物品”“项目”囧
另外官方自带的战役里就有需要弹药的模式,名字我忘记了……如果你玩过战役的话可以回忆一下把那图找出来看看设置

.......

求做法,目前自己做了個行為,該行為設置了一個減少技能計數器的效果,但是實際上卻無法生效。

做了個更改技能計數器的技能,目前看到能增減第一個技能的計數器,但是奇怪的是用武器效果觸發的計數器效果卻無法正確工作,無法減少技能。

另外,目前還沒發限制計數器用完之後無法攻擊的行為……因為還不會做驗證器。
回复

使用道具 举报

 楼主| 发表于 2010-9-6 17:07:37 | 显示全部楼层
郁闷呀,尝试了各种方法来弄弹药,给武器增加了计数器,结果打光之后找不到如何补充,效果ModifyUnit只能修改技能的计数器……

想把武器的技术器连到某个技能,一点发现是空的,什么都没有,点新增出来的技能也没用,在效果中找不到这个新增出来的技能计数器。

目前能做有次数限定的一般技能,例如加buff,立刻生效这样的。

另外,如果用CEffectModifyUnit来设置某些技能的计数器,然后用武器效果来减这个数,实际测试的时候技能计数器不变,单位也不会在攻击所规定的次数后停止攻击……


折腾弹药系统好久了……还是没能得到较好的解决呀。



理论上武器消耗计数器和技能消耗计数器一样能通过ModifyUnit修改,但是目前这个武器攻击的cost却没法通过其他技能调整。



另外,有关使用弹夹技能,使用单位作为弹药消耗的技能……弄半天不知道是自己设置错了,还是和之前的技能效果一样无法限制攻击。

表现也是1,不扣除数量,2,没发限制攻击。



如果有效果能控制技能自带的cost计数器,应该就能实现弹药系统。但是目前没有找到方法来控制这个cost。

实在不想用cost资源,生命,或者能量的方式来进行弹药系统实现……虽然这样会简单很多吧……

例如能量,给武器设置攻击cost能量,然后就有CEffectModifyUnit效果来增加能量装填弹药……

但是这样能量就无法用来作为其他技能的限制条件用了……


目前做过CEffectModifyUnit增减其他技能计数器的技能,可以正常修改计数器,但是技能显示的数量不正常。
(因为测试的时候可以点击一定次数来填满技能计数器至系统提示没有更多容积,也可以消耗计数器到提示技能数量不足)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 02:54 , Processed in 0.101978 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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