Project1
标题: CP制战斗的问题:似乎固定己方先手?以及图标相关 [打印本页]
作者: 664145107 时间: 2019-12-10 14:12
标题: CP制战斗的问题:似乎固定己方先手?以及图标相关
本帖最后由 664145107 于 2020-1-16 20:23 编辑
如题,做敌人属性数据的时候把个别敌人的速度设定得比主角全队高了一点,然后实际战斗的时候发现敌人CP条满后不行动而且直接重新跑一遍,等到主角行动过之后才会正常行动,换了一个同样用CP战斗的工程也是出现了一样的问题,所以我怀疑这个系统可能就是这个样子,有没有可以改进的方法?
还有个问题就是敌人行动时CP条上的图标会先回到起点然后敌人行动,如果己方和敌方速度相同或者敌方速度都相同时这个问题尤其明显(好像突然明白了RMXP把属性数值设定得都这么大的好处),我想改成敌人先行动图标再回归,虽然也不是什么了不得的问题但是我觉得改一下观感更好……
-
-
CP制战斗系统v1.2.rar
196.69 KB, 下载次数: 59
作者: 673343298 时间: 2019-12-30 16:54
请问楼主找到解决方法了吗?我也遇到了同样的问题
作者: 664145107 时间: 2020-1-14 13:13
至今没有,不知道为什么没有人注意这个问题……
作者: 小小猪猪 时间: 2020-1-15 12:38
楼主用的是什么版本的CP系统 上一个范例工程我看下 我用的桜雅 在土的版本...好像这两个问题都没有....
作者: 664145107 时间: 2020-1-16 20:22
发在主楼里了,感觉是在默认战斗系统的基础上改的CP系统
作者: 小小猪猪 时间: 2020-1-17 04:02
本帖最后由 小小猪猪 于 2020-1-17 04:08 编辑
改好了 建议楼主跟着我下面写的一起改 这样你也清楚改了哪些地方
另外这个cp系统的原作者在范例的教程里也写了他写的地方有几个有问题 所以...
让敌人先手行动:(其实就是敌人AI里,数据库里的通常行动操作不会在0回合发生)
1 不改脚本方法: 在数据库里,为这些可能会先手的敌人设置一个<回合0>的行动,先手时就会自动使用
2 改脚本的方法:
找到Game_Enemy,把268行的(b > 0 and (n < 1 or n < a or n % b != a % b))
(b > 0 and (n < 1 or n < a or n % b != a % b))
改为 (b > 0 and (n < 0 or n < a or n % b != a % b))
(b > 0 and (n < 0 or n < a or n % b != a % b))
在行动后才消耗CP: 原作者在教程里就是这么写的,他的本意就是希望大家自己研究...
把这个CP系统的Scene_Battle3里的25-28行注释掉,如下,这样行动前不会再消耗CP
if @actor_index == @input_action_battlers.size-1
# for battler in @input_action_battlers
# battler.cp -= @now_maxspeed
# end
# @cp_window.refresh(@now_maxspeed)
start_phase4
return
end
if @actor_index == @input_action_battlers.size-1
# for battler in @input_action_battlers
# battler.cp -= @now_maxspeed
# end
# @cp_window.refresh(@now_maxspeed)
start_phase4
return
end
找到Scene_Battle4的402行的 update_phase4_step6 改成下面的:
def update_phase4_step6
# 清除强制行动对像的战斗者
$game_temp.forcing_battler = nil
# 公共事件 ID 有效的情况下
if @common_event_id > 0
# 设置事件
common_event = $data_common_events[@common_event_id]
$game_system.battle_interpreter.setup(common_event.list, 0)
end
@active_battler.cp -= @now_maxspeed #这两行就会在行动后,公共事件也执行完了才消耗CP
@cp_window.refresh(@now_maxspeed)
# 移至步骤 1
@phase4_step = 1
end
def update_phase4_step6
# 清除强制行动对像的战斗者
$game_temp.forcing_battler = nil
# 公共事件 ID 有效的情况下
if @common_event_id > 0
# 设置事件
common_event = $data_common_events[@common_event_id]
$game_system.battle_interpreter.setup(common_event.list, 0)
end
@active_battler.cp -= @now_maxspeed #这两行就会在行动后,公共事件也执行完了才消耗CP
@cp_window.refresh(@now_maxspeed)
# 移至步骤 1
@phase4_step = 1
end
另外如果才刚开坑的话,个人小小建议改用桜雅在土写的CP战斗系统 (见图书馆https://rpg.blue/forum.php?mod=viewthread&tid=379188&page=1#pid2603195),(然后再在论坛搜索AX追加,可以做出和这个系统一样的CP条显示功能) 出现问题的可能性要少一些...
作者: 664145107 时间: 2020-1-18 11:00
非常感谢!不过樱雅在土的CP战斗和这个有什么差异吗
作者: 小小猪猪 时间: 2020-1-18 13:34
实现方式有些不一样 我个人觉得这个版本因为很多定义是直接重写的和其他脚本冲突的可能性大一点 桜雅的版本基本都是写的alias 要好一点...
作者: 664145107 时间: 2020-1-19 20:58
我系统搞得差不多了而且目前兼容也还可以所以觉得目前这个用着也不错,谢谢大佬解答!
作者: 金芒芒 时间: 2022-11-9 15:55
MAX = 4 是按人均分配的 ,不是手动添加的 以攻击速度值高执行的
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |