Project1

标题: 求rmvx战斗显血显蓝脚本 [打印本页]

作者: 2144rr    时间: 2012-5-12 07:17
标题: 求rmvx战斗显血显蓝脚本
站内搜不到{:2_270:}
百度更不行{:2_270:}
求大神{:2_270:}
←脚本盲
←伸手党dsu_plus_rewardpost_czw
作者: zdc223658    时间: 2012-5-12 09:41
  1. #==============================================================================
  2. # ■ module n01
  3. #------------------------------------------------------------------------------
  4. #  ターゲット選択時のヘルプ表示セッティング Ver1.1
  5. #==============================================================================
  6. module N01
  7.   
  8. # 文字ステートを表示するならtrue
  9.   WORD_STATE_DISPLAY = true
  10.   
  11. # 何もステートがない時に表示する文字 ""とすると非表示になります
  12.   WORD_NORMAL_STATE = "正常"
  13.   
  14. # HPゲージを表示するならtrue ステート表示と併用可
  15.   HP_DISPLAY = true
  16.   
  17. # 上記設定をアクターに適用するならtrue
  18.   ACTOR_DISPLAY = true
  19.   
  20. # 上記設定を適用しないエネミーID  複数ある場合は[1,2,3]のように
  21.   ENEMY_NON_DISPLAY = [55,56,113]
  22.   
  23. # 非表示にするステートID  複数ある場合は[1,2,3]のように
  24.   STATE_NON_DISPLAY = [20,46,47,48,49,50,52]
  25.   
  26.   
  27. end
  28. #-------------------------------設定ここまで-----------------------------------

  29. #==============================================================================
  30. # ■ Window_Help
  31. #------------------------------------------------------------------------------
  32. #  スキルやアイテムの説明、アクターのステータスなどを表示するウィンドウです。
  33. #==============================================================================

  34. class Window_Help < Window_Base
  35.   #--------------------------------------------------------------------------
  36.   # ● テキスト設定
  37.   #--------------------------------------------------------------------------
  38.   def set_text_n01add(member)
  39.     self.contents.clear
  40.     self.contents.font.color = normal_color
  41.     if !member.actor? && N01::ENEMY_NON_DISPLAY.include?(member.enemy_id)
  42.       return self.contents.draw_text(4, 0, self.width - 40, WLH, member.name, 1)
  43.     elsif member.actor? && !N01::ACTOR_DISPLAY
  44.       return self.contents.draw_text(4, 0, self.width - 40, WLH, member.name, 1)
  45.     end
  46.     if N01::WORD_STATE_DISPLAY && N01::HP_DISPLAY
  47.       self.contents.draw_text(0, 0, 180, WLH, member.name, 1)
  48.       draw_actor_hp(member, 182, 0, 120)
  49.       text = "["
  50.       for state in member.states
  51.         next if N01::STATE_NON_DISPLAY.include?(state.id)
  52.         text += " " if text != "["
  53.         text += state.name
  54.       end
  55.       text += N01::WORD_NORMAL_STATE if text == "["
  56.       text += "]"
  57.       text = "" if text == "[]"
  58.       self.contents.draw_text(315, 0, 195, WLH, text, 0)
  59.     elsif N01::WORD_STATE_DISPLAY
  60.       text = member.name + "  ["
  61.       for state in member.states
  62.         next if N01::STATE_NON_DISPLAY.include?(state.id)
  63.         text += " " if text != member.name + "  ["
  64.         text += state.name
  65.       end
  66.       text += N01::WORD_NORMAL_STATE if text == member.name + "  ["
  67.       text += "]"
  68.       text = "" if text == "[]"
  69.       self.contents.draw_text(4, 0, self.width - 40, WLH, text, 1)
  70.     elsif N01::HP_DISPLAY
  71.       self.contents.draw_text(4, 0, 240, WLH, member.name, 1)
  72.       draw_actor_hp(member, 262, 0, 120)
  73.     end
  74.   end
  75. end

  76. #==============================================================================
  77. # ■ Scene_Battle
  78. #------------------------------------------------------------------------------
  79. #  バトル画面の処理を行うクラスです。
  80. #==============================================================================
  81. class Scene_Battle < Scene_Base
  82.   #--------------------------------------------------------------------------
  83.   # ● ターゲット選択の開始
  84.   #--------------------------------------------------------------------------
  85.   def start_target_selection(actor = false)
  86.     members = $game_party.members if actor
  87.     members = $game_troop.members unless actor
  88.     # カーソルスプライトの作成
  89.     @cursor = Sprite.new
  90.     @cursor.bitmap = Cache.character("cursor")
  91.     @cursor.src_rect.set(0, 0, 32, 32)
  92.     @cursor_flame = 0
  93.     @cursor.x = -200
  94.     @cursor.y = -200
  95.     @cursor.ox = @cursor.width
  96.     @cursor.oy = @cursor.height
  97.     # ターゲット名を表示するヘルプウインドウを作成
  98.     @help_window = Window_Help.new if @help_window == nil
  99.     # 不要なウインドウを消す
  100.     @actor_command_window.active = false
  101.     @skill_window.visible = false if @skill_window != nil
  102.     @item_window.visible = false if @item_window != nil
  103.     # 存在しているターゲットで最も番号の低い対象を最初に指すように
  104.     @index = 0
  105.     @max_index = members.size - 1
  106.     # アクターは戦闘不能者でもターゲットできるようにエネミーと区別
  107.     unless actor
  108.       members.size.times do
  109.         break if members[@index].exist?
  110.         @index += 1
  111.       end
  112.     end  
  113.     @help_window.set_text_n01add(members[@index])
  114.     select_member(actor)
  115.   end
  116.   #--------------------------------------------------------------------------
  117.   # ● カーソルを前に移動
  118.   #--------------------------------------------------------------------------
  119.   def cursor_up(members, actor)
  120.     Sound.play_cursor
  121.     members.size.times do
  122.       @index += members.size - 1
  123.       @index %= members.size
  124.       break if actor
  125.       break if members[@index].exist?
  126.     end
  127.     @help_window.set_text_n01add(members[@index])
  128.   end
  129.   #--------------------------------------------------------------------------
  130.   # ● カーソルを次に移動
  131.   #--------------------------------------------------------------------------
  132.   def cursor_down(members, actor)
  133.     Sound.play_cursor
  134.     members.size.times do
  135.       @index += 1
  136.       @index %= members.size
  137.       break if actor
  138.       break if members[@index].exist? && !actor
  139.     end
  140.     @help_window.set_text_n01add(members[@index])
  141.   end
  142. end  
