Project1

标题: 600经验问一个ARPG的事件问题 [打印本页]

作者: 夏季冰川    时间: 2009-7-22 10:45
标题: 600经验问一个ARPG的事件问题
本帖最后由 夏季冰川 于 2009-7-22 11:08 编辑

我自己昨天第一次试着做了一个ARPG的战斗,但使用后发现很诡异,但自己实在是检查不出问题来。这个是纯事件的,麻烦大家帮帮忙,非常感谢。
ARPG.rar (432.13 KB, 下载次数: 102)
关键的问题有:
    1.攻击坐标判定
    2.有时候怪物打人会给主角加血
    3.怪物被消灭后还会攻击主角
最好是直接提建议,我自己学着修改.
作者: IamI    时间: 2009-7-22 11:01
如果是坐标判定时不允许障碍通过的话,紫苏以前写过一个,不过比较难找= =
死后攻击主角请用独立开关判定。独立开关获取方法为:$game_self_switches[[地图ID,事件ID,独立开关名]]
加血是公式问题,注意最后伤害的0判定即可
作者: 夏季冰川    时间: 2009-7-22 11:14
本帖最后由 夏季冰川 于 2009-7-22 11:19 编辑
加血是公式问题,注意最后伤害的0 ...
IamI 发表于 2009-7-22 11:01

首先是加血问题,
我已近写了当攻击力〉主角的物理防御时,
除此之外的场合:
$game_player.damage = 0
$game_player.damage_pop = true
但还是会加血,有时候加有时候不加,另外怪物的攻击力是绝对大于我主角的物理防御的,怎么会加血呢?
另外我已经在怪物被消灭后消除事件了,为什么还会打主角?


作者: IamI    时间: 2009-7-22 11:36
怪物被消除了,但是没有在事件列表里面被“杀死”,所以对事件的同行伤害判定仍然有效
所以要用独立开关判定怪物是否已经死亡
关于伤害,建议你计算一下最后的伤害,然后把伤害进行一个0判定。公式越复杂,越容易出错
作者: ONEWateR    时间: 2009-7-22 11:42
看完lz的工程之后,我有很大感慨~
事件做arpg很麻烦~

    1.攻击坐标判定
A: 不同的攻击有不同的判定。一般攻击有两类型——直线和范围。
    2.有时候怪物打人会给主角加血
A:这个我很无语~很明显是冲突。最右上角的事件中,把变量 29 也就是 敌人的防御力的定义删去。不然会发生冲突 - -~
    3.怪物被消灭后还会攻击主角
A:那是坐标问题和开关问题。一进入游戏就被打,我都觉得很诡异了。只要将坐标判定更正,在敌人死后定一个开关,如果敌人数量太大的话,当然可以参照IamI前辈的方法~
作者: 夏季冰川    时间: 2009-7-22 12:19
555...还是不行.首先是坐标的判定我就检查不出来,然后是加血.我把敌人的防御力的定义删去了但还是没用.独立开关我用了也没效果.到最后我觉得好烦,连自己的事件都看不懂了.
作者: ONEWateR    时间: 2009-7-22 13:45
将 变量 敌人的攻击力 放在标签a之前 可以解决2出现的问题~
作者: 夏季冰川    时间: 2009-7-22 14:02
将 变量 敌人的攻击力 放在标签a之前 可以解决2出现的问题~
ONEWateR 发表于 2009-7-22 13:45

好像越来越接近真相了,这次不会加血了,变0滴了.我仔细看了一下,好像是我按下决定键攻击的时候敌人的攻击也会降低一小段时间,可能和等待的时间差之间的伤害公式有关,现在正在研究中.
作者: ONEWateR    时间: 2009-7-22 14:10
如果楼主理解不能IamI前辈的方法,可以给每个敌人一个开关~ = =~

当敌人败北之后,打开开关~

右上角的事件新建一空白页,条件是,某开关打开 - -~

不过很麻烦~
作者: 夏季冰川    时间: 2009-7-22 14:15
本帖最后由 夏季冰川 于 2009-7-22 14:27 编辑

第二个问题解决了,原因是等待时间15帧放在了[变量操作:地龙晰的攻击力]前面,这样在地龙晰的攻击力减去主角的防御力后还要等待15帧才会恢复.只要把左上角事件所有等待时间15帧这一栏放到[0003:HP]之后就行了.

谢谢大家这么热情,现在就只差坐标问题了.
现在修改后的工程是这样的:2,3均解决
ARPG.rar (443.18 KB, 下载次数: 26)
作者: ONEWateR    时间: 2009-7-22 14:34
这是条件一:
($game_variables[18] - $game_variables[27]).abs == 0 and ($game_variables[17] - $game_variables[26]).abs == 1

这是条件二:
($game_variables[17] - $game_variables[26]).abs == 0 and ($game_variables[18] - $game_variables[27]).abs == 1

ps:如果真的使用这样的方法,估计会晕死~ 太麻烦了~
其实可以参照秀秀君的arpg教程~嗯嗯~
作者: 夏季冰川    时间: 2009-7-22 14:54
唉,那教程的网址是什么?看来我还是太嫩了,做不来呀.
作者: ONEWateR    时间: 2009-7-22 15:08
http://rpg.blue/viewthread.php?tid=126277&highlight=

真的很不推荐使用纯事件制作arpg,太麻烦了~
参考秀秀君的范例~ 希望你能学有所成~ 顺便祝你的arpg能早日诞生 ~
作者: 夏季冰川    时间: 2009-7-22 15:16
谢谢,如果成了的话我先发到小游戏区.
作者: IamI    时间: 2009-7-22 15:39
本帖最后由 IamI 于 2009-7-22 15:49 编辑

请参考此贴紫苏殿最后给出的脚本(不用看我的,都有问题)
http://rpg.blue/viewthread.php?tid=121868&extra=&page=2
作者: 天使喝可乐    时间: 2009-7-22 15:53
推荐LZ看看 "乱编成的游戏"系列游戏
看了就找到差距了...




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