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

Project1

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

[已经解决] 求各位大大帮忙完善个脚本!

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2013-9-7
帖子
12
跳转到指定楼层
1
发表于 2013-9-7 20:28:19 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
http://rpg.blue/forum.php?mod=viewthread&tid=322633
这个地址的脚本,有一个BUG,每重复一次对话,然后头像下面的名字就缩小一个字节!
神马情况,求解决!!!!!谢谢各位大大了!

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2013-9-7
帖子
12
2
 楼主| 发表于 2013-9-7 20:36:25 | 只看该作者
而且左右变化也变回来了!!求解决啊!
在线等大神解答!

无标题.png (220.94 KB, 下载次数: 38)

无标题.png
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

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

开拓者短篇九导演组冠军

3
发表于 2013-9-7 21:13:50 | 只看该作者
本帖最后由 喵呜喵5 于 2013-9-8 13:38 编辑

RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Message_Advanced
  4. #------------------------------------------------------------------------------
  5. #   使对话框略微美观一点
  6. #   调用方式:在对话内容的第一行输入“l/r”+“对话者姓名”
  7. #   l和r表示头像在左边或者右边显示,对话者姓名显示在头像下方
  8. #   第一行输入“no”则为取消使用
  9. #==============================================================================
  10.  
  11. class Game_Message
  12.   #--------------------------------------------------------------------------
  13.   # ● 定义实例变量
  14.   #--------------------------------------------------------------------------
  15.   attr_reader   :talker_name              # 说话者姓名
  16.   attr_reader   :talker_mirror            # 是否镜象显示
  17.   #--------------------------------------------------------------------------
  18.   # ● 清除
  19.   #--------------------------------------------------------------------------
  20.   def clear
  21.     @texts = []
  22.     @choices = []
  23.     # 初始化
  24.     @talker_name = ""
  25.     @talker_mirror = false
  26.     @face_name = ""
  27.     @face_index = 0
  28.     @background = 0
  29.     @position = 2
  30.     @choice_cancel_type = 0
  31.     @choice_proc = nil
  32.     @num_input_variable_id = 0
  33.     @num_input_digits_max = 0
  34.     @item_choice_variable_id = 0
  35.     @scroll_mode = false
  36.     @scroll_speed = 2
  37.     @scroll_no_fast = false
  38.   end
  39.   #--------------------------------------------------------------------------
  40.   # ● 获取包括换行符的所有内容
  41.   #--------------------------------------------------------------------------
  42.   def all_text
  43.     if @texts.size > 1
  44.     # 取出第一个字符        
  45.       ch = texts[0].slice(0, 1)
  46.       if ch == "l" or ch=="r"
  47.         # 当右侧显示头像时设置mirror标志
  48.         @talker_mirror = true if ch == "r"
  49.         @talker_name = "[" + texts[0].slice(1,@texts[0].size - 1) + "]"
  50.         # 删除第一行控制内容
  51.         @texts.delete_at(0)        
  52.       end
  53.     end
  54.     @texts.inject("") {|r, text| r += text + "\n" }
  55.   end
  56. end
  57.  
  58.  
  59. class Window_Message < Window_Base
  60.   #--------------------------------------------------------------------------
  61.   # ● 处理纤程的主逻辑
  62.   #--------------------------------------------------------------------------
  63.   def fiber_main
  64.     $game_message.visible = true
  65.     update_background
  66.     update_placement
  67.     loop do
  68.       # 生成显示精灵
  69.       @face_sprite = Sprite.new
  70.       @name_sprite = Sprite.new
  71.       process_all_text if $game_message.has_text?
  72.       process_input
  73.       # 将显示精灵释放
  74.       @face_sprite.dispose
  75.       @name_sprite.dispose
  76.       $game_message.clear
  77.       @gold_window.close
  78.       Fiber.yield
  79.       break unless text_continue?
  80.     end
  81.     close_and_wait
  82.     $game_message.visible = false
  83.     @fiber = nil
  84.   end
  85.   #--------------------------------------------------------------------------
  86.   # ● 翻页处理
  87.   #--------------------------------------------------------------------------
  88.   def new_page(text, pos)
  89.     contents.clear
  90.     if !$game_message.talker_name.empty?
  91.       # 判断左右侧显示
  92.       if $game_message.talker_mirror      
  93.         draw_face_right($game_message.face_name,$game_message.face_index)
  94.         draw_name_right($game_message.talker_name)
  95.       else
  96.         draw_face_left($game_message.face_name,$game_message.face_index)
  97.         draw_name_left($game_message.talker_name)
  98.       end
  99.     else
  100.       draw_face($game_message.face_name, $game_message.face_index, 0, 0)
  101.     end
  102.     reset_font_settings
  103.     pos[:x] = new_line_x
  104.     pos[:y] = 0
  105.     pos[:new_x] = new_line_x
  106.     pos[:height] = calc_line_height(text)
  107.     clear_flags
  108.   end
  109.   #--------------------------------------------------------------------------
  110.   # ● 显示说话者脸图(左)
  111.   #--------------------------------------------------------------------------
  112.   def draw_face_left(face_name, face_index)
  113.     # 取出图片
  114.     source = Cache.face(face_name)
  115.     # 找到脸图位置
  116.     rect = Rect.new(face_index % 4 * 96, face_index / 4 * 96, 96, 96)
  117.     bitmap = Bitmap.new(96, 96)
  118.     # 复制到bitmap中
  119.     bitmap.blt(0, 0, source, rect)
  120.     # 计算精灵位置并显示
  121.     @face_sprite.x = standard_padding
  122.     @face_sprite.y = Graphics.height - 96 - standard_padding - line_height
  123.     @face_sprite.z = 1000
  124.     @face_sprite.bitmap = bitmap
  125.   end
  126.   #--------------------------------------------------------------------------
  127.   # ● 显示说话者脸图(右)
  128.   #--------------------------------------------------------------------------
  129.   def draw_face_right(face_name, face_index)
  130.     source = Cache.face(face_name)
  131.     rect = Rect.new(face_index % 4 * 96, face_index / 4 * 96, 96, 96)
  132.     bitmap = Bitmap.new(96, 96)
  133.     bitmap.blt(0, 0, source, rect)
  134.     @face_sprite.x = Graphics.width - 96 - standard_padding
  135.     @face_sprite.y = Graphics.height - 96 - standard_padding - line_height
  136.     @face_sprite.z = 1000
  137.     # 设置为右侧显示
  138.     @face_sprite.mirror = true
  139.     @face_sprite.bitmap = bitmap
  140.   end
  141.   #--------------------------------------------------------------------------
  142.   # ● 显示说话者姓名图(左)
  143.   #--------------------------------------------------------------------------
  144.   def draw_name_left(talker_name)
  145.     bitmap = Bitmap.new(96, line_height)
  146.     # 描绘姓名图像
  147.     bitmap.draw_text(bitmap.rect, talker_name, 1)
  148.     # 计算精灵位置并显示
  149.     @name_sprite.x = standard_padding
  150.     @name_sprite.y = Graphics.height - standard_padding - line_height
  151.     @name_sprite.z = 1000
  152.     @name_sprite.bitmap = bitmap
  153.   end
  154.   #--------------------------------------------------------------------------
  155.   # ● 显示说话者姓名图(右)
  156.   #--------------------------------------------------------------------------
  157.   def draw_name_right(talker_name)
  158.     bitmap = Bitmap.new(96, line_height)
  159.     bitmap.draw_text(bitmap.rect, talker_name, 1)
  160.     @name_sprite.x = Graphics.width - 96 - standard_padding
  161.     @name_sprite.y = Graphics.height - standard_padding - line_height
  162.     @name_sprite.z = 1000
  163.     @name_sprite.bitmap = bitmap
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   # ● 获取换行位置
  167.   #--------------------------------------------------------------------------
  168.   def new_line_x
  169.     if !$game_message.talker_mirror
  170.       return $game_message.face_name.empty? ? 0 : 112
  171.     # 右侧显示时,换行显示位置为行首
  172.     else
  173.       return 0
  174.     end
  175.   end
  176. end