复制代码
怪物显血
作者: 2144rr    时间: 2012-5-12 10:13
zdc223658 发表于 2012-5-12 09:41
怪物显血

没用唉{:2_270:}
作者: x797981    时间: 2012-5-12 12:59
====================

class Window_Base < Window
  #--------------------------------------------------------------------------
  # ● 描绘 HP
  #     enemy : 角色
  #     x     : 描绘目标 X 坐标
  #     y     : 描绘目标 Y 坐标
  #     width : 宽
  #--------------------------------------------------------------------------
  def draw_enemy_hp(enemy, x, y, width = 65)
    draw_actor_hp_gauge(enemy, x, y, width)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 30, WLH, Vocab::hp_a)
    self.contents.font.color = hp_color(enemy)
    xr = x + width
    self.contents.draw_text(xr - 40, y, 40, WLH, enemy.hp, 2)
  end
end
#==============================================================================
# ■ Sprite_Battler
#------------------------------------------------------------------------------
#  战斗显示用活动块。Game_Battler 类的实例监视、
# 活动块的状态的监视、活动块状态自动变化。
#==============================================================================

class Sprite_Battler < Sprite_Base
  #--------------------------------------------------------------------------
  # ● 常量
  #--------------------------------------------------------------------------
  WHITEN    = 1                      # 白色闪烁 (开始行动)
  BLINK     = 2                      # 闪烁 (伤害)
  APPEAR    = 3                      # 出现 (出现、复活)
  DISAPPEAR = 4                      # 消失 (逃走)
  COLLAPSE  = 5                      # 崩溃 (不能战斗)
  #--------------------------------------------------------------------------
  # ● 定义实例变量
  #--------------------------------------------------------------------------
  attr_accessor :battler
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #     viewport : 视区
  #     battler  : 战斗者 (Game_Battler)
  #--------------------------------------------------------------------------
  def initialize(viewport, battler = nil)
    super(viewport)
    @battler = battler
    @battler_visible = false
    @effect_type = 0            # 效果种类
    @effect_duration = 0        # 效果剩余时间
    if @battler.is_a?(Game_Enemy)
      width = 65 + 32
      height = 24 + 32
      x = @battler.screen_x - width/2
      y = @battler.screen_y - height/2
      @enemy_hp_window = Window_Base.new(x, y, width, height)
      @enemy_hp_window.opacity = 0
      @enemy_hp_window.contents = Bitmap.new(width - 32, height - 32)
      @enemy_hp_window.draw_enemy_hp(@battler, 0, 0, 65)
      @old_hp = -1
    end
  end
  #--------------------------------------------------------------------------
  # ● 释放
  #--------------------------------------------------------------------------
  def dispose
    if self.bitmap != nil
      self.bitmap.dispose
      @enemy_hp_window.dispose
    end
    super
  end
  #--------------------------------------------------------------------------
  # ● 更新画面
  #--------------------------------------------------------------------------
  def update
    super
    if @battler == nil
      self.bitmap = nil
    else
      @use_sprite = @battler.use_sprite?
      if @use_sprite
        self.x = @battler.screen_x
        self.y = @battler.screen_y
        self.z = @battler.screen_z
        update_battler_bitmap
      end
      setup_new_effect
      update_effect
      if @enemy_hp_window != nil and @old_hp != @battler.hp
        @enemy_hp_window.contents.clear
        @enemy_hp_window.draw_enemy_hp(@battler, 0, 0, 65)
        @old_hp = @battler.hp
      end
    end
  end
