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

Project1

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

[已经解决] 喵呜喵5的显示名字脚本和半身像对话框脚本冲突

[复制链接]

Lv4.逐梦者

梦石
5
星屑
1828
在线时间
339 小时
注册时间
2014-4-1
帖子
270
跳转到指定楼层
1
发表于 2017-8-7 13:03:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 funxlww 于 2017-8-7 13:05 编辑

这个是图书馆的半身像脚本
RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ 半身像对话框 by LBQ
  4. #------------------------------------------------------------------------------
  5. #  一个简单的半身像对话框罢了= =
  6. #------------------------------------------------------------------------------
  7. # ■ 用法一览
  8. #     1:如何将半身像应用到游戏中?
  9. #       ——如果想要把一个脸图替换成半身像,则需要找到这个脸图的编号,比如说拉尔
  10. #           夫,就是Actor1的编号0,之后去在Graphics/Busts这个文件夹里面拷贝一个
  11. #           叫做Actor1_0的图像,这个图像会被当做半身像替换原有图像。
  12. #==============================================================================
  13. # 2013.8.25 => 修复存档不能Bug (感谢小刀
  14. #==============================================================================
  15. $imported ||= {}
  16. $imported[:LBQ_Bust]=true
  17.  
  18. module LBQ
  19.   module Bust
  20.     FOLDER="Busts"
  21.     SUB1=[/【/,    "\\c[1]【 "]
  22.     SUB2=[/】/,    " 】\\c[0]"]
  23.  
  24.     TEXT_FOR_NEXT="[next]"
  25.     TEXT_FOR_END ="[end]"
  26.  
  27.     INDENT=255 #半身像的缩进
  28.   end
  29. end
  30.  
  31. module Cache
  32.   def self.busts(filename)
  33.     load_bitmap("Graphics/#{LBQ::Bust::FOLDER}/", filename)
  34.   end
  35. end
  36.  
  37.  
  38.  
  39. class Sprite_Bust < Sprite_Base
  40.   attr_accessor   :bust_graphics
  41.   attr_accessor   :status
  42.  
  43.   def initialize(vp=nil)
  44.     super(vp)
  45.     @bust_graphics=nil
  46.     @status=:nothing
  47.   end
  48.  
  49.   def slide_in
  50.     @status=:sliding_in
  51.   end
  52.  
  53.   def slide_out
  54.     @status=:sliding_out
  55.     if $game_temp.do_not_slide_out
  56.       @status=:slided_out
  57.       set_pos
  58.     end
  59.   end
  60.  
  61.  
  62.  
  63.  
  64.   def set_pos(slide_in=true)
  65.     self.x=0 - self.bitmap.width
  66.     self.y=Graphics.height-self.bitmap.height
  67.  
  68.     self.x=0 unless slide_in
  69.   end
  70.  
  71.  
  72.   def set_graphics(bust_graphics)
  73.     self.bitmap=Cache.busts(bust_graphics)
  74.   end
  75.  
  76.  
  77.  
  78.   def update
  79.     super
  80.     case @status
  81.     when :nothing
  82.       # Do Nothing
  83.     when :sliding_in
  84.       #Slide In
  85.       self.x+=12
  86.       if self.x>=0
  87.         self.x=0
  88.         @status=:slided_in
  89.       end
  90.  
  91.     when :sliding_out
  92.       self.x-=12
  93.       if self.x<= -self.bitmap.width
  94.         self.x= -self.bitmap.width
  95.         @status=:slided_out
  96.       end
  97.       #Slide Out
  98.     when :slided_in
  99.       #Slided in
  100.     when :slided_out
  101.       #Sliede out
  102.     end
  103.  
  104.   end
  105.  
  106.  
  107. end
  108.  
  109.  
  110.  
  111. class Game_Temp
  112.   attr_accessor   :bust_name
  113.   attr_accessor   :bust
  114.   attr_accessor   :have_bust
  115.   attr_accessor   :do_not_slide_out
  116.  
  117.   alias lbq_bust_shot_game_message_init initialize
  118.   def initialize
  119.     lbq_bust_shot_game_message_init
  120.     @bust_name=""
  121.     @bust=nil
  122.     @have_bust=false
  123.     @do_not_slide_out=false
  124.   end
  125.  
  126.  
  127.  
  128.  
  129. end
  130.  
  131. class Game_Message
  132.    #--------------------------------------------------------------------------
  133.   # ● 添加内容
  134.   #--------------------------------------------------------------------------
  135.   def add(text)
  136.     new_text=text.gsub(LBQ::Bust::SUB1[0],LBQ::Bust::SUB1[1])
  137.     new_text2=new_text.gsub(LBQ::Bust::SUB2[0],LBQ::Bust::SUB2[1])
  138.     if new_text2.include? LBQ::Bust::TEXT_FOR_NEXT
  139.       new_text2.delete!(LBQ::Bust::TEXT_FOR_NEXT)
  140.       $game_temp.do_not_slide_out=true
  141.     end
  142.  
  143.     if new_text2.include? LBQ::Bust::TEXT_FOR_END
  144.       new_text2.delete!(LBQ::Bust::TEXT_FOR_END)
  145.       $game_temp.do_not_slide_out=false
  146.     end
  147.     @texts.push(new_text2)
  148.   end
  149. end
  150.  
  151.  
  152. class Game_Interpreter
  153.   alias lbq_bust_shot_command_101 command_101
  154.   #--------------------------------------------------------------------------
  155.   # ● 显示文字
  156.   #--------------------------------------------------------------------------
  157.   def command_101
  158.     $game_temp.bust=nil
  159.       unless @params[0].empty?
  160.         if File.exist?("Graphics/#{LBQ::Bust::FOLDER}/#{@params[0]}_#{@params[1]}.png")
  161.           $game_temp.have_bust=true
  162.         else
  163.           $game_temp.have_bust=false
  164.           $game_temp.bust_name=""
  165.         end
  166.       end
  167.  
  168.     unless @params[3] == 2
  169.       $game_temp.have_bust=false
  170.     end
  171.  
  172.     if $game_temp.have_bust
  173.       $game_temp.bust_name="#{@params[0]}_#{@params[1]}"
  174.       $game_temp.bust=nil
  175.       $game_temp.bust=Sprite_Bust.new
  176.       $game_temp.bust.set_graphics($game_temp.bust_name)
  177.       $game_temp.bust.z=99999
  178.       unless $game_temp.do_not_slide_out
  179.         $game_temp.bust.set_pos
  180.         $game_temp.bust.slide_in
  181.       else
  182.         $game_temp.bust.set_pos(false)
  183.         $game_temp.bust.slide_in
  184.       end
  185.     end
  186.  
  187.     lbq_bust_shot_command_101
  188.     if $game_temp.have_bust
  189.         $game_temp.bust.slide_out
  190.         Fiber.yield until $game_temp.bust.status==:slided_out
  191.     end
  192.     $game_temp.have_bust=false
  193.     $game_temp.bust_name=""
  194.  
  195.   end
  196.  
  197.  
  198.   alias lbq_bust_int_update update
  199.   def update
  200.     lbq_bust_int_update
  201.     $game_temp.bust.update unless $game_temp.bust.nil?
  202.   end
  203.  
  204. end
  205.  
  206.  
  207. class Window_Message
  208.   #--------------------------------------------------------------------------
  209.   # ● 获取换行位置
  210.   #--------------------------------------------------------------------------
  211.   def new_line_x
  212.     # 如果有头像
  213.     unless $game_message.face_name.empty?
  214.       value=112
  215.       value=LBQ::Bust::INDENT unless $game_temp.bust_name.empty?
  216.     # 木有
  217.     else
  218.       value=0
  219.     end
  220.     return value
  221.   end
  222. end
  223.  
  224.  
  225. class Window_Message
  226.   #--------------------------------------------------------------------------
  227.   # ● 翻页处理
  228.   #--------------------------------------------------------------------------
  229.   def new_page(text, pos)
  230.     contents.clear
  231.     draw_face($game_message.face_name, $game_message.face_index, 0, 0) if $game_temp.bust_name.empty?
  232.     reset_font_settings
  233.     pos[:x] = new_line_x
  234.     pos[:y] = 0
  235.     pos[:new_x] = new_line_x
  236.     pos[:height] = calc_line_height(text)
  237.     clear_flags
  238.   end
  239. end


