Project1

标题: 彷vx scope [打印本页]

作者: 3535    时间: 2007-12-28 03:46
标题: 彷vx scope
4: 敵単体 ランダム
5: 敵二体 ランダム
6: 敵三体 ランダム

这3个,附送 全场,敌全体+随机我方单体 效果

先加入 19-23号属性


在Scene_Battle4 make_skill_action_result # 设定对像方战斗者 下

  1. set_target_battlers(@skill.scope)
复制代码
更改成

  1. if @skill.element_set.include?(19)
  2.       set_target_battlers(8)
  3.     elsif @skill.element_set.include?(20)
  4.       set_target_battlers(9)
  5.     elsif @skill.element_set.include?(21)
  6.       set_target_battlers(10)
  7.     elsif @skill.element_set.include?(22)
  8.       set_target_battlers(11)
  9.     elsif @skill.element_set.include?(23)
  10.       set_target_battlers(12)
  11.     else
  12.       set_target_battlers(@skill.scope)
  13.     end
复制代码


在 set_target_battlers(scope) 下
敌人的

  1. when 7  # 使用者
  2.         @target_battlers.push(@active_battler)
复制代码

下加上

  1. when 8  # 全场
  2.         for actor in $game_party.actors
  3.           if actor.exist?
  4.             @target_battlers.push(actor)
  5.           end
  6.         end
  7.         for enemy in $game_troop.enemies
  8.           if enemy.exist?
  9.             @target_battlers.push(enemy)
  10.           end
  11.         end
  12.       when 9 # 敌全体+随机我方单体
  13.         for actor in $game_party.actors
  14.           if actor.exist?
  15.             @target_battlers.push(actor)
  16.           end
  17.         end
  18.         number = rand(20)
  19.         if number > 17
  20.           index = rand($game_troop.enemies.size)
  21.           @target_battlers.push($game_troop.smooth_target_enemy(index))
  22.         end
  23.       when 10 # 敌单体随机
  24.         index = rand($game_party.actors.size)
  25.         @target_battlers.push($game_party.smooth_target_actor(index))
  26.       when 11 # 敌2体随机
  27.         lastindex = nil
  28.         2.times do
  29.           index = rand($game_party.actors.size) while lastindex == index
  30.           @target_battlers.push($game_party.smooth_target_actor(index))
  31.           lastindex = index
  32.         end
  33.       when 12 # 敌3体随机
  34.         lastindex = nil
  35.         3.times do
  36.           index = rand($game_party.actors.size) while lastindex == index
  37.           @target_battlers.push($game_party.smooth_target_actor(index))
  38.           lastindex = index
  39.         end
复制代码


己方的则加上

  1. when 8  # 全场
  2.         for actor in $game_party.actors
  3.           if actor.exist?
  4.             @target_battlers.push(actor)
  5.           end
  6.         end
  7.         for enemy in $game_troop.enemies
  8.           if enemy.exist?
  9.             @target_battlers.push(enemy)
  10.           end
  11.         end
  12.       when 9 # 敌全体+随机我方单体
  13.         for enemy in $game_troop.enemies
  14.           if enemy.exist?
  15.             @target_battlers.push(enemy)
  16.           end
  17.         end
  18.         number = rand(20)
  19.         if number > 17
  20.           index = rand($game_party.actors.size)
  21.           @target_battlers.push($game_party.smooth_target_actor(index))
  22.         end
  23.       when 10 # 敌单体随机
  24.         index = rand($game_troop.enemies.size)
  25.         @target_battlers.push($game_troop.smooth_target_enemy(index))
  26.       when 11 # 敌2体随机
  27.         lastindex = nil
  28.         2.times do
  29.           index = rand($game_troop.enemies.size) while lastindex == index
  30.           @target_battlers.push($game_troop.smooth_target_enemy(index))
  31.           lastindex = index
  32.         end
  33.       when 12 # 敌3体随机
  34.         lastindex = nil
  35.         3.times do
  36.           index = rand($game_troop.enemies.size) while lastindex == index
  37.           @target_battlers.push($game_troop.smooth_target_enemy(index))
  38.           lastindex = index
  39.         end
复制代码


最后为要用这些scope的技能加上相应的属性