end

插入脚本后保存工程关闭在打开  怪物显血  我的可以
作者: hcm    时间: 2012-5-12 13:01
  1. #本脚本来自66RPG,作者趙雲,如需转载请保留本信息。
  2. #==============================================================================
  3. # ■ Arrow_Base
  4. #------------------------------------------------------------------------------

  5. # Arrow_Enemy 类与 Arrow_Actor 类的超级类使用。
  6. #==============================================================================

  7. class Arrow_Base < Sprite
  8.   #--------------------------------------------------------------------------
  9.   # ● 定义实例变量
  10.   #--------------------------------------------------------------------------
  11.   attr_reader   :index                    # 光标位置
  12.   attr_reader   :help_window              # 帮助窗口
  13.   #--------------------------------------------------------------------------
  14.   # ● 初始化对像
  15.   #     viewport : 显示端口
  16.   #--------------------------------------------------------------------------
  17.   def initialize(viewport)
  18.     super(viewport)
  19.     self.bitmap = Cache.system("Arrow")
  20.     self.ox = 16
  21.     self.oy = 64
  22.     self.z = 2500
  23.     @blink_count = 0
  24.     @index = 0
  25.     @help_window = nil
  26.     update
  27.   end
  28.   #--------------------------------------------------------------------------
  29.   # ● 设置光标位置
  30.   #     index : 新的光标位置
  31.   #--------------------------------------------------------------------------
  32.   def index=(index)
  33.     @index = index
  34.     update
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   # ● 设置帮助窗口
  38.   #     help_window : 新的帮助窗口
  39.   #--------------------------------------------------------------------------
  40.   def help_window=(help_window)
  41.     @help_window = help_window
  42.     # 刷新帮助文本 (update_help 定义了继承目标)
  43.     if @help_window != nil
  44.       update_help
  45.     end
  46.   end
  47.   #--------------------------------------------------------------------------
  48.   # ● 刷新画面
  49.   #--------------------------------------------------------------------------
  50.   def update
  51.     # 刷新点灭记数
  52.     @blink_count = (@blink_count + 1) % 12
  53.     # 设置传送源矩形
  54.     if @blink_count < 6
  55.       self.src_rect.set(0, 0, 32, 32)
  56.     else
  57.       self.src_rect.set(32, 0, 32, 32)
  58.     end
  59.     # 刷新帮助文本 (update_help 定义了继承目标)
  60.     if @help_window != nil
  61.       update_help
  62.     end
  63.   end
  64. end
  65. #==============================================================================
  66. # ■ Arrow_Enemy
  67. #------------------------------------------------------------------------------
  68. #  选择敌人的箭头光标。本类继承 Arrow_Base
  69. # 类。
  70. #==============================================================================

  71. class Arrow_Enemy < Arrow_Base
  72.   #--------------------------------------------------------------------------
  73.   # ● 获取光标指向的敌人
  74.   #--------------------------------------------------------------------------
  75.   def enemy
  76.     return $game_troop.members[@index]
  77.   end
  78.   
  79.   def dispose
  80.     @enemy.loop_white_flash = false unless @enemy.nil?
  81.     super
  82.   end
  83.   #--------------------------------------------------------------------------
  84.   # ● 刷新画面
  85.   #--------------------------------------------------------------------------
  86.   def update
  87.     super
  88.      if @enemy != enemy and enemy.exist?
  89.         @enemy.loop_white_flash = false unless @enemy.nil?
  90.         enemy.loop_white_flash = true
  91.         @enemy = enemy
  92.       end  
  93.    
  94.     # 如果指向不存在的敌人就离开
  95.     $game_troop.members.size.times do
  96.       break if self.enemy.exist?
  97.       @index += 1
  98.       @index %= $game_troop.members.size
  99.     end
  100.     # 光标右
  101.     if Input.repeat?(Input::RIGHT) or Input.repeat?(Input::DOWN)
  102.       Sound.play_cursor
  103.       $game_troop.members.size.times do
  104.         @index += 1
  105.         @index %= $game_troop.members.size
  106.         break if self.enemy.exist?
  107.       end
  108.     end
  109.     # 光标左
  110.     if Input.repeat?(Input::LEFT) or Input.repeat?(Input::UP)
  111.      Sound.play_cursor
  112.       $game_troop.members.size.times do
  113.         @index += $game_troop.members.size - 1
  114.         @index %= $game_troop.members.size
  115.         break if self.enemy.exist?
  116.       end
  117.     end
  118.     # 设置活动块坐标
  119.     if self.enemy != nil
  120.       self.x = self.enemy.screen_x
  121.       self.y = self.enemy.screen_y
  122.     end
  123.   end
  124.   #--------------------------------------------------------------------------
  125.   # ● 刷新帮助文本
  126.   #--------------------------------------------------------------------------
  127.   def update_help
  128.     # 帮助窗口显示敌人的名字与状态
  129.     @help_window.set_enemy(self.enemy)
  130.   end
  131. end





  132. class Scene_Battle ##
  133.   
  134.   
  135.   #--------------------------------------------------------------------------
  136.   # ● 更新画面
  137.   #--------------------------------------------------------------------------
  138.   def update
  139.     super
  140.     update_basic(true)
  141.     update_info_viewport                  # 更新显示信息的视区
  142.     if $game_message.visible
  143.       @info_viewport.visible = false
  144.       @message_window.visible = true
  145.     end
  146.     unless $game_message.visible          # 在显示消息以外的情况
  147.       return if judge_win_loss            # 判断胜败
  148.       update_scene_change
  149.       if @enemy_arrow != nil
  150.         update_target_enemy_selection     # 选择敌方对象
  151.       elsif @target_actor_window != nil
  152.         update_target_actor_selection     # 选择对象角色
  153.       elsif @skill_window != nil
  154.         update_skill_selection            # 选择特技
  155.       elsif @item_window != nil
  156.         update_item_selection             # 选择物品
  157.       elsif @party_command_window.active
  158.         update_party_command_selection    # 选择同伴指令
  159.       elsif @actor_command_window.active
  160.         update_actor_command_selection    # 选择角色指令
  161.       else
  162.         process_battle_event              # 战斗处理
  163.         process_action                    # 战斗行动
  164.         process_battle_event              # 处理战斗事件
  165.       end
  166.     end
  167.   end
  168.   

  169.   
  170.   def set_window(visible)
  171.     if !@skill_window.nil?
  172.       @skill_window.visible = visible
  173.     elsif !@item_window.nil?
  174.       @item_window.visible = visible
  175.     end
  176.   end

  177.   #--------------------------------------------------------------------------
  178.   # ● 开始选择对象的敌方角色
  179.   #--------------------------------------------------------------------------
  180.   def start_target_enemy_selection
  181.     set_window(false)
  182.     @enemy_arrow = Arrow_Enemy.new(@spriteset.viewport3)
  183.     @enemy_window = Window_Enemy.new(176,0)
  184.     @enemy_arrow.help_window = @enemy_window
  185.     @actor_command_window.active = false
  186.   end
  187.   #--------------------------------------------------------------------------
  188.   # ● 选择对象敌方角色结束
  189.   #--------------------------------------------------------------------------
  190.   def end_target_enemy_selection
  191.     @enemy_arrow.dispose
  192.     @enemy_arrow = nil
  193.     @enemy_window.dispose
  194.     set_window(true)
  195.     if @actor_command_window.index == 0
  196.       @actor_command_window.active = true
  197.     end
  198.   end
  199.   #--------------------------------------------------------------------------
  200.   # ● 更新选择对象敌方角色
  201.   #--------------------------------------------------------------------------
  202.   def update_target_enemy_selection
  203.      @enemy_arrow.update
  204.     if Input.trigger?(Input::B)
  205.       Sound.play_cancel
  206.       end_target_enemy_selection
  207.     elsif Input.trigger?(Input::C)
  208.       Sound.play_decision
  209.       @active_battler.action.target_index = @enemy_arrow.enemy.index
  210.       end_target_enemy_selection
  211.       end_skill_selection
  212.       end_item_selection
  213.       next_actor
  214.     end
  215.   end


  216. end


  217. class Spriteset_Battle ##
  218.   def viewport3
  219.     return @viewport3
  220.   end  
  221. end

  222. class Game_Battler
  223.   attr_accessor :loop_white_flash              # 循环白色闪烁标记
  224. end

  225. class Sprite_Battler ##
  226.   alias old_setup_new_effect setup_new_effect
  227.   def setup_new_effect
  228.     if @battler.loop_white_flash and @effect_duration == 0
  229.       @battler.white_flash = true
  230.     end
  231.     old_setup_new_effect
  232.   end
  233. end


  234. #==============================================================================
  235. # ■ Window_Enemy
  236. #------------------------------------------------------------------------------
  237. #  显示敌人信息的窗口,光标Arrow用。
  238. #==============================================================================

  239. class Window_Enemy < Window_Base
  240.   #--------------------------------------------------------------------------
  241.   # ● 初始化窗口
  242.   #     x : 窗口的X坐标
  243.   #     y : 窗口的Y坐标
  244.   #--------------------------------------------------------------------------
  245.   def initialize(x, y)
  246.     super(x, y, 288, WLH * 2 + 32)
  247. #~     self.opacity = 0
  248.   end

  249.   #--------------------------------------------------------------------------
  250.   # ● 设置文本
  251.   #     text  : 窗口显示的字符串
  252.   #     align : 对齐方式 (0..左对齐、1..中间对齐、2..右对齐)
  253.   #--------------------------------------------------------------------------
  254.   def set_text(text, align = 0)
  255.     # 如果文本和对齐方式的至少一方与上次的不同
  256.     if text != @text or align != @align
  257.       # 再描绘文本
  258.       self.contents.clear
  259.       self.contents.font.color = normal_color
  260.       self.contents.draw_text(4, 0, self.width - 40, 32, text, align)
  261.       @text = text
  262.       @align = align
  263.       @actor = nil
  264.     end
  265.     self.visible = true
  266.   end
  267.   
  268.   
  269.   #--------------------------------------------------------------------------
  270.   # ● 设置敌人
  271.   #     enemy : 要显示名字和状态的敌人
  272.   #--------------------------------------------------------------------------
  273.   def set_enemy(enemy)
  274.     if @enemy != enemy
  275.     text = enemy.name
  276.     set_text(text)
  277.     w = enemy.states.size * 24
  278.     draw_actor_state(enemy, contents.width - w , 0, w)
  279.     draw_actor_hp(enemy, 0 , WLH  )
  280.     draw_actor_mp(enemy, contents.width - 120 , WLH )
  281.     @enemy = enemy
  282.     end
  283.   end
  284. end
复制代码

作者: 2144rr    时间: 2012-5-12 14:04
楼上几位的都不行……没动静
作者: Luciffer    时间: 2012-5-12 20:12
http://115.com/file/dpv5qcus#ACE-Spriteset-Battle-EX.rar
复杂战斗系统,有显血功能
作者: 2144rr    时间: 2012-5-12 20:24
Luciffer 发表于 2012-5-12 20:12
http://115.com/file/dpv5qcus#ACE-Spriteset-Battle-EX.rar
复杂战斗系统,有显血功能

va的?              
作者: Luciffer    时间: 2012-5-12 20:28
http://rpg.blue/thread-134556-1-1.html
抱歉抱歉。。。一时看错。。。童鞋你点这个链接看看吧。。。
作者: 和风一人    时间: 2012-11-24 11:09
Luciffer 发表于 2012-5-12 20:12
http://115.com/file/dpv5qcus#ACE-Spriteset-Battle-EX.rar
复杂战斗系统,有显血功能

这个帅气啊,在哪可以找到好脚本啊?求指教求交流。




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