Project1

标题: “技能消耗物品”与“地图作为战斗背景”产生的问题。 [打印本页]

作者: 嵐。    时间: 2010-9-20 08:07
标题: “技能消耗物品”与“地图作为战斗背景”产生的问题。
本帖最后由 嵐。 于 2010-9-20 09:56 编辑

当同时使用这2个脚本的时候发现,技能物品显示窗口会被技能栏盖过。请教下前辈们 ,有什么办法可以修正下这个问题呢?
●原效果图片:


●问题图片:(红圈处)


●技能消耗物品脚本地址:http://rpg.blue/thread-141775-1-1.html
●增强开发包脚本:
  1. #===============================================================================
  2. # ■ FSL 增强开发包
  3. #    FSL Advanced Delevop Kit -- ADK
  4. #-------------------------------------------------------------------------------
  5. #    FSL ADK是FSL脚本可用的加强型开发包。他提供了一些列有效的方法。
  6. #   
  7. #-------------------------------------------------------------------------------
  8. #    更新作者: DeathKing
  9. #    许可协议: FSL
  10. #    项目分类: VX \ 系统加强
  11. #    衍生关系:
  12. #    项目版本: 1.2.0719
  13. #    建立日期: 2010年05月29日
  14. #    最后更新: 2010年07月19日
  15. #    引用网址:
  16. #-------------------------------------------------------------------------------
  17. #    - 1.2.0719 (2010.07.19) By DeathKing
  18. #      * 将read_note方法修改为read_notes,方便与沉影不器的脚本兼容;
  19. #
  20. #    - 1.1.0607 (2010.06.07) By DeathKing
  21. #      * 添加兼容性检查方法;
  22. #
  23. #    - 1.0.0529 (2010.05.29) By DeathKing
  24. #      * 初始版本完成;
  25. #===============================================================================

  26. #-------------------------------------------------------------------------------
  27. # ▼ 登记FSL
  28. #-------------------------------------------------------------------------------

  29. $fscript = {} if $fscript == nil
  30. $fscript["ADK"] = "1.2.0719"


  31. #-------------------------------------------------------------------------------
  32. # ▼ 通用配置模块
  33. #-------------------------------------------------------------------------------
  34. module FSL
  35.   module Conf
  36.   end
  37. end

  38. #-------------------------------------------------------------------------------
  39. # ▼ FSL模块功能
  40. #-------------------------------------------------------------------------------
  41. module FSL
  42.   #--------------------------------------------------------------------------
  43.   # ● 是否存在指定脚本
  44.   #     script  : 脚本在$fscript中的登记名
  45.   #--------------------------------------------------------------------------
  46.         def self.script_in?( script )
  47.                 return true if $fscript[ script.to_s ] != nil
  48.                 return false
  49.         end
  50. end

  51. #-------------------------------------------------------------------------------
  52. #
  53. # ▼ 读取注释内容
  54. #
  55. #    使用read_notes方法返回了一个键值对应的哈希,read_notes会删除掉作为标记的
  56. #    <和>符号(非破坏性方法)。默认以用空格分隔的几个数据中的第一个为键,余
  57. #    下为值。值为一个数组对象。
  58. #
  59. #    注释内容               读取到的哈希的键值对应情况
  60. #    <need_item 1 1>  -->  "need_item" => [ "1" , "1" ]
  61. #    <need_item 1,1>  -->  "need_item" => [ "1,1" ]
  62. #    <need_item>      -->  "need_item" => []
  63. #     need_item       -->  "need_item" => []
  64. #
  65. #    不使用尖括号是允许的,但我们不喜欢这样。分隔多个参数请使用空格。
  66. #
  67. #    read_notes是返回哈希对象,因此“键”应该对大小写敏感。
  68. #
  69. #-------------------------------------------------------------------------------
  70. module RPG
  71.   class State
  72.     def read_notes
  73.       result = {}
  74.       self.note.split(/[\r\n]+/).each do |line|
  75.         result[line.delete("<>").split[0]] = line.delete("<>").split[1..-1]
  76.       end
  77.       return result
  78.     end
  79.   end
  80.   class BaseItem
  81.     def read_notes
  82.       result = {}
  83.       self.note.split(/[\r\n]+/).each do |line|
  84.         result[line.delete("<>").split[0]] = line.delete("<>").split[1..-1]
  85.       end
  86.       return result
  87.     end
  88.   end
  89.   class Enemy
  90.     def read_notes
  91.       result = {}
  92.       self.note.split(/[\r\n]+/).each do |line|
  93.         result[line.delete("<>").split[0]] = line.delete("<>").split[1..-1]
  94.       end
  95.       return result
  96.     end
  97.   end
  98. end
