Project1
标题:
已解决·视野限制脚本的问题(黑历史)(没脸见人了)
[打印本页]
作者:
又囧又怨的炅鸢
时间:
2020-5-12 14:25
标题:
已解决·视野限制脚本的问题(黑历史)(没脸见人了)
本帖最后由 又囧又怨的炅鸢 于 2020-5-13 13:09 编辑
用了
https://rpg.blue/thread-221710-1-1.html
的视野限制脚本,改了一下地图id后Game_Interpreter1411行报错。
脚本渣,整个人懵逼。是少了什么吗?(严重拉制作进度的啊QWQ
批注 2020-05-12 141755.png
(26.56 KB, 下载次数: 19)
下载附件
保存到相册
2020-5-12 14:24 上传
改了之后的jio本:
#==============================================================================
# ★ RGSS3_视界制限 Ver1.1
#==============================================================================
=begin
作者:tomoaky
首发网站:ひきも记 (http://hikimoki.sakura.ne.jp/)
设定号码的地图限制视野。
写在角色,职业,是在武器(防护具)的备注中的标签
能补正视野限制的尺寸。
例)<视界补正 32>
视界32点扩大広。
只有战斗成员进行视野补正价值的计算。
游戏变量(默认情况下,#9),可以调整大小使用视图领域。
加入上述所有设置,将获得的实际大小限制的能见度。
然而,如果尚未设置能见度限制的地图上都是无效的。
因为每帧都会重绘整个屏幕的Sprite
将会有所加重。
操作所需的图像
Graphics/System/sight_shadow.png
游戏变量使用(默认设置)
0009
2012.02.05 Ver1.1
・调整Z坐标使计时器使不被遮住
・加使用游戏变量补正视野限制尺寸的功能(通过变量可做成开/関效果)
2012.01.20 Ver1.0
公开
=end
#==============================================================================
# □ 设定项目
#==============================================================================
module TMBLSIGHT
# 指定几号的地图进行视界制限
# 例)SIGHT[3] = 128 # 设置地图号码3的视野能见度128点矩形
SIGHT = {}
SIGHT[26] = 32
SIGHT[27] = 128
SIGHT[28] = 128
VN_SIGHT = 9 # 设定尺寸大小补正在游戏中使用的游戏变量
end
#==============================================================================
# □ RPG::BaseItem
#==============================================================================
class RPG::BaseItem
#--------------------------------------------------------------------------
# ○ 视界制限补正値
#--------------------------------------------------------------------------
def sight_power
unless @sight_power
@sight_power = /<视界补正\s*(\-*\d+)\s*>/ =~ @note ? $1.to_i : 0
end
@sight_power
end
end
#==============================================================================
# ■ Game_Actor
#==============================================================================
class Game_Actor
#--------------------------------------------------------------------------
# ○ 视界制限补正値
#--------------------------------------------------------------------------
def sight_power
result = 0
feature_objects.each {|object| result += object.sight_power}
result
end
end
#==============================================================================
# □ Sprite_SightShadow
#==============================================================================
class Sprite_SightShadow < Sprite
#--------------------------------------------------------------------------
# ● 物件初期化
#--------------------------------------------------------------------------
def initialize(viewport = nil)
super(viewport)
self.z = 199
self.bitmap = Bitmap.new(Graphics.width, Graphics.height)
@bitmap_shadow = Bitmap.new("Graphics/System/sight_shadow")
end
#--------------------------------------------------------------------------
# ● 解放
#--------------------------------------------------------------------------
def dispose
self.bitmap.dispose
@bitmap_shadow.dispose
super
end
#--------------------------------------------------------------------------
# ● 帧更新
#--------------------------------------------------------------------------
def update
super
if TMBLSIGHT::SIGHT[$game_map.map_id]
self.visible = true
self.bitmap.clear
w = TMBLSIGHT::SIGHT[$game_map.map_id]
$game_party.battle_members.each{|actor| w = [w + actor.sight_power, 48].max}
w = [w + $game_variables[TMBLSIGHT::VN_SIGHT], 48].max
x = $game_player.screen_x - w / 2
y = $game_player.screen_y - w / 2 - 16
rect = Rect.new(x, y, w, w)
self.bitmap.stretch_blt(rect, @bitmap_shadow, @bitmap_shadow.rect)
color = Color.new(0, 0, 0)
self.bitmap.fill_rect(0, 0, Graphics.width, y, color)
self.bitmap.fill_rect(0, y + w, Graphics.width, Graphics.height - y - w,
color)
self.bitmap.fill_rect(0, y, x, w, color)
self.bitmap.fill_rect(x + w, y, Graphics.width - x - w, w, color)
else
self.visible = false
end
end
end
#==============================================================================
# ■ Spriteset_Map
#==============================================================================
class Spriteset_Map
#--------------------------------------------------------------------------
# ● 物件初期化
#--------------------------------------------------------------------------
alias tmblsight_spriteset_map_initialize initialize
def initialize
tmblsight_spriteset_map_initialize
create_sight_shadow
end
#--------------------------------------------------------------------------
# ○ 作成视界制限Sprite
#--------------------------------------------------------------------------
def create_sight_shadow
@sight_shadow_sprite = Sprite_SightShadow.new(@viewport2)
end
#--------------------------------------------------------------------------
# ● 解放
#--------------------------------------------------------------------------
alias tmblsight_spriteset_map_dispose dispose
def dispose
tmblsight_spriteset_map_dispose
dispose_sight_shadow
end
#--------------------------------------------------------------------------
# ○ 解放视界制限Sprites
#--------------------------------------------------------------------------
def dispose_sight_shadow
@sight_shadow_sprite.dispose
end
#--------------------------------------------------------------------------
# ● 帧更新
#--------------------------------------------------------------------------
alias tmblsight_spriteset_map_update update
def update
update_sight_shadow
tmblsight_spriteset_map_update
end
#--------------------------------------------------------------------------
# ○ 更新视界制限Sprites
#--------------------------------------------------------------------------
def update_sight_shadow
@sight_shadow_sprite.update if @sight_shadow_sprite
end
end
复制代码
作者:
池田岚一
时间:
2020-5-12 16:23
會不會是因為開舊存檔的關係?這種類型的一般都是要弄開始遊戲會比較好。
如果不是⋯就很微妙了
作者:
又囧又怨的炅鸢
时间:
2020-5-13 13:06
本帖最后由 又囧又怨的炅鸢 于 2020-5-13 13:07 编辑
我好像明白了什么......我把已经删掉的烛光脚本要用到的事件脚本留下来了......所以才会报未定义方法......我四八四撒哦............绝对惨痛的教训...
还麻烦别人,
没脸见人了QAQ
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1