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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: a824759414
打印 上一主题 下一主题

[已经解决] RMVX如何弄个买卖东西的菜单?

 关闭 [复制链接]

Lv2.观梦者

梦石
0
星屑
276
在线时间
2088 小时
注册时间
2011-7-28
帖子
1145
11
发表于 2011-11-3 13:34:06 | 只看该作者
  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                 # 更新活动块组
  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                 # 更新活动块组
  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.   #    滚动都会被强迫停止,所以用动态的 fade-in 效果会好些。
  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.   #    与上面的 fadein 一样,不是直接调用 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              # 释放活动块组
  104.     $game_player.perform_transfer   # 执行场所移动
  105.     $game_map.autoplay              # 自动更改 BGM 和 BGS
  106.     $game_map.update
  107.     Graphics.wait(15)
  108.     @spriteset = Spriteset_Map.new  # 重新生成活动块组
  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.   # ● 判断是否呼叫菜单(按下B键)
  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                     # 设置音效标志
  154.       $game_temp.next_scene = "menu"
  155.     end
  156.   end
  157.   #--------------------------------------------------------------------------
  158.   # ● 判断是否呼叫DEBUG场景(按下F9键)
  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
复制代码
直接覆盖Scene_Map(= =)
[color=Red][b]我没有签名[/b][/color]
回复

使用道具 举报

Lv3.寻梦者

虚空人形

梦石
0
星屑
4723
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

12
发表于 2011-11-3 13:54:45 | 只看该作者
      建议你使用默认脚本按我之前说的去做,包成。
回复

使用道具 举报

Lv1.梦旅人

Mr.Gandum

梦石
0
星屑
226
在线时间
2070 小时
注册时间
2007-1-31
帖子
3039

贵宾

13
发表于 2011-11-3 17:37:43 | 只看该作者
a824759414 发表于 2011-11-2 21:00
我没有添加或修改脚本,就是点了个买东西(YES)后出现以下内容的,我在YES选项那里弄得是执行商店,然后 ...

看一下你的脚本编辑器里的Scene_Map里的第214行是不是这样
  1. $scene = Scene_Shop
复制代码
如果是的话改成这样:
  1. $scene = Scene_Shop.new
复制代码
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
134 小时
注册时间
2009-3-29
帖子
470
14
发表于 2011-11-3 19:05:29 | 只看该作者
楼主或许可以考虑一下这用个办法。如果确实没有修改过的话,真的要换新版了。最好是在这里下载的
黑之结界勇士
回复

使用道具 举报

Lv2.观梦者

水土火风重逢处

梦石
0
星屑
259
在线时间
691 小时
注册时间
2010-7-17
帖子
3042
15
发表于 2011-11-3 19:14:29 | 只看该作者
下载新版的吧,旧版的商店是有BUG的,改脚本什么的意义不大
独坐望城,望断天涯
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-25 12:15

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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