作者: 3535    时间: 2007-12-28 03:46
标题: 彷vx scope
4: 敵単体 ランダム
5: 敵二体 ランダム
6: 敵三体 ランダム

这3个,附送 全场,敌全体+随机我方单体 效果

先加入 19-23号属性


在Scene_Battle4 make_skill_action_result # 设定对像方战斗者 下

  1. set_target_battlers(@skill.scope)
复制代码
更改成

  1. if @skill.element_set.include?(19)
  2.       set_target_battlers(8)
  3.     elsif @skill.element_set.include?(20)
  4.       set_target_battlers(9)
  5.     elsif @skill.element_set.include?(21)
  6.       set_target_battlers(10)
  7.     elsif @skill.element_set.include?(22)
  8.       set_target_battlers(11)
  9.     elsif @skill.element_set.include?(23)
  10.       set_target_battlers(12)
  11.     else
  12.       set_target_battlers(@skill.scope)
  13.     end
复制代码


在 set_target_battlers(scope) 下
敌人的

  1. when 7  # 使用者
  2.         @target_battlers.push(@active_battler)
复制代码

下加上

  1. when 8  # 全场
  2.         for actor in $game_party.actors
  3.           if actor.exist?
  4.             @target_battlers.push(actor)
  5.           end
  6.         end
  7.         for enemy in $game_troop.enemies
  8.           if enemy.exist?
  9.             @target_battlers.push(enemy)
  10.           end
  11.         end
  12.       when 9 # 敌全体+随机我方单体
  13.         for actor in $game_party.actors
  14.           if actor.exist?
  15.             @target_battlers.push(actor)
  16.           end
  17.         end
  18.         number = rand(20)
  19.         if number > 17
  20.           index = rand($game_troop.enemies.size)
  21.           @target_battlers.push($game_troop.smooth_target_enemy(index))
  22.         end
  23.       when 10 # 敌单体随机
  24.         index = rand($game_party.actors.size)
  25.         @target_battlers.push($game_party.smooth_target_actor(index))
  26.       when 11 # 敌2体随机
  27.         lastindex = nil
  28.         2.times do
  29.           index = rand($game_party.actors.size) while lastindex == index
  30.           @target_battlers.push($game_party.smooth_target_actor(index))
  31.           lastindex = index
  32.         end
  33.       when 12 # 敌3体随机
  34.         lastindex = nil
  35.         3.times do
  36.           index = rand($game_party.actors.size) while lastindex == index
  37.           @target_battlers.push($game_party.smooth_target_actor(index))
  38.           lastindex = index
  39.         end
复制代码


己方的则加上

  1. when 8  # 全场
  2.         for actor in $game_party.actors
  3.           if actor.exist?
  4.             @target_battlers.push(actor)
  5.           end
  6.         end
  7.         for enemy in $game_troop.enemies
  8.           if enemy.exist?
  9.             @target_battlers.push(enemy)
  10.           end
  11.         end
  12.       when 9 # 敌全体+随机我方单体
  13.         for enemy in $game_troop.enemies
  14.           if enemy.exist?
  15.             @target_battlers.push(enemy)
  16.           end
  17.         end
  18.         number = rand(20)
  19.         if number > 17
  20.           index = rand($game_party.actors.size)
  21.           @target_battlers.push($game_party.smooth_target_actor(index))
  22.         end
  23.       when 10 # 敌单体随机
  24.         index = rand($game_troop.enemies.size)
  25.         @target_battlers.push($game_troop.smooth_target_enemy(index))
  26.       when 11 # 敌2体随机
  27.         lastindex = nil
  28.         2.times do
  29.           index = rand($game_troop.enemies.size) while lastindex == index
  30.           @target_battlers.push($game_troop.smooth_target_enemy(index))
  31.           lastindex = index
  32.         end
  33.       when 12 # 敌3体随机
  34.         lastindex = nil
  35.         3.times do
  36.           index = rand($game_troop.enemies.size) while lastindex == index
  37.           @target_battlers.push($game_troop.smooth_target_enemy(index))
  38.           lastindex = index
  39.         end
复制代码


最后为要用这些scope的技能加上相应的属性

作者: Eclair    时间: 2007-12-28 04:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: 3535    时间: 2007-12-28 04:53
以下引用Eclair于2007-12-27 20:32:21的发言:

