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

Project1

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

即时消息脚本

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
4 小时
注册时间
2008-6-5
帖子
312
跳转到指定楼层
1
发表于 2009-6-12 08:00:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我今天使用即时消息脚本了这个脚本后!我发现文字显示太高了!想调整一下字体低一点!应该怎么调整!{/dk}
  1. #------------------制作by bluefool,转载请保留------------------
  2. module Blue
  3.   #这个是控制显示最近的多少条信息的,当超出一屏能显示的值的话可通过先按一下shift
  4.   #然后用上下翻看内容。再按一次shift则解除激活
  5.   Blue_max = 12
  6.   #这个填写进如游戏时生成的系统语言,
  7.   INTRO = "欢迎使用即时消息窗口,有什么建议可以联系bluefool,请从左至右依次运行事件体验功能."
  8.   #战斗画面时即时消息窗口的x坐标
  9.   BATAM_X = 0
  10.   #战斗画面时即时消息窗口的y坐标
  11.   BATAM_Y = 90
  12.   #用于清空hash表,可以不管它,但不要让Blue_max大于它,当然,它的值也可以改变
  13.   NAM_MAX = 50
  14.   #主要传递信息参数为函数$am,参见脚本内容
  15. end
  16. #-------------------------------------------
  17. class Scene_Load < Scene_File
  18.   #--------------------------------------------------------------------------
  19.   # ● 确定时的处理
  20.   #--------------------------------------------------------------------------
  21.   def on_decision(filename)
  22.     # 文件不存在的情况下
  23.     unless FileTest.exist?(filename)
  24.       # 演奏冻结 SE
  25.       $game_system.se_play($data_system.buzzer_se)
  26.       return
  27.     end
  28.     # 演奏读档 SE
  29.     $game_system.se_play($data_system.load_se)
  30.     # 写入存档数据
  31.     file = File.open(filename, "rb")
  32.     read_save_data(file)
  33.     file.close
  34.     # 还原 BGM、BGS
  35.     $game_system.bgm_play($game_system.playing_bgm)
  36.     $game_system.bgs_play($game_system.playing_bgs)
  37.     # 刷新地图 (执行并行事件)
  38.     $a = {}
  39.     $game_map.update
  40.     # 切换到地图画面
  41.     $scene = Scene_Map.new
  42.   end
  43. end  
  44. class Game_Player < Game_Character
  45.   def update
  46.     # 本地变量记录移动信息
  47.     last_moving = moving?
  48.     # 移动中、事件执行中、强制移动路线中、
  49.     # 信息窗口一个也不显示的时候
  50.     unless moving? or $game_system.map_interpreter.running? or
  51.            @move_route_forcing or $game_temp.message_window_showing or $ccc == 1
  52.       case Input.dir4
  53.       when 2
  54.         move_down
  55.       when 4
  56.         move_left
  57.       when 6
  58.         move_right
  59.       when 8
  60.         move_up
  61.       end
  62.     end
  63.     # 本地变量记忆坐标
  64.     last_real_x = @real_x
  65.     last_real_y = @real_y
  66.     super
  67.     # 角色向下移动、画面上的位置在中央下方的情况下
  68.     if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
  69.       # 画面向下卷动
  70.       $game_map.scroll_down(@real_y - last_real_y)
  71.     end
  72.     # 角色向左移动、画面上的位置在中央左方的情况下
  73.     if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
  74.       # 画面向左卷动
  75.       $game_map.scroll_left(last_real_x - @real_x)
  76.     end
  77.     # 角色向右移动、画面上的位置在中央右方的情况下
  78.     if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
  79.       # 画面向右卷动
  80.       $game_map.scroll_right(@real_x - last_real_x)
  81.     end
  82.     # 角色向上移动、画面上的位置在中央上方的情况下
  83.     if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
  84.       # 画面向上卷动
  85.       $game_map.scroll_up(last_real_y - @real_y)
  86.     end
  87.     # 不在移动中的情况下
  88.     unless moving?
  89.       # 上次主角移动中的情况
  90.       if last_moving
  91.         # 与同位置的事件接触就判定为事件启动
  92.         result = check_event_trigger_here([1,2])
  93.         # 没有可以启动的事件的情况下
  94.         if result == false
  95.           # 调试模式为 ON 并且按下 CTRL 键的情况下除外
  96.           unless $DEBUG and Input.press?(Input::CTRL)
  97.             # 遇敌计数下降
  98.             if @encounter_count > 0
  99.               @encounter_count -= 1
  100.             end
  101.           end
  102.         end
  103.       end
  104.       # 按下 C 键的情况下
  105.       if Input.trigger?(Input::C)
  106.         # 判定为同位置以及正面的事件启动
  107.         check_event_trigger_here([0])
  108.         check_event_trigger_there([0,1,2])
  109.       end
  110.     end
  111.   end
  112. end  
