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

Project1

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

小柯……你的背包完成版……

 关闭 [复制链接]

Lv1.梦旅人

万物创造者

梦石
0
星屑
54
在线时间
352 小时
注册时间
2008-2-15
帖子
2432
跳转到指定楼层
1
发表于 2008-3-2 00:07:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x

  1. class Window_ItemBag < Window_Base
  2.   def initialize
  3.     super(0,0,544-180,56)
  4.     self.contents = Bitmap.new(width - 32, height - 32)
  5.     self.contents.draw_text(4, 0, self.width - 40, WLH, "我可爱的背包")
  6.   end
  7. end
  8. #==============================================================================
  9. # ■ Window_Item
  10. #------------------------------------------------------------------------------
  11. #  物品画面、战斗画面、显示浏览物品的窗口。
  12. #==============================================================================

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

  94.   def draw_item_name(item, x, y, enabled = true)
  95.     if item != nil
  96.       draw_icon(item.icon_index, x, y, enabled)
  97.       self.contents.font.color = normal_color
  98.       self.contents.font.color.alpha = enabled ? 255 : 128
  99.       self.contents.draw_text(x + 48, y, 172, WLH, item.name)
  100.     end
  101.   end  
  102. end

  103. #==============================================================================
  104. # ■ Scene_Item
  105. #------------------------------------------------------------------------------
  106. #  处理物品画面的类。
  107. #==============================================================================

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

  289. class Game_Party < Game_Unit
  290. alias old_gain_item gain_item
  291. def gain_item(item, n, include_equip = false)
  292.   @itemnumber = 0
  293.   @chaojie = false
  294.   for i in 0...$data_items.size
  295.     new_item = $data_items[i]
  296.     @itemnumber += 1 if has_item?(new_item)
  297.     @chaojie = true if $game_variables[1] <= @itemnumber
  298.   end
  299.   for i in 0...$data_weapons.size
  300.     new_item = $data_weapons[i]
  301.     @itemnumber += 1 if has_item?(new_item)
  302.     @chaojie = true if $game_variables[1] <= @itemnumber
  303.   end
  304.   for i in 0...$data_armors.size
  305.     new_item = $data_armors[i]
  306.     @itemnumber += 1 if has_item?(new_item)
  307.     @chaojie = true if $game_variables[1] <= @itemnumber
  308.   end
  309.   @chaojie = true if has_item?(item)
  310.   return if @chaojie
  311.   old_gain_item(item,n,include_equip)
  312. end
  313. end

复制代码

背包脚本……
使用方法:
1.搜索
    @chaojie = true if $game_variables[1] <= @itemnumber
  将那个“1”换成控制总数的变量号
  注意:一共有三处……
2.将图片放到Graphics/Pictures/bag.png
  规格180*360
3.搜索
    self.contents.draw_text(4, 0, self.width - 40, WLH, "我可爱的背包")
  把“我可爱的背包”换成你想要的文字
4.收费的话……你来开价吧……上次好像预收费了200(好像是,偶忘记了= =)……

效果图:
From mortal hope immortal power springs.
头像被屏蔽

Lv1.梦旅人 (禁止发言)

喵,小柯的宠物

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-15
帖子
2310
2
发表于 2008-3-2 00:08:46 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

冰の红苹果的小狗狗

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-15
帖子
2539
3
发表于 2008-3-2 00:15:58 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

胃:伪·好人之怨念<

梦石
0
星屑
50
在线时间
4 小时
注册时间
2007-6-24
帖子
5058

开拓者VX城市地图大赛亚军

4
发表于 2008-3-2 00:17:40 | 只看该作者
……80……
算了--我要这也没用
哈哈哈哈哈
回复 支持 反对

使用道具 举报

Lv2.观梦者

龙骑

梦石
0
星屑
525
在线时间
10 小时
注册时间
2007-12-31
帖子
2030
5
发表于 2008-3-2 00:18:07 | 只看该作者
恩……小柯同志的背包完成了呦~~~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

万物创造者

梦石
0
星屑
54
在线时间
352 小时
注册时间
2008-2-15
帖子
2432
6
 楼主| 发表于 2008-3-2 00:19:29 | 只看该作者
以下引用殤。于2008-3-1 16:08:46的发言:

预收费了500吧= =

500……我忘记了……
系统信息:本贴由本区版主认可,66RPG感谢您的热情解答~
From mortal hope immortal power springs.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

綾川司の姫様<

梦石
0
星屑
50
在线时间
796 小时
注册时间
2007-12-20
帖子
4520

贵宾第3届短篇游戏大赛R剧及RMTV组亚军

7
发表于 2008-3-2 00:21:10 | 只看该作者
我先不客气地抱走了……=v=
最近想稍微研究下VX脚本嗯……{/hx}

生命即是责任。自己即是世界。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

喵,小柯的宠物

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-15
帖子
2310
8
发表于 2008-3-2 00:22:49 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

万物创造者

梦石
0
星屑
54
在线时间
352 小时
注册时间
2008-2-15
帖子
2432
9
 楼主| 发表于 2008-3-2 00:23:50 | 只看该作者
以下引用天圣的马甲于2008-3-1 16:21:10的发言:

我先不客气地抱走了……=v=
最近想稍微研究下VX脚本嗯……
以下引用殤。于2008-3-1 16:22:49的发言:

我也抱走喵……

瀑布汗= =
研究vx脚本……反正语法也没变,很简单的= =
版主对此帖的认可:『收费500+劳务费100= =』,积分『+600』。
From mortal hope immortal power springs.
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

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

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

10
发表于 2008-3-2 01:15:03 | 只看该作者
其实多少都一样,
谢谢了。

给你500……{/hx} [LINE]1,#dddddd[/LINE]版主对此帖的评论:『好吧,我收500』,积分『-483』。这些被扣积分的一半会用于对本帖正确答案的悬赏。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-23 15:08

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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