查看: 2182|回复: 2

[已经解决] 【已解决】求助,请问如何隐藏部分角色的数据?

[复制链接]
梦石
0
星屑
1021
在线时间
90 小时
注册时间
2022-12-26
回帖
79
发表于 2022-12-30 21:10:32 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 爱羊真知己 于 2023-1-1 16:37 编辑

求助,请问如何隐藏部分角色的数据?即通过给角色添加备注,使其(最大/当前)(HP/MP),(物理/魔法)(攻击/防御)以及敏捷,幸运,等级全部显示为“???”?(菜单中和战斗中都有效,且其他角色以及除数据外其他的东西(如“最大HP”四个字)不受影响)我在论坛里看到别人搜过,但他因为改了战斗窗口导致他的解决方法(脚本)和未改的不兼容……所以我只能再求助一遍了。求大佬解决!
你好!
梦石
0
星屑
29901
在线时间
5734 小时
注册时间
2016-3-8
回帖
1653
发表于 2022-12-31 21:40:36 | 显示全部楼层
本帖最后由 alexncf125 于 2022-12-31 21:59 编辑

元旦快乐~[pre lang="ruby"]#在角色备注写上<hide param>和<hide level>

module NCF
  module REGEXP
    module ACTOR
      HIDE_LEVEL_PARAM_TEXT = /<(?:HIDE|hide)[ ]\s*(.*)>/i
    end
  end
end



module DataManager

  class << self; alias :load_database_hlpt :load_database; end

  def self.load_database
    load_database_hlpt
    load_notetags_hlpt
  end

  def self.load_notetags_hlpt
    groups = [$data_actors]
    for group in groups
      for obj in group
        next if obj.nil?
        obj.load_notetags_hlpt
      end
    end
  end

end



class RPG::Actor

  attr_accessor :hide_level_param_text

  def load_notetags_hlpt
    @hide_level_param_text = [false, false]
    self.note.split(/[\r\n]+/).each { |line|
      case line
      when NCF::REGEXP::ACTOR::HIDE_LEVEL_PARAM_TEXT
        case $1.upcase
        when "LEVEL"
          @hide_level_param_text[0] = true
        when "PARAM"
          @hide_level_param_text[1] = true
        end
      end
    }
  end

end



class Game_Temp

  #--------------------------------------------------------------------------
  # ● 定义实例变量
  #--------------------------------------------------------------------------
  attr_accessor :hide_level_param_text

  #--------------------------------------------------------------------------
  # ● 初始化對象
  #--------------------------------------------------------------------------
  alias :initialize_hide :initialize
  def initialize
    initialize_hide
    @hide_level_param_text = false
  end

end



class Window_Base < Window

  #--------------------------------------------------------------------------
  # ● 绘制內容
  #     args : 与 Bitmap#draw_text 相同
  #--------------------------------------------------------------------------
  alias :draw_text_hide :draw_text
  def draw_text(*args)
    args[4] = "???" if $game_temp.hide_level_param_text && args[4].is_a?(Numeric)
    draw_text_hide(*args)
  end

  #--------------------------------------------------------------------------
  # ● 绘制等级
  #--------------------------------------------------------------------------
  alias :draw_actor_level_hide :draw_actor_level
  def draw_actor_level(actor, x, y)
    $game_temp.hide_level_param_text = true if actor.actor.hide_level_param_text[0]
    draw_actor_level_hide(actor, x, y)
    $game_temp.hide_level_param_text = false
  end
  
  #--------------------------------------------------------------------------
  # ● 绘制 HP
  #--------------------------------------------------------------------------
  alias :draw_actor_hp_hide :draw_actor_hp
  def draw_actor_hp(actor, x, y, width = 124)
    $game_temp.hide_level_param_text = true if actor.actor.hide_level_param_text[1]
    draw_actor_hp_hide(actor, x, y, width)
    $game_temp.hide_level_param_text = false
  end
  
  #--------------------------------------------------------------------------
  # ● 绘制 HP
  #--------------------------------------------------------------------------
  alias :draw_actor_mp_hide :draw_actor_mp
  def draw_actor_mp(actor, x, y, width = 124)
    $game_temp.hide_level_param_text = true if actor.actor.hide_level_param_text[1]
    draw_actor_mp_hide(actor, x, y, width)
    $game_temp.hide_level_param_text = false
  end
  
  #--------------------------------------------------------------------------
  # ● 绘制 HP
  #--------------------------------------------------------------------------
  alias :draw_actor_tp_hide :draw_actor_tp
  def draw_actor_tp(actor, x, y, width = 124)
    $game_temp.hide_level_param_text = true if actor.actor.hide_level_param_text[1]
    draw_actor_tp_hide(actor, x, y, width)
    $game_temp.hide_level_param_text = false
  end

  #--------------------------------------------------------------------------
  # ● 绘制能力值
  #--------------------------------------------------------------------------
  alias :draw_actor_param_hide :draw_actor_param
  def draw_actor_param(actor, x, y, param_id)
    $game_temp.hide_level_param_text = true if actor.actor.hide_level_param_text[1]
    draw_actor_param_hide(actor, x, y, param_id)
    $game_temp.hide_level_param_text = false
  end

end



class Window_EquipStatus < Window_Base

  #--------------------------------------------------------------------------
  # ● 绘制当前能力值
  #--------------------------------------------------------------------------
  alias :draw_current_param_hide :draw_current_param
  def draw_current_param(x, y, param_id)
    $game_temp.hide_level_param_text = true if @actor.actor.hide_level_param_text[1]
    draw_current_param_hide(x, y, param_id)
    $game_temp.hide_level_param_text = false
  end

end[/pre]
欢迎进群~

评分

参与人数 1赞 +1 收起 理由
爱羊真知己 + 1 我很赞同

查看全部评分

回复 1 0

使用道具 举报

梦石
0
星屑
1021
在线时间
90 小时
注册时间
2022-12-26
回帖
79
 楼主| 发表于 2022-12-31 22:26:24 | 显示全部楼层
alexncf125 发表于 2022-12-31 21:40
元旦快乐~#在角色备注写上和

module NCF

谢谢!这个脚本非常有用!
你好!
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部