Project1

标题: 关于普通攻击可以攻击敌全体的武器的问题!!! [打印本页]

作者: 我心飞扬    时间: 2013-5-5 21:33
标题: 关于普通攻击可以攻击敌全体的武器的问题!!!
我的工程中需要一把可以攻击全体敌人的武器。请指点一下应该如何设置。
本人是个脚本盲,请指点的详细一些。
谢谢啦!!!!
作者: 风若·飘絮    时间: 2013-5-5 21:47
参考《梦幻群侠传》《神剑情天》《大话单机》的战斗加强脚本
作者: 美丽晨露    时间: 2013-5-5 22:08
http://rpg.blue/thread-252871-1-1.html
这里有范例

用法:将需要使用全体化的武器勾选上属性为全体化即可
作者: 351323331    时间: 2013-5-5 23:14
  1. class Scene_Battle


  2. def scope_id
  3.    scope = 0
  4.    for i in 1..$data_system.elements.size
  5.      if $data_system.elements[i] =~ /全体化/
  6.        scope = i
  7.        break
  8.      end
  9.    end
  10.    return scope
  11. end


  12.   #--------------------------------------------------------------------------
  13.   # ● 刷新画面 (角色命令回合 : 基本命令)
  14.   #--------------------------------------------------------------------------
  15.   def update_phase3_basic_command
  16.     # 按下 B 键的情况下
  17.     if Input.trigger?(Input::B)
  18.       # 演奏取消 SE
  19.       $game_system.se_play($data_system.cancel_se)
  20.       # 转向前一个角色的指令输入
  21.       phase3_prior_actor
  22.       return
  23.     end
  24.     # 按下 C 键的情况下
  25.     if Input.trigger?(Input::C)
  26.       # 角色指令窗口光标位置分之
  27.       case @actor_command_window.index
  28.       when 0  # 攻击
  29.         # 演奏确定 SE
  30.         $game_system.se_play($data_system.decision_se)
  31.         # 设置行动
  32.         @active_battler.current_action.kind = 0
  33.         @active_battler.current_action.basic = 0
  34.         # 开始选择敌人
  35.     ###############这段可要可不要#############################
  36.          if @active_battler.weapon_id > 0 and
  37.          $data_weapons[@active_battler.weapon_id].element_set.include?(scope_id)
  38.          phase3_next_actor
  39.        else
  40.         start_enemy_select
  41.       end
  42.       ##################################################
  43.       when 1  # 特技
  44.         # 演奏确定 SE
  45.         $game_system.se_play($data_system.decision_se)
  46.         # 设置行动
  47.         @active_battler.current_action.kind = 1
  48.         # 开始选择特技
  49.         start_skill_select
  50.       when 2  # 防御
  51.         # 演奏确定 SE
  52.         $game_system.se_play($data_system.decision_se)
  53.         # 设置行动
  54.         @active_battler.current_action.kind = 0
  55.         @active_battler.current_action.basic = 1
  56.         # 转向下一位角色的指令输入
  57.         phase3_next_actor
  58.       when 3  # 物品
  59.         # 演奏确定 SE
  60.         $game_system.se_play($data_system.decision_se)
  61.         # 设置行动
  62.         @active_battler.current_action.kind = 2
  63.         # 开始选择物品
  64.         start_item_select
  65.       end
  66.       return
  67.     end
  68.   end


  69.   #--------------------------------------------------------------------------
  70.   # ● 生成基本行动结果
  71.   #--------------------------------------------------------------------------
  72.   def make_basic_action_result
  73.     # 攻击的情况下
  74.     if @active_battler.current_action.basic == 0
  75.       # 设置攻击 ID
  76.       @animation1_id = @active_battler.animation1_id
  77.       @animation2_id = @active_battler.animation2_id
  78.       # 行动方的战斗者是敌人的情况下
  79.       if @active_battler.is_a?(Game_Enemy)
  80.         if @active_battler.restriction == 3
  81.           target = $game_troop.random_target_enemy
  82.         elsif @active_battler.restriction == 2
  83.           target = $game_party.random_target_actor
  84.         else
  85.           index = @active_battler.current_action.target_index
  86.           target = $game_party.smooth_target_actor(index)
  87.         end
  88.       end
  89.       # 行动方的战斗者是角色的情况下
  90.       if @active_battler.is_a?(Game_Actor)
  91.         if @active_battler.restriction == 3
  92.           target = $game_party.random_target_actor
  93.         elsif @active_battler.restriction == 2
  94.           target = $game_troop.random_target_enemy
  95.         else
  96.         ##########################################
  97.          if @active_battler.weapon_id > 0 and $data_weapons[@active_battler.weapon_id].element_set.include?(scope_id)
  98.            for enemy in $game_troop.enemies
  99.              if enemy.exist?
  100.                @target_battlers.push(enemy)
  101.              end
  102.            end
  103.          end
  104.          ########################################
  105.           index = @active_battler.current_action.target_index
  106.           target = $game_troop.smooth_target_enemy(index)
  107.         end
  108.       end
  109.       # 设置对像方的战斗者序列
  110.      if @target_battlers == []
  111.       # 设置对像方的战斗者序列
  112.       @target_battlers = [target]
  113.      end
  114.       # 应用通常攻击效果
  115.       for target in @target_battlers
  116.         target.attack_effect(@active_battler)
  117.       end
  118.       return
  119.     end
  120.     # 防御的情况下
  121.     if @active_battler.current_action.basic == 1
  122.       # 帮助窗口显示"防御"
  123.       @help_window.set_text($data_system.words.guard, 1)
  124.       return
  125.     end
  126.     # 逃跑的情况下
  127.     if @active_battler.is_a?(Game_Enemy) and
  128.        @active_battler.current_action.basic == 2
  129.       #  帮助窗口显示"逃跑"
  130.       @help_window.set_text("逃跑", 1)
  131.       # 逃跑
  132.       @active_battler.escape
  133.       return
  134.     end
  135.     # 什么也不做的情况下
  136.     if @active_battler.current_action.basic == 3
  137.       # 清除强制行动对像的战斗者
  138.       $game_temp.forcing_battler = nil
  139.       # 移至步骤 1
  140.       @phase4_step = 1
  141.       return
  142.     end
  143.   end
  144. end
复制代码
帮你抠出来了。插在main前就行了。
系统里添加一个“全体化”的属性,然后武器勾选上即可。
作者: 我心飞扬    时间: 2013-5-6 09:06
美丽晨露 发表于 2013-5-5 22:08
http://rpg.blue/thread-252871-1-1.html
这里有范例

那个范例我已经看过了,但是我是个脚本盲看不懂脚本。
我只看懂了需要先设置一个“全体化”属性,然后在设计武器的时候勾选“全体化”。
但是脚本中,我不知道如何将脚本认定属性ID是多少?
作者: 美丽晨露    时间: 2013-5-6 16:22
我心飞扬 发表于 2013-5-6 09:06
那个范例我已经看过了,但是我是个脚本盲看不懂脚本。
我只看懂了需要先设置一个“全体化”属性,然后在 ...

不用认定ID的,只需要在你想要实现全体武器的武器属性那
勾选全体化即可




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