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

Project1

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

[已经解决] 【已解决】如何改写成菜单里的传送命令

[复制链接]

Lv4.逐梦者

梦石
0
星屑
7714
在线时间
1332 小时
注册时间
2015-8-15
帖子
749
跳转到指定楼层
1
发表于 2023-3-14 21:37:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 金芒芒 于 2023-3-27 08:50 编辑

把when 0
        command_new_game
--------------------------------------------------------------------------------------------
改成 when 0
      command_地图_传送
end

  #--------------------------------------------------------------------------
  # 11111111111111 ● 命令 :地图传送 when 0
  #--------------------------------------------------------------------------
  def command_地图_传送
      传送到5号地图x=1 y=1
end
---------------------------------------------------------------------------------------------



RUBY 代码复制
  1. def update_command
  2.     if Input.trigger?(Input::C)
  3.       Notification.clear
  4.       # 命令窗口的光标位置的分支
  5.       case @command_window.index
  6.       when 0  # new game
  7.         command_new_game
  8.       when 1  # tutorial
  9.         command_tutorial
  10.       when 2  # continue
  11.         command_continue
  12.       when 3  # historyical
  13.         command_historical_battle
  14.       when 4  # custom battle自定义战斗
  15.         command_custom_battle
  16.       when 5  # setting
  17.         command_setting
  18.       when 6  # shutdown
  19.         command_shutdown  
  20.       end

Lv3.寻梦者

梦石
0
星屑
4721
在线时间
387 小时
注册时间
2012-11-8
帖子
276
2
发表于 2023-3-15 08:31:51 | 只看该作者
$game_map.setup(5) # 设置5号地图
$game_player.moveto(1,1) # 移动至1,1
$game_player.turn_down # 主角朝下,如需其他朝向参考Game_Character内相关方法
$game_player.straighten # 姿势矫正
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7714
在线时间
1332 小时
注册时间
2015-8-15
帖子
749
3
 楼主| 发表于 2023-3-15 11:11:13 | 只看该作者
本帖最后由 金芒芒 于 2023-3-15 11:26 编辑
qq634488405 发表于 2023-3-15 08:31
$game_map.setup(5) # 设置5号地图
$game_player.moveto(1,1) # 移动至1,1
$game_player.turn_down # 主角 ...


        command_new_game 改成  command_地图_传送
     这样命令语句对吗 command_map_moveto

1.png (10.42 KB, 下载次数: 10)

1.png
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4721
在线时间
387 小时
注册时间
2012-11-8
帖子
276
4
发表于 2023-3-16 08:30:48 | 只看该作者
金芒芒 发表于 2023-3-15 11:11
command_new_game 改成  command_地图_传送
     这样命令语句对吗 command_map_moveto ...

在地图跳转前有没有执行过$game_map=Game_Map.new,看看前后的脚本
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7714
在线时间
1332 小时
注册时间
2015-8-15
帖子
749
5
 楼主| 发表于 2023-3-17 10:54:56 | 只看该作者
本帖最后由 金芒芒 于 2023-3-17 10:56 编辑
qq634488405 发表于 2023-3-16 08:30
在地图跳转前有没有执行过$game_map=Game_Map.new,看看前后的脚本



