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

Project1

 找回密码
 注册会员
搜索
查看: 2042|回复: 1

[已经解决] 关于一些脚本的修改问题。

[复制链接]

Lv1.梦旅人

梦石
0
星屑
78
在线时间
602 小时
注册时间
2012-4-20
帖子
608
发表于 2014-8-29 11:40:40 | 显示全部楼层 |阅读模式

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

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

x
如题,请问如果一个脚本是针对对话窗口制作的,在类似于Vocab::Map这种方法中无效。请问能否通过某些修改使得其支持全局文字?
附录:使用的脚本。
RUBY 代码复制
  1. # 绘制色彩渐变v1.1 更新取消了脚本基需求,脑残了 - -b
  2. # 说明:文字中输入\u[颜色1,颜色2...] 就以渐变色绘制文字,结束渐变插入\u,大小写均可
  3. # 插入文本框测试例子:\u[0,18,9,8]这是渐变文字\u渐变结束
  4. class Window_Base
  5. GRADUAL_SYM = 'U' #修改控制符,需大写。
  6. #-
  7.   alias_method :process_escape_character_NOgradual, :process_escape_character
  8.   def process_escape_character(code, text, pos)
  9.     code.upcase == GRADUAL_SYM ?
  10.       obtain_gradual_param(text, pos) :
  11.       process_escape_character_NOgradual(code, text, pos)
  12.   end
  13.   def obtain_gradual_param(text, pos)
  14.     text = text.slice!(/^\[.*]/)
  15.     if text
  16.       pos[:colors] = []
  17.       text.scan(/\d+/).each_with_index {|c, i| pos[:colors][i] = c.to_i}
  18.       return if pos[:colors].size >= 2
  19.     end
  20.     pos[:colors] = nil
  21.   end
  22.   #
  23.   alias_method :process_nomarl_character_NOgradual, :process_normal_character
  24.   def process_normal_character(c, pos)
  25.     pos[:colors] ?
  26.       process_nomarl_character_gradual(c, pos) :
  27.       process_nomarl_character_NOgradual(c, pos)
  28.   end
  29.   def process_nomarl_character_gradual(c, pos)
  30.     text_width = text_size(c).width
  31.     draw_text(pos[:x], pos[:y], text_width * 2, pos[:height], c)
  32.     colors = pos[:colors].collect {|c| text_color(c)}
  33.     csz = colors.size
  34.     uy = pos[:y]
  35.     l = (pos[:y] + pos[:height] - uy).fdiv(csz - 1)
  36.     for x in pos[:x]...(pos[:x] + text_width)
  37.       sy = uy
  38.       colors.each_with_index {|c1, i|
  39.         for y in sy.round...(sy + l).round
  40.           c = contents.get_pixel(x, y)
  41.           next if c.alpha == 0
  42.           r = (y - sy) / l
  43.           c2 = colors[i + 1]
  44.           c.red *= calc_gradual_rgb(r, c1.red, c2.red)
  45.           c.blue *= calc_gradual_rgb(r, c1.blue, c2.blue)
  46.           c.green *= calc_gradual_rgb(r, c1.green, c2.green)
  47.           contents.set_pixel(x, y, c)
  48.         end
  49.         break if i == csz - 2
  50.         sy += l
  51.       }
  52.     end
  53.     pos[:x] += text_width
  54.   end
  55.   def calc_gradual_rgb(r, v1,v2)
  56.     (v2 > v1 ? (r * (v2-v1) + v1) : ((1-r) * (v1-v2) + v2)) / 255
  57.   end
  58. end

点评

调教完毕……非常感谢!  发表于 2014-8-29 12:53
额  发表于 2014-8-29 12:47
好的,非常感谢~另外draw_text_ex这个可以让文字支持控制符这样理解没错吧?  发表于 2014-8-29 12:46
但是可能会粗线一些意想不到的问题,不推荐  发表于 2014-8-29 12:44
这个只能支持带有控制符的文本内容,有很多地方都是使用draw_text绘制内容的不建议修改。如果你什么地方需要用到这个你可以试试改成用draw_text_ex  发表于 2014-8-29 12:38
https://rpg.blue/https://rpg.blue/data/attachment/album/201407/20/204500gw201w4tveh224td.png

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
10079
在线时间
5020 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

发表于 2014-8-29 13:25:04 | 显示全部楼层
@taroxd 结贴收糖。

评分

参与人数 1星屑 +132 收起 理由
taroxd + 132 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-4 07:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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