Project1

标题: 用变量控制的·完美日夜系统V0.90 [打印本页]

作者: 牛肉面    时间: 2010-9-29 21:47
标题: 用变量控制的·完美日夜系统V0.90
本帖最后由 牛肉面 于 2010-9-29 22:34 编辑

此脚本原型是地图显示变量,被我改造成了变量控制的日夜系统:)

脚本功能:
日夜变化,1-24时的明暗效果,可在脚本中设置使用明暗效果的地图ID
分,时,年,月,日,星期,四季:全变量控制,可自行改变分的增进速度,各个单位的进制
并且可以随时调整分,时,年,月,日,星期,四季的数值。
可以控制脚本是否开启,窗口背景是否显示。
只有在地图时间才会流逝,并且对话时时间也不会流逝!

脚本在范例工程之中!此脚本请配合本人的工程使用。

完美日夜系统BY牛肉面.rar (2.68 MB, 下载次数: 1347)

我在66找了不少日夜系统,不是计算公式不能改就是没有明暗,要不就是不能自由控制……
这回终于做了个任意控制的了!这也是我做的第一个脚本吧!(在原基础上学习制作)
  1. #==============================================================================
  2. #  变量控制完美时间天气系统 V0.90   整合与重制作:牛肉面  
  3. #  原地图显变量脚本来自66rpg
  4. #  请使用本人配套范例工程
  5. #==============================================================================
  6. VAR_SWITCH = 5          # 工作开关
  7. VAR_REFRESH_SWITCH = 6  # 强制刷新
  8. COLOURMAPID = [1,3]       # 使用天气明暗效果的地图ID
  9. #1、把窗口由透明变为不透明(包括第一次使用时),2、游戏中用脚本更改了$var

  10. $var = []
  11. $var = [[2,20,0],[1,70,0],[6,130,0],[5,210,0],[3,260,0]]
  12. #所有需要显示在地图并且刷新的变量,可在游戏中用脚本更改。
  13. #格式:[变量编号,x坐标,y坐标]

  14. #==============================================================================
  15. # ■ Window_XY
  16. #------------------------------------------------------------------------------
  17. #  显示坐标的窗口。
  18. #==============================================================================
  19. class Window_MapVar < Window_Base #注意前面那个window_var是文件名
  20. #--------------------------------------------------------------------------
  21. # ● 初始化窗口
  22. #--------------------------------------------------------------------------
  23. def initialize
  24. #=======================此处可任意调整窗口位置
  25.   super(0,0,640,64)



  26. #   窗口内容的不透明度
  27.     self.contents_opacity=255
  28.     self.contents = Bitmap.new(width - 32, height - 32)
  29.     self.z=9999
  30.   #=======================
  31.   @var_value_old = -1
  32.   @var = $var
  33.   @var_a = []
  34.   for var_draw in $var
  35.     @var_a[var_draw[0]] = $game_variables[var_draw[0]]
  36.   end   
  37.   refresh
  38. end

  39. #--------------------------------------------------------------------------
  40. # ● 刷新
  41. #--------------------------------------------------------------------------
  42. def refresh
  43.   if $game_switches[VAR_SWITCH]
  44.     @var = $var         # 记录现在变量数组结构
  45.     self.contents.clear # 清除以前的东西
  46.     for var_draw in @var
  47.       @var_a[var_draw[0]] = $game_variables[var_draw[0]] # 记录现在的游戏变量
  48.       self.contents.draw_text(var_draw[1],var_draw[2],640,32,@var_a[var_draw[0]].to_s)
  49.       self.contents.draw_text(45, 0, 32, 32, '时')
  50.       self.contents.draw_text(95, 0, 32, 32, '分')
  51.       self.contents.draw_text(185, 0, 32, 32, '年')
  52.       self.contents.draw_text(235, 0, 32, 32, '月')
  53.       self.contents.draw_text(285, 0, 32, 32, '日')
  54.       #self.contents.draw_text(330, 0, 64, 32, '星期')
  55.       @game_variables = $game_variables
  56.        case @game_variables[20]# 控制窗口背景变量 1显示0消失
  57.   when 1
  58.     self.opacity=150  # 窗口的不透明度   
  59.     self.back_opacity=150 # 窗口背景的不透明度
  60.   when 0
  61.     self.opacity=0
  62.     self.back_opacity=0
  63.    end
  64.       case @game_variables[4]
  65.       when 1
  66.        self.contents.draw_text(330, 0, 96, 32, '星期一')  
  67.       when 2
  68.        self.contents.draw_text(330, 0, 96, 32, '星期二')  
  69.       when 3
  70.        self.contents.draw_text(330, 0, 96, 32, '星期三')  
  71.       when 4
  72.        self.contents.draw_text(330, 0, 96, 32, '星期四')  
  73.       when 5
  74.        self.contents.draw_text(330, 0, 96, 32, '星期五')  
  75.       when 6
  76.        self.contents.draw_text(330, 0, 96, 32, '星期六')  
  77.       when 7
  78.        self.contents.draw_text(330, 0, 96, 32, '星期日')  
  79.      else
  80.        self.contents.draw_text(330, 0, 96, 32, '星期日')
  81.      end
  82.      case @game_variables[7]
  83.       when 1
  84.        self.contents.draw_text(420, 0, 64, 32, '春季')  
  85.       when 2
  86.        self.contents.draw_text(420, 0, 64, 32, '夏天')  
  87.       when 3
  88.        self.contents.draw_text(420, 0, 64, 32, '秋日')  
  89.       when 4
  90.        self.contents.draw_text(420, 0, 64, 32, '寒冬')
  91.      end
  92.      @game_switches = $game_switches
  93.       if COLOURMAPID.include?($game_map.map_id)
  94.         #@game_switches[4]

  95.        case @game_variables[2]
  96.       when 1
  97.          $game_screen.start_tone_change(Tone.new(-136,-136,-85,34),5)
  98.       when 2
  99.          $game_screen.start_tone_change(Tone.new(-102,-102,-68,17),5)
  100.       when 3
  101.          $game_screen.start_tone_change(Tone.new(-102,-102,-68,17),5)
  102.       when 4
  103.          $game_screen.start_tone_change(Tone.new(-51,-51,-85,0),5)
  104.       when 5
  105.          $game_screen.start_tone_change(Tone.new(-51,-51,-85,0),5)
  106.       when 6
  107.          $game_screen.start_tone_change(Tone.new(-17,-17,-51,0),5)
  108.       when 7
  109.          $game_screen.start_tone_change(Tone.new(-17,-17,-51,0),5)
  110.       when 8
  111.          $game_screen.start_tone_change(Tone.new(0,0,0,0),5)      
  112.       when 9
  113.          $game_screen.start_tone_change(Tone.new(0,0,0,0),5)      
  114.       when 10
  115.          $game_screen.start_tone_change(Tone.new(0,0,0,0),5)      
  116.       when 11
  117.          $game_screen.start_tone_change(Tone.new(34,34,0,0),5)      
  118.       when 12
  119.          $game_screen.start_tone_change(Tone.new(34,34,0,0),5)      
  120.       when 13
  121.          $game_screen.start_tone_change(Tone.new(34,34,0,0),5)      
  122.       when 14
  123.          $game_screen.start_tone_change(Tone.new(17,17,0,0),5)            
  124.       when 15
  125.          $game_screen.start_tone_change(Tone.new(17,17,0,0),5)      
  126.       when 16
  127.          $game_screen.start_tone_change(Tone.new(17,17,0,0),5)      
  128.       when 17
  129.          $game_screen.start_tone_change(Tone.new(-17,-34,-68,0),5)            
  130.       when 18
  131.          $game_screen.start_tone_change(Tone.new(-17,-34,-68,0),5)        
  132.       when 19
  133.          $game_screen.start_tone_change(Tone.new(-102,-102,-68,17),5)      
  134.       when 20
  135.          $game_screen.start_tone_change(Tone.new(-102,-102,-68,17),5)      
  136.       when 21
  137.          $game_screen.start_tone_change(Tone.new(-102,-102,-68,17),5)         
  138.       when 22
  139.          $game_screen.start_tone_change(Tone.new(-136,-136,-85,34),5)      
  140.       when 23
  141.          $game_screen.start_tone_change(Tone.new(-136,-136,-85,34),5)      
  142.       when 0
  143.          $game_screen.start_tone_change(Tone.new(-136,-136,-85,34),5)
  144.        end
  145.         else
  146.      $game_screen.start_tone_change(Tone.new(0,0,0,0),5)
  147.       
  148.     end
  149.    end
  150.   end
  151. end
  152. #--------------------------------------------------------------------------
  153. # ● 判断文字刷新。节约内存用
  154. #--------------------------------------------------------------------------
  155. def judge
  156.   for var_draw in $var
  157.     if @var_a[var_draw[0]] != $game_variables[var_draw[0]] #如果现在记录的变量和游戏变量不同,刷新
  158.       return true
  159.     end
  160.   end
  161.   if $game_switches[VAR_REFRESH_SWITCH]  # 强制刷新的时候,刷新
  162.     $game_switches[VAR_REFRESH_SWITCH] = false
  163.     return true
  164.   end
  165.   return false
  166.   end
  167. end
  168. class Scene_Map
  169. alias var_66rpg_main main
  170. def main
  171.   @var_window = Window_MapVar.new
  172. #  @var_window.opacity = 0
  173.   var_66rpg_main
  174.   @var_window.dispose
  175. end
  176. #--------------------------------------------------------------------------
  177. # ● 刷新画面
  178. #--------------------------------------------------------------------------
  179. alias var_66rpg_update update
  180. def update
  181.   var_66rpg_update
  182.   if $game_switches[VAR_SWITCH]
  183.     @var_window.visible = true      
  184.     @var_window.refresh
  185.     #if @var_window.judge
  186.   else
  187.     @var_window.visible = false
  188.   end
  189. end
  190. end
