Project1

标题: 如何让特定的角色战斗中不能使用物品 [打印本页]

作者: xp兔子徒弟    时间: 2019-1-14 16:57
标题: 如何让特定的角色战斗中不能使用物品
我使用的是RTAB战斗系统
这个if条件应该怎么写呢?

when 3  # 物品
if XXXXXXXXXXXXXXXXXXXXXXXX
@actor_command_window.disable_item(3)
$game_system.se_play($data_system.buzzer_se)
return
end
作者: 张咚咚    时间: 2019-1-14 16:57
【Scene_Battle】类里的【def update_phase3_item_select】方法里面,

有一句  unless $game_party.item_can_use?(@item.id)
改成    if !$game_party.item_can_use?(@item.id) or @active_actor.id == 1

数据库ID为1的角色无法使用物品。
作者: KB.Driver    时间: 2019-1-14 18:03
本帖最后由 KB.Driver 于 2019-1-14 18:07 编辑


没用过RTAB,如果这段脚本没有效果的话请报告。

RUBY 代码复制
  1. module BattleManager
  2.  
  3.   ACTORS_ITEM_FORBIDDEN = [1,2]
  4.   # 在此填写战斗中禁止使用物品的角色的ID
  5.   # 不要删除方括号
  6.  
  7. end
  8.  
  9. #◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
  10. # 不要编辑下面
  11.  
  12. class Game_Actor
  13.   def item_forbidden?
  14.     BattleManager::ACTORS_ITEM_FORBIDDEN.include?(@actor_id)
  15.   end
  16. end
  17.  
  18. module Sound
  19.   def self.play_buzzer
  20.     $game_system.se_play($data_system.buzzer_se)
  21.   end
  22. end
  23.  
  24. class Scene_Battle
  25.   #--------------------------------------------------------------------------
  26.   # ● 刷新画面
  27.   #--------------------------------------------------------------------------
  28.   alias cld99_update update
  29.   def update
  30.     if @actor_command_window && @active_battler
  31.       if @active_battler.item_forbidden? then @actor_command_window.disable_item(3)
  32.       else @actor_command_window.refresh end
  33.     end
  34.     cld99_update
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   # ● 刷新画面 (角色命令回合 : 基本命令)
  38.   #--------------------------------------------------------------------------
  39.   alias cld99_update_phase3_basic_command update_phase3_basic_command
  40.   def update_phase3_basic_command
  41.     if Input.trigger?(Input::C)
  42.       if @actor_command_window.index == 3 #物品
  43.         return Sound.play_buzzer if @active_battler.item_forbidden?
  44.       end
  45.     end
  46.     cld99_update_phase3_basic_command
  47.   end
  48. end





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