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

Project1

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

[已经过期] Help視窗問題

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9058
在线时间
1860 小时
注册时间
2010-7-18
帖子
974
跳转到指定楼层
1
发表于 2010-8-21 21:57:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 ms0688987 于 2010-8-21 22:12 编辑
  1.   #--------------------------------------------------------------------------
  2.   # ● 帮助窗口的设置
  3.   #     help_window : 新的帮助窗口
  4.   #--------------------------------------------------------------------------
  5.   def help_window=(help_window)
  6.     @help_window = help_window
  7.     # 刷新帮助文本 (update_help 定义了继承目标)
  8.     if self.active and @help_window != nil
  9.       update_help
  10.     end
  11.   end
复制代码
我把戰斗中的help視窗都改成圖片顯示
可是選單中點擊物品欄發生update_help這裡有錯  為什麼呢?

附:它是顯示91行update_help這行NameErroe

Lv1.梦旅人

梦石
0
星屑
50
在线时间
93 小时
注册时间
2008-5-16
帖子
745
2
发表于 2010-8-21 22:20:38 | 只看该作者
你怎么改的?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9058
在线时间
1860 小时
注册时间
2010-7-18
帖子
974
3
 楼主| 发表于 2010-8-21 22:25:05 | 只看该作者
  1. #==============================================================================
  2. # ■ Scene_Battle (分割定义 1)
  3. #------------------------------------------------------------------------------
  4. #  处理战斗画面的类。
  5. #==============================================================================

  6. class Scene_Battle
  7.   #--------------------------------------------------------------------------
  8.   # ● 主处理
  9.   #--------------------------------------------------------------------------
  10.   def main
  11.     # 初始化战斗用的各种暂时数据
  12.     $game_temp.in_battle = true
  13.     $game_temp.battle_turn = 0
  14.     $game_temp.battle_event_flags.clear
  15.     $game_temp.battle_abort = false
  16.     $game_temp.battle_main_phase = false
  17.     $game_temp.battleback_name = $game_map.battleback_name
  18.     $game_temp.forcing_battler = nil
  19.     # 初始化战斗用事件解释器
  20.     $game_system.battle_interpreter.setup(nil, 0)
  21.     # 准备队伍
  22.     @troop_id = $game_temp.battle_troop_id
  23.     $game_troop.setup(@troop_id)
  24.     # 生成角色命令窗口
  25.     s1 = " "+$data_system.words.attack
  26.     s2 = " "+$data_system.words.skill
  27.     s3 = " "+$data_system.words.item
  28.     @actor_command_window = Window_Command.new(110, [s1, s2, s3])
  29.     @actor_command_picture = Sprite.new
  30.     @actor_command_picture.bitmap = RPG::Cache.picture("/Battle-Command")
  31.     @actor_command_window.active = false
  32.     @actor_command_window.visible = false
  33.     @actor_command_picture.visible = false
  34.     @actor_command_window.y = 310+32+8
  35.     @actor_command_picture.y = @actor_command_window.y + 5-10
  36.     @actor_command_picture.z += 10
  37.     #@actor_command_window.back_opacity = 160
  38.     # 生成其它窗口
  39.     @party_command_window = Window_PartyCommand.new
  40.     @help_window = Window_Help.new
  41.     @help_window.back_opacity = 160
  42.     @help_window.visible = false
  43.     @help_picture = Sprite.new(@viewport1)
  44.     @help_picture.bitmap = RPG::Cache.picture("/Battle-Help")
  45.     @help_picture.z += 1
  46.     @help_picture.opacity = 255
  47.     @help_picture.visible = false
  48.     @status_window = Window_BattleStatus.new
  49.     @message_window = Window_Message.new
  50.     # 生成活动块
  51.     @spriteset = Spriteset_Battle.new
  52.     # 初始化等待计数
  53.     @wait_count = 0
  54.     # 执行过渡
  55.     if $data_system.battle_transition == ""
  56.       Graphics.transition(20)
  57.     else
  58.       Graphics.transition(40, "Graphics/Transitions/" +
  59.         $data_system.battle_transition)
  60.     end
  61.     # 开始自由战斗回合
  62.     start_phase1
  63.     # 主循环
  64.     loop do
  65.       # 刷新游戏画面
  66.       Graphics.update
  67.       # 刷新输入信息
  68.       Input.update
  69.       # 刷新画面
  70.       update
  71.       # 如果画面切换的话就中断循环
  72.       if $scene != self
  73.         break
  74.       end
  75.     end
  76.     # 刷新地图
  77.     $game_map.refresh
  78.     # 准备过渡
  79.     Graphics.freeze
  80.     # 释放窗口
  81.     @actor_command_window.dispose
  82.     @party_command_window.dispose
  83.     @actor_command_picture.bitmap.dispose
  84.     @help_picture.bitmap.dispose
  85.     @help_window.dispose
  86.     @status_window.dispose
  87.     @message_window.dispose
  88.     if @skill_window != nil
  89.       @skill_window.dispose
  90.     end
  91.     if @item_window != nil
  92.       @item_window.dispose
  93.     end
  94.     if @result_window != nil
  95.       @result_window.dispose
  96.     end
  97.     # 释放活动块
  98.     @spriteset.dispose
  99.     # 标题画面切换中的情况
  100.     if $scene.is_a?(Scene_Title)
  101.       # 淡入淡出画面
  102.       Graphics.transition
  103.       Graphics.freeze
  104.     end
  105.     # 战斗测试或者游戏结束以外的画面切换中的情况
  106.     if $BTEST and not $scene.is_a?(Scene_Gameover)
  107.       $scene = nil
  108.     end
  109.   end
  110.   #--------------------------------------------------------------------------
  111.   # ● 胜负判定
  112.   #--------------------------------------------------------------------------
  113.   def judge
  114.     # 全灭判定是真、并且同伴人数为 0 的情况下
  115.     if $game_party.all_dead? or $game_party.actors.size == 0
  116.       # 允许失败的情况下
  117.       if $game_temp.battle_can_lose
  118.         # 还原为战斗开始前的 BGM
  119.         $game_system.bgm_play($game_temp.map_bgm)
  120.         # 战斗结束
  121.         battle_end(2)
  122.         # 返回 true
  123.         return true
  124.       end
  125.       # 设置游戏结束标志
  126.       $game_temp.gameover = true
  127.       # 返回 true
  128.       return true
  129.     end
  130.     # 如果存在任意 1 个敌人就返回 false
  131.     for enemy in $game_troop.enemies
  132.       if enemy.exist?
  133.         return false
  134.       end
  135.     end
  136.     # 开始结束战斗回合 (胜利)
  137.     start_phase5
  138.     # 返回 true
  139.     return true
  140.   end
  141.   #--------------------------------------------------------------------------
  142.   # ● 战斗结束
  143.   #     result : 結果 (0:胜利 1:失败 2:逃跑)
  144.   #--------------------------------------------------------------------------
  145.   def battle_end(result)
  146.     # 清除战斗中标志
  147.     $game_temp.in_battle = false
  148.     # 清除全体同伴的行动
  149.     $game_party.clear_actions
  150.     # 解除战斗用状态
  151.     for actor in $game_party.actors
  152.       actor.remove_states_battle
  153.     end
  154.     # 清除敌人
  155.     $game_troop.enemies.clear
  156.     # 调用战斗返回调用
  157.     if $game_temp.battle_proc != nil
  158.       $game_temp.battle_proc.call(result)
  159.       $game_temp.battle_proc = nil
  160.     end
  161.     # 切换到地图画面
  162.     $scene = Scene_Map.new
  163.   end
  164.   #--------------------------------------------------------------------------
  165.   # ● 设置战斗事件
  166.   #--------------------------------------------------------------------------
  167.   def setup_battle_event
  168.     # 正在执行战斗事件的情况下
  169.     if $game_system.battle_interpreter.running?
  170.       return
  171.     end
  172.     # 搜索全部页的战斗事件
  173.     for index in 0...$data_troops[@troop_id].pages.size
  174.       # 获取事件页
  175.       page = $data_troops[@troop_id].pages[index]
  176.       # 事件条件可以参考 c
  177.       c = page.condition
  178.       # 没有指定任何条件的情况下转到下一页
  179.       unless c.turn_valid or c.enemy_valid or
  180.              c.actor_valid or c.switch_valid
  181.         next
  182.       end
  183.       # 执行完毕的情况下转到下一页
  184.       if $game_temp.battle_event_flags[index]
  185.         next
  186.       end
  187.       # 确认回合条件
  188.       if c.turn_valid
  189.         n = $game_temp.battle_turn
  190.         a = c.turn_a
  191.         b = c.turn_b
  192.         if (b == 0 and n != a) or
  193.            (b > 0 and (n < 1 or n < a or n % b != a % b))
  194.           next
  195.         end
  196.       end
  197.       # 确认敌人条件
  198.       if c.enemy_valid
  199.         enemy = $game_troop.enemies[c.enemy_index]
  200.         if enemy == nil or enemy.hp * 100.0 / enemy.maxhp > c.enemy_hp
  201.           next
  202.         end
  203.       end
  204.       # 确认角色条件
  205.       if c.actor_valid
  206.         actor = $game_actors[c.actor_id]
  207.         if actor == nil or actor.hp * 100.0 / actor.maxhp > c.actor_hp
  208.           next
  209.         end
  210.       end
  211.       # 确认开关条件
  212.       if c.switch_valid
  213.         if $game_switches[c.switch_id] == false
  214.           next
  215.         end
  216.       end
  217.       # 设置事件
  218.       $game_system.battle_interpreter.setup(page.list, 0)
  219.       # 本页的范围是 [战斗] 或 [回合] 的情况下
  220.       if page.span <= 1
  221.         # 设置执行结束标志
  222.         $game_temp.battle_event_flags[index] = true
  223.       end
  224.       return
  225.     end
  226.   end
  227.   #--------------------------------------------------------------------------
  228.   # ● 刷新画面
  229.   #--------------------------------------------------------------------------
  230.   def update
  231.     # 执行战斗事件中的情况下
  232.     if $game_system.battle_interpreter.running?
  233.       # 刷新解释器
  234.       $game_system.battle_interpreter.update
  235.       # 强制行动的战斗者不存在的情况下
  236.       if $game_temp.forcing_battler == nil
  237.         # 执行战斗事件结束的情况下
  238.         unless $game_system.battle_interpreter.running?
  239.           # 继续战斗的情况下、再执行战斗事件的设置
  240.           unless judge
  241.             setup_battle_event
  242.           end
  243.         end
  244.         # 如果不是结束战斗回合的情况下
  245.         if @phase != 5
  246.           # 刷新状态窗口
  247.           @status_window.refresh
  248.         end
  249.       end
  250.     end
  251.     # 系统 (计时器)、刷新画面
  252.     $game_system.update
  253.     $game_screen.update
  254.     # 计时器为 0 的情况下
  255.     if $game_system.timer_working and $game_system.timer == 0
  256.       # 中断战斗
  257.       $game_temp.battle_abort = true
  258.     end
  259.     # 刷新窗口
  260.     @help_window.update
  261.     @party_command_window.update
  262.     @actor_command_window.update
  263.     @status_window.update
  264.     @message_window.update
  265.     # 刷新活动块
  266.     @spriteset.update
  267.     # 处理过渡中的情况下
  268.     if $game_temp.transition_processing
  269.       # 清除处理过渡中标志
  270.       $game_temp.transition_processing = false
  271.       # 执行过渡
  272.       if $game_temp.transition_name == ""
  273.         Graphics.transition(20)
  274.       else
  275.         Graphics.transition(40, "Graphics/Transitions/" +
  276.           $game_temp.transition_name)
  277.       end
  278.     end
  279.     # 显示信息窗口中的情况下
  280.     if $game_temp.message_window_showing
  281.       return
  282.     end
  283.     # 显示效果中的情况下
  284.     if @spriteset.effect?
  285.       return
  286.     end
  287.     # 游戏结束的情况下
  288.     if $game_temp.gameover
  289.       # 切换到游戏结束画面
  290.       $scene = Scene_Gameover.new
  291.       return
  292.     end
  293.     # 返回标题画面的情况下
  294.     if $game_temp.to_title
  295.       # 切换到标题画面
  296.       $scene = Scene_Title.new
  297.       return
  298.     end
  299.     # 中断战斗的情况下
  300.     if $game_temp.battle_abort
  301.       # 还原为战斗前的 BGM
  302.       $game_system.bgm_play($game_temp.map_bgm)
  303.       # 战斗结束
  304.       battle_end(1)
  305.       return
  306.     end
  307.     # 等待中的情况下
  308.     if @wait_count > 0
  309.       # 减少等待计数
  310.       @wait_count -= 1
  311.       return
  312.     end
  313.     # 强制行动的角色存在、
  314.     # 并且战斗事件正在执行的情况下
  315.     if $game_temp.forcing_battler == nil and
  316.        $game_system.battle_interpreter.running?
  317.       return
  318.     end
  319.     # 回合分支
  320.     case @phase
  321.     when 1  # 自由战斗回合
  322.       update_phase1
  323.     when 2  # 同伴命令回合
  324.       update_phase2
  325.     when 3  # 角色命令回合
  326.       update_phase3
  327.     when 4  # 主回合
  328.       update_phase4
  329.     when 5  # 战斗结束回合
  330.       update_phase5
  331.     end
  332.   end
  333. end
复制代码
和一些戰斗中help關聯的修改
@help_picture.visible = true
@help_picture.visible = false
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-5 11:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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