复制代码
●Skill Need Item脚本:
  1. #===============================================================================
  2. # ■ FSL 技能消耗物品
  3. #    FSL Skill Need Item
  4. #-------------------------------------------------------------------------------
  5. #    设定一些值,当拥有制定物品的制定个数及以上时才可发动特技。发动特技会
  6. #    消耗掉这些物品。
  7. #
  8. #    在技能的“注释”中如下书写(请确保使用的是西文半角而不是全角):
  9. #        <need_item 物品id,对应数量 物品id,对应数量 …… >
  10. #        <need_item 1,1 2,2 3,3>
  11. #   
  12. #-------------------------------------------------------------------------------
  13. #    更新作者: DeathKing 六祈
  14. #    许可协议: FSL -NOS ADK
  15. #    项目分类: VX \ 数据工程
  16. #    衍生关系:
  17. #    项目版本: 1.5.0726
  18. #    建立日期: 2010年05月29日
  19. #    最后更新: 2010年07月26日
  20. #    引用网址:
  21. #-------------------------------------------------------------------------------
  22. #    - 1.5.0726 (By DeathKing)
  23. #      * 修正了按下PageDown和PageUp后无法切换角色的小BUG;
  24. #
  25. #    - 1.4.0725 (By 六祈)
  26. #      * 修正了Game_Actor.skill_can_use?方法的错误;
  27. #      * 修正了Window_SNItem.skill_can_use?方法的错误;
  28. #      * 添加了对技能是否可使用的重新判定;
  29. #
  30. #    - 1.3.0719 (By DeathKing)
  31. #      * ADK的升级,可兼容沉影不器的读取装备注释脚本;
  32. #
  33. #    - 1.2.0714 (By DeathKing)
  34. #      * 修改了消耗物品的算法;
  35. #
  36. #    - 1.1.0607 (By DeathKing)
  37. #      * 改变了设置方法;
  38. #
  39. #    - 1.0.0529 (By DeathKing)
  40. #      * 初始版本完成;
  41. #
  42. #===============================================================================


  43. #-------------------------------------------------------------------------------
  44. # ▼ 登记FSL
  45. #-------------------------------------------------------------------------------
  46. $fscript = {} if $fscript == nil
  47. $fscript["SkillNeedItem"] = "1.5.0726"


  48. #-------------------------------------------------------------------------------
  49. # ▼ 通用配置模块
  50. #-------------------------------------------------------------------------------
  51. module FSL
  52.   module Conf
  53.     module SNItem
  54.       
  55.       # 改进后的技能消耗物品可以对物品是否足够做出判断了,不过我我们依然
  56.       # 不能让他很清楚的现实在物品提示中
  57.       
  58.       # (用于提示所需物品数量的)窗口的相关配置,一般不修改
  59.       WINDOW_X     = 272  # X  544 / 2
  60.       WINDOW_Y     = 112  # Y  56  * 2
  61.       WINDOW_W     = 274  # 宽
  62.       WINDOW_H     = 640  # 高
  63.       BACK_OPACITY = 200  # 透明度,255为不透明
  64.       
  65.       
  66.       TEXT_NEED       = "需要:"        # “需要:”一词的字符
  67.       TEXT_NEED_X     = WINDOW_X - 104  # “需要:”字符的 X 坐标
  68.       TEXT_ITEM_NUM_X = WINDOW_X - 52   # 物品数量的 X 坐标
  69.       
  70.     end
  71.   end
  72. end


  73. #==============================================================================
  74. # ■ Window_SNItem
  75. #------------------------------------------------------------------------------
  76. #  需要的物品的窗口。
  77. #==============================================================================

  78. class Window_SNItem < Window_Base
  79.   
  80.   include FSL::Conf::SNItem
  81.   
  82.   #--------------------------------------------------------------------------
  83.   # ● 初始化对像
  84.   #     x      : 窗口 X 座标
  85.   #     y      : 窗口 Y 座标
  86.   #     width  : 窗口宽度
  87.   #     height : 窗口高度
  88.   #--------------------------------------------------------------------------
  89.   def initialize(x=WINDOW_X, y=WINDOW_Y, width=WINDOW_W, height=WINDOW_H)
  90.     super(x, y, width, height)
  91.     self.back_opacity = BACK_OPACITY
  92.     self.visible = false
  93.   end  
  94.   #--------------------------------------------------------------------------
  95.   # ● 判定技能可否使用(需要的物品是否满足)
  96.   #     skill  : 技能
  97.   #--------------------------------------------------------------------------
  98.   #在Game_Actor#skill_can_use?方法中调用时可传递self.index给第二个参数
  99.   def self.skill_can_use?(skill,actor_id)
  100.     # 如果传递过来的skill为空
  101.     return false if skill == nil
  102.     # 读取need_item项的参数
  103.     need_item = skill.read_notes["need_item"]
  104.     # need_item参数为空的话返回true
  105.     return true if need_item == nil
  106.     # 重新生成参数列表
  107.     need_item_clone = []
  108.     need_item.each do |e|
  109.       need_item_clone << [ e.split(",")[0].to_i , e.split(",")[1].to_i ]
  110.     end
  111.     need_item = need_item_clone
  112.     # 产生一个队伍物品的哈希克隆(item_id => number)
  113.     party_items = Hash.new{0}
  114.     $game_party.items.each do |it|
  115.       party_items[it.id] = $game_party.item_number(it)
  116.     end
  117.     # 如果是第一个行动的角色或者不在战斗中则跳过
  118.     unless actor_id == 0 or $game_temp.in_battle == false
  119.       # 计算到前一个角色技能消耗为止的剩余物品数量哈希
  120.       0.upto(actor_id-1) do |ai|
  121.         action = $game_party.members[ai].action
  122.         next if action.kind != 1
  123.         temp_cost = $data_skills[action.skill_id].read_notes["need_item"]
  124.         next if temp_cost == nil
  125.         temp_cost = temp_cost.collect{|e|[e.split(",")[0].to_i,e.split(",")[1].to_i]}
  126.         temp_cost.each do |e|
  127.           party_items[e[0]] -= e[1]
  128.         end
  129.       end
  130.     end
  131.     # 判定剩余物品是否足够使用技能
  132.     need_item.each do |e|
  133.       return false if (party_items[e[0]] < e[1])
  134.     end
  135.     return true
  136.    end
  137.   #--------------------------------------------------------------------------
  138.   # ● 刷新窗口
  139.   #     skill  : 技能
  140.   #     index  : 技能在技能窗口的索引,用来判定本
  141.   #              窗口应该显示在左边还是右边
  142.   #--------------------------------------------------------------------------
  143.   def refresh( skill, index = 0)
  144.     # 清除之前产生的位图
  145.     self.contents.clear
  146.     # 如果skill为空就返回false
  147.     return false if skill == nil
  148.     # 先让需要窗口不可见
  149.     self.visible = false
  150.     # 读取参数
  151.     need_item = skill.read_notes["need_item"]
  152.     # 如果参数不是个数组就将需要窗口隐藏并返回false
  153.     return false unless need_item.is_a? Array
  154.     # 重新生成参数列表
  155.     need_item_clone = []
  156.     need_item.each do |e|
  157.             need_item_clone << [ e.split(",")[0].to_i , e.split(",")[1].to_i ]
  158.     end
  159.     need_item = need_item_clone
  160.     # 如果参数列表为空就返回
  161.     return false unless need_item.size >= 1
  162.     # 判定索引以决定窗口位置
  163.     self.x = index % 2 == 0 ? WINDOW_X : 0
  164.     # 改变窗口大小
  165.     self.height = need_item.size * 24 + 32
  166.     # 将窗口置为可见
  167.     self.visible = true
  168.     create_contents
  169.     # 遍历参数列表
  170.     need_item.each_index do |i|
  171.             # 生成物品id
  172.       item_id  = need_item[i][0]
  173.       # 生成物品数量
  174.       item_num = need_item[i][1]
  175.       # 生成物品
  176.       item = $data_items[item_id]
  177.       # 判定物品是否足够
  178.       enabled = $game_party.item_number(item) >= item_num ? true : false
  179.       # 绘制文字
  180.       draw_item_name(item, 0, WLH * i, enabled)
  181.       self.contents.font.color.alpha = enabled ? 255 : 128
  182.       self.contents.draw_text(TEXT_NEED_X, WLH * i, 96, WLH, TEXT_NEED) #
  183.       self.contents.draw_text(TEXT_ITEM_NUM_X,  WLH * i, 32, WLH, item_num) #
  184.     end # need_item.each_index
  185.   end
  186.   #--------------------------------------------------------------------------
  187.   # ● 执行对物品消耗
  188.   #     skill  : 技能
  189.   #--------------------------------------------------------------------------
  190.   def self.exec_cost( skill )
  191.     # 传递错误就直接返回false
  192.     return false if skill == nil
  193.     # 读取need_item项的参数
  194.     need_item = skill.read_notes["need_item"]
  195.     # 如果参数不是个数组就将需要窗口隐藏并返回false
  196.     return true unless need_item.is_a? Array
  197.     need_item.each do |e|
  198.       id  = e.split(",")[0].to_i
  199.       num = e.split(",")[1].to_i
  200.       $game_party.gain_item($data_items[id], -num)
  201.     end
  202.   end
  203.   
  204. end # Window_SNItem

  205. #==============================================================================
  206. # ■ Game_Actor
  207. #------------------------------------------------------------------------------
  208. #  处理角色的类。本类在 Game_Actors 类 ($game_actors) 的内部使用、
  209. # Game_Party 类请参考 ($game_party) 。
  210. #==============================================================================

  211. class Game_Actor
  212.   
  213.   alias snitem_skill_can_use? skill_can_use?
  214.   
  215.   #--------------------------------------------------------------------------
  216.   # ● 可用技能判断
  217.   #     skill : 技能
  218.   #--------------------------------------------------------------------------
  219.   def skill_can_use?(skill)
  220.     return false unless Window_SNItem.skill_can_use?(skill, self.index)
  221.     snitem_skill_can_use?(skill)
  222.   end
  223. end

  224. #==============================================================================
  225. # ■ Scene_Skill
  226. #------------------------------------------------------------------------------
  227. #  处理特技画面的类。
  228. #==============================================================================

  229. class Scene_Skill < Scene_Base

  230.   alias snitem_initialize          initialize
  231.   alias snitem_terminate           terminate
  232.   alias snitem_update              update
  233.   alias snitem_use_skill_nontarget use_skill_nontarget

  234.   #--------------------------------------------------------------------------
  235.   # ● 初始化对像
  236.   #     actor_index : 角色位置
  237.   #--------------------------------------------------------------------------
  238.   def initialize( actor_index = 0, equip_index = 0 )
  239.     snitem_initialize( actor_index, equip_index )
  240.     @snitem_window = Window_SNItem.new
  241.   end
  242.   #--------------------------------------------------------------------------
  243.   # ● 结束处理
  244.   #--------------------------------------------------------------------------
  245.   def terminate
  246.     snitem_terminate
  247.     @snitem_window.dispose
  248.   end
  249.   #--------------------------------------------------------------------------
  250.   # ● 更新画面
  251.   #--------------------------------------------------------------------------
  252.   def update
  253.     snitem_update
  254.     @snitem_window.refresh( @skill_window.skill, @skill_window.index )
  255.   end
  256.   
  257.   #--------------------------------------------------------------------------
  258.   # ● 非同伴目标使用物品
  259.   #--------------------------------------------------------------------------
  260.   def use_skill_nontarget
  261.     # 执行对物品的消耗
  262.     Window_SNItem.exec_cost(@skill)
  263.     # 调用原方法
  264.     snitem_use_skill_nontarget
  265.   end
  266.   
  267. end # Scene_Skill

  268. #==============================================================================
  269. # ■ Scene_Battle
  270. #------------------------------------------------------------------------------
  271. #  处理战斗画面的类。
  272. #=============================================================================

  273. class Scene_Battle < Scene_Base
  274.   
  275.   include FSL::Conf::SNItem
  276.   
  277.   alias snitem_update_skill_selection update_skill_selection
  278.   alias snitem_start_skill_selection  start_skill_selection
  279.   alias snitem_end_skill_selection    end_skill_selection
  280.   alias snitem_execute_action_skill   execute_action_skill
  281.   
  282.   #--------------------------------------------------------------------------
  283.   # ● 开始技能选择
  284.   #--------------------------------------------------------------------------
  285.   def start_skill_selection
  286.     snitem_start_skill_selection
  287.     # 创建需要道具窗口,并把y坐标上移
  288.     @snitem_window = Window_SNItem.new(270,56)
  289.   end
  290.   #--------------------------------------------------------------------------
  291.   # ● 结束技能选择
  292.   #--------------------------------------------------------------------------
  293.   def end_skill_selection
  294.     if @skill_window != nil
  295.       @snitem_window.dispose
  296.       @snitem_window = nil
  297.     end
  298.     snitem_end_skill_selection
  299.   end
  300.   #--------------------------------------------------------------------------
  301.   # ● 更新技能选择
  302.   #--------------------------------------------------------------------------
  303.   def update_skill_selection
  304.     # 刷新技能
  305.     @snitem_window.refresh( @skill_window.skill, @skill_window.index )
  306.     # 调用原方法内容
  307.     snitem_update_skill_selection
  308.   end
  309.   #--------------------------------------------------------------------------
  310.   # ● 执行战斗行动:使用技能
  311.   #--------------------------------------------------------------------------
  312.   def execute_action_skill
  313.     # 执行原内容
  314.     snitem_execute_action_skill
  315.     # 生成skill
  316.     skill = @active_battler.action.skill
  317.     Window_SNItem.exec_cost( skill )
  318.   end
  319.   
  320. end # Scene_Battle

