Project1

标题: 事件调用物品、技能、装备、状态菜单 1.0 [VX] [打印本页]

作者: orzfly    时间: 2011-8-23 07:06
标题: 事件调用物品、技能、装备、状态菜单 1.0 [VX]
本帖最后由 orzfly 于 2011-8-23 07:07 编辑

# 在事件中快速调用物品、技能、装备、状态菜单。
#------------------------------------------------------------------------------
# 使用方法:
#
# 方法 1:推荐!与注释调用系统配合使用。
#         需要注释调用系统 1.0 以上版本。请将本脚本置于注释调用系统接入包之下。
#         
#         您可以在事件的注释中使用如下的自然语言来调用:
#           o 显示物品界面
#           o 打开技能窗口
#           o 调用装备界面 3号角色
#           o 打开4号角色的状态
#           o 打开技能窗口哦~亲~我可以指定是哪个角色么?哦~是4号角色的哦~
#           o 打开3号角色的猥琐无比的真orzFly的技能窗口~
#


# 方法 2:事件中使用脚本调用。
#           o $game_temp.next_scene = "item"
#           o $game_temp.next_scene = ["skill", 0]
#           o $game_temp.next_scene = ["equip", 0]
#           o $game_temp.next_scene = ["status", 0]
#         其中 0 为角色队伍编号。队伍中第一位为 0,第二位为 1。以此类推。
  1. #==============================================================================
  2. # ■ 事件调用物品、技能、装备、状态菜单 1.0 [VX]
  3. #   http://orzFly.com/RM/MoreSceneFromEvent
  4. #------------------------------------------------------------------------------
  5. # 在事件中快速调用物品、技能、装备、状态菜单。
  6. #------------------------------------------------------------------------------
  7. # 使用方法:
  8. #
  9. # 方法 1:推荐!与注释调用系统 http://orzFly.com/RM/PowerComments 配合使用。
  10. #         需要注释调用系统 1.0 以上版本。请将本脚本置于注释调用系统接入包之下。
  11. #         
  12. #         您可以在事件的注释中使用如下的自然语言来调用:
  13. #           o 显示物品界面
  14. #           o 打开技能窗口
  15. #           o 调用装备界面 3号角色
  16. #           o 打开4号角色的状态
  17. #           o 打开技能窗口哦~亲~我可以指定是哪个角色么?哦~是4号角色的哦~
  18. #           o 打开3号角色的猥琐无比的真orzFly的技能窗口~
  19. #
  20. # 方法 2:事件中使用脚本调用。
  21. #           o $game_temp.next_scene = "item"
  22. #           o $game_temp.next_scene = ["skill", 0]
  23. #           o $game_temp.next_scene = ["equip", 0]
  24. #           o $game_temp.next_scene = ["status", 0]
  25. #         其中 0 为角色队伍编号。队伍中第一位为 0,第二位为 1。以此类推。
  26. #------------------------------------------------------------------------------
  27. # - 1.0 [VX] by orzFly [[email protected]]
  28. #   * 首个版本
  29. #==============================================================================

  30. class Scene_Map < Scene_Base
  31.   alias update_scene_change_map_more_scene update_scene_change
  32.   def update_scene_change
  33.     return if $game_player.moving?
  34.     return call_item if $game_temp.next_scene == "item"
  35.     if $game_temp.next_scene.is_a?(Array)
  36.       return call_skill($game_temp.next_scene[1]) \
  37.         if $game_temp.next_scene[0] == "skill"
  38.       return call_equip($game_temp.next_scene[1]) \
  39.         if $game_temp.next_scene[0] == "equip"
  40.       return call_status($game_temp.next_scene[1]) \
  41.         if $game_temp.next_scene[0] == "status"
  42.     end
  43.     return update_scene_change_map_more_scene
  44.   end
  45.   def call_item
  46.     $game_temp.next_scene = nil
  47.     $scene = Scene_Item_Map.new
  48.   end
  49.   def call_skill(index)
  50.     $game_temp.next_scene = nil
  51.     $scene = Scene_Skill_Map.new(
  52.       (index.nil? or $game_party.members[index].nil?) ? 0 : index
  53.     )
  54.   end
  55.   def call_equip(index)
  56.     $game_temp.next_scene = nil
  57.     $scene = Scene_Equip_Map.new(
  58.       (index.nil? or $game_party.members[index].nil?) ? 0 : index
  59.     )
  60.   end
  61.   def call_status(index)
  62.     $game_temp.next_scene = nil
  63.     $scene = Scene_Status_Map.new(
  64.       (index.nil? or $game_party.members[index].nil?) ? 0 : index
  65.     )
  66.   end
  67. end

  68. ["Scene_Item", "Scene_Skill", "Scene_Equip", "Scene_Status"].each { |s|
  69.   eval("class #{s}_Map<#{s};def return_scene;$scene=Scene_Map.new;end;end")
  70. }

  71. unless PowerComments.nil?
  72.   if PowerComments.methods.include?("register_command")
  73.     PowerComments.register_command(/^(打开|调用|显示).*?物品/, Proc.new {
  74.       $game_temp.next_scene = "item"
  75.       true
  76.     })
  77.     PowerComments.register_command(/
  78. ^(打开|调用|显示).*?([0-9]+).*?技能.*?$|
  79. ^(打开|调用|显示).*?技能.*?([0-9]+).*?$|
  80. ^(打开|调用|显示)[^0-9]*?技能[^0-9]*?$/x,
  81.       Proc.new { |_, _, _, x, _, y, _|
  82.         $game_temp.next_scene = [
  83.           "skill",
  84.           ((y.nil? or y == "") ? (
  85.             (x.nil? or x == "") ? 0 : x.to_i - 1
  86.           ) : y.to_i - 1)
  87.         ]
  88.         true
  89.       }
  90.     )
  91.     PowerComments.register_command(/
  92. ^(打开|调用|显示).*?([0-9]+).*?装备.*?$|
  93. ^(打开|调用|显示).*?装备.*?([0-9]+).*?$|
  94. ^(打开|调用|显示)[^0-9]*?装备[^0-9]*?$/x,
  95.       Proc.new { |_, _, _, x, _, y, _|
  96.         $game_temp.next_scene = [
  97.           "equip",
  98.           ((y.nil? or y == "") ? (
  99.             (x.nil? or x == "") ? 0 : x.to_i - 1
  100.           ) : y.to_i - 1)
  101.         ]
  102.         true
  103.       }
  104.     )
  105.     PowerComments.register_command(/
  106. ^(打开|调用|显示).*?([0-9]+).*?状态.*?$|
  107. ^(打开|调用|显示).*?状态.*?([0-9]+).*?$|
  108. ^(打开|调用|显示)[^0-9]*?状态[^0-9]*?$/x,
  109.       Proc.new { |_, _, _, x, _, y, _|
  110.         $game_temp.next_scene = [
  111.           "status",
  112.           ((y.nil? or y == "") ? (
  113.             (x.nil? or x == "") ? 0 : x.to_i - 1
  114.           ) : y.to_i - 1)
  115.         ]
  116.         true
  117.       }
  118.     )
  119.   end
  120. end
复制代码

作者: 370420939    时间: 2011-8-23 08:44
本帖最后由 370420939 于 2011-8-23 08:44 编辑

呃……不用这么麻烦吧……
比如物品窗口,
$scene = Scene_Item.new

即可,以此类推~
如果要接着返回地图,在Scene_Item中39行更改即可……

对吧……
作者: 忧雪の伤    时间: 2011-8-23 11:56
370420939 发表于 2011-8-23 08:44
呃……不用这么麻烦吧……
比如物品窗口,
即可,以此类推~

那还要修改默认脚本。
作者: 370420939    时间: 2011-8-23 18:04
额……不会变吧……39行是结束处理吧……
作者: orzfly    时间: 2011-8-23 18:09
我占一楼,是给楼上点评用的。
作者: 九夜神尊    时间: 2011-8-23 23:50
蓝雪果然发布了,不过我想说的是。
如果这只是一个事件调用物品技能装备状态的脚本的话,那么这个脚本写的相当的好。
如果这是一个使用自然语言扩展事件功能的脚本的话,那么这个脚本才刚写了个开头。




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