顺便给自己的姓名显示脚本打广告:http://rpg.blue/home.php?mod=spa ... o=blog&id=11733

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2013-9-7
帖子
12
4
 楼主| 发表于 2013-9-7 21:26:27 | 只看该作者
喵呜喵5 发表于 2013-9-7 21:13
#encoding:utf-8
#==============================================================================
# ■ ...

可是这样名字只能显示两个字..为什么额...

点评

再次修改脚本,现在可以显示更多字同时也可以显示中括号了  发表于 2013-9-7 22:00
稍微修改了一下,现在可以显示更多字了,不过姓名左右的中括号没了……  发表于 2013-9-7 21:48
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2013-9-7
帖子
12
5
 楼主| 发表于 2013-9-7 21:53:15 | 只看该作者
喵呜喵5 发表于 2013-9-7 21:13
#encoding:utf-8
#==============================================================================
# ■ ...

完美解决了!没有括号还好点!
膜拜大神啊能留个联系方式么?以后有问题请教下,我最近才开始做游戏,到你的空间觉得好多脚本很好啊!

点评

有问题可以直接在这个提问区询问,很多人大大都会帮助你的,当然如果看到我会的问题我也会回答的  发表于 2013-9-7 21:55
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2013-9-7
帖子
12
6
 楼主| 发表于 2013-9-7 22:01:16 | 只看该作者
喵呜喵5 发表于 2013-9-7 21:13
#encoding:utf-8
#==============================================================================
# ■ ...

刚才发现,VA上面好多注释和对话都会溢出对话框怎么办!换行的话就输入不完全了/..
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

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

开拓者短篇九导演组冠军

7
发表于 2013-9-7 22:10:13 | 只看该作者
373484107 发表于 2013-9-7 22:01
刚才发现,VA上面好多注释和对话都会溢出对话框怎么办!换行的话就输入不完全了/.. ...

注释和对话溢出对话框?什么意思?脚本编辑器的大小超过屏幕了?


………………如果你没有基础的Ruby语言知识你就默默忍着吧
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2013-9-7
帖子
12
8
 楼主| 发表于 2013-9-7 22:22:03 | 只看该作者
喵呜喵5 发表于 2013-9-7 22:10
注释和对话溢出对话框?什么意思?脚本编辑器的大小超过屏幕了?

像这个图的,本来好多Q的..结果很多都溢出了,看不到,字体太大了?

无标题.png (182 KB, 下载次数: 40)

无标题.png

点评

http://bbs.66rpg.com/home.php?mod=space&uid=291206&do=blog&id=11571  发表于 2013-9-7 22:23
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2013-9-7
帖子
12
9
 楼主| 发表于 2013-9-7 22:30:34 | 只看该作者
喵呜喵5 发表于 2013-9-7 22:10
注释和对话溢出对话框?什么意思?脚本编辑器的大小超过屏幕了?

谢谢,你可是帮了大忙了。感谢!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2013-9-7
帖子
12
10
 楼主| 发表于 2013-9-8 12:09:46 | 只看该作者
喵呜喵5 发表于 2013-9-7 22:10
注释和对话溢出对话框?什么意思?脚本编辑器的大小超过屏幕了?

这脚本在战斗的时候,出现写着“未定义'的对话框!怎么办?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 23:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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