Project1

标题: 【通用】事件党拓展—地图上的纯事件即时战斗制作方法 [打印本页]

作者: H·H·Y    时间: 2012-8-15 11:38
标题: 【通用】事件党拓展—地图上的纯事件即时战斗制作方法
本帖最后由 H·H·Y 于 2012-8-15 11:38 编辑

各位事件党的乡亲们,本人对这个技术“研究”了一年,算是弄出了些名堂。今天来给大家分享一下这个奇葩技术吧。(由于这个技术数据处理量大,电脑配置不好的慎重 )
※:此技术基于《惩罚者杰克》的战斗系统的基础上研制
————————————————(我是华丽的分割线)——————————————

基础
一、对事件指令的熟悉程度
1.变量操作
这种制作方法要用到大量的变量操作,主要判定玩家角色和敌人的坐标,敌人的血量和其他的比如SP剩余判定等。
2.条件分歧
这种制作方法要用到大量的条件分歧作为具体的游戏规则设定。
3.动画制作
动画制作能使得战斗更有动感,比方说枪战什么的制作角色往四个方向发射子弹的动画。
※:数据库里面的功能除了动画制作和角色的名字、HP及SP以外其他基本没啥用……

二、对坐标的了解
初中生都在数学课本里学过平面直角坐标系了,但是RM里的坐标似乎有些不同……
知道RM中的坐标原点在哪么?RM中的原点是在地图最左上角,但XY轴不变。从那里开始,越往下的点Y坐标越大,越往右的点X坐标越大。那么搞清楚这个设定,判定坐标就好弄了。

※:以下范例以XP为例
制作
一、坐标的判定
    一定要进行坐标判定,否则系统会找不到攻击的目标。
首先要把敌人的NPC创建好。
然后设置一个并行处理的事件,用变量操作中的不同变量代入(同Ace的赋值)角色和全体敌人的XY坐标。




二、攻击与伤害的判定
1.敌人的近身攻击
近身攻击好办。设置近身攻击敌人的触发条件为“与事件接触”,然后设置出发后的伤害效果(扣血什么的)
※:此处注意一点!最好设置主角后退一步或者等待×帧的指令,以免敌人接触主角后事件高速循环执行导致主角被秒杀!


2.敌人的远程攻击
嗯,这是个难点。
设置远程攻击敌人的触发条件为“并行处理”
————————————————————————(华丽的分割线)
请认真读以下文字:
设置条件分歧:当这个敌人的X坐标=角色的X坐标时
意思是说,当这个敌人与主角在一条纵线上时发生的情况。
设置条件分歧:当这个敌人的Y坐标>角色的Y坐标时
意思是说,当这个敌人在主角下方时发生的情况。
两个条件分歧合起来就是:
当这个敌人在主角的正下方时发生的情况。(注意,是正下方)

方位设置好了,再让这个敌人面朝角色,你就可以设置远程攻击的伤害了。
当然,如果你想要敌人远程攻击时有瞄准,给时间让主角逃跑的话,你就可以在满足上方判定之后等待×帧,然后再判定一次,如果条件再次满足才做伤害处理。

好了,别以为这就完了。现在你只判定了一个方向,如果是在游戏中,它只会在你走到它正下方的时候才会攻击你。你现在要把剩下的三个方位(上、左、右)全部设定完才算完成。原理是一样的。
※:请在做伤害判定之后制作等待×帧的指令,以免事件高速循环执行主角被远程秒杀。(在敌人不会瞄准直接攻击的情况下)


3.初始化敌人的血量
这个最简单了,弄个自动执行的事件,然后用与敌人数量相等的变量分别代入(同Ace的赋值)常量0,然后弄个独立开关为ON,新建事件页,用已打开的独立开关把上一页覆盖掉。(必须覆盖,不然敌人会出现打不死的情况)





4.角色的远程攻击
这个的制作原理和敌人的远程攻击很像。只需要一个并行处理的事件处理即可。不过要注意四点。

其一:按键问题
条件分歧指令创建的时候会有很多选项,看到选项的最后一页,会看见一个“按钮×按下时”,这个是你要设定的攻击按键。如果你想顺手一点,按Z就可以发动攻击的话,那你就把按键设置成Z吧。那么,在游戏中是不是发生了怎么按Z都没有产生任何反应的情况?告诉你们,RM默认的按键是跟显示出来的按键不同的。以下是按键详解。

