Project1

标题: 双次行动(复刻仙剑的每回合行动两次效果) [打印本页]

作者: 唐门草楹    时间: 2012-2-9 22:42
标题: 双次行动(复刻仙剑的每回合行动两次效果)
本帖最后由 唐门草楹 于 2012-2-12 23:25 编辑

玩过仙剑一的筒子们对某些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

这段脚本是为了每回合结束后,都给这个敌人创建一个新的动作。

再重新战斗测试一遍,见证奇迹的时刻到了!~敌人可以行动两次了~~

++++++++++++++++++华丽的签名档+++++++++++++++++++++++++++

我是初来乍到的新人哈里,如果这个脚本你还有什么不懂的地方,请参考范例:
双次行动.zip (201.76 KB, 下载次数: 157)
也可以让小柯转达我一声,我会尽快为大家排忧解难的~谢谢大家的捧场~


‘‘

补充一句,运用相同的思路,只要把变量"attr_accessor :battletwice"改成一个整数来记录每回合的行动次数,就能做出三次行动甚至N次行动
脚本再稍微厉害的同学,还可以通过小范围的修改做出双次物理攻击,即“醉仙望月步”的效果。


──唐门草楹于2012-2-9 22:54补充以上内容’’
作者: 八宝粥先生    时间: 2012-2-12 10:27
100经验这么简单的东西LZ你好意思的弄这么贵吗?
作者: 杂兵天下    时间: 2012-2-12 10:59
虽然6R完全商业化了,LZ你好意思设置100经验么
作者: jklpgh    时间: 2012-2-12 12:08
LZ如果想赚经验的话,其实完全可以弄便宜点的,不至于一个人买也没有,虽说单个卖的少,但由于便宜,买的人多了,赚的自然也多了
作者: 唐门草楹    时间: 2012-2-12 14:54
jklpgh 发表于 2012-2-12 12:08
LZ如果想赚经验的话,其实完全可以弄便宜点的,不至于一个人买也没有,虽说单个卖的少,但由于便宜,买的人 ...

不好意思啊,我没有赚经验的打算,第一次发这种帖子所以就随便设了一点经验(因为新手提问一次貌似就是奖励100经验的所以也就设置了100点经验)。况且我觉得我说的已经很详细了,范例什么的是给真正需要的同学准备的。
作者: z137241562    时间: 2013-12-7 20:24
学习一下ddddddd
作者: chd114    时间: 2013-12-28 19:51
如果我想把这个功能套在角色上用的话是在game_actor里面加是吗?




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