请选择 进入手机版 | 继续访问电脑版

 找回密码
 点一下
查看: 2523|回复: 14

求帮忙制作个回合类战斗系统

[复制链接]
发表于 2011-7-19 01:11:36 | 显示全部楼层 |阅读模式
前段时间因为各种限制,不能用电脑,时间长达数月,唯有一部手机陪我,于是……只能玩玩手游度日。
玩过一个有点特色的手机网游——决战OL,前身是酷柚OL,虽然这游戏被经营得不咋样,但是里面有些东西确实与众不同。现在有一个月没玩手游了——有电脑可以用了谁还抱着手机玩?最近又开始研究WE,正研究着又想起这个游戏,于是就有了想在WE上做这个游戏的想法。
【游戏本身设定】
玩家有5种属性:生命值、攻击、防御、速度、法伤。
游戏玩法:踩地雷遇怪,战斗中无法进行任何操作,战斗自动进行,应该属于半回合制。
战斗:进入战斗后,左边是玩家,右边是对手(怪物或其他玩家),左边从下到上排列为:玩家、宠物1、宠物2、宠物3;右边同样:主怪(玩家)、副怪1~3(宠物1~3)。战场中间有一定区域空白。
以双方速度属性比来判定出手优先度(也受技能影响)、连续出手概率、出手后连续攻击3次(3连,也受技能影响)、闪避、打断…
以攻速防比判定出手命中(受闪避影响)、伤害(要计算防御和伤害减少)、格挡(自身防御影响)…
另外还有反伤、吸血、概率触发技能等…
游戏内其他设定如物品、技能、天赋等先略过…
=====分割线=====
初步想象中觉得不难,深入想想,再动手简单制作,觉得复杂的很,现在正纠结着怎么入手。
基本设定很简单:生命—对应生命,攻击—对应力量(攻击模式显示—无),防御—对应敏捷(防御显示),速度—对应智力,法伤—对应魔法(游戏内技能都是几率触发的没消耗)
遇怪:踩地雷…(这也不难)
战斗场景:暂停、隐藏单位、禁用玩家控制,缓存记录+读取到特殊场景+镜头切换(能自己做到)
战斗中:先各种判定、然后跑过去攻击或者发动技能、然后跑回来、然后判定对面、如此循环直到一方玩家死亡或主怪死亡。(这里头疼……)
战斗后:给经验、物品等。然后恢复到正常地图。(……)

大概就这样,主要是战斗那块纠结,各位大大能帮做个演示么?
发表于 2011-7-19 08:57:13 | 显示全部楼层
似乎和Heros很像的战斗方式
回复

使用道具 举报

 楼主| 发表于 2011-7-19 09:11:41 | 显示全部楼层
怎么做…………
回复

使用道具 举报

发表于 2011-7-19 09:55:26 | 显示全部楼层
WE变身回合制,必然都是没有攻击力的单位……貌似要模拟的东西很多很多……好麻烦啊……
因为都没有攻击了所以,攻击的指令只能是“单位伤害目标”来做,这个能计算护甲,于是护甲不用模拟了……
法术攻击就用魔法就行了,法抗就是艾路恩的优雅了,应该没什么问题……
速度是纠结的一部分,估计要用到变量计算了……没什么好的思路……
至于自动战斗……貌似要用到很多的随机整数……麻烦……
回复

使用道具 举报

发表于 2011-7-19 11:13:05 | 显示全部楼层
我怎么觉得可以用两个循环T搞定。。。。难道是我道行太浅想的不够深?。。。

设A=玩家方,B=怪物方,T1=第一个T,T2=第二个T
先判断速度决定要好先后
然后先攻的那个单位比如是A用T1,之后下一个是A则T1再做一次动作,是B则换成T2做一次动作,再判断第三个,……
直到主怪死亡,退出这两个T,这个可以用指定单位动态注册事件。