事件 $scene = Scene_Map1.new

  1. class  Scene_Map1
  2.   #--------------------------------------------------------------------------
  3.   # ● 住处理
  4.   #--------------------------------------------------------------------------
  5.   def main
  6.     # 战斗测试的情况下
  7.     if $BTEST
  8.       battle_test
  9.       return
  10.     end
  11.     # 载入数据库
  12.     $data_actors        = load_data("Data/Actors.rxdata")
  13.     $data_classes       = load_data("Data/Classes.rxdata")
  14.     $data_skills        = load_data("Data/Skills.rxdata")
  15.     $data_items         = load_data("Data/Items.rxdata")
  16.     $data_weapons       = load_data("Data/Weapons.rxdata")
  17.     $data_armors        = load_data("Data/Armors.rxdata")
  18.     $data_enemies       = load_data("Data/Enemies.rxdata")
  19.     $data_troops        = load_data("Data/Troops.rxdata")
  20.     $data_states        = load_data("Data/States.rxdata")
  21.     $data_animations    = load_data("Data/Animations.rxdata")
  22.     $data_tilesets      = load_data("Data/Tilesets.rxdata")
  23.     $data_common_events = load_data("Data/CommonEvents.rxdata")
  24.     $data_system        = load_data("Data/System.rxdata")
  25.     # 生成系统对像
  26.     $game_system = Game_System.new
  27.     $game_system_m = Game_System.new
  28.     # 判定继续的有效性
  29.     # 存档文件一个也不存在的时候也调查
  30.     # 有効为 @continue_enabled 为 true、無効为 false
  31.     $continue_enabled = false
  32.     for i in 0..3
  33.       if FileTest.exist?("Save#{i+1}.rxdata")
  34.         $continue_enabled = true
  35.       end
  36.     end
  37.     # 停止演奏 ME、BGS
  38.     Audio.me_stop
  39.     Audio.bgs_stop
  40.    
  41.     Graphics.transition
  42.    
  43.     # 执行过渡

  44.     # 主循环
  45.     loop do
  46.       # 刷新游戏画面
  47.       Graphics.update
  48.       # 刷新输入信息
  49.       Input.update
  50.       # 刷新画面
  51.       update
  52.       # 如果画面被切换就中断循环
  53.       if $scene != self
  54.         break
  55.       end

  56.     end
  57.     # 装备过渡
  58.     Graphics.freeze
  59.     # 释放命令窗口
  60.     end
  61. #--------------------------------------------------------------------------
  62. # ● 刷新画面
  63. #--------------------------------------------------------------------------
  64. def update
  65. command_new_game
  66. end
  67.   #--------------------------------------------------------------------------
  68.   # ● 命令 : 新游戏
  69.   #--------------------------------------------------------------------------
  70.   def command_new_game
  71.     # 停止 BGM
  72.     Audio.bgm_stop
  73.     # 重置测量游戏时间用的画面计数器
  74.     Graphics.frame_count = 0
  75.     # 生成各种游戏对像
  76.     $game_temp          = Game_Temp.new
  77.     $game_system        = Game_System.new
  78.     $game_switches      = Game_Switches.new
  79.     $game_variables     = Game_Variables.new
  80.     $game_self_switches = Game_SelfSwitches.new
  81.     #$game_screen        = Game_Screen.new
  82.     $game_actors        = Game_Actors.new
  83.     $game_party         = Game_Party.new
  84.     $game_troop         = Game_Troop.new
  85.     $game_map           = Game_Map.new
  86.     $game_player        = Game_Player.new
  87.     # 设置初期同伴位置
  88.     $game_party.setup_starting_members
  89.     # 设置初期位置的地图
  90.     $game_map.setup(5)
  91.     # 主角向初期位置移动
  92.     $game_player.moveto(6, 4)#修改可视地图大小
  93.     # 刷新主角
  94.     $game_player.refresh
  95.     # 执行地图设置的 BGM 与 BGS 的自动切换
  96.     $game_map.autoplay
  97.     # 刷新地图 (执行并行事件)
  98.     $game_map.update
  99.     # 切换地图画面
  100.     $scene = Scene_Map.new
  101. #   $game_screen.weather(3,40, 0)
  102. #   $game_player.transparent = true
  103.     $game_screen.start_tone_change(Tone.new(0,0,0,0),0)#修改地图光照度
  104.     $game_switches[11] = true
  105.     $game_switches[15] = true
  106.    
  107.    
  108.     $scene.efs_title_main
  109.   end
  110.   #--------------------------------------------------------------------------
  111.   # ● 命令 : 继续
  112.   #--------------------------------------------------------------------------
  113.   def command_continue
  114.     # 继续无效的情况下
  115.     unless @continue_enabled
  116.       # 演奏无效 SE
  117.       $game_system.se_play($data_system.buzzer_se)
  118.       return
  119.     end
  120.     # 演奏确定 SE
  121.     $game_system.se_play($data_system.decision_se)
  122.     # 切换到读档画面
  123.     $scene = Scene_Load.new
  124.   end
  125.   #--------------------------------------------------------------------------
  126.   # ● 命令 : 退出
  127.   #--------------------------------------------------------------------------
  128.   def command_shutdown
  129.     # 演奏确定 SE
  130.     $game_system.se_play($data_system.decision_se)
  131.     # BGM、BGS、ME 的淡入淡出
  132.     Audio.bgm_fade(800)
  133.     Audio.bgs_fade(800)
  134.     Audio.me_fade(800)
  135.     # 退出
  136.     $scene = nil
  137.   end
  138.   #--------------------------------------------------------------------------
  139.   # ● 战斗测试
  140.   #--------------------------------------------------------------------------
  141.   def battle_test
  142.     # 载入数据库 (战斗测试用)
  143.     $data_actors        = load_data("Data/BT_Actors.rxdata")
  144.     $data_classes       = load_data("Data/BT_Classes.rxdata")
  145.     $data_skills        = load_data("Data/BT_Skills.rxdata")
  146.     $data_items         = load_data("Data/BT_Items.rxdata")
  147.     $data_weapons       = load_data("Data/BT_Weapons.rxdata")
  148.     $data_armors        = load_data("Data/BT_Armors.rxdata")
  149.     $data_enemies       = load_data("Data/BT_Enemies.rxdata")
  150.     $data_troops        = load_data("Data/BT_Troops.rxdata")
  151.     $data_states        = load_data("Data/BT_States.rxdata")
  152.     $data_animations    = load_data("Data/BT_Animations.rxdata")
  153.     $data_tilesets      = load_data("Data/BT_Tilesets.rxdata")
  154.     $data_common_events = load_data("Data/BT_CommonEvents.rxdata")
  155.     $data_system        = load_data("Data/BT_System.rxdata")
  156.     # 重置测量游戏时间用的画面计数器
  157.     Graphics.frame_count = 0
  158.     # 生成各种游戏对像
  159.     $game_temp          = Game_Temp.new
  160.     $game_system        = Game_System.new
  161.     $game_switches      = Game_Switches.new
  162.     $game_variables     = Game_Variables.new
  163.     $game_self_switches = Game_SelfSwitches.new
  164.     $game_screen        = Game_Screen.new
  165.     $game_actors        = Game_Actors.new
  166.     $game_party         = Game_Party.new
  167.     $game_troop         = Game_Troop.new
  168.     $game_map           = Game_Map.new
  169.     $game_player        = Game_Player.new
  170.     # 设置战斗测试用同伴
  171.     $game_party.setup_battle_test_members
  172.     # 设置队伍 ID、可以逃走标志、战斗背景
  173.     $game_temp.battle_troop_id = $data_system.test_troop_id
  174.     $game_temp.battle_can_escape = true
  175.     $game_map.battleback_name = $data_system.battleback_name
  176.     # 演奏战斗开始 BGM
  177.     $game_system.se_play($data_system.battle_start_se)
  178.     # 演奏战斗 BGM
  179.     $game_system.bgm_play($game_system.battle_bgm)
  180.     # 切换到战斗画面
  181.     $scene = Scene_Battle.new
  182.   end
  183. end