复制代码
●地图作为战斗背景脚本:
  1. #==============================================================================
  2. # ■ Spriteset_Battle
  3. #------------------------------------------------------------------------------
  4. #  处理战斗画面的活动块的类。本类在 Scene_Battle 类
  5. # 的内部使用。
  6. #==============================================================================

  7. class Spriteset_Battle
  8.   #--------------------------------------------------------------------------
  9.   # ● 初始化对像
  10.   #--------------------------------------------------------------------------
  11.   def initialize
  12.     create_viewports
  13.     create_battleback
  14.     create_battlefloor
  15.     create_enemies
  16.     create_actors
  17.     create_pictures
  18.     create_timer
  19.     update
  20.   end
  21.   #--------------------------------------------------------------------------
  22.   # ● 生成视口
  23.   #--------------------------------------------------------------------------
  24.   def create_viewports
  25.     @viewport1 = Viewport.new(0, 0, 544, 416)
  26.     @viewport2 = Viewport.new(0, 0, 544, 416)
  27.     @viewport3 = Viewport.new(0, 0, 544, 416)
  28.     @viewport2.z = 50
  29.     @viewport3.z = 100
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # ● 生成战斗背景位图
  33.   #--------------------------------------------------------------------------
  34.   def create_battleback
  35. #    source = $game_temp.background_bitmap
  36. #    bitmap = Bitmap.new(640, 480)
  37. #    bitmap.stretch_blt(bitmap.rect, source, source.rect)
  38. #    bitmap.radial_blur(90, 12)
  39. #    @battleback_sprite = Sprite.new(@viewport1)
  40. #    @battleback_sprite.bitmap = bitmap
  41. #    @battleback_sprite.ox = 320
  42. #    @battleback_sprite.oy = 240
  43. #    @battleback_sprite.x = 272
  44. #    @battleback_sprite.y = 176
  45. #    @battleback_sprite.wave_amp = 8
  46. #    @battleback_sprite.wave_length = 240
  47. #    @battleback_sprite.wave_speed = 120
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ● 生成战斗场所活动块
  51.   #--------------------------------------------------------------------------
  52.   def create_battlefloor
  53.     @battlefloor_sprite = Sprite.new(@viewport1)
  54.     @battlefloor_sprite.bitmap = Cache.system("BattleFloor")
  55.     @battlefloor_sprite.x = 0
  56.     @battlefloor_sprite.y = 192
  57.     @battlefloor_sprite.z = 1
  58.     @battlefloor_sprite.opacity = 128
  59.   end
  60.   #--------------------------------------------------------------------------
  61.   # ● 生成敌人活动块
  62.   #--------------------------------------------------------------------------
  63.   def create_enemies
  64.     @enemy_sprites = []
  65.     for enemy in $game_troop.members.reverse
  66.       @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
  67.     end
  68.   end
  69.   #--------------------------------------------------------------------------
  70.   # ● 生成角色活动块
  71.   #    默认不显示角色图形,不过,为了方便、己方生成与敌人同样的精灵。
  72.   #--------------------------------------------------------------------------
  73.   def create_actors
  74.     @actor_sprites = []
  75.     @actor_sprites.push(Sprite_Battler.new(@viewport1))
  76.     @actor_sprites.push(Sprite_Battler.new(@viewport1))
  77.     @actor_sprites.push(Sprite_Battler.new(@viewport1))
  78.     @actor_sprites.push(Sprite_Battler.new(@viewport1))
  79.   end
  80.   #--------------------------------------------------------------------------
  81.   # ● 生成图片活动块
  82.   #--------------------------------------------------------------------------
  83.   def create_pictures
  84.     @picture_sprites = []
  85.     for i in 1..20
  86.       @picture_sprites.push(Sprite_Picture.new(@viewport2,
  87.         $game_troop.screen.pictures[i]))
  88.     end
  89.   end
  90.   #--------------------------------------------------------------------------  #--------------------------------------------------------------------------
  91.   # ● 生成计时器活动块
  92.   #--------------------------------------------------------------------------
  93.   def create_timer
  94.     @timer_sprite = Sprite_Timer.new(@viewport2)
  95.   end
  96.   #--------------------------------------------------------------------------
  97.   # ● 释放
  98.   #--------------------------------------------------------------------------
  99.   def dispose
  100.     dispose_battleback_bitmap
  101.     dispose_battleback
  102.     dispose_battlefloor
  103.     dispose_enemies
  104.     dispose_actors
  105.     dispose_pictures
  106.     dispose_timer
  107.     dispose_viewports
  108.   end
  109.   #--------------------------------------------------------------------------
  110.   # ● 战斗背景位图释放
  111.   #--------------------------------------------------------------------------
  112.   def dispose_battleback_bitmap
  113.     #@battleback_sprite.bitmap.dispose
  114.   end
  115.   #--------------------------------------------------------------------------
  116.   # ● 战斗背景活动块释放
  117.   #--------------------------------------------------------------------------
  118.   def dispose_battleback
  119.     #@battleback_sprite.dispose
  120.   end
  121.   #--------------------------------------------------------------------------
  122.   # ● 战斗场所活动块释放
  123.   #--------------------------------------------------------------------------
  124.   def dispose_battlefloor
  125.     @battlefloor_sprite.dispose
  126.   end
  127.   #--------------------------------------------------------------------------
  128.   # ● 敌人活动块释放
  129.   #--------------------------------------------------------------------------
  130.   def dispose_enemies
  131.     for sprite in @enemy_sprites
  132.       sprite.dispose
  133.     end
  134.   end
  135.   #--------------------------------------------------------------------------
  136.   # ● 角色活动块释放
  137.   #--------------------------------------------------------------------------
  138.   def dispose_actors
  139.     for sprite in @actor_sprites
  140.       sprite.dispose
  141.     end
  142.   end
  143.   #--------------------------------------------------------------------------
  144.   # ● 图片活动块释放
  145.   #--------------------------------------------------------------------------
  146.   def dispose_pictures
  147.     for sprite in @picture_sprites
  148.       sprite.dispose
  149.     end
  150.   end
  151.   #--------------------------------------------------------------------------
  152.   # ● 计时器活动块释放
  153.   #--------------------------------------------------------------------------
  154.   def dispose_timer
  155.     @timer_sprite.dispose
  156.   end
  157.   #--------------------------------------------------------------------------
  158.   # ● 视口释放
  159.   #--------------------------------------------------------------------------
  160.   def dispose_viewports
  161.     @viewport1.dispose
  162.     @viewport2.dispose
  163.     @viewport3.dispose
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   # ● 刷新画面
  167.   #--------------------------------------------------------------------------
  168.   def update
  169.     update_battleback
  170.     update_battlefloor
  171.     update_enemies
  172.     update_actors
  173.     update_pictures
  174.     update_timer
  175.     update_viewports
  176.   end
  177.   #--------------------------------------------------------------------------
  178.   # ● 刷新战斗背景活动块
  179.   #--------------------------------------------------------------------------
  180.   def update_battleback
  181. #    @battleback_sprite.update
  182.   end
  183.   #--------------------------------------------------------------------------
  184.   # ● 刷新战斗场所活动块
  185.   #--------------------------------------------------------------------------
  186.   def update_battlefloor
  187.     @battlefloor_sprite.update
  188.   end
  189.   #--------------------------------------------------------------------------
  190.   # ● 刷新敌人活动块
  191.   #--------------------------------------------------------------------------
  192.   def update_enemies
  193.     for sprite in @enemy_sprites
  194.       sprite.update
  195.     end
  196.   end
  197.   #--------------------------------------------------------------------------
  198.   # ● 刷新角色活动块
  199.   #--------------------------------------------------------------------------
  200.   def update_actors
  201.     @actor_sprites[0].battler = $game_party.members[0]
  202.     @actor_sprites[1].battler = $game_party.members[1]
  203.     @actor_sprites[2].battler = $game_party.members[2]
  204.     @actor_sprites[3].battler = $game_party.members[3]
  205.     for sprite in @actor_sprites
  206.       sprite.update
  207.     end
  208.   end
  209.   #--------------------------------------------------------------------------
  210.   # ● 刷新图片活动块
  211.   #--------------------------------------------------------------------------
  212.   def update_pictures
  213.     for sprite in @picture_sprites
  214.       sprite.update
  215.     end
  216.   end
  217.   #--------------------------------------------------------------------------
  218.   # ● 刷新计时器活动块
  219.   #--------------------------------------------------------------------------
  220.   def update_timer
  221.     @timer_sprite.update
  222.   end
  223.   #--------------------------------------------------------------------------
  224.   # ● 刷新视口
  225.   #--------------------------------------------------------------------------
  226.   def update_viewports
  227.     @viewport1.tone = $game_troop.screen.tone
  228.     @viewport1.ox = $game_troop.screen.shake
  229.     @viewport2.color = $game_troop.screen.flash_color
  230.     @viewport3.color.set(0, 0, 0, 255 - $game_troop.screen.brightness)
  231.     @viewport1.update
  232.     @viewport2.update
  233.     @viewport3.update
  234.   end
  235.   #--------------------------------------------------------------------------
  236.   # ● 动画显示中判定
  237.   #--------------------------------------------------------------------------
  238.   def animation?
  239.     for sprite in @enemy_sprites + @actor_sprites
  240.       return true if sprite.animation?
  241.     end
  242.     return false
  243.   end
  244. end