复制代码
此脚本不能直接外挂
作者: a360015305    时间: 2010-9-29 21:53
我下来看看用的着不
作者: 牛肉面    时间: 2010-9-29 21:57
是事件控制的。。脚本设置好后你可以完全不用管了。事件控制就好
作者: bbaugle    时间: 2010-9-29 22:08
LZ发错区
作者: 某人454    时间: 2010-9-29 22:09
发错区,请版主转移
作者: 啊海    时间: 2010-9-29 22:32
本帖最后由 啊海 于 2010-9-30 02:12 编辑

牛肉面 好像 有点卡
作者: 牛肉面    时间: 2010-9-30 13:55
我是个脚本新手……怎样才能设置过几帧refresh?或者有变动时refresh
我用着不卡呀……
38-40fps左右……
作者: 牛肉面    时间: 2010-9-30 20:15
算是吧……原版是地图显示变量。我在他的原理上改造的
作者: 帮帮比尔吧    时间: 2010-10-1 13:16
提示: 作者被禁止或删除 内容自动屏蔽
作者: 牛肉面    时间: 2010-10-30 23:14
为什么我吧JUDGE弄出来窗口就消失了?
作者: 黑崎一护    时间: 2010-11-2 20:02
脚本完全看不懂,不过发现问题时会发信息给楼主。
作者: 菜鸟飞呀飞    时间: 2010-11-2 23:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: 火ZHI意志    时间: 2010-11-6 22:59
…………这个我都做过一个…………
作者: 凸豆包    时间: 2010-12-13 10:28
用了以后游戏卡的厉害呢--By Highfan!3.0
作者: 姬文翔    时间: 2010-12-21 02:39
不错的东西啊!




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1