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

Project1

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

[已经解决] 找一个控制语言的脚本

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
70
在线时间
117 小时
注册时间
2008-1-30
帖子
392
跳转到指定楼层
1
发表于 2009-10-18 14:51:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我先找一个能够控制的脚本。要达到的效果是自动控制语言的显示速度和切换下一句,不用玩家干预。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2009-10-12
帖子
443
2
发表于 2009-10-18 19:35:41 | 只看该作者
推荐使用6R增强脚本,自带自动关闭对话框功能。附使用方法如下:
\a[n] : n帧之后自动关闭对话框
\b: Banner mode. 文字将显示在对话框的正中间(横竖都是中间)。不能与其他类似功能同用(柳柳按:没什么用处的功能,中文不需要这么排版)
\c[n] 改变为第n种颜色. 使用\d或者\c[0]回复正常颜色。
\d: 回复默认字体、大小、颜色、高度。
\f[n] : 改变为第n种字体,使用\d回复默认字体。
\g : 显示金钱窗口
\h[n] : 改变文字的字沉高度,使用\d或\h[32]回复默认状态(柳柳按:这个功能没什么用处)
\j[n] : 显示n象素的空白(柳柳按:对于中文而言无用的功能)
\i[n] : 显示第n号物品的图标和名称(柳柳按:非常有用的功能,用来显示获得的物品感觉很不错!下面几个也是类似功能,同样有用!)
\k[n] : 显示第n号特技的图标和名称.
\m[n] : 显示第n号防具的图标和名称.
\w[n] : 显示第n号武器的图标和名称.
\n[n] : 显示第n号英雄名称(柳柳按:就是默认功能).
\o[n] : 更改文字的透明度为n.
\r: 右对齐(柳柳按:比较不实用).
\s[n] : 更改字体大小(柳柳按:不要改得太大,否则会出格,会变丑的^__^).
\v[n] : 显示第n号变量的数值.
\x: 居中对齐,必须在一行的开头用(柳柳按:比较不实用。其实这些排版功能不如打几个空格).
\\ : 显示"\"这个符号.

