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

Project1

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

RMVX 求脚本 仓库 和 携带物品上限限制

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-5-23
帖子
7
跳转到指定楼层
1
发表于 2008-5-26 02:41:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3299
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

2
发表于 2008-5-26 02:55:00 | 只看该作者
仓库的话我想要,

至于第二个,我有个半成品……不过有个BUG……
  1. =begin
  2. 使用方法:
  3. 1.搜索
  4.    @chaojie = true if $game_variables[6] <= @itemnumber
  5. 将那个“1”换成控制总数的变量号
  6. 注意:一共有三处……
  7. 2.将图片放到Graphics/Pictures/bag.png
  8. 规格180*360
  9. 3.搜索
  10.    self.contents.draw_text(4, 0, self.width - 40, WLH, "我可爱的背包")
  11. 把“我可爱的背包”换成你想要的文字
  12. =end

  13. class Window_ItemBag < Window_Base
  14.   def initialize
  15.     super(0,0,544-180,56)
  16.     self.contents = Bitmap.new(width - 32, height - 32)
  17.     self.contents.draw_text(4, 0, self.width - 40, WLH, "小背包")
  18.   end
  19. end
  20. #==============================================================================
  21. # ■ Window_Item
  22. #------------------------------------------------------------------------------
  23. #  物品画面、战斗画面、显示浏览物品的窗口。
  24. #==============================================================================

  25. class Window_Item < Window_Selectable
  26.   #--------------------------------------------------------------------------
  27.   # ● 初始化对象
  28.   #     x      : 窗口的 X 坐标
  29.   #     y      : 窗口的 Y 坐标
  30.   #     width  : 窗口的宽
  31.   #     height : 窗口的高
  32.   #--------------------------------------------------------------------------
  33.   def initialize(x, y, width, height)
  34.     super(x, y, width, height)
  35.     @column_max = 2
  36.     self.index = 0
  37.     refresh
  38.   end
  39.   #--------------------------------------------------------------------------
  40.   # ● 取得物品
  41.   #--------------------------------------------------------------------------
  42.   def item
  43.     return @data[self.index]
  44.   end
  45.   #--------------------------------------------------------------------------
  46.   # ● 列表中包含的物品
  47.   #     item : 物品
  48.   #--------------------------------------------------------------------------
  49.   def include?(item)
  50.     return false if item == nil
  51.     if $game_temp.in_battle
  52.       return false unless item.is_a?(RPG::Item)
  53.     end
  54.     return true
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # ● 显示是否可以使用物品
  58.   #     item : 物品
  59.   #--------------------------------------------------------------------------
  60.   def enable?(item)
  61.     return $game_party.item_can_use?(item)
  62.   end
  63.   #--------------------------------------------------------------------------
  64.   # ● 刷新
  65.   #--------------------------------------------------------------------------
  66.   def refresh
  67.     @data = []
  68.     for item in $game_party.items
  69.       next unless include?(item)
  70.       @data.push(item)
  71.       if item.is_a?(RPG::Item) and item.id == $game_party.last_item_id
  72.         self.index = @data.size - 1
  73.       end
  74.     end
  75.     @data.push(nil) if include?(nil)
  76.     @item_max = @data.size
  77.     create_contents
  78.     for i in 0...@item_max
  79.       draw_item(i)
  80.     end
  81.   end
  82.   #--------------------------------------------------------------------------
  83.   # ● 描绘项目
  84.   #     index : 项目编号
  85.   #--------------------------------------------------------------------------
  86.   def draw_item(index)
  87.     rect = item_rect(index)
  88.     self.contents.clear_rect(rect)
  89.     item = @data[index]
  90.     if item != nil
  91.       number = $game_party.item_number(item)
  92.       enabled = enable?(item)
  93.       rect.width -= 4
  94.       draw_item_name(item, rect.x, rect.y, enabled)
  95.       self.contents.font.size = 12
  96.       self.contents.draw_text(rect.x + 5  , rect.y - 23, WLH , 80, number.to_s, 2)
  97.       self.contents.font.size = 20
  98.     end
  99.   end
  100.   #--------------------------------------------------------------------------
  101.   # ● 更新帮助文本
  102.   #--------------------------------------------------------------------------
  103.   def update_help
  104.     @help_window.set_text(item == nil ? "" : item.description)
  105.   end

  106.   def draw_item_name(item, x, y, enabled = true)
  107.     if item != nil
  108.       draw_icon(item.icon_index, x, y, enabled)
  109.       self.contents.font.color = normal_color
  110.       self.contents.font.color.alpha = enabled ? 255 : 128
  111.       self.contents.draw_text(x + 48, y, 172, WLH, item.name)
  112.     end
  113.   end  
  114. end

  115. #==============================================================================
  116. # ■ Scene_Item
  117. #------------------------------------------------------------------------------
  118. #  处理物品画面的类。
  119. #==============================================================================

  120. class Scene_Item < Scene_Base
  121.   #--------------------------------------------------------------------------
  122.   # ● 开始处理
  123.   #--------------------------------------------------------------------------
  124.   def start
  125.     super
  126.     create_menu_background
  127.     @viewport = Viewport.new(0, 0, 544, 416)
  128.     @help_window = Window_Help.new
  129.     @help_window.viewport = @viewport
  130.     @item_window = Window_Item.new(0, 56, 544-180, 416-56*2)
  131.     @item_window.viewport = @viewport
  132.     @item_window.help_window = @help_window
  133.     @help_window.y = 416-56
  134.     @item_window.active = false
  135.     @sprite = Sprite.new
  136.     @sprite.x = 544-180
  137.     @sprite.bitmap = Bitmap.new("Graphics/Pictures/bag")
  138.     @sprite.opacity = 160
  139.     @target_window = Window_MenuStatus.new(0, 0)
  140.     @bag_window = Window_ItemBag.new
  141.     hide_target_window
  142.   end
  143.   #--------------------------------------------------------------------------
  144.   # ● 结束处理
  145.   #--------------------------------------------------------------------------
  146.   def terminate
  147.     super
  148.     dispose_menu_background
  149.     @viewport.dispose
  150.     @sprite.dispose
  151.     @help_window.dispose
  152.     @item_window.dispose
  153.     @target_window.dispose
  154.     @bag_window.dispose
  155.   end
  156.   #--------------------------------------------------------------------------
  157.   # ● 返回至原来的画面
  158.   #--------------------------------------------------------------------------
  159.   def return_scene
  160.     $scene = Scene_Menu.new(0)
  161.   end
  162.   #--------------------------------------------------------------------------
  163.   # ● 更新画面
  164.   #--------------------------------------------------------------------------
  165.   def update
  166.     super
  167.     update_menu_background
  168.     @help_window.update
  169.     @item_window.update
  170.     @target_window.update
  171.     if @item_window.active
  172.       update_item_selection
  173.     elsif @target_window.active
  174.       update_target_selection
  175.     end
  176.   end
  177.   #--------------------------------------------------------------------------
  178.   # ● 更新物品选择
  179.   #--------------------------------------------------------------------------
  180.   def update_item_selection
  181.     if Input.trigger?(Input::B)
  182.       Sound.play_cancel
  183.       return_scene
  184.     elsif Input.trigger?(Input::C)
  185.       @item = @item_window.item
  186.       if @item != nil
  187.         $game_party.last_item_id = @item.id
  188.       end
  189.       if $game_party.item_can_use?(@item)
  190.         Sound.play_decision
  191.         determine_item
  192.       else
  193.         Sound.play_buzzer
  194.       end
  195.     end
  196.   end
  197.   #--------------------------------------------------------------------------
  198.   # ● 确定物品
  199.   #--------------------------------------------------------------------------
  200.   def determine_item
  201.     if @item.for_friend?
  202.       show_target_window(@item_window.index % 2 == 0)
  203.       if @item.for_all?
  204.         @target_window.index = 99
  205.       else
  206.         if $game_party.last_target_index < @target_window.item_max
  207.           @target_window.index = $game_party.last_target_index
  208.         else
  209.           @target_window.index = 0
  210.         end
  211.       end
  212.     else
  213.       use_item_nontarget
  214.     end
  215.   end
  216.   #--------------------------------------------------------------------------
  217.   # ● 更新选择目标
  218.   #--------------------------------------------------------------------------
  219.   def update_target_selection
  220.     if Input.trigger?(Input::B)
  221.       Sound.play_cancel
  222.       if $game_party.item_number(@item) == 0    # 物品使用完了的情况下
  223.         @item_window.refresh                    # 重新生成窗口内容
  224.       end
  225.       hide_target_window
  226.     elsif Input.trigger?(Input::C)
  227.       if not $game_party.item_can_use?(@item)
  228.         Sound.play_buzzer
  229.       else
  230.         determine_target
  231.       end
  232.     end
  233.   end
  234.   #--------------------------------------------------------------------------
  235.   # ● 确定目标
  236.   #    无效的情况下 (在不能战斗的情况下使用恢复剂) 播放 buzzer 的 SE。
  237.   #--------------------------------------------------------------------------
  238.   def determine_target
  239.     used = false
  240.     if @item.for_all?
  241.       for target in $game_party.members
  242.         target.item_effect(target, @item)
  243.         used = true unless target.skipped
  244.       end
  245.     else
  246.       $game_party.last_target_index = @target_window.index
  247.       target = $game_party.members[@target_window.index]
  248.       target.item_effect(target, @item)
  249.       used = true unless target.skipped
  250.     end
  251.     if used
  252.       use_item_nontarget
  253.     else
  254.       Sound.play_buzzer
  255.     end
  256.   end
  257.   #--------------------------------------------------------------------------
  258.   # ● 显示目标窗口
  259.   #     right : 靠右标志 (false 为靠左)
  260.   #--------------------------------------------------------------------------
  261.   def show_target_window(right)
  262.     @item_window.active = false
  263.     width_remain = 544 - @target_window.width
  264.     @target_window.x = right ? width_remain : 0
  265.     @target_window.visible = true
  266.     @target_window.active = true
  267.     if right
  268.       @viewport.rect.set(0, 0, width_remain, 416)
  269.       @viewport.ox = 0
  270.     else
  271.       @viewport.rect.set(@target_window.width, 0, width_remain, 416)
  272.       @viewport.ox = @target_window.width
  273.     end
  274.   end
  275.   #--------------------------------------------------------------------------
  276.   # ● 不显示目标窗口
  277.   #--------------------------------------------------------------------------
  278.   def hide_target_window
  279.     @item_window.active = true
  280.     @target_window.visible = false
  281.     @target_window.active = false
  282.     @viewport.rect.set(0, 0, 544, 416)
  283.     @viewport.ox = 0
  284.   end
  285.   #--------------------------------------------------------------------------
  286.   # ● 使用物品 (也适用于我方对象以外的效果)
  287.   #--------------------------------------------------------------------------
  288.   def use_item_nontarget
  289.     Sound.play_use_item
  290.     $game_party.consume_item(@item)
  291.     @item_window.draw_item(@item_window.index)
  292.     @target_window.refresh
  293.     if $game_party.all_dead?
  294.       $scene = Scene_Gameover.new
  295.     elsif @item.common_event_id > 0
  296.       $game_temp.common_event_id = @item.common_event_id
  297.       $scene = Scene_Map.new
  298.     end
  299.   end
  300. end

  301. class Game_Party < Game_Unit
  302. alias old_gain_item gain_item
  303. def gain_item(item, n, include_equip = false)
  304.   @itemnumber = 0
  305.   @chaojie = false
  306.   for i in 0...$data_items.size
  307.     new_item = $data_items[i]
  308.     @itemnumber += 1 if has_item?(new_item)
  309.     @chaojie = true if $game_variables[6] <= @itemnumber
  310.   end
  311.   for i in 0...$data_weapons.size
  312.     new_item = $data_weapons[i]
  313.     @itemnumber += 1 if has_item?(new_item)
  314.     @chaojie = true if $game_variables[6] <= @itemnumber
  315.   end
  316.   for i in 0...$data_armors.size
  317.     new_item = $data_armors[i]
  318.     @itemnumber += 1 if has_item?(new_item)
  319.     @chaojie = true if $game_variables[6] <= @itemnumber
  320.   end
  321.   @chaojie = true if has_item?(item)
  322.   @chaojie = false if n < 0
  323.   return if @chaojie
  324.   old_gain_item(item,n,include_equip)
  325. end
  326. end

  327. #==============================================================================
  328. # ■ Scene_Shop
  329. #------------------------------------------------------------------------------
  330. #  处理商店画面的类。
  331. #==============================================================================

  332. class Scene_Shop < Scene_Base
  333.   #--------------------------------------------------------------------------
  334.   # ● 更新选择购买物品
  335.   #--------------------------------------------------------------------------
  336.   def update_buy_selection
  337.     @status_window.item = @buy_window.item
  338.     if Input.trigger?(Input::B)
  339.       Sound.play_cancel
  340.       @command_window.active = true
  341.       @dummy_window.visible = true
  342.       @buy_window.active = false
  343.       @buy_window.visible = false
  344.       @status_window.visible = false
  345.       @status_window.item = nil
  346.       @help_window.set_text("")
  347.       return
  348.     end
  349.     if Input.trigger?(Input::C)
  350.       @item = @buy_window.item
  351.       number = $game_party.item_number(@item)
  352.         @itemnumber = 0
  353.         @chaojie = false
  354.         for i in 0...$data_items.size
  355.           new_item = $data_items[i]
  356.           @itemnumber += 1 if $game_party.has_item?(new_item)
  357.           @chaojie = true if $game_variables[6] <= @itemnumber
  358.         end
  359.         for i in 0...$data_weapons.size
  360.           new_item = $data_weapons[i]
  361.           @itemnumber += 1 if $game_party.has_item?(new_item)
  362.           @chaojie = true if $game_variables[6] <= @itemnumber
  363.         end
  364.         for i in 0...$data_armors.size
  365.           new_item = $data_armors[i]
  366.           @itemnumber += 1 if $game_party.has_item?(new_item)
  367.           @chaojie = true if $game_variables[6] <= @itemnumber
  368.         end
  369.       if @item == nil or @item.price > $game_party.gold or number == 99 or @chaojie
  370.         Sound.play_buzzer
  371.       else
  372.         Sound.play_decision
  373.         max = @item.price == 0 ? 99 : $game_party.gold / @item.price
  374.         max = [max, 99 - number].min
  375.         @buy_window.active = false
  376.         @buy_window.visible = false
  377.         @number_window.set(@item, max, @item.price)
  378.         @number_window.active = true
  379.         @number_window.visible = true
  380.       end
  381.     end
  382.   end
  383. end

  384. #==============================================================================
  385. # ■ Window_ShopBuy
  386. #------------------------------------------------------------------------------
  387. #  商店画面、浏览显示可以购买的商品的窗口。
  388. #==============================================================================

  389. class Window_ShopBuy < Window_Selectable

  390.   def draw_item(index)
  391.     item = @data[index]
  392.     number = $game_party.item_number(item)
  393.     enabled = (item.price <= $game_party.gold and number < 99)
  394.     @itemnumber = 0
  395.     @chaojie = false
  396.     for i in 0...$data_items.size
  397.       new_item = $data_items[i]
  398.       @itemnumber += 1 if $game_party.has_item?(new_item)
  399.       @chaojie = true if $game_variables[6] <= @itemnumber
  400.     end
  401.     for i in 0...$data_weapons.size
  402.       new_item = $data_weapons[i]
  403.       @itemnumber += 1 if $game_party.has_item?(new_item)
  404.       @chaojie = true if $game_variables[6] <= @itemnumber
  405.     end
  406.     for i in 0...$data_armors.size
  407.       new_item = $data_armors[i]
  408.       @itemnumber += 1 if $game_party.has_item?(new_item)
  409.       @chaojie = true if $game_variables[6] <= @itemnumber
  410.     end
  411.     if enabled == true and @chaojie == false
  412.       enabled = true
  413.     else
  414.       enabled = false
  415.     end
  416.     rect = item_rect(index)
  417.     self.contents.clear_rect(rect)
  418.     draw_item_name(item, rect.x, rect.y, enabled)
  419.     rect.width -= 4
  420.     self.contents.draw_text(rect, item.price, 2)
  421.   end
  422. end

  423. #==============================================================================
  424. # ■ Scene_Equip
  425. #------------------------------------------------------------------------------
  426. #  处理装备画面
  427. #==============================================================================

  428. class Scene_Equip < Scene_Base
  429.   #--------------------------------------------------------------------------
  430.   # ● 更新选择物品
  431.   #--------------------------------------------------------------------------
  432.   def update_item_selection
  433.     if Input.trigger?(Input::B)
  434.       Sound.play_cancel
  435.       @equip_window.active = true
  436.       @item_window.active = false
  437.       @item_window.index = -1
  438.     elsif Input.trigger?(Input::C)
  439.     @itemnumber = 0
  440.     @chaojie = false
  441.     for i in 0...$data_items.size
  442.       new_item = $data_items[i]
  443.       @itemnumber += 1 if $game_party.has_item?(new_item)
  444.       @chaojie = true if $game_variables[6] <= @itemnumber
  445.     end
  446.     for i in 0...$data_weapons.size
  447.       new_item = $data_weapons[i]
  448.       @itemnumber += 1 if $game_party.has_item?(new_item)
  449.       @chaojie = true if $game_variables[6] <= @itemnumber
  450.     end
  451.     for i in 0...$data_armors.size
  452.       new_item = $data_armors[i]
  453.       @itemnumber += 1 if $game_party.has_item?(new_item)
  454.       @chaojie = true if $game_variables[6] <= @itemnumber
  455.     end
  456.     case @equip_window.index
  457.       when 0
  458.        temp = $game_actors[@actor_index+1].weapon_id
  459.       when 1
  460.        temp = $game_actors[@actor_index+1].armor1_id
  461.       when 2
  462.        temp = $game_actors[@actor_index+1].armor2_id
  463.       when 3
  464.        temp = $game_actors[@actor_index+1].armor3_id
  465.       when 4
  466.        temp = $game_actors[@actor_index+1].armor4_id
  467.      end
  468.     if @chaojie and temp != 0
  469.       Sound.play_buzzer
  470.     else
  471.       Sound.play_equip
  472.       @actor.change_equip(@equip_window.index, @item_window.item)
  473.       @equip_window.active = true
  474.       @item_window.active = false
  475.       @item_window.index = -1
  476.       @equip_window.refresh
  477.       for item_window in @item_windows
  478.         item_window.refresh
  479.       end
  480.     end
  481.     end
  482.   end
  483. end
复制代码
[LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
116 小时
注册时间
2008-5-12
帖子
264
3
发表于 2008-5-26 03:39:29 | 只看该作者
仓库确实需要。。我也想要一个啊
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-2-25
帖子
123
4
发表于 2008-5-27 05:03:26 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-5-23
帖子
7
5
 楼主| 发表于 2008-5-27 05:22:44 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-24 20:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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