Project1

标题: VA多背包脚本 [打印本页]

作者: a2445606444    时间: 2013-7-8 19:10
标题: VA多背包脚本
求VA的多背包脚本,希望各位大神帮忙下
作者: yiu889    时间: 2013-7-8 21:33
什麼叫多背包
你是說多開物品種類之類嗎?
作者: a2445606444    时间: 2013-7-8 21:58
http://rpg.blue/forum.php?mod=viewthread&tid=210189一样不过那个是VX的不能给VA用
作者: 1091160905    时间: 2013-7-9 12:07
不解释,跟你讲的VX应该一个方法
作者: a2445606444    时间: 2013-7-9 17:13
我不懂脚本
作者: chd114    时间: 2013-7-9 17:41
VX的脚本绝大多数都可以直接在VA上用
作者: a2445606444    时间: 2013-7-9 17:51
#==============================================================================
# ■ 简易多背包系统
#------------------------------------------------------------------------------
#
#   本脚本来自,使用和转载请保留此信息
#
#   作者:protosssonny   
#
#==============================================================================

#==============================================================================
# ■ 使用方法:
#        首先要设定背包的总数,本脚本中默认是3个背包。
#        使用事件以下脚本命令来调用,具体使用可以见本范例:
#            load_package(n)       #切换到n号背包
#            clear_package(n)      #清空n号背包以及n号背包的物品、金钱储存信息
#            package_to_another(n) #将n号背包的物品、金钱转移到当前号背包中
# ■ 注意事项:
#        本脚本是使用变量来储存背包信息的,您的背包系统最多有n个背包,
#        那么1000号至1000+3*n号变量请勿使用。
#        例如,本脚本默认背包是3个,所以1000至1009号变量不能再使用。
#
#==============================================================================
#
#
#请在这里设定总背包数:
PACKAGES = 3
#==============================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
#  处理标题画面的类。
#==============================================================================

class Scene_Title < Scene_Base
  
  #--------------------------------------------------------------------------
  # ● 指令 : 新游戏
  #--------------------------------------------------------------------------
  def command_new_game
    variable_initialize
    confirm_player_location
    Sound.play_decision
    $game_party.setup_starting_members            # 初期同伴
    $game_map.setup($data_system.start_map_id)    # 初期地图位置
    $game_player.moveto($data_system.start_x, $data_system.start_y)
    $game_player.refresh
    $scene = Scene_Map.new
    RPG::BGM.fade(1500)
    close_command_window
    Graphics.fadeout(60)
    Graphics.wait(40)
    Graphics.frame_count = 0
    RPG::BGM.stop
    $game_map.autoplay
  end
  
  #--------------------------------------------------------------------------
  # ● 初始化背包变量
  #--------------------------------------------------------------------------
  def variable_initialize
    $game_variables[1000] = 1                     #默认情况下背包1是当前背包
    for i in 1..3*PACKAGES
      $game_variables[1000+i] = [0,0,0]
      for j in 0..999
        $game_variables[1000+i][j] = 0
      end
    end
  end  
end
#==============================================================================
# ■ Game_Interpreter
#------------------------------------------------------------------------------
#  执行事件命令的解释器。本类在 Game_Map 类、Game_Troop 类、
# Game_Event 类的内部使用。
#==============================================================================