复制代码
  1. #==============================================================================
  2. # ■ Scene_Title
  3. #------------------------------------------------------------------------------
  4. #  处理标题画面的类。
  5. #==============================================================================

  6. class Scene_Map
  7.   #--------------------------------------------------------------------------
  8.   # ● 主处理
  9.   #--------------------------------------------------------------------------
  10.   def efs_title_main
  11.     # 战斗测试的情况下
  12.     if $BTEST
  13.       battle_test
  14.       return
  15.     end
  16.    
  17.     # 载入数据库
  18.     $data_actors        = load_data("Data/Actors.rxdata")
  19.     $data_classes       = load_data("Data/Classes.rxdata")
  20.     $data_skills        = load_data("Data/Skills.rxdata")
  21.     $data_items         = load_data("Data/Items.rxdata")
  22.     $data_weapons       = load_data("Data/Weapons.rxdata")
  23.     $data_armors        = load_data("Data/Armors.rxdata")
  24.     $data_enemies       = load_data("Data/Enemies.rxdata")
  25.     $data_troops        = load_data("Data/Troops.rxdata")
  26.     $data_states        = load_data("Data/States.rxdata")
  27.     $data_animations    = load_data("Data/Animations.rxdata")
  28.     $data_tilesets      = load_data("Data/Tilesets.rxdata")
  29.     $data_common_events = load_data("Data/CommonEvents.rxdata")
  30.     $data_system        = load_data("Data/System.rxdata")
  31.     # 生成系统对像
  32.     $game_system = Game_System.new
  33.     $game_system_m = Game_System.new
  34.     # 判定继续的有效性
  35.     # 存档文件一个也不存在的时候也调查
  36.     # 有効为 @continue_enabled 为 true、无效为 false
  37.     @continue_enabled = false
  38.     latest_time = Time.at(0)
  39.     for i in 1 ..KGH::SAVE_PAGEMAX*10+10
  40.       if FileTest.exist?(KGH::DIR+"Save#{i}.rxdata")
  41.         @continue_enabled = true
  42.         file = File.open(KGH::DIR+"Save#{i}.rxdata", "r")
  43.         time_stamp = file.mtime
  44.         characters = Marshal.load(file)
  45.         frame_count = Marshal.load(file)
  46.         game_system = Marshal.load(file)
  47.         if file.mtime > latest_time
  48.           latest_time = file.mtime
  49.           $game_system = game_system
  50.         end
  51.         file.close
  52.       end
  53.     end
  54.     $game_system_m = $game_system
  55.    
  56.     #--------------------------------------------------------------------------
  57.     # ●窗口部分
  58.     #--------------------------------------------------------------------------
  59.     # 生成标题图形
  60.     #@sprite = Sprite.new
  61.     #@sprite.bitmap = RPG::Cache.title($data_system.title_name)
  62.     #@sprite.z = 0
  63.     #@title = Sprite.new
  64.     #@title.bitmap = RPG::Cache.title("TITLE")
  65.     #@title.z = 20
  66.     #@title.zoom_x = 2.0
  67.     #@title.zoom_y = 2.0
  68.     #@title.x -= @title.bitmap.width
  69.    
  70.     # 生成命令窗口
  71.     @command_window = Window_Title_Command.new
  72.     @command_window.z = 20
  73.         
  74. #    @logo = Sprite.new
  75. #    @logo.bitmap = RPG::Cache.title("logo_conor")

  76. #    @logo.z = 950
  77. #    @bar_top = Sprite.new
  78. #    @bar_top.x = 0
  79. #    @bar_top.y = -35
  80. #    @bar_top.bitmap = RPG::Cache.title("black-bar")

  81. #   @bar_top.z = 900
  82. #   @bar_down = Sprite.new
  83. #   @bar_down.x = 0
  84. #   @bar_down.y = 480-15
  85. #   @bar_down.bitmap = RPG::Cache.title("black-bar")

  86. #   @bar_down.z = 900
  87.    
  88.     #
  89.     # version_num =
  90.     #
  91. #   version_num = 1.05
  92.    
  93. #   @version_info = Sprite.new
  94. #   @version_info.bitmap = Bitmap.new(100, 25)
  95. #   @version_info.x = 640 - @version_info.bitmap.width
  96. #   @version_info.y = 480 - @version_info.bitmap.height
  97. #   @version_info.z = 999
  98.    
  99. #   @version_info.bitmap.draw_text(0,0,100,25,"v. "+version_num.to_s)
  100.    
  101.     #draw_text
  102.    
  103.    
  104.     # 继续为有效的情况下、光标停止在继续上
  105.     # 无效的情况下、继续的文字显示为灰色
  106.     if @continue_enabled
  107.       @command_window.index = 2
  108.     else
  109.       @command_window.disable_item(2)
  110.     end

  111.    
  112.     # 演奏标题 BGM
  113.     $game_system.bgm_play($data_system.title_bgm)
  114.     # 停止演奏 ME、BGS
  115.     Audio.me_stop
  116.     Audio.bgs_stop
  117.     # 执行过渡
  118.     Graphics.transition
  119.     #while @title.x < 0
  120.     #  Graphics.update
  121.     #  Input.update
  122.      # @title.zoom_x -= 0.04
  123.       #@title.zoom_y -= 0.04
  124.      # @title.x += @title.bitmap.width/100*4
  125.     #end
  126.     # 主循环
  127.    
  128.     # 生成活动块
  129.     @spriteset = Spriteset_Map.new
  130.     # 生成信息窗口
  131.     @message_window = Window_Message.new
  132.     # 执行过渡
  133.         # 执行过渡
  134.     Graphics.transition
  135.     loop do
  136.      # @scene_map.main
  137.      
  138.      
  139.       #画面、地图刷新
  140.       $game_system.update
  141.       $game_screen.update
  142.       $game_map.update
  143.       #各种刷新
  144.       @spriteset.update #if @spriteset!=nil
  145.       
  146.       
  147.       # 刷新游戏画面
  148.       Graphics.update
  149.       # 刷新输入信息
  150.       Input.update
  151.       # 刷新画面
  152.       efs_title_update
  153.       
  154.       # 如果画面被切换就中断循环
  155.       if $scene != self
  156.         break
  157.       end
  158.       
  159.       
  160.       
  161.     end
  162.    
  163.      Graphics.freeze
  164.     # 释放活动块
  165.     @spriteset.dispose
  166.     # 释放信息窗口
  167.     @message_window.dispose
  168.     # 标题画面切换中的情况下
  169.         
  170. #    @logo.dispose
  171.     # 装备过渡
  172.     Graphics.freeze
  173.     # 释放命令窗口
  174.     @command_window.dispose
  175.     # 释放标题图形
  176.     #@sprite.dispose
  177.     #@title.dispose
  178. #   @bar_down.dispose
  179. #   @bar_top.dispose
  180. #   @version_info.dispose
  181.    
  182.   end
  183.   #--------------------------------------------------------------------------
  184.   # ● 刷新画面
  185.   #--------------------------------------------------------------------------
  186.   def efs_title_update
  187.     # 刷新命令窗口
  188.     if @command_window.active
  189.       @command_window.update
  190.       if @command_window.slide_over
  191.         update_command
  192.       end
  193.     end
  194.   end

  195.   
  196.   
  197. end