复制代码
  1. class Scene_Battle < Scene_Base
  2.   #--------------------------------------------------------------------------
  3.   # ● 开始处理
  4.   #--------------------------------------------------------------------------
  5.   def start
  6.     super
  7.     create_menu_background
  8.     $game_temp.in_battle = true
  9.     @spriteset = Spriteset_Battle.new
  10.     @message_window = Window_BattleMessage.new
  11.     @action_battlers = []
  12.     create_info_viewport
  13.   end
  14.   #--------------------------------------------------------------------------
  15.   # ● 结束处理
  16.   #--------------------------------------------------------------------------
  17.   def terminate
  18.     super
  19.     dispose_menu_background
  20.     dispose_info_viewport
  21.     @message_window.dispose
  22.     @spriteset.dispose
  23.     unless $scene.is_a?(Scene_Gameover)
  24.       $scene = nil if $BTEST
  25.     end
  26.   end

  27. end
复制代码

作者: 禾西    时间: 2010-9-20 09:09
木有VX,但是可以用最生硬的方法試試?:在Skill Need Item脚本的253行下
加入@snitem_window.z = 9999,如果可以的話,就把數值相對減少一些- -
作者: 嵐。    时间: 2010-9-20 09:34
回复 禾西 的帖子


    试了下,似乎不行……
作者: 禾西    时间: 2010-9-20 09:47
本帖最后由 禾西 于 2010-9-20 09:55 编辑

啊,看錯了 303行 才對Orz
作者: 嵐。    时间: 2010-9-20 09:51
回复 禾西 的帖子


    万分感谢~!  成功了。




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