复制代码

此贴于 2008-12-21 13:28:48 被版主darkten提醒,请楼主看到后对本贴做出回应。
版务信息:版主帮忙结贴~

Lv1.梦旅人

梦石
0
星屑
60
在线时间
9 小时
注册时间
2006-9-7
帖子
303
2
发表于 2008-12-21 05:27:02 | 只看该作者


  即时消息脚本还有一个window_down ,在这里修改.

      super(0, 340, 330, 240)   这里修改相应的就行了.


  1. #==============================================================================
  2. # ■ Window_Down 【仿网游式即时消息系统】
  3. #------------------------------------------------------------------------------
  4. #   信息窗口。
  5. #==============================================================================

  6. class Window_Down < Window_Selectable
  7.   #--------------------------------------------------------------------------
  8.   # ● 定义实例变量
  9.   #--------------------------------------------------------------------------
  10.   attr_reader   :item_max
  11.   #--------------------------------------------------------------------------
  12.   # ● 初始化对像
  13.   #--------------------------------------------------------------------------
  14.   def initialize
  15.     super(0, 340, 330, 240)
  16.     @column_max = 1
  17.     self.opacity = 0
  18.     if $a != nil and $a.size < 21
  19.       self.index = $a.size/2
  20.       elsif $a != nil and $a.size > 20
  21.       self.index = 9
  22.     end  
  23.     refresh
  24.     self.active = false
  25.   end
  26.   #--------------------------------------------------------------------------
  27.   # ● 刷新
  28.   #--------------------------------------------------------------------------
  29.   def refresh
  30.     if self.contents != nil
  31.       self.contents.dispose
  32.       self.contents = nil
  33.     end
  34.     if $a != nil and $a.size < Blue::Blue_max + 1
  35.       @item_max = $a.size
  36.       elsif $a != nil and $a.size > Blue::Blue_max
  37.       @item_max = Blue::Blue_max
  38.     end  
  39.     if @item_max > 0
  40.       self.contents = Bitmap.new(width - 32, row_max * 16)
  41.       for i in 0...@item_max
  42.          draw_item(i)
  43.       end
  44.     end
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   # ● 描绘项目
  48.   #     index : 项目编号
  49.   #--------------------------------------------------------------------------
  50.   def draw_item(index)
  51.     if $a.size < Blue::Blue_max + 1
  52.       item = $a[index]
  53.     else
  54.       item = $a[index + $a.size - Blue::Blue_max]
  55.     end
  56.     x = 0
  57.     y = index * 16
  58.     self.contents.font.size = 14
  59.     self.contents.font.color = Color.new(-170,-170,-170,255)
  60.     self.contents.draw_text(x + 6, y + 1, self.contents.text_size(item).width, 16, item, 0)
  61.     self.contents.font.color = normal_color
  62.     self.contents.draw_text(x + 5, y, self.contents.text_size(item).width, 16, item, 0)
  63.   end
  64.   #--------------------------------------
  65.   #  ● 刷新光标
  66.   #--------------------------------------
  67.   def update_cursor_rect
  68.     # 光标位置不满 0 的情况下
  69.     if @index < 0
  70.       self.cursor_rect.empty
  71.       return
  72.     end
  73.     # 获取当前的行
  74.     row = @index / @column_max
  75.     # 当前行被显示开头行前面的情况下
  76.     if row < self.top_row
  77.       # 从当前行向开头行滚动
  78.       self.top_row = row
  79.     end
  80.     # 当前行被显示末尾行之后的情况下
  81.     if row > self.top_row + (self.page_row_max - 1)
  82.       # 从当前行向末尾滚动
  83.       self.top_row = row - (self.page_row_max - 1)
  84.     end
  85.     # 计算光标的宽
  86.     cursor_width = self.width / @column_max - 32
  87.     cursor_width = 0
  88.     # 计算光标坐标
  89.     x = @index % @column_max * (cursor_width + 32)
  90.     y = @index / @column_max * 32 - self.oy
  91.     # 更新国标矩形
  92.     self.cursor_rect.set(x, y, cursor_width, 16)
  93.   end
  94. end
复制代码

系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~
十年磨一剑,蓦然回首,年华如水,青春如歌。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-12 12:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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