玩过仙剑一的筒子们对某些BOSS变态的每回合攻击两次技能应该记忆犹新,例如苗族首领、狐妖女等等。那么怎样用RMXP实现这个效果呢?即使是脚本盲,跟着我的步骤来做也可以搞定。
首先,打开数据库,在“系统”标签中
编号为18的位置新增一个属性“双次行动”。在敌人栏中将需要双次攻击的敌人
该属性设置为A
第二步,增加一个开关用于标记一个战斗者是否行动两次
打开脚本编辑器,找到Game_Battler 1 脚本,在● 定义实例变量部分(第12~25行之间)插入一个新定义的变量"attr_accessor :battletwice",我用的变量名称是battletwice,下同。用来记录每个战斗者是否攻击两次。
第三步,通过第一步新建的属性为第二步的开关赋值
还是脚本编辑器,打开Game_Enemy 脚本,在● 初始化对像 的结构体内部插入以下代码(26行与27行之间插入就可以)
“
###给攻击次数赋值
if $data_enemies[@enemy_id].element_ranks[
18] ==
1
@battletwice = true
else
@battletwice = false
end
”
注意:如果你的“双次行动”所在的属性不是18,改红色的部分。绿色的1代表该属性值为A时,该敌人行动两次的开关开启
第四步,在战斗时,给“双次行动”开关为TRUE的敌人额外赋一次攻击的机会
这一次是Scene_Battle 4脚本,在● 生成行动循序部分,你可以找到
“
# 添加敌人到 @action_battlers 序列
for enemy in $game_troop.enemies
@action_battlers.push(enemy)
end
”
这一句在默认脚本中在52~55行,意思是把所有的敌人加入到行动队列中去。在中间插入点东西,变成下面这个样子
“
# 添加敌人到 @action_battlers 序列
for enemy in $game_troop.enemies
@action_battlers.push(enemy)
if enemy.battletwice == true
@action_battlers.push(enemy)
end
end
”
这句的意思是加一个判断,如果有敌人的“双次行动”开关为TRUE,就再额外将这个敌人加入到行动栏中去。
至此,保存脚本,用含有“双次行动”属性为A的敌人队伍进行战斗测试,这个敌人就可以行动两次了(调试前最好把敌人的“什么也不做”去掉,否则可能会一次甚至两次行动都“什么也不做”,对实验结果的观察有影响),但是细心的玩家会发现,这个敌人两次执行的行动是一样,这是因为虽然行动队列添加了两次这个敌人,这个敌人也可以每回合行动两次,但是由于这个敌人的行动种类只生成了一次,因此在两次行动中是按照同一个行动种类进行的行动。如果想要让两次行动不同,只需要加入一步:
第五步,每回合结束后重新生成一次新的行动种类
还是在Scene_Battle 4脚本,● 刷新画面 (主回合步骤 6 : 刷新) 中,你可以在
“
# 移至步骤 1
@phase4_step = 1
”
的上面插入下面这段脚本
“
###每回合结束后重新设置动作
if @active_battler.battletwice == true
@active_battler.make_action
end
”
这段脚本是为了每回合结束后,都给这个敌人创建一个新的动作。
再重新战斗测试一遍,见证奇迹的时刻到了!~敌人可以行动两次了~~
++++++++++++++++++华丽的签名档+++++++++++++++++++++++++++
我是初来乍到的新人哈里,如果这个脚本你还有什么不懂的地方,请参考范例:
也可以让小柯转达我一声,我会尽快为大家排忧解难的~谢谢大家的捧场~
‘‘
补充一句,运用相同的思路,只要把变量"attr_accessor :battletwice"改成一个整数来记录每回合的行动次数,就能做出三次行动甚至N次行动
脚本再稍微厉害的同学,还可以通过小范围的修改做出双次物理攻击,即“醉仙望月步”的效果。
──唐门草楹于2012-2-9 22:54补充以上内容’’
本帖来自P1论坛作者唐门草楹,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:
https://rpg.blue/forum.php?mod=viewthread&tid=222396 若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。