class Game_Interpreter
  #--------------------------------------------------------------------------
  # ● 当清空n号背包物品、金钱及其存档
  #--------------------------------------------------------------------------
  def clear_package(n)
    for i in 1..999
      $game_variables[998+3*n][i] = 0
      $game_variables[999+3*n][i] = 0
      $game_variables[1000+3*n][i] = 0      
    end
    for i in 1..999
      $game_party.gain_item($data_weapons[i],-999,false)
      $game_party.gain_item($data_armors[i],-999,false)
      $game_party.gain_item($data_items[i],-999)
    end
    $game_variables[998+3*n][0] = 0
    $game_party.gain_gold($game_variables[998+3*n][0] - $game_party.gold)
  end
  #--------------------------------------------------------------------------
  # ● 当前背包的物品存档
  #--------------------------------------------------------------------------
  def save_package(n)
    for i in 1..999
      $game_variables[998+3*n][i] = $game_party.item_number($data_weapons[i])
      $game_variables[999+3*n][i] = $game_party.item_number($data_armors[i])
      $game_variables[1000+3*n][i] = $game_party.item_number($data_items[i])
    end
    $game_variables[998+3*n][0] = $game_party.gold
  end  
  #--------------------------------------------------------------------------
  # ● 切换到n号背包
  #--------------------------------------------------------------------------
  def load_package(n)
    if $game_variables[1000] == n
      $game_message.texts.push("无法切换,已经是当前背包!")
    end
    save_package($game_variables[1000])
    $game_variables[1000] = n
    for i in 1..999
      $game_party.gain_item($data_weapons[i],-999,false)
      $game_party.gain_item($data_armors[i],-999,false)
      $game_party.gain_item($data_items[i],-999)
    end
    for j in 1..999
      $game_party.gain_item($data_weapons[j],$game_variables[998+3*n][j],false)
      $game_party.gain_item($data_armors[j],$game_variables[999+3*n][j],false)
      $game_party.gain_item($data_items[j],$game_variables[1000+3*n][j])
    end
    $game_party.gain_gold($game_variables[998+3*n][0] - $game_party.gold)
  end
  #--------------------------------------------------------------------------
  # ● 将n号背包的物品、金钱转移到当前号背包中
  #--------------------------------------------------------------------------
  def package_to_another(n)
    save_package($game_variables[1000])
    for j in 1..999
      $game_party.gain_item($data_weapons[j],$game_variables[998+3*n][j],false)
      $game_party.gain_item($data_armors[j],$game_variables[999+3*n][j],false)
      $game_party.gain_item($data_items[j],$game_variables[1000+3*n][j])
    end
    $game_party.gain_gold($game_variables[998+3*n][0])
    save_package($game_variables[1000])
  end
end  

#------------------------------------------------------------------------------
#
#   本脚本来自,使用和转载请保留此信息
#
#                                                          作者:protosssonny   
#                                                             2011年9月23日
作者: a2445606444    时间: 2013-7-9 17:51
可以帮我看看吗
作者: 喵呜喵5    时间: 2013-7-9 20:12
仔细一看发现都是新方法移植起来意外的简单,就是替换一段def的事…………

没有经过太详细测试,有错再说