复制代码
  1. class Scene_Map
  2.   #--------------------------------------------------------------------------
  3.   # ● 刷新主菜单
  4.   #--------------------------------------------------------------------------
  5.   def update_command
  6.     if Input.trigger?(Input::C)
  7.       Notification.clear
  8.       # 命令窗口的光标位置的分支
  9.       case @command_window.index
  10.       when 0  # new game
  11.         command_new_game
  12.       when 1  # tutorial
  13.         command_tutorial
  14.       when 2  # continue
  15.         command_continue
  16.       when 3  # historyical
  17.         command_historical_battle
  18.       when 4  # custom battle自定义战斗
  19.         command_custom_battle
  20.       when 5  # setting
  21.         command_setting
  22.       when 6  # shutdown
  23.         command_shutdown  
  24.       end
  25.       
  26.       
  27.       
  28.       
  29.     end
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # ● 命令 : 新游戏
  33.   #--------------------------------------------------------------------------
  34.   def command_new_game
  35.     # 演奏确定 SE
  36.     $game_system.se_play($data_system.decision_se)
  37.     # 停止 BGM
  38.     Audio.bgm_stop
  39.     # 重置测量游戏时间用的画面计数器
  40.     Graphics.frame_count = 0
  41.     # 生成各种游戏对像
  42.     $game_temp          = Game_Temp.new
  43.     $game_system        = Game_System.new
  44.     $game_switches      = Game_Switches.new
  45.     $game_variables     = Game_Variables.new
  46.     $game_self_switches = Game_SelfSwitches.new
  47.     $game_screen        = Game_Screen.new
  48.     $game_actors        = Game_Actors.new
  49.     $game_party         = Game_Party.new
  50.     $game_troop         = Game_Troop.new
  51.     $game_map           = Game_Map.new
  52.     $game_player        = Game_Player.new
  53.     # 设置初期同伴位置
  54.     $game_party.setup_starting_members
  55.     # 设置初期位置的地图
  56.     $game_map.setup(20)
  57. #    $game_map.setup($data_system.start_map_id)
  58.     # 主角向初期位置移动
  59.     $game_player.moveto(20, 24)
  60.    # $game_player.moveto($data_system.start_x, $data_system.start_y)   
  61.     # 刷新主角
  62.     $game_player.refresh
  63.     # 执行地图设置的 BGM 与 BGS 的自动切换
  64.     $game_map.autoplay
  65.     # 刷新地图 (执行并行事件)
  66.     $game_map.update
  67.     # 切换地图画面
  68.     $scene = Scene_Map.new
  69.   end
  70.    # $game_party.setup_starting_members
  71.     # 设置初期位置的地图
  72.   #  $game_map.setup(5)
  73.     # 主角向初期位置移动
  74.   #  $game_player.moveto(6, 4)#修改可视地图大小
  75.     # 刷新主角
  76.   #  $game_player.refresh
  77.     # 执行地图设置的 BGM 与 BGS 的自动切换
  78.   #  $game_map.autoplay
  79.     # 刷新地图 (执行并行事件)
  80.   #  $game_map.update
  81.     # 切换地图画面
  82.   #  $scene = Scene_Map.new


  83.   #--------------------------------------------------------------------------
  84.   # ● 命令 : 教程
  85.   #--------------------------------------------------------------------------
  86.   def command_tutorial
  87.    
  88.     # 演奏确定 SE
  89.     $game_system.se_play($data_system.decision_se)
  90.     # 停止 BGM
  91.     Audio.bgm_stop
  92.     # 重置测量游戏时间用的画面计数器
  93.     Graphics.frame_count = 0
  94.     # 生成各种游戏对像
  95.     $game_temp          = Game_Temp.new
  96.     $game_system        = Game_System.new
  97.     $game_switches      = Game_Switches.new
  98.     $game_variables     = Game_Variables.new
  99.     $game_self_switches = Game_SelfSwitches.new
  100.     $game_screen        = Game_Screen.new
  101.     $game_actors        = Game_Actors.new
  102.     $game_party         = Game_Party.new
  103.     $game_troop         = Game_Troop.new
  104.     $game_map           = Game_Map.new
  105.     $game_player        = Game_Player.new
  106.    
  107.    
  108.     # 设置初期同伴位置
  109.     $game_party.setup_starting_members
  110.    
  111.    
  112.     $scene = Scene_Load_Bar.new(0,24,27,21)
  113.    
  114.     # 设置初期位置的地图
  115.     $game_map.setup(24)
  116.     # 主角向初期位置移动
  117.     $game_player.moveto(27, 21)
  118.     # 刷新主角
  119.     $game_player.refresh
  120.     # 执行地图设置的 BGM 与 BGS 的自动切换
  121.     $game_map.autoplay
  122.     # 刷新地图 (执行并行事件)
  123.     $game_map.update
  124.     # 切换地图画面
  125.     $scene = Scene_Map.new
  126.   end
  127.   #--------------------------------------------------------------------------
  128.   # ● 命令 : 继续
  129.   #--------------------------------------------------------------------------
  130.   def command_continue
  131.     # 继续无效的情况下
  132.     unless @continue_enabled
  133.       # 演奏无效 SE
  134.       $game_system.se_play($data_system.buzzer_se)
  135.       return
  136.     end
  137.     # 演奏确定 SE
  138.     $game_system.se_play($data_system.decision_se)
  139.     # 切换到读档画面
  140.    # $scene = Scene_Load_Ex.new
  141.      load_file_initialize
  142.     #if ! @force_back or @force_back == nil
  143.      load_file_main
  144.      
  145.      #p $game_map.id
  146.      
  147.      $scene = Scene_Map.new
  148.      
  149.      Graphics.update
  150.      efs_title_update
  151.      
  152.      
  153.   end
  154.   #--------------------------------------------------------------------------
  155.   # ● 命令 : 历史战役
  156.   #--------------------------------------------------------------------------
  157.   def command_historical_battle#定义命令历史字节
  158.     # 演奏确定 SE
  159.     $game_system.se_play($data_system.decision_se)
  160.     #$游戏系统。se播放($数据系统。未指定文件或目录)
  161.      p "historical battle"#历史性战役
  162.   end
  163.   
  164.   #--------------------------------------------------------------------------
  165.   # ● 命令 : 自定义战斗
  166.   #--------------------------------------------------------------------------
  167.   def command_custom_battle#定义命令_自定义战斗
  168.     # 演奏确定 SE
  169.     $game_system.se_play($data_system.decision_se)
  170.      #$游戏系统。se播放($数据系统。未指定文件或目录
  171.    
  172.   choose_map_main#选择主地图
  173.   map_info = @map_info#地图信息=@地图信息
  174.   #如果选择随机地图随机士兵
  175.   if ! @force_back and map_info[0] == -1#如果!@强制返回并地图信息[0]==-1
  176.     make_random_efs_game#生成随机efs_game
  177.     return
  178.   end
  179. #---------------------------------------------------- ↑↓   
  180.     #如果@强制后退或@强制后退==无
  181.     if ! @force_back or @force_back == nil
  182.     #自定义主战场(0,@地图信息[1],@地图信息[2])
  183.     custom_battle_main(0,@map_info[1],@map_info[2])
  184.     #团队选定部队=@选定部队
  185.     team_selected_troops = @selected_units
  186.     #如果@强制后退或@强制后退==无
  187.     if ! @force_back or @force_back == nil
  188.       #自定义主战场(1,@地图信息[1],@地图信息[2])
  189.       custom_battle_main(1,@map_info[1],@map_info[2])
  190.       #敌人选定部队=@选定部队
  191.       enermy_selected_troops = @selected_units
  192.       
  193.       #如果@强制后退或@强制后退==无
  194.       if ! @force_back or @force_back == nil
  195.         
  196.         choose_hero_main#选择英雄主
  197.         selected_hero = @selected_hero#选定的英雄=@选定的英雄
  198.         
  199.         if ! @force_back or @force_back == nil
  200.         team_army = Game_Army_Slg.new(0)
  201.         enermy_army = Game_Army_Slg.new(1)
  202.         team_army.create_empty_army
  203.         enermy_army.create_empty_army

  204.         
  205.         team_army.load_twoD_Array(team_selected_troops,selected_hero)
  206.         enermy_army.load_twoD_Array(enermy_selected_troops)
  207.        # 切换地图画面
  208.       #
  209.         team_army.set_groups_name
  210.         $custom_battle_next_fighter_team = team_army
  211.         $custom_battle_next_fighter_enermy = enermy_army
  212.         $custom_battle_next_map_id = map_info[0]
  213.         
  214.     # 停止 BGM
  215.         Audio.bgm_stop
  216.         
  217.         
  218.     # 重置测量游戏时间用的画面计数器
  219.         Graphics.frame_count = 0
  220.     # 生成各种游戏对像
  221.         $game_temp          = Game_Temp.new
  222.         $game_system        = Game_System.new
  223.         $game_switches      = Game_Switches.new
  224.         $game_variables     = Game_Variables.new
  225.         $game_self_switches = Game_SelfSwitches.new
  226.         $game_screen        = Game_Screen.new
  227.         $game_actors        = Game_Actors.new
  228.         $game_party         = Game_Party.new
  229.         $game_troop         = Game_Troop.new
  230.         $game_map           = Game_Map.new
  231.         $game_player        = Game_Player.new
  232.     # 设置初期同伴位置
  233.         $game_party.setup_starting_members
  234.         
  235.         
  236.         
  237.     # 设置初期位置的地图##############1356622
  238.         $game_map.setup(19)
  239.     # 主角向初期位置移动
  240.         $game_player.moveto(0, 0)
  241.     # 刷新主角
  242.         $game_player.refresh
  243.     # 执行地图设置的 BGM 与 BGS 的自动切换
  244.         $game_map.autoplay
  245.         
  246.         
  247.         
  248.         
  249.     # 刷新地图 (执行并行事件)
  250.         $game_map.update
  251.     # 切换地图画面
  252.         $scene = Scene_Map.new
  253.       
  254.          # $scene = Scene_Map.new
  255.           #efs_title_main
  256.          
  257.          else # fourth
  258.         @force_back = false
  259.         Graphics.update
  260.         efs_title_update
  261.         end   
  262.          
  263.            
  264.       else # third
  265.       @force_back = false
  266.       Graphics.update
  267.       efs_title_update
  268.       end   
  269.     else # second
  270.     @force_back = false
  271.     Graphics.update
  272.     efs_title_update
  273.     end
  274.   
  275.    else #1st
  276.      @force_back = false
  277.      Graphics.update
  278.      efs_title_update
  279.    end
  280.    
  281.   end
  282.   
  283.   #--------------------------------------------------------------------------
  284.   # ● 命令 : 设置
  285.   #--------------------------------------------------------------------------
  286.   def command_setting
  287.     # 演奏确定 SE
  288.     $game_system.se_play($data_system.decision_se)
  289.     p "setting"
  290.   end
  291.   #--------------------------------------------------------------------------
  292.   # ● 命令 : 退出
  293.   #--------------------------------------------------------------------------
  294.   def command_shutdown
  295.     # 演奏确定 SE
  296.     $game_system.se_play($data_system.decision_se)
  297.     # BGM、BGS、ME 的淡入淡出
  298.     Audio.bgm_fade(800)
  299.     Audio.bgs_fade(800)
  300.     Audio.me_fade(800)
  301.     # 退出
  302.     $scene = nil
  303.   end
  304.   
  305.   
  306.   
  307.   
  308.   
  309.   
  310.   
  311.   
  312.   
  313.   
  314.   
  315.   #--------------------------------------------------------------------------
  316.   # ● 战斗测试
  317.   #--------------------------------------------------------------------------
  318.   def battle_test
  319.     # 载入数据库 (战斗测试用)
  320.     $data_actors        = load_data("Data/BT_Actors.rxdata")
  321.     $data_classes       = load_data("Data/BT_Classes.rxdata")
  322.     $data_skills        = load_data("Data/BT_Skills.rxdata")
  323.     $data_items         = load_data("Data/BT_Items.rxdata")
  324.     $data_weapons       = load_data("Data/BT_Weapons.rxdata")
  325.     $data_armors        = load_data("Data/BT_Armors.rxdata")
  326.     $data_enemies       = load_data("Data/BT_Enemies.rxdata")
  327.     $data_troops        = load_data("Data/BT_Troops.rxdata")
  328.     $data_states        = load_data("Data/BT_States.rxdata")
  329.     $data_animations    = load_data("Data/BT_Animations.rxdata")
  330.     $data_tilesets      = load_data("Data/BT_Tilesets.rxdata")
  331.     $data_common_events = load_data("Data/BT_CommonEvents.rxdata")
  332.     $data_system        = load_data("Data/BT_System.rxdata")
  333.     # 重置测量游戏时间用的画面计数器
  334.     Graphics.frame_count = 0
  335.     # 生成各种游戏对像
  336.     $game_temp          = Game_Temp.new
  337.     $game_system        = Game_System.new
  338.     $game_switches      = Game_Switches.new
  339.     $game_variables     = Game_Variables.new
  340.     $game_self_switches = Game_SelfSwitches.new
  341.     $game_screen        = Game_Screen.new
  342.     $game_actors        = Game_Actors.new
  343.     $game_party         = Game_Party.new
  344.     $game_troop         = Game_Troop.new
  345.     $game_map           = Game_Map.new
  346.     $game_player        = Game_Player.new
  347.     # 设置战斗测试用同伴
  348.     $game_party.setup_battle_test_members
  349.     # 设置队伍 ID、可以逃走标志、战斗背景
  350.     $game_temp.battle_troop_id = $data_system.test_troop_id
  351.     $game_temp.battle_can_escape = true
  352.     $game_map.battleback_name = $data_system.battleback_name
  353.     # 演奏战斗开始 BGM
  354.     $game_system.se_play($data_system.battle_start_se)
  355.     # 演奏战斗 BGM
  356.     $game_system.bgm_play($game_system.battle_bgm)
  357.     # 切换到战斗画面
  358.     $scene = Scene_Battle.new
  359.   end


  360. end
