查看: 2095|回复: 8

怎样制作出图中得到道具时的效果(已解决)

[复制链接]
梦石
10
星屑
7625
在线时间
684 小时
注册时间
2017-1-9
回帖
596

我没有哭开拓者

发表于 2017-1-19 01:44:02 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 世界第一中二 于 2017-2-18 15:41 编辑

如图
另外萌新有在用下面这个道具显色脚本,希望get道具的时候能够兼容道具显色。
求解
[pre lang="ruby"]#==============================================================================
# [PS0]物品颜色描绘
#      Window_Base_Itemcolor
#------------------------------------------------------------------------------
#     在物品、技能选项中显示物品品质并显示品质框和修改物品名颜色。
#==============================================================================
# [更新记录]
#    - 2012.01.03 By 仲秋启明
#      * 修改为VA定义
#    - 2011.12.27 By 仲秋启明
#      * 移植至RGSS3,遵循PS0协议;
#      * 优化数据库备注中设定方法
#    - 2011.08.22 By 冰舞蝶恋
#      * 蓝本(实用·极简 -- 按品质,给物品描绘色彩边框)
#    - 2010.08.06 By 仲秋启明
#      * 蓝本(物品颜色描绘脚本(完整无冲突版))
#------------------------------------------------------------------------------
# [使用方法]
#    - 替换原Window_Base中的draw_item_name定义或复制到Main之前
#==============================================================================
$_PS0 = {} if $_PS0 == nil  
$_PS0["Window_Base_Itemcolor"] = 20111227
#==============================================================================
# [PS0] 通用配置模块  
#==============================================================================
module PS0
  module Window_Base_Itemcolor
    Color1 = Color.new(255, 255, 255)  # 一般品质的色彩(白,1)
    Color2 = Color.new(128, 128, 255)  # 精良品质的色彩(蓝,2)
    Color3 = Color.new(170, 0, 255)    # 卓越品质的色彩(紫,3)
    Color4 = Color.new(255, 128, 0)    # 史诗品质的色彩(橙,4)
    Color5 = Color.new(255, 0, 200)    # 传说品质的色彩(粉,5)
  end
end
#==============================================================================
# ■ Window_Base
#==============================================================================
class Window_Base < Window
  def draw_item_name(item, x, y, enabled = true, width = 172)
    if item != nil
      n = item.note
      a = n.split{/<(?:Quality|品质)\s*(.+)>/i}
      c = a[1].to_i
      if c <= 1
        color = PS0::Window_Base_Itemcolor::Color1
      elsif c == 2
        color = PS0::Window_Base_Itemcolor::Color2
      elsif c == 3
        color = PS0::Window_Base_Itemcolor::Color3
      elsif c == 4
        color = PS0::Window_Base_Itemcolor::Color4
      elsif c == 5
        color = PS0::Window_Base_Itemcolor::Color5
      elsif c == 6
        color = PS0::Window_Base_Itemcolor::Color6
      elsif c == 7
        color = PS0::Window_Base_Itemcolor::Color7
      else
        color = Color.new(0, 0, 0, 0)
      end
      self.contents.fill_rect(x, y, 24, 1, color)
      self.contents.fill_rect(x, y, 1, 24, color)
      self.contents.fill_rect(x, y+23, 24, 1, color)
      self.contents.fill_rect(x+23, y, 1, 24, color)
      draw_icon(item.icon_index, x, y, enabled)
      change_color(color, enabled)
      draw_text(x + 24, y, width, line_height, item.name)
    end
  end
end
#==============================================================================
# [PS0] End of Script
#==============================================================================[/pre]

