查看: 1434|回复: 4

[已经过期] 小白提问:关于小小的针对脚本处理后,好卡卡!什么原...

[复制链接]
梦石
0
星屑
55
在线时间
108 小时
注册时间
2015-2-9
回帖
10
发表于 2015-3-5 23:43:22 | 显示全部楼层 |阅读模式

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

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

×
[pre lang="ruby"]#==============================================================================
# ■ 地图显示变量
#  作者:影月千秋
#  版本:V 1.0
#  最近更新:2014.02.08
#  适用:VA
#------------------------------------------------------------------------------
# ● 简介
#  在地图上显示变量,可以附加文字
#==============================================================================
# ● 使用方法
#   将此脚本插入到其他脚本以下,Main以上,在下方进行设置即可
#==============================================================================
# ● 更新
#   V 1.0 2014.02.08 新建
#==============================================================================
# ● 声明
#   本脚本来自【影月千秋】,使用、修改和转载请保留此信息
#==============================================================================


#==============================================================================
# ■ Smomo::VarWin
#==============================================================================
module Smomo
  module VarWin
    SWI = 100
    # 当此开关打开 才会显示变量
    # 如果想要一直显示 就设为0
   
    Var = [
    # 变量和显示方式
    #·填写方式
    # [[横坐标, 纵坐标], "显示模板", [需要显示的变量ID], 可省略{窗口背景是否可见}]
    # 最后一项如果省略 默认可见
    #  横纵坐标是显示位置左上角的坐标
    #  显示模板是sprintf使用的格式化字符串,对于不懂脚本的人:
    #    使用【%s】来代替变量,使用【%02d】控制变量格式
    #    看不懂的话 下面有例子
    #  需要显示的变量形如【[3,9,10]】依次显示三个变量
    #
    #·例子
    # 先假设1号变量的值为 19,2号为 4
    # 下面两个例子省略前后两个项目 但是实际操作时前面一个必须填写
    # "苹果有%s个, 香蕉有%s个",[1,2]
    #  显示为:苹果有19个, 香蕉有4个
    # "现在是%02d分%02d秒",[1,2]
    #  显示为:现在是19分04秒
    #
    #·特别说明
    # 显示模板中 允许使用跳脱字符和对话框用的控制符 但是控制符需要多些一个\
    #  比如\I[9]绘制九号图标 写成 \\I[9]
    # 换行符之类跳脱字符 原样写即可
    #  比如 \n 还是 \n
   
    # 模板 ↓  复制下面一行(或第二行) 填写后按Ctrl + Q即可生效
#~     [[0,0], "%04d.%02d.%02d", [1,2,3], false],
#~     [[0,0], "口袋上有%s个洞", [4]],

      [[0,0], "   杨老邪   ", [1]],
      [[0,42],"疲劳:【%s】\n饥饿:【%s】\n心情:【%s】\n内需:【    】\n         \n         \n         \n         \n         \n         \n         ",[3000,2999,2998,2997]],
      [[0,140],"————————\n头部:【%s】\n身躯:【%s】\n左臂:【%s】\n右臂:【%s】\n左腿:【%s】\n右腿:【%s】",[2997,2996,2995,2994,2993,2992],false],
      [[135,0], "   冷泉策   ", [1]],
      [[135,42],"疲劳:【%s】\n饥饿:【%s】\n心情:【%s】\n内需:【    】\n         \n         \n         \n         \n         \n         \n         ",[3000,2999,2998,2997]],
      [[135,140],"————————\n头部:【%s】\n身躯:【%s】\n左臂:【%s】\n右臂:【%s】\n左腿:【%s】\n右腿:【%s】",[2997,2996,2995,2994,2993,2992],false],
      [[270,0], "   蛇 傅   ", [1]],
      [[270,42],"疲劳:【%s】\n饥饿:【%s】\n心情:【%s】\n内需:【    】\n         \n         \n         \n         \n         \n         \n         ",[3000,2999,2998,2997]],
      [[270,140],"————————\n头部:【%s】\n身躯:【%s】\n左臂:【%s】\n右臂:【%s】\n左腿:【%s】\n右腿:【%s】",[2997,2996,2995,2994,2993,2992],false],
      [[405,0], "   剑玲珑   ", [1]],
      [[405,42],"疲劳:【%s】\n饥饿:【%s】\n心情:【%s】\n内需:【    】\n         \n         \n         \n         \n         \n         \n         ",[3000,2999,2998,2997]],
      [[405,140],"————————\n头部:【%s】\n身躯:【%s】\n左臂:【%s】\n右臂:【%s】\n左腿:【%s】\n右腿:【%s】",[2997,2996,2995,2994,2993,2992],false],
      [[0,325], "                                     \n                                     \n                                     ", [1]],
      [[0,325], "   狗 头   ", [1]],
      [[0,370], "心情:【%s】", [3000], false],
      [[135,325],"疲劳:【    】 饥饿:【    】 内需:【    】\n头部:【    】 身躯:【    】 左臂:【    】\n右臂:【    】 左腿:【    】 右腿:【    】",[3000,2999,2998,2997,2996,2995,2994,2993,2992],false],
#=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+#
#------------------------------------------------------------------------------#
#                               请勿跨过这块区域                                #
#------------------------------------------------------------------------------#
#+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=#
      "close the array"
    ] # close the array
    Var.pop
    Var.each_with_index{|v, i| Var[3] = true if v[3].nil?}
  end
