设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1235|回复: 2
打印 上一主题 下一主题

[已经解决] 横战脚本求解

 关闭 [复制链接]

Lv3.寻梦者

梦石
0
星屑
1433
在线时间
1705 小时
注册时间
2011-8-17
帖子
818
跳转到指定楼层
1
发表于 2011-11-10 17:17:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

以下是适用于横战的显血脚本,发现一个问题,每次攻击目标以后屏幕上方的怪物名与血条不会消失,但那个血量其实是假象(这个时候的血量为攻击之前的),非要下一回合在选择怪物的时候
血条信息才会更新,求脚本达人解救....
  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  
复制代码
roguelike求生RPG研发中....

Lv2.观梦者

梦石
0
星屑
626
在线时间
282 小时
注册时间
2006-4-9
帖子
203
2
发表于 2011-11-11 10:54:28 | 只看该作者
换个脚本
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1071 小时
注册时间
2011-5-12
帖子
2317

贵宾

3
发表于 2011-11-11 11:05:09 | 只看该作者
  1. #==============================================================================
  2. # ■ module n01
  3. #------------------------------------------------------------------------------
  4. # HP Gauge and State Indicator Add-on  Ver1.1
  5. #
  6. # Do not use this add-on with the ATB. It is already built into the ATB.
  7. #==============================================================================
  8. module N01
  9.   
  10. # Display the state of the selected battler.
  11.   WORD_STATE_DISPLAY = true
  12.   
  13. # Name to display when there is no abnormal state.
  14.   WORD_NORMAL_STATE = "正常"
  15.   
  16. # Displays the HP gauge of the selected battler.
  17.   HP_DISPLAY = true
  18.   
  19. # Displays the HP gauge of selected actors.
  20.   ACTOR_DISPLAY = true
  21.   
  22. # Do not display the HP gauge and states for the following enemies:
  23.   ENEMY_NON_DISPLAY = []  # ex.[1,2,3]
  24.   
  25. # Do not display the following states ID as abnormal:
  26.   STATE_NON_DISPLAY = []  # ex.[1,2,3]
  27.   
  28.   
  29. end
  30. #-------------------------------設定ここまで-----------------------------------

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

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

  80. #==============================================================================
  81. # ■ Scene_Battle
  82. #------------------------------------------------------------------------------
  83. #  バトル画面の処理を行うクラスです。
  84. #==============================================================================
  85. class Scene_Battle < Scene_Base
  86.   #--------------------------------------------------------------------------
  87.   # ● ターゲット選択の開始
  88.   #--------------------------------------------------------------------------
  89.   def start_target_selection(actor = false)
  90.     members = $game_party.members if actor
  91.     members = $game_troop.members unless actor
  92.     # カーソルスプライトの作成
  93.     @cursor = Sprite.new
  94.     @cursor.bitmap = Cache.character("cursor")
  95.     @cursor.src_rect.set(0, 0, 32, 32)
  96.     @cursor_flame = 0
  97.     @cursor.x = -200
  98.     @cursor.y = -200
  99.     @cursor.ox = @cursor.width
  100.     @cursor.oy = @cursor.height
  101.     # ターゲット名を表示するヘルプウインドウを作成
  102.     @help_window.visible = false if @help_window != nil
  103.     @help_window2 = Window_Help.new if @help_window2 == nil
  104.     # 不要なウインドウを消す
  105.     @actor_command_window.active = false
  106.     @skill_window.visible = false if @skill_window != nil
  107.     @item_window.visible = false if @item_window != nil
  108.     # 存在しているターゲットで最も番号の低い対象を最初に指すように
  109.     @index = 0
  110.     @max_index = members.size - 1
  111.     # アクターは戦闘不能者でもターゲットできるようにエネミーと区別
  112.     unless actor
  113.       members.size.times do
  114.         break if members[@index].exist?
  115.         @index += 1
  116.       end
  117.     end  
  118.     @help_window2.set_text_n01add(members[@index])
  119.     select_member(actor)
  120.   end
  121.   #--------------------------------------------------------------------------
  122.   # ● カーソルを前に移動
  123.   #--------------------------------------------------------------------------
  124.   def cursor_up(members, actor)
  125.     Sound.play_cursor
  126.     members.size.times do
  127.       @index += members.size - 1
  128.       @index %= members.size
  129.       break if actor
  130.       break if members[@index].exist?
  131.     end
  132.     @help_window2.set_text_n01add(members[@index])
  133.   end
  134.   #--------------------------------------------------------------------------
  135.   # ● カーソルを次に移動
  136.   #--------------------------------------------------------------------------
  137.   def cursor_down(members, actor)
  138.     Sound.play_cursor
  139.     members.size.times do
  140.       @index += 1
  141.       @index %= members.size
  142.       break if actor
  143.       break if members[@index].exist? && !actor
  144.     end
  145.     @help_window2.set_text_n01add(members[@index])
  146.   end
  147. end  
复制代码
换用这个……
找我请找芙蕾娅
顺带一提,完全看得懂我头像请捡起你自己的节操哟(自重
回复

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-4 19:10

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表