RM显示的按键    键盘对应按键
        上                       ↑
        下                       ↓
        左                       ←
        右                       →
        A                    Z、Shift
        B                X、Num0、Esc
        C               C、Enter、Space
        X                         A
        Y                         S
        Z                         D
        L                         Q
        R                        W

现在发现问题所在了吧?其实你们设置的Z,在游戏中要按下D才会生效。若想设置成按Z攻击,在工程中必须设置成“按钮A按下时”(除非你在游戏按F1设置了手柄)。

其二:在攻击条件生效之后,要根据武器的威力给对应的敌人扣血
所谓“扣血”其实是加血。如果你的武器威力是1,那么就给对应敌人的控制血量的变量+1.至于为什么不是扣血而是加血,之后的敌人死亡判定会做详细解释。

其三:注意主角朝向
在主角远程攻击时,要比敌人远程攻击加多一个条件分歧,那就是主角朝向。
你不可能朝着前面开枪而后面的人会中弹吧?所以,举个例子,当判定了敌人在角色的正下方时,你要判定角色的朝向是否朝下,才能决定是不是该给这个敌人伤害。

其四:记得在按键判定的最后等待×帧
这也是防止主角把敌人秒杀了的问题,携手共创和谐社会。
※:注意!是按键判定的最后!换句话说也就是设置子弹发射的频率。


5.角色的近身攻击
这可是一大重点难点,就连本人的最新作制作出来也是BUG频出的。(不知怎么搞得,我判定的近身攻击居然会在某种情况下变成远程攻击)

制作角色的近身攻击时,要在制作的第一点“坐标判定”的基础上再加上四个坐标判定,分别是“角色X坐标+1”“角色X坐标-1”“角色Y坐标+1”“角色Y坐标-1”。并且将前两个代入(赋值)角色的X坐标,后两个代入(赋值)角色的Y坐标。至于怎么用听我慢慢讲述。

新建一个“并行处理”的事件,按键攻击如同角色远程攻击,至于对攻击条件的判定请往下看。

设置条件分歧:当角色X坐标=某敌人X坐标时
意思是:角色和某个敌人在同一纵线上
设置变量操作:变量“角色Y+1”-加法-常量1;变量“角色Y-1”-减法-常量1
意思是:将这两个Y坐标分别移动到角色的上面一格和下面一格
设置条件分歧:当变量“角色Y+1”=这个敌人Y坐标时
意思是:角色的下面一格与这个敌人重合
设置条件分歧:当角色面朝向下
意思是:不解释
这一轮判定之后就是伤害处理了。

等等,还没完。在对两个角色Y坐标进行加减后,可以添加上以下指令与上面的角色向下攻击共存,不需要再另外判定向上攻击的判定了。
设置条件分歧:当变量“角色Y-1”=这个敌人Y坐标时
意思是:角色的上面一格与这个敌人重合
设置条件分歧:当角色面朝向上
意思是:不解释

现在判定之后角色可以在这个敌人的下面和上面对这个敌人进行攻击。
接着再用同样的原理使得角色可以左右攻击这个敌人。
※:同样,要防止把敌人秒杀。




三、敌人死亡与复活
1.敌人的死亡
终于可以给你们解释为什么是要给敌人加血而不是减血。
大家注意了,这与传统思想不同,传统思想是把敌人的血扣减为0的时候敌人会死,在这里,为了制作方便,换句话说就是对敌人进行攻击到一定次数敌人会死。
所以只需要设置条件分歧,当某敌人血大于或等于×(自己设定)的时候,弄一个开关为ON,再在敌人的NPC那里新建个空事件页即可。


2.敌人的复活
新建一个“并行处理”的事件页,你可以调整敌人的复活时间(就是等待×帧),然后设置事件位置,把敌人移动到复活点,再把控制敌人死亡的开关关掉。注意!这里一定要加个指令:变量操作:把这个敌人的血代入(赋值)常量0,如果不加上这个指令,那么这个敌人就会……
复活之后立刻死掉,复活之后立刻死掉,复活之后立刻死掉,无限循环中……


四、游戏的测试
到了这里教程就完了,希望大家能制作出属于自己的纯事件即时战斗游戏,祝大家制作愉快。

※:如有疑问请回复





初始血量2.png (40.93 KB, 下载次数: 62)

