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

Project1

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

[已经解决] 关于一个菜单脚本使用的问题

[复制链接]

Lv4.逐梦者

梦石
4
星屑
2013
在线时间
442 小时
注册时间
2015-7-19
帖子
149
跳转到指定楼层
1
发表于 2016-4-9 19:50:15 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 类人猿 于 2016-4-10 15:40 编辑

RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ 带有大图标,推展线索的物品栏
  4. #------------------------------------------------------------------------------
  5. # 适合解密类游戏的菜单,
  6. # 脚本:VIPArcher
  7. # 美工 && 创意:断电
  8. #  -- 本脚本来自 [url]https://rpg.blue[/url] 使用或转载请保留以上信息。
  9. #==============================================================================
  10. # 使用说明:
  11. # 物品备注栏备注 <image:文件名> 显示大图
  12. # 物品备注栏备注 <no se> 使用不播放使用道具音效
  13. # 物品备注栏备注 <clue:内容> 显示线索,支持控制符。
  14. #==============================================================================
  15. # ■ 设定部分
  16. #==============================================================================
  17. module VIPArcher
  18.   BACKGROUND = "itembackground"   #背景图片文件名
  19.   module Item_Help   #物品栏的帮助窗口
  20.     X = 40                        # 窗口x坐标
  21.     Y = 50                        # 窗口y坐标
  22.     Width = 240                   # 窗口宽度
  23.     Height = 72                   # 窗口高度
  24.     Font_Outline = false          # 描边
  25.     Font_Bold = false             # 粗体
  26.     Font_Color = Color.new(0,0,0) # 字体颜色
  27.     Font_Size = 14                # 字体大小
  28.     Font_Name = "黑体"        # 字体名称
  29.   end
  30.   module Item_Name  #物品的名称窗口
  31.     X = 52                        # 窗口x坐标
  32.     Y = 10                        # 窗口y坐标
  33.     Width = 220                   # 窗口宽度
  34.     Height = 52                   # 窗口高度
  35.     Font_Outline = false          # 描边
  36.     Font_Bold = false             # 粗体
  37.     Font_Color = Color.new(0,0,0) # 字体颜色
  38.     Font_Size = 22                # 字体大小
  39.     Font_Name = "黑体"        # 字体名称
  40.   end
  41.   module Item_List  #物品栏的列表窗口
  42.     X = 282                       # 窗口x坐标
  43.     Y = 100                       # 窗口y坐标
  44.     Width = 220                   # 窗口宽度
  45.     Height = 300                  # 窗口高度
  46.     Font_Outline = false          # 描边
  47.     Font_Bold = false             # 粗体
  48.     Font_Color = Color.new(0,0,0) # 字体颜色
  49.     Font_Size = 20                # 字体大小
  50.     Font_Name = "黑体"        # 字体名称
  51.     No_Number = false             #是否描绘物品个数
  52.   end
  53.   module Item_Note  #物品的备注信息窗口
  54.     X = 40                        # 窗口x坐标
  55.     Y = 116                       # 窗口y坐标
  56.     Width = 240                   # 窗口宽度
  57.     Height = 100                  # 窗口高度
  58.     Regex = /<Clue:\s*(.*)>/im    # 正则匹配式
  59.     Font_Outline = false          # 描边
  60.     Font_Bold = false             # 粗体
  61.     Font_Color = Color.new(0,0,0) # 字体颜色
  62.     Font_Size = 14               # 字体大小
  63.     Font_Name = "黑体"        # 字体名称
  64.   end
  65.   module Item_Image  #物品的大图窗口
  66.     X = 0                         # 窗口x坐标
  67.     Y = 240                       # 窗口y坐标
  68.     Width = 175                   # 窗口宽度
  69.     Height = 175                  # 窗口高度
  70.     Regex = /<Image:\s*(\S*)>/i   # 正则匹配式
  71.   end
  72.   module Item_Category  #物品的分类窗口 !!!!
  73. #    X = Graphics.width - 255      # 窗口x坐标
  74.     X = -12
  75. #    Y = 0                         # 窗口y坐标
  76.     Y = -8
  77. #   Width = 255                   # 窗口宽度
  78. #   Height = 100                  # 窗口高度
  79.     Width = 544 + 12
  80.     Height = 416
  81.     #各分类的对应的图标文件名(分别对应着[道具,武器,贵重物品,防具])
  82.     #这里有几项就有几个分类
  83.     Category_Name = ["道具","藏品","花卉","配方"]
  84.   end
  85. end
  86. module Cache
  87.   #--------------------------------------------------------------------------
  88.   # ● 获取物品栏图片
  89.   #--------------------------------------------------------------------------  
  90.   def self.ItemImage(filename)
  91.     load_bitmap("Graphics/Pictures/", filename) #!!
  92.   end
  93. end
  94. class Window_Base < Window
  95.   #----------------------------------------------------------------------
  96.   # ● 绘制物品栏图片
  97.   #--------------------------------------------------------------------------
  98.    def draw_itemimage(x, y, itemimage)
  99.     bitmap = Cache.ItemImage(itemimage)
  100.     contents.blt(x, y, bitmap, bitmap.rect)
  101.     bitmap.dispose
  102.   end
  103. end
  104. class Window_Selectable < Window_Base
  105.   attr_reader   :item_image_window           # 图片窗口
  106.   attr_reader   :item_name_window            # 名字窗口
  107.   attr_reader   :item_note_window            # 名字窗口
  108.   #--------------------------------------------------------------------------
  109.   # ● 设置图片帮助窗口
  110.   #--------------------------------------------------------------------------
  111.   def item_image_window=(item_image_window)
  112.     @item_image_window = item_image_window
  113.   end
  114.   #--------------------------------------------------------------------------
  115.   # ● 设置名称帮助窗口
  116.   #--------------------------------------------------------------------------
  117.   def item_name_window=(item_name_window)
  118.     @item_name_window = item_name_window
  119.   end
  120.   #--------------------------------------------------------------------------
  121.   # ● 设置备注帮助窗口
  122.   #--------------------------------------------------------------------------
  123.   def item_note_window=(item_note_window)
  124.     @item_note_window = item_note_window
  125.   end
  126. end
  127. class Window_Help < Window_Base
  128.   include VIPArcher::Item_Help
  129.   #--------------------------------------------------------------------------
  130.   # ● 初始化对象
  131.   #--------------------------------------------------------------------------
  132.   def initialize(line_number = 2,width = Graphics.width)
  133.     super(0, 0,width, fitting_height(line_number))
  134.   end
  135.   #--------------------------------------------------------------------------
  136.   # ● 重置字体设置
  137.   #--------------------------------------------------------------------------
  138.   alias vip_20140921_rfs reset_font_settings
  139.   def reset_font_settings
  140.     vip_20140921_rfs
  141.     if SceneManager.scene_is?(Scene_Item)
  142.       contents.font.name = Font_Name
  143.       contents.font.outline = Font_Outline
  144.       contents.font.color.set(Font_Color)
  145.       contents.font.size = Font_Size
  146.       contents.font.bold = Font_Bold
  147.     end
  148.   end
  149. end
  150. #显示物品备注信息的窗口
  151. class Window_Item_Note < Window_Base
  152.   include VIPArcher::Item_Note
  153.   #--------------------------------------------------------------------------
  154.   # ● 设置内容
  155.   #--------------------------------------------------------------------------
  156.   def set_text(text)
  157.     if text != @text
  158.       @text = text
  159.       refresh
  160.     end
  161.   end
  162.   #--------------------------------------------------------------------------
  163.   # ● 清除
  164.   #--------------------------------------------------------------------------
  165.   def clear
  166.     set_text("")
  167.   end
  168.   #--------------------------------------------------------------------------
  169.   # ● 设置物品
  170.   #     item : 技能、物品等
  171.   #--------------------------------------------------------------------------
  172.   def set_item(item)
  173.     item.note =~ Regex if item
  174.     $1 == nil ? set_text("") : set_text($1)
  175.   end
  176.   #--------------------------------------------------------------------------
  177.   # ● 刷新
  178.   #--------------------------------------------------------------------------
  179.   def refresh
  180.     contents.clear
  181.     draw_text_ex(0, 0, @text)
  182.   end
  183.   #--------------------------------------------------------------------------
  184.   # ● 重置字体设置
  185.   #--------------------------------------------------------------------------
  186.   alias vip_20140921_rfs reset_font_settings
  187.   def reset_font_settings
  188.     vip_20140921_rfs
  189.     if SceneManager.scene_is?(Scene_Item)
  190.       contents.font.name = Font_Name
  191.       contents.font.outline = Font_Outline
  192.       contents.font.color.set(Font_Color)
  193.       contents.font.size = Font_Size
  194.       contents.font.bold = Font_Bold
  195.     end
  196.   end
  197. end
  198. #显示物品名称的窗口
  199. class Window_Item_Name < Window_Base
  200.   include VIPArcher::Item_Name
  201.   #--------------------------------------------------------------------------
  202.   # ● 设置内容
  203.   #--------------------------------------------------------------------------
  204.   def set_text(text)
  205.     if text != @text
  206.       @text = text
  207.       refresh
  208.     end
  209.   end
  210.   #--------------------------------------------------------------------------
  211.   # ● 清除
  212.   #--------------------------------------------------------------------------
  213.   def clear
  214.     set_text("")
  215.   end
  216.   #--------------------------------------------------------------------------
  217.   # ● 设置物品
  218.   #     item : 技能、物品等
  219.   #--------------------------------------------------------------------------
  220.   def set_item(item)
  221.     set_text(item ? item.name : "")
  222.   end
  223.   #--------------------------------------------------------------------------
  224.   # ● 刷新
  225.   #--------------------------------------------------------------------------
  226.   def refresh
  227.     contents.clear
  228.     contents.font.name = Font_Name
  229.     contents.font.outline = Font_Outline
  230.     contents.font.color.set(Font_Color)
  231.     contents.font.size = Font_Size
  232.     contents.font.bold = Font_Bold
  233.     draw_text(4, 0, 220, line_height, @text, 0)
  234.   end
  235. end
  236. #显示物品详细图片的窗口
  237. class Window_Item_Image < Window_Base
  238.   include VIPArcher::Item_Image
  239.   #--------------------------------------------------------------------------
  240.   # ● 设置内容
  241.   #--------------------------------------------------------------------------
  242.   def set_text(text)
  243.     if text != @text
  244.       @text = text
  245.       refresh
  246.     end
  247.   end
  248.   #--------------------------------------------------------------------------
  249.   # ● 清除
  250.   #--------------------------------------------------------------------------
  251.   def clear
  252.     set_text("")
  253.   end
  254.   #--------------------------------------------------------------------------
  255.   # ● 设置物品
  256.   #     item : 技能、物品等
  257.   #--------------------------------------------------------------------------
  258.   def set_item(item)
  259.     item.note =~ Regex if item
  260.     $1 == nil ? set_text("") : set_text($1)
  261.   end
  262.   #--------------------------------------------------------------------------
  263.   # ● 刷新!!!
  264.   #--------------------------------------------------------------------------
  265.   def refresh
  266.     contents.clear
  267.  
  268.     bitmap = Cache.ItemImage(@text)
  269.  
  270.     a = 76 - bitmap.width / 2
  271.     b = 76 - bitmap.height / 2
  272.  
  273.    # draw_itemimage(0,0,@text) if @text != ""
  274.    draw_itemimage(a,b,@text) if @text != ""
  275.  
  276.   end
  277. end
  278. #显示分类名字图片的窗口
  279. class Window_Item_Category < Window_Base
  280.   include VIPArcher::Item_Category
  281.   def initialize(x, y, width, height)
  282.     super
  283.     @category_name = Category_Name[0]
  284.     refresh
  285.   end
  286.   #--------------------------------------------------------------------------
  287.   # ● 设置分类图片
  288.   #--------------------------------------------------------------------------
  289.   def category_name=(category)
  290.     return if @category_name == category
  291.     @category_name = category
  292.     refresh
  293.   end
  294.   #--------------------------------------------------------------------------
  295.   # ● 刷新窗口
  296.   #--------------------------------------------------------------------------
  297.   def refresh
  298.     contents.clear
  299.     draw_itemimage(0,0,@category_name)
  300.   end
  301. end
  302. class Window_ItemList < Window_Selectable
  303.   include VIPArcher::Item_List
  304.   alias vip20140921_update_help update_help
  305.   attr_accessor :category_id
  306.   #--------------------------------------------------------------------------
  307.   # ● 初始化对象
  308.   #--------------------------------------------------------------------------
  309.   def initialize(x, y, width, height)
  310.     super
  311.     @category_id = 0
  312.     @category = :item #VIP
  313.     @data = []
  314.   end
  315.   #--------------------------------------------------------------------------
  316.   # ● 获取列数
  317.   #--------------------------------------------------------------------------
  318.   def col_max
  319.     return scene_im? ? 1 : 2
  320.   end
  321.   #--------------------------------------------------------------------------
  322.   # ● 获取行高
  323.   #--------------------------------------------------------------------------
  324.   def line_height
  325.     return scene_im? ? 33 : 24
  326.   end
  327.   def scene_im?
  328.     SceneManager.scene_is?(Scene_Item) ||
  329.     SceneManager.scene_is?(Scene_Map)
  330.   end
  331.   #--------------------------------------------------------------------------
  332.   # ● 绘制物品(取消半透明图标的y+4) !!!!!!
  333.   #--------------------------------------------------------------------------
  334.   def draw_item_name(item, x, y, enabled = true, width = 172)
  335.     return unless item
  336. #   draw_icon(item.icon_index, x, y + 4)
  337.     change_color(normal_color)
  338.     if SceneManager.scene_is?(Scene_Item) ||
  339.       SceneManager.scene_is?(Scene_Map)
  340.       contents.font.name = Font_Name
  341.       contents.font.outline = Font_Outline
  342.       contents.font.color.set(Font_Color)
  343.       contents.font.size = Font_Size
  344.       contents.font.bold = Font_Bold
  345.     end


