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

Project1

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

[已经解决] 关于FUKI脚本的各种BUG,求救或求脚本。

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
36 小时
注册时间
2015-5-22
帖子
30
跳转到指定楼层
1
发表于 2015-6-28 13:38:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
FUKI脚本103版本的,真的在本站不好找啊,好不容易找到个,可惜不知道为什么总是有BUG。
例如一开始的时候,在选项分歧是可以显示选项光标的,如图:


然后,游戏开始之后,再出现选项分歧的时候就这鬼样了,如图:


另外,还会出现字符超出边框的情况,虽然可以用空格号和回车键空行来解决,但这始终不是一个好办法啊。
之前调用了\f[X]改变字体大小来尝试解决超出边框问题,结果更诡异的是,直接只有边框,不显示文字了,如果在脚本里就设置好文字大小(默认20号,脚本上写不能改,否则会出奇葩BUG)结果真的出了奇葩的BUG。

求哪位大大帮我看下,或者有什么办法能解决这两个对我而言棘手的问题。
不显示光标,和字超边框问题。

以下为脚本,未曾改动过。
RUBY 代码复制
  1. #==============================================================================
  2. #    Fuki对话框优化版 v6
  3. #    原版作者:by パラ犬(日)
  4. #    汉化修正:by 66RPG.com
  5. #------------------------------------------------------------------------------
  6. #    2006年01月 汉化修改 by bbschat
  7. #    2007年02月 脚本更新 by KKME
  8. #    2007年07月 脚本更新 by 绫晓露雪萌
  9. #    2010年05月 脚本优化 by Linki Shy
  10. #    2011年10月 阴影修正 by 各种压力的猫君
  11. #    2011年11月 脚本增强 by 各种压力的猫君
  12. #==============================================================================
  13. #
  14. # 【脚本功能】
  15. #
  16. #   1. 此脚本主要是解决了在1.03版XP上的方块问题,以及增加了一些功能
  17. #
  18. #   2. 人名美化使用方法与以前一样
  19. #
  20. #   3. 默认人物头像在左边显示
  21. #      如果需要右边显示,在输入的名称之后加"@r"即可
  22. #      例: "阿尔西斯@r:"(注意必须小写)
  23. #
  24. #   4. 在对话中更改字体的方法:
  25. #       \f[X]:更改字号为X
  26. #
  27. #   5. 在对话中显示(技能 物品 武器 防具 人物)图标和名称的方法:
  28. #       \s[X]: 显示第X号技能图标和名称
  29. #       \i[X]: 显示第X号物品图标和名称
  30. #       \w[X]: 显示第X号武器图标和名称
  31. #       \a[X]: 显示第X号防具图标和名称
  32. #       \r[X]: 显示第X号人物图标和名称
  33. #
  34. #   6. 在对话中更改文字不透明度的方法:
  35. #       \o[X]: 把文字不透明度更改为X (取值范围为0~255)
  36. #   
  37. #   7. 在对话中关闭或开启拟声音效的方法:
  38. #       \q:默认开启时,执行一次关闭,再执行一次则开启
  39. #
  40. #   8. 如果需要自定义字体颜色,
  41. #       可以打开"Graphics/Windowskins"目录下的"Window.png"文件查看
  42. #       使用方法与VX类似
  43. #
  44. #   9. 追加了不为瞬间显示时确定键快速显示的功能
  45. #
  46. #  10. $mes_id = 0          代表本事件
  47. #      $mes_id = -1         代表主角
  48. #      $mes_id = 其他数值   代表事件编号
  49. #      $mes_id = nil        代表不使用fuki形式
  50. #
  51. #
  52. # 【素材要求】
  53. #
  54. #   1. 要求所有半身像朝向一致(默认是正面偏右)
  55. #
  56. #==============================================================================
  57.  
  58. #==============================================================================
  59. # ■ Fuki_v6_Setup
  60. #------------------------------------------------------------------------------
  61. #    Fuki对话框优化版 v6 参数设置
  62. #==============================================================================
  63.  
  64. module Fuki_v6_Setup
  65.  
  66.   #--------------------------------------------------------------------------
  67.   # ● 外观
  68.   #--------------------------------------------------------------------------
  69.  
  70.     # 窗口透明度
  71.     FUKI_OPACITY = 255         # 呼出对话框
  72.     MES_OPACITY  = 160         # 默认信息窗口
  73.  
  74.     # 角色高度尺寸
  75.     CHARACTOR_HEIGHT = 50
  76.  
  77.     # 呼出对话框的相对位置(纵坐标)
  78.     POP_SHIFT_TOP = 0          # 表示位置为上的时候
  79.     POP_SHIFT_UNDER = -4       # 表示位置为下的时候
  80.  
  81.     # 信息的表示速度(数字越小速度越快,0为瞬间表示)
  82.     # 游戏中可以随时用数字代入 $MES_SPEED 来改变消息表示速度。
  83.     MES_SPEED = 1
  84.  
  85.     # 名称修饰符(一对)(此处参考 沉影不器 的VX版对话框加强)
  86.     NAME_SYMBOL = " :"
  87.  
  88.     # 名称颜色
  89.     NAME_COLOR = 7
  90.  
  91.   #--------------------------------------------------------------------------
  92.   # ● 功能( true / false )
  93.   #--------------------------------------------------------------------------
  94.  
  95.     # 是否显示尾巴
  96.     TAIL_SHOW = true
  97.  
  98.     # 是否播放打字音效
  99.     $play_voice = true
  100.  
  101.     # $MES_SPEED不为0时,是否可以用确定键快速显示对话
  102.     ENABLE_SKIP = true
  103.  
  104.     # 窗口表示时是否根据画面大小自动改变窗口出现的位置
  105.     POS_FIX = true
  106.  
  107.   #--------------------------------------------------------------------------
  108.   # ● 字体
  109.   #--------------------------------------------------------------------------
  110.  
  111.     # 预设字体组
  112.     FONT_ARRAY = ["黑体", "宋体", "仿宋"]
  113.  
  114.     # 默认字号【已知BUG,当默认字号不为20时会导致各种奇怪问题……暂未修正】
  115.     MES_FONT_SIZE = 20
  116.  
  117.     # 默认文字动态增大幅度
  118.     SIZE_ZY = 6
  119.  
  120.     # 默认字体颜色
  121.     FUKI_COLOR = Color.new(0, 0, 0, 255)
  122.     SHADOW_COLOR = Color.new(255, 255, 255, 255)
  123.  
  124.   #--------------------------------------------------------------------------
  125.   # ● 目录
  126.   #--------------------------------------------------------------------------
  127.  
  128.     # 呼出对话框用Skin名称(自动在 Graphics\Windowskins 内搜索)
  129.     FUKI_SKIN_NAME = "Window"
  130.  
  131.     # 设定头像图片保存目录
  132.     FACE_PIC_DIR = "Graphics/Faces/"
  133.  
  134.   #--------------------------------------------------------------------------
  135.   # ● 头像对应表
  136.   #--------------------------------------------------------------------------
  137.   #    如果不想使用角色名字直接作为头像文件名
  138.   #    可在这里重新设定角色名字与文件名的对应关系
  139.   #
  140.   #  (这功能怎么用我自己也没搞明白……大家无视吧 by 各种压力的猫君)
  141.   #--------------------------------------------------------------------------
  142.  
  143.     NAME_TABLE = {"玩家"=>"维斯特"}
  144.  
  145. end
  146. #==============================================================================
  147.  
  148. "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"
  149. "┃        自定义内容到此结束,以下内容切勿随意修改        ┃"
  150. "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"
  151.  
  152. #==============================================================================
  153. # ● 初始化全局变量并定义chat方法
  154. #==============================================================================
  155. $mes_id   = nil
  156. $mes_name = ""
  157. def chat(id = nil,name = "")
  158.   $mes_id = id
  159.   $mes_name = name
  160. end
  161.  
  162. #==============================================================================
  163. # ■ Game_Temp
  164. #==============================================================================
  165.  
  166. class Game_Temp
  167.   #--------------------------------------------------------------------------
  168.   # ● 定义实例变量
  169.   #--------------------------------------------------------------------------
  170.   attr_accessor:namebmp      # 记录角色名字和头像文件名对应关系
  171.   #--------------------------------------------------------------------------
  172.   # ● 初始化对像
  173.   #--------------------------------------------------------------------------
  174.   alias initialize_fuki initialize
  175.   def initialize
  176.     initialize_fuki
  177.     @namebmp = Fuki_v6_Setup::NAME_TABLE
  178.   end
  179. end
  180.  
  181. #==============================================================================
  182. # ■ Window_InputNumber
  183. #==============================================================================
  184.  
  185. class Window_InputNumber < Window_Base
  186.   #--------------------------------------------------------------------------
  187.   # ● 初始化对像
  188.   #     digits_max : 位数
  189.   #--------------------------------------------------------------------------
  190.   def initialize(digits_max)
  191.     @digits_max = digits_max
  192.     @number = 0
  193.     # 从数字的幅度计算(假定与 0~9 等幅)光标的幅度
  194.     dummy_bitmap = Bitmap.new(Fuki_v6_Setup::MES_FONT_SIZE, Fuki_v6_Setup::MES_FONT_SIZE)
  195.     @cursor_width = dummy_bitmap.text_size("0").width + 8
  196.     dummy_bitmap.dispose
  197.     super(0, 0, @cursor_width * @digits_max + 32, 64)
  198.     self.contents = Bitmap.new(width - 32, height - 32)
  199.     self.contents.font.size = Fuki_v6_Setup::MES_FONT_SIZE
  200.     self.contents.font.color = Fuki_v6_Setup::FUKI_COLOR
  201.     self.z += 9999
  202.     self.opacity = 0
  203.     @index = 0
  204.     refresh
  205.     update_cursor_rect
  206.   end
  207.   #--------------------------------------------------------------------------
  208.   # ● 更新光标矩形
  209.   #--------------------------------------------------------------------------
  210.   def update_cursor_rect
  211.     self.cursor_rect.set(@index * @cursor_width-4, 0, @cursor_width, Fuki_v6_Setup::MES_FONT_SIZE + 4)
  212.   end
  213.   #--------------------------------------------------------------------------
  214.   # ● 刷新
  215.   #--------------------------------------------------------------------------
  216.   def refresh
  217.     self.contents.clear
  218.     s = sprintf("%0*d", @digits_max, @number)
  219.     for i in 0...@digits_max
  220.       self.contents.draw_text(i * @cursor_width, 0, 24, Fuki_v6_Setup::MES_FONT_SIZE + 4, s[i,1])
  221.     end
  222.   end
  223. end
  224.  
  225. #==============================================================================
  226. # ■ Window_Message
  227. #==============================================================================
  228.  
  229. class Window_Message < Window_Selectable
  230.  
  231.   #--------------------------------------------------------------------------
  232.   # ● 初始化状态
  233.   #--------------------------------------------------------------------------
  234.   def initialize
  235.     super(80, 304, 480, 160)
  236.     self.contents = Bitmap.new(width - 32, height - 32)
  237.     self.contents.font.size = Fuki_v6_Setup::MES_FONT_SIZE
  238.     self.contents.font.color = text_color(0)
  239.     self.visible = false
  240.     self.z = 9998
  241.     @fade_in = false
  242.     @fade_out = false
  243.     @contents_showing = false
  244.     @cursor_width = 0
  245.     self.active = false
  246.     self.index = -1
  247.     @w = 0
  248.     @h = 0
  249.     @wait = 0
  250.     @dx = 0
  251.     @dy = 0
  252.     $MES_SPEED = Fuki_v6_Setup::MES_SPEED
  253.     #------------------------
  254.     # ★ 特殊时期中断标志
  255.     #------------------------
  256.     @no_term_stop = false
  257.     @save_x = 0
  258.     @save_y = 0
  259.     @old_text_info = []
  260.     @show_right = false
  261.     @show_name  = false
  262.     @face_width = 0
  263.   end
  264.   #--------------------------------------------------------------------------
  265.   # ○ 决定窗口尺寸并生成窗口
  266.   #--------------------------------------------------------------------------
  267.   def refresh_create
  268.     unless @no_term_stop
  269.       @pic_skin.dispose if @pic_skin != nil
  270.       if $game_temp.message_text.include?(":")
  271.         if $game_temp.message_text.include?("@r")
  272.           @show_right = true
  273.           $game_temp.message_text.sub!(/\@r/, "")
  274.         end
  275.         @show_name = true
  276.         # 添加名称修饰符
  277.         unless Fuki_v6_Setup::NAME_SYMBOL.empty?
  278.           $game_temp.message_text = '\c[' + Fuki_v6_Setup::NAME_COLOR.to_s + ']' + Fuki_v6_Setup::NAME_SYMBOL[0,Fuki_v6_Setup::NAME_SYMBOL.size/2] + $game_temp.message_text
  279.           $game_temp.message_text.sub!(/\:/, Fuki_v6_Setup::NAME_SYMBOL[Fuki_v6_Setup::NAME_SYMBOL.size/2,Fuki_v6_Setup::NAME_SYMBOL.size/2] + '\c[0]')
  280.         end
  281.       end
  282.       self.contents.clear
  283.       self.contents.font.color = normal_color
  284.       # 取得窗口尺寸
  285.       get_windowsize
  286.       w = @w + 40
  287.       h = (@h ) * (self.contents.font.size + 4 ) + 29
  288.       h = 64 if h < 64
  289.       set_fukidasi(self.x, self.y, w, h)
  290.       # 生成呼出窗口
  291.       draw_msg_face
  292.       create_backbmp
  293.     end
  294.     # 初始化信息表示使用的变量
  295.     @dx = @save_x
  296.     @dx += @face_width unless @show_right
  297.     @dy = @save_y
  298.     @cursor_width = 0
  299.     @contents_drawing = true
  300.     # 瞬间表示的情况下
  301.     if $MES_SPEED == 0
  302.       # 循环信息描绘处理
  303.       while $game_temp.message_text != ""
  304.         draw_massage
  305.       end
  306.       draw_opt_text
  307.       @contents_showing_end = true
  308.       @contents_drawing = false
  309.     else
  310.       # 一个一个描绘文字
  311.       refresh_drawtext
  312.     end
  313.   end
  314.   #--------------------------------------------------------------------------
  315.   # ○ 一个一个描绘文字
  316.   #--------------------------------------------------------------------------
  317.   def refresh_drawtext
  318.     # 当按下确定键的时候直接显示剩余的全部文字
  319.     if Input.trigger?(Input::C) and Fuki_v6_Setup::ENABLE_SKIP
  320.       # 循环信息描绘处理
  321.       while $game_temp.message_text != ""
  322.         draw_massage
  323.       end
  324.       draw_opt_text
  325.       @contents_showing_end = true
  326.       @contents_drawing = false
  327.     elsif $game_temp.message_text != ""
  328.       if @wait > 0
  329.         @wait -= 1
  330.       elsif @wait == 0
  331.         # 描绘处理
  332.         draw_massage
  333.         @wait = $MES_SPEED
  334.       end
  335.     else
  336.       draw_opt_text
  337.       @contents_showing_end = true
  338.       @contents_drawing = false
  339.     end
  340.   end
  341.   #--------------------------------------------------------------------------
  342.   # ○ 取得窗口尺寸
  343.   #--------------------------------------------------------------------------
  344.   def get_windowsize
  345.     get_face_width($mes_name)
  346.     x = y = 0
  347.     @h = @w = 0
  348.     @cursor_width = 0
  349.     # 有选择项的话,处理字的缩进
  350.     if $game_temp.choice_start == 0
  351.       x = 16
  352.     end
  353.     # 有等待显示的文字的情况下
  354.     if $game_temp.message_text != nil
  355.     text = $game_temp.message_text.clone
  356.       # 限制文字处理
  357.       begin
  358.         last_text = text.clone
  359.         text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
  360.       end until text == last_text
  361.       text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
  362.         $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
  363.       end
  364.       text.gsub!(/\\\\/)                 { "\x00" }
  365.       text.gsub!(/\\[Cc]\[([0-9]+)\]/)   { "\x01" }
  366.       text.gsub!(/\\[Gg]/)               { "\x02" }
  367.       text.gsub!(/\\[Ss]\[([0-9]+)\]/)   { "\x03" + $data_skills[$1.to_i].name }
  368.       text.gsub!(/\\[Ii]\[([0-9]+)\]/)   { "\x04" + $data_items[$1.to_i].name }
  369.       text.gsub!(/\\[Ww]\[([0-9]+)\]/)   { "\x05" + $data_weapons[$1.to_i].name }
  370.       text.gsub!(/\\[Aa]\[([0-9]+)\]/)   { "\x06" + $data_armors[$1.to_i].name }
  371.       text.gsub!(/\\[Rr]\[([0-9]+)\]/)   { "\x10" + $game_actors[$1.to_i].name }
  372.       # c 获取 1 个字 (如果不能取得文字就循环)
  373.       while ((c = text.slice!(/./m)) != nil)
  374.         if c == "\x00"
  375.           c = "\\"
  376.         end
  377.         if c == "\x01" or c == "\x02"
  378.           next
  379.         end
  380.         if c == "\x03" or c == "\x04" or c == "\x05" or c == "\x06" or c == "\x010"
  381.           c = "   "
  382.         end
  383.         if c == "\n"
  384.           # y 累加 1
  385.           y += 1
  386.           # 取得纵横尺寸
  387.           @h = y
  388.           @w = x > @w ? x : @w
  389.           if y >= $game_temp.choice_start
  390.             @w = x + Fuki_v6_Setup::MES_FONT_SIZE > @w ? x + Fuki_v6_Setup::MES_FONT_SIZE : @w
  391.           end
  392.           x = 0
  393.           x = Fuki_v6_Setup::MES_FONT_SIZE if y >= $game_temp.choice_start
  394.           # 下面的文字
  395.           next
  396.         end
  397.         # x 为要描绘文字的宽度加法运算
  398.         x += self.contents.text_size(c).width
  399.       end
  400.     end
  401.     # 输入数值的情况
  402.     if $game_temp.num_input_variable_id > 0
  403.       digits_max = $game_temp.num_input_digits_max
  404.       number = $game_variables[$game_temp.num_input_variable_id]
  405.       @h += 1
  406.       x = digits_max * self.contents.font.size + 16
  407.       @w = x > @w ? x : @w
  408.     end
  409.     @w += @face_width
  410.     @w = 128 if @w < 128
  411.   end
  412.   #--------------------------------------------------------------------------
  413.   # ○ 描绘信息处理
  414.   #--------------------------------------------------------------------------
  415.   def draw_massage
  416.     # 有等待显示的文字的情况下
  417.     if $game_temp.message_text != nil or @old_text_info != nil
  418.       text = $game_temp.message_text
  419.       # 限制文字处理
  420.       begin
  421.         last_text = text.clone
  422.         text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
  423.       end until text == last_text
  424.       text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
  425.         $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
  426.       end
  427.       text.gsub!(/\\\\/)                 { "\x00" }
  428.       text.gsub!(/\\[Cc]\[([0-9]+)\]/)   { "\x01[#{$1}]" }
  429.       text.gsub!(/\\[Gg]/)               { "\x02" }
  430.       text.gsub!(/\\[Ss]\[([0-9]+)\]/)   { "\x03[#{$1}]" }
  431.       text.gsub!(/\\[Ii]\[([0-9]+)\]/)   { "\x04[#{$1}]" }
  432.       text.gsub!(/\\[Ww]\[([0-9]+)\]/)   { "\x05[#{$1}]" }
  433.       text.gsub!(/\\[Aa]\[([0-9]+)\]/)   { "\x06[#{$1}]" }
  434.       text.gsub!(/\\[Oo]\[([0-9]+)\]/)   { "\x07[#{$1}]" }
  435.       text.gsub!(/\\[Qq]/)               { "\x08" }
  436.       text.gsub!(/\\[Ff]\[([0-9]+)\]/)   { "\x09[#{$1}]" }
  437.       text.gsub!(/\\[Rr]\[([0-9]+)\]/)   { "\x10[#{$1}]" }
  438.       # c 获取 1 个字
  439.       c = text.slice!(/./m)
  440.       # 默认对话框采用默认颜色
  441.       self.contents.font.color = normal_color if $mes_id == nil
  442.       # 选择项的情况
  443.       if @dy >= $game_temp.choice_start
  444.         # 处理字的缩进
  445.         @dx = Fuki_v6_Setup::MES_FONT_SIZE
  446.         @dx += @face_width unless @show_right
  447.         @dx += Fuki_v6_Setup::MES_FONT_SIZE if @show_name
  448.         # 描绘文字
  449.         self.contents.draw_text(@dx, 24 * @dy, 24, 24, c)
  450.         # x 为要描绘文字宽度的加法运算
  451.         @dx += self.contents.text_size(c).width
  452.         # 循环
  453.         while ((c = text.slice!(/./m)) != "\n")
  454.           # 描绘文字
  455.           self.contents.draw_text(@dx, 24 * @dy, 24, 24, c)
  456.           # x 为要描绘文字宽度的加法运算
  457.           @dx += self.contents.text_size(c).width
  458.         end
  459.         if c == "\n"
  460.           # 更新光标宽度
  461.           @cursor_width = [@cursor_width, @dx - @face_width].max
  462.           # dy 累加 1
  463.           @dy += 1
  464.         end
  465.         return
  466.       end
  467.       case c
  468.       when "\x00"
  469.         c = "\\"            
  470.       when "\x01"                  
  471.         text.sub!(/\[([0-9]+)\]/, "")
  472.         color = $1.to_i
  473.         self.contents.font.color = text_color(color)
  474.       when "\x02"
  475.         @contents_showing_end = true
  476.         @contents_drawing = false
  477.         terminate_messageX
  478.         @save_x = @dx
  479.         @save_y = @dy
  480.       when "\x03"
  481.         text.sub!(/\[([0-9]+)\]/, "")
  482.         last_character
  483.         draw_icon($data_skills[$1.to_i], 4 + @dx, 24 * @dy)
  484.         @dx += self.contents.text_size("   ").width
  485.       when "\x04"
  486.         text.sub!(/\[([0-9]+)\]/, "")
  487.         last_character
  488.         draw_icon($data_items[$1.to_i], 4 + @dx, 24 * @dy)
  489.         @dx += self.contents.text_size("   ").width
  490.       when "\x05"
  491.         text.sub!(/\[([0-9]+)\]/, "")
  492.         last_character
  493.         draw_icon($data_weapons[$1.to_i], 4 + @dx, 24 * @dy)
  494.         @dx += self.contents.text_size("   ").width
  495.       when "\x06"
  496.         text.sub!(/\[([0-9]+)\]/, "")
  497.         last_character
  498.         draw_icon($data_armors[$1.to_i], 4 + @dx, 24 * @dy)
  499.         @dx += self.contents.text_size("   ").width
  500.       when "\x07"
  501.         text.sub!(/\[([0-9]+)\]/, "")
  502.         self.contents.font.color.alpha = $1.to_i
  503.       when "\x08"
  504.         text.sub!(/\[([0-9]+)\]/, "")
  505.         $play_voice = !$play_voice
  506.       when "\x09"
  507.         text.sub!(/\[([0-9]+)\]/, "")
  508.         self.contents.font.name = Fuki_v6_Setup::FONT_ARRAY[$1.to_i]
  509.       when "\x10"
  510.         text.sub!(/\[([0-9]+)\]/, "")
  511.         last_character
  512.         draw_actor_graphic($game_actors[$1.to_i], 4 + @dx, 24 * @dy)
  513.         @dx += self.contents.text_size("   ").width
  514.       when "\n"
  515.         @dy += 1
  516.         @dx = 0
  517.         @dx += @face_width unless @show_right
  518.         @dx += Fuki_v6_Setup::MES_FONT_SIZE if @show_name
  519.         last_character
  520.       else
  521.         last_character
  522.         if c != nil
  523.           self.contents.font.size = Fuki_v6_Setup::MES_FONT_SIZE
  524.           font_size = self.contents.font.size += Fuki_v6_Setup::SIZE_ZY
  525.           @old_text_info.push(@dx , @dy , font_size, self.contents.font.color.clone, c)
  526.           #字体如果自己来设定需要改变算法
  527.           line_y = (font_size + 4 - Fuki_v6_Setup::SIZE_ZY) * @dy  - Fuki_v6_Setup::SIZE_ZY / 2
  528.           self.contents.draw_text(4 + @dx, line_y , font_size, font_size, c)
  529.           self.contents.font.size -= Fuki_v6_Setup::SIZE_ZY
  530.           Audio.se_play("Audio/SE/Voice", 90, 100) if $play_voice and c != " "
  531.           @dx += self.contents.text_size(c).width
  532.         end
  533.       end
  534.     end
  535.   end
  536.   #--------------------------------------------------------------------------
  537.   # ○ 完成上一个字符的描绘,说白了就是给出一个文字影效果
  538.   #--------------------------------------------------------------------------
  539.   def last_character
  540.     unless @old_text_info == []
  541.       self.contents.fill_rect (4 + @old_text_info[0], (@old_text_info[2]+ 4 - Fuki_v6_Setup::SIZE_ZY) * @old_text_info[1] - Fuki_v6_Setup::SIZE_ZY / 2, @old_text_info[2], @old_text_info[2], Color.new(0,0,0,0))
  542.       color = self.contents.font.color.clone
  543.       self.contents.font.color = @old_text_info[3].clone
  544.       self.contents.font.size = @old_text_info[2] -= Fuki_v6_Setup::SIZE_ZY
  545.       self.contents.draw_text(4 + @old_text_info[0], (@old_text_info[2] + 4) * @old_text_info[1], @old_text_info[2], @old_text_info[2], @old_text_info[4])
  546.       self.contents.font.color = color
  547.       @old_text_info = []
  548.     end
  549.   end
  550.   #--------------------------------------------------------------------------
  551.   # ○ 选择项和输入数值的情况下
  552.   #--------------------------------------------------------------------------
  553.   def draw_opt_text
  554.     # 选择项的情况下
  555.     if $game_temp.choice_max > 0
  556.       @item_max = $game_temp.choice_max
  557.       self.active = true
  558.       self.index = 0
  559.     end
  560.     # 输入数值的情况下
  561.     if $game_temp.num_input_variable_id > 0
  562.       digits_max = $game_temp.num_input_digits_max
  563.       number = $game_variables[$game_temp.num_input_variable_id]
  564.       @input_number_window = Window_InputNumber.new(digits_max)
  565.       @input_number_window.number = number
  566.       @input_number_window.x = self.x + @face_width + Fuki_v6_Setup::MES_FONT_SIZE + 8
  567.       @input_number_window.y = self.y + $game_temp.num_input_start * (Fuki_v6_Setup::MES_FONT_SIZE + 2)
  568.     end
  569.   end
  570.   #--------------------------------------------------------------------------
  571.   # ○ 生成背景图片
  572.   #--------------------------------------------------------------------------
  573.   def create_backbmp
  574.     @pic_skin.dispose if @pic_skin != nil
  575.     @pic_skin = Sprite.new
  576.     unless @no_term_stop
  577.       @pic_skin.opacity = 0  
  578.     end
  579.     @pic_skin.bitmap = Bitmap.new(self.width + 32, self.height + 32)
  580.     @pic_skin.x = self.x + 2
  581.     @pic_skin.y = self.y + 2
  582.     @pic_skin.z = self.z
  583.     bitmap = RPG::Cache.windowskin(Fuki_v6_Setup::FUKI_SKIN_NAME)
  584.     rect = Rect.new(0, 0, 32, 32)
  585.     @pic_skin.bitmap.blt(0, 0, bitmap, rect)
  586.     rect = Rect.new(96, 0, 32, 32)
  587.     @pic_skin.bitmap.blt(self.width-32, 0, bitmap, rect)
  588.     rect = Rect.new(0, 96, 32, 32)
  589.     @pic_skin.bitmap.blt(0, self.height-32, bitmap, rect)
  590.     rect = Rect.new(96, 96, 32, 32)
  591.     @pic_skin.bitmap.blt(self.width-32, self.height-32, bitmap, rect)
  592.     rect = Rect.new(0, 32, 32, 32)
  593.     @pic_skin.bitmap.stretch_blt(Rect.new(0, 32, 32, self.height - 64), bitmap, rect)
  594.     rect = Rect.new(96, 32, 32, 32)
  595.     @pic_skin.bitmap.stretch_blt(Rect.new(self.width-32,32,32,self.height-64), bitmap, rect)
  596.     rect = Rect.new(32, 0, 32, 32)
  597.     @pic_skin.bitmap.stretch_blt(Rect.new(32,0,self.width-64,self.height-32), bitmap, rect)
  598.     # 如果尾巴在底端的话,更改底边描绘方式以修正阴影
  599.     if @message_position == 0 and @tale != nil
  600.       # 乱七八糟的三个计算变量
  601.       above_tale_x = @tale.x - self.x + 14
  602.       above_tale_width1 = @tale.x - self.x - 16 - 2
  603.       above_tale_width2 = self.width - above_tale_width1 - 32 - 64
  604.       # 中部(尾巴上方)
  605.       rect = Rect.new(32, 96, 32, 16)
  606.       @pic_skin.bitmap.stretch_blt(Rect.new(above_tale_x , self.height-32, 32, 24), bitmap, rect)
  607.       # 左半部
  608.       rect = Rect.new(32, 96, 32, 32)
  609.       @pic_skin.bitmap.stretch_blt(Rect.new(32, self.height-32, above_tale_width1, 32), bitmap, rect)
  610.       # 右半部
  611.       @pic_skin.bitmap.stretch_blt(Rect.new(32+above_tale_x, self.height-32, above_tale_width2, 32), bitmap, rect)
  612.       bitmap.dispose
  613.     else # 除此之外的情况保留原来的底边描绘方式
  614.       rect = Rect.new(32, 96, 32, 32)
  615.       @pic_skin.bitmap.stretch_blt(Rect.new(32,self.height-32,self.width-64,32), bitmap, rect)
  616.       bitmap.dispose
  617.     end
  618.   end
  619.   #--------------------------------------------------------------------------
  620.   # ○ 设置呼出对话框
  621.   #--------------------------------------------------------------------------
  622.   def set_fukidasi(x, y, width, height)
  623.     begin
  624.       self.pause = false # 不显示暂停标志
  625.       pos = get_fuki_pos(width, height) # 取得对话框位置
  626.       x = pos[0]
  627.       y = pos[1]
  628.       self.windowskin = RPG::Cache.windowskin("VX-暗")
  629.       self.x = x
  630.       self.y = y
  631.       self.height = height
  632.       self.width = width
  633.       unless @no_term_stop
  634.         self.contents.dispose
  635.         self.contents = Bitmap.new(width - 32, height - 32)
  636.         self.back_opacity = Fuki_v6_Setup::FUKI_OPACITY
  637.         self.contents.clear
  638.         self.contents.font.color = normal_color
  639.         self.contents.font.size = Fuki_v6_Setup::MES_FONT_SIZE
  640.       end
  641.       if $game_system.message_frame == 0
  642.         tale_pos = get_tale_pos
  643.         @tale = Sprite.new
  644.         @tale.bitmap = Bitmap.new(64, 32)
  645.         if Fuki_v6_Setup::TAIL_SHOW
  646.           case @message_position
  647.           when 0  # 上
  648.             bitmap = RPG::Cache.windowskin(Fuki_v6_Setup::FUKI_SKIN_NAME)
  649.             rect = Rect.new(32, 32, 64, 32)
  650.             @tale.bitmap.blt(0, 0, bitmap, rect)
  651.             bitmap.dispose
  652.             @tale.x = tale_pos[0]
  653.             @tale.x += 8 if @tale.x < 64
  654.             if @tale.x > 640 - 64
  655.               @tale.mirror = true
  656.               @tale.x -= 64
  657.             end
  658.             @tale.y = tale_pos[1]
  659.             @tale.z = self.z + 1
  660.           when 1  # 中
  661.             @tale.dispose
  662.             @tale = nil
  663.           when 2  # 下
  664.             bitmap = RPG::Cache.windowskin(Fuki_v6_Setup::FUKI_SKIN_NAME)
  665.             rect = Rect.new(32, 64, 64, 32)
  666.             @tale.bitmap.blt(0, 0, bitmap, rect)
  667.             bitmap.dispose
  668.             @tale.x = tale_pos[0]
  669.             @tale.x += 8 if @tale.x < 64
  670.             if @tale.x > 640 - 64
  671.               @tale.mirror = true
  672.               @tale.x -= 64
  673.             end
  674.             @tale.y = tale_pos[1]
  675.             @tale.z = self.z# + 1
  676.           end
  677.         end
  678.       end
  679.     rescue
  680.       del_fukidasi
  681.       reset_window(width, height)
  682.     end
  683.   end
  684.   #--------------------------------------------------------------------------
  685.   # ○ 计算呼出对话框的位置
  686.   #--------------------------------------------------------------------------
  687.   def get_fuki_pos(width, height)
  688.     # 取得角色
  689.     @character = get_character($mes_id)
  690.     if @character == nil
  691.       # 角色不存在的情况下使用默认信息框
  692.  
  693.       del_fukidasi
  694.       reset_window(width, height)
  695.       return
  696.     end
  697.     # 处理坐标
  698.     x = (@character.real_x - $game_map.display_x + 64) * 32 / 128 - (width / 2)
  699.     # 为尽量显示在画面内而移动横坐标
  700.     if x + width > 640
  701.       x = 640 - width
  702.     elsif x < 0
  703.       x = 0
  704.     end
  705.     # 决定窗口位置
  706.     case $game_system.message_position
  707.     when 0  # 上
  708.       y = (@character.real_y - $game_map.display_y + 64) * 32 / 128 - height - Fuki_v6_Setup::CHARACTOR_HEIGHT + Fuki_v6_Setup::POP_SHIFT_TOP
  709.     when 1  # 中
  710.       x = (640 - width) / 2
  711.       y = (480 - height) / 2
  712.     when 2  # 下
  713.       y =  (@character.real_y - $game_map.display_y + 64) * 32 / 128 + 32 + Fuki_v6_Setup::POP_SHIFT_UNDER
  714.     end
  715.     # 纪录文章显示位置
  716.     @message_position = $game_system.message_position
  717.     if Fuki_v6_Setup::POS_FIX
  718.       case @message_position
  719.       when 0  # 上
  720.         if y <= 0
  721.           @message_position = 2
  722.           y =  (@character.real_y - $game_map.display_y + 64) * 32 / 128 + 32 + Fuki_v6_Setup::POP_SHIFT_UNDER
  723.         end
  724.       when 2  # 下
  725.         if y + height >= 480
  726.           @message_position = 0
  727.           y = (@character.real_y - $game_map.display_y + 64) * 32 / 128 - height - Fuki_v6_Setup::CHARACTOR_HEIGHT + Fuki_v6_Setup::POP_SHIFT_TOP
  728.         end
  729.       end
  730.     end
  731.     return [x, y]
  732.   end
  733.   #--------------------------------------------------------------------------
  734.   # ○ 计算尾部图标的位置
  735.   #--------------------------------------------------------------------------
  736.   def get_tale_pos
  737.     case @message_position
  738.     when 0  # 上
  739.       # 处理坐标
  740.       x = ( @character.real_x - $game_map.display_x + 64 ) * 32 / 128 - 8
  741.       y = self.y + self.height - 6
  742.     when 1  # 中
  743.       x = nil
  744.       y = nil
  745.     when 2  # 下
  746.       # 处理坐标
  747.       x = ( @character.real_x - $game_map.display_x + 64 ) * 32 / 128 - 8
  748.       y = self.y - 18
  749.     end
  750.     return [x, y]
  751.   end
  752.   #--------------------------------------------------------------------------
  753.   # ○ 设置角色半身像窗口
  754.   #--------------------------------------------------------------------------
  755.   def draw_msg_face
  756.     @face_sprite.dispose if @face_sprite != nil
  757.     # $mes_name为空时不显示
  758.     if $mes_name == nil or $mes_name == ""
  759.       return
  760.     else
  761.       # 设定变量
  762.       mes_name = $mes_name
  763.       if $game_temp.namebmp[mes_name] == nil
  764.         sFile = Fuki_v6_Setup::FACE_PIC_DIR + mes_name
  765.       else
  766.         sFile = Fuki_v6_Setup::FACE_PIC_DIR + $game_temp.namebmp[mes_name]
  767.       end
  768.       bitmap = Bitmap.new(sFile)
  769.       @pic_width = bitmap.width
  770.       @pic_height = bitmap.height
  771.       @face_sprite = Sprite.new
  772.       @face_sprite.x = self.x + 26
  773.       @face_sprite.x = self.x + self.width - @pic_width - 26 if @show_right
  774.       @face_sprite.y = self.y + self.height - @pic_height - 6
  775.       @face_sprite.bitmap = bitmap
  776.       @face_sprite.z = self.z + 3
  777.       @face_sprite.mirror = @show_right
  778.       @face_sprite.opacity = 0
  779.     end
  780.   end
  781.   #--------------------------------------------------------------------------
  782.   # ○ 释放呼出对话框
  783.   #--------------------------------------------------------------------------
  784.   def del_fukidasi
  785.     self.opacity = 250 #测试标记。
  786.     self.x = 80
  787.     self.width = 480
  788.     self.height = 160
  789.     self.contents.dispose
  790.     self.contents = Bitmap.new(width - 32, height - 32)
  791.     self.pause = true
  792.     if @tale != nil
  793.       @tale.dispose
  794.       @tale = nil
  795.     end
  796.   end
  797.   #--------------------------------------------------------------------------
  798.   # ○ 取得角色
  799.   #     parameter : 参数
  800.   #--------------------------------------------------------------------------
  801.   def get_character(parameter)
  802.     # 参数分歧
  803.     case parameter
  804.     when nil
  805.       return events == nil
  806.     when -1  # 玩家
  807.       return $game_player
  808.     when 0   # 该事件
  809.       events = $game_map.events
  810.       # 循环 (地图事件)
  811.       for event in $game_map.events.values
  812.         # 如果找到了启动中的事件
  813.         if event.starting
  814.           @event_id = event.id
  815.         end
  816.       end
  817.       return events == nil ? nil : events[@event_id]
  818.     else     # 特定事件
  819.       events = $game_map.events
  820.       return events == nil ? nil : events[parameter]
  821.     end
  822.   end
  823.   #--------------------------------------------------------------------------
  824.   # ● 设定窗口位置和不透明度
  825.   #--------------------------------------------------------------------------
  826.   def reset_window(width = nil, height = nil)
  827.     if $game_temp.in_battle
  828.       self.y = 16
  829.     else
  830.       case $game_system.message_position
  831.       when 0  # 上
  832.         self.y = 16
  833.       when 1  # 中
  834.         if height != nil and width != nil
  835.           self.y = (480 - height) / 2 - 32
  836.           self.x = (640 - width) / 2
  837.           self.width = width
  838.           self.height = height
  839.           self.contents.dispose
  840.           self.contents = Bitmap.new(width - 32, height - 32)
  841.         else
  842.           self.y = 160
  843.         end
  844.       when 2  # 下
  845.         self.y = 304
  846.       end
  847.     end
  848.     self.opacity = 0
  849.     self.opacity = 255 if $game_system.message_frame == 1
  850.     self.back_opacity = Fuki_v6_Setup::MES_OPACITY
  851.   end
  852.   #--------------------------------------------------------------------------
  853.   # ● 刷新画面
  854.   #--------------------------------------------------------------------------
  855.   def update
  856.     if $tale_need_dispose
  857.       del_fukidasi
  858.       $tale_need_dispose = false
  859.     end
  860.     super
  861.     update_fuki                 # 呼出模式下跟随事件移动
  862.     if @fade_in                 # 渐变的情况下
  863.       self.contents_opacity += 24
  864.       unless $game_system.message_frame == 1
  865.         @pic_skin.opacity += 20
  866.       else
  867.         @pic_skin.opacity = 0
  868.       end
  869.       if @tale != nil
  870.         @face_sprite.opacity += 24 if @face_sprite != nil and !@face_sprite.disposed?
  871.         @tale.opacity += 20
  872.       end
  873.       @input_number_window.contents_opacity += 24 if @input_number_window != nil
  874.       @fade_in = false if self.contents_opacity == 255
  875.       return
  876.     end
  877.     if @contents_drawing        # 显示信息中的情况下
  878.       refresh_drawtext
  879.       return
  880.     end
  881.     update_input_number_window  # 输入数值的情况下
  882.     if @contents_showing_end    # 显示信息结束的情况下
  883.       if $game_temp.choice_max == 0 and @tale == nil
  884.         self.pause = true
  885.       else
  886.         self.pause = false
  887.       end
  888.       update_choose
  889.       return
  890.     end
  891.     if @fade_out == false and $game_temp.message_text != nil # 在渐变以外的状态下
  892.       @contents_showing = true
  893.       $game_temp.message_window_showing = true
  894.       reset_window
  895.       refresh_create
  896.       if @no_term_stop
  897.         self.visible = true        
  898.       else
  899.         @tale.opacity = 0 if @tale != nil
  900.         Graphics.frame_reset
  901.         self.visible = true
  902.         self.contents_opacity = 0
  903.         @input_number_window.contents_opacity = 0 if @input_number_window != nil
  904.         @fade_in = true
  905.       end
  906.       return
  907.     end
  908.  
  909.     unless @no_term_stop # 没有可以显示的信息、但是窗口为可见的情况下
  910.       if self.visible
  911.         @fade_out = true
  912.         self.opacity -= 48
  913.         @face_sprite.opacity -= 48 if @face_sprite != nil and !@face_sprite.disposed?
  914.         @pic_skin.opacity -= 48 if @pic_skin != nil and !@pic_skin.disposed?
  915.         @tale.opacity -= 48 if @tale != nil and !@tale.disposed?
  916.         if (@face_sprite == nil) or @face_sprite.disposed? or (@face_sprite.opacity == 0)
  917.           self.visible = false
  918.           @face_sprite.dispose if @face_sprite != nil
  919.           @pic_skin.dispose
  920.           @fade_out = false
  921.           $game_temp.message_window_showing = false
  922.         end
  923.         return
  924.       end
  925.     else
  926.       $game_temp.message_window_showing = false   
  927.     end
  928.   end
  929.   #--------------------------------------------------------------------------
  930.   # ● 释放
  931.   #--------------------------------------------------------------------------
  932.   def dispose
  933.     terminate_message
  934.     $game_temp.message_window_showing = false
  935.     @input_number_window.dispose if @input_number_window != nil
  936.     super
  937.   end
  938.   #--------------------------------------------------------------------------
  939.   # ● 信息结束处理
  940.   #--------------------------------------------------------------------------
  941.   def terminate_message
  942.     self.active = false
  943.     self.pause = false
  944.     self.index = -1
  945.     self.contents.clear
  946.     # 清除显示中标志
  947.     @contents_showing = false
  948.     @contents_showing_end = false
  949.     $mes_name = ""
  950.     # 呼叫信息调用
  951.     $game_temp.message_proc.call if $game_temp.message_proc != nil
  952.     # 清除文章、选择项、输入数值的相关变量
  953.     $game_temp.message_text = nil
  954.     $game_temp.message_proc = nil
  955.     $game_temp.choice_start = 99
  956.     $game_temp.choice_max = 0
  957.     $game_temp.choice_cancel_type = 0
  958.     $game_temp.choice_proc = nil
  959.     $game_temp.num_input_start = 99
  960.     $game_temp.num_input_variable_id = 0
  961.     $game_temp.num_input_digits_max = 0
  962.     # 释放金钱窗口
  963.     if @gold_window != nil
  964.       @gold_window.dispose
  965.       @gold_window = nil
  966.     end
  967.     @no_term_stop = false
  968.     @save_x = 0
  969.     @save_y = 0
  970.     @show_right = false
  971.     @show_name  = false
  972.     @face_width = 0
  973.     $tale_need_dispose = true if @tale != nil
  974.   end
  975.   #--------------------------------------------------------------------------
  976.   # ● ★信息结束处理★
  977.   #--------------------------------------------------------------------------
  978.   def terminate_messageX
  979.     self.active = false
  980.     self.pause = false
  981.     self.index = -1
  982.     # 清除显示中标志
  983.     @contents_showing = false
  984.     @contents_showing_end = false
  985.     # 呼叫信息调用
  986.     $game_temp.message_proc.call if $game_temp.message_proc != nil
  987.     # 清除文章、选择项、输入数值的相关变量
  988.     $game_temp.message_text = nil
  989.     $game_temp.message_proc = nil
  990.     @no_term_stop = true
  991.     @show_right = false
  992.     @show_name  = false
  993.     @face_width = 0
  994.   end
  995.   #--------------------------------------------------------------------------
  996.   # ● 刷新光标矩形
  997.   #--------------------------------------------------------------------------
  998.   def update_cursor_rect
  999.     if @index >= 0
  1000.       n = $game_temp.choice_start + @index
  1001.       self.cursor_rect.set(Fuki_v6_Setup::MES_FONT_SIZE / 2, n * (Fuki_v6_Setup::MES_FONT_SIZE + 4), @cursor_width, Fuki_v6_Setup::MES_FONT_SIZE + 4)
  1002.       self.cursor_rect.x += @face_width unless @show_right
  1003.       self.cursor_rect.x += Fuki_v6_Setup::MES_FONT_SIZE / 2 if @show_name
  1004.     else
  1005.       self.cursor_rect.empty
  1006.     end
  1007.   end
  1008.   #--------------------------------------------------------------------------
  1009.   # ● 获取文字颜色色
  1010.   #     n : 文字颜色编号 (0~31)
  1011.   #--------------------------------------------------------------------------
  1012.   def text_color(n)
  1013.     return normal_color if n > 31
  1014.     x = (n % 8) * 16
  1015.     y = 128 + (n / 8) * 16
  1016.     return RPG::Cache.windowskin(Fuki_v6_Setup::FUKI_SKIN_NAME).get_pixel(x, y)
  1017.   end
  1018.   #--------------------------------------------------------------------------
  1019.   # ● 取得普通文字色
  1020.   #--------------------------------------------------------------------------
  1021.   def normal_color
  1022.     unless $game_system.message_frame == 1
  1023.       return Fuki_v6_Setup::FUKI_COLOR
  1024.     else
  1025.       return Fuki_v6_Setup::SHADOW_COLOR
  1026.     end
  1027.   end
  1028.   #--------------------------------------------------------------------------
  1029.   # ● 获取头像宽度
  1030.   #--------------------------------------------------------------------------
  1031.   def get_face_width(face_name)
  1032.     return if $mes_name == ""
  1033.     filename = Fuki_v6_Setup::FACE_PIC_DIR + face_name
  1034.     bitmap = Bitmap.new(filename)
  1035.     @face_width = bitmap.width + Fuki_v6_Setup::MES_FONT_SIZE
  1036.     bitmap.dispose
  1037.   end
  1038.   #--------------------------------------------------------------------------
  1039.   # ● 描绘物品
  1040.   #     item : 物品
  1041.   #--------------------------------------------------------------------------
  1042.   def draw_icon(item, x, y)
  1043.     return if item == nil
  1044.     bitmap = RPG::Cache.icon(item.icon_name)
  1045.     self.contents.blt(x + 4, y, bitmap, Rect.new(0, 0, 24, 24))
  1046.     color = self.contents.font.color.clone
  1047.     self.contents.font.color = text_color(1)
  1048.     self.contents.draw_text(x + 28, y, self.contents.text_size(item.name).width + 5, 24, item.name)
  1049.     self.contents.font.color = color
  1050.     @dx += self.contents.text_size(item.name).width
  1051.   end
  1052.   #--------------------------------------------------------------------------
  1053.   # ● 图形的描绘
  1054.   #     actor : 角色
  1055.   #     x     : 描画目标 X 坐标
  1056.   #     y     : 描画目标 Y 坐标
  1057.   #--------------------------------------------------------------------------
  1058.   def draw_actor_graphic(actor, x, y)
  1059.     bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
  1060.     cw = bitmap.width / 4
  1061.     ch = bitmap.height / 4
  1062.     src_rect = Rect.new(0, 0, cw, ch)
  1063.     self.contents.blt(x, y - 4, bitmap, src_rect)
  1064.     color = self.contents.font.color.clone
  1065.     self.contents.font.color = text_color(1)
  1066.     self.contents.draw_text(x + 32, y, self.contents.text_size(actor.name).width + 5, 24, actor.name)
  1067.     self.contents.font.color = color
  1068.     @dx += self.contents.text_size(actor.name).width
  1069.   end
  1070.   #--------------------------------------------------------------------------
  1071.   # ● 刷新呼出对话框
  1072.   #--------------------------------------------------------------------------
  1073.   def update_fuki
  1074.     if @tale != nil
  1075.       pos = get_fuki_pos(self.width, self.height)
  1076.       self.x = pos[0]
  1077.       self.y = pos[1]
  1078.       tale_pos = get_tale_pos
  1079.       @tale.mirror = false
  1080.       @tale.x = tale_pos[0]
  1081.       @tale.x += 8 if @tale.x < 64
  1082.       if @tale.x > 640 - 64
  1083.         @tale.mirror = true
  1084.         @tale.x -= 64
  1085.       end
  1086.       @tale.y = tale_pos[1]
  1087.       @pic_skin.x = self.x + 2
  1088.       @pic_skin.y = self.y + 2
  1089.       if @face_sprite != nil and !@face_sprite.disposed?
  1090.         @face_sprite.x = self.x + 26
  1091.         @face_sprite.x = self.x + self.width - @pic_width - 26 if @show_right
  1092.         @face_sprite.y = self.y + self.height - @pic_height - 6
  1093.       end
  1094.     end
  1095.   end
  1096.   #--------------------------------------------------------------------------
  1097.   # ● 刷新数字输入框
  1098.   #--------------------------------------------------------------------------
  1099.   def update_input_number_window
  1100.     if @input_number_window != nil
  1101.       @input_number_window.update
  1102.       # 确定
  1103.       if Input.trigger?(Input::C)
  1104.         $game_system.se_play($data_system.decision_se)
  1105.         $game_variables[$game_temp.num_input_variable_id] = @input_number_window.number
  1106.         # 释放输入数值窗口
  1107.         @input_number_window.dispose
  1108.         @input_number_window = nil
  1109.         $game_map.need_refresh = true
  1110.         terminate_message
  1111.       end
  1112.       return
  1113.     end
  1114.   end
  1115.   #--------------------------------------------------------------------------
  1116.   # ● 刷新选择输入
  1117.   #--------------------------------------------------------------------------
  1118.   def update_choose
  1119.     if Input.trigger?(Input::B)
  1120.       if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0
  1121.         $game_system.se_play($data_system.cancel_se)
  1122.         $game_temp.choice_proc.call($game_temp.choice_cancel_type - 1)
  1123.         terminate_message
  1124.       end
  1125.     end
  1126.     if Input.trigger?(Input::C)
  1127.       if $game_temp.choice_max > 0
  1128.         $game_system.se_play($data_system.decision_se)
  1129.         $game_temp.choice_proc.call(self.index)
  1130.       end
  1131.       terminate_message
  1132.     end
  1133.   end
  1134. end

