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

Project1

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

[原创发布] 用变量控制的·完美日夜系统V0.90

[复制链接]

Lv2.观梦者 (版主)

脚本白痴

梦石
0
星屑
412
在线时间
902 小时
注册时间
2007-7-9
帖子
1403
跳转到指定楼层
1
发表于 2010-9-29 21:47:28 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 牛肉面 于 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
复制代码
此脚本不能直接外挂

点评

每一帧都调用Window_MapVar的refresh会很卡的,看能不能优化一下,refresh内容不要这么多或者隔几帧调用一次又或者有变化了再调用  发表于 2010-9-30 03:23
完全用不着..我以为是事件控制..没想到又是脚步唉..  发表于 2010-9-29 21:56

评分

参与人数 1星屑 +300 收起 理由
后知后觉 + 300 继续加油吧.优化一下会更好.鼓励I ...

查看全部评分


正统向RPG-大雄的高井山奇谈
https://rpg.blue/thread-369758-1-1.html
哆啦A梦RTP风格素材
https://rpg.blue/forum.php?mod=viewthread&tid=394608

Lv2.观梦者

梦石
0
星屑
301
在线时间
573 小时
注册时间
2005-10-27
帖子
1164
15
发表于 2010-12-21 02:39:04 | 只看该作者
不错的东西啊!
认真地猥琐,猥琐地认真
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
320
在线时间
7 小时
注册时间
2010-12-12
帖子
3
14
发表于 2010-12-13 10:28:28 | 只看该作者
用了以后游戏卡的厉害呢--By Highfan!3.0
回复 支持 反对

使用道具 举报

Lv1.梦旅人

剑仙·影羽

梦石
0
星屑
172
在线时间
224 小时
注册时间
2010-3-20
帖子
1580
13
发表于 2010-11-6 22:59:46 | 只看该作者
…………这个我都做过一个…………

——至今为止,谁也没能分析出他们为什么会因为说了这些话而死。
回复 支持 反对

使用道具 举报

菜鸟飞呀飞 该用户已被删除
12
发表于 2010-11-2 23:34:33 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
457
在线时间
1409 小时
注册时间
2010-9-23
帖子
557
11
发表于 2010-11-2 20:02:15 | 只看该作者
脚本完全看不懂,不过发现问题时会发信息给楼主。
回复 支持 反对

使用道具 举报

Lv2.观梦者 (版主)

脚本白痴

梦石
0
星屑
412
在线时间
902 小时
注册时间
2007-7-9
帖子
1403
10
 楼主| 发表于 2010-10-30 23:14:17 | 只看该作者
为什么我吧JUDGE弄出来窗口就消失了?

正统向RPG-大雄的高井山奇谈
https://rpg.blue/thread-369758-1-1.html
哆啦A梦RTP风格素材
https://rpg.blue/forum.php?mod=viewthread&tid=394608
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2010-10-1
帖子
7
9
发表于 2010-10-1 13:16:27 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者 (版主)

脚本白痴

梦石
0
星屑
412
在线时间
902 小时
注册时间
2007-7-9
帖子
1403
8
 楼主| 发表于 2010-9-30 20:15:49 | 只看该作者
算是吧……原版是地图显示变量。我在他的原理上改造的

正统向RPG-大雄的高井山奇谈
https://rpg.blue/thread-369758-1-1.html
哆啦A梦RTP风格素材
https://rpg.blue/forum.php?mod=viewthread&tid=394608
回复 支持 反对

使用道具 举报

Lv2.观梦者 (版主)

脚本白痴

梦石
0
星屑
412
在线时间
902 小时
注册时间
2007-7-9
帖子
1403
7
 楼主| 发表于 2010-9-30 13:55:04 | 只看该作者
我是个脚本新手……怎样才能设置过几帧refresh?或者有变动时refresh
我用着不卡呀……
38-40fps左右……

点评

是你写的脚本吗?还是整合的?里面有个judge方法用来判断是否有需要刷新,但是并没有被使用  发表于 2010-9-30 14:04

正统向RPG-大雄的高井山奇谈
https://rpg.blue/thread-369758-1-1.html
哆啦A梦RTP风格素材
https://rpg.blue/forum.php?mod=viewthread&tid=394608
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-30 22:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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