Project1

标题: 急!!!!!!!!!!!! [打印本页]

作者: yg0015    时间: 2008-9-20 23:10
标题: 急!!!!!!!!!!!!
在测试游戏的时候  再买东西的时候说: RGSS `Scene_Map`的214行 NameError 发生错误。
                                     uninitialized constant Scene_Map::Scene_Shop
怎么回事? [LINE]1,#dddddd[/LINE]此贴于 2008-10-13 22:57:35 被版主八云紫提醒,请楼主看到后对本贴做出回应。 [LINE]1,#dddddd[/LINE]版务信息:版主帮忙结贴~
作者: 八云紫    时间: 2008-9-20 23:11
Scene_Map 214 行 发上来。

NameError

存取未定义区域变量或常量时抛出此异常


作者: Fantasy幻想    时间: 2008-9-20 23:11
尿急请去上WC
这素脚本问题,我素打酱油路过
作者: yg0015    时间: 2008-9-20 23:14
$scene = Scene_Shop.new
作者: 八云紫    时间: 2008-9-20 23:16
用 英文,半角 重新输入一次,试试。

呃,还是把 Scene_Map 的脚本都发上来吧。
作者: yg0015    时间: 2008-9-20 23:40
  1. #==============================================================================
  2. # ■ Scene_Map
  3. #------------------------------------------------------------------------------
  4. #  处理菜单画面的类。
  5. #==============================================================================

  6. class Scene_Map < Scene_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 开始处理
  9.   #--------------------------------------------------------------------------
  10.   def start
  11.     super
  12.     $game_map.refresh
  13.     @spriteset = Spriteset_Map.new
  14.     @message_window = Window_Message.new
  15.   end
  16.   #--------------------------------------------------------------------------
  17.   # ● 执行过渡
  18.   #--------------------------------------------------------------------------
  19.   def perform_transition
  20.     if Graphics.brightness == 0       # 战斗后,直接显示
  21.       fadein(30)
  22.     else                              # 恢复菜单
  23.       Graphics.transition(15)
  24.     end
  25.   end
  26.   #--------------------------------------------------------------------------
  27.   # ● 終了処理
  28.   #--------------------------------------------------------------------------
  29.   def terminate
  30.     super
  31.     if $scene.is_a?(Scene_Battle)     # 切换战斗画面的情况
  32.       @spriteset.dispose_characters   # 为了生成背景遮蔽角色
  33.     end
  34.     snapshot_for_background
  35.     @spriteset.dispose
  36.     @message_window.dispose
  37.     if $scene.is_a?(Scene_Battle)     # 切换到战斗画面的情况
  38.       perform_battle_transition       # 执行战斗前过渡
  39.     end
  40.   end
  41.   #--------------------------------------------------------------------------
  42.   # ● 基本更新处理
  43.   #--------------------------------------------------------------------------
  44.   def update_basic
  45.     Graphics.update                   # 刷新游戏画面
  46.     Input.update                      # 刷新输入信息
  47.     $game_map.update                  # 刷新地图
  48.     @spriteset.update                 # 刷新Spriteset
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # ● 刷新画面
  52.   #--------------------------------------------------------------------------
  53.   def update
  54.     super
  55.     $game_map.interpreter.update      # 刷新解释器
  56.     $game_map.update                  # 刷新地图
  57.     $game_player.update               # 刷新玩家
  58.     $game_system.update               # 刷新计时器
  59.     @spriteset.update                 # 刷新Spriteset
  60.     @message_window.update            # 刷新文章窗口
  61.     unless $game_message.visible      # 不是显示文章的情况
  62.       update_transfer_player
  63.       update_encounter
  64.       update_call_menu
  65.       update_call_debug
  66.       update_scene_change
  67.     end
  68.   end
  69.   #--------------------------------------------------------------------------
  70.   # ● 画面的淡入
  71.   #     duration : 时间
  72.   #    在地图画面中,Graphics.fadeout不适合天气效果
  73.   #    和远景的滚动等移动画面渐现。
  74.   #--------------------------------------------------------------------------
  75.   def fadein(duration)
  76.     Graphics.transition(0)
  77.     for i in 0..duration-1
  78.       Graphics.brightness = 255 * i / duration
  79.       update_basic
  80.     end
  81.     Graphics.brightness = 255
  82.   end
  83.   #--------------------------------------------------------------------------
  84.   # ● 画面的淡出
  85.   #     duration : 时间
  86.   #    与淡入相同,Graphics.fadein 不直接使用。
  87.   #--------------------------------------------------------------------------
  88.   def fadeout(duration)
  89.     Graphics.transition(0)
  90.     for i in 0..duration-1
  91.       Graphics.brightness = 255 - 255 * i / duration
  92.       update_basic
  93.     end
  94.     Graphics.brightness = 0
  95.   end
  96.   #--------------------------------------------------------------------------
  97.   # ● 场所移动的处理
  98.   #--------------------------------------------------------------------------
  99.   def update_transfer_player
  100.     return unless $game_player.transfer?
  101.     fade = (Graphics.brightness > 0)
  102.     fadeout(30) if fade
  103.     @spriteset.dispose              # 释放spriteset
  104.     $game_player.perform_transfer   # 执行场所移动
  105.     $game_map.autoplay              # BGM 和 BGS 自动切换
  106.     $game_map.update
  107.     Graphics.wait(15)
  108.     @spriteset = Spriteset_Map.new  # Spriteset再生成
  109.     fadein(30) if fade
  110.     Input.update
  111.   end
  112.   #--------------------------------------------------------------------------
  113.   # ● 遇敌处理
  114.   #--------------------------------------------------------------------------
  115.   def update_encounter
  116.     return if $game_player.encounter_count > 0        # 遭遇步数未满?
  117.     return if $game_map.interpreter.running?          # 时间执行中?
  118.     return if $game_system.encounter_disabled         # 遇敌禁止中?
  119.     troop_id = $game_player.make_encounter_troop_id   # 确定敌人队伍
  120.     return if $data_troops[troop_id] == nil           # 敌人队伍无效?
  121.     $game_troop.setup(troop_id)
  122.     $game_troop.can_escape = true
  123.     $game_temp.battle_proc = nil
  124.     $game_temp.next_scene = "battle"
  125.     preemptive_or_surprise
  126.   end
  127.   #--------------------------------------------------------------------------
  128.   # ● 先制攻击和不意打的概率判定
  129.   #--------------------------------------------------------------------------
  130.   def preemptive_or_surprise
  131.     actors_agi = $game_party.average_agi
  132.     enemies_agi = $game_troop.average_agi
  133.     if actors_agi >= enemies_agi
  134.       percent_preemptive = 5
  135.       percent_surprise = 3
  136.     else
  137.       percent_preemptive = 3
  138.       percent_surprise = 5
  139.     end
  140.     if rand(100) < percent_preemptive
  141.       $game_troop.preemptive = true
  142.     elsif rand(100) < percent_surprise
  143.       $game_troop.surprise = true
  144.     end
  145.   end
  146.   #--------------------------------------------------------------------------
  147.   # ● 按取消按钮的菜单呼叫判定
  148.   #--------------------------------------------------------------------------
  149.   def update_call_menu
  150.     if Input.trigger?(Input::B)
  151.       return if $game_map.interpreter.running?        # 事件执行中?
  152.       return if $game_system.menu_disabled            # 菜单禁止中?
  153.       $game_temp.menu_beep = true                     # SE 演奏标志设定
  154.       $game_temp.next_scene = "menu"
  155.     end
  156.   end
  157.   #--------------------------------------------------------------------------
  158.   # ● F9键的Debug窗口呼叫判定
  159.   #--------------------------------------------------------------------------
  160.   def update_call_debug
  161.     if $TEST and Input.press?(Input::F9)    # 在测试游戏中按F9
  162.       $game_temp.next_scene = "debug"
  163.     end
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   # ● 执行画面切换
  167.   #--------------------------------------------------------------------------
  168.   def update_scene_change
  169.     return if $game_player.moving?    # 玩家移动中?
  170.     case $game_temp.next_scene
  171.     when "battle"
  172.       call_battle
  173.     when "shop"
  174.       call_shop
  175.     when "name"
  176.       call_name
  177.     when "menu"
  178.       call_menu
  179.     when "save"
  180.       call_save
  181.     when "debug"
  182.       call_debug
  183.     when "gameover"
  184.       call_gameover
  185.     when "title"
  186.       call_title
  187.     else
  188.       $game_temp.next_scene = nil
  189.     end
  190.   end
  191.   #--------------------------------------------------------------------------
  192.   # ● 切换战斗画面
  193.   #--------------------------------------------------------------------------
  194.   def call_battle
  195.     @spriteset.update
  196.     Graphics.update
  197.     $game_player.make_encounter_count
  198.     $game_player.straighten
  199.     $game_temp.map_bgm = RPG::BGM.last
  200.     $game_temp.map_bgs = RPG::BGS.last
  201.     RPG::BGM.stop
  202.     RPG::BGS.stop
  203.     Sound.play_battle_start
  204.     $game_system.battle_bgm.play
  205.     $game_temp.next_scene = nil
  206.     $scene = Scene_Battle.new
  207.   end
  208.   #--------------------------------------------------------------------------
  209.   # ● 切换商店画面
  210.   #--------------------------------------------------------------------------
  211.   def call_shop
  212.     $game_temp.next_scene = nil
  213.     $scene = Scene_Shop.new
  214.   end
  215.   #--------------------------------------------------------------------------
  216.   # ● 切换姓名输入界面
  217.   #--------------------------------------------------------------------------
  218.   def call_name
  219.     $game_temp.next_scene = nil
  220.     $scene = Scene_Name.new
  221.   end
  222.   #--------------------------------------------------------------------------
  223.   # ● 切换菜单画面
  224.   #--------------------------------------------------------------------------
  225.   def call_menu
  226.     if $game_temp.menu_beep
  227.       Sound.play_decision
  228.       $game_temp.menu_beep = false
  229.     end
  230.     $game_temp.next_scene = nil
  231.     $scene = Scene_Menu.new
  232.   end
  233.   #--------------------------------------------------------------------------
  234.   # ● 切换保存画面
  235.   #--------------------------------------------------------------------------
  236.   def call_save
  237.     $game_temp.next_scene = nil
  238.     $scene = Scene_File.new(true, false, true)
  239.   end
  240.   #--------------------------------------------------------------------------
  241.   # ● 切换Debug界面
  242.   #--------------------------------------------------------------------------
  243.   def call_debug
  244.     Sound.play_decision
  245.     $game_temp.next_scene = nil
  246.     $scene = Scene_Debug.new
  247.   end
  248.   #--------------------------------------------------------------------------
  249.   # ● 切换游戏结束画面
  250.   #--------------------------------------------------------------------------
  251.   def call_gameover
  252.     $game_temp.next_scene = nil
  253.     $scene = Scene_Gameover.new
  254.   end
  255.   #--------------------------------------------------------------------------
  256.   # ● 切换标题画面
  257.   #--------------------------------------------------------------------------
  258.   def call_title
  259.     $game_temp.next_scene = nil
  260.     $scene = Scene_Title.new
  261.     fadeout(60)
  262.   end
  263.   #--------------------------------------------------------------------------
  264.   # ● 执行战斗前过渡
  265.   #--------------------------------------------------------------------------
  266.   def perform_battle_transition
  267.     Graphics.transition(80, "Graphics/System/BattleStart", 80)
  268.     Graphics.freeze
  269.   end
  270. end
