查看: 3521|回复: 4

[已经解决] 如何让特定的角色战斗中不能使用物品

[复制链接]
梦石
0
星屑
2109
在线时间
242 小时
注册时间
2018-3-23
回帖
94
发表于 2019-1-14 16:57:38 | 显示全部楼层 |阅读模式
悬赏100星屑已解决
我使用的是RTAB战斗系统
这个if条件应该怎么写呢?

when 3  # 物品
if XXXXXXXXXXXXXXXXXXXXXXXX
@actor_command_window.disable_item(3)
$game_system.se_play($data_system.buzzer_se)
return
end

最佳答案

查看完整内容

【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的角色无法使用物品。
RMXP天下第一!
梦石
0
星屑
19426
在线时间
3082 小时
注册时间
2013-1-11
回帖
1207
发表于 2019-1-14 16:57:39 | 显示全部楼层
【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的角色无法使用物品。

评分

参与人数 1赞 +1 收起 理由
xp兔子徒弟 + 1 简单又快捷 这就很舒服

查看全部评分

回复

使用道具 举报

梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

发表于 2019-1-14 18:03:37 | 显示全部楼层
本帖最后由 KB.Driver 于 2019-1-14 18:07 编辑

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

[pre lang="ruby"]module BattleManager
  
  ACTORS_ITEM_FORBIDDEN = [1,2]
  # 在此填写战斗中禁止使用物品的角色的ID
  # 不要删除方括号
  
end

#◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
# 不要编辑下面

class Game_Actor
  def item_forbidden?
    BattleManager::ACTORS_ITEM_FORBIDDEN.include?(@actor_id)
  end
end

module Sound
  def self.play_buzzer
    $game_system.se_play($data_system.buzzer_se)
  end
end

class Scene_Battle
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  alias cld99_update update
  def update
    if @actor_command_window && @active_battler
      if @active_battler.item_forbidden? then @actor_command_window.disable_item(3)
      else @actor_command_window.refresh end
    end
    cld99_update
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面 (角色命令回合 : 基本命令)
  #--------------------------------------------------------------------------
  alias cld99_update_phase3_basic_command update_phase3_basic_command
  def update_phase3_basic_command
    if Input.trigger?(Input::C)
      if @actor_command_window.index == 3 #物品
        return Sound.play_buzzer if @active_battler.item_forbidden?
      end
    end
    cld99_update_phase3_basic_command
  end
end[/pre]

点评

原来已经解决了啊,那咱忙自己的去了_(:3」∠)_  发表于 2019-1-14 19:36
能提供一下rtab的工程或者脚本吗,工程最好。  发表于 2019-1-14 19:35

评分

参与人数 1赞 +1 收起 理由
xp兔子徒弟 + 1 rtab里有冲突

查看全部评分

用头画头像,用脚写脚本
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部