以后发脚本可以用发帖工具栏里的<>工具放代码,格式好看还有高亮(——VIPArcher留
223829y3p14ce7f3p661re.jpg

点评

只有一個腳本怎麼兼容呢  发表于 2017-1-19 09:57
这个B天天摸鱼,快点来个谁把他从被窝里拖出来
梦石
10
星屑
7625
在线时间
684 小时
注册时间
2017-1-9
回帖
596

我没有哭开拓者

 楼主| 发表于 2017-1-19 01:45:45 | 显示全部楼层
如果实在无法兼容的话只要该道具get的效果脚本就可以了=w=
这个B天天摸鱼,快点来个谁把他从被窝里拖出来
回复

使用道具 举报

梦石
0
星屑
45
在线时间
152 小时
注册时间
2016-10-14
回帖
606
发表于 2017-1-19 10:05:41 | 显示全部楼层
发布脚本请用以下格式
[pre lang="ruby"]#==============================================================================
# [PS0]物品颜色描绘
#      Window_Base_Itemcolor
#------------------------------------------------------------------------------
#     在物品、技能选项中显示物品品质并显示品质框和修改物品名颜色。
#==============================================================================
# [更新记录]
#    - 2012.01.03 By 仲秋启明
#      * 修改为VA定义
#    - 2011.12.27 By 仲秋启明
#      * 移植至RGSS3,遵循PS0协议;
#      * 优化数据库备注中设定方法
#    - 2011.08.22 By 冰舞蝶恋
#      * 蓝本(实用·极简 -- 按品质,给物品描绘色彩边框)
#    - 2010.08.06 By 仲秋启明
#      * 蓝本(物品颜色描绘脚本(完整无冲突版))
#------------------------------------------------------------------------------
# [使用方法]
#    - 替换原Window_Base中的draw_item_name定义或复制到Main之前
#==============================================================================
$_PS0 = {} if $_PS0 == nil  
$_PS0["Window_Base_Itemcolor"] = 20111227
#==============================================================================
# [PS0] 通用配置模块  
#==============================================================================
module PS0
  module Window_Base_Itemcolor
    Color1 = Color.new(255, 255, 255)  # 一般品质的色彩(白,1)
    Color2 = Color.new(128, 128, 255)  # 精良品质的色彩(蓝,2)
    Color3 = Color.new(170, 0, 255)    # 卓越品质的色彩(紫,3)
    Color4 = Color.new(255, 128, 0)    # 史诗品质的色彩(橙,4)
    Color5 = Color.new(255, 0, 200)    # 传说品质的色彩(粉,5)
  end
end
#==============================================================================
# ■ Window_Base
#==============================================================================
class Window_Base < Window
  def draw_item_name(item, x, y, enabled = true, width = 172)
    if item != nil
      n = item.note
      a = n.split{/<(?:Quality|品质)\s*(.+)>/i}
      c = a[1].to_i
      if c <= 1
        color = PS0::Window_Base_Itemcolor::Color1
      elsif c == 2
        color = PS0::Window_Base_Itemcolor::Color2
      elsif c == 3
        color = PS0::Window_Base_Itemcolor::Color3
      elsif c == 4
        color = PS0::Window_Base_Itemcolor::Color4
      elsif c == 5
        color = PS0::Window_Base_Itemcolor::Color5
      elsif c == 6
        color = PS0::Window_Base_Itemcolor::Color6
      elsif c == 7
        color = PS0::Window_Base_Itemcolor::Color7
      else
        color = Color.new(0, 0, 0, 0)
      end
      self.contents.fill_rect(x, y, 24, 1, color)
      self.contents.fill_rect(x, y, 1, 24, color)
      self.contents.fill_rect(x, y+23, 24, 1, color)
      self.contents.fill_rect(x+23, y, 1, 24, color)
      draw_icon(item.icon_index, x, y, enabled)
      change_color(color, enabled)
      draw_text(x + 24, y, width, line_height, item.name)
    end
  end
end
#==============================================================================
# [PS0] End of Script
#==============================================================================[/pre]

评分

参与人数 1星屑 -2000 收起 理由
RaidenInfinity -2000 【累犯 x2】版规B-5-b

查看全部评分

最近学习列表 1:ps 2:脚本 3:即时战斗脚本 4:剧情 5:.... 我还是什么都不会 QAQ 回复
回复

使用道具 举报

无限の剣制

梦石
0
星屑
10445
在线时间
5019 小时
注册时间
2013-2-28
回帖
4942

开拓者贵宾

发表于 2017-1-19 12:51:34 | 显示全部楼层
本帖最后由 VIPArcher 于 2017-2-7 12:02 编辑

用这个脚本试试  https://viparcher.github.io/Hexo ... %E9%A2%9C%E8%89%B2/
然后那个物品得失脚本我猜你用的是 Yanfly Engine Ace - Event Window
如果是这个可以用下面的代码放在这个脚本的下面新建个脚本页,或者替换 event_window_make_item_text 方法
  1. class Game_Interpreter
  2.   #--------------------------------------------------------------------------
  3.   # new method: event_window_make_item_text
  4.   #--------------------------------------------------------------------------
  5.   def event_window_make_item_text(item, value)
  6.     return unless SceneManager.scene_is?(Scene_Map)
  7.     return if Switch.hide_event_window
  8.     if value > 0
  9.       text = YEA::EVENT_WINDOW::FOUND_TEXT
  10.     elsif value < 0
  11.       text = YEA::EVENT_WINDOW::LOST_TEXT
  12.     else; return
  13.     end
  14.     text += sprintf("\ei[%d]\ec[%d]%s\ec[0]", item.icon_index, VIPArcher::ItemColor::Color_Lv[item.color], item.name)
  15.     if value.abs > 1
  16.       fmt = YEA::EVENT_WINDOW::AMOUNT_TEXT
  17.       text += sprintf(fmt, value.abs.group)
  18.     end
  19.     event_window_add_text(text)
  20.   end
  21. end
复制代码

未测试

评分

参与人数 1梦石 +1 收起 理由
RaidenInfinity + 1 认可答案

查看全部评分

回复

使用道具 举报

老鹰

梦石
40
星屑
37812
在线时间
7091 小时
注册时间
2012-5-26
回帖
3297

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

发表于 2017-1-19 13:15:35 | 显示全部楼层
无条件同意楼上VIP女神的观点

这个截图……是我在微博晒的制作进度呀……
这个物品得失是我自己糊的自用脚本,并不打算公开,因为不想弄整合问题

然后同样推荐yea-event window,更加强大,除了在显示文字框时会出现消失的设定比较诡异外
回复

使用道具 举报

梦石
10
星屑
7625
在线时间
684 小时
注册时间
2017-1-9
回帖
596

我没有哭开拓者

 楼主| 发表于 2017-1-20 15:22:42 | 显示全部楼层
本帖最后由 世界第一中二 于 2017-1-20 15:27 编辑


额,萌新经过测试……发现稍微有些问题,获得物品时显示的颜色和我设定的物品等级颜色不符,如下,上图
检验了两个道具的颜色两个都与设定不一样
另外我的道具颜色是这么设定的,用的是dalao写的道具颜色修改脚本
[pre lang="ruby" line="1"]#==============================================================================
# ★ 设定部分 ★
#==============================================================================
module VIPArcher::ItemColor
  RIM = true #是否描绘边框
  FILL = true #是否填充边框
  #为了方便设置品质等级,
  Color_Lv = {
# 品质 => 控制符颜色编号,
    0  =>  0,
    1  =>  24,
    2  =>  1,
    3  =>  30,
    4  =>  14,
    5  =>  27,
    6  =>  18
    # 继续添加
  };Color_Lv.default = 0 #这行不能删
end[/pre]
{_QYGMDW]7WPXB_19TMWRXE.png
X6S(%X4IHC_SB]05$HVG3AJ.png

点评

啊,是我疏忽了。上面那段代码已编辑。请重新复制,并记得那个物品颜色的脚本要在这两个得失的上面  发表于 2017-2-7 12:01
这个B天天摸鱼,快点来个谁把他从被窝里拖出来
回复

使用道具 举报

梦石
10
星屑
7625
在线时间
684 小时
注册时间
2017-1-9
回帖
596

我没有哭开拓者

 楼主| 发表于 2017-2-8 22:22:39 | 显示全部楼层
世界第一中二 发表于 2017-1-20 15:22
额,萌新经过测试……发现稍微有些问题,获得物品时显示的颜色和我设定的物品等级颜色不符,如下,上图
...

谢谢dalao,已经解决了~
这个B天天摸鱼,快点来个谁把他从被窝里拖出来
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部