- #============================================================================== 
- # ■ Game_Actor 
- #------------------------------------------------------------------------------ 
- #  AI模块 本脚本来自与66RPG  
- #============================================================================== 
-   
- class  Game_Battler 
-   attr_accessor :marks 
- end 
- class Game_Actor < Game_Battler 
-   AI = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] # 需要自动攻击的角色编号 
-   
-            # 物理攻击倾向指数 魔法攻击倾向指数 防御指数 什么都不做指数 
-   Action_Index = [0,100,0] 
-   
-   IQ = 90 # 智商设定,90为标准值,IQ越高,越优先攻击生命值少,防御力小的 
-   Hp_Mark = [30,-10] # 生命值评分标准,[生命值最低的得分,步进值(负)] 
-   Df_Mark = [20,-10] # 防御值评分标准,[防御值最低的得分,步进值(负)] 
-   
-   EQ = 90 # 情商设定,90为标准值,EQ越高,越优先使用对应魔法(属性有效度为准), 
-   def make_action 
-     $game_troop.enemies.each{|i|i.marks=50} 
-     $game_party.actors.each{|i|i.marks=50} 
-     # 先确认动作 
-     index = Action_Index 
-     skills = self.skills.inject([]){|a,b|a<<b if skill_can_use?(b);a} 
-     index[1] = 0 if skills == [] 
-     index[0] *= IQ/90.0;index[1] *= IQ/90.0;index[1] *= EQ/1.0 
-     index[0].to_i;index[1].to_i 
-     all = index.inject(0){|a,b|a+b}.to_i 
-     value = rand(all) 
-     action = 2 # 默认魔法 
-     for i in 0...index.size 
-       if i > value 
-         action = i 
-         break 
-       else 
-         value -= index[i] 
-       end 
-     end 
-     case action 
-     when 1 # 攻击 
-       # 智商检查 
-       enemies = $game_troop.enemies.inject([]){|a,b|a<<b if !b.hp0?;a} 
-       # 评分 
-       enemies.sort!{|a,b|a.hp<=>b.hp} 
-       for i in 0...enemies.size 
-         enemies[i].marks += (Hp_Mark[0] + i*Hp_Mark[1])*IQ/90 
-       end 
-       # 防御检查 
-       enemies.sort!{|a,b|a.pdef<=>b.pdef} 
-       for i in 0...enemies.size 
-         enemies[i].marks += (Df_Mark[0] + i*Df_Mark[1])*IQ/90 
-       end 
-       # 确认目标 
-       value = rand(enemies.inject(0){|a,b|a+b.marks}) 
-       tag = nil 
-       for i in enemies 
-         if i.marks > value 
-           tag = i 
-           break 
-         else 
-           value -= i.marks 
-         end 
-       end 
-       # 目标确认 tag 
-       @current_action.kind = 0 
-       @current_action.basic = 0 
-       return @current_action.target_index = 0 unless tag 
-       @current_action.target_index = $game_troop.enemies.index(tag) 
-     when 2 # 魔法 
-       # 魔法分类,对敌/对己(加持)/附着状态/解除状态 
-       @current_action.kind = 0 
-       return @current_action.basic = 1 if skills == [] 
-       @current_action.kind = 1 
-       # 随机技能 
-       idex = 0 
-       loop do 
-       idex += 1 
-      @current_action.skill_id = skills[rand(skills.size)]  
-       if $data_skills[@current_action.skill_id].int_f != 1 #@current_action.skill_id >=94 && @current_action.skill_id <=900 
-         break 
-        end 
-        if idex >= 100 && $data_skills[@current_action.skill_id].int_f == 1 
-         @current_action.kind = 0 
-         @current_action.basic = 1 
-        break 
-        end 
-      end  
-       case self.id 
-          when 1 
-            if self.state?(951) 
-               @current_action.skill_id = 54 
-               else 
-               @current_action.skill_id = 950 
-            end 
-          when 2 
-            if self.state?(952) 
-               @current_action.skill_id = 56 
-               else 
-               @current_action.skill_id = 951 
-            end 
-          when 3 
-            if self.state?(953) 
-               @current_action.skill_id = 57 
-               else 
-               @current_action.skill_id = 952 
-            end 
-          when 4 
-            if self.state?(954) 
-               @current_action.skill_id = 55 
-               else 
-               @current_action.skill_id = 953 
-            end 
-          when 5 
-            if self.state?(955) 
-               @current_action.skill_id = 62 
-               else 
-               @current_action.skill_id = 954 
-            end 
-          when 6 
-            if self.state?(957) 
-               @current_action.skill_id = 59 
-               else 
-               @current_action.skill_id = 956 
-            end 
-          when 7 
-            if self.state?(958) 
-               @current_action.skill_id = 58 
-               else 
-               @current_action.skill_id = 957 
-            end 
-          when 8 
-            if self.state?(959) 
-               @current_action.skill_id = 65 
-               else 
-               @current_action.skill_id = 958 
-            end 
-          when 9 
-            if self.state?(960) 
-               @current_action.skill_id = 60 
-               else 
-               @current_action.skill_id = 959 
-            end 
-          when 10 
-            if self.state?(961) 
-               @current_action.skill_id = 61 
-               else 
-               @current_action.skill_id = 960 
-            end 
-          when 11 
-            if self.state?(963) 
-               @current_action.skill_id = 63 
-               else 
-               @current_action.skill_id = 962 
-            end 
-          when 12 
-            if self.state?(964) 
-               @current_action.skill_id = 64 
-               else 
-               @current_action.skill_id = 963 
-            end 
-          when 13 
-            if self.state?(965) 
-               @current_action.skill_id = 66 
-               else 
-               @current_action.skill_id = 964 
-            end 
-          when 14 
-            if self.state?(966) 
-               @current_action.skill_id = 67 
-               else 
-               @current_action.skill_id = 965 
-            end 
-          when 15 
-            if self.state?(967) 
-               @current_action.skill_id = 68 
-               else 
-               @current_action.skill_id = 966 
-            end 
-   
-   
-       end 
-       # 确认对象 
-       scope = $data_skills[@current_action.skill_id].scope 
-       @current_action.target_index = 0 
-       case scope 
-   
-   
-   
-   
-       when 1 # 敌单体 
-         # 智商检查 
-         enemies = $game_troop.enemies.inject([]){|a,b|a<<b if !b.hp0?;a} 
-        target = $game_troop.random_target_enemy 
-        @current_action.target_index = target.index 
-       when 2 
-         @current_action.target_index = game_party.actors.index(tag) if tag 
-       when 7  
-        @current_action.kind = 0 
-        @current_action.basic = 1 
-       when 3 
-         target = $game_troop.random_target_enemy 
-         @current_action.target_index = target.index 
-       end 
-     when 3 # 防御 
-       @current_action.kind = 0 
-       @current_action.basic = 1 
-     end 
-   end 
- end 
- class Scene_Battle 
-   #-------------------------------------------------------------------------- 
-   # ● 转到输入下一个角色的命令 
-   #-------------------------------------------------------------------------- 
-   def phase3_next_actor 
-     # 循环 
-     begin 
-       # 角色的明灭效果 OFF 
-       if @active_battler != nil 
-         @active_battler.blink = false 
-       end 
-       # 最后的角色的情况 
-       if @actor_index == $game_party.actors.size-1 
-         # 开始主回合 
-         start_phase4 
-         return 
-       end 
-       # 推进角色索引 
-       @actor_index += 1 
-       @active_battler = $game_party.actors[@actor_index] 
-       @active_battler.blink = true 
-     # 如果角色是在无法接受指令的状态就再试 
-   end until @active_battler.inputable? 
-     #当角色装备@active_battler.state?(213)状态下就可以开启自动化战斗 
-     if  Game_Actor::AI.include?(@active_battler.id) or $game_switches[14] == true#@active_battler.state?(213) 
-    #AI同伴 
-       @actor_command_window.active = false 
-       @actor_command_window.visible = false 
-       @active_battler.make_action 
-       phase3_next_actor 
-     else 
-       # 设置角色的命令窗口 
-       phase3_setup_command_window 
-     end 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # ● 转向前一个角色的命令输入 
-   #-------------------------------------------------------------------------- 
-   def phase3_prior_actor 
-     # 循环 
-     begin 
-       # 角色的明灭效果 OFF 
-       if @active_battler != nil 
-         @active_battler.blink = false 
-       end 
-       # 最初的角色的情况下 
-       if @actor_index == 0 
-         # 开始同伴指令回合 
-         start_phase2 
-         return 
-       end 
-       # 返回角色索引 
-       @actor_index -= 1 
-       @active_battler = $game_party.actors[@actor_index] 
-       @active_battler.blink = true 
-     # 如果角色是在无法接受指令的状态就再试 
-     end until @active_battler.inputable? 
-     # 设置角色的命令窗口 
-     if  Game_Actor::AI.include?(@active_battler.id)#@active_battler.id !=1 
-       #AI同伴 
-       phase3_prior_actor 
-     else 
-       phase3_setup_command_window 
-     end 
-   end 
- end