初始血量2.png

作者: H·H·Y    时间: 2012-8-15 12:12
本帖最后由 H·H·Y 于 2015-11-9 21:49 编辑

范例工程已制作好

=猛击此处下载=
作者: 九夜神尊    时间: 2012-8-15 13:23
给力,清晰的思维。给好多意做事件ARPG的
作者: 暗夜荆棘—佩恩    时间: 2012-8-15 13:35
一直想弄下ARPG。。但总是没能从事件上找到思路来。。。{:2_270:}
作者: 洋手-肖恩君    时间: 2012-8-15 13:37
精品啊……至尊啊……厉害啊……啊啊啊……
作者: 折戬沉沙    时间: 2012-8-15 14:37
那么技能如何设置呢?
作者: H·H·Y    时间: 2012-8-15 14:44
折戬沉沙 发表于 2012-8-15 14:37
那么技能如何设置呢?

可以设置普通攻击为Z键,那么剩下的ASDQW可以当做技能按键(XC在不F1更改手柄按键的情况下是不能用的,因为X=Esc,C=Enter)。用并行处理的事件循环代入角色SP,再设置一个并行处理的事件
条件分歧:当×键(以上提供的按键)按下时
条件分歧:当变量角色的SP大于或等于×值以上
这里就是技能的效果
那么接下来就是弄一个减少角色SP的指令
就这么简单

你可以弄一个全键盘脚本,那么按技能会舒服些。
作者: lianran123456    时间: 2012-8-15 16:08
长串事件把我吓死了= =只要一条出错就全部完蛋而且还不好检查
作者: H·H·Y    时间: 2012-8-15 17:57
lianran123456 发表于 2012-8-15 16:08
长串事件把我吓死了= =只要一条出错就全部完蛋而且还不好检查

某种意义上是这样子,但是可以通过临床症状判断是哪里出了问题。
还有攻击的设定可以用复制粘贴来减少错误几率。
作者: lianran123456    时间: 2012-8-15 18:34
惩罚者杰克厉害的是剧情和光影效果
作者: dusty315    时间: 2014-3-29 22:05
3Q,非常好!.......
作者: 原RPG制作者    时间: 2014-3-30 13:00
H·H·Y 发表于 2012-8-15 12:12
范例工程已制作好

=猛击此处下载=

闪退
作者: 秋千秋    时间: 2014-6-19 22:00
轨迹是什么意思啊?
作者: fox1313304    时间: 2014-7-12 15:20
感觉一下子我的脑洞开的好大……
作者: 炎少爷    时间: 2014-10-19 20:21
。。。。。给我事件和脚本吧rpgmakervxace的。。。大神!!!!!
作者: 炎少爷    时间: 2014-10-23 11:52
。。。。你会va的吗?
作者: sirenke    时间: 2014-10-23 17:01
同是制作过纯事件ARPG的路过,我的思路一直都受范例血肉地狱的影响,里面摸索出的东西大概都包括了。现在参考过VA的大雄的生化危机,看到VA扩展性更强一些,只不过里面用到了一点脚本
作者: 大Qi    时间: 2015-8-25 18:19
LZ范例工程打不开怎么办,说少了RGSS RTP但是那个我装了呀
作者: 萌萌哒的小A菌    时间: 2015-11-9 12:51
艾玛,范例工程没了╮(╯_╰)╭@H·H·Y  
作者: MZTN    时间: 2016-1-5 13:41
求问楼主{:2_278:},如何让远程攻击被墙阻挡
作者: douvea    时间: 2016-1-25 20:53
终于找到事件的了 我今年刚学 想加即时战斗

楼主 有没有 ACE范例工程

打不开你给的 工程

我找了3天了 脚本不会用 所有想要事件的 楼主 楼主 楼主!!!!

求ACE范例工程 十分感谢
作者: SailCat    时间: 2016-1-27 00:24
近身判定变远程的问题,试试在角色坐标那里外包一个条件分歧:脚本 not $game_player.moving?
因为当你向某个方向走动时,系统是先更改坐标,然后再把角色挪过去的
作者: pkpk22pk    时间: 2017-9-28 20:01
想問大家....如囝我用事件的方式來增加敵方和友方,攻擊如何設定?都是用該"事件"作XY來做到攻擊結果?,另問的是....如何做到在指定的格數內才攻擊?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1