如果是速度会累积的,比如A单位速度300,B单位速度250,那么记录这些速度值,行动完后设置A的速度=(300-250)+300【括号里是之前速度剩余值】,B的速度不变,再比对速度判定,总之就是跟所有单位中速度最小的那个进行比对

由于LZ说了是自动战斗,是否可以认为战斗中各单位的战斗方式唯一,或者说很少,那么就可以在每个T中加条件判断式哪个单位,再进行相应的动作。
其实如果是单位拥有多个战斗方式的话可以用随机数按概率做不同的动作

以上仅是个人的一点想法。。。可能没什么帮助……
回复

使用道具 举报

发表于 2011-7-19 11:30:42 | 显示全部楼层
果然是我想多了么……既然傻瓜式的,直接用攻击吧,法术什么的就几率的更换法球……
回复

使用道具 举报

 楼主| 发表于 2011-7-19 12:19:58 | 显示全部楼层
首先,谢谢楼上几位的意见
我觉得可以换一个思路应该没那么复杂
1、固定一个自己的单位,固定一个敌方单位,先只做单独的两个单位战斗的触发。
即:运行计时器,判定双方速度属性比后,设定其中一个布尔变量为“true”另一个为“false”,然后判定为true的单位开始攻击(移动+播放攻击动作+返回位置)、设置布尔变量false另一个true、敌方单位攻击……如此循环直到一方死亡。
2、在上面的基础上加上对于闪避和格挡的判定。
3、在上面的基础上加上对连续攻击(3连)的判定(在单位模拟攻击动作的时候)。
4、在上面的基础上加上对连续出手次数的判定。
5、在上面的基础上加上对技能触发的判定。
6、在上面的基础上加入多个单位,然后单位进攻路线(如1-1 1-2 1-3 1-4)判定。这里开始判定出手会变为判定出手单位的方阵,然后再从这个方阵里选择出手单位,单位死亡为判定主要玩家或者主要怪物死亡。
7、做完上面的再数数用了多少T吧,如果你还没头晕,算你厉害……

总结:这个想法注定会搁置下来,太多的判定,太麻烦……
回复

使用道具 举报

发表于 2011-7-19 12:27:39 | 显示全部楼层
估计很多T,不过攻击倒有个简单的方法,把战斗的单位都改变所属为中立的,然后攻击就发布“攻击一次”命令。因为是中立的,所以不会主动去攻击……响应之后再让单位移动回去……
回复

使用道具 举报

 楼主| 发表于 2011-7-19 12:38:01 | 显示全部楼层
就是很多很多T,而且还是有关联的……一个影响N个
回复

使用道具 举报

 楼主| 发表于 2011-7-19 12:55:00 | 显示全部楼层
另回复7楼:游戏设定有格挡、闪避,改变为中立单位发布攻击一次命令不好,还是要靠模拟
回复

使用道具 举报

发表于 2011-7-19 13:57:20 | 显示全部楼层
有张战役图叫heroRpg
那就是回合制,你可以去参考下
回复

使用道具 举报

 楼主| 发表于 2011-7-19 21:56:15 | 显示全部楼层
u9搜到一个35mb的战役图,可是你们说的hero?
回复

使用道具 举报

发表于 2011-7-19 22:54:00 | 显示全部楼层
这种系统很像赛尔号
回复

使用道具 举报

发表于 2011-7-19 23:30:11 | 显示全部楼层

回 11楼(cwx891203) 的帖子

就是这个,你可以看见作者:GA汉化。。。。
回复

使用道具 举报

发表于 2011-7-21 13:27:07 | 显示全部楼层
前提是必然要用到无数的T或者J……
一切的伤害计算全部要模拟,回合的停顿就以暂停来模拟,但是想过去貌似会出现很多问题,比如说技能释放到一半就突然被PASS了的问题。
LZ可以这样想:用触发来暂停单位,用一个整数来控制哪一方的攻击,用5个变量来控制生命、魔法、护甲等等。
每次攻击模拟生命值的减少,魔法值的减少。
技能就随便了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-28 16:29 , Processed in 0.074053 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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