复制代码
  1. #==============================================================================
  2. # ■ Window_Title_Command
  3. #------------------------------------------------------------------------------
  4. #  标题的主菜单。
  5. #==============================================================================
  6. class Window_Title_Command < Window_Base
  7.   attr_reader   :index
  8.   attr_reader   :slide_over   #滚动结束
  9.   #start load option exit
  10.   #--------------------------------------------------------------------------
  11.   # ● 初始化对像
  12.   #     actor : 角色
  13.   #--------------------------------------------------------------------------
  14.   def initialize(index=0)
  15.     @index = index
  16.     #选项背景
  17.     @button_base = Sprite.new
  18.     @button_base.bitmap = RPG::Cache.title("title-base-light")
  19.     @button_base.x = 1200-680+409
  20.     @button_base.y = 56
  21.    
  22.    
  23.     @cur_back = []
  24.     @text_list = []
  25.     @able = []
  26.     #光标
  27.     @item_max = 7
  28.     for i in 0...@item_max
  29.       @able[i] = true
  30.       @cur_back[i] = Sprite.new
  31.       @cur_back[i].bitmap = RPG::Cache.title("title-normal")#+i.to_s)
  32.       @cur_back[i].x = 1200-680+435
  33.       @cur_back[i].y = 81+45*i
  34.       @text_list[i] = Sprite.new
  35.       @text_list[i].bitmap = RPG::Cache.title("index-"+i.to_s)
  36.       @text_list[i].x = 1200-680+435 + 47
  37.       @text_list[i].y = 81+45*i + 9
  38.     end
  39.     @slide_over = false
  40.     super(0, 0, 0, 0)
  41.     self.opacity = 0
  42.     self.active = true
  43.   end
  44.   def origin_x
  45.     return 1200-680+435
  46.   end
  47.   def origin_y
  48.     return 81
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # ● 一些方法的重载
  52.   #--------------------------------------------------------------------------  
  53.   def dispose
  54.     @button_base.dispose
  55.     for i in 0...@item_max
  56.       @cur_back[i].dispose
  57.       @text_list[i].dispose
  58.     end
  59.     super
  60.   end
  61.   
  62.   def z=(z)
  63.     super(z)
  64.     @button_base.z=z
  65.     for i in 0...@item_max
  66.       @cur_back[i].z=z
  67.       @text_list[i].z=z
  68.     end
  69.   end
  70.   def visible=(visible)
  71.     super(visible)
  72.     @button_base.visible = visible
  73.     for i in 0...@item_max
  74.       @cur_back[i].visible = visible
  75.       @text_list[i].visible = visible
  76.     end
  77.   end
  78.   def index=(index)
  79.     @index=index
  80.   end
  81.   def disable_item(i)
  82.   end
  83.   #--------------------------------------------------------------------------
  84.   # ● 光标不被选中状态
  85.   #--------------------------------------------------------------------------
  86.   def back_normal(index)
  87.     if index != -1
  88.        @cur_back[index].bitmap = RPG::Cache.title("title-normal")#+i.to_s)
  89.        @text_list[index].bitmap = RPG::Cache.title("index-"+index.to_s)
  90.     end
  91.   end
  92.   def disable_item(index)
  93.     @cur_back[index].bitmap = RPG::Cache.title("title-pressed")#+i.to_s)
  94.     @able[index] = false
  95.     @text_list[index].bitmap = RPG::Cache.title("index-"+index.to_s+"-black")
  96.     #@cur_back[index].color = Color.new(0,0,0,128)
  97.   end
  98.   #--------------------------------------------------------------------------
  99.   # ● 更新光标矩形
  100.   #--------------------------------------------------------------------------
  101.   def update_cursor_rect
  102.     # 光标位置不满 0 的情况下
  103.     if @index < 0
  104.       for i in 0...@item_max
  105.         back_normal(i)
  106.       end
  107.       return
  108.     end
  109.     @cur_back[@index].bitmap = RPG::Cache.title("title-highlight")#+i.to_s)
  110.     @text_list[@index].bitmap = RPG::Cache.title("index-"+index.to_s+"-hl")
  111. =begin   
  112.     speed = 40#闪烁速度
  113.     if Graphics.frame_count % speed
  114.       < speed/2
  115.       @cur_back[@index].color = Color.new(255,255,255,100+(Graphics.frame_count%speed)*2)
  116.     else
  117.       @cur_back[@index].color = Color.new(255,255,255,100+(speed-Graphics.frame_count%speed)*2)
  118.     end
  119. =end

  120.   end
  121.   #--------------------------------------------------------------------------
  122.   # ● 刷新画面
  123.   #--------------------------------------------------------------------------
  124.   def update
  125.     #@cur_back[i].x = 644#640-188
  126.      @slide_over = true

  127.    
  128.     if self.active
  129.       # 方向键左被按下的情况下
  130.       if Input.repeat?(Input::DOWN)
  131.         $game_system.se_play($data_system.cursor_se)
  132.         back_normal(@index)
  133.         @index = (@index+1)%@item_max
  134.         until @able[@index]
  135.           @index = (@index+1)%@item_max
  136.         end
  137.       end
  138.       # 方向键右被按下的情况下
  139.       if Input.repeat?(Input::UP)
  140.         $game_system.se_play($data_system.cursor_se)
  141.         back_normal(@index)
  142.         @index = (@index+@item_max-1)%@item_max
  143.         until @able[@index]
  144.           @index = (@index+@item_max-1)%@item_max
  145.         end
  146.       end
  147.     end
  148.     # 刷新光标矩形
  149.     update_cursor_rect if @slide_over
  150.   end
  151.   
  152. end