这个是喵呜喵5的显示名字脚本
RUBY 代码复制
  1. =begin
  2. ===============================================================================
  3.   对话显示姓名 By喵呜喵5
  4. ===============================================================================
  5.  
  6. 【说明】
  7.  
  8.   通过在对话开头加入
  9.  
  10.     \name[姓名]
  11.  
  12.   可以在对话中显示姓名
  13.  
  14.   ( \name[姓名] 的后面不需要换行,另外,请注意对话框高度太小时系统会强制翻页)
  15.  
  16. =end
  17. $m5script ||= {};$m5script[:M5Name20141004] = 20150627
  18. module M5Name20141004
  19. #==============================================================================
  20. #  设定部分
  21. #==============================================================================
  22.  
  23.   FONT = ["黑体"]
  24.  
  25.   # 姓名所使用的字体
  26.  
  27.   SIZE = 18
  28.  
  29.   # 姓名字体的大小
  30.  
  31.   VOCAB = "【%s】:"
  32.  
  33.   # 姓名的显示方式,%s 表示姓名的文字,
  34.   # 例如,默认的设置下,“\name[埃里克]”将在游戏中显示为“【埃里克】:”
  35.   # 不需要的话,直接填写一个 %s 就好
  36.  
  37.   COLOR = Color.new(0,0,0,255)
  38.  
  39.   # 姓名的颜色,四个数值分别是R、G、B以及透明度
  40.  
  41.   SET = [false,false,false,true]
  42.  
  43.   # 中括号中以逗号分隔开的单词分别设置姓名是否加粗、斜体、有阴影、加边框
  44.   # 需要的话填写true,不需要的话填写false
  45.  
  46.   OUT_COLOR = Color.new(255, 255, 255, 0)
  47.  
  48.   # 姓名边框的颜色,四个数值分别是R、G、B以及透明度
  49.  
  50.   ALIGN =  0
  51.  
  52.   # 姓名的对齐方式,0,1,2分别是居左、居中、居右
  53.  
  54.   NAME_X = 0
  55.  
  56.   # 姓名的X坐标,数值越大姓名位置越靠近屏幕右侧
  57.  
  58.   NAME_Y = 3
  59.  
  60.   # 姓名的Y坐标,数值越大姓名位置越靠近屏幕底部
  61.  
  62.   DISTANCE = 10
  63.  
  64.   # 对话与姓名的间距,数字越大间距越大
  65.  
  66.   BACK_Y = 0
  67.  
  68.   # 姓名背景的Y坐标,数值越大姓名位置越靠近屏幕底部
  69.  
  70.   BACK_HEIGHT = 6
  71.  
  72.   # 姓名背景的高度,数字越大高度越大
  73.  
  74.   COLOR1 = Color.new(255, 255, 255, 200)
  75.  
  76.   # 姓名的背景框左边的颜色,四个数值分别是R、G、B以及透明度
  77.  
  78.   COLOR2 = Color.new(255, 255, 255, 0)
  79.  
  80.   # 姓名的背景框右边的颜色,四个数值分别是R、G、B以及透明度
  81.   # 不需要背景的话,两个颜色的透明度都填0就好了
  82.  
  83. #==============================================================================
  84. #  设定结束
  85. #==============================================================================
  86. end
  87. class Window_Message
  88.   alias m5_20141004_convert_escape_characters convert_escape_characters
  89.   def convert_escape_characters *arg
  90.     @m5_name_20150304 = nil
  91.     result = m5_20141004_convert_escape_characters *arg
  92.     result.gsub!(/\eNAME\[(.+?)\]/i) { @m5_name_20150304 = $1; "" }
  93.     result
  94.   end
  95.   alias m5_20141004_draw_face draw_face
  96.   def draw_face *arg
  97.     if @m5_name_20150304
  98.       set = M5Name20141004      
  99.  
  100.       temp = Bitmap.new(self.width, self.height)
  101.       temp.font.name = set::FONT
  102.       temp.font.size = set::SIZE
  103.       temp.font.color = set::COLOR
  104.       temp.font.out_color = set::OUT_COLOR
  105.       temp.font.bold = set::SET[0]
  106.       temp.font.italic = set::SET[1]
  107.       temp.font.shadow = set::SET[2]
  108.       temp.font.outline = set::SET[3]
  109.  
  110.       @m5_name_20150304 = sprintf(set::VOCAB, @m5_name_20150304)
  111.       name_height = temp.text_size(@m5_name_20150304).height      
  112.       temp.draw_text(0, 0, temp.width - new_line_x, name_height,
  113.         @m5_name_20150304, set::ALIGN)
  114.       contents.gradient_fill_rect(0, set::BACK_Y,
  115.         self.width, name_height + set::BACK_HEIGHT, set::COLOR1, set::COLOR2)
  116.       contents.blt(new_line_x + set::NAME_X, set::NAME_Y, temp, temp.rect)
  117.  
  118.       temp.dispose
  119.       @m5_name_20150304 = name_height
  120.     end
  121.     m5_20141004_draw_face *arg
  122.   end
  123.   alias m5_20141004_new_page new_page
  124.   def new_page(text, pos)
  125.     m5_20141004_new_page(text, pos)
  126.     if @m5_name_20150304
  127.       pos[:y] += @m5_name_20150304 + M5Name20141004::DISTANCE
  128.       @m5_name_20150304 = nil
  129.     end
  130.   end
  131. end

冲突提示:

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

2
发表于 2017-8-7 13:58:14 | 只看该作者
更新了脚本,你看看是否还有问题
https://rpg.blue/home.php?mod=sp ... o=blog&id=11733

点评

可用!谢谢  发表于 2017-8-7 14:36
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 18:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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