Project1

标题: 求教一个敌人使用技能的问题 [打印本页]

作者: yhxghost001    时间: 2015-7-1 22:19
标题: 求教一个敌人使用技能的问题
怎样让我方某队员处于某特定状态时,敌人才会使用某特定技能?
比如我方某队员处于麻痹状态,敌人才会使用强击技能攻击该角色,如果没有队员处于麻痹状态,那敌人的强击技能就一直不使用。
作者: k47363312    时间: 2015-7-2 08:16
你看这样行不行呀。

001.png (13.17 KB, 下载次数: 22)

001.png

作者: 1181770261    时间: 2015-7-2 10:00
去在战斗事件里判定一个状态吧。如果在那个状态下,就开启开关。然后怪物的强击技能设定为“在开关X开启时”。注意判定开关的开和关,不然可能会有进入一次状态就一直可能用强击的困扰
作者: yhxghost001    时间: 2015-7-2 10:39
我试试,谢谢
作者: howhow1314    时间: 2015-7-2 18:41
RUBY 代码复制
  1. class Game_Battler
  2.   attr_accessor :target  
  3. end
  4.  
  5. class Scene_Battle
  6.   attr_reader :subject
  7. end
  8.  
  9. class RPG::Enemy
  10.   def 西蘭花(skill_id)
  11.     /<#{skill_id}\s*(\d+)>/ =~ note ? $1.to_i : nil
  12.   end  
  13. end
  14.  
  15. class Game_Enemy
  16.   alias baby_action_valid? action_valid?
  17.   def action_valid?(action)
  18.     if state_id = enemy.西蘭花(action.skill_id)
  19.       targets = $game_party.battle_members.select {|actor| actor.state?(state_id)}
  20.       return if targets.empty?
  21.       self.target = random_target(targets)
  22.     end
  23.     baby_action_valid?(action)
  24.   end  
  25.   def tgr_sum(targets)
  26.     targets.inject(0) {|r, target| r + target.tgr }
  27.   end  
  28.   def random_target(targets)
  29.     tgr_rand = rand * tgr_sum(targets)
  30.     targets.each do |target|
  31.       tgr_rand -= target.tgr
  32.       return target if tgr_rand < 0
  33.     end
  34.     targets[0]
  35.   end   
  36. end  
  37.  
  38. class Game_Action
  39.   alias baby_make_targets make_targets
  40.   def make_targets
  41.     if target = SceneManager.scene.subject.target
  42.       SceneManager.scene.subject.target = nil
  43.       return [target]
  44.     end      
  45.     baby_make_targets
  46.   end
  47. end


使用方法:
敵人備注欄寫上<技能id 狀態id>後
己方沒存活隊員有該狀態時敵人不會使用該技能
如果有的話也不一定會使用該技能,而是像一般情況一樣計算優先權(就是數據庫設置的)
多於一個隊員有該狀態的話,也會像一般情況一樣計算受攻擊率...
對了,技能會強制變成單體目標...(不清楚你的要求 就不改了)
作者: tseyik    时间: 2015-7-2 19:10
找敵人AI脚本




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