RUBY 代码复制
  1. #==============================================================================
  2. # ■ RMVA 简易多背包系统(VX移植)
  3. #------------------------------------------------------------------------------
  4. #
  5. #   本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  6. #
  7. #   作者:protosssonny   
  8. #   移植:喵呜喵5
  9. #
  10. #==============================================================================
  11.  
  12. #==============================================================================
  13. # ■ 使用方法:
  14. #        首先要设定背包的总数,本脚本中默认是3个背包。
  15. #        使用事件以下脚本命令来调用,具体使用可以见本范例:
  16. #            load_package(n)       #切换到n号背包
  17. #            clear_package(n)      #清空n号背包以及n号背包的物品、金钱储存信息
  18. #            package_to_another(n) #将n号背包的物品、金钱转移到当前号背包中
  19. # ■ 注意事项:
  20. #        本脚本是使用变量来储存背包信息的,您的背包系统最多有n个背包,
  21. #        那么1000号至1000+3*n号变量请勿使用。
  22. #        例如,本脚本默认背包是3个,所以1000至1009号变量不能再使用。
  23. #
  24. #==============================================================================
  25. #
  26. #
  27. #请在这里设定总背包数:
  28. PACKAGES = 3
  29. #==============================================================================
  30. # ■ Scene_Title
  31. #------------------------------------------------------------------------------
  32. #  处理标题画面的类。
  33. #==============================================================================
  34.  
  35. class Scene_Title < Scene_Base
  36.  
  37.   #--------------------------------------------------------------------------
  38.   # ● 指令 : 新游戏
  39.   #--------------------------------------------------------------------------
  40. =begin
  41.   def command_new_game
  42.     variable_initialize
  43.     confirm_player_location
  44.     Sound.play_decision
  45.     $game_party.setup_starting_members            # 初期同伴
  46.     $game_map.setup($data_system.start_map_id)    # 初期地图位置
  47.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  48.     $game_player.refresh
  49.     $scene = Scene_Map.new
  50.     RPG::BGM.fade(1500)
  51.     close_command_window
  52.     Graphics.fadeout(60)
  53.     Graphics.wait(40)
  54.     Graphics.frame_count = 0
  55.     RPG::BGM.stop
  56.     $game_map.autoplay
  57.   end
  58. =end
  59.  
  60.   def command_new_game
  61.     DataManager.setup_new_game
  62.     close_command_window
  63.     fadeout_all
  64.     $game_map.autoplay
  65.     SceneManager.goto(Scene_Map)
  66.     variable_initialize
  67.   end
  68.  
  69.   #--------------------------------------------------------------------------
  70.   # ● 初始化背包变量
  71.   #--------------------------------------------------------------------------
  72.   def variable_initialize
  73.     $game_variables[1000] = 1                     #默认情况下背包1是当前背包
  74.     for i in 1..3*PACKAGES
  75.       $game_variables[1000+i] = [0,0,0]
  76.       for j in 0..999
  77.         $game_variables[1000+i][j] = 0
  78.       end
  79.     end
  80.   end  
  81. end
  82. #==============================================================================
  83. # ■ Game_Interpreter
  84. #------------------------------------------------------------------------------
  85. #  执行事件命令的解释器。本类在 Game_Map 类、Game_Troop 类、
  86. # Game_Event 类的内部使用。
  87. #==============================================================================
  88.  
  89. class Game_Interpreter
  90.   #--------------------------------------------------------------------------
  91.   # ● 当清空n号背包物品、金钱及其存档
  92.   #--------------------------------------------------------------------------
  93.   def clear_package(n)
  94.     for i in 1..999
  95.       $game_variables[998+3*n][i] = 0
  96.       $game_variables[999+3*n][i] = 0
  97.       $game_variables[1000+3*n][i] = 0      
  98.     end
  99.     for i in 1..999
  100.       $game_party.gain_item($data_weapons[i],-999,false)
  101.       $game_party.gain_item($data_armors[i],-999,false)
  102.       $game_party.gain_item($data_items[i],-999)
  103.     end
  104.     $game_variables[998+3*n][0] = 0
  105.     $game_party.gain_gold($game_variables[998+3*n][0] - $game_party.gold)
  106.   end
  107.   #--------------------------------------------------------------------------
  108.   # ● 当前背包的物品存档
  109.   #--------------------------------------------------------------------------
  110.   def save_package(n)
  111.     for i in 1..999
  112.       $game_variables[998+3*n][i] = $game_party.item_number($data_weapons[i])
  113.       $game_variables[999+3*n][i] = $game_party.item_number($data_armors[i])
  114.       $game_variables[1000+3*n][i] = $game_party.item_number($data_items[i])
  115.     end
  116.     $game_variables[998+3*n][0] = $game_party.gold
  117.   end  
  118.   #--------------------------------------------------------------------------
  119.   # ● 切换到n号背包
  120.   #--------------------------------------------------------------------------
  121.   def load_package(n)
  122.     if $game_variables[1000] == n
  123.       $game_message.texts.push("无法切换,已经是当前背包!")
  124.     end
  125.     save_package($game_variables[1000])
  126.     $game_variables[1000] = n
  127.     for i in 1..999
  128.       $game_party.gain_item($data_weapons[i],-999,false)
  129.       $game_party.gain_item($data_armors[i],-999,false)
  130.       $game_party.gain_item($data_items[i],-999)
  131.     end
  132.     for j in 1..999
  133.       $game_party.gain_item($data_weapons[j],$game_variables[998+3*n][j],false)
  134.       $game_party.gain_item($data_armors[j],$game_variables[999+3*n][j],false)
  135.       $game_party.gain_item($data_items[j],$game_variables[1000+3*n][j])
  136.     end
  137.     $game_party.gain_gold($game_variables[998+3*n][0] - $game_party.gold)
  138.   end
  139.   #--------------------------------------------------------------------------
  140.   # ● 将n号背包的物品、金钱转移到当前号背包中
  141.   #--------------------------------------------------------------------------
  142.   def package_to_another(n)
  143.     save_package($game_variables[1000])
  144.     for j in 1..999
  145.       $game_party.gain_item($data_weapons[j],$game_variables[998+3*n][j],false)
  146.       $game_party.gain_item($data_armors[j],$game_variables[999+3*n][j],false)
  147.       $game_party.gain_item($data_items[j],$game_variables[1000+3*n][j])
  148.     end
  149.     $game_party.gain_gold($game_variables[998+3*n][0])
  150.     save_package($game_variables[1000])
  151.   end
  152. end  
  153.  
  154. #------------------------------------------------------------------------------
  155. #
  156. #   本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  157. #
  158. #                                                          作者:protosssonny   
  159. #                                                             2011年9月23日
  160. #==============================================================================





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