Lv3.寻梦者

梦石
0
星屑
3846
在线时间
1966 小时
注册时间
2013-1-3
帖子
9536
2
发表于 2015-6-28 20:49:38 | 只看该作者
超边框的问题还是自己换行吧,我相信大多数都是通过换行实现的
测试中并未发现选框问题,可以发工程看看吗
《宿愿·寻剑篇》正式版已经发布!快去看看!点击进入论坛发布贴
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
36 小时
注册时间
2015-5-22
帖子
30
3
 楼主| 发表于 2015-6-29 02:48:09 | 只看该作者
http://pan.baidu.com/s/1c0IvxL2
工程有点大,8MB。上传不了6R。
我把它放在百度盘里了,那么就拜托大大了。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
帖子
1698

开拓者

4
发表于 2015-6-29 15:37:11 | 只看该作者
另一个版本的FUKI
代码

  -fk: -azogi:
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1140
在线时间
381 小时
注册时间
2010-10-9
帖子
386

开拓者

5
发表于 2015-6-29 15:57:38 | 只看该作者
把fuki那个脚本里面628行那个叫VX什么的字符串改成你想要的窗口皮肤的名字试试

评分

参与人数 1星屑 +150 收起 理由
RyanBern + 150 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
36 小时
注册时间
2015-5-22
帖子
30
6
 楼主| 发表于 2015-6-30 08:40:58 | 只看该作者
piaoy 发表于 2015-6-29 15:57
把fuki那个脚本里面628行那个叫VX什么的字符串改成你想要的窗口皮肤的名字试试 ...

3Q 原来是这个问题啊 谢谢大大了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-22 10:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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