复制代码

作者: 八云紫    时间: 2008-9-20 23:43
嘛, 测试了一下,没发现什么问题。

多半是脚本冲突吧。
作者: yg0015    时间: 2008-9-20 23:47
那该怎么办呀?
作者: 八云紫    时间: 2008-9-20 23:48
全局搜索 class Scene_Map , 看看搜索的结果是不是有两个。
作者: yg0015    时间: 2008-9-20 23:50
就一个!{/fd}
作者: 八云紫    时间: 2008-9-20 23:51
那就去新建的工程里面复制一个过来, 替换掉出错的。
作者: 雪流星    时间: 2008-9-21 05:23
他那是旧版的BUG
大家好像忘了

下载新版VX,新建工程,然後复制Scene_Shop覆盖旧工程的Scene_Shop [LINE]1,#dddddd[/LINE]系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~
作者: 八云紫    时间: 2008-9-21 05:24
以下引用snstar2006于2008-9-20 21:23:23的发言:

他那是旧版的BUG
大家好像忘了

下载新版VX,新建工程,然後复制Scene_Shop覆盖旧工程的Scene_Shop


错误原因是什么??
作者: 龙轩    时间: 2008-9-21 05:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: 雪流星    时间: 2008-9-21 05:26
我不知道
没用过旧版的

MS旧版的scene_shop有错误

好像是scene_shop这个脚本组的内容实际上是scene_map(还是其他scene,反正不是shop就对了)
作者: 龙轩    时间: 2008-9-21 05:31
提示: 作者被禁止或删除 内容自动屏蔽
作者: 木葬枫    时间: 2008-9-21 07:41
1的是不?因为1.01的不用激活码·对不?<br>
<br>
<br>
----------------by【龙轩】-----------------


[/quote]

对紫苑有爱的说………
楼主去看置顶贴里的火鸡版吧………还满好用的说……




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