Project1

标题: 三个问题求指教! [打印本页]

作者: Ly1850320    时间: 2010-12-17 02:29
提示: 作者被禁止或删除 内容自动屏蔽
作者: terry_zhp    时间: 2010-12-17 09:52
本帖最后由 terry_zhp 于 2010-12-17 09:59 编辑

关于第一个问题可以用这个脚本,把需要用到战斗背景图片的地图ID逐一设定好,拷到Graphics\Parallaxes下,详细设置看看脚本开头应该就没问题了
  1. #==============================================================================
  2. # ★ ExBattle_Background
  3. #------------------------------------------------------------------------------
  4. #  使战斗画面能设定任意背景的脚本素材。
  5. #==============================================================================

  6. # 地图设定。
  7. # 请按照 地图 ID、图片名 的顺序填写。
  8. EXBTL_BACKGR_MAP = {
  9. 1 => "bg_001.jpg",
  10. 2 => "山崖",
  11. 5 => "冰洞窟",
  12. 6 => "冰洞窟",
  13. 7 => "冰洞窟",
  14. 9 => "神殿",
  15. 16 => "冰洞窟",
  16. }

  17. # 区域设定。
  18. # 请按照 区域 ID、图片名 的顺序填写。
  19. EXBTL_BACKGR_AREA = {
  20. 1 => "Sunset",
  21. 2 => "CloudySky",
  22. }

  23. # 显示位置。
  24. # 指定图片的显示位置 (0:上 1:中 2:下) 。
  25. EXBTL_BACKGR_POSITION = 1

  26. # 设定战斗地面
  27. # 设定战斗地面是否显示。
  28. # (0:不显示 1:显示)
  29. EXBTL_BACKGR_FLOOR = 0

  30. # 设定文件目录。
  31. # 指定战斗背景图片文件位置 (Graphic/xxx/) 。
  32. # 0:System 1:Parallaxes 2:Pictures
  33. EXBTL_BACKGR_FOLDER = 1

  34. #------------------------------------------------------------------------------

  35. class Spriteset_Battle
  36. alias _exbbackgr_create_battleback create_battleback
  37. alias _exbbackgr_create_battlefloor create_battlefloor
  38. #--------------------------------------------------------------------------
  39. # ○ 建立战斗背景精灵 (附加定义)
  40. #--------------------------------------------------------------------------
  41. def create_battleback
  42.    fixed = false
  43.    for area in $data_areas.values
  44.      if $game_player.in_area?(area) and EXBTL_BACKGR_AREA.has_key?(area.id)
  45.        source = EXBTL_BACKGR_AREA[area.id]
  46.        fixed = true
  47.      end
  48.    end
  49.    unless fixed
  50.      if EXBTL_BACKGR_MAP.has_key?($game_map.map_id)
  51.        source = EXBTL_BACKGR_MAP[$game_map.map_id]
  52.        fixed = true
  53.      end
  54.    end
  55.    if fixed
  56.      case EXBTL_BACKGR_FOLDER
  57.      when 0
  58.        bitmap = Cache.system(source)
  59.      when 1
  60.        bitmap = Cache.parallax(source)
  61.      when 2
  62.        bitmap = Cache.picture(source)
  63.      end
  64.      @battleback_sprite = Sprite.new(@viewport1)
  65.      @battleback_sprite.bitmap = bitmap
  66.      @battleback_sprite.x = (544 - bitmap.width) / 2
  67.      case EXBTL_BACKGR_POSITION
  68.      when 0
  69.        @battleback_sprite.y = 0
  70.      when 1
  71.        @battleback_sprite.y = (416 - bitmap.height) / 2
  72.      when 2
  73.        @battleback_sprite.y = 416 - bitmap.height
  74.      end
  75.    else
  76.      _exbbackgr_create_battleback
  77.    end
  78. end
  79. #--------------------------------------------------------------------------
  80. # ○ 建立战斗背景精灵 (附加定义)
  81. #--------------------------------------------------------------------------
  82. def create_battlefloor
  83.    _exbbackgr_create_battlefloor
  84.    @battlefloor_sprite.opacity = 0 if EXBTL_BACKGR_FLOOR == 0
  85. end
  86. end
复制代码
关于第二个问题,参考
http://rpg.blue/forum.php?mod=viewthread&tid=161180&highlight=%E5%A2%9E%E5%8A%A0%2B%E9%80%89%E9%A1%B9
把公共事件里设置你想要的效果