复制代码
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4721
在线时间
387 小时
注册时间
2012-11-8
帖子
276
6
发表于 2023-3-21 08:49:09 | 只看该作者
金芒芒 发表于 2023-3-15 11:11
command_new_game 改成  command_地图_传送
     这样命令语句对吗 command_map_moveto ...

出错的那个复制事件脚本
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7714
在线时间
1332 小时
注册时间
2015-8-15
帖子
749
7
 楼主| 发表于 2023-3-21 11:38:10 | 只看该作者
qq634488405 发表于 2023-3-21 08:49
出错的那个复制事件脚本

#==============================================================================
# ☆★☆ 提取放置物脚本(强化) ☆★☆  
#------------------------------------------------------------------------------
# - 美兽
# - 2007.4.12
#------------------------------------------------------------------------------
#  爱护环境,人人有责,现实中切勿乱丢垃圾。
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
#  脚本原理:
#  是从仓库地图中提取事件,将其拷贝放入指定的位置,
#  依此达成随时随地生成新事件的功能,如此可节省大量用RGSS编写事件所消耗的体力,很多地方写的
#  很保守,尽量减少冲突几率。。
#  此为强化版,可实现新事件的保存,但代价是冲突的随之增大,若只想单纯实现ARPG
#  一类的物品掉落,场所移动后便清除,请使用简洁版。
#------------------------------------------------------------------------------
=begin
                                Note:
  
一:生成物品主方法:
    Drop_Item.make_events(map_id,event_id,item_x,item_y,save=false)
    map_id : 仓库地图的ID。
    event_id : 仓库中对应事件的ID。
    item_x、item_y :新事件的X与Y坐标
    save : 是否存储标志;
           默认为false,即不存储,场所移动等转换场景后事件会消失;
           true 为存储,取档、关机、登火星,返回后事件仍存在。
           
