Project1

标题: 一个简单va脚本的一个功能求解。。。 [打印本页]

作者: kiuh99999    时间: 2012-4-3 00:04
标题: 一个简单va脚本的一个功能求解。。。

脚本如下。。。功能。。。就是让玩家不能攻击某敌人。。除非其余敌人死光了。。。
我想知道

     selectable_enemys(index)

这句怎么用?感觉是可以解除 不能攻击 敌人 效果的代码。。请好心人自己测试过后,再告诉我正确答案哦,,不要乱猜。。我自己乱猜了好久都失败了。。。


RGSS3 代码复制
  1. =begin
  2.       RGSS3
  3.  
  4.       ★対象不可エネミー★
  5.  
  6.       存在しているのにターゲットの対象にできない敵を作れるようになります。
  7.  
  8.       ● 仕様 ●==========================================================
  9.       選択可能な対象がいなくなると自動的にすべての対象制限を解除します。
  10.       --------------------------------------------------------------------
  11.       指定した敵は、エネミーターゲットウィンドウには表示されません。
  12.       ====================================================================
  13.  
  14.       ● イベントコマンドスクリプト ●====================================
  15.       selectable_enemys(index)
  16.       上記のスクリプトをイベントコマンドから実行すると、
  17.       指定の対象不可エネミーの対象制限を解除することができます。
  18.       --------------------------------------------------------------------
  19.       indexには1~8のエネミーインデックスを指定してください。
  20.       --------------------------------------------------------------------
  21.       引数は省略可能で、省略した場合は全てのエネミーの対象制限を解除します。
  22.       ====================================================================
  23.  
  24.       ● 指定方法 ●======================================================
  25.       データベースの敵キャラのメモ欄に「対象不可」と記述してください。
  26.       「」は不要です。
  27.       ====================================================================
  28.  
  29.       ver1.00
  30.  
  31.       Last Update : 2012/01/19
  32.       01/19 : RGSS2からの移植
  33.  
  34.       ろかん   [url]http://kaisou-ryouiki.sakura.ne.jp/[/url]
  35. =end
  36.  
  37. $rsi ||= {}
  38. $rsi["対象不可エネミー"] = true
  39.  
  40. class RPG::Enemy < RPG::BaseItem
  41.   def unselectable?
  42.     self.note.include?("対象不可")
  43.   end
  44. end
  45.  
  46. class Game_Enemy < Game_Battler
  47.   #--------------------------------------------------------------------------
  48.   # ● 選択不可エネミー判定
  49.   #--------------------------------------------------------------------------
  50.   def unselectable?
  51.     enemy.unselectable?
  52.   end
  53. end
  54.  
  55. class Game_Troop < Game_Unit
  56.   #--------------------------------------------------------------------------
  57.   # ● 公開インスタンス変数
  58.   #--------------------------------------------------------------------------
  59.   attr_accessor :unselectable_enemys   # 選択不可指定エネミー判定
  60.   #--------------------------------------------------------------------------
  61.   # ● セットアップ
  62.   #--------------------------------------------------------------------------
  63.   alias unselectable_enemy_setup setup
  64.   def setup(troop_id)
  65.     unselectable_enemy_setup(troop_id)
  66.     @unselectable_enemys = []
  67.     members.each{|enemy| @unselectable_enemys << enemy.unselectable?}
  68.   end
  69.   #--------------------------------------------------------------------------
  70.   # ● 指定インデックスをターゲットにできるか
  71.   #--------------------------------------------------------------------------
  72.   def target_selectable?(index)
  73.     !@unselectable_enemys[index]
  74.   end
  75.   #--------------------------------------------------------------------------
  76.   # ● 選択不可エネミーを選択可能にする
  77.   #--------------------------------------------------------------------------
  78.   def selectable_enemy(index = -1)
  79.     if index == -1
  80.       @unselectable_enemys.map!{false}
  81.     else
  82.       @unselectable_enemys[index] = false
  83.     end
  84.   end
  85.   #--------------------------------------------------------------------------
  86.   # ● 生存しているメンバーの配列取得
  87.   #--------------------------------------------------------------------------
  88.   def alive_members
  89.     if @unselectable_enemys.any?
  90.       result = members.select{|member| member.alive? && !member.unselectable?}
  91.       if result.size.zero?
  92.         selectable_enemy
  93.         super
  94.       else
  95.         result
  96.       end
  97.     else
  98.       super
  99.     end
  100.   end
  101. end
  102.  
  103. class Game_Interpreter
  104.   #--------------------------------------------------------------------------
  105.   # ● 選択不可エネミーを選択可能にする
  106.   #--------------------------------------------------------------------------
  107.   def selectable_enemy(index = -1)
  108.     $game_troop.selectable_enemy(index)
  109.   end
  110. end

作者: 消失的三千    时间: 2012-4-3 04:58
里面都说明了用法啊= 3=
在数据库中敌人的备注里写
対象不可
然后战斗时只要存在敌人以外的怪兽就不能成为攻击目标了

selectable_enemys(index)
这句是解除某敌人的対象不可效果,使敌人变回可攻击目标
作者: 324401    时间: 2012-4-15 16:10
本帖最后由 324401 于 2012-4-15 16:16 编辑

就是敌人有一种状态让玩家选攻击目标时选不了它,用这个脚本是解除这个效果的。

selectable_enemy(index = -1)
index是-1时是全体,估计别的值可能是敌人编号,就这样。




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