end
#==============================================================================
# ■ Window_MoVarShow
#==============================================================================
class Window_MoVarShow < Window_Base
  #--------------------------------------------------------------------------
  # ● 初始化
  #--------------------------------------------------------------------------
  def initialize(x, y, opa, fmt, *varid)
    @fmt = fmt
    @varid = varid
    @vars = []
    @varid.each_with_index{|id, index| @vars[index] = $game_variables[id]}
    super(x, y, *window_size)
    self.openness = 0
    self.opacity = opa ? 255 : 0
    refresh
  end
  #--------------------------------------------------------------------------
  # ● 获取窗口合适的大小
  #--------------------------------------------------------------------------
  def window_size
    temp_win = Window_Base.new(Graphics.width, 0, Graphics.width, 1)
    temp_win.reset_font_settings
    sr = temp_win.convert_escape_characters(sprintf(@fmt, *@vars))
    wd = 0
    pos = {:x =>0, :y =>0, :new_x =>0, :height => temp_win.calc_line_height(sr)}
    sr.each_line do |s|
      s.gsub!(/[\n]/){""}
      temp_win.process_character(s.slice!(0, 1), s, pos) until s.empty?
      wd = [pos[:x], wd].max
      pos[:x] = pos[:new_x]
      pos[:y] += pos[:height]
      pos[:height] = temp_win.calc_line_height(s)
    end
    temp_win.dispose
    [wd + standard_padding * 2, pos[:y] + standard_padding * 2]
  end
  #--------------------------------------------------------------------------
  # ● 更新
  #--------------------------------------------------------------------------
  def update
    super
    if Smomo::VarWin::SWI == 0 || $game_switches[Smomo::VarWin::SWI]
      open if close?
      refresh if $game_map.need_refresh
    else
      close if open?
    end
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    @varid.each_with_index{|id, index| @vars[index] = $game_variables[id]}
    self.move(self.x, self.y, *window_size)
    draw_text_ex(0, 0, sprintf(@fmt, *@vars))
  end
end
#==============================================================================
# ■ Scene_Map
#==============================================================================
class Scene_Map
  #--------------------------------------------------------------------------
  # ● 生成所有窗口
  #--------------------------------------------------------------------------
  alias :mo_241e43c6451d79ce81a94bc0b22c3ea5_caw :create_all_windows
  def create_all_windows
    mo_241e43c6451d79ce81a94bc0b22c3ea5_caw
    create_mo_var_show_window
  end
  #--------------------------------------------------------------------------
  # ● 生成变量窗口
  #--------------------------------------------------------------------------
  def create_mo_var_show_window
    @mo_var_show_window = []
    Smomo::VarWin::Var.each_with_index do |((x, y), fmt, vars, opa), id|
      @mo_var_show_window[id] = Window_MoVarShow.new(x, y, opa, fmt, *vars)
    end
  end
  #--------------------------------------------------------------------------
  # ● 更新画面
  #--------------------------------------------------------------------------
  alias :mo_241e43c6451d79ce81a94bc0b22c3ea5_update :update
  def update
    update_mo_var_show_window
    mo_241e43c6451d79ce81a94bc0b22c3ea5_update 
  end
  #--------------------------------------------------------------------------
  # ● 更新变量窗口
  #--------------------------------------------------------------------------
  def update_mo_var_show_window
    @mo_var_show_window.each{|win| win.update}
  end
end[/pre]


@三途亚梦
@VIPArcher

坐等大神调教。

梦石
1
星屑
23246
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2015-3-5 23:47:33 | 显示全部楼层
什么叫小小的针对脚本处理……?

点评

60——75这段  发表于 2015-3-6 20:22
你改了哪些地方?  发表于 2015-3-6 18:30
就是改成自己需要的后。  发表于 2015-3-6 16:39
回复

使用道具 举报

梦石
0
星屑
55
在线时间
108 小时
注册时间
2015-2-9
回帖
10
 楼主| 发表于 2015-3-7 12:29:07 | 显示全部楼层
@三途亚梦
@VIPArcher
@喵呜喵5

坐等大猫= =。
回复

使用道具 举报

闇吼者の災悪眷族

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
回帖
6408
发表于 2015-3-7 13:48:24 | 显示全部楼层
这个脚本你要这么用的话不卡爆大概都太不可能……
如果你要这么做到理想效果建议你学习下脚本,图书馆就有教你在地图上描绘窗口。
回复

使用道具 举报

梦石
0
星屑
55
在线时间
108 小时
注册时间
2015-2-9
回帖
10
 楼主| 发表于 2015-3-7 21:33:17 | 显示全部楼层
三途亚梦 发表于 2015-3-7 13:48
这个脚本你要这么用的话不卡爆大概都太不可能……
如果你要这么做到理想效果建议你学习下脚本,图 ...

谢谢,但是图书馆的东西有些没有教。
= =。

点评

窗口什么的,可以自己研究默认脚本  发表于 2015-3-7 21:44
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部