二:删除事件方法:
    事件名若包含"delete"字段,则执行完毕会立即自我清除;
    注:任何事件皆如此。

三:必掌握语句:
    $game_map.events[@event_id]
    $game_player
    事件的脚本使用,表示“本事件”和“角色”,主要为取得事件的坐标,
    取得“本事件”X与Y坐标:$game_map.events[@event_id].x
                            $game_map.events[@event_id].y
    取得“角色”X与Y坐标:$game_player.x
                          $game_player.y                           
    例如,在某事件左侧生成2号地图的2号事件并永久存储,写法如下。
    x = $game_map.events[@event_id].x
    y = $game_map.events[@event_id].y
    Drop_Item.make_events(2,2,x-1,y,true)

四:备注:
    此脚本用法十分灵活,种植、建设、舍弃、掉宝等功能都可用以达成。   

=end
#==============================================================================

module Drop_Item
  
  
  def self.pre_load
    $temp = Marshal.load(Marshal.dump(self.map_data_load(9)))
  end
  
  def self.make_events_EFS(item_x,item_y)
      return unless self.is_map?        
      if !$game_system.map_events_number
         $game_system.map_events_number = {}
       end  
      sum = $game_system.map_events_number      
      m_id = $game_map.map_id      
      sum[m_id] == nil ? sum[m_id] = 2000 : sum[m_id] += 1
      
      new_event_id = sum[m_id]   
      
      $temp.events[1].id = new_event_id      
      $temp.events[1].x,$temp.events[1].y = item_x,item_y  
      #####
      $game_map.events[new_event_id] = Game_Event.new(m_id,$temp.events[1])
      #####
    #  refresh_map   
  end  
  
  
  
  def self.make_events(map_id,event_id,item_x,item_y,save=false)
      return unless self.is_map?        
      map = self.map_data_load(map_id)      
      temp = Marshal.load(Marshal.dump(map))      
      
      if !$game_system.map_events_number
         $game_system.map_events_number = {}
      end  
      sum = $game_system.map_events_number      
      m_id = $game_map.map_id      
      sum[m_id] == nil ? sum[m_id] = 2000 : sum[m_id] += 1
      
      new_event_id = sum[m_id]   
      
      temp.events[event_id].id = new_event_id      
      temp.events[event_id].x,temp.events[event_id].y = item_x,item_y  
      #####
      $game_map.events[new_event_id] = Game_Event.new(m_id,temp.events[event_id])
      #####
      if save
         now_map = self.map_data_load(m_id)
         now_map.events[new_event_id] = temp.events[event_id]
         self.map_data_save(m_id,now_map)
      end  
      refresh_map   
  end
   
  def self.map_data_init   
      for i in 1..999
         begin
           map = load_data(sprintf("Data/Map%03d.rxdata", i))
         rescue Errno::ENOENT
           next
         end
         $game_system.map_data = Marshal.load(Marshal.dump(map))         
      end
  end  
  
  def self.map_data_save(map_id,event)
      $game_system.map_data[$game_map.map_id] = event           
  end   

  def self.map_data_load(map_id)
      if !$game_system.map_data
         $game_system.map_data = {}
         self.map_data_init
      end
      return $game_system.map_data[map_id]      
  end  
   
  def self.delete_events(event_id)
      return unless self.is_map?     
      $game_map.events.delete(event_id)
      self.refresh_map
  end
   
  def self.refresh_map
      return unless self.is_map?
      $scene.spriteset.dispose
      $scene.spriteset = Spriteset_Map.new   
  end
   
  def self.is_map?
      (return true) if $scene.is_a?(Scene_Map)
      return false
  end

end  

class Game_Map
  
  def setup(map_id)
      @map_id = map_id  
      @map = Drop_Item.map_data_load(@map_id)
      #复制事件出错
      tileset = $data_tilesets[@map.tileset_id]
      @tileset_name = tileset.tileset_name
      @autotile_names = tileset.autotile_names
      @panorama_name = tileset.panorama_name
      @panorama_hue = tileset.panorama_hue
      @fog_name = tileset.fog_name
      @fog_hue = tileset.fog_hue
      @fog_opacity = tileset.fog_opacity
      @fog_blend_type = tileset.fog_blend_type
      @fog_zoom = tileset.fog_zoom
      @fog_sx = tileset.fog_sx
      @fog_sy = tileset.fog_sy
      @battleback_name = tileset.battleback_name
      @passages = tileset.passages
      @priorities = tileset.priorities
      @terrain_tags = tileset.terrain_tags
      @display_x = 0
      @display_y = 0
      @need_refresh = false
      @events = {}
      for i in @map.events.keys
        @events = Game_Event.new(@map_id, @map.events)
      end
      @common_events = {}
      for i in 1...$data_common_events.size
        @common_events = Game_CommonEvent.new(i)
      end
      @fog_ox = 0
      @fog_oy = 0
      @fog_tone = Tone.new(0, 0, 0, 0)
      @fog_tone_target = Tone.new(0, 0, 0, 0)
      @fog_tone_duration = 0
      @fog_opacity_duration = 0
      @fog_opacity_target = 0
      @scroll_direction = 2
      @scroll_rest = 0
      @scroll_speed = 4
  end
   
end


class Game_System
  
  attr_accessor :map_events_number            
  attr_accessor :map_data            
   
end  

class Scene_Map
  
  attr_accessor :spriteset            
  
end  
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7714
在线时间
1332 小时
注册时间
2015-8-15
帖子
749
8
 楼主| 发表于 2023-3-21 11:42:55 | 只看该作者
本帖最后由 金芒芒 于 2023-3-21 11:50 编辑

qq634488405 发表于 2023-3-21 08:49
出错的那个复制事件脚本


其实我就想要通过窗口的第一个命令传送到另一个地图,以为是拿了完成任务的物品,通过物品才可以到下一关,现在的脚本是重新加载了。去了另一个地图物品是被刷新走了