来自花篮谷杀手 @FHNBHJ   
ps:知道原帖的告诉我也行

Lv4.逐梦者

梦石
4
星屑
2013
在线时间
442 小时
注册时间
2015-7-19
帖子
149
5
 楼主| 发表于 2016-4-10 15:03:39 | 只看该作者
FHNBHJ 发表于 2016-4-10 12:03
去2楼的链接,使用原帖中的脚本(花篮谷中,该脚本已经被我修改)

谢谢                             
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

鼬痴汉

梦石
29
星屑
3401
在线时间
1300 小时
注册时间
2010-4-24
帖子
971

短篇十吟唱者组别亚军开拓者

4
发表于 2016-4-10 12:03:17 | 只看该作者
去2楼的链接,使用原帖中的脚本(花篮谷中,该脚本已经被我修改)
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2724
在线时间
227 小时
注册时间
2016-3-27
帖子
576
3
发表于 2016-4-10 10:47:59 | 只看该作者
本帖最后由 WantMy蕙 于 2016-4-12 17:56 编辑

不是很懂va啊
这个贴子里面有类似的解法??
https://rpg.blue/forum.php?mod=viewthread&tid=383382

已帮楼主购买楼上的工程文件,100e有点心疼qwq已私发

点评

发表于 2016-4-10 14:32
我觉得人家的付费工程你买了私下送给楼主一个人也就算了,现在却免费挂出来,请迅速处理。  发表于 2016-4-10 11:28

评分

参与人数 1梦石 +1 收起 理由
丿梁丶小柒 + 1 认可答案

查看全部评分

现在还能改名吗qwq
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

梦石
1
星屑
20985
在线时间
4886 小时
注册时间
2014-12-22
帖子
1527

开拓者

2
发表于 2016-4-10 09:55:14 | 只看该作者
目测是这个~
【UI界面】——一款清新的物品栏菜单(20141006更新)
https://rpg.blue/thread-371790-1-1.html
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 10:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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