关于第三个问题,参考
http://rpg.blue/forum.php?mod=vi ... B%E4%BD%8D%E7%BD%AE
作者: Ly1850320    时间: 2010-12-17 13:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: terry_zhp    时间: 2010-12-17 15:15
回复 Ly1850320 的帖子

纯文字?公共事件内显示文章就可以了呀
如果想全屏显示文字,一种办法是自己把文字做成图片,显示图片,另一种办法是使用脚本调节文字显示行数,我这里没有现成的,你可以搜索一下看看
作者: Ly1850320    时间: 2010-12-17 15:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: terry_zhp    时间: 2010-12-17 19:38
本帖最后由 terry_zhp 于 2010-12-17 19:39 编辑

回复 Ly1850320 的帖子

这个比较简单啊
比方说我要在第3号地图用战斗背景,图片名称为bg_001.jpg

然后导入图片

再在脚本这里改地图ID对应的背景地图名称

作者: 一箭烂YiJL    时间: 2010-12-17 21:23
本帖最后由 一箭烂YiJL 于 2010-12-17 21:30 编辑

A。问题2
这样吧:
Scene_Title的脚本页里,找到:
  1.     s1 = Vocab::new_game
  2.     s2 = Vocab::continue
  3.     s3 = Vocab::shutdown
  4.     @command_window = Window_Command.new(172, [s1, s2, s3])
复制代码
这三行,插入一行添加
  1. s4 = "另一选项"
复制代码
修改成为:
  1. @command_window = Window_Command.new(172, [s1, s2, s3, s4])
复制代码
然而s4在第四个选项。(这时你应该明白怎么弄他在第n个选项)

然后重点就是选项动作,找到update这个函数,有这行:
  1.     if Input.trigger?(Input::C)
  2.       case @command_window.index
  3.       when 0    # 新的劇情
  4.         command_new_game
  5.       when 1    # 繼續遊戲
  6.         command_continue
  7.       when 2    # 退出遊戲
  8.         command_shutdown
  9.       end
  10.     end
复制代码
if那句判断按下C,case那句判断按下后是哪个选项(从0数起)
然后在when 2的end前面插入when 3,然后就是动作。比如:
  1.       case @command_window.index
  2.       when 0    # 新的劇情
  3.         command_new_game
  4.       when 1    # 繼續遊戲
  5.         command_continue
  6.       when 2    # 退出遊戲
  7.         command_shutdown
  8.       when 3    # 比如这是开始游戏(when3就是选项4)
  9.         command_new_game
  10.       end
复制代码
B。问题3
主要是这两句:
  1. @command_window.x = (544 - @command_window.width) / 2
  2. @command_window.y = 288
复制代码
@command_window = Window_Command.new(172, [s1, s2, s3])之下
若连RM的XY坐标也不懂计的话请从新手教程学起。
作者: qllmkaen    时间: 2010-12-18 09:01
+.+第二个问题,将那个脚本中第八行的EVENT_NAME = ["Some Text"]中的Some Text改成与公共事件中的第一个公共事件同样的名称即可
作者: Ly1850320    时间: 2010-12-18 14:30
提示: 作者被禁止或删除 内容自动屏蔽
作者: Ly1850320    时间: 2010-12-18 14:31
提示: 作者被禁止或删除 内容自动屏蔽
作者: Ly1850320    时间: 2010-12-18 14:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: Ly1850320    时间: 2010-12-18 14:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: 一箭烂YiJL    时间: 2010-12-18 14:51
本帖最后由 一箭烂YiJL 于 2010-12-18 14:51 编辑

回复 Ly1850320 的帖子

start函数里加进:
  1. @help_window = Window_Help.new
复制代码
update函数里加进:
  1. @help_window.update
  2. case @help_window.index
  3. when 0
  4.   @help_window.set_text("开始游戏")
  5. when 1
  6.   @help_window.set_text("读取")
  7. when 2
  8.   @help_window.set_text("离开")
  9. when 3
  10.   @help_window.set_text("第四选项说明")
  11. end
复制代码

作者: Ly1850320    时间: 2010-12-18 16:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: Ly1850320    时间: 2010-12-18 17:18
提示: 作者被禁止或删除 内容自动屏蔽




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