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

Project1

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

[已经解决] 这个烛光脚本怎么用啊

[复制链接]

Lv1.梦旅人

梦石
0
星屑
60
在线时间
182 小时
注册时间
2009-4-22
帖子
208
跳转到指定楼层
1
发表于 2012-12-23 19:56:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
RUBY 代码复制
  1. # 设置烛光种类数
  2. CANDLE_NUMBER = 2
  3.  
  4. # 设置控制开关,不用的话设0
  5. CANDLE_SWITCH = 4
  6.  
  7. #--------------------------------------------------------------------------
  8. # ● 开启或关闭烛光
  9. #--------------------------------------------------------------------------
  10. def candlelight(on=true)
  11.   $candlelight_on = $game_switches[CANDLE_SWITCH] = on
  12.   if on
  13.     # 生成黑色画面
  14.     $black_rect = Sprite.new
  15.     $black_rect.bitmap = Bitmap.new(544, 416)
  16.     $black_rect.bitmap.fill_rect(0, 0, 544, 416, Color.new(200, 200, 200))
  17.     $black_rect.blend_type = 2
  18.  
  19.     # 黑色透明度,决定黑暗的程度
  20.     $black_rect.opacity = 180
  21.  
  22.     # 生成烛光
  23.     $candle_rect = Array.new(CANDLE_NUMBER+1).map{|sprite| sprite=Sprite.new}
  24. #===============================================================================]
  25. #                               烛光在此设置
  26. #===============================================================================
  27.     # 指定第一种烛光
  28.     $candle_rect[1].bitmap = Cache.picture("write1")
  29.  
  30.     # 指定第二种烛光
  31.     $candle_rect[2].bitmap = Cache.picture("write2")
  32. #===============================================================================
  33. #===============================================================================
  34.     $candle_rect.each {|sprite|
  35.         if sprite.bitmap
  36.           sprite.visible = false
  37.           sprite.ox, sprite.oy = sprite.bitmap.width/2, sprite.bitmap.height/2
  38.         end}
  39.   else
  40.     # 释放黑色画面和所有烛光
  41.     $black_rect.dispose
  42.     $candle_rect.each {|sprite| sprite.dispose}
  43.     $game_lighterlist.clear
  44.   end
  45. end
  46. #--------------------------------------------------------------------------
  47. # ● 设置有烛光的角色
  48. #     candle_index : 烛光编号
  49. #     object       : 角色编号,可以为数字或是数字数组
  50. #--------------------------------------------------------------------------
  51. def candles(candle_index, object)
  52.   $game_lighterlist ||= []
  53.   $game_lighterlist[candle_index] ||= []
  54.   if object.is_a?(Integer)
  55.     $game_lighterlist[candle_index] << object
  56.   elsif object.is_a?(Array)
  57.     $game_lighterlist[candle_index] += object
  58.   end
  59.   # 移除重复的角色
  60.   $game_lighterlist[candle_index].uniq!
  61.   # 开启烛光功能
  62.   candlelight unless $candlelight_on
  63. end
  64. #--------------------------------------------------------------------------
  65. # ● 初始化烛光
  66. #--------------------------------------------------------------------------
  67. def initialize_candle
  68.   for k in 1...$candle_rect.size
  69.     next unless $game_lighterlist[k]
  70.     for j in $game_lighterlist[k]
  71.       ch = j == 0 ? $game_player : $game_map.events[j]
  72.       $candle_rect[k].x = ch.screen_x
  73.       $candle_rect[k].y = ch.screen_y - 16
  74.       lsx = $candle_rect[k].x - $candle_rect[k].bitmap.width / 2
  75.       lsy = $candle_rect[k].y - $candle_rect[k].bitmap.height / 2
  76.       $black_rect.bitmap.blt(lsx, lsy, $candle_rect[k].bitmap, $black_rect.bitmap.rect)
  77.     end
  78.   end
  79. end
  80. #--------------------------------------------------------------------------
  81. # ● 更新烛光
  82. #--------------------------------------------------------------------------
  83. def update_candle
  84.   if $game_lighterlist != []
  85.     light = []
  86.     $game_lighterlist.each{|i| light+=i if i}
  87.     light.each do |i|
  88.       ch = i == 0 ? $game_player : $game_map.events[i]
  89.       unless ch.moving_judge?
  90.         $black_rect.bitmap.fill_rect(0, 0, 544, 416, Color.new(200, 200, 200))
  91.         initialize_candle
  92.       end
  93.       break
  94.     end
  95.   end
  96. end
  97.  
  98. class Game_Character
  99.   #--------------------------------------------------------------------------
  100.   # ● 判断移动
  101.   #--------------------------------------------------------------------------
  102.   def moving_judge?
  103.     return (!stopping? or (@pattern != @original_pattern))
  104.   end
  105. end
  106. class Game_Map
  107.   #--------------------------------------------------------------------------
  108.   # ● 刷新烛光
  109.   #--------------------------------------------------------------------------
  110.   alias update_candle_system update
  111.   def update
  112.     if $candlelight_on
  113.       update_candle
  114.       $candlelight_on = false unless $game_switches[CANDLE_SWITCH]
  115.       candlelight(false) unless $candlelight_on
  116.     end
  117.     update_candle_system
  118.   end
  119. end   
  120. class Scene_Map < Scene_Base
  121.   #--------------------------------------------------------------------------
  122.   # ● 生成烛光
  123.   #--------------------------------------------------------------------------
  124.   alias candle_system_start start
  125.   def start
  126.     candle_system_start
  127.     candlelight if $candlelight_on
  128.     initialize_candle if $candlelight_on
  129.   end
  130. end

觉得这个脚本已经很强大了,就是不知道怎么用,希望有大神来告诉我下,谢谢

Lv1.梦旅人

梦石
0
星屑
50
在线时间
270 小时
注册时间
2010-2-4
帖子
1305
2
发表于 2012-12-23 21:41:11 | 只看该作者
- -b把4号开关打开就行了,其实这个CANDLE_SWITCH = 4可以随便改...

点评

额?  发表于 2012-12-24 10:33
CANDLE_SWITCH = ${candle_switch;4;烛光脚本开关}  发表于 2012-12-23 23:46

评分

参与人数 1星屑 +50 收起 理由
咕噜 + 50 认可答案

查看全部评分

好歹当年也当过大魔王过,orz
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-23 01:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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