嗯...说说偶滴感觉...
不是单纯的为了仿VX的话,做成外部可以设定的目标数量效果很可能会更好,敌一体敌二体敌三体的占用了不少属性,而且还不一定全会被用到呢。= =|||

自己刪減些也不太困難
作者: enghao_lim    时间: 2007-12-28 05:29
很好,继续努力。
可以不用占用属性的方法,比如
运用 split ,在名字后面添加符号及范围。
作者: veal    时间: 2007-12-28 06:54
         3.times do
         index = rand($game_troop.enemies.size) while lastindex == index
         @target_battlers.push($game_troop.smooth_target_enemy(index))
         lastindex = index
       end

假如只有1个敌人岂不是无限循环了?
作者: 3535    时间: 2007-12-28 08:22
以下引用veal于2007-12-27 22:54:23的发言:


        3.times do
        index = rand($game_troop.enemies.size) while lastindex == index
        @target_battlers.push($game_troop.smooth_target_enemy(index))
        lastindex = index
      end

假如只有1个敌人岂不是无限循环了?


[本贴由作者于 2007-12-27 22:55:57 最后编辑]

if $game_troop.enemies.size == 2
2.times do
.
.
.


if $game_troop.enemies.size == 1
index = 0
.
.
.
.
{/gg}
作者: 3535    时间: 2007-12-28 22:03
when 11 # 敵2體隨機
        if $game_troop.enemies.size > 2
          lastindex = nil
          2.times do
            index = rand($game_troop.enemies.size) while lastindex == index
            @target_battlers.push($game_troop.smooth_target_enemy(index))
            lastindex = index
          end
        else
          for enemy in $game_troop.enemies
            if enemy.exist?
              @target_battlers.push(enemy)
            end
          end
        end
      when 12 # 敵3體隨機
        if $game_troop.enemies.size > 3
          lastindex = nil
          3.times do
            index = rand($game_troop.enemies.size) while lastindex == index
            @target_battlers.push($game_troop.smooth_target_enemy(index))
            lastindex = index
          end
        else
          for enemy in $game_troop.enemies
            if enemy.exist?
              @target_battlers.push(enemy)
            end
          end
        end
作者: veal    时间: 2007-12-28 23:17
以下引用3535于2007-12-28 14:03:17的发言:

when 11 # 敵2體隨機
       if $game_troop.enemies.size > 2
         lastindex = nil
         2.times do
           index = rand($game_troop.enemies.size) while lastindex == index
           @target_battlers.push($game_troop.smooth_target_enemy(index))
           lastindex = index
         end
       else
         for enemy in $game_troop.enemies
           if enemy.exist?
             @target_battlers.push(enemy)
           end
         end
       end
     when 12 # 敵3體隨機
       if $game_troop.enemies.size > 3
         lastindex = nil
         3.times do
           index = rand($game_troop.enemies.size) while lastindex == index
           @target_battlers.push($game_troop.smooth_target_enemy(index))
           lastindex = index
         end
       else
         for enemy in $game_troop.enemies
           if enemy.exist?
             @target_battlers.push(enemy)
           end
         end
       end

死人也会算进enemies.size的..
可以判断一下敌人队伍中还有多少活人再确定目标

作者: 3535    时间: 2007-12-29 03:54
以下引用veal于2007-12-28 15:17:48的发言:


以下引用3535于2007-12-28 14:03:17的发言:

when 11 # 敵2體隨機
      if $game_troop.enemies.size > 2
        lastindex = nil
        2.times do
          index = rand($game_troop.enemies.size) while lastindex == index
          @target_battlers.push($game_troop.smooth_target_enemy(index))
          lastindex = index
        end
      else
        for enemy in $game_troop.enemies
          if enemy.exist?
            @target_battlers.push(enemy)
          end
        end
      end
    when 12 # 敵3體隨機
      if $game_troop.enemies.size > 3
        lastindex = nil
        3.times do
          index = rand($game_troop.enemies.size) while lastindex == index
          @target_battlers.push($game_troop.smooth_target_enemy(index))
          lastindex = index
        end
      else
        for enemy in $game_troop.enemies
          if enemy.exist?
            @target_battlers.push(enemy)
          end
        end
      end


死人也会算进enemies.size的..
可以判断一下敌人队伍中还有多少活人再确定目标

我測试过无死循環.......{/gg}




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