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

Project1

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

[已经过期] 关于烛光脚本问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2014-3-16
帖子
28
跳转到指定楼层
1
发表于 2014-4-20 09:19:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
为什么我把脚本插入了,但是出现了如图问题?求助...还是不会用烛光...

# 设置烛光种类数
CANDLE_NUMBER = 2

# 设置控制开关,不用的话设0
CANDLE_SWITCH = 4

#--------------------------------------------------------------------------
# ● 开启或关闭烛光
#--------------------------------------------------------------------------
def candlelight(on=true)
  $candlelight_on = $game_switches[CANDLE_SWITCH] = on
  if on
    # 生成黑色画面
    $black_rect = Sprite.new
    $black_rect.bitmap = Bitmap.new(544, 416)
    $black_rect.bitmap.fill_rect(0, 0, 544, 416, Color.new(200, 200, 200))
    $black_rect.blend_type = 2
   
    # 黑色透明度,决定黑暗的程度
    $black_rect.opacity = 180
   
    # 生成烛光
    $candle_rect = Array.new(CANDLE_NUMBER+1).map{|sprite| sprite=Sprite.new}
#===============================================================================]
#                               烛光在此设置
#===============================================================================
    # 指定第一种烛光
    $candle_rect[1].bitmap = Cache.picture("write1")
   
    # 指定第二种烛光
    $candle_rect[2].bitmap = Cache.picture("write2")
#===============================================================================
#===============================================================================
    $candle_rect.each {|sprite|
        if sprite.bitmap
          sprite.visible = false
          sprite.ox, sprite.oy = sprite.bitmap.width/2, sprite.bitmap.height/2
        end}
  else
    # 释放黑色画面和所有烛光
    $black_rect.dispose
    $candle_rect.each {|sprite| sprite.dispose}
    $game_lighterlist.clear
  end
end
#--------------------------------------------------------------------------
# ● 设置有烛光的角色
#     candle_index : 烛光编号
#     object       : 角色编号,可以为数字或是数字数组
#--------------------------------------------------------------------------
def candles(candle_index, object)
  $game_lighterlist ||= []
  $game_lighterlist[candle_index] ||= []
  if object.is_a?(Integer)
    $game_lighterlist[candle_index] << object
  elsif object.is_a?(Array)
    $game_lighterlist[candle_index] += object
  end
  # 移除重复的角色
  $game_lighterlist[candle_index].uniq!
  # 开启烛光功能
  candlelight unless $candlelight_on
end
#--------------------------------------------------------------------------
# ● 初始化烛光
#--------------------------------------------------------------------------
def initialize_candle
  for k in 1...$candle_rect.size
    next unless $game_lighterlist[k]
    for j in $game_lighterlist[k]
      ch = j == 0 ? $game_player : $game_map.events[j]
      $candle_rect[k].x = ch.screen_x
      $candle_rect[k].y = ch.screen_y - 16
      lsx = $candle_rect[k].x - $candle_rect[k].bitmap.width / 2
      lsy = $candle_rect[k].y - $candle_rect[k].bitmap.height / 2
      $black_rect.bitmap.blt(lsx, lsy, $candle_rect[k].bitmap, $black_rect.bitmap.rect)
    end
  end
end
#--------------------------------------------------------------------------
# ● 更新烛光
#--------------------------------------------------------------------------
def update_candle
  if $game_lighterlist != []
    light = []
    $game_lighterlist.each{|i| light+=i if i}
    light.each do |i|
      ch = i == 0 ? $game_player : $game_map.events[i]
      unless ch.moving_judge?
        $black_rect.bitmap.fill_rect(0, 0, 544, 416, Color.new(200, 200, 200))
        initialize_candle
      end
      break
    end
  end
end

class Game_Character
  #--------------------------------------------------------------------------
  # ● 判断移动
  #--------------------------------------------------------------------------
  def moving_judge?
    return (!stopping? or (@pattern != @original_pattern))
  end
end
class Game_Map
  #--------------------------------------------------------------------------
  # ● 刷新烛光
  #--------------------------------------------------------------------------
  alias update_candle_system update
  def update
    if $candlelight_on
      update_candle
      $candlelight_on = false unless $game_switches[CANDLE_SWITCH]
      candlelight(false) unless $candlelight_on
    end
    update_candle_system
  end
end   
class Scene_Map < Scene_Base
  #--------------------------------------------------------------------------
  # ● 生成烛光
  #--------------------------------------------------------------------------
  alias candle_system_start start
  def start
    candle_system_start
    candlelight if $candlelight_on
    initialize_candle if $candlelight_on
  end
end

230102qsqxz1o0p18o83t1.png (17.19 KB, 下载次数: 33)

230102qsqxz1o0p18o83t1.png

Lv1.梦旅人

梦石
0
星屑
132
在线时间
291 小时
注册时间
2013-1-10
帖子
102
2
发表于 2014-4-20 10:28:01 | 只看该作者
在进入下一张地图前关掉脚本,否则偶尔就会出现这种错误。

腳本.png (90.3 KB, 下载次数: 32)

腳本.png

点评

我的事件中有个画面色调调整,那个请不用理它  发表于 2014-4-20 10:31
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2014-3-16
帖子
28
3
 楼主| 发表于 2014-4-20 12:54:25 | 只看该作者
xcv15963 发表于 2014-4-20 10:28
在进入下一张地图前关掉脚本,否则偶尔就会出现这种错误。

可是我连游戏测试都打不开...一打开就这样
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
132
在线时间
291 小时
注册时间
2013-1-10
帖子
102
4
发表于 2014-4-20 18:12:40 | 只看该作者
我很確定會出現那個錯誤,是因為移動地圖時沒關掉腳本。
但是你說一開始就這樣,那就代表一開始就使用到了該腳本,不然的話就是燭光腳本跟你裝的其他腳本有衝突。{:7_292:}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2014-3-16
帖子
28
5
 楼主| 发表于 2014-4-20 20:01:57 | 只看该作者
xcv15963 发表于 2014-4-20 18:12
我很確定會出現那個錯誤,是因為移動地圖時沒關掉腳本。
但是你說一開始就這樣,那就代表一開始就使用到了 ...

应该是就把脚本复制到编辑器里吧...我没加其他脚本啊...

点评

我建議你可以發個工程包,好讓大家可以一起幫忙解決,不然沒有看到東西也很難確定**出問題  发表于 2014-4-20 21:43

评分

参与人数 1星屑 +80 收起 理由
丿梁丶小柒 + 80 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-13 04:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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