脚本内容:
  1. #==============================================================================
  2. # 本脚本来自http://rpg.blue/web/htm/,使用和转载请保留此信息
  3. #==============================================================================


  4. # ----------------------------
  5. class Window_Message < Window_Selectable
  6.   attr_accessor :autoclosetime
  7.   attr_accessor :op
  8. # ----------------------------
  9.   def initialize
  10.     super(80, 304, 480, 160)
  11.     self.contents = Bitmap.new(width - 32, height - 32)
  12.     self.visible = false
  13.     self.z = 9998
  14.     @fade_in = false
  15.     @fade_out = false
  16.     @contents_showing = false
  17.     @cursor_width = 0
  18.     @autoclosetime = -1
  19.     @op = 255
  20.     @refreshflag = false
  21.     self.active = false
  22.     self.index = -1
  23.   end
  24. # ----------------------------
  25.   def dispose
  26.     terminate_message
  27.     $game_temp.message_window_showing = false
  28.     if @input_number_window != nil
  29.       @input_number_window.dispose
  30.     end
  31.     super
  32.   end
  33. # ----------------------------
  34.   def terminate_message
  35.     self.active = false
  36.     self.pause = false
  37.     self.index = -1
  38.     self.contents.clear
  39.     @contents_showing = false
  40.     if $game_temp.message_proc != nil
  41.       $game_temp.message_proc.call
  42.     end
  43.     $game_temp.message_text = nil
  44.     $game_temp.message_proc = nil
  45.     $game_temp.choice_start = 99
  46.     $game_temp.choice_max = 0
  47.     $game_temp.choice_cancel_type = 0
  48.     $game_temp.choice_proc = nil
  49.     $game_temp.num_input_start = 99
  50.     $game_temp.num_input_variable_id = 0
  51.     $game_temp.num_input_digits_max = 0
  52.     if @gold_window != nil
  53.       @gold_window.dispose
  54.       @gold_window = nil
  55.     end
  56.   end
  57. # ----------------------------
  58.   def refresh
  59.     self.contents.clear
  60.     self.contents.font.color = normal_color
  61.     self.contents.font.name = "黑体"
  62.     self.contents.font.size = 18
  63.     x = y = 0
  64.     @cursor_width = 0
  65.     @autoclosetime = -1
  66.     @refreshflag = true
  67.     lineheight = 32
  68.     active = ""
  69.     a = ""
  70.     centerflag = false
  71.     rightflag = false
  72.     bannerflag = false
  73.     if $game_temp.choice_start == 0
  74.       x = 8
  75.     end
  76.     if $game_temp.message_text != nil
  77.       text = $game_temp.message_text
  78.       begin
  79.       last_text = text.clone
  80.       text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
  81.       end until text == last_text
  82.       text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
  83.         $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
  84.       end
  85.       text.gsub!(/\\\\/) { "\000" }
  86.       text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
  87.       text.gsub!(/\\[Gg]/) { "\002" }
  88.        text.gsub!(/\\[Ii]\[([0-9]+)\]/) { "\003[#{$1}]" }
  89.       text.gsub!(/\\[Ff]\[([0-9]+)\]/) { "\004[#{$1}]" }
  90.       text.gsub!(/\\[Aa]\[([0-9]+)\]/) { "\005[#{$1}]" }
  91.       text.gsub!(/\\[Xx]/) { "\006" }
  92.       text.gsub!(/\\[Rr]/) { "\007" }
  93.       text.gsub!(/\\[Dd]/) { "\011" }
  94.       text.gsub!(/\\[Ss]\[([0-9]+)\]/) { "\023[#{$1}]" }
  95.       text.gsub!(/\\[Bb]/) { "\017" }
  96.       text.gsub!(/\\[Ww]\[([0-9]+)\]/) { "\014[#{$1}]" }
  97.       text.gsub!(/\\[Mm]\[([0-9]+)\]/) { "\015[#{$1}]" }
  98.       text.gsub!(/\\[Oo]\[([0-9]+)\]/) { "\016[#{$1}]" }
  99.       text.gsub!(/\\[Jj]\[([0-9]+)\]/) { "\013[#{$1}]" }
  100.       text.gsub!(/\\[Hh]\[([0-9]+)\]/) { "\021[#{$1}]" }
  101.       text.gsub!(/\\[Kk]\[([0-9]+)\]/) { "\022[#{$1}]" }
  102.       while ((c = text.slice!(/./m)) != nil)
  103.         if c == "\000"
  104.           c = "\\"
  105.         end
  106.         if c == "\001"
  107.           text.sub!(/\[([0-9]+)\]/, "")
  108.           color = $1.to_i
  109.           if color >= 0 and color <= 7
  110.             self.contents.font.color = text_color(color)
  111.           end
  112.           next
  113.         end
  114.         if c == "\002"
  115.           if @gold_window == nil
  116.             @gold_window = Window_Gold.new
  117.             @gold_window.x = 560 - @gold_window.width
  118.             if $game_temp.in_battle
  119.               @gold_window.y = 192
  120.             else
  121.               @gold_window.y = self.y >= 128 ? 32 : 384
  122.             end
  123.             @gold_window.opacity = self.opacity
  124.             @gold_window.back_opacity = self.back_opacity
  125.           end
  126.           next
  127.         end
  128.           if c == "\003"
  129.           text.sub!(/\[([0-9]+)\]/, "")
  130.           item_sub = $1.to_i
  131.           c = $data_items[item_sub].name
  132.           l = self.contents.text_size(c).width
  133.           draw_item_name($data_items[item_sub], x, y * 32 + 1)
  134.           x = x + l + 24
  135.           next
  136.         end
  137.          if c == "\004"
  138.           text.sub!(/\[([0-9]+)\]/, "")
  139.           fontize = $1.to_i
  140.           case fontize
  141.             when 1
  142.               self.contents.font.name = "黑体"
  143.             when 2
  144.               self.contents.font.name = "High Tower Text"
  145.             when 3
  146.               self.contents.font.name = "Tw Cen MT"
  147.             when 4
  148.               self.contents.font.name = "Tahoma"
  149.           end
  150.           next
  151.         end
  152.          if c == "\005"
  153.           text.sub!(/\[([0-9]+)\]/, "")
  154.           @autoclosetime = $1.to_i
  155.           next
  156.         end
  157.         if c == "\006"
  158.           centerflag = true
  159.           next
  160.         end
  161.         if c == "\007"
  162.           rightflag = true
  163.           next
  164.         end
  165.         if c == "\011"
  166.           self.contents.font.name = "黑体"
  167.           self.contents.font.size = 18
  168.           self.contents.font.color = normal_color
  169.           lineheight = 32
  170.           next
  171.         end
  172.         if c == "\014"
  173.           text.sub!(/\[([0-9]+)\]/, "")
  174.           w_sub = $1.to_i
  175.           c = $data_weapons[w_sub].name
  176.           l = self.contents.text_size(c).width
  177.           bitmap = RPG::Cache.icon($data_weapons[w_sub].icon_name)
  178.           self.contents.blt(x+4, y * 32+ 4, bitmap, Rect.new(0, 0, 24, 24))
  179.           x += 28
  180.           self.contents.draw_text(x+4, 32 * y, l+32, lineheight, c)
  181.           x = x + l
  182.           next
  183.         end
  184.           if c == "\015"
  185.           text.sub!(/\[([0-9]+)\]/, "")
  186.           a_sub = $1.to_i
  187.           c = $data_armors[a_sub].name
  188.           l = self.contents.text_size(c).width
  189.           bitmap = RPG::Cache.icon($data_armors[a_sub].icon_name)
  190.           self.contents.blt(x+4, y * 32+ 4, bitmap, Rect.new(0, 0, 24, 24))
  191.           x += 28
  192.           self.contents.draw_text(x+4, 32 * y, l+32, lineheight, c)
  193.           x = x + l
  194.           next
  195.         end
  196.           if c == "\016"
  197.           text.sub!(/\[([0-9]+)\]/, "")
  198.           @op = $1.to_i
  199.           next
  200.         end
  201.          if c == "\017"
  202.           bannerflag = true
  203.           next
  204.         end
  205.         if c == "\018"
  206.           text.sub!(/\[([0-9]+)\]/, "")
  207.           jump = $1.to_i
  208.           x += jump
  209.           next
  210.         end
  211.           if c == "\021"
  212.           text.sub!(/\[([0-9]+)\]/, "")
  213.           lineheight = $1.to_i
  214.           next
  215.         end
  216.         if c == "\022"
  217.           text.sub!(/\[([0-9]+)\]/, "")
  218.           skill_sub = $1.to_i
  219.           c = $data_skills[skill_sub].name
  220.           l = self.contents.text_size(c).width
  221.           bitmap = RPG::Cache.icon($data_skills[skill_sub].icon_name)
  222.           self.contents.blt(x+4, y * 32+ 4, bitmap, Rect.new(0, 0, 24, 24))
  223.           x += 28
  224.           self.contents.draw_text(x+4, 32 * y, l+32, lineheight, c)
  225.           x = x + l
  226.           next
  227.         end
  228.          if c == "\023"
  229.           text.sub!(/\[([0-9]+)\]/, "")
  230.           bigness = $1.to_i
  231.           self.contents.font.size = bigness
  232.           next
  233.         end
  234.         if c == "\n"
  235.           if centerflag == true
  236.             x = 448 - x
  237.             x = x / 2
  238.             self.contents.draw_text(x, 32 * y, 448-x, lineheight, a)
  239.           end
  240.           if rightflag == true
  241.             x = 448 - x
  242.             self.contents.draw_text(x, 32 * y, 448-x, lineheight, a)
  243.           end
  244.           if bannerflag == true
  245.             x = 448 - x
  246.             x = x / 2
  247.             self.contents.draw_text(x, 44, 448-x, lineheight, a)
  248.           end
  249.           a = ""
  250.           centerflag = false
  251.           rightflag = false
  252.           bannerflag = false
  253.           if y >= $game_temp.choice_start
  254.             @cursor_width = [@cursor_width, x].max
  255.           end
  256.           y += 1
  257.           x = 0
  258.           if y >= $game_temp.choice_start
  259.             x = 8
  260.           end
  261.           next
  262.         end
  263.         if centerflag == false && rightflag == false && bannerflag == false
  264.         self.contents.draw_text(4 + x, 32 * y, 40, lineheight, c)
  265.         x += self.contents.text_size(c).width
  266.       else
  267.         a += c
  268.         x += self.contents.text_size(c).width
  269.         end
  270.       end
  271.     end
  272.     if $game_temp.choice_max > 0
  273.       @item_max = $game_temp.choice_max
  274.       self.active = true
  275.       self.index = 0
  276.     end
  277.     if $game_temp.num_input_variable_id > 0
  278.       digits_max = $game_temp.num_input_digits_max
  279.       number = $game_variables[$game_temp.num_input_variable_id]
  280.       @input_number_window = Window_InputNumber.new(digits_max)
  281.       @input_number_window.number = number
  282.       @input_number_window.x = self.x + 8
  283.       @input_number_window.y = self.y + $game_temp.num_input_start * 32
  284.     end
  285.   end
  286. # ----------------------------
  287.   def reset_window
  288.     if $game_temp.in_battle
  289.       self.y = 16
  290.     else
  291.       case $game_system.message_position
  292.       when 0
  293.         self.y = 16
  294.       when 1
  295.         self.y = 160
  296.       when 2
  297.         self.y = 304
  298.       end
  299.     end
  300.     if $game_system.message_frame == 0
  301.       self.opacity = 255
  302.     else
  303.       self.opacity = 0
  304.     end
  305.     self.back_opacity = 160
  306.   end
  307. # ----------------------------  
  308.   def update
  309.     super
  310.     if @refreshflag && @fade_in == false
  311.       self.contents_opacity = @op
  312.      end
  313.     if @autoclosetime == 0
  314.     @autoclosetime = -1
  315.      terminate_message
  316.    end
  317.     if @autoclosetime >= 1
  318.     @autoclosetime -= 1
  319.     end
  320.     if @fade_in
  321.       self.contents_opacity += 24
  322.       if @input_number_window != nil
  323.         @input_number_window.contents_opacity += 24
  324.       end
  325.       if self.contents_opacity >= @op
  326.         @fade_in = false
  327.       end
  328.       return
  329.     end
  330.     if @input_number_window != nil
  331.       @input_number_window.update
  332.       if Input.trigger?(Input::C)
  333.         $game_system.se_play($data_system.decision_se)
  334.         $game_variables[$game_temp.num_input_variable_id] =
  335.           @input_number_window.number
  336.         $game_map.need_refresh = true
  337.         @input_number_window.dispose
  338.         @input_number_window = nil
  339.         terminate_message
  340.       end
  341.       return
  342.     end
  343.     if @contents_showing
  344.       if $game_temp.choice_max == 0
  345.         self.pause = true
  346.       end
  347.       if Input.trigger?(Input::B)
  348.         if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0
  349.           $game_system.se_play($data_system.cancel_se)
  350.           $game_temp.choice_proc.call($game_temp.choice_cancel_type - 1)
  351.           terminate_message
  352.         end
  353.       end
  354.       if Input.trigger?(Input::C)
  355.         if $game_temp.choice_max > 0
  356.           $game_system.se_play($data_system.decision_se)
  357.           $game_temp.choice_proc.call(self.index)
  358.         end
  359.         @op = 255
  360.         terminate_message
  361.       end
  362.       return
  363.     end
  364.     if @fade_out == false and $game_temp.message_text != nil
  365.       @contents_showing = true
  366.       $game_temp.message_window_showing = true
  367.       reset_window
  368.       refresh
  369.       Graphics.frame_reset
  370.       self.visible = true
  371.       self.contents_opacity = 0
  372.       if @input_number_window != nil
  373.         @input_number_window.contents_opacity = 0
  374.       end
  375.       @fade_in = true
  376.       return
  377.     end
  378.     if self.visible
  379.       @fade_out = true
  380.       self.opacity -= 48
  381.       if self.opacity == 0
  382.         self.visible = false
  383.         @fade_out = false
  384.         $game_temp.message_window_showing = false
  385.       end
  386.       return
  387.     end
  388.   end
  389. # ----------------------------
  390.   def update_cursor_rect
  391.     if @index >= 0
  392.       n = $game_temp.choice_start + @index
  393.       self.cursor_rect.set(8, n * 32, @cursor_width, 32)
  394.     else
  395.       self.cursor_rect.empty
  396.     end
  397.   end
  398. end

  399. #==============================================================================
  400. # 本脚本来自http://rpg.blue/web/htm/,使用和转载请保留此信息
  401. #==============================================================================
复制代码
建议楼主多看看置顶帖,里面有很多你可能用得上的资源,平时没事搜集一下,遇到问题比较容易解答。另外请善用论坛搜索功能
对于犬而言,他生来就被赋予一个位置,一种使命,他从不为自己而活,而是为了那个位置和使命。
没有犬能够脱离族群、血统和社会的桎梏,因为那对他们而言从不是桎梏,而是生命的意义;不是夺去自由的铁圈,而是代表身份的铭牌。
我只想要个位置。任何位置。我只想要个工作。任何工作。
没人肯要我。
那些同情,爱,尊重,自由,放任,都比不过有人需要我。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-30 04:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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