RUBY 代码复制
  1. #==============================================================================
  2. # ■ Window_Title_Command
  3. #------------------------------------------------------------------------------
  4. #  标题的主菜单。
  5. #==============================================================================
  6. class Window_Title_Command < Window_Base
  7.   attr_reader   :index
  8.   attr_reader   :slide_over   #滚动结束
  9.   #start load option exit
  10.   #--------------------------------------------------------------------------
  11.   # ● 初始化对像
  12.   #     actor : 角色
  13.   #--------------------------------------------------------------------------
  14.   def initialize(index=0)
  15.     @index = index
  16.     #选项背景
  17.     @button_base = Sprite.new
  18.     @button_base.bitmap = RPG::Cache.title("title-base-light")
  19.     @button_base.x = 1200-680+409
  20.     @button_base.y = 56
  21.  
  22.  
  23.     @cur_back = []
  24.     @text_list = []
  25.     @able = []
  26.     #光标
  27.     @item_max = 7
  28.     for i in 0...@item_max
  29.       @able[i] = true
  30.       @cur_back[i] = Sprite.new
  31.       @cur_back[i].bitmap = RPG::Cache.title("title-normal")#+i.to_s)
  32.       @cur_back[i].x = 1200-680+435
  33.       @cur_back[i].y = 81+45*i
  34.       @text_list[i] = Sprite.new
  35.       @text_list[i].bitmap = RPG::Cache.title("index-"+i.to_s)
  36.       @text_list[i].x = 1200-680+435 + 47
  37.       @text_list[i].y = 81+45*i + 9
  38.     end
  39.     @slide_over = false
  40.     super(0, 0, 0, 0)
  41.     self.opacity = 0
  42.     self.active = true
  43.   end
  44.   def origin_x
  45.     return 1200-680+435
  46.   end
  47.   def origin_y
  48.     return 81
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # ● 一些方法的重载
  52.   #--------------------------------------------------------------------------  
  53.   def dispose
  54.     @button_base.dispose
  55.     for i in 0...@item_max
  56.       @cur_back[i].dispose
  57.       @text_list[i].dispose
  58.     end
  59.     super
  60.   end
  61.  
  62.   def z=(z)
  63.     super(z)
  64.     @button_base.z=z
  65.     for i in 0...@item_max
  66.       @cur_back[i].z=z
  67.       @text_list[i].z=z
  68.     end
  69.   end
  70.   def visible=(visible)
  71.     super(visible)
  72.     @button_base.visible = visible
  73.     for i in 0...@item_max
  74.       @cur_back[i].visible = visible
  75.       @text_list[i].visible = visible
  76.     end
  77.   end
  78.   def index=(index)
  79.     @index=index
  80.   end
  81.   def disable_item(i)
  82.   end
  83.   #--------------------------------------------------------------------------
  84.   # ● 光标不被选中状态
  85.   #--------------------------------------------------------------------------
  86.   def back_normal(index)
  87.     if index != -1
  88.        @cur_back[index].bitmap = RPG::Cache.title("title-normal")#+i.to_s)
  89.        @text_list[index].bitmap = RPG::Cache.title("index-"+index.to_s)
  90.     end
  91.   end
  92.   def disable_item(index)
  93.     @cur_back[index].bitmap = RPG::Cache.title("title-pressed")#+i.to_s)
  94.     @able[index] = false
  95.     @text_list[index].bitmap = RPG::Cache.title("index-"+index.to_s+"-black")
  96.     #@cur_back[index].color = Color.new(0,0,0,128)
  97.   end
  98.   #--------------------------------------------------------------------------
  99.   # ● 更新光标矩形
  100.   #--------------------------------------------------------------------------
  101.   def update_cursor_rect
  102.     # 光标位置不满 0 的情况下
  103.     if @index < 0
  104.       for i in 0...@item_max
  105.         back_normal(i)
  106.       end
  107.       return
  108.     end
  109.     @cur_back[@index].bitmap = RPG::Cache.title("title-highlight")#+i.to_s)
  110.     @text_list[@index].bitmap = RPG::Cache.title("index-"+index.to_s+"-hl")
  111. =begin   
  112.     speed = 40#闪烁速度
  113.     if Graphics.frame_count % speed
  114.       < speed/2
  115.       @cur_back[@index].color = Color.new(255,255,255,100+(Graphics.frame_count%speed)*2)
  116.     else
  117.       @cur_back[@index].color = Color.new(255,255,255,100+(speed-Graphics.frame_count%speed)*2)
  118.     end
  119. =end
  120.  
  121.   end
  122.   #--------------------------------------------------------------------------
  123.   # ● 刷新画面
  124.   #--------------------------------------------------------------------------
  125.   def update
  126.     #@cur_back[i].x = 644#640-188
  127.      @slide_over = true
  128.  
  129.  
  130.     if self.active
  131.       # 方向键左被按下的情况下
  132.       if Input.repeat?(Input::DOWN)
  133.         $game_system.se_play($data_system.cursor_se)
  134.         back_normal(@index)
  135.         @index = (@index+1)%@item_max
  136.         until @able[@index]
  137.           @index = (@index+1)%@item_max
  138.         end
  139.       end
  140.       # 方向键右被按下的情况下
  141.       if Input.repeat?(Input::UP)
  142.         $game_system.se_play($data_system.cursor_se)
  143.         back_normal(@index)
  144.         @index = (@index+@item_max-1)%@item_max
  145.         until @able[@index]
  146.           @index = (@index+@item_max-1)%@item_max
  147.         end
  148.       end
  149.     end
  150.     # 刷新光标矩形
  151.     update_cursor_rect if @slide_over
  152.   end
  153.  
  154. end


或者按下x键开启关闭class Window_Title_Command < Window_Base也可以
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4721
在线时间
387 小时
注册时间
2012-11-8
帖子
276
9
发表于 2023-3-22 09:08:00 | 只看该作者
  def self.map_data_init   
      for i in 1..999
         begin
           map = load_data(sprintf("Data/Map%03d.rxdata", i))
         rescue Errno::ENOENT
           next
         end
         $game_system.map_data = Marshal.load(Marshal.dump(map))         
      end
  end  
  
  def self.map_data_save(map_id,event)
      $game_system.map_data[$game_map.map_id] = event           
  end   

  def self.map_data_load(map_id)
      if !$game_system.map_data
         $game_system.map_data = {}
         self.map_data_init
      end
      return $game_system.map_data[map_id]      
  end  

应该是那个Drop_item脚本的问题,这里读取所有地图数据保存到$game_system.map_data的哈希表,但保存的时候用的$game_system.map_data = Marshal.load(Marshal.dump(map)),直接把地图数据保存到map_data了,试试改为$game_system.map_data[i] = Marshal.load(Marshal.dump(map))
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7714
在线时间
1332 小时
注册时间
2015-8-15
帖子
749
10
 楼主| 发表于 2023-3-22 13:59:07 | 只看该作者
本帖最后由 金芒芒 于 2023-3-22 14:03 编辑
qq634488405 发表于 2023-3-22 09:08
def self.map_data_init   
      for i in 1..999
         begin


$game_system.map_data = Marshal.load(Marshal.dump(map)),原来脚本就有个,我复制张贴就没有了好乌龙啊
不过这个作用很大看来你是个大佬啊,
但是窗口命令还是不能传送

1e.png (54.86 KB, 下载次